aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.mailmap2
-rw-r--r--Documentation/ABI/testing/sysfs-firmware-sgi_uv27
-rw-r--r--Documentation/ABI/testing/sysfs-gpio26
-rw-r--r--Documentation/cpusets.txt18
-rw-r--r--Documentation/dontdiff2
-rw-r--r--Documentation/feature-removal-schedule.txt8
-rw-r--r--Documentation/filesystems/Locking15
-rw-r--r--Documentation/filesystems/ntfs.txt4
-rw-r--r--Documentation/filesystems/proc.txt21
-rw-r--r--Documentation/laptops/thinkpad-acpi.txt11
-rw-r--r--Documentation/sound/alsa/soc/dapm.txt12
-rw-r--r--Documentation/video4linux/CARDLIST.au08281
-rw-r--r--Documentation/video4linux/gspca.txt29
-rw-r--r--MAINTAINERS35
-rw-r--r--Makefile2
-rw-r--r--arch/alpha/kernel/osf_sys.c19
-rw-r--r--arch/arm/Kconfig77
-rw-r--r--arch/arm/Makefile2
-rw-r--r--arch/arm/boot/compressed/Makefile2
-rw-r--r--arch/arm/boot/compressed/head.S3
-rw-r--r--arch/arm/common/Kconfig3
-rw-r--r--arch/arm/common/dmabounce.c287
-rw-r--r--arch/arm/common/gic.c2
-rw-r--r--arch/arm/common/it8152.c14
-rw-r--r--arch/arm/common/locomo.c28
-rw-r--r--arch/arm/common/sa1111.c2
-rw-r--r--arch/arm/common/scoop.c2
-rw-r--r--arch/arm/common/sharpsl_param.c2
-rw-r--r--arch/arm/common/time-acorn.c2
-rw-r--r--arch/arm/common/uengine.c2
-rw-r--r--arch/arm/common/via82c505.c2
-rw-r--r--arch/arm/common/vic.c2
-rw-r--r--arch/arm/configs/afeb9260_defconfig1259
-rw-r--r--arch/arm/configs/ams_delta_defconfig1314
-rw-r--r--arch/arm/configs/at91sam9rlek_defconfig1
-rw-r--r--arch/arm/configs/cm_x300_defconfig1466
-rw-r--r--arch/arm/configs/jornada720_defconfig1057
-rw-r--r--arch/arm/configs/n770_defconfig1421
-rw-r--r--arch/arm/configs/omap_2430sdp_defconfig1304
-rw-r--r--arch/arm/configs/omap_apollon_2420_defconfig962
-rw-r--r--arch/arm/configs/omap_generic_1510_defconfig1172
-rw-r--r--arch/arm/configs/omap_generic_1610_defconfig1178
-rw-r--r--arch/arm/configs/omap_generic_1710_defconfig1088
-rw-r--r--arch/arm/configs/omap_generic_2420_defconfig655
-rw-r--r--arch/arm/configs/omap_h2_1610_defconfig509
-rw-r--r--arch/arm/configs/omap_h4_2420_defconfig1120
-rw-r--r--arch/arm/configs/omap_innovator_1510_defconfig1253
-rw-r--r--arch/arm/configs/omap_innovator_1610_defconfig839
-rw-r--r--arch/arm/configs/omap_osk_5912_defconfig169
-rw-r--r--arch/arm/configs/omap_perseus2_730_defconfig928
-rw-r--r--arch/arm/configs/orion5x_defconfig146
-rw-r--r--arch/arm/configs/palmte_defconfig761
-rw-r--r--arch/arm/configs/palmtt_defconfig844
-rw-r--r--arch/arm/configs/palmz71_defconfig891
-rw-r--r--arch/arm/configs/palmz72_defconfig951
-rw-r--r--arch/arm/configs/sx1_defconfig1118
-rw-r--r--arch/arm/configs/viper_defconfig1678
-rw-r--r--arch/arm/configs/xm_x2xx_defconfig (renamed from arch/arm/configs/xm_x270_defconfig)237
-rw-r--r--arch/arm/include/asm/bug.h2
-rw-r--r--arch/arm/include/asm/cacheflush.h90
-rw-r--r--arch/arm/include/asm/cachetype.h52
-rw-r--r--arch/arm/include/asm/cputype.h64
-rw-r--r--arch/arm/include/asm/dma-mapping.h378
-rw-r--r--arch/arm/include/asm/elf.h72
-rw-r--r--arch/arm/include/asm/futex.h124
-rw-r--r--arch/arm/include/asm/io.h4
-rw-r--r--arch/arm/include/asm/irq.h4
-rw-r--r--arch/arm/include/asm/kprobes.h1
-rw-r--r--arch/arm/include/asm/mach/map.h3
-rw-r--r--arch/arm/include/asm/mach/udc_pxa2xx.h3
-rw-r--r--arch/arm/include/asm/mc146818rtc.h2
-rw-r--r--arch/arm/include/asm/memory.h40
-rw-r--r--arch/arm/include/asm/mmu_context.h1
-rw-r--r--arch/arm/include/asm/page.h5
-rw-r--r--arch/arm/include/asm/pci.h2
-rw-r--r--arch/arm/include/asm/pgtable.h88
-rw-r--r--arch/arm/include/asm/ptrace.h7
-rw-r--r--arch/arm/include/asm/setup.h11
-rw-r--r--arch/arm/include/asm/sparsemem.h20
-rw-r--r--arch/arm/include/asm/system.h58
-rw-r--r--arch/arm/include/asm/thread_info.h2
-rw-r--r--arch/arm/include/asm/uaccess.h10
-rw-r--r--arch/arm/include/asm/vga.h2
-rw-r--r--arch/arm/kernel/Makefile2
-rw-r--r--arch/arm/kernel/armksyms.c4
-rw-r--r--arch/arm/kernel/bios32.c2
-rw-r--r--arch/arm/kernel/crunch.c2
-rw-r--r--arch/arm/kernel/debug.S5
-rw-r--r--arch/arm/kernel/dma-isa.c3
-rw-r--r--arch/arm/kernel/ecard.c6
-rw-r--r--arch/arm/kernel/elf.c79
-rw-r--r--arch/arm/kernel/entry-armv.S16
-rw-r--r--arch/arm/kernel/entry-common.S25
-rw-r--r--arch/arm/kernel/fiq.c1
-rw-r--r--arch/arm/kernel/head-common.S19
-rw-r--r--arch/arm/kernel/head-nommu.S4
-rw-r--r--arch/arm/kernel/head.S12
-rw-r--r--arch/arm/kernel/init_task.c2
-rw-r--r--arch/arm/kernel/io.c3
-rw-r--r--arch/arm/kernel/irq.c11
-rw-r--r--arch/arm/kernel/kprobes-decode.c4
-rw-r--r--arch/arm/kernel/kprobes.c5
-rw-r--r--arch/arm/kernel/machine_kexec.c2
-rw-r--r--arch/arm/kernel/module.c2
-rw-r--r--arch/arm/kernel/process.c33
-rw-r--r--arch/arm/kernel/ptrace.c10
-rw-r--r--arch/arm/kernel/setup.c279
-rw-r--r--arch/arm/kernel/signal.c2
-rw-r--r--arch/arm/kernel/sys_arm.c3
-rw-r--r--arch/arm/kernel/sys_oabi-compat.c2
-rw-r--r--arch/arm/kernel/time.c2
-rw-r--r--arch/arm/kernel/traps.c18
-rw-r--r--arch/arm/kernel/xscale-cp0.c2
-rw-r--r--arch/arm/lib/ashldi3.S2
-rw-r--r--arch/arm/lib/ashrdi3.S2
-rw-r--r--arch/arm/lib/backtrace.S4
-rw-r--r--arch/arm/lib/changebit.S2
-rw-r--r--arch/arm/lib/clear_user.S3
-rw-r--r--arch/arm/lib/clearbit.S2
-rw-r--r--arch/arm/lib/copy_from_user.S2
-rw-r--r--arch/arm/lib/copy_page.S1
-rw-r--r--arch/arm/lib/copy_to_user.S2
-rw-r--r--arch/arm/lib/csumipv6.S1
-rw-r--r--arch/arm/lib/csumpartial.S1
-rw-r--r--arch/arm/lib/csumpartialcopy.S7
-rw-r--r--arch/arm/lib/csumpartialcopygeneric.S1
-rw-r--r--arch/arm/lib/csumpartialcopyuser.S7
-rw-r--r--arch/arm/lib/delay.S3
-rw-r--r--arch/arm/lib/div64.S1
-rw-r--r--arch/arm/lib/findbit.S8
-rw-r--r--arch/arm/lib/getuser.S14
-rw-r--r--arch/arm/lib/io-readsb.S1
-rw-r--r--arch/arm/lib/io-readsl.S1
-rw-r--r--arch/arm/lib/io-readsw-armv4.S1
-rw-r--r--arch/arm/lib/io-writesb.S1
-rw-r--r--arch/arm/lib/io-writesl.S1
-rw-r--r--arch/arm/lib/io-writesw-armv4.S1
-rw-r--r--arch/arm/lib/lib1funcs.S11
-rw-r--r--arch/arm/lib/lshrdi3.S2
-rw-r--r--arch/arm/lib/memchr.S1
-rw-r--r--arch/arm/lib/memcpy.S1
-rw-r--r--arch/arm/lib/memmove.S1
-rw-r--r--arch/arm/lib/memset.S1
-rw-r--r--arch/arm/lib/memzero.S1
-rw-r--r--arch/arm/lib/muldi3.S2
-rw-r--r--arch/arm/lib/putuser.S18
-rw-r--r--arch/arm/lib/setbit.S2
-rw-r--r--arch/arm/lib/sha1.S5
-rw-r--r--arch/arm/lib/strchr.S1
-rw-r--r--arch/arm/lib/strncpy_from_user.S1
-rw-r--r--arch/arm/lib/strnlen_user.S1
-rw-r--r--arch/arm/lib/strrchr.S1
-rw-r--r--arch/arm/lib/testchangebit.S2
-rw-r--r--arch/arm/lib/testclearbit.S2
-rw-r--r--arch/arm/lib/testsetbit.S2
-rw-r--r--arch/arm/lib/uaccess.S2
-rw-r--r--arch/arm/lib/ucmpdi2.S4
-rw-r--r--arch/arm/mach-at91/Kconfig22
-rw-r--r--arch/arm/mach-at91/Makefile2
-rw-r--r--arch/arm/mach-at91/at91cap9.c6
-rw-r--r--arch/arm/mach-at91/at91cap9_devices.c54
-rw-r--r--arch/arm/mach-at91/at91sam9263.c6
-rw-r--r--arch/arm/mach-at91/at91sam9263_devices.c53
-rw-r--r--arch/arm/mach-at91/at91sam9rl.c6
-rw-r--r--arch/arm/mach-at91/at91sam9rl_devices.c98
-rw-r--r--arch/arm/mach-at91/at91x40_time.c2
-rw-r--r--arch/arm/mach-at91/board-afeb-9260v1.c210
-rw-r--r--arch/arm/mach-at91/board-cap9adk.c2
-rw-r--r--arch/arm/mach-at91/board-carmeva.c28
-rw-r--r--arch/arm/mach-at91/board-csb337.c12
-rw-r--r--arch/arm/mach-at91/board-csb637.c4
-rw-r--r--arch/arm/mach-at91/board-dk.c4
-rw-r--r--arch/arm/mach-at91/board-ecbat91.c2
-rw-r--r--arch/arm/mach-at91/board-ek.c4
-rw-r--r--arch/arm/mach-at91/board-picotux200.c2
-rw-r--r--arch/arm/mach-at91/board-qil-a9260.c14
-rw-r--r--arch/arm/mach-at91/board-sam9-l9260.c4
-rw-r--r--arch/arm/mach-at91/board-sam9260ek.c80
-rw-r--r--arch/arm/mach-at91/board-sam9261ek.c18
-rw-r--r--arch/arm/mach-at91/board-sam9263ek.c64
-rw-r--r--arch/arm/mach-at91/board-sam9g20ek.c8
-rw-r--r--arch/arm/mach-at91/board-sam9rlek.c8
-rw-r--r--arch/arm/mach-at91/board-usb-a9260.c14
-rw-r--r--arch/arm/mach-at91/board-usb-a9263.c14
-rw-r--r--arch/arm/mach-at91/board-yl-9200.c50
-rw-r--r--arch/arm/mach-at91/clock.c3
-rw-r--r--arch/arm/mach-at91/gpio.c5
-rw-r--r--arch/arm/mach-at91/include/mach/at91_pit.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91_rstc.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91_rtt.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91_shdwc.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91_wdt.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h2
-rw-r--r--arch/arm/mach-at91/include/mach/at91sam9260_matrix.h2
-rw-r--r--arch/arm/mach-at91/include/mach/at91sam9261_matrix.h2
-rw-r--r--arch/arm/mach-at91/include/mach/at91sam9_sdramc.h3
-rw-r--r--arch/arm/mach-at91/include/mach/at91sam9_smc.h3
-rw-r--r--arch/arm/mach-at91/include/mach/board.h14
-rw-r--r--arch/arm/mach-at91/include/mach/irqs.h2
-rw-r--r--arch/arm/mach-at91/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-at91/leds.c45
-rw-r--r--arch/arm/mach-at91/pm.c2
-rw-r--r--arch/arm/mach-at91/pm_slowclock.S283
-rw-r--r--arch/arm/mach-clps711x/autcpu12.c2
-rw-r--r--arch/arm/mach-clps711x/cdb89712.c2
-rw-r--r--arch/arm/mach-clps711x/include/mach/system.h2
-rw-r--r--arch/arm/mach-clps711x/irq.c2
-rw-r--r--arch/arm/mach-clps711x/p720t-leds.c2
-rw-r--r--arch/arm/mach-clps711x/p720t.c2
-rw-r--r--arch/arm/mach-clps711x/time.c2
-rw-r--r--arch/arm/mach-clps7500/core.c2
-rw-r--r--arch/arm/mach-clps7500/include/mach/irq.h2
-rw-r--r--arch/arm/mach-clps7500/include/mach/memory.h8
-rw-r--r--arch/arm/mach-clps7500/include/mach/system.h2
-rw-r--r--arch/arm/mach-davinci/Makefile2
-rw-r--r--arch/arm/mach-davinci/board-evm.c341
-rw-r--r--arch/arm/mach-davinci/clock.c2
-rw-r--r--arch/arm/mach-davinci/devices.c48
-rw-r--r--arch/arm/mach-davinci/gpio.c138
-rw-r--r--arch/arm/mach-davinci/id.c3
-rw-r--r--arch/arm/mach-davinci/include/mach/common.h3
-rw-r--r--arch/arm/mach-davinci/include/mach/gpio.h73
-rw-r--r--arch/arm/mach-davinci/include/mach/i2c.h7
-rw-r--r--arch/arm/mach-davinci/include/mach/io.h43
-rw-r--r--arch/arm/mach-davinci/include/mach/system.h2
-rw-r--r--arch/arm/mach-davinci/io.c2
-rw-r--r--arch/arm/mach-davinci/irq.c2
-rw-r--r--arch/arm/mach-davinci/psc.c2
-rw-r--r--arch/arm/mach-davinci/serial.c2
-rw-r--r--arch/arm/mach-davinci/time.c2
-rw-r--r--arch/arm/mach-davinci/usb.c116
-rw-r--r--arch/arm/mach-ebsa110/core.c2
-rw-r--r--arch/arm/mach-ebsa110/io.c2
-rw-r--r--arch/arm/mach-ep93xx/Kconfig14
-rw-r--r--arch/arm/mach-ep93xx/adssphere.c28
-rw-r--r--arch/arm/mach-ep93xx/clock.c2
-rw-r--r--arch/arm/mach-ep93xx/core.c46
-rw-r--r--arch/arm/mach-ep93xx/edb9302.c8
-rw-r--r--arch/arm/mach-ep93xx/edb9302a.c28
-rw-r--r--arch/arm/mach-ep93xx/edb9307.c28
-rw-r--r--arch/arm/mach-ep93xx/edb9312.c8
-rw-r--r--arch/arm/mach-ep93xx/edb9315.c8
-rw-r--r--arch/arm/mach-ep93xx/edb9315a.c28
-rw-r--r--arch/arm/mach-ep93xx/gesbc9312.c29
-rw-r--r--arch/arm/mach-ep93xx/gpio.c6
-rw-r--r--arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h34
-rw-r--r--arch/arm/mach-ep93xx/include/mach/platform.h12
-rw-r--r--arch/arm/mach-ep93xx/include/mach/ts72xx.h2
-rw-r--r--arch/arm/mach-ep93xx/include/mach/uncompress.h21
-rw-r--r--arch/arm/mach-ep93xx/micro9.c34
-rw-r--r--arch/arm/mach-ep93xx/ts72xx.c28
-rw-r--r--arch/arm/mach-footbridge/cats-hw.c2
-rw-r--r--arch/arm/mach-footbridge/common.c2
-rw-r--r--arch/arm/mach-footbridge/dc21285.c2
-rw-r--r--arch/arm/mach-footbridge/dma.c2
-rw-r--r--arch/arm/mach-footbridge/include/mach/memory.h10
-rw-r--r--arch/arm/mach-footbridge/include/mach/system.h2
-rw-r--r--arch/arm/mach-footbridge/isa-irq.c5
-rw-r--r--arch/arm/mach-footbridge/isa-timer.c2
-rw-r--r--arch/arm/mach-footbridge/netwinder-hw.c2
-rw-r--r--arch/arm/mach-footbridge/time.c20
-rw-r--r--arch/arm/mach-h720x/common.c6
-rw-r--r--arch/arm/mach-h720x/cpu-h7202.c4
-rw-r--r--arch/arm/mach-imx/clock.c2
-rw-r--r--arch/arm/mach-imx/include/mach/irqs.h5
-rw-r--r--arch/arm/mach-imx/irq.c38
-rw-r--r--arch/arm/mach-imx/leds-mx1ads.c2
-rw-r--r--arch/arm/mach-imx/time.c2
-rw-r--r--arch/arm/mach-integrator/core.c2
-rw-r--r--arch/arm/mach-integrator/cpu.c2
-rw-r--r--arch/arm/mach-integrator/impd1.c2
-rw-r--r--arch/arm/mach-integrator/integrator_ap.c2
-rw-r--r--arch/arm/mach-integrator/integrator_cp.c5
-rw-r--r--arch/arm/mach-integrator/leds.c2
-rw-r--r--arch/arm/mach-integrator/pci_v3.c2
-rw-r--r--arch/arm/mach-iop13xx/include/mach/memory.h61
-rw-r--r--arch/arm/mach-iop13xx/include/mach/pci.h2
-rw-r--r--arch/arm/mach-iop13xx/io.c2
-rw-r--r--arch/arm/mach-iop13xx/msi.c3
-rw-r--r--arch/arm/mach-iop13xx/setup.c2
-rw-r--r--arch/arm/mach-iop13xx/tpmi.c2
-rw-r--r--arch/arm/mach-iop32x/glantank.c2
-rw-r--r--arch/arm/mach-iop32x/iq31244.c6
-rw-r--r--arch/arm/mach-iop32x/iq80321.c2
-rw-r--r--arch/arm/mach-iop32x/n2100.c2
-rw-r--r--arch/arm/mach-iop33x/iq80331.c2
-rw-r--r--arch/arm/mach-iop33x/iq80332.c2
-rw-r--r--arch/arm/mach-iop33x/uart.c2
-rw-r--r--arch/arm/mach-ixp2000/core.c33
-rw-r--r--arch/arm/mach-ixp2000/enp2611.c8
-rw-r--r--arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h8
-rw-r--r--arch/arm/mach-ixp2000/ixdp2400.c2
-rw-r--r--arch/arm/mach-ixp2000/ixdp2800.c2
-rw-r--r--arch/arm/mach-ixp2000/ixdp2x00.c6
-rw-r--r--arch/arm/mach-ixp2000/ixdp2x01.c6
-rw-r--r--arch/arm/mach-ixp2000/pci.c2
-rw-r--r--arch/arm/mach-ixp23xx/core.c4
-rw-r--r--arch/arm/mach-ixp23xx/ixdp2351.c8
-rw-r--r--arch/arm/mach-ixp23xx/pci.c2
-rw-r--r--arch/arm/mach-ixp4xx/common-pci.c9
-rw-r--r--arch/arm/mach-ixp4xx/common.c2
-rw-r--r--arch/arm/mach-ixp4xx/fsg-setup.c2
-rw-r--r--arch/arm/mach-ixp4xx/include/mach/cpu.h9
-rw-r--r--arch/arm/mach-ixp4xx/ixdp425-setup.c2
-rw-r--r--arch/arm/mach-ixp4xx/nas100d-setup.c2
-rw-r--r--arch/arm/mach-ixp4xx/nslu2-setup.c2
-rw-r--r--arch/arm/mach-ks8695/cpu.c2
-rw-r--r--arch/arm/mach-ks8695/gpio.c22
-rw-r--r--arch/arm/mach-ks8695/include/mach/memory.h4
-rw-r--r--arch/arm/mach-ks8695/include/mach/regs-gpio.h4
-rw-r--r--arch/arm/mach-ks8695/include/mach/regs-lan.h4
-rw-r--r--arch/arm/mach-ks8695/include/mach/regs-wan.h4
-rw-r--r--arch/arm/mach-ks8695/include/mach/system.h2
-rw-r--r--arch/arm/mach-ks8695/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-ks8695/irq.c2
-rw-r--r--arch/arm/mach-ks8695/pci.c4
-rw-r--r--arch/arm/mach-ks8695/time.c2
-rw-r--r--arch/arm/mach-lh7a40x/Kconfig13
-rw-r--r--arch/arm/mach-lh7a40x/arch-kev7a400.c2
-rw-r--r--arch/arm/mach-lh7a40x/arch-lpd7a40x.c4
-rw-r--r--arch/arm/mach-lh7a40x/common.h1
-rw-r--r--arch/arm/mach-lh7a40x/include/mach/memory.h6
-rw-r--r--arch/arm/mach-lh7a40x/irq-lpd7a40x.c4
-rw-r--r--arch/arm/mach-lh7a40x/ssp-cpld.c2
-rw-r--r--arch/arm/mach-lh7a40x/time.c2
-rw-r--r--arch/arm/mach-loki/addr-map.c2
-rw-r--r--arch/arm/mach-loki/irq.c2
-rw-r--r--arch/arm/mach-msm/board-halibut.c5
-rw-r--r--arch/arm/mach-msm/common.c2
-rw-r--r--arch/arm/mach-msm/dma.c2
-rw-r--r--arch/arm/mach-msm/io.c2
-rw-r--r--arch/arm/mach-msm/irq.c5
-rw-r--r--arch/arm/mach-msm/timer.c3
-rw-r--r--arch/arm/mach-mv78xx0/addr-map.c2
-rw-r--r--arch/arm/mach-mx2/devices.h15
-rw-r--r--arch/arm/mach-mx2/mx27ads.c12
-rw-r--r--arch/arm/mach-mx2/pcm038.c8
-rw-r--r--arch/arm/mach-mx2/serial.c51
-rw-r--r--arch/arm/mach-mx3/devices.c43
-rw-r--r--arch/arm/mach-mx3/devices.h6
-rw-r--r--arch/arm/mach-mx3/iomux.c6
-rw-r--r--arch/arm/mach-mx3/mm.c2
-rw-r--r--arch/arm/mach-mx3/mx31ads.c120
-rw-r--r--arch/arm/mach-mx3/mx31lite.c6
-rw-r--r--arch/arm/mach-mx3/pcm037.c8
-rw-r--r--arch/arm/mach-netx/generic.c7
-rw-r--r--arch/arm/mach-netx/include/mach/system.h2
-rw-r--r--arch/arm/mach-netx/pfifo.c2
-rw-r--r--arch/arm/mach-netx/time.c2
-rw-r--r--arch/arm/mach-netx/xc.c2
-rw-r--r--arch/arm/mach-ns9xxx/board-a9m9750dev.c5
-rw-r--r--arch/arm/mach-ns9xxx/gpio.c2
-rw-r--r--arch/arm/mach-ns9xxx/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-ns9xxx/irq.c2
-rw-r--r--arch/arm/mach-omap1/board-voiceblue.c1
-rw-r--r--arch/arm/mach-omap1/clock.c2
-rw-r--r--arch/arm/mach-omap1/devices.c2
-rw-r--r--arch/arm/mach-omap1/fpga.c6
-rw-r--r--arch/arm/mach-omap1/id.c3
-rw-r--r--arch/arm/mach-omap1/io.c2
-rw-r--r--arch/arm/mach-omap1/irq.c3
-rw-r--r--arch/arm/mach-omap1/leds-h2p2-debug.c2
-rw-r--r--arch/arm/mach-omap1/mailbox.c2
-rw-r--r--arch/arm/mach-omap1/mcbsp.c8
-rw-r--r--arch/arm/mach-omap1/mux.c5
-rw-r--r--arch/arm/mach-omap1/pm.c2
-rw-r--r--arch/arm/mach-omap1/serial.c2
-rw-r--r--arch/arm/mach-omap1/time.c2
-rw-r--r--arch/arm/mach-omap1/timer32k.c2
-rw-r--r--arch/arm/mach-omap2/board-2430sdp.c5
-rw-r--r--arch/arm/mach-omap2/board-h4.c3
-rw-r--r--arch/arm/mach-omap2/clock.c5
-rw-r--r--arch/arm/mach-omap2/clock24xx.c3
-rw-r--r--arch/arm/mach-omap2/clock34xx.c2
-rw-r--r--arch/arm/mach-omap2/devices.c2
-rw-r--r--arch/arm/mach-omap2/gpmc.c2
-rw-r--r--arch/arm/mach-omap2/id.c3
-rw-r--r--arch/arm/mach-omap2/io.c2
-rw-r--r--arch/arm/mach-omap2/irq.c2
-rw-r--r--arch/arm/mach-omap2/mailbox.c2
-rw-r--r--arch/arm/mach-omap2/mcbsp.c4
-rw-r--r--arch/arm/mach-omap2/memory.c3
-rw-r--r--arch/arm/mach-omap2/mux.c5
-rw-r--r--arch/arm/mach-omap2/pm.c2
-rw-r--r--arch/arm/mach-omap2/serial.c3
-rw-r--r--arch/arm/mach-orion5x/addr-map.c2
-rw-r--r--arch/arm/mach-orion5x/common.h1
-rw-r--r--arch/arm/mach-orion5x/dns323-setup.c6
-rw-r--r--arch/arm/mach-orion5x/gpio.c2
-rw-r--r--arch/arm/mach-orion5x/irq.c4
-rw-r--r--arch/arm/mach-orion5x/kurobox_pro-setup.c4
-rw-r--r--arch/arm/mach-orion5x/mpp.c2
-rw-r--r--arch/arm/mach-orion5x/pci.c13
-rw-r--r--arch/arm/mach-orion5x/ts209-setup.c9
-rw-r--r--arch/arm/mach-orion5x/ts409-setup.c9
-rw-r--r--arch/arm/mach-pnx4008/clock.c2
-rw-r--r--arch/arm/mach-pnx4008/core.c2
-rw-r--r--arch/arm/mach-pnx4008/dma.c2
-rw-r--r--arch/arm/mach-pnx4008/gpio.c2
-rw-r--r--arch/arm/mach-pnx4008/include/mach/system.h2
-rw-r--r--arch/arm/mach-pnx4008/include/mach/timex.h2
-rw-r--r--arch/arm/mach-pnx4008/irq.c2
-rw-r--r--arch/arm/mach-pnx4008/pm.c2
-rw-r--r--arch/arm/mach-pnx4008/serial.c3
-rw-r--r--arch/arm/mach-pnx4008/time.c2
-rw-r--r--arch/arm/mach-pxa/Kconfig94
-rw-r--r--arch/arm/mach-pxa/Makefile37
-rw-r--r--arch/arm/mach-pxa/akita-ioexp.c222
-rw-r--r--arch/arm/mach-pxa/am200epd.c374
-rw-r--r--arch/arm/mach-pxa/cm-x255.c258
-rw-r--r--arch/arm/mach-pxa/cm-x270-pci.h13
-rw-r--r--arch/arm/mach-pxa/cm-x270.c472
-rw-r--r--arch/arm/mach-pxa/cm-x2xx-pci.c (renamed from arch/arm/mach-pxa/cm-x270-pci.c)56
-rw-r--r--arch/arm/mach-pxa/cm-x2xx-pci.h13
-rw-r--r--arch/arm/mach-pxa/cm-x2xx.c531
-rw-r--r--arch/arm/mach-pxa/cm-x300.c465
-rw-r--r--arch/arm/mach-pxa/colibri.c11
-rw-r--r--arch/arm/mach-pxa/corgi.c480
-rw-r--r--arch/arm/mach-pxa/corgi_lcd.c290
-rw-r--r--arch/arm/mach-pxa/corgi_pm.c1
-rw-r--r--arch/arm/mach-pxa/corgi_ssp.c276
-rw-r--r--arch/arm/mach-pxa/cpufreq-pxa2xx.c (renamed from arch/arm/mach-pxa/cpu-pxa.c)2
-rw-r--r--arch/arm/mach-pxa/cpufreq-pxa3xx.c258
-rw-r--r--arch/arm/mach-pxa/devices.h1
-rw-r--r--arch/arm/mach-pxa/e330.c43
-rw-r--r--arch/arm/mach-pxa/e350.c43
-rw-r--r--arch/arm/mach-pxa/e400.c94
-rw-r--r--arch/arm/mach-pxa/e400_lcd.c56
-rw-r--r--arch/arm/mach-pxa/e740.c169
-rw-r--r--arch/arm/mach-pxa/e740_lcd.c123
-rw-r--r--arch/arm/mach-pxa/e750.c (renamed from arch/arm/mach-pxa/e750_lcd.c)67
-rw-r--r--arch/arm/mach-pxa/e800.c (renamed from arch/arm/mach-pxa/e800_lcd.c)79
-rw-r--r--arch/arm/mach-pxa/em-x270.c5
-rw-r--r--arch/arm/mach-pxa/eseries.c157
-rw-r--r--arch/arm/mach-pxa/eseries.h4
-rw-r--r--arch/arm/mach-pxa/eseries_udc.c57
-rw-r--r--arch/arm/mach-pxa/generic.c9
-rw-r--r--arch/arm/mach-pxa/generic.h1
-rw-r--r--arch/arm/mach-pxa/gpio.c4
-rw-r--r--arch/arm/mach-pxa/gumstix.c100
-rw-r--r--arch/arm/mach-pxa/idp.c78
-rw-r--r--arch/arm/mach-pxa/include/mach/akita.h32
-rw-r--r--arch/arm/mach-pxa/include/mach/corgi.h11
-rw-r--r--arch/arm/mach-pxa/include/mach/entry-macro.S4
-rw-r--r--arch/arm/mach-pxa/include/mach/hardware.h81
-rw-r--r--arch/arm/mach-pxa/include/mach/i2c.h9
-rw-r--r--arch/arm/mach-pxa/include/mach/irqs.h19
-rw-r--r--arch/arm/mach-pxa/include/mach/littleton.h2
-rw-r--r--arch/arm/mach-pxa/include/mach/memory.h4
-rw-r--r--arch/arm/mach-pxa/include/mach/mfp-pxa25x.h4
-rw-r--r--arch/arm/mach-pxa/include/mach/mfp-pxa320.h8
-rw-r--r--arch/arm/mach-pxa/include/mach/mfp.h5
-rw-r--r--arch/arm/mach-pxa/include/mach/mioa701.h67
-rw-r--r--arch/arm/mach-pxa/include/mach/ohci.h16
-rw-r--r--arch/arm/mach-pxa/include/mach/palmz72.h80
-rw-r--r--arch/arm/mach-pxa/include/mach/pm.h2
-rw-r--r--arch/arm/mach-pxa/include/mach/poodle.h9
-rw-r--r--arch/arm/mach-pxa/include/mach/pxa-regs.h320
-rw-r--r--arch/arm/mach-pxa/include/mach/pxa3xx-regs.h22
-rw-r--r--arch/arm/mach-pxa/include/mach/spitz.h42
-rw-r--r--arch/arm/mach-pxa/include/mach/ssp.h24
-rw-r--r--arch/arm/mach-pxa/include/mach/trizeps4.h84
-rw-r--r--arch/arm/mach-pxa/include/mach/viper.h96
-rw-r--r--arch/arm/mach-pxa/irq.c2
-rw-r--r--arch/arm/mach-pxa/leds-trizeps4.c134
-rw-r--r--arch/arm/mach-pxa/leds.c2
-rw-r--r--arch/arm/mach-pxa/littleton.c205
-rw-r--r--arch/arm/mach-pxa/lpd270.c99
-rw-r--r--arch/arm/mach-pxa/lubbock.c26
-rw-r--r--arch/arm/mach-pxa/magician.c16
-rw-r--r--arch/arm/mach-pxa/mainstone.c15
-rw-r--r--arch/arm/mach-pxa/mfp-pxa2xx.c225
-rw-r--r--arch/arm/mach-pxa/mioa701.c905
-rw-r--r--arch/arm/mach-pxa/mioa701_bootresume.S36
-rw-r--r--arch/arm/mach-pxa/mp900.c100
-rw-r--r--arch/arm/mach-pxa/palmtx.c20
-rw-r--r--arch/arm/mach-pxa/palmz72.c554
-rw-r--r--arch/arm/mach-pxa/pcm027.c32
-rw-r--r--arch/arm/mach-pxa/pcm990-baseboard.c33
-rw-r--r--arch/arm/mach-pxa/pm.c18
-rw-r--r--arch/arm/mach-pxa/poodle.c355
-rw-r--r--arch/arm/mach-pxa/pxa25x.c66
-rw-r--r--arch/arm/mach-pxa/pxa27x.c66
-rw-r--r--arch/arm/mach-pxa/pxa3xx.c45
-rw-r--r--arch/arm/mach-pxa/reset.c2
-rw-r--r--arch/arm/mach-pxa/sharpsl_pm.c16
-rw-r--r--arch/arm/mach-pxa/spitz.c537
-rw-r--r--arch/arm/mach-pxa/spitz_pm.c28
-rw-r--r--arch/arm/mach-pxa/ssp.c2
-rw-r--r--arch/arm/mach-pxa/time.c2
-rw-r--r--arch/arm/mach-pxa/tosa.c11
-rw-r--r--arch/arm/mach-pxa/trizeps4.c551
-rw-r--r--arch/arm/mach-pxa/viper.c951
-rw-r--r--arch/arm/mach-pxa/zylonite.c17
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa300.c12
-rw-r--r--arch/arm/mach-pxa/zylonite_pxa320.c10
-rw-r--r--arch/arm/mach-realview/core.c2
-rw-r--r--arch/arm/mach-realview/core.h2
-rw-r--r--arch/arm/mach-realview/include/mach/system.h2
-rw-r--r--arch/arm/mach-realview/localtimer.c2
-rw-r--r--arch/arm/mach-realview/platsmp.c2
-rw-r--r--arch/arm/mach-realview/realview_eb.c2
-rw-r--r--arch/arm/mach-realview/realview_pb1176.c2
-rw-r--r--arch/arm/mach-realview/realview_pb11mp.c2
-rw-r--r--arch/arm/mach-rpc/dma.c2
-rw-r--r--arch/arm/mach-rpc/include/mach/memory.h8
-rw-r--r--arch/arm/mach-rpc/include/mach/system.h2
-rw-r--r--arch/arm/mach-rpc/include/mach/uncompress.h2
-rw-r--r--arch/arm/mach-rpc/irq.c2
-rw-r--r--arch/arm/mach-rpc/riscpc.c2
-rw-r--r--arch/arm/mach-s3c2400/gpio.c2
-rw-r--r--arch/arm/mach-s3c2410/bast-irq.c5
-rw-r--r--arch/arm/mach-s3c2410/clock.c2
-rw-r--r--arch/arm/mach-s3c2410/gpio.c2
-rw-r--r--arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h10
-rw-r--r--arch/arm/mach-s3c2410/include/mach/system-reset.h2
-rw-r--r--arch/arm/mach-s3c2410/include/mach/system.h2
-rw-r--r--arch/arm/mach-s3c2410/mach-amlm5900.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-h1940.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-n30.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-otom.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-qt2410.c3
-rw-r--r--arch/arm/mach-s3c2410/mach-smdk2410.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-tct_hammer.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-vr1000.c2
-rw-r--r--arch/arm/mach-s3c2410/nor-simtec.c3
-rw-r--r--arch/arm/mach-s3c2410/pm.c2
-rw-r--r--arch/arm/mach-s3c2410/s3c2410.c2
-rw-r--r--arch/arm/mach-s3c2410/usb-simtec.c2
-rw-r--r--arch/arm/mach-s3c2412/clock.c2
-rw-r--r--arch/arm/mach-s3c2412/dma.c2
-rw-r--r--arch/arm/mach-s3c2412/irq.c6
-rw-r--r--arch/arm/mach-s3c2412/mach-jive.c2
-rw-r--r--arch/arm/mach-s3c2412/mach-smdk2413.c2
-rw-r--r--arch/arm/mach-s3c2412/mach-vstms.c3
-rw-r--r--arch/arm/mach-s3c2412/pm.c2
-rw-r--r--arch/arm/mach-s3c2412/s3c2412.c2
-rw-r--r--arch/arm/mach-s3c2440/clock.c2
-rw-r--r--arch/arm/mach-s3c2440/dsc.c2
-rw-r--r--arch/arm/mach-s3c2440/irq.c9
-rw-r--r--arch/arm/mach-s3c2440/mach-anubis.c3
-rw-r--r--arch/arm/mach-s3c2440/mach-nexcoder.c2
-rw-r--r--arch/arm/mach-s3c2440/mach-osiris.c2
-rw-r--r--arch/arm/mach-s3c2440/mach-rx3715.c3
-rw-r--r--arch/arm/mach-s3c2440/mach-smdk2440.c2
-rw-r--r--arch/arm/mach-s3c2440/s3c2440.c2
-rw-r--r--arch/arm/mach-s3c2442/clock.c2
-rw-r--r--arch/arm/mach-s3c2443/clock.c2
-rw-r--r--arch/arm/mach-s3c2443/dma.c2
-rw-r--r--arch/arm/mach-s3c2443/irq.c7
-rw-r--r--arch/arm/mach-s3c2443/mach-smdk2443.c2
-rw-r--r--arch/arm/mach-s3c2443/s3c2443.c2
-rw-r--r--arch/arm/mach-sa1100/badge4.c44
-rw-r--r--arch/arm/mach-sa1100/cpu-sa1100.c4
-rw-r--r--arch/arm/mach-sa1100/cpu-sa1110.c3
-rw-r--r--arch/arm/mach-sa1100/generic.c14
-rw-r--r--arch/arm/mach-sa1100/include/mach/SA-1100.h16
-rw-r--r--arch/arm/mach-sa1100/include/mach/hardware.h18
-rw-r--r--arch/arm/mach-sa1100/include/mach/memory.h16
-rw-r--r--arch/arm/mach-sa1100/irq.c4
-rw-r--r--arch/arm/mach-sa1100/neponset.c11
-rw-r--r--arch/arm/mach-sa1100/pleb.c13
-rw-r--r--arch/arm/mach-sa1100/simpad.c2
-rw-r--r--arch/arm/mach-sa1100/ssp.c2
-rw-r--r--arch/arm/mach-shark/core.c2
-rw-r--r--arch/arm/mach-shark/include/mach/system.h2
-rw-r--r--arch/arm/mach-shark/irq.c2
-rw-r--r--arch/arm/mach-shark/leds.c2
-rw-r--r--arch/arm/mach-versatile/core.c5
-rw-r--r--arch/arm/mach-versatile/include/mach/system.h2
-rw-r--r--arch/arm/mach-versatile/pci.c2
-rw-r--r--arch/arm/mach-versatile/versatile_ab.c2
-rw-r--r--arch/arm/mach-versatile/versatile_pb.c2
-rw-r--r--arch/arm/mm/Makefile2
-rw-r--r--arch/arm/mm/abort-ev7.S1
-rw-r--r--arch/arm/mm/abort-nommu.S1
-rw-r--r--arch/arm/mm/alignment.c2
-rw-r--r--arch/arm/mm/cache-l2x0.c2
-rw-r--r--arch/arm/mm/cache-v7.S10
-rw-r--r--arch/arm/mm/cache-xsc3l2.c3
-rw-r--r--arch/arm/mm/copypage-v4mc.c2
-rw-r--r--arch/arm/mm/copypage-v6.c1
-rw-r--r--arch/arm/mm/copypage-xscale.c2
-rw-r--r--arch/arm/mm/dma-mapping.c (renamed from arch/arm/mm/consistent.c)104
-rw-r--r--arch/arm/mm/extable.c2
-rw-r--r--arch/arm/mm/fault-armv.c13
-rw-r--r--arch/arm/mm/fault.c7
-rw-r--r--arch/arm/mm/flush.c1
-rw-r--r--arch/arm/mm/init.c193
-rw-r--r--arch/arm/mm/iomap.c3
-rw-r--r--arch/arm/mm/ioremap.c15
-rw-r--r--arch/arm/mm/mm.h3
-rw-r--r--arch/arm/mm/mmap.c6
-rw-r--r--arch/arm/mm/mmu.c108
-rw-r--r--arch/arm/mm/nommu.c18
-rw-r--r--arch/arm/mm/proc-arm1020.S26
-rw-r--r--arch/arm/mm/proc-arm1020e.S26
-rw-r--r--arch/arm/mm/proc-arm1022.S26
-rw-r--r--arch/arm/mm/proc-arm1026.S26
-rw-r--r--arch/arm/mm/proc-arm6_7.S27
-rw-r--r--arch/arm/mm/proc-arm720.S25
-rw-r--r--arch/arm/mm/proc-arm740.S2
-rw-r--r--arch/arm/mm/proc-arm7tdmi.S2
-rw-r--r--arch/arm/mm/proc-arm920.S28
-rw-r--r--arch/arm/mm/proc-arm922.S26
-rw-r--r--arch/arm/mm/proc-arm925.S26
-rw-r--r--arch/arm/mm/proc-arm926.S26
-rw-r--r--arch/arm/mm/proc-arm940.S2
-rw-r--r--arch/arm/mm/proc-arm946.S2
-rw-r--r--arch/arm/mm/proc-arm9tdmi.S2
-rw-r--r--arch/arm/mm/proc-feroceon.S21
-rw-r--r--arch/arm/mm/proc-macros.S170
-rw-r--r--arch/arm/mm/proc-sa110.S21
-rw-r--r--arch/arm/mm/proc-sa1100.S21
-rw-r--r--arch/arm/mm/proc-v6.S42
-rw-r--r--arch/arm/mm/proc-v7.S39
-rw-r--r--arch/arm/mm/proc-xsc3.S56
-rw-r--r--arch/arm/mm/proc-xscale.S76
-rw-r--r--arch/arm/mm/tlb-v7.S2
-rw-r--r--arch/arm/nwfpe/fpa11_cpdt.c2
-rw-r--r--arch/arm/oprofile/Makefile1
-rw-r--r--arch/arm/oprofile/backtrace.c2
-rw-r--r--arch/arm/oprofile/common.c4
-rw-r--r--arch/arm/oprofile/op_arm_model.h1
-rw-r--r--arch/arm/oprofile/op_model_mpcore.c2
-rw-r--r--arch/arm/oprofile/op_model_v7.c411
-rw-r--r--arch/arm/oprofile/op_model_v7.h103
-rw-r--r--arch/arm/oprofile/op_model_xscale.c2
-rw-r--r--arch/arm/plat-iop/i2c.c2
-rw-r--r--arch/arm/plat-iop/io.c2
-rw-r--r--arch/arm/plat-iop/pci.c2
-rw-r--r--arch/arm/plat-iop/time.c2
-rw-r--r--arch/arm/plat-mxc/Kconfig11
-rw-r--r--arch/arm/plat-mxc/Makefile4
-rw-r--r--arch/arm/plat-mxc/clock.c1
-rw-r--r--arch/arm/plat-mxc/devices.c36
-rw-r--r--arch/arm/plat-mxc/dma-mx1-mx2.c840
-rw-r--r--arch/arm/plat-mxc/include/mach/board-mx31ads.h3
-rw-r--r--arch/arm/plat-mxc/include/mach/clock.h2
-rw-r--r--arch/arm/plat-mxc/include/mach/common.h3
-rw-r--r--arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h89
-rw-r--r--arch/arm/plat-mxc/include/mach/entry-macro.S12
-rw-r--r--arch/arm/plat-mxc/include/mach/iomux-mx1-mx2.h24
-rw-r--r--arch/arm/plat-mxc/include/mach/iomux-mx3.h20
-rw-r--r--arch/arm/plat-mxc/include/mach/irqs.h1
-rw-r--r--arch/arm/plat-mxc/include/mach/mx27.h1
-rw-r--r--arch/arm/plat-mxc/include/mach/mx31.h1
-rw-r--r--arch/arm/plat-mxc/include/mach/mxc.h6
-rw-r--r--arch/arm/plat-mxc/irq.c36
-rw-r--r--arch/arm/plat-omap/clock.c3
-rw-r--r--arch/arm/plat-omap/common.c2
-rw-r--r--arch/arm/plat-omap/cpu-omap.c2
-rw-r--r--arch/arm/plat-omap/debug-devices.c2
-rw-r--r--arch/arm/plat-omap/debug-leds.c2
-rw-r--r--arch/arm/plat-omap/devices.c125
-rw-r--r--arch/arm/plat-omap/dmtimer.c2
-rw-r--r--arch/arm/plat-omap/fb.c2
-rw-r--r--arch/arm/plat-omap/gpio.c10
-rw-r--r--arch/arm/plat-omap/include/mach/gpio.h2
-rw-r--r--arch/arm/plat-omap/include/mach/irqs.h2
-rw-r--r--arch/arm/plat-omap/include/mach/mcbsp.h2
-rw-r--r--arch/arm/plat-omap/mailbox.c2
-rw-r--r--arch/arm/plat-omap/mcbsp.c5
-rw-r--r--arch/arm/plat-omap/mux.c2
-rw-r--r--arch/arm/plat-omap/ocpi.c2
-rw-r--r--arch/arm/plat-omap/sram.c2
-rw-r--r--arch/arm/plat-omap/usb.c2
-rw-r--r--arch/arm/plat-s3c24xx/clock.c2
-rw-r--r--arch/arm/plat-s3c24xx/common-smdk.c2
-rw-r--r--arch/arm/plat-s3c24xx/cpu.c4
-rw-r--r--arch/arm/plat-s3c24xx/devs.c2
-rw-r--r--arch/arm/plat-s3c24xx/dma.c2
-rw-r--r--arch/arm/plat-s3c24xx/gpio.c2
-rw-r--r--arch/arm/plat-s3c24xx/gpiolib.c12
-rw-r--r--arch/arm/plat-s3c24xx/irq.c26
-rw-r--r--arch/arm/plat-s3c24xx/pm-simtec.c2
-rw-r--r--arch/arm/plat-s3c24xx/pm.c2
-rw-r--r--arch/arm/plat-s3c24xx/pwm-clock.c6
-rw-r--r--arch/arm/plat-s3c24xx/pwm.c5
-rw-r--r--arch/arm/plat-s3c24xx/s3c244x-clock.c2
-rw-r--r--arch/arm/plat-s3c24xx/s3c244x-irq.c9
-rw-r--r--arch/arm/plat-s3c24xx/s3c244x.c2
-rw-r--r--arch/arm/plat-s3c24xx/time.c2
-rw-r--r--arch/arm/vfp/entry.S8
-rw-r--r--arch/arm/vfp/vfphw.S25
-rw-r--r--arch/avr32/kernel/asm-offsets.c6
-rw-r--r--arch/avr32/kernel/entry-avr32b.S59
-rw-r--r--arch/avr32/mach-at32ap/pm-at32ap700x.S2
-rw-r--r--arch/blackfin/Kconfig1
-rw-r--r--arch/blackfin/Makefile26
-rw-r--r--arch/blackfin/include/asm/.gitignore (renamed from include/asm-blackfin/.gitignore)0
-rw-r--r--arch/blackfin/include/asm/Kbuild (renamed from include/asm-blackfin/Kbuild)0
-rw-r--r--arch/blackfin/include/asm/a.out.h (renamed from include/asm-blackfin/a.out.h)0
-rw-r--r--arch/blackfin/include/asm/atomic.h (renamed from include/asm-blackfin/atomic.h)0
-rw-r--r--arch/blackfin/include/asm/auxvec.h (renamed from include/asm-blackfin/auxvec.h)0
-rw-r--r--arch/blackfin/include/asm/bfin-global.h (renamed from include/asm-blackfin/bfin-global.h)0
-rw-r--r--arch/blackfin/include/asm/bfin5xx_spi.h (renamed from include/asm-blackfin/bfin5xx_spi.h)0
-rw-r--r--arch/blackfin/include/asm/bfin_simple_timer.h (renamed from include/asm-blackfin/bfin_simple_timer.h)0
-rw-r--r--arch/blackfin/include/asm/bfin_sport.h (renamed from include/asm-blackfin/bfin_sport.h)0
-rw-r--r--arch/blackfin/include/asm/bitops.h (renamed from include/asm-blackfin/bitops.h)0
-rw-r--r--arch/blackfin/include/asm/blackfin.h (renamed from include/asm-blackfin/blackfin.h)4
-rw-r--r--arch/blackfin/include/asm/bug.h (renamed from include/asm-blackfin/bug.h)0
-rw-r--r--arch/blackfin/include/asm/bugs.h (renamed from include/asm-blackfin/bugs.h)0
-rw-r--r--arch/blackfin/include/asm/byteorder.h (renamed from include/asm-blackfin/byteorder.h)0
-rw-r--r--arch/blackfin/include/asm/cache.h (renamed from include/asm-blackfin/cache.h)0
-rw-r--r--arch/blackfin/include/asm/cacheflush.h (renamed from include/asm-blackfin/cacheflush.h)0
-rw-r--r--arch/blackfin/include/asm/cdef_LPBlackfin.h (renamed from include/asm-blackfin/mach-common/cdef_LPBlackfin.h)2
-rw-r--r--arch/blackfin/include/asm/checksum.h (renamed from include/asm-blackfin/checksum.h)0
-rw-r--r--arch/blackfin/include/asm/clocks.h (renamed from include/asm-blackfin/mach-common/clocks.h)0
-rw-r--r--arch/blackfin/include/asm/context.S (renamed from include/asm-blackfin/mach-common/context.S)0
-rw-r--r--arch/blackfin/include/asm/cplb-mpu.h (renamed from include/asm-blackfin/cplb-mpu.h)0
-rw-r--r--arch/blackfin/include/asm/cplb.h (renamed from include/asm-blackfin/cplb.h)2
-rw-r--r--arch/blackfin/include/asm/cplbinit.h (renamed from include/asm-blackfin/cplbinit.h)0
-rw-r--r--arch/blackfin/include/asm/cpumask.h (renamed from include/asm-blackfin/cpumask.h)0
-rw-r--r--arch/blackfin/include/asm/cputime.h (renamed from include/asm-blackfin/cputime.h)0
-rw-r--r--arch/blackfin/include/asm/current.h (renamed from include/asm-blackfin/current.h)0
-rw-r--r--arch/blackfin/include/asm/def_LPBlackfin.h (renamed from include/asm-blackfin/mach-common/def_LPBlackfin.h)2
-rw-r--r--arch/blackfin/include/asm/delay.h (renamed from include/asm-blackfin/delay.h)2
-rw-r--r--arch/blackfin/include/asm/device.h (renamed from include/asm-blackfin/device.h)0
-rw-r--r--arch/blackfin/include/asm/div64.h (renamed from include/asm-blackfin/div64.h)0
-rw-r--r--arch/blackfin/include/asm/dma-mapping.h (renamed from include/asm-blackfin/dma-mapping.h)0
-rw-r--r--arch/blackfin/include/asm/dma.h (renamed from include/asm-blackfin/dma.h)2
-rw-r--r--arch/blackfin/include/asm/dpmc.h (renamed from include/asm-blackfin/dpmc.h)0
-rw-r--r--arch/blackfin/include/asm/early_printk.h (renamed from include/asm-blackfin/early_printk.h)0
-rw-r--r--arch/blackfin/include/asm/elf.h (renamed from include/asm-blackfin/elf.h)0
-rw-r--r--arch/blackfin/include/asm/emergency-restart.h (renamed from include/asm-blackfin/emergency-restart.h)0
-rw-r--r--arch/blackfin/include/asm/entry.h (renamed from include/asm-blackfin/entry.h)0
-rw-r--r--arch/blackfin/include/asm/errno.h (renamed from include/asm-blackfin/errno.h)0
-rw-r--r--arch/blackfin/include/asm/fb.h (renamed from include/asm-blackfin/fb.h)0
-rw-r--r--arch/blackfin/include/asm/fcntl.h (renamed from include/asm-blackfin/fcntl.h)0
-rw-r--r--arch/blackfin/include/asm/fixed_code.h (renamed from include/asm-blackfin/fixed_code.h)0
-rw-r--r--arch/blackfin/include/asm/flat.h (renamed from include/asm-blackfin/flat.h)0
-rw-r--r--arch/blackfin/include/asm/futex.h (renamed from include/asm-blackfin/futex.h)0
-rw-r--r--arch/blackfin/include/asm/gpio.h (renamed from include/asm-blackfin/gpio.h)2
-rw-r--r--arch/blackfin/include/asm/gptimers.h (renamed from include/asm-blackfin/gptimers.h)0
-rw-r--r--arch/blackfin/include/asm/hardirq.h (renamed from include/asm-blackfin/hardirq.h)0
-rw-r--r--arch/blackfin/include/asm/hw_irq.h (renamed from include/asm-blackfin/hw_irq.h)0
-rw-r--r--arch/blackfin/include/asm/io.h (renamed from include/asm-blackfin/io.h)0
-rw-r--r--arch/blackfin/include/asm/ioctl.h (renamed from include/asm-blackfin/ioctl.h)0
-rw-r--r--arch/blackfin/include/asm/ioctls.h (renamed from include/asm-blackfin/ioctls.h)0
-rw-r--r--arch/blackfin/include/asm/ipcbuf.h (renamed from include/asm-blackfin/ipcbuf.h)0
-rw-r--r--arch/blackfin/include/asm/irq.h (renamed from include/asm-blackfin/irq.h)4
-rw-r--r--arch/blackfin/include/asm/irq_handler.h (renamed from include/asm-blackfin/irq_handler.h)0
-rw-r--r--arch/blackfin/include/asm/irq_regs.h (renamed from include/asm-blackfin/irq_regs.h)0
-rw-r--r--arch/blackfin/include/asm/kdebug.h (renamed from include/asm-blackfin/kdebug.h)0
-rw-r--r--arch/blackfin/include/asm/kgdb.h (renamed from include/asm-blackfin/kgdb.h)0
-rw-r--r--arch/blackfin/include/asm/kmap_types.h (renamed from include/asm-blackfin/kmap_types.h)0
-rw-r--r--arch/blackfin/include/asm/l1layout.h (renamed from include/asm-blackfin/l1layout.h)0
-rw-r--r--arch/blackfin/include/asm/linkage.h (renamed from include/asm-blackfin/linkage.h)0
-rw-r--r--arch/blackfin/include/asm/local.h (renamed from include/asm-blackfin/local.h)0
-rw-r--r--arch/blackfin/include/asm/mem_map.h (renamed from include/asm-blackfin/mem_map.h)2
-rw-r--r--arch/blackfin/include/asm/mman.h (renamed from include/asm-blackfin/mman.h)0
-rw-r--r--arch/blackfin/include/asm/mmu.h (renamed from include/asm-blackfin/mmu.h)0
-rw-r--r--arch/blackfin/include/asm/mmu_context.h (renamed from include/asm-blackfin/mmu_context.h)6
-rw-r--r--arch/blackfin/include/asm/module.h (renamed from include/asm-blackfin/module.h)0
-rw-r--r--arch/blackfin/include/asm/msgbuf.h (renamed from include/asm-blackfin/msgbuf.h)0
-rw-r--r--arch/blackfin/include/asm/mutex.h (renamed from include/asm-blackfin/mutex.h)0
-rw-r--r--arch/blackfin/include/asm/nand.h (renamed from include/asm-blackfin/nand.h)0
-rw-r--r--arch/blackfin/include/asm/page.h (renamed from include/asm-blackfin/page.h)0
-rw-r--r--arch/blackfin/include/asm/page_offset.h (renamed from include/asm-blackfin/page_offset.h)0
-rw-r--r--arch/blackfin/include/asm/param.h (renamed from include/asm-blackfin/param.h)0
-rw-r--r--arch/blackfin/include/asm/pci.h (renamed from include/asm-blackfin/pci.h)0
-rw-r--r--arch/blackfin/include/asm/percpu.h (renamed from include/asm-blackfin/percpu.h)0
-rw-r--r--arch/blackfin/include/asm/pgalloc.h (renamed from include/asm-blackfin/pgalloc.h)0
-rw-r--r--arch/blackfin/include/asm/pgtable.h (renamed from include/asm-blackfin/pgtable.h)2
-rw-r--r--arch/blackfin/include/asm/poll.h (renamed from include/asm-blackfin/poll.h)0
-rw-r--r--arch/blackfin/include/asm/portmux.h (renamed from include/asm-blackfin/portmux.h)2
-rw-r--r--arch/blackfin/include/asm/posix_types.h (renamed from include/asm-blackfin/posix_types.h)0
-rw-r--r--arch/blackfin/include/asm/processor.h (renamed from include/asm-blackfin/processor.h)0
-rw-r--r--arch/blackfin/include/asm/ptrace.h (renamed from include/asm-blackfin/ptrace.h)0
-rw-r--r--arch/blackfin/include/asm/reboot.h (renamed from include/asm-blackfin/reboot.h)0
-rw-r--r--arch/blackfin/include/asm/resource.h (renamed from include/asm-blackfin/resource.h)0
-rw-r--r--arch/blackfin/include/asm/scatterlist.h (renamed from include/asm-blackfin/scatterlist.h)0
-rw-r--r--arch/blackfin/include/asm/sections.h (renamed from include/asm-blackfin/sections.h)0
-rw-r--r--arch/blackfin/include/asm/segment.h (renamed from include/asm-blackfin/segment.h)0
-rw-r--r--arch/blackfin/include/asm/sembuf.h (renamed from include/asm-blackfin/sembuf.h)0
-rw-r--r--arch/blackfin/include/asm/serial.h (renamed from include/asm-blackfin/serial.h)0
-rw-r--r--arch/blackfin/include/asm/setup.h (renamed from include/asm-blackfin/setup.h)0
-rw-r--r--arch/blackfin/include/asm/shmbuf.h (renamed from include/asm-blackfin/shmbuf.h)0
-rw-r--r--arch/blackfin/include/asm/shmparam.h (renamed from include/asm-blackfin/shmparam.h)0
-rw-r--r--arch/blackfin/include/asm/sigcontext.h (renamed from include/asm-blackfin/sigcontext.h)0
-rw-r--r--arch/blackfin/include/asm/siginfo.h (renamed from include/asm-blackfin/siginfo.h)0
-rw-r--r--arch/blackfin/include/asm/signal.h (renamed from include/asm-blackfin/signal.h)0
-rw-r--r--arch/blackfin/include/asm/socket.h (renamed from include/asm-blackfin/socket.h)0
-rw-r--r--arch/blackfin/include/asm/sockios.h (renamed from include/asm-blackfin/sockios.h)0
-rw-r--r--arch/blackfin/include/asm/spinlock.h (renamed from include/asm-blackfin/spinlock.h)0
-rw-r--r--arch/blackfin/include/asm/stat.h (renamed from include/asm-blackfin/stat.h)0
-rw-r--r--arch/blackfin/include/asm/statfs.h (renamed from include/asm-blackfin/statfs.h)0
-rw-r--r--arch/blackfin/include/asm/string.h (renamed from include/asm-blackfin/string.h)0
-rw-r--r--arch/blackfin/include/asm/system.h (renamed from include/asm-blackfin/system.h)2
-rw-r--r--arch/blackfin/include/asm/termbits.h (renamed from include/asm-blackfin/termbits.h)0
-rw-r--r--arch/blackfin/include/asm/termios.h (renamed from include/asm-blackfin/termios.h)0
-rw-r--r--arch/blackfin/include/asm/thread_info.h (renamed from include/asm-blackfin/thread_info.h)0
-rw-r--r--arch/blackfin/include/asm/time.h (renamed from include/asm-blackfin/time.h)0
-rw-r--r--arch/blackfin/include/asm/timex.h (renamed from include/asm-blackfin/timex.h)0
-rw-r--r--arch/blackfin/include/asm/tlb.h (renamed from include/asm-blackfin/tlb.h)0
-rw-r--r--arch/blackfin/include/asm/tlbflush.h (renamed from include/asm-blackfin/tlbflush.h)0
-rw-r--r--arch/blackfin/include/asm/topology.h (renamed from include/asm-blackfin/topology.h)0
-rw-r--r--arch/blackfin/include/asm/trace.h (renamed from include/asm-blackfin/trace.h)0
-rw-r--r--arch/blackfin/include/asm/traps.h (renamed from include/asm-blackfin/traps.h)0
-rw-r--r--arch/blackfin/include/asm/types.h (renamed from include/asm-blackfin/types.h)0
-rw-r--r--arch/blackfin/include/asm/uaccess.h (renamed from include/asm-blackfin/uaccess.h)0
-rw-r--r--arch/blackfin/include/asm/ucontext.h (renamed from include/asm-blackfin/ucontext.h)0
-rw-r--r--arch/blackfin/include/asm/unaligned.h (renamed from include/asm-blackfin/unaligned.h)0
-rw-r--r--arch/blackfin/include/asm/unistd.h (renamed from include/asm-blackfin/unistd.h)0
-rw-r--r--arch/blackfin/include/asm/user.h (renamed from include/asm-blackfin/user.h)0
-rw-r--r--arch/blackfin/kernel/entry.S2
-rw-r--r--arch/blackfin/mach-bf527/head.S4
-rw-r--r--arch/blackfin/mach-bf527/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf527/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bf527.h (renamed from include/asm-blackfin/mach-bf527/bf527.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf527/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf527/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf527/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF522.h (renamed from include/asm-blackfin/mach-bf527/cdefBF522.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF525.h (renamed from include/asm-blackfin/mach-bf527/cdefBF525.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF527.h (renamed from include/asm-blackfin/mach-bf527/cdefBF527.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h (renamed from include/asm-blackfin/mach-bf527/cdefBF52x_base.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF522.h (renamed from include/asm-blackfin/mach-bf527/defBF522.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF525.h (renamed from include/asm-blackfin/mach-bf527/defBF525.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF527.h (renamed from include/asm-blackfin/mach-bf527/defBF527.h)2
-rw-r--r--arch/blackfin/mach-bf527/include/mach/defBF52x_base.h (renamed from include/asm-blackfin/mach-bf527/defBF52x_base.h)185
-rw-r--r--arch/blackfin/mach-bf527/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf527/dma.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf527/irq.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf527/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf527/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf527/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf527/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf533/head.S4
-rw-r--r--arch/blackfin/mach-bf533/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf533/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bf533.h (renamed from include/asm-blackfin/mach-bf533/bf533.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf533/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf533/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf533/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/cdefBF532.h (renamed from include/asm-blackfin/mach-bf533/cdefBF532.h)2
-rw-r--r--arch/blackfin/mach-bf533/include/mach/defBF532.h (renamed from include/asm-blackfin/mach-bf533/defBF532.h)2
-rw-r--r--arch/blackfin/mach-bf533/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf533/dma.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf533/irq.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf533/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf533/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf533/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf533/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf537/boards/stamp.c27
-rw-r--r--arch/blackfin/mach-bf537/head.S4
-rw-r--r--arch/blackfin/mach-bf537/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf537/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bf537.h (renamed from include/asm-blackfin/mach-bf537/bf537.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf537/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf537/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf537/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/cdefBF534.h (renamed from include/asm-blackfin/mach-bf537/cdefBF534.h)2
-rw-r--r--arch/blackfin/mach-bf537/include/mach/cdefBF537.h (renamed from include/asm-blackfin/mach-bf537/cdefBF537.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/defBF534.h (renamed from include/asm-blackfin/mach-bf537/defBF534.h)2
-rw-r--r--arch/blackfin/mach-bf537/include/mach/defBF537.h (renamed from include/asm-blackfin/mach-bf537/defBF537.h)2
-rw-r--r--arch/blackfin/mach-bf537/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf537/dma.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf537/irq.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf537/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf537/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf537/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf537/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf548/boards/cm_bf548.c4
-rw-r--r--arch/blackfin/mach-bf548/boards/ezkit.c4
-rw-r--r--arch/blackfin/mach-bf548/head.S4
-rw-r--r--arch/blackfin/mach-bf548/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf548/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf548.h (renamed from include/asm-blackfin/mach-bf548/bf548.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h (renamed from include/asm-blackfin/mach-bf548/bf54x-lq043.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bf54x_keys.h (renamed from include/asm-blackfin/mach-bf548/bf54x_keys.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf548/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf548/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf548/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF542.h (renamed from include/asm-blackfin/mach-bf548/cdefBF542.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF544.h (renamed from include/asm-blackfin/mach-bf548/cdefBF544.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF547.h (renamed from include/asm-blackfin/mach-bf548/cdefBF547.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF548.h (renamed from include/asm-blackfin/mach-bf548/cdefBF548.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF549.h (renamed from include/asm-blackfin/mach-bf548/cdefBF549.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h (renamed from include/asm-blackfin/mach-bf548/cdefBF54x_base.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF542.h (renamed from include/asm-blackfin/mach-bf548/defBF542.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF544.h (renamed from include/asm-blackfin/mach-bf548/defBF544.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF547.h (renamed from include/asm-blackfin/mach-bf548/defBF547.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF548.h (renamed from include/asm-blackfin/mach-bf548/defBF548.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF549.h (renamed from include/asm-blackfin/mach-bf548/defBF549.h)2
-rw-r--r--arch/blackfin/mach-bf548/include/mach/defBF54x_base.h (renamed from include/asm-blackfin/mach-bf548/defBF54x_base.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf548/dma.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/gpio.h (renamed from include/asm-blackfin/mach-bf548/gpio.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf548/irq.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf548/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf548/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf548/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf548/portmux.h)0
-rw-r--r--arch/blackfin/mach-bf561/head.S4
-rw-r--r--arch/blackfin/mach-bf561/include/mach/anomaly.h (renamed from include/asm-blackfin/mach-bf561/anomaly.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bf561.h (renamed from include/asm-blackfin/mach-bf561/bf561.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h (renamed from include/asm-blackfin/mach-bf561/bfin_serial_5xx.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/bfin_sir.h (renamed from include/asm-blackfin/mach-bf561/bfin_sir.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/blackfin.h (renamed from include/asm-blackfin/mach-bf561/blackfin.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/cdefBF561.h (renamed from include/asm-blackfin/mach-bf561/cdefBF561.h)2
-rw-r--r--arch/blackfin/mach-bf561/include/mach/defBF561.h (renamed from include/asm-blackfin/mach-bf561/defBF561.h)2
-rw-r--r--arch/blackfin/mach-bf561/include/mach/dma.h (renamed from include/asm-blackfin/mach-bf561/dma.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/irq.h (renamed from include/asm-blackfin/mach-bf561/irq.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/mem_init.h (renamed from include/asm-blackfin/mach-bf561/mem_init.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/mem_map.h (renamed from include/asm-blackfin/mach-bf561/mem_map.h)0
-rw-r--r--arch/blackfin/mach-bf561/include/mach/portmux.h (renamed from include/asm-blackfin/mach-bf561/portmux.h)0
-rw-r--r--arch/blackfin/mach-common/arch_checks.c4
-rw-r--r--arch/blackfin/mach-common/dpmc_modes.S2
-rw-r--r--arch/blackfin/mach-common/entry.S2
-rw-r--r--arch/blackfin/mach-common/interrupt.S4
-rw-r--r--arch/blackfin/mach-common/ints-priority.c4
-rw-r--r--arch/blackfin/mm/blackfin_sram.c24
-rw-r--r--arch/ia64/include/asm/elf.h15
-rw-r--r--arch/ia64/include/asm/io.h10
-rw-r--r--arch/ia64/include/asm/sections.h14
-rw-r--r--arch/ia64/include/asm/sn/bte.h9
-rw-r--r--arch/ia64/kernel/module.c9
-rw-r--r--arch/ia64/kernel/smpboot.c5
-rw-r--r--arch/ia64/sn/pci/tioca_provider.c4
-rw-r--r--arch/m68k/atari/atakeyb.c9
-rw-r--r--arch/m68k/configs/amiga_defconfig53
-rw-r--r--arch/m68k/configs/apollo_defconfig53
-rw-r--r--arch/m68k/configs/atari_defconfig60
-rw-r--r--arch/m68k/configs/bvme6000_defconfig52
-rw-r--r--arch/m68k/configs/hp300_defconfig52
-rw-r--r--arch/m68k/configs/mac_defconfig53
-rw-r--r--arch/m68k/configs/multi_defconfig62
-rw-r--r--arch/m68k/configs/mvme147_defconfig52
-rw-r--r--arch/m68k/configs/mvme16x_defconfig52
-rw-r--r--arch/m68k/configs/q40_defconfig53
-rw-r--r--arch/m68k/configs/sun3_defconfig54
-rw-r--r--arch/m68k/configs/sun3x_defconfig52
-rw-r--r--arch/mips/Kconfig9
-rw-r--r--arch/mips/emma2rh/markeins/setup.c16
-rw-r--r--arch/mips/jazz/setup.c13
-rw-r--r--arch/mips/kernel/.gitignore1
-rw-r--r--arch/mips/kernel/kgdb.c7
-rw-r--r--arch/mips/kernel/scall32-o32.S6
-rw-r--r--arch/mips/kernel/scall64-64.S6
-rw-r--r--arch/mips/kernel/scall64-n32.S6
-rw-r--r--arch/mips/kernel/scall64-o32.S6
-rw-r--r--arch/mips/kernel/setup.c75
-rw-r--r--arch/mips/kernel/traps.c18
-rw-r--r--arch/mips/mm/c-r3k.c1
-rw-r--r--arch/mips/mm/c-r4k.c18
-rw-r--r--arch/mips/mm/c-tx39.c2
-rw-r--r--arch/mips/mm/cache.c1
-rw-r--r--arch/mips/mm/tlbex.c6
-rw-r--r--arch/mips/pci/pci-ip27.c1
-rw-r--r--arch/mips/rb532/devices.c16
-rw-r--r--arch/mips/sgi-ip22/ip22-platform.c2
-rw-r--r--arch/mips/txx9/generic/setup.c4
-rw-r--r--arch/mips/vr41xx/common/irq.c6
-rw-r--r--arch/mn10300/mm/fault.c2
-rw-r--r--arch/parisc/hpux/fs.c30
-rw-r--r--arch/parisc/kernel/module.c14
-rw-r--r--arch/powerpc/Makefile5
-rw-r--r--arch/powerpc/boot/Makefile2
-rw-r--r--arch/powerpc/boot/dts/mpc8641_hpcn.dts2
-rw-r--r--arch/powerpc/boot/dts/tqm8548-bigflash.dts8
-rw-r--r--arch/powerpc/boot/dts/tqm8548.dts3
-rwxr-xr-xarch/powerpc/boot/wrapper2
-rw-r--r--arch/powerpc/configs/83xx/asp8347_defconfig (renamed from arch/powerpc/configs/asp8347_defconfig)312
-rw-r--r--arch/powerpc/configs/83xx/mpc8313_rdb_defconfig188
-rw-r--r--arch/powerpc/configs/83xx/mpc8315_rdb_defconfig188
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_mds_defconfig172
-rw-r--r--arch/powerpc/configs/83xx/mpc832x_rdb_defconfig176
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itx_defconfig175
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig172
-rw-r--r--arch/powerpc/configs/83xx/mpc834x_mds_defconfig168
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_mds_defconfig172
-rw-r--r--arch/powerpc/configs/83xx/mpc836x_rdk_defconfig183
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_mds_defconfig351
-rw-r--r--arch/powerpc/configs/83xx/mpc837x_rdb_defconfig340
-rw-r--r--arch/powerpc/configs/83xx/sbc834x_defconfig239
-rw-r--r--arch/powerpc/configs/85xx/ksi8560_defconfig95
-rw-r--r--arch/powerpc/configs/85xx/mpc8536_ds_defconfig (renamed from arch/powerpc/configs/mpc8536_ds_defconfig)167
-rw-r--r--arch/powerpc/configs/85xx/mpc8540_ads_defconfig71
-rw-r--r--arch/powerpc/configs/85xx/mpc8544_ds_defconfig178
-rw-r--r--arch/powerpc/configs/85xx/mpc8560_ads_defconfig98
-rw-r--r--arch/powerpc/configs/85xx/mpc8568mds_defconfig121
-rw-r--r--arch/powerpc/configs/85xx/mpc8572_ds_defconfig177
-rw-r--r--arch/powerpc/configs/85xx/mpc85xx_cds_defconfig85
-rw-r--r--arch/powerpc/configs/85xx/sbc8548_defconfig63
-rw-r--r--arch/powerpc/configs/85xx/sbc8560_defconfig69
-rw-r--r--arch/powerpc/configs/85xx/stx_gp3_defconfig163
-rw-r--r--arch/powerpc/configs/85xx/tqm8540_defconfig112
-rw-r--r--arch/powerpc/configs/85xx/tqm8541_defconfig139
-rw-r--r--arch/powerpc/configs/85xx/tqm8548_defconfig129
-rw-r--r--arch/powerpc/configs/85xx/tqm8555_defconfig139
-rw-r--r--arch/powerpc/configs/85xx/tqm8560_defconfig139
-rw-r--r--arch/powerpc/configs/adder875_defconfig55
-rw-r--r--arch/powerpc/configs/c2k_defconfig245
-rw-r--r--arch/powerpc/configs/chrp32_defconfig141
-rw-r--r--arch/powerpc/configs/ep8248e_defconfig198
-rw-r--r--arch/powerpc/configs/ep88xc_defconfig57
-rw-r--r--arch/powerpc/configs/g5_defconfig227
-rw-r--r--arch/powerpc/configs/iseries_defconfig87
-rw-r--r--arch/powerpc/configs/linkstation_defconfig133
-rw-r--r--arch/powerpc/configs/maple_defconfig381
-rw-r--r--arch/powerpc/configs/mpc7448_hpc2_defconfig72
-rw-r--r--arch/powerpc/configs/mpc8272_ads_defconfig132
-rw-r--r--arch/powerpc/configs/mpc83xx_defconfig389
-rw-r--r--arch/powerpc/configs/mpc85xx_defconfig207
-rw-r--r--arch/powerpc/configs/mpc8610_hpcd_defconfig165
-rw-r--r--arch/powerpc/configs/mpc8641_hpcn_defconfig215
-rw-r--r--arch/powerpc/configs/mpc866_ads_defconfig61
-rw-r--r--arch/powerpc/configs/mpc885_ads_defconfig57
-rw-r--r--arch/powerpc/configs/pmac32_defconfig241
-rw-r--r--arch/powerpc/configs/ppc64_defconfig237
-rw-r--r--arch/powerpc/configs/ppc6xx_defconfig144
-rw-r--r--arch/powerpc/configs/pq2fads_defconfig147
-rw-r--r--arch/powerpc/configs/prpmc2800_defconfig125
-rw-r--r--arch/powerpc/configs/ps3_defconfig153
-rw-r--r--arch/powerpc/configs/pseries_defconfig172
-rw-r--r--arch/powerpc/configs/sbc8641d_defconfig173
-rw-r--r--arch/powerpc/configs/storcenter_defconfig113
-rw-r--r--arch/powerpc/include/asm/cpm2.h5
-rw-r--r--arch/powerpc/include/asm/pgtable-ppc64.h6
-rw-r--r--arch/powerpc/include/asm/sections.h3
-rw-r--r--arch/powerpc/kernel/Makefile7
-rw-r--r--arch/powerpc/kernel/align.c2
-rw-r--r--arch/powerpc/kernel/idle_6xx.S2
-rw-r--r--arch/powerpc/kernel/idle_e500.S3
-rw-r--r--arch/powerpc/kernel/module_64.c13
-rw-r--r--arch/powerpc/kernel/vmlinux.lds.S7
-rw-r--r--arch/powerpc/mm/hash_utils_64.c18
-rw-r--r--arch/powerpc/platforms/cell/spufs/sched.c29
-rw-r--r--arch/powerpc/platforms/powermac/Makefile2
-rw-r--r--arch/powerpc/platforms/ps3/htab.c269
-rw-r--r--arch/powerpc/platforms/ps3/setup.c1
-rw-r--r--arch/powerpc/platforms/ps3/spu.c18
-rw-r--r--arch/powerpc/platforms/pseries/setup.c1
-rw-r--r--arch/powerpc/sysdev/cpm_common.c37
-rw-r--r--arch/powerpc/sysdev/qe_lib/ucc_fast.c4
-rw-r--r--arch/powerpc/sysdev/qe_lib/ucc_slow.c8
-rw-r--r--arch/s390/kernel/compat_ptrace.h1
-rw-r--r--arch/s390/kernel/ptrace.c28
-rw-r--r--arch/s390/kernel/vmlinux.lds.S2
-rw-r--r--arch/sh/configs/ap325rxa_defconfig22
-rw-r--r--arch/sh/configs/migor_defconfig21
-rw-r--r--arch/sh/include/asm/uaccess_64.h2
-rw-r--r--arch/sh/kernel/cpu/sh5/entry.S14
-rw-r--r--arch/sh/kernel/entry-common.S27
-rw-r--r--arch/sh/kernel/machine_kexec.c2
-rw-r--r--arch/sh/kernel/ptrace_64.c2
-rw-r--r--arch/sh/kernel/setup.c6
-rw-r--r--arch/sh/kernel/sys_sh.c2
-rw-r--r--arch/sh/mm/consistent.c6
-rw-r--r--arch/sparc/Makefile8
-rw-r--r--arch/sparc/boot/Makefile6
-rw-r--r--arch/sparc/include/asm/smp_32.h25
-rw-r--r--arch/sparc/kernel/of_device.c21
-rw-r--r--arch/sparc/kernel/ptrace.c4
-rw-r--r--arch/sparc/kernel/sun4d_smp.c16
-rw-r--r--arch/sparc/kernel/sun4m_smp.c12
-rw-r--r--arch/sparc64/Kconfig1
-rw-r--r--arch/sparc64/kernel/irq.c2
-rw-r--r--arch/sparc64/kernel/of_device.c20
-rw-r--r--arch/sparc64/kernel/pci_psycho.c6
-rw-r--r--arch/sparc64/kernel/prom.c104
-rw-r--r--arch/sparc64/kernel/ptrace.c8
-rw-r--r--arch/sparc64/kernel/smp.c14
-rw-r--r--arch/sparc64/mm/init.c2
-rw-r--r--arch/x86/Kconfig.cpu13
-rw-r--r--arch/x86/boot/cpucheck.c8
-rw-r--r--arch/x86/configs/i386_defconfig303
-rw-r--r--arch/x86/configs/x86_64_defconfig258
-rw-r--r--arch/x86/kernel/alternative.c36
-rw-r--r--arch/x86/kernel/cpu/amd.c9
-rw-r--r--arch/x86/kernel/cpu/centaur.c11
-rw-r--r--arch/x86/kernel/cpu/common.c34
-rw-r--r--arch/x86/kernel/cpu/common_64.c74
-rw-r--r--arch/x86/kernel/cpu/cyrix.c32
-rw-r--r--arch/x86/kernel/cpu/feature_names.c3
-rw-r--r--arch/x86/kernel/cpuid.c15
-rw-r--r--arch/x86/kernel/e820.c2
-rw-r--r--arch/x86/kernel/hpet.c19
-rw-r--r--arch/x86/kernel/io_delay.c8
-rw-r--r--arch/x86/kernel/msr.c38
-rw-r--r--arch/x86/kernel/tsc.c234
-rw-r--r--arch/x86/kvm/mmu.c4
-rw-r--r--arch/x86/kvm/svm.c12
-rw-r--r--arch/x86/kvm/vmx.c3
-rw-r--r--arch/x86/kvm/vmx.h2
-rw-r--r--arch/x86/lib/msr-on-cpu.c22
-rw-r--r--arch/x86/pci/i386.c87
-rw-r--r--arch/x86/xen/enlighten.c2
-rw-r--r--block/blk-core.c2
-rw-r--r--block/blk-tag.c6
-rw-r--r--block/bsg.c44
-rw-r--r--block/cmd-filter.c201
-rw-r--r--block/genhd.c15
-rw-r--r--block/scsi_ioctl.c94
-rw-r--r--crypto/async_tx/async_tx.c3
-rw-r--r--crypto/camellia.c84
-rw-r--r--drivers/acpi/dispatcher/dsobject.c2
-rw-r--r--drivers/acpi/processor_core.c2
-rw-r--r--drivers/acpi/processor_perflib.c2
-rw-r--r--drivers/acpi/sbshc.c7
-rw-r--r--drivers/acpi/tables.c2
-rw-r--r--drivers/ata/Kconfig6
-rw-r--r--drivers/ata/ahci.c21
-rw-r--r--drivers/ata/ata_piix.c2
-rw-r--r--drivers/ata/libata-sff.c5
-rw-r--r--drivers/ata/pata_marvell.c51
-rw-r--r--drivers/ata/pata_sil680.c3
-rw-r--r--drivers/ata/sata_inic162x.c3
-rw-r--r--drivers/ata/sata_mv.c3
-rw-r--r--drivers/ata/sata_nv.c19
-rw-r--r--drivers/block/pktcdvd.c35
-rw-r--r--drivers/char/random.c19
-rw-r--r--drivers/char/tty_io.c7
-rw-r--r--drivers/char/tty_ioctl.c6
-rw-r--r--drivers/clocksource/acpi_pm.c54
-rw-r--r--drivers/crypto/talitos.c6
-rw-r--r--drivers/firmware/iscsi_ibft.c3
-rw-r--r--drivers/gpu/drm/drm_irq.c20
-rw-r--r--drivers/gpu/drm/drm_lock.c33
-rw-r--r--drivers/gpu/drm/radeon/r300_cmdbuf.c196
-rw-r--r--drivers/gpu/drm/radeon/r300_reg.h5
-rw-r--r--drivers/gpu/drm/radeon/radeon_cp.c38
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.h19
-rw-r--r--drivers/hwmon/Kconfig9
-rw-r--r--drivers/hwmon/Makefile1
-rw-r--r--drivers/hwmon/max1111.c244
-rw-r--r--drivers/i2c/busses/i2c-pxa.c94
-rw-r--r--drivers/i2c/busses/i2c-sh_mobile.c271
-rw-r--r--drivers/i2c/i2c-core.c18
-rw-r--r--drivers/ide/Kconfig16
-rw-r--r--drivers/ide/arm/palm_bk3710.c8
-rw-r--r--drivers/ide/ide-disk.c14
-rw-r--r--drivers/ide/pci/hpt366.c31
-rw-r--r--drivers/infiniband/hw/mlx4/mr.c2
-rw-r--r--drivers/input/keyboard/bf54x-keys.c2
-rw-r--r--drivers/input/keyboard/corgikbd.c6
-rw-r--r--drivers/input/keyboard/spitzkbd.c6
-rw-r--r--drivers/input/keyboard/tosakbd.c6
-rw-r--r--drivers/input/mouse/bcm5974.c74
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h2
-rw-r--r--drivers/input/touchscreen/Kconfig1
-rw-r--r--drivers/input/touchscreen/ads7846.c68
-rw-r--r--drivers/input/touchscreen/ucb1400_ts.c382
-rw-r--r--drivers/leds/Kconfig14
-rw-r--r--drivers/leds/Makefile2
-rw-r--r--drivers/leds/leds-corgi.c124
-rw-r--r--drivers/leds/leds-spitz.c131
-rw-r--r--drivers/md/bitmap.c45
-rw-r--r--drivers/md/md.c2
-rw-r--r--drivers/media/common/saa7146_video.c4
-rw-r--r--drivers/media/common/tuners/mt2131.c2
-rw-r--r--drivers/media/common/tuners/mt2131.h2
-rw-r--r--drivers/media/common/tuners/mt2131_priv.h2
-rw-r--r--drivers/media/common/tuners/mxl5005s.c4
-rw-r--r--drivers/media/common/tuners/mxl5005s.h2
-rw-r--r--drivers/media/common/tuners/tuner-simple.c33
-rw-r--r--drivers/media/common/tuners/xc5000.c2
-rw-r--r--drivers/media/common/tuners/xc5000.h2
-rw-r--r--drivers/media/common/tuners/xc5000_priv.h2
-rw-r--r--drivers/media/dvb/b2c2/flexcop-fe-tuner.c3
-rw-r--r--drivers/media/dvb/b2c2/flexcop-i2c.c12
-rw-r--r--drivers/media/dvb/bt8xx/dst.c4
-rw-r--r--drivers/media/dvb/dvb-core/dmxdev.c1
-rw-r--r--drivers/media/dvb/dvb-core/dvb_ca_en50221.c4
-rw-r--r--drivers/media/dvb/dvb-core/dvb_frontend.c8
-rw-r--r--drivers/media/dvb/dvb-usb/cxusb.c2
-rw-r--r--drivers/media/dvb/dvb-usb/dib0700_devices.c9
-rw-r--r--drivers/media/dvb/dvb-usb/dvb-usb-ids.h1
-rw-r--r--drivers/media/dvb/frontends/au8522.c47
-rw-r--r--drivers/media/dvb/frontends/au8522.h11
-rw-r--r--drivers/media/dvb/frontends/cx22702.c2
-rw-r--r--drivers/media/dvb/frontends/cx22702.h2
-rw-r--r--drivers/media/dvb/frontends/cx24123.c6
-rw-r--r--drivers/media/dvb/frontends/cx24123.h2
-rw-r--r--drivers/media/dvb/frontends/s5h1409.c3
-rw-r--r--drivers/media/dvb/frontends/s5h1409.h2
-rw-r--r--drivers/media/dvb/frontends/s5h1411.c3
-rw-r--r--drivers/media/dvb/frontends/s5h1411.h2
-rw-r--r--drivers/media/dvb/frontends/s5h1420.c3
-rw-r--r--drivers/media/dvb/frontends/tda10048.c4
-rw-r--r--drivers/media/dvb/frontends/tda10048.h2
-rw-r--r--drivers/media/dvb/siano/sms-cards.c2
-rw-r--r--drivers/media/dvb/siano/sms-cards.h2
-rw-r--r--drivers/media/dvb/siano/smscoreapi.c2
-rw-r--r--drivers/media/dvb/siano/smscoreapi.h2
-rw-r--r--drivers/media/dvb/siano/smsdvb.c2
-rw-r--r--drivers/media/dvb/siano/smsusb.c2
-rw-r--r--drivers/media/dvb/ttpci/budget-patch.c3
-rw-r--r--drivers/media/dvb/ttpci/budget.c3
-rw-r--r--drivers/media/radio/Makefile4
-rw-r--r--drivers/media/radio/dsbr100.c2
-rw-r--r--drivers/media/radio/miropcm20-radio.c266
-rw-r--r--drivers/media/radio/miropcm20-rds-core.c211
-rw-r--r--drivers/media/radio/miropcm20-rds-core.h19
-rw-r--r--drivers/media/radio/miropcm20-rds.c136
-rw-r--r--drivers/media/radio/radio-aimslab.c3
-rw-r--r--drivers/media/radio/radio-aztech.c3
-rw-r--r--drivers/media/radio/radio-cadet.c2
-rw-r--r--drivers/media/radio/radio-gemtek-pci.c2
-rw-r--r--drivers/media/radio/radio-gemtek.c3
-rw-r--r--drivers/media/radio/radio-maestro.c3
-rw-r--r--drivers/media/radio/radio-maxiradio.c28
-rw-r--r--drivers/media/radio/radio-rtrack2.c3
-rw-r--r--drivers/media/radio/radio-sf16fmi.c2
-rw-r--r--drivers/media/radio/radio-si470x.c4
-rw-r--r--drivers/media/radio/radio-terratec.c3
-rw-r--r--drivers/media/radio/radio-trust.c3
-rw-r--r--drivers/media/radio/radio-zoltrix.c3
-rw-r--r--drivers/media/video/Kconfig2
-rw-r--r--drivers/media/video/Makefile4
-rw-r--r--drivers/media/video/au0828/Kconfig1
-rw-r--r--drivers/media/video/au0828/au0828-cards.c9
-rw-r--r--drivers/media/video/au0828/au0828-cards.h3
-rw-r--r--drivers/media/video/au0828/au0828-core.c4
-rw-r--r--drivers/media/video/au0828/au0828-dvb.c25
-rw-r--r--drivers/media/video/au0828/au0828-i2c.c2
-rw-r--r--drivers/media/video/au0828/au0828-reg.h2
-rw-r--r--drivers/media/video/au0828/au0828.h2
-rw-r--r--drivers/media/video/bt8xx/bttv-cards.c73
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c1
-rw-r--r--drivers/media/video/bt8xx/bttv-risc.c3
-rw-r--r--drivers/media/video/bt8xx/bttvp.h5
-rw-r--r--drivers/media/video/btcx-risc.c4
-rw-r--r--drivers/media/video/btcx-risc.h2
-rw-r--r--drivers/media/video/bw-qcam.c3
-rw-r--r--drivers/media/video/c-qcam.c3
-rw-r--r--drivers/media/video/cpia.c2
-rw-r--r--drivers/media/video/cpia2/cpia2_v4l.c4
-rw-r--r--drivers/media/video/cx18/cx18-av-firmware.c16
-rw-r--r--drivers/media/video/cx18/cx18-driver.c6
-rw-r--r--drivers/media/video/cx18/cx18-dvb.c2
-rw-r--r--drivers/media/video/cx18/cx18-dvb.h2
-rw-r--r--drivers/media/video/cx18/cx18-irq.c2
-rw-r--r--drivers/media/video/cx18/cx18-queue.c129
-rw-r--r--drivers/media/video/cx18/cx18-queue.h2
-rw-r--r--drivers/media/video/cx23885/cx23885-417.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-cards.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-core.c4
-rw-r--r--drivers/media/video/cx23885/cx23885-dvb.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-i2c.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-reg.h2
-rw-r--r--drivers/media/video/cx23885/cx23885-vbi.c2
-rw-r--r--drivers/media/video/cx23885/cx23885-video.c4
-rw-r--r--drivers/media/video/cx23885/cx23885.h2
-rw-r--r--drivers/media/video/cx25840/cx25840-core.c2
-rw-r--r--drivers/media/video/dabusb.c1
-rw-r--r--drivers/media/video/et61x251/et61x251_core.c1
-rw-r--r--drivers/media/video/gspca/conex.c28
-rw-r--r--drivers/media/video/gspca/etoms.c30
-rw-r--r--drivers/media/video/gspca/gspca.c119
-rw-r--r--drivers/media/video/gspca/gspca.h21
-rw-r--r--drivers/media/video/gspca/mars.c41
-rw-r--r--drivers/media/video/gspca/ov519.c1167
-rw-r--r--drivers/media/video/gspca/pac207.c87
-rw-r--r--drivers/media/video/gspca/pac7311.c1110
-rw-r--r--drivers/media/video/gspca/pac_common.h60
-rw-r--r--drivers/media/video/gspca/sonixb.c594
-rw-r--r--drivers/media/video/gspca/sonixj.c539
-rw-r--r--drivers/media/video/gspca/spca500.c20
-rw-r--r--drivers/media/video/gspca/spca501.c16
-rw-r--r--drivers/media/video/gspca/spca505.c16
-rw-r--r--drivers/media/video/gspca/spca506.c20
-rw-r--r--drivers/media/video/gspca/spca508.c21
-rw-r--r--drivers/media/video/gspca/spca561.c727
-rw-r--r--drivers/media/video/gspca/stk014.c20
-rw-r--r--drivers/media/video/gspca/sunplus.c167
-rw-r--r--drivers/media/video/gspca/t613.c41
-rw-r--r--drivers/media/video/gspca/tv8532.c20
-rw-r--r--drivers/media/video/gspca/vc032x.c31
-rw-r--r--drivers/media/video/gspca/zc3xx.c85
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.h1
-rw-r--r--drivers/media/video/ivtv/ivtv-irq.c29
-rw-r--r--drivers/media/video/ivtv/ivtv-queue.h2
-rw-r--r--drivers/media/video/ivtv/ivtv-streams.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-vbi.c4
-rw-r--r--drivers/media/video/ivtv/ivtv-version.h2
-rw-r--r--drivers/media/video/ks0127.c31
-rw-r--r--drivers/media/video/meye.c2
-rw-r--r--drivers/media/video/mxb.c12
-rw-r--r--drivers/media/video/ov511.c14
-rw-r--r--drivers/media/video/pms.c13
-rw-r--r--drivers/media/video/pwc/pwc-ctrl.c18
-rw-r--r--drivers/media/video/pxa_camera.c12
-rw-r--r--drivers/media/video/saa7115.c5
-rw-r--r--drivers/media/video/se401.c2
-rw-r--r--drivers/media/video/sn9c102/sn9c102_core.c1
-rw-r--r--drivers/media/video/sn9c102/sn9c102_devtable.h21
-rw-r--r--drivers/media/video/stv680.c2
-rw-r--r--drivers/media/video/usbvideo/ibmcam.c6
-rw-r--r--drivers/media/video/usbvideo/vicam.c2
-rw-r--r--drivers/media/video/v4l2-dev.c5
-rw-r--r--drivers/media/video/v4l2-ioctl.c4
-rw-r--r--drivers/media/video/vivi.c52
-rw-r--r--drivers/media/video/w9966.c2
-rw-r--r--drivers/media/video/zc0301/zc0301_core.c1
-rw-r--r--drivers/media/video/zc0301/zc0301_sensor.h19
-rw-r--r--drivers/memstick/core/memstick.c10
-rw-r--r--drivers/memstick/core/mspro_block.c33
-rw-r--r--drivers/memstick/host/jmb38x_ms.c39
-rw-r--r--drivers/mfd/Kconfig9
-rw-r--r--drivers/mfd/Makefile1
-rw-r--r--drivers/mfd/ucb1400_core.c106
-rw-r--r--drivers/misc/acer-wmi.c3
-rw-r--r--drivers/misc/fujitsu-laptop.c7
-rw-r--r--drivers/misc/hp-wmi.c91
-rw-r--r--drivers/misc/sgi-gru/grufile.c3
-rw-r--r--drivers/misc/thinkpad_acpi.c1
-rw-r--r--drivers/mmc/card/block.c4
-rw-r--r--drivers/mmc/host/at91_mci.c20
-rw-r--r--drivers/mmc/host/pxamci.c4
-rw-r--r--drivers/mtd/mtdchar.c16
-rw-r--r--drivers/mtd/nand/atmel_nand_ecc.h3
-rw-r--r--drivers/mtd/nand/cmx270_nand.c2
-rw-r--r--drivers/mtd/nand/tmio_nand.c8
-rw-r--r--drivers/net/Kconfig14
-rw-r--r--drivers/net/atl1e/atl1e_main.c3
-rw-r--r--drivers/net/atlx/atl1.c1
-rw-r--r--drivers/net/bnx2x.h5
-rw-r--r--drivers/net/bnx2x_main.c34
-rw-r--r--drivers/net/cs89x0.c12
-rw-r--r--drivers/net/e100.c4
-rw-r--r--drivers/net/e1000/e1000_param.c81
-rw-r--r--drivers/net/forcedeth.c12
-rw-r--r--drivers/net/fs_enet/fs_enet-main.c8
-rw-r--r--drivers/net/fs_enet/mac-scc.c8
-rw-r--r--drivers/net/gianfar.c22
-rw-r--r--drivers/net/gianfar.h1
-rw-r--r--drivers/net/hp-plus.c8
-rw-r--r--drivers/net/ibm_newemac/core.c6
-rw-r--r--drivers/net/ibmveth.c5
-rw-r--r--drivers/net/igb/e1000_82575.c1
-rw-r--r--drivers/net/igb/e1000_hw.h1
-rw-r--r--drivers/net/igb/igb_ethtool.c17
-rw-r--r--drivers/net/igb/igb_main.c25
-rw-r--r--drivers/net/irda/pxaficp_ir.c8
-rw-r--r--drivers/net/ixgbe/ixgbe_main.c14
-rw-r--r--drivers/net/mv643xx_eth.c35
-rw-r--r--drivers/net/myri10ge/myri10ge.c2
-rw-r--r--drivers/net/netxen/netxen_nic_main.c10
-rw-r--r--drivers/net/niu.c56
-rw-r--r--drivers/net/pcmcia/axnet_cs.c1
-rw-r--r--drivers/net/pcmcia/pcnet_cs.c2
-rw-r--r--drivers/net/r8169.c2
-rw-r--r--drivers/net/skfp/ess.c6
-rw-r--r--drivers/net/smc91x.c11
-rw-r--r--drivers/net/smc91x.h13
-rw-r--r--drivers/net/usb/hso.c3
-rw-r--r--drivers/net/usb/mcs7830.c47
-rw-r--r--drivers/net/usb/pegasus.c11
-rw-r--r--drivers/net/wan/sbni.c8
-rw-r--r--drivers/net/wd.c2
-rw-r--r--drivers/net/wireless/ath5k/base.c23
-rw-r--r--drivers/net/wireless/ath5k/base.h1
-rw-r--r--drivers/net/wireless/ath9k/beacon.c13
-rw-r--r--drivers/net/wireless/ath9k/core.h1
-rw-r--r--drivers/net/wireless/ath9k/hw.c8
-rw-r--r--drivers/net/wireless/ath9k/main.c32
-rw-r--r--drivers/net/wireless/ath9k/recv.c5
-rw-r--r--drivers/net/wireless/ath9k/xmit.c4
-rw-r--r--drivers/net/wireless/atmel.c51
-rw-r--r--drivers/net/wireless/b43/rfkill.c18
-rw-r--r--drivers/net/wireless/b43legacy/rfkill.c18
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c14
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c35
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c77
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fh.h1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-rx.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-scan.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c29
-rw-r--r--drivers/net/wireless/libertas/if_cs.c13
-rw-r--r--drivers/net/wireless/orinoco.c10
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00reg.h5
-rw-r--r--drivers/oprofile/cpu_buffer.c4
-rw-r--r--drivers/oprofile/event_buffer.c2
-rw-r--r--drivers/pci/hotplug/fakephp.c6
-rw-r--r--drivers/pci/hotplug/pciehp_hpc.c2
-rw-r--r--drivers/pci/intel-iommu.c23
-rw-r--r--drivers/pci/probe.c18
-rw-r--r--drivers/pci/setup-bus.c11
-rw-r--r--drivers/pcmcia/Kconfig3
-rw-r--r--drivers/pcmcia/Makefile16
-rw-r--r--drivers/pcmcia/pxa2xx_base.c44
-rw-r--r--drivers/pcmcia/pxa2xx_cm_x255.c154
-rw-r--r--drivers/pcmcia/pxa2xx_cm_x270.c14
-rw-r--r--drivers/pcmcia/pxa2xx_cm_x2xx.c49
-rw-r--r--drivers/pcmcia/pxa2xx_palmld.c151
-rw-r--r--drivers/pcmcia/pxa2xx_trizeps4.c256
-rw-r--r--drivers/pcmcia/pxa2xx_viper.c179
-rw-r--r--drivers/pcmcia/soc_common.c6
-rw-r--r--drivers/pnp/pnpacpi/rsparser.c2
-rw-r--r--drivers/power/Kconfig8
-rw-r--r--drivers/power/Makefile2
-rw-r--r--drivers/power/palmtx_battery.c198
-rw-r--r--drivers/power/wm97xx_battery.c272
-rw-r--r--drivers/rtc/rtc-cmos.c38
-rw-r--r--drivers/rtc/rtc-lib.c5
-rw-r--r--drivers/s390/block/dcssblk.c5
-rw-r--r--drivers/s390/cio/chp.c7
-rw-r--r--drivers/s390/cio/cio.c4
-rw-r--r--drivers/s390/cio/css.c32
-rw-r--r--drivers/s390/cio/device_fsm.c7
-rw-r--r--drivers/s390/net/claw.c79
-rw-r--r--drivers/s390/net/ctcm_fsms.c56
-rw-r--r--drivers/s390/net/ctcm_main.c24
-rw-r--r--drivers/s390/net/ctcm_main.h9
-rw-r--r--drivers/s390/net/ctcm_mpc.c46
-rw-r--r--drivers/s390/net/lcs.c3
-rw-r--r--drivers/s390/net/qeth_core.h1
-rw-r--r--drivers/s390/net/qeth_core_main.c2
-rw-r--r--drivers/s390/net/qeth_l2_main.c27
-rw-r--r--drivers/s390/net/qeth_l3_sys.c2
-rw-r--r--drivers/s390/scsi/zfcp_ccw.c6
-rw-r--r--drivers/s390/scsi/zfcp_fc.c33
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c88
-rw-r--r--drivers/s390/scsi/zfcp_qdio.c4
-rw-r--r--drivers/scsi/Kconfig2
-rw-r--r--drivers/scsi/device_handler/scsi_dh_alua.c12
-rw-r--r--drivers/scsi/device_handler/scsi_dh_emc.c4
-rw-r--r--drivers/scsi/device_handler/scsi_dh_rdac.c4
-rw-r--r--drivers/scsi/scsi_error.c2
-rw-r--r--drivers/scsi/scsi_scan.c3
-rw-r--r--drivers/scsi/sg.c17
-rw-r--r--drivers/serial/8250.c16
-rw-r--r--drivers/serial/8250.h1
-rw-r--r--drivers/serial/bfin_5xx.c2
-rw-r--r--drivers/serial/imx.c27
-rw-r--r--drivers/serial/pxa.c5
-rw-r--r--drivers/serial/serial_ks8695.c61
-rw-r--r--drivers/spi/pxa2xx_spi.c116
-rw-r--r--drivers/spi/spi_mpc83xx.c26
-rw-r--r--drivers/spi/spi_s3c24xx.c6
-rw-r--r--drivers/usb/host/ohci-omap.c2
-rw-r--r--drivers/usb/host/ohci-pxa27x.c259
-rw-r--r--drivers/usb/serial/console.c2
-rw-r--r--drivers/video/Kconfig31
-rw-r--r--drivers/video/Makefile1
-rw-r--r--drivers/video/am200epd.c295
-rw-r--r--drivers/video/atmel_lcdfb.c98
-rw-r--r--drivers/video/backlight/Kconfig15
-rw-r--r--drivers/video/backlight/Makefile2
-rw-r--r--drivers/video/backlight/corgi_lcd.c641
-rw-r--r--drivers/video/backlight/lcd.c18
-rw-r--r--drivers/video/backlight/tdo24m.c396
-rw-r--r--drivers/video/bf54x-lq043fb.c2
-rw-r--r--drivers/video/cirrusfb.c59
-rw-r--r--drivers/video/fbmem.c1
-rw-r--r--drivers/video/metronomefb.c288
-rw-r--r--drivers/video/tdfxfb.c9
-rw-r--r--drivers/watchdog/Kconfig24
-rw-r--r--drivers/watchdog/Makefile3
-rw-r--r--drivers/watchdog/at91rm9200_wdt.c2
-rw-r--r--drivers/watchdog/hpwdt.c93
-rw-r--r--drivers/watchdog/ixp4xx_wdt.c4
-rw-r--r--drivers/watchdog/mpc8xx_wdt.c170
-rw-r--r--drivers/watchdog/mpc8xxx_wdt.c11
-rw-r--r--drivers/watchdog/pc87413_wdt.c1
-rw-r--r--drivers/watchdog/rc32434_wdt.c344
-rw-r--r--drivers/watchdog/rdc321x_wdt.c285
-rw-r--r--drivers/watchdog/s3c2410_wdt.c16
-rw-r--r--drivers/xen/balloon.c2
-rw-r--r--firmware/Makefile16
-rw-r--r--fs/9p/vfs_dir.c1
-rw-r--r--fs/Kconfig21
-rw-r--r--fs/adfs/dir.c1
-rw-r--r--fs/affs/dir.c1
-rw-r--r--fs/autofs4/root.c2
-rw-r--r--fs/befs/linuxvfs.c1
-rw-r--r--fs/bfs/dir.c2
-rw-r--r--fs/bio.c48
-rw-r--r--fs/buffer.c13
-rw-r--r--fs/cifs/CHANGES10
-rw-r--r--fs/cifs/README44
-rw-r--r--fs/cifs/asn1.c11
-rw-r--r--fs/cifs/cifs_spnego.c4
-rw-r--r--fs/cifs/cifs_spnego.h2
-rw-r--r--fs/cifs/cifsencrypt.c1
-rw-r--r--fs/cifs/cifsglob.h3
-rw-r--r--fs/cifs/connect.c33
-rw-r--r--fs/cifs/dns_resolve.c7
-rw-r--r--fs/cifs/file.c4
-rw-r--r--fs/cifs/inode.c3
-rw-r--r--fs/cifs/sess.c13
-rw-r--r--fs/compat.c8
-rw-r--r--fs/configfs/dir.c17
-rw-r--r--fs/dcache.c2
-rw-r--r--fs/efs/namei.c3
-rw-r--r--fs/nfs/super.c6
-rw-r--r--fs/nfsd/nfs4acl.c2
-rw-r--r--fs/nfsd/nfs4proc.c12
-rw-r--r--fs/ntfs/namei.c89
-rw-r--r--fs/ntfs/usnjrnl.h4
-rw-r--r--fs/ocfs2/aops.c2
-rw-r--r--fs/ocfs2/cluster/netdebug.c26
-rw-r--r--fs/ocfs2/cluster/tcp.c44
-rw-r--r--fs/ocfs2/cluster/tcp_internal.h32
-rw-r--r--fs/ocfs2/dir.c11
-rw-r--r--fs/ocfs2/journal.c23
-rw-r--r--fs/ocfs2/stackglue.c7
-rw-r--r--fs/partitions/check.c4
-rw-r--r--fs/proc/array.c59
-rw-r--r--fs/proc/generic.c5
-rw-r--r--fs/proc/proc_misc.c7
-rw-r--r--fs/readdir.c8
-rw-r--r--fs/seq_file.c11
-rw-r--r--fs/ubifs/budget.c114
-rw-r--r--fs/ubifs/dir.c1
-rw-r--r--fs/ubifs/file.c20
-rw-r--r--fs/ubifs/find.c18
-rw-r--r--fs/ubifs/gc.c6
-rw-r--r--fs/ubifs/misc.h49
-rw-r--r--fs/ubifs/super.c22
-rw-r--r--fs/ubifs/tnc.c116
-rw-r--r--fs/ubifs/ubifs-media.h2
-rw-r--r--fs/ubifs/ubifs.h14
-rw-r--r--fs/udf/file.c1
-rw-r--r--fs/udf/ialloc.c44
-rw-r--r--fs/xfs/linux-2.6/xfs_file.c1
-rw-r--r--fs/xfs/linux-2.6/xfs_iops.c2
-rw-r--r--include/asm-generic/Kbuild.asm6
-rw-r--r--include/asm-generic/bug.h10
-rw-r--r--include/asm-generic/sections.h6
-rw-r--r--include/asm-generic/syscall.h2
-rw-r--r--include/asm-mips/cacheflush.h1
-rw-r--r--include/asm-mips/unistd.h30
-rw-r--r--include/asm-parisc/sections.h5
-rw-r--r--include/asm-x86/cpufeature.h11
-rw-r--r--include/asm-x86/msr.h27
-rw-r--r--include/asm-x86/required-features.h8
-rw-r--r--include/linux/Kbuild7
-rw-r--r--include/linux/ata.h2
-rw-r--r--include/linux/blkdev.h20
-rw-r--r--include/linux/clockchips.h2
-rw-r--r--include/linux/cpuset.h2
-rw-r--r--include/linux/dcache.h2
-rw-r--r--include/linux/genhd.h10
-rw-r--r--include/linux/i2c.h12
-rw-r--r--include/linux/ide.h5
-rw-r--r--include/linux/ioport.h5
-rw-r--r--include/linux/lcd.h3
-rw-r--r--include/linux/list.h13
-rw-r--r--include/linux/memstick.h97
-rw-r--r--include/linux/mmzone.h12
-rw-r--r--include/linux/mroute.h2
-rw-r--r--include/linux/mroute6.h1
-rw-r--r--include/linux/net.h14
-rw-r--r--include/linux/pim.h18
-rw-r--r--include/linux/pnp.h7
-rw-r--r--include/linux/quicklist.h7
-rw-r--r--include/linux/res_counter.h2
-rw-r--r--include/linux/sched.h4
-rw-r--r--include/linux/smc91x.h11
-rw-r--r--include/linux/spi/ads7846.h3
-rw-r--r--include/linux/spi/corgi_lcd.h20
-rw-r--r--include/linux/sunrpc/svc_rdma.h1
-rw-r--r--include/linux/tracehook.h2
-rw-r--r--include/linux/ucb1400.h161
-rw-r--r--include/linux/videodev2.h2
-rw-r--r--include/linux/wm97xx_batt.h26
-rw-r--r--include/net/bluetooth/hci_core.h3
-rw-r--r--include/net/inet_timewait_sock.h3
-rw-r--r--include/net/netlink.h2
-rw-r--r--include/net/sch_generic.h12
-rw-r--r--include/scsi/scsi.h14
-rw-r--r--include/video/atmel_lcdc.h1
-rw-r--r--include/video/metronomefb.h31
-rw-r--r--kernel/auditsc.c3
-rw-r--r--kernel/cpuset.c349
-rw-r--r--kernel/exit.c88
-rw-r--r--kernel/lockdep.c6
-rw-r--r--kernel/lockdep_proc.c3
-rw-r--r--kernel/pid_namespace.c3
-rw-r--r--kernel/pm_qos_params.c25
-rw-r--r--kernel/power/disk.c13
-rw-r--r--kernel/power/main.c5
-rw-r--r--kernel/resource.c88
-rw-r--r--kernel/sched.c78
-rw-r--r--kernel/sched_rt.c13
-rw-r--r--kernel/smp.c10
-rw-r--r--kernel/softlockup.c3
-rw-r--r--kernel/sysctl.c1
-rw-r--r--kernel/time/clockevents.c3
-rw-r--r--kernel/time/ntp.c2
-rw-r--r--kernel/time/tick-broadcast.c78
-rw-r--r--kernel/time/tick-common.c1
-rw-r--r--kernel/time/tick-internal.h2
-rw-r--r--kernel/time/tick-oneshot.c44
-rw-r--r--kernel/time/tick-sched.c3
-rw-r--r--lib/Kconfig.debug6
-rw-r--r--lib/debugobjects.c31
-rw-r--r--lib/scatterlist.c4
-rw-r--r--lib/swiotlb.c2
-rw-r--r--lib/vsprintf.c11
-rw-r--r--mm/filemap.c11
-rw-r--r--mm/mmap.c4
-rw-r--r--mm/mmzone.c2
-rw-r--r--mm/page_alloc.c9
-rw-r--r--mm/page_isolation.c1
-rw-r--r--mm/quicklist.c9
-rw-r--r--mm/slub.c5
-rw-r--r--mm/truncate.c4
-rw-r--r--mm/vmstat.c19
-rw-r--r--net/bluetooth/af_bluetooth.c2
-rw-r--r--net/bluetooth/hci_conn.c21
-rw-r--r--net/bluetooth/hci_core.c3
-rw-r--r--net/bluetooth/hci_event.c11
-rw-r--r--net/bluetooth/l2cap.c34
-rw-r--r--net/bluetooth/sco.c2
-rw-r--r--net/bridge/br_ioctl.c8
-rw-r--r--net/bridge/br_sysfs_br.c26
-rw-r--r--net/core/dev.c7
-rw-r--r--net/ipv4/devinet.c15
-rw-r--r--net/ipv4/inet_timewait_sock.c35
-rw-r--r--net/ipv4/route.c4
-rw-r--r--net/ipv4/tcp_ipv4.c1
-rw-r--r--net/ipv4/tcp_output.c6
-rw-r--r--net/ipv6/ip6_output.c64
-rw-r--r--net/ipv6/raw.c6
-rw-r--r--net/ipv6/tcp_ipv6.c1
-rw-r--r--net/mac80211/debugfs_key.c6
-rw-r--r--net/mac80211/debugfs_netdev.c24
-rw-r--r--net/mac80211/ieee80211_i.h10
-rw-r--r--net/mac80211/mesh.c2
-rw-r--r--net/mac80211/mlme.c4
-rw-r--r--net/netfilter/nf_conntrack_irc.c10
-rw-r--r--net/netfilter/nf_conntrack_proto_gre.c14
-rw-r--r--net/netfilter/nf_conntrack_sip.c6
-rw-r--r--net/rfkill/rfkill.c2
-rw-r--r--net/sched/cls_api.c2
-rw-r--r--net/sched/cls_route.c2
-rw-r--r--net/sched/sch_api.c26
-rw-r--r--net/sched/sch_cbq.c6
-rw-r--r--net/sched/sch_generic.c7
-rw-r--r--net/sched/sch_hfsc.c4
-rw-r--r--net/sched/sch_htb.c8
-rw-r--r--net/sched/sch_netem.c2
-rw-r--r--net/sched/sch_teql.c2
-rw-r--r--net/sctp/auth.c3
-rw-r--r--net/sctp/socket.c8
-rw-r--r--net/sunrpc/sysctl.c18
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_recvfrom.c8
-rw-r--r--net/sunrpc/xprtrdma/svc_rdma_transport.c5
-rw-r--r--net/tipc/bcast.c22
-rw-r--r--net/tipc/bcast.h22
-rw-r--r--net/tipc/bearer.c2
-rw-r--r--net/tipc/bearer.h2
-rw-r--r--net/tipc/cluster.c16
-rw-r--r--net/tipc/cluster.h10
-rw-r--r--net/tipc/discover.c2
-rw-r--r--net/tipc/link.c26
-rw-r--r--net/tipc/link.h2
-rw-r--r--net/tipc/name_table.h2
-rw-r--r--net/tipc/net.c2
-rw-r--r--net/tipc/net.h2
-rw-r--r--net/tipc/node.c60
-rw-r--r--net/tipc/node.h42
-rw-r--r--net/tipc/node_subscr.c4
-rw-r--r--net/tipc/node_subscr.h10
-rw-r--r--net/tipc/port.h2
-rw-r--r--net/tipc/zone.c4
-rw-r--r--net/tipc/zone.h2
-rw-r--r--net/wireless/Kconfig3
-rw-r--r--net/xfrm/xfrm_policy.c7
-rw-r--r--net/xfrm/xfrm_state.c34
-rw-r--r--security/device_cgroup.c18
-rw-r--r--security/selinux/ss/services.c6
-rw-r--r--sound/Kconfig4
-rw-r--r--sound/arm/pxa2xx-ac97.c4
-rw-r--r--sound/pci/hda/patch_realtek.c24
-rw-r--r--sound/pci/hda/patch_sigmatel.c5
-rw-r--r--sound/pci/oxygen/hifier.c4
-rw-r--r--sound/pci/oxygen/oxygen.c4
-rw-r--r--sound/pci/oxygen/oxygen_mixer.c5
-rw-r--r--sound/soc/omap/n810.c18
-rw-r--r--sound/soc/pxa/corgi.c34
-rw-r--r--sound/soc/pxa/pxa2xx-ac97.c18
-rw-r--r--sound/soc/pxa/pxa2xx-i2s.c84
-rw-r--r--sound/soc/pxa/spitz.c46
1672 files changed, 57292 insertions, 18926 deletions
diff --git a/.mailmap b/.mailmap
index 726084286d33..dfab12f809ed 100644
--- a/.mailmap
+++ b/.mailmap
@@ -96,4 +96,6 @@ Tejun Heo <htejun@gmail.com>
96Thomas Graf <tgraf@suug.ch> 96Thomas Graf <tgraf@suug.ch>
97Tony Luck <tony.luck@intel.com> 97Tony Luck <tony.luck@intel.com>
98Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com> 98Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com>
99Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
100Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
99Valdis Kletnieks <Valdis.Kletnieks@vt.edu> 101Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
diff --git a/Documentation/ABI/testing/sysfs-firmware-sgi_uv b/Documentation/ABI/testing/sysfs-firmware-sgi_uv
new file mode 100644
index 000000000000..4573fd4b7876
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-firmware-sgi_uv
@@ -0,0 +1,27 @@
1What: /sys/firmware/sgi_uv/
2Date: August 2008
3Contact: Russ Anderson <rja@sgi.com>
4Description:
5 The /sys/firmware/sgi_uv directory contains information
6 about the SGI UV platform.
7
8 Under that directory are a number of files:
9
10 partition_id
11 coherence_id
12
13 The partition_id entry contains the partition id.
14 SGI UV systems can be partitioned into multiple physical
15 machines, which each partition running a unique copy
16 of the operating system. Each partition will have a unique
17 partition id. To display the partition id, use the command:
18
19 cat /sys/firmware/sgi_uv/partition_id
20
21 The coherence_id entry contains the coherence id.
22 A partitioned SGI UV system can have one or more coherence
23 domain. The coherence id indicates which coherence domain
24 this partition is in. To display the coherence id, use the
25 command:
26
27 cat /sys/firmware/sgi_uv/coherence_id
diff --git a/Documentation/ABI/testing/sysfs-gpio b/Documentation/ABI/testing/sysfs-gpio
new file mode 100644
index 000000000000..8aab8092ad35
--- /dev/null
+++ b/Documentation/ABI/testing/sysfs-gpio
@@ -0,0 +1,26 @@
1What: /sys/class/gpio/
2Date: July 2008
3KernelVersion: 2.6.27
4Contact: David Brownell <dbrownell@users.sourceforge.net>
5Description:
6
7 As a Kconfig option, individual GPIO signals may be accessed from
8 userspace. GPIOs are only made available to userspace by an explicit
9 "export" operation. If a given GPIO is not claimed for use by
10 kernel code, it may be exported by userspace (and unexported later).
11 Kernel code may export it for complete or partial access.
12
13 GPIOs are identified as they are inside the kernel, using integers in
14 the range 0..INT_MAX. See Documentation/gpio.txt for more information.
15
16 /sys/class/gpio
17 /export ... asks the kernel to export a GPIO to userspace
18 /unexport ... to return a GPIO to the kernel
19 /gpioN ... for each exported GPIO #N
20 /value ... always readable, writes fail for input GPIOs
21 /direction ... r/w as: in, out (default low); write: high, low
22 /gpiochipN ... for each gpiochip; #N is its first GPIO
23 /base ... (r/o) same as N
24 /label ... (r/o) descriptive, not necessarily unique
25 /ngpio ... (r/o) number of GPIOs; numbered N to N + (ngpio - 1)
26
diff --git a/Documentation/cpusets.txt b/Documentation/cpusets.txt
index 1f5a924d1e56..47e568a9370a 100644
--- a/Documentation/cpusets.txt
+++ b/Documentation/cpusets.txt
@@ -635,14 +635,16 @@ prior 'mems' setting, will not be moved.
635 635
636There is an exception to the above. If hotplug functionality is used 636There is an exception to the above. If hotplug functionality is used
637to remove all the CPUs that are currently assigned to a cpuset, 637to remove all the CPUs that are currently assigned to a cpuset,
638then the kernel will automatically update the cpus_allowed of all 638then all the tasks in that cpuset will be moved to the nearest ancestor
639tasks attached to CPUs in that cpuset to allow all CPUs. When memory 639with non-empty cpus. But the moving of some (or all) tasks might fail if
640hotplug functionality for removing Memory Nodes is available, a 640cpuset is bound with another cgroup subsystem which has some restrictions
641similar exception is expected to apply there as well. In general, 641on task attaching. In this failing case, those tasks will stay
642the kernel prefers to violate cpuset placement, over starving a task 642in the original cpuset, and the kernel will automatically update
643that has had all its allowed CPUs or Memory Nodes taken offline. User 643their cpus_allowed to allow all online CPUs. When memory hotplug
644code should reconfigure cpusets to only refer to online CPUs and Memory 644functionality for removing Memory Nodes is available, a similar exception
645Nodes when using hotplug to add or remove such resources. 645is expected to apply there as well. In general, the kernel prefers to
646violate cpuset placement, over starving a task that has had all
647its allowed CPUs or Memory Nodes taken offline.
646 648
647There is a second exception to the above. GFP_ATOMIC requests are 649There is a second exception to the above. GFP_ATOMIC requests are
648kernel internal allocations that must be satisfied, immediately. 650kernel internal allocations that must be satisfied, immediately.
diff --git a/Documentation/dontdiff b/Documentation/dontdiff
index 881e6dd03aea..27809357da58 100644
--- a/Documentation/dontdiff
+++ b/Documentation/dontdiff
@@ -5,6 +5,8 @@
5*.css 5*.css
6*.dvi 6*.dvi
7*.eps 7*.eps
8*.fw.gen.S
9*.fw
8*.gif 10*.gif
9*.grep 11*.grep
10*.grp 12*.grp
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index eb1a47b97427..83c88cae1eda 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -322,3 +322,11 @@ Why: Accounting can now be enabled/disabled without kernel recompilation.
322 controlled by a kernel/module/sysfs/sysctl parameter. 322 controlled by a kernel/module/sysfs/sysctl parameter.
323Who: Krzysztof Piotr Oledzki <ole@ans.pl> 323Who: Krzysztof Piotr Oledzki <ole@ans.pl>
324 324
325---------------------------
326
327What: ide-scsi (BLK_DEV_IDESCSI)
328When: 2.6.29
329Why: The 2.6 kernel supports direct writing to ide CD drives, which
330 eliminates the need for ide-scsi. The new method is more
331 efficient in every way.
332Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
diff --git a/Documentation/filesystems/Locking b/Documentation/filesystems/Locking
index 680fb566b928..8362860e21a7 100644
--- a/Documentation/filesystems/Locking
+++ b/Documentation/filesystems/Locking
@@ -144,8 +144,8 @@ prototypes:
144 void (*kill_sb) (struct super_block *); 144 void (*kill_sb) (struct super_block *);
145locking rules: 145locking rules:
146 may block BKL 146 may block BKL
147get_sb yes yes 147get_sb yes no
148kill_sb yes yes 148kill_sb yes no
149 149
150->get_sb() returns error or 0 with locked superblock attached to the vfsmount 150->get_sb() returns error or 0 with locked superblock attached to the vfsmount
151(exclusive on ->s_umount). 151(exclusive on ->s_umount).
@@ -409,12 +409,12 @@ ioctl: yes (see below)
409unlocked_ioctl: no (see below) 409unlocked_ioctl: no (see below)
410compat_ioctl: no 410compat_ioctl: no
411mmap: no 411mmap: no
412open: maybe (see below) 412open: no
413flush: no 413flush: no
414release: no 414release: no
415fsync: no (see below) 415fsync: no (see below)
416aio_fsync: no 416aio_fsync: no
417fasync: yes (see below) 417fasync: no
418lock: yes 418lock: yes
419readv: no 419readv: no
420writev: no 420writev: no
@@ -431,13 +431,6 @@ For many filesystems, it is probably safe to acquire the inode
431semaphore. Note some filesystems (i.e. remote ones) provide no 431semaphore. Note some filesystems (i.e. remote ones) provide no
432protection for i_size so you will need to use the BKL. 432protection for i_size so you will need to use the BKL.
433 433
434->open() locking is in-transit: big lock partially moved into the methods.
435The only exception is ->open() in the instances of file_operations that never
436end up in ->i_fop/->proc_fops, i.e. ones that belong to character devices
437(chrdev_open() takes lock before replacing ->f_op and calling the secondary
438method. As soon as we fix the handling of module reference counters all
439instances of ->open() will be called without the BKL.
440
441Note: ext2_release() was *the* source of contention on fs-intensive 434Note: ext2_release() was *the* source of contention on fs-intensive
442loads and dropping BKL on ->release() helps to get rid of that (we still 435loads and dropping BKL on ->release() helps to get rid of that (we still
443grab BKL for cases when we close a file that had been opened r/w, but that 436grab BKL for cases when we close a file that had been opened r/w, but that
diff --git a/Documentation/filesystems/ntfs.txt b/Documentation/filesystems/ntfs.txt
index e79ee2db183a..ac2a261c5f7d 100644
--- a/Documentation/filesystems/ntfs.txt
+++ b/Documentation/filesystems/ntfs.txt
@@ -40,7 +40,7 @@ Web site
40======== 40========
41 41
42There is plenty of additional information on the linux-ntfs web site 42There is plenty of additional information on the linux-ntfs web site
43at http://linux-ntfs.sourceforge.net/ 43at http://www.linux-ntfs.org/
44 44
45The web site has a lot of additional information, such as a comprehensive 45The web site has a lot of additional information, such as a comprehensive
46FAQ, documentation on the NTFS on-disk format, information on the Linux-NTFS 46FAQ, documentation on the NTFS on-disk format, information on the Linux-NTFS
@@ -272,7 +272,7 @@ And you would know that /dev/hda2 has a size of 37768814 - 4209030 + 1 =
272For Win2k and later dynamic disks, you can for example use the ldminfo utility 272For Win2k and later dynamic disks, you can for example use the ldminfo utility
273which is part of the Linux LDM tools (the latest version at the time of 273which is part of the Linux LDM tools (the latest version at the time of
274writing is linux-ldm-0.0.8.tar.bz2). You can download it from: 274writing is linux-ldm-0.0.8.tar.bz2). You can download it from:
275 http://linux-ntfs.sourceforge.net/downloads.html 275 http://www.linux-ntfs.org/
276Simply extract the downloaded archive (tar xvjf linux-ldm-0.0.8.tar.bz2), go 276Simply extract the downloaded archive (tar xvjf linux-ldm-0.0.8.tar.bz2), go
277into it (cd linux-ldm-0.0.8) and change to the test directory (cd test). You 277into it (cd linux-ldm-0.0.8) and change to the test directory (cd test). You
278will find the precompiled (i386) ldminfo utility there. NOTE: You will not be 278will find the precompiled (i386) ldminfo utility there. NOTE: You will not be
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt
index 64557821ee59..f566ad9bcb7b 100644
--- a/Documentation/filesystems/proc.txt
+++ b/Documentation/filesystems/proc.txt
@@ -1339,6 +1339,25 @@ Enables/Disables the protection of the per-process proc entries "maps" and
1339"smaps". When enabled, the contents of these files are visible only to 1339"smaps". When enabled, the contents of these files are visible only to
1340readers that are allowed to ptrace() the given process. 1340readers that are allowed to ptrace() the given process.
1341 1341
1342msgmni
1343------
1344
1345Maximum number of message queue ids on the system.
1346This value scales to the amount of lowmem. It is automatically recomputed
1347upon memory add/remove or ipc namespace creation/removal.
1348When a value is written into this file, msgmni's value becomes fixed, i.e. it
1349is not recomputed anymore when one of the above events occurs.
1350Use auto_msgmni to change this behavior.
1351
1352auto_msgmni
1353-----------
1354
1355Enables/Disables automatic recomputing of msgmni upon memory add/remove or
1356upon ipc namespace creation/removal (see the msgmni description above).
1357Echoing "1" into this file enables msgmni automatic recomputing.
1358Echoing "0" turns it off.
1359auto_msgmni default value is 1.
1360
1342 1361
13432.4 /proc/sys/vm - The virtual memory subsystem 13622.4 /proc/sys/vm - The virtual memory subsystem
1344----------------------------------------------- 1363-----------------------------------------------
@@ -2394,6 +2413,8 @@ The following 4 memory types are supported:
2394 - (bit 1) anonymous shared memory 2413 - (bit 1) anonymous shared memory
2395 - (bit 2) file-backed private memory 2414 - (bit 2) file-backed private memory
2396 - (bit 3) file-backed shared memory 2415 - (bit 3) file-backed shared memory
2416 - (bit 4) ELF header pages in file-backed private memory areas (it is
2417 effective only if the bit 2 is cleared)
2397 2418
2398 Note that MMIO pages such as frame buffer are never dumped and vDSO pages 2419 Note that MMIO pages such as frame buffer are never dumped and vDSO pages
2399 are always dumped regardless of the bitmask status. 2420 are always dumped regardless of the bitmask status.
diff --git a/Documentation/laptops/thinkpad-acpi.txt b/Documentation/laptops/thinkpad-acpi.txt
index 02dc748b76c4..71f0fe1fc1b0 100644
--- a/Documentation/laptops/thinkpad-acpi.txt
+++ b/Documentation/laptops/thinkpad-acpi.txt
@@ -44,7 +44,7 @@ detailed description):
44 - LCD brightness control 44 - LCD brightness control
45 - Volume control 45 - Volume control
46 - Fan control and monitoring: fan speed, fan enable/disable 46 - Fan control and monitoring: fan speed, fan enable/disable
47 - Experimental: WAN enable and disable 47 - WAN enable and disable
48 48
49A compatibility table by model and feature is maintained on the web 49A compatibility table by model and feature is maintained on the web
50site, http://ibm-acpi.sf.net/. I appreciate any success or failure 50site, http://ibm-acpi.sf.net/. I appreciate any success or failure
@@ -1375,18 +1375,13 @@ with EINVAL, try to set pwm1_enable to 1 and pwm1 to at least 128 (255
1375would be the safest choice, though). 1375would be the safest choice, though).
1376 1376
1377 1377
1378EXPERIMENTAL: WAN 1378WAN
1379----------------- 1379---
1380 1380
1381procfs: /proc/acpi/ibm/wan 1381procfs: /proc/acpi/ibm/wan
1382sysfs device attribute: wwan_enable (deprecated) 1382sysfs device attribute: wwan_enable (deprecated)
1383sysfs rfkill class: switch "tpacpi_wwan_sw" 1383sysfs rfkill class: switch "tpacpi_wwan_sw"
1384 1384
1385This feature is marked EXPERIMENTAL because the implementation
1386directly accesses hardware registers and may not work as expected. USE
1387WITH CAUTION! To use this feature, you need to supply the
1388experimental=1 parameter when loading the module.
1389
1390This feature shows the presence and current state of a W-WAN (Sierra 1385This feature shows the presence and current state of a W-WAN (Sierra
1391Wireless EV-DO) device. 1386Wireless EV-DO) device.
1392 1387
diff --git a/Documentation/sound/alsa/soc/dapm.txt b/Documentation/sound/alsa/soc/dapm.txt
index b2ed6983f40d..46f9684d0b29 100644
--- a/Documentation/sound/alsa/soc/dapm.txt
+++ b/Documentation/sound/alsa/soc/dapm.txt
@@ -135,11 +135,7 @@ when the Mic is inserted:-
135 135
136static int spitz_mic_bias(struct snd_soc_dapm_widget* w, int event) 136static int spitz_mic_bias(struct snd_soc_dapm_widget* w, int event)
137{ 137{
138 if(SND_SOC_DAPM_EVENT_ON(event)) 138 gpio_set_value(SPITZ_GPIO_MIC_BIAS, SND_SOC_DAPM_EVENT_ON(event));
139 set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_MIC_BIAS);
140 else
141 reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_MIC_BIAS);
142
143 return 0; 139 return 0;
144} 140}
145 141
@@ -269,11 +265,7 @@ powered only when the spk is in use.
269/* turn speaker amplifier on/off depending on use */ 265/* turn speaker amplifier on/off depending on use */
270static int corgi_amp_event(struct snd_soc_dapm_widget *w, int event) 266static int corgi_amp_event(struct snd_soc_dapm_widget *w, int event)
271{ 267{
272 if (SND_SOC_DAPM_EVENT_ON(event)) 268 gpio_set_value(CORGI_GPIO_APM_ON, SND_SOC_DAPM_EVENT_ON(event));
273 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
274 else
275 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
276
277 return 0; 269 return 0;
278} 270}
279 271
diff --git a/Documentation/video4linux/CARDLIST.au0828 b/Documentation/video4linux/CARDLIST.au0828
index eedc399e8deb..aa05e5bb22fb 100644
--- a/Documentation/video4linux/CARDLIST.au0828
+++ b/Documentation/video4linux/CARDLIST.au0828
@@ -3,3 +3,4 @@
3 2 -> Hauppauge HVR850 (au0828) [2040:7240] 3 2 -> Hauppauge HVR850 (au0828) [2040:7240]
4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620] 4 3 -> DViCO FusionHDTV USB (au0828) [0fe9:d620]
5 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281] 5 4 -> Hauppauge HVR950Q rev xxF8 (au0828) [2040:7201,2040:7211,2040:7281]
6 5 -> Hauppauge Woodbury (au0828) [2040:8200]
diff --git a/Documentation/video4linux/gspca.txt b/Documentation/video4linux/gspca.txt
index 78a863ab8a5a..0f03900c48fb 100644
--- a/Documentation/video4linux/gspca.txt
+++ b/Documentation/video4linux/gspca.txt
@@ -88,14 +88,14 @@ zc3xx 0471:0325 Philips SPC 200 NC
88zc3xx 0471:0326 Philips SPC 300 NC 88zc3xx 0471:0326 Philips SPC 300 NC
89sonixj 0471:0327 Philips SPC 600 NC 89sonixj 0471:0327 Philips SPC 600 NC
90sonixj 0471:0328 Philips SPC 700 NC 90sonixj 0471:0328 Philips SPC 700 NC
91zc3xx 0471:032d Philips spc210nc 91zc3xx 0471:032d Philips SPC 210 NC
92zc3xx 0471:032e Philips spc315nc 92zc3xx 0471:032e Philips SPC 315 NC
93sonixj 0471:0330 Philips SPC 710NC 93sonixj 0471:0330 Philips SPC 710 NC
94spca501 0497:c001 Smile International 94spca501 0497:c001 Smile International
95sunplus 04a5:3003 Benq DC 1300 95sunplus 04a5:3003 Benq DC 1300
96sunplus 04a5:3008 Benq DC 1500 96sunplus 04a5:3008 Benq DC 1500
97sunplus 04a5:300a Benq DC3410 97sunplus 04a5:300a Benq DC 3410
98spca500 04a5:300c Benq DC1016 98spca500 04a5:300c Benq DC 1016
99sunplus 04f1:1001 JVC GC A50 99sunplus 04f1:1001 JVC GC A50
100spca561 04fc:0561 Flexcam 100 100spca561 04fc:0561 Flexcam 100
101sunplus 04fc:500c Sunplus CA500C 101sunplus 04fc:500c Sunplus CA500C
@@ -175,19 +175,21 @@ sunplus 08ca:2060 Aiptek PocketDV5300
175tv8532 0923:010f ICM532 cams 175tv8532 0923:010f ICM532 cams
176mars 093a:050f Mars-Semi Pc-Camera 176mars 093a:050f Mars-Semi Pc-Camera
177pac207 093a:2460 PAC207 Qtec Webcam 100 177pac207 093a:2460 PAC207 Qtec Webcam 100
178pac207 093a:2463 Philips spc200nc pac207 178pac207 093a:2463 Philips SPC 220 NC
179pac207 093a:2464 Labtec Webcam 1200 179pac207 093a:2464 Labtec Webcam 1200
180pac207 093a:2468 PAC207 180pac207 093a:2468 PAC207
181pac207 093a:2470 Genius GF112 181pac207 093a:2470 Genius GF112
182pac207 093a:2471 PAC207 Genius VideoCam ge111 182pac207 093a:2471 Genius VideoCam ge111
183pac207 093a:2472 PAC207 Genius VideoCam ge110 183pac207 093a:2472 Genius VideoCam ge110
184pac7311 093a:2600 PAC7311 Typhoon 184pac7311 093a:2600 PAC7311 Typhoon
185pac7311 093a:2601 PAC7311 Phillips SPC610NC 185pac7311 093a:2601 Philips SPC 610 NC
186pac7311 093a:2603 PAC7312 186pac7311 093a:2603 PAC7312
187pac7311 093a:2608 PAC7311 Trust WB-3300p 187pac7311 093a:2608 Trust WB-3300p
188pac7311 093a:260e PAC7311 Gigaware VGA PC Camera, Trust WB-3350p, SIGMA cam 2350 188pac7311 093a:260e Gigaware VGA PC Camera, Trust WB-3350p, SIGMA cam 2350
189pac7311 093a:260f PAC7311 SnakeCam 189pac7311 093a:260f SnakeCam
190pac7311 093a:2621 PAC731x 190pac7311 093a:2621 PAC731x
191pac7311 093a:2624 PAC7302
192pac7311 093a:2626 Labtec 2200
191zc3xx 0ac8:0302 Z-star Vimicro zc0302 193zc3xx 0ac8:0302 Z-star Vimicro zc0302
192vc032x 0ac8:0321 Vimicro generic vc0321 194vc032x 0ac8:0321 Vimicro generic vc0321
193vc032x 0ac8:0323 Vimicro Vc0323 195vc032x 0ac8:0323 Vimicro Vc0323
@@ -220,6 +222,7 @@ sonixj 0c45:60c0 Sangha Sn535
220sonixj 0c45:60ec SN9C105+MO4000 222sonixj 0c45:60ec SN9C105+MO4000
221sonixj 0c45:60fb Surfer NoName 223sonixj 0c45:60fb Surfer NoName
222sonixj 0c45:60fc LG-LIC300 224sonixj 0c45:60fc LG-LIC300
225sonixj 0c45:6128 Microdia/Sonix SNP325
223sonixj 0c45:612a Avant Camera 226sonixj 0c45:612a Avant Camera
224sonixj 0c45:612c Typhoon Rasy Cam 1.3MPix 227sonixj 0c45:612c Typhoon Rasy Cam 1.3MPix
225sonixj 0c45:6130 Sonix Pccam 228sonixj 0c45:6130 Sonix Pccam
@@ -234,7 +237,7 @@ zc3xx 10fd:0128 Typhoon Webshot II USB 300k 0x0128
234spca561 10fd:7e50 FlyCam Usb 100 237spca561 10fd:7e50 FlyCam Usb 100
235zc3xx 10fd:8050 Typhoon Webshot II USB 300k 238zc3xx 10fd:8050 Typhoon Webshot II USB 300k
236spca501 1776:501c Arowana 300K CMOS Camera 239spca501 1776:501c Arowana 300K CMOS Camera
237t613 17a1:0128 T613/TAS5130A 240t613 17a1:0128 TASCORP JPEG Webcam, NGS Cyclops
238vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC 241vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC
239pac207 2001:f115 D-Link DSB-C120 242pac207 2001:f115 D-Link DSB-C120
240spca500 2899:012c Toptro Industrial 243spca500 2899:012c Toptro Industrial
diff --git a/MAINTAINERS b/MAINTAINERS
index 28c69aaefcd9..c77df0f449de 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -222,8 +222,7 @@ W: http://code.google.com/p/aceracpi
222S: Maintained 222S: Maintained
223 223
224ACPI 224ACPI
225P: Andi Kleen 225P: Len Brown
226M: ak@linux.intel.com
227M: lenb@kernel.org 226M: lenb@kernel.org
228L: linux-acpi@vger.kernel.org 227L: linux-acpi@vger.kernel.org
229W: http://www.lesswatts.org/projects/acpi/ 228W: http://www.lesswatts.org/projects/acpi/
@@ -419,6 +418,12 @@ L: linux-laptop@vger.kernel.org
419W: http://www.canb.auug.org.au/~sfr/ 418W: http://www.canb.auug.org.au/~sfr/
420S: Supported 419S: Supported
421 420
421APPLE BCM5974 MULTITOUCH DRIVER
422P: Henrik Rydberg
423M: rydberg@euromail.se
424L: linux-input@vger.kernel.org
425S: Maintained
426
422APPLE SMC DRIVER 427APPLE SMC DRIVER
423P: Nicolas Boichat 428P: Nicolas Boichat
424M: nicolas@boichat.ch 429M: nicolas@boichat.ch
@@ -461,6 +466,12 @@ M: kernel@wantstofly.org
461L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 466L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
462S: Maintained 467S: Maintained
463 468
469ARM/AFEB9260 MACHINE SUPPORT
470P: Sergey Lapin
471M: slapin@ossfans.org
472L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
473S: Maintained
474
464ARM/AJECO 1ARM MACHINE SUPPORT 475ARM/AJECO 1ARM MACHINE SUPPORT
465P: Lennert Buytenhek 476P: Lennert Buytenhek
466M: kernel@wantstofly.org 477M: kernel@wantstofly.org
@@ -486,7 +497,7 @@ M: kernel@wantstofly.org
486L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 497L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
487S: Maintained 498S: Maintained
488 499
489ARM/COMPULAB CM-X270/EM-X270 MACHINE SUPPORT 500ARM/COMPULAB CM-X270/EM-X270 and CM-X300 MACHINE SUPPORT
490P: Mike Rapoport 501P: Mike Rapoport
491M: mike@compulab.co.il 502M: mike@compulab.co.il
492L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 503L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
@@ -618,6 +629,12 @@ M: marek.vasut@gmail.com
618W: http://hackndev.com 629W: http://hackndev.com
619S: Maintained 630S: Maintained
620 631
632ARM/PALMZ72 SUPPORT
633P: Sergey Lapin
634M: slapin@ossfans.org
635W: http://hackndev.com
636S: Maintained
637
621ARM/PLEB SUPPORT 638ARM/PLEB SUPPORT
622P: Peter Chubb 639P: Peter Chubb
623M: pleb@gelato.unsw.edu.au 640M: pleb@gelato.unsw.edu.au
@@ -745,11 +762,13 @@ P: Ville Syrjala
745M: syrjala@sci.fi 762M: syrjala@sci.fi
746S: Maintained 763S: Maintained
747 764
748ATL1 ETHERNET DRIVER 765ATLX ETHERNET DRIVERS
749P: Jay Cliburn 766P: Jay Cliburn
750M: jcliburn@gmail.com 767M: jcliburn@gmail.com
751P: Chris Snook 768P: Chris Snook
752M: csnook@redhat.com 769M: csnook@redhat.com
770P: Jie Yang
771M: jie.yang@atheros.com
753L: atl1-devel@lists.sourceforge.net 772L: atl1-devel@lists.sourceforge.net
754W: http://sourceforge.net/projects/atl1 773W: http://sourceforge.net/projects/atl1
755W: http://atl1.sourceforge.net 774W: http://atl1.sourceforge.net
@@ -1588,7 +1607,7 @@ S: Supported
1588EMBEDDED LINUX 1607EMBEDDED LINUX
1589P: Paul Gortmaker 1608P: Paul Gortmaker
1590M: paul.gortmaker@windriver.com 1609M: paul.gortmaker@windriver.com
1591P David Woodhouse 1610P: David Woodhouse
1592M: dwmw2@infradead.org 1611M: dwmw2@infradead.org
1593L: linux-embedded@vger.kernel.org 1612L: linux-embedded@vger.kernel.org
1594S: Maintained 1613S: Maintained
@@ -3051,7 +3070,7 @@ P: Anton Altaparmakov
3051M: aia21@cantab.net 3070M: aia21@cantab.net
3052L: linux-ntfs-dev@lists.sourceforge.net 3071L: linux-ntfs-dev@lists.sourceforge.net
3053L: linux-kernel@vger.kernel.org 3072L: linux-kernel@vger.kernel.org
3054W: http://linux-ntfs.sf.net/ 3073W: http://www.linux-ntfs.org/
3055T: git kernel.org:/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git 3074T: git kernel.org:/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git
3056S: Maintained 3075S: Maintained
3057 3076
@@ -4005,7 +4024,7 @@ S: Maintained
4005 4024
4006TI OMAP MMC INTERFACE DRIVER 4025TI OMAP MMC INTERFACE DRIVER
4007P: Carlos Aguiar, Anderson Briglia and Syed Khasim 4026P: Carlos Aguiar, Anderson Briglia and Syed Khasim
4008M: linux-omap-open-source@linux.omap.com (subscribers only) 4027M: linux-omap@vger.kernel.org
4009W: http://linux.omap.com 4028W: http://linux.omap.com
4010W: http://www.muru.com/linux/omap/ 4029W: http://www.muru.com/linux/omap/
4011S: Maintained 4030S: Maintained
@@ -4358,7 +4377,7 @@ S: Maintained
4358USB VIDEO CLASS 4377USB VIDEO CLASS
4359P: Laurent Pinchart 4378P: Laurent Pinchart
4360M: laurent.pinchart@skynet.be 4379M: laurent.pinchart@skynet.be
4361L: linx-uvc-devel@berlios.de 4380L: linux-uvc-devel@lists.berlios.de
4362L: video4linux-list@redhat.com 4381L: video4linux-list@redhat.com
4363W: http://linux-uvc.berlios.de 4382W: http://linux-uvc.berlios.de
4364S: Maintained 4383S: Maintained
diff --git a/Makefile b/Makefile
index 2e15e0b4483d..4ff83ea36c19 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 27 3SUBLEVEL = 27
4EXTRAVERSION = -rc4 4EXTRAVERSION = -rc6
5NAME = Rotary Wombat 5NAME = Rotary Wombat
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
index 6e943135f0e0..8509dad31204 100644
--- a/arch/alpha/kernel/osf_sys.c
+++ b/arch/alpha/kernel/osf_sys.c
@@ -121,24 +121,29 @@ osf_filldir(void *__buf, const char *name, int namlen, loff_t offset,
121 if (reclen > buf->count) 121 if (reclen > buf->count)
122 return -EINVAL; 122 return -EINVAL;
123 d_ino = ino; 123 d_ino = ino;
124 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 124 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
125 buf->error = -EOVERFLOW;
125 return -EOVERFLOW; 126 return -EOVERFLOW;
127 }
126 if (buf->basep) { 128 if (buf->basep) {
127 if (put_user(offset, buf->basep)) 129 if (put_user(offset, buf->basep))
128 return -EFAULT; 130 goto Efault;
129 buf->basep = NULL; 131 buf->basep = NULL;
130 } 132 }
131 dirent = buf->dirent; 133 dirent = buf->dirent;
132 put_user(d_ino, &dirent->d_ino); 134 if (put_user(d_ino, &dirent->d_ino) ||
133 put_user(namlen, &dirent->d_namlen); 135 put_user(namlen, &dirent->d_namlen) ||
134 put_user(reclen, &dirent->d_reclen); 136 put_user(reclen, &dirent->d_reclen) ||
135 if (copy_to_user(dirent->d_name, name, namlen) || 137 copy_to_user(dirent->d_name, name, namlen) ||
136 put_user(0, dirent->d_name + namlen)) 138 put_user(0, dirent->d_name + namlen))
137 return -EFAULT; 139 goto Efault;
138 dirent = (void __user *)dirent + reclen; 140 dirent = (void __user *)dirent + reclen;
139 buf->dirent = dirent; 141 buf->dirent = dirent;
140 buf->count -= reclen; 142 buf->count -= reclen;
141 return 0; 143 return 0;
144Efault:
145 buf->error = -EFAULT;
146 return -EFAULT;
142} 147}
143 148
144asmlinkage int 149asmlinkage int
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 2835fb5d21e2..efeed65b4a66 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -148,7 +148,6 @@ config ARCH_MAY_HAVE_PC_FDC
148 148
149config ZONE_DMA 149config ZONE_DMA
150 bool 150 bool
151 default y
152 151
153config GENERIC_ISA_DMA 152config GENERIC_ISA_DMA
154 bool 153 bool
@@ -178,6 +177,11 @@ config OPROFILE_MPCORE
178config OPROFILE_ARM11_CORE 177config OPROFILE_ARM11_CORE
179 bool 178 bool
180 179
180config OPROFILE_ARMV7
181 def_bool y
182 depends on CPU_V7 && !SMP
183 bool
184
181endif 185endif
182 186
183config VECTORS_BASE 187config VECTORS_BASE
@@ -245,6 +249,7 @@ config ARCH_CLPS7500
245 select TIMER_ACORN 249 select TIMER_ACORN
246 select ISA 250 select ISA
247 select NO_IOPORT 251 select NO_IOPORT
252 select ARCH_SPARSEMEM_ENABLE
248 help 253 help
249 Support for the Cirrus Logic PS7500FE system-on-a-chip. 254 Support for the Cirrus Logic PS7500FE system-on-a-chip.
250 255
@@ -306,6 +311,7 @@ config ARCH_IOP13XX
306 select PLAT_IOP 311 select PLAT_IOP
307 select PCI 312 select PCI
308 select ARCH_SUPPORTS_MSI 313 select ARCH_SUPPORTS_MSI
314 select VMSPLIT_1G
309 help 315 help
310 Support for Intel's IOP13XX (XScale) family of processors. 316 Support for Intel's IOP13XX (XScale) family of processors.
311 317
@@ -350,6 +356,7 @@ config ARCH_IXP4XX
350 select GENERIC_GPIO 356 select GENERIC_GPIO
351 select GENERIC_TIME 357 select GENERIC_TIME
352 select GENERIC_CLOCKEVENTS 358 select GENERIC_CLOCKEVENTS
359 select ZONE_DMA if PCI
353 help 360 help
354 Support for Intel's IXP4XX (XScale) family of processors. 361 Support for Intel's IXP4XX (XScale) family of processors.
355 362
@@ -464,6 +471,7 @@ config ARCH_RPC
464 select HAVE_PATA_PLATFORM 471 select HAVE_PATA_PLATFORM
465 select ISA_DMA_API 472 select ISA_DMA_API
466 select NO_IOPORT 473 select NO_IOPORT
474 select ARCH_SPARSEMEM_ENABLE
467 help 475 help
468 On the Acorn Risc-PC, Linux can support the internal IDE disk and 476 On the Acorn Risc-PC, Linux can support the internal IDE disk and
469 CD-ROM interface, serial and parallel port, and the floppy drive. 477 CD-ROM interface, serial and parallel port, and the floppy drive.
@@ -471,9 +479,7 @@ config ARCH_RPC
471config ARCH_SA1100 479config ARCH_SA1100
472 bool "SA1100-based" 480 bool "SA1100-based"
473 select ISA 481 select ISA
474 select ARCH_DISCONTIGMEM_ENABLE
475 select ARCH_SPARSEMEM_ENABLE 482 select ARCH_SPARSEMEM_ENABLE
476 select ARCH_SELECT_MEMORY_MODEL
477 select ARCH_MTD_XIP 483 select ARCH_MTD_XIP
478 select GENERIC_GPIO 484 select GENERIC_GPIO
479 select GENERIC_TIME 485 select GENERIC_TIME
@@ -497,6 +503,7 @@ config ARCH_SHARK
497 bool "Shark" 503 bool "Shark"
498 select ISA 504 select ISA
499 select ISA_DMA 505 select ISA_DMA
506 select ZONE_DMA
500 select PCI 507 select PCI
501 help 508 help
502 Support for the StrongARM based Digital DNARD machine, also known 509 Support for the StrongARM based Digital DNARD machine, also known
@@ -504,6 +511,8 @@ config ARCH_SHARK
504 511
505config ARCH_LH7A40X 512config ARCH_LH7A40X
506 bool "Sharp LH7A40X" 513 bool "Sharp LH7A40X"
514 select ARCH_DISCONTIGMEM_ENABLE if !LH7A40X_CONTIGMEM
515 select ARCH_SPARSEMEM_ENABLE if !LH7A40X_CONTIGMEM
507 help 516 help
508 Say Y here for systems based on one of the Sharp LH7A40X 517 Say Y here for systems based on one of the Sharp LH7A40X
509 System on a Chip processors. These CPUs include an ARM922T 518 System on a Chip processors. These CPUs include an ARM922T
@@ -515,7 +524,9 @@ config ARCH_DAVINCI
515 select GENERIC_TIME 524 select GENERIC_TIME
516 select GENERIC_CLOCKEVENTS 525 select GENERIC_CLOCKEVENTS
517 select GENERIC_GPIO 526 select GENERIC_GPIO
527 select ARCH_REQUIRE_GPIOLIB
518 select HAVE_CLK 528 select HAVE_CLK
529 select ZONE_DMA
519 help 530 help
520 Support for TI's DaVinci platform. 531 Support for TI's DaVinci platform.
521 532
@@ -734,6 +745,29 @@ config SMP
734 745
735 If you don't know what to do here, say N. 746 If you don't know what to do here, say N.
736 747
748choice
749 prompt "Memory split"
750 default VMSPLIT_3G
751 help
752 Select the desired split between kernel and user memory.
753
754 If you are not absolutely sure what you are doing, leave this
755 option alone!
756
757 config VMSPLIT_3G
758 bool "3G/1G user/kernel split"
759 config VMSPLIT_2G
760 bool "2G/2G user/kernel split"
761 config VMSPLIT_1G
762 bool "1G/3G user/kernel split"
763endchoice
764
765config PAGE_OFFSET
766 hex
767 default 0x40000000 if VMSPLIT_1G
768 default 0x80000000 if VMSPLIT_2G
769 default 0xC0000000
770
737config NR_CPUS 771config NR_CPUS
738 int "Maximum number of CPUs (2-32)" 772 int "Maximum number of CPUs (2-32)"
739 range 2 32 773 range 2 32
@@ -810,20 +844,23 @@ config OABI_COMPAT
810 UNPREDICTABLE (in fact it can be predicted that it won't work 844 UNPREDICTABLE (in fact it can be predicted that it won't work
811 at all). If in doubt say Y. 845 at all). If in doubt say Y.
812 846
847config ARCH_FLATMEM_HAS_HOLES
848 bool
849 default y
850 depends on FLATMEM
851
852# Discontigmem is deprecated
813config ARCH_DISCONTIGMEM_ENABLE 853config ARCH_DISCONTIGMEM_ENABLE
814 bool 854 bool
815 default (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
816 help
817 Say Y to support efficient handling of discontiguous physical memory,
818 for architectures which are either NUMA (Non-Uniform Memory Access)
819 or have huge holes in the physical address space for other reasons.
820 See <file:Documentation/vm/numa> for more.
821 855
822config ARCH_SPARSEMEM_ENABLE 856config ARCH_SPARSEMEM_ENABLE
823 bool 857 bool
824 858
859config ARCH_SPARSEMEM_DEFAULT
860 def_bool ARCH_SPARSEMEM_ENABLE
861
825config ARCH_SELECT_MEMORY_MODEL 862config ARCH_SELECT_MEMORY_MODEL
826 bool 863 def_bool ARCH_DISCONTIGMEM_ENABLE && ARCH_SPARSEMEM_ENABLE
827 864
828config NODES_SHIFT 865config NODES_SHIFT
829 int 866 int
@@ -840,7 +877,7 @@ config LEDS
840 ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \ 877 ARCH_LUBBOCK || MACH_MAINSTONE || ARCH_NETWINDER || \
841 ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \ 878 ARCH_OMAP || ARCH_P720T || ARCH_PXA_IDP || \
842 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \ 879 ARCH_SA1100 || ARCH_SHARK || ARCH_VERSATILE || \
843 ARCH_AT91 || MACH_TRIZEPS4 || ARCH_DAVINCI || \ 880 ARCH_AT91 || ARCH_DAVINCI || \
844 ARCH_KS8695 || MACH_RD88F5182 881 ARCH_KS8695 || MACH_RD88F5182
845 help 882 help
846 If you say Y here, the LEDs on your machine will be used 883 If you say Y here, the LEDs on your machine will be used
@@ -1000,9 +1037,9 @@ config ATAGS_PROC
1000 1037
1001endmenu 1038endmenu
1002 1039
1003if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA) 1040menu "CPU Power Management"
1004 1041
1005menu "CPU Frequency scaling" 1042if (ARCH_SA1100 || ARCH_INTEGRATOR || ARCH_OMAP || ARCH_IMX || ARCH_PXA)
1006 1043
1007source "drivers/cpufreq/Kconfig" 1044source "drivers/cpufreq/Kconfig"
1008 1045
@@ -1042,10 +1079,12 @@ config CPU_FREQ_PXA
1042 default y 1079 default y
1043 select CPU_FREQ_DEFAULT_GOV_USERSPACE 1080 select CPU_FREQ_DEFAULT_GOV_USERSPACE
1044 1081
1045endmenu
1046
1047endif 1082endif
1048 1083
1084source "drivers/cpuidle/Kconfig"
1085
1086endmenu
1087
1049menu "Floating point emulation" 1088menu "Floating point emulation"
1050 1089
1051comment "At least one emulation must be selected" 1090comment "At least one emulation must be selected"
@@ -1197,6 +1236,8 @@ source "drivers/power/Kconfig"
1197 1236
1198source "drivers/hwmon/Kconfig" 1237source "drivers/hwmon/Kconfig"
1199 1238
1239source "drivers/thermal/Kconfig"
1240
1200source "drivers/watchdog/Kconfig" 1241source "drivers/watchdog/Kconfig"
1201 1242
1202source "drivers/ssb/Kconfig" 1243source "drivers/ssb/Kconfig"
@@ -1217,6 +1258,10 @@ source "drivers/usb/Kconfig"
1217 1258
1218source "drivers/mmc/Kconfig" 1259source "drivers/mmc/Kconfig"
1219 1260
1261source "drivers/memstick/Kconfig"
1262
1263source "drivers/accessibility/Kconfig"
1264
1220source "drivers/leds/Kconfig" 1265source "drivers/leds/Kconfig"
1221 1266
1222source "drivers/rtc/Kconfig" 1267source "drivers/rtc/Kconfig"
@@ -1225,6 +1270,8 @@ source "drivers/dma/Kconfig"
1225 1270
1226source "drivers/dca/Kconfig" 1271source "drivers/dca/Kconfig"
1227 1272
1273source "drivers/auxdisplay/Kconfig"
1274
1228source "drivers/regulator/Kconfig" 1275source "drivers/regulator/Kconfig"
1229 1276
1230source "drivers/uio/Kconfig" 1277source "drivers/uio/Kconfig"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 703a44fa0f9b..e2274bc0b544 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -47,7 +47,7 @@ comma = ,
47# Note that GCC does not numerically define an architecture version 47# Note that GCC does not numerically define an architecture version
48# macro, but instead defines a whole series of macros which makes 48# macro, but instead defines a whole series of macros which makes
49# testing for a specific architecture or later rather impossible. 49# testing for a specific architecture or later rather impossible.
50arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7a,-march=armv5t -Wa$(comma)-march=armv7a) 50arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
51arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6) 51arch-$(CONFIG_CPU_32v6) :=-D__LINUX_ARM_ARCH__=6 $(call cc-option,-march=armv6,-march=armv5t -Wa$(comma)-march=armv6)
52# Only override the compiler option if ARMv6. The ARMv6K extensions are 52# Only override the compiler option if ARMv6. The ARMv6K extensions are
53# always available in ARMv7 53# always available in ARMv7
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 94462a097f86..7a03f2007882 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -76,7 +76,7 @@ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
76endif 76endif
77 77
78EXTRA_CFLAGS := -fpic -fno-builtin 78EXTRA_CFLAGS := -fpic -fno-builtin
79EXTRA_AFLAGS := 79EXTRA_AFLAGS := -Wa,-march=all
80 80
81# Supply ZRELADDR, INITRD_PHYS and PARAMS_PHYS to the decompressor via 81# Supply ZRELADDR, INITRD_PHYS and PARAMS_PHYS to the decompressor via
82# linker symbols. We only define initrd_phys and params_phys if the 82# linker symbols. We only define initrd_phys and params_phys if the
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index d42f89b7760b..84a1e0496a3c 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -421,6 +421,7 @@ __setup_mmu: sub r3, r4, #16384 @ Page directory size
421 add r1, r1, #1048576 421 add r1, r1, #1048576
422 str r1, [r0] 422 str r1, [r0]
423 mov pc, lr 423 mov pc, lr
424ENDPROC(__setup_mmu)
424 425
425__armv4_mmu_cache_on: 426__armv4_mmu_cache_on:
426 mov r12, lr 427 mov r12, lr
@@ -801,7 +802,7 @@ loop1:
801 add r2, r2, #4 @ add 4 (line length offset) 802 add r2, r2, #4 @ add 4 (line length offset)
802 ldr r4, =0x3ff 803 ldr r4, =0x3ff
803 ands r4, r4, r1, lsr #3 @ find maximum number on the way size 804 ands r4, r4, r1, lsr #3 @ find maximum number on the way size
804 .word 0xe16f5f14 @ clz r5, r4 - find bit position of way size increment 805 clz r5, r4 @ find bit position of way size increment
805 ldr r7, =0x7fff 806 ldr r7, =0x7fff
806 ands r7, r7, r1, lsr #13 @ extract max number of the index size 807 ands r7, r7, r1, lsr #13 @ extract max number of the index size
807loop2: 808loop2:
diff --git a/arch/arm/common/Kconfig b/arch/arm/common/Kconfig
index 3e073467caca..2e32acca02fb 100644
--- a/arch/arm/common/Kconfig
+++ b/arch/arm/common/Kconfig
@@ -12,7 +12,8 @@ config ICST307
12 12
13config SA1111 13config SA1111
14 bool 14 bool
15 select DMABOUNCE 15 select DMABOUNCE if !ARCH_PXA
16 select ZONE_DMA if !ARCH_PXA
16 17
17config DMABOUNCE 18config DMABOUNCE
18 bool 19 bool
diff --git a/arch/arm/common/dmabounce.c b/arch/arm/common/dmabounce.c
index aecc6c3f908f..f030f0775be7 100644
--- a/arch/arm/common/dmabounce.c
+++ b/arch/arm/common/dmabounce.c
@@ -154,9 +154,7 @@ alloc_safe_buffer(struct dmabounce_device_info *device_info, void *ptr,
154#endif 154#endif
155 155
156 write_lock_irqsave(&device_info->lock, flags); 156 write_lock_irqsave(&device_info->lock, flags);
157
158 list_add(&buf->node, &device_info->safe_buffers); 157 list_add(&buf->node, &device_info->safe_buffers);
159
160 write_unlock_irqrestore(&device_info->lock, flags); 158 write_unlock_irqrestore(&device_info->lock, flags);
161 159
162 return buf; 160 return buf;
@@ -205,8 +203,22 @@ free_safe_buffer(struct dmabounce_device_info *device_info, struct safe_buffer *
205 203
206/* ************************************************** */ 204/* ************************************************** */
207 205
208static inline dma_addr_t 206static struct safe_buffer *find_safe_buffer_dev(struct device *dev,
209map_single(struct device *dev, void *ptr, size_t size, 207 dma_addr_t dma_addr, const char *where)
208{
209 if (!dev || !dev->archdata.dmabounce)
210 return NULL;
211 if (dma_mapping_error(dev, dma_addr)) {
212 if (dev)
213 dev_err(dev, "Trying to %s invalid mapping\n", where);
214 else
215 pr_err("unknown device: Trying to %s invalid mapping\n", where);
216 return NULL;
217 }
218 return find_safe_buffer(dev->archdata.dmabounce, dma_addr);
219}
220
221static inline dma_addr_t map_single(struct device *dev, void *ptr, size_t size,
210 enum dma_data_direction dir) 222 enum dma_data_direction dir)
211{ 223{
212 struct dmabounce_device_info *device_info = dev->archdata.dmabounce; 224 struct dmabounce_device_info *device_info = dev->archdata.dmabounce;
@@ -270,33 +282,21 @@ map_single(struct device *dev, void *ptr, size_t size,
270 return dma_addr; 282 return dma_addr;
271} 283}
272 284
273static inline void 285static inline void unmap_single(struct device *dev, dma_addr_t dma_addr,
274unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, 286 size_t size, enum dma_data_direction dir)
275 enum dma_data_direction dir)
276{ 287{
277 struct dmabounce_device_info *device_info = dev->archdata.dmabounce; 288 struct safe_buffer *buf = find_safe_buffer_dev(dev, dma_addr, "unmap");
278 struct safe_buffer *buf = NULL;
279
280 /*
281 * Trying to unmap an invalid mapping
282 */
283 if (dma_mapping_error(dev, dma_addr)) {
284 dev_err(dev, "Trying to unmap invalid mapping\n");
285 return;
286 }
287
288 if (device_info)
289 buf = find_safe_buffer(device_info, dma_addr);
290 289
291 if (buf) { 290 if (buf) {
292 BUG_ON(buf->size != size); 291 BUG_ON(buf->size != size);
292 BUG_ON(buf->direction != dir);
293 293
294 dev_dbg(dev, 294 dev_dbg(dev,
295 "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n", 295 "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n",
296 __func__, buf->ptr, virt_to_dma(dev, buf->ptr), 296 __func__, buf->ptr, virt_to_dma(dev, buf->ptr),
297 buf->safe, buf->safe_dma_addr); 297 buf->safe, buf->safe_dma_addr);
298 298
299 DO_STATS ( device_info->bounce_count++ ); 299 DO_STATS(dev->archdata.dmabounce->bounce_count++);
300 300
301 if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) { 301 if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) {
302 void *ptr = buf->ptr; 302 void *ptr = buf->ptr;
@@ -317,74 +317,7 @@ unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
317 dmac_clean_range(ptr, ptr + size); 317 dmac_clean_range(ptr, ptr + size);
318 outer_clean_range(__pa(ptr), __pa(ptr) + size); 318 outer_clean_range(__pa(ptr), __pa(ptr) + size);
319 } 319 }
320 free_safe_buffer(device_info, buf); 320 free_safe_buffer(dev->archdata.dmabounce, buf);
321 }
322}
323
324static int sync_single(struct device *dev, dma_addr_t dma_addr, size_t size,
325 enum dma_data_direction dir)
326{
327 struct dmabounce_device_info *device_info = dev->archdata.dmabounce;
328 struct safe_buffer *buf = NULL;
329
330 if (device_info)
331 buf = find_safe_buffer(device_info, dma_addr);
332
333 if (buf) {
334 /*
335 * Both of these checks from original code need to be
336 * commented out b/c some drivers rely on the following:
337 *
338 * 1) Drivers may map a large chunk of memory into DMA space
339 * but only sync a small portion of it. Good example is
340 * allocating a large buffer, mapping it, and then
341 * breaking it up into small descriptors. No point
342 * in syncing the whole buffer if you only have to
343 * touch one descriptor.
344 *
345 * 2) Buffers that are mapped as DMA_BIDIRECTIONAL are
346 * usually only synced in one dir at a time.
347 *
348 * See drivers/net/eepro100.c for examples of both cases.
349 *
350 * -ds
351 *
352 * BUG_ON(buf->size != size);
353 * BUG_ON(buf->direction != dir);
354 */
355
356 dev_dbg(dev,
357 "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n",
358 __func__, buf->ptr, virt_to_dma(dev, buf->ptr),
359 buf->safe, buf->safe_dma_addr);
360
361 DO_STATS ( device_info->bounce_count++ );
362
363 switch (dir) {
364 case DMA_FROM_DEVICE:
365 dev_dbg(dev,
366 "%s: copy back safe %p to unsafe %p size %d\n",
367 __func__, buf->safe, buf->ptr, size);
368 memcpy(buf->ptr, buf->safe, size);
369 break;
370 case DMA_TO_DEVICE:
371 dev_dbg(dev,
372 "%s: copy out unsafe %p to safe %p, size %d\n",
373 __func__,buf->ptr, buf->safe, size);
374 memcpy(buf->safe, buf->ptr, size);
375 break;
376 case DMA_BIDIRECTIONAL:
377 BUG(); /* is this allowed? what does it mean? */
378 default:
379 BUG();
380 }
381 /*
382 * No need to sync the safe buffer - it was allocated
383 * via the coherent allocators.
384 */
385 return 0;
386 } else {
387 return 1;
388 } 321 }
389} 322}
390 323
@@ -396,21 +329,29 @@ static int sync_single(struct device *dev, dma_addr_t dma_addr, size_t size,
396 * substitute the safe buffer for the unsafe one. 329 * substitute the safe buffer for the unsafe one.
397 * (basically move the buffer from an unsafe area to a safe one) 330 * (basically move the buffer from an unsafe area to a safe one)
398 */ 331 */
399dma_addr_t 332dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,
400dma_map_single(struct device *dev, void *ptr, size_t size,
401 enum dma_data_direction dir) 333 enum dma_data_direction dir)
402{ 334{
403 dma_addr_t dma_addr;
404
405 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", 335 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",
406 __func__, ptr, size, dir); 336 __func__, ptr, size, dir);
407 337
408 BUG_ON(dir == DMA_NONE); 338 BUG_ON(!valid_dma_direction(dir));
409 339
410 dma_addr = map_single(dev, ptr, size, dir); 340 return map_single(dev, ptr, size, dir);
341}
342EXPORT_SYMBOL(dma_map_single);
411 343
412 return dma_addr; 344dma_addr_t dma_map_page(struct device *dev, struct page *page,
345 unsigned long offset, size_t size, enum dma_data_direction dir)
346{
347 dev_dbg(dev, "%s(page=%p,off=%#lx,size=%zx,dir=%x)\n",
348 __func__, page, offset, size, dir);
349
350 BUG_ON(!valid_dma_direction(dir));
351
352 return map_single(dev, page_address(page) + offset, size, dir);
413} 353}
354EXPORT_SYMBOL(dma_map_page);
414 355
415/* 356/*
416 * see if a mapped address was really a "safe" buffer and if so, copy 357 * see if a mapped address was really a "safe" buffer and if so, copy
@@ -419,126 +360,76 @@ dma_map_single(struct device *dev, void *ptr, size_t size,
419 * should be) 360 * should be)
420 */ 361 */
421 362
422void 363void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
423dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size, 364 enum dma_data_direction dir)
424 enum dma_data_direction dir)
425{ 365{
426 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n", 366 dev_dbg(dev, "%s(ptr=%p,size=%d,dir=%x)\n",
427 __func__, (void *) dma_addr, size, dir); 367 __func__, (void *) dma_addr, size, dir);
428 368
429 BUG_ON(dir == DMA_NONE);
430
431 unmap_single(dev, dma_addr, size, dir); 369 unmap_single(dev, dma_addr, size, dir);
432} 370}
371EXPORT_SYMBOL(dma_unmap_single);
433 372
434int 373int dmabounce_sync_for_cpu(struct device *dev, dma_addr_t addr,
435dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, 374 unsigned long off, size_t sz, enum dma_data_direction dir)
436 enum dma_data_direction dir)
437{ 375{
438 int i; 376 struct safe_buffer *buf;
439
440 dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n",
441 __func__, sg, nents, dir);
442
443 BUG_ON(dir == DMA_NONE);
444
445 for (i = 0; i < nents; i++, sg++) {
446 struct page *page = sg_page(sg);
447 unsigned int offset = sg->offset;
448 unsigned int length = sg->length;
449 void *ptr = page_address(page) + offset;
450 377
451 sg->dma_address = 378 dev_dbg(dev, "%s(dma=%#x,off=%#lx,sz=%zx,dir=%x)\n",
452 map_single(dev, ptr, length, dir); 379 __func__, addr, off, sz, dir);
453 }
454 380
455 return nents; 381 buf = find_safe_buffer_dev(dev, addr, __func__);
456} 382 if (!buf)
457 383 return 1;
458void
459dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
460 enum dma_data_direction dir)
461{
462 int i;
463 384
464 dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", 385 BUG_ON(buf->direction != dir);
465 __func__, sg, nents, dir);
466 386
467 BUG_ON(dir == DMA_NONE); 387 dev_dbg(dev, "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n",
388 __func__, buf->ptr, virt_to_dma(dev, buf->ptr),
389 buf->safe, buf->safe_dma_addr);
468 390
469 for (i = 0; i < nents; i++, sg++) { 391 DO_STATS(dev->archdata.dmabounce->bounce_count++);
470 dma_addr_t dma_addr = sg->dma_address;
471 unsigned int length = sg->length;
472 392
473 unmap_single(dev, dma_addr, length, dir); 393 if (dir == DMA_FROM_DEVICE || dir == DMA_BIDIRECTIONAL) {
394 dev_dbg(dev, "%s: copy back safe %p to unsafe %p size %d\n",
395 __func__, buf->safe + off, buf->ptr + off, sz);
396 memcpy(buf->ptr + off, buf->safe + off, sz);
474 } 397 }
398 return 0;
475} 399}
400EXPORT_SYMBOL(dmabounce_sync_for_cpu);
476 401
477void dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t dma_addr, 402int dmabounce_sync_for_device(struct device *dev, dma_addr_t addr,
478 unsigned long offset, size_t size, 403 unsigned long off, size_t sz, enum dma_data_direction dir)
479 enum dma_data_direction dir)
480{
481 dev_dbg(dev, "%s(dma=%#x,off=%#lx,size=%zx,dir=%x)\n",
482 __func__, dma_addr, offset, size, dir);
483
484 if (sync_single(dev, dma_addr, offset + size, dir))
485 dma_cache_maint(dma_to_virt(dev, dma_addr) + offset, size, dir);
486}
487EXPORT_SYMBOL(dma_sync_single_range_for_cpu);
488
489void dma_sync_single_range_for_device(struct device *dev, dma_addr_t dma_addr,
490 unsigned long offset, size_t size,
491 enum dma_data_direction dir)
492{
493 dev_dbg(dev, "%s(dma=%#x,off=%#lx,size=%zx,dir=%x)\n",
494 __func__, dma_addr, offset, size, dir);
495
496 if (sync_single(dev, dma_addr, offset + size, dir))
497 dma_cache_maint(dma_to_virt(dev, dma_addr) + offset, size, dir);
498}
499EXPORT_SYMBOL(dma_sync_single_range_for_device);
500
501void
502dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nents,
503 enum dma_data_direction dir)
504{ 404{
505 int i; 405 struct safe_buffer *buf;
506
507 dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n",
508 __func__, sg, nents, dir);
509
510 BUG_ON(dir == DMA_NONE);
511 406
512 for (i = 0; i < nents; i++, sg++) { 407 dev_dbg(dev, "%s(dma=%#x,off=%#lx,sz=%zx,dir=%x)\n",
513 dma_addr_t dma_addr = sg->dma_address; 408 __func__, addr, off, sz, dir);
514 unsigned int length = sg->length;
515 409
516 sync_single(dev, dma_addr, length, dir); 410 buf = find_safe_buffer_dev(dev, addr, __func__);
517 } 411 if (!buf)
518} 412 return 1;
519
520void
521dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nents,
522 enum dma_data_direction dir)
523{
524 int i;
525 413
526 dev_dbg(dev, "%s(sg=%p,nents=%d,dir=%x)\n", 414 BUG_ON(buf->direction != dir);
527 __func__, sg, nents, dir);
528 415
529 BUG_ON(dir == DMA_NONE); 416 dev_dbg(dev, "%s: unsafe buffer %p (dma=%#x) mapped to %p (dma=%#x)\n",
417 __func__, buf->ptr, virt_to_dma(dev, buf->ptr),
418 buf->safe, buf->safe_dma_addr);
530 419
531 for (i = 0; i < nents; i++, sg++) { 420 DO_STATS(dev->archdata.dmabounce->bounce_count++);
532 dma_addr_t dma_addr = sg->dma_address;
533 unsigned int length = sg->length;
534 421
535 sync_single(dev, dma_addr, length, dir); 422 if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL) {
423 dev_dbg(dev, "%s: copy out unsafe %p to safe %p, size %d\n",
424 __func__,buf->ptr + off, buf->safe + off, sz);
425 memcpy(buf->safe + off, buf->ptr + off, sz);
536 } 426 }
427 return 0;
537} 428}
429EXPORT_SYMBOL(dmabounce_sync_for_device);
538 430
539static int 431static int dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev,
540dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev, const char *name, 432 const char *name, unsigned long size)
541 unsigned long size)
542{ 433{
543 pool->size = size; 434 pool->size = size;
544 DO_STATS(pool->allocs = 0); 435 DO_STATS(pool->allocs = 0);
@@ -549,9 +440,8 @@ dmabounce_init_pool(struct dmabounce_pool *pool, struct device *dev, const char
549 return pool->pool ? 0 : -ENOMEM; 440 return pool->pool ? 0 : -ENOMEM;
550} 441}
551 442
552int 443int dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size,
553dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size, 444 unsigned long large_buffer_size)
554 unsigned long large_buffer_size)
555{ 445{
556 struct dmabounce_device_info *device_info; 446 struct dmabounce_device_info *device_info;
557 int ret; 447 int ret;
@@ -607,9 +497,9 @@ dmabounce_register_dev(struct device *dev, unsigned long small_buffer_size,
607 kfree(device_info); 497 kfree(device_info);
608 return ret; 498 return ret;
609} 499}
500EXPORT_SYMBOL(dmabounce_register_dev);
610 501
611void 502void dmabounce_unregister_dev(struct device *dev)
612dmabounce_unregister_dev(struct device *dev)
613{ 503{
614 struct dmabounce_device_info *device_info = dev->archdata.dmabounce; 504 struct dmabounce_device_info *device_info = dev->archdata.dmabounce;
615 505
@@ -642,15 +532,6 @@ dmabounce_unregister_dev(struct device *dev)
642 532
643 dev_info(dev, "dmabounce: device unregistered\n"); 533 dev_info(dev, "dmabounce: device unregistered\n");
644} 534}
645
646
647EXPORT_SYMBOL(dma_map_single);
648EXPORT_SYMBOL(dma_unmap_single);
649EXPORT_SYMBOL(dma_map_sg);
650EXPORT_SYMBOL(dma_unmap_sg);
651EXPORT_SYMBOL(dma_sync_sg_for_cpu);
652EXPORT_SYMBOL(dma_sync_sg_for_device);
653EXPORT_SYMBOL(dmabounce_register_dev);
654EXPORT_SYMBOL(dmabounce_unregister_dev); 535EXPORT_SYMBOL(dmabounce_unregister_dev);
655 536
656MODULE_AUTHOR("Christopher Hoover <ch@hpl.hp.com>, Deepak Saxena <dsaxena@plexity.net>"); 537MODULE_AUTHOR("Christopher Hoover <ch@hpl.hp.com>, Deepak Saxena <dsaxena@plexity.net>");
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index 0c89bd35e06f..7fc9860a97d7 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -27,9 +27,9 @@
27#include <linux/list.h> 27#include <linux/list.h>
28#include <linux/smp.h> 28#include <linux/smp.h>
29#include <linux/cpumask.h> 29#include <linux/cpumask.h>
30#include <linux/io.h>
30 31
31#include <asm/irq.h> 32#include <asm/irq.h>
32#include <asm/io.h>
33#include <asm/mach/irq.h> 33#include <asm/mach/irq.h>
34#include <asm/hardware/gic.h> 34#include <asm/hardware/gic.h>
35 35
diff --git a/arch/arm/common/it8152.c b/arch/arm/common/it8152.c
index 5fe9588db077..2793447621c3 100644
--- a/arch/arm/common/it8152.c
+++ b/arch/arm/common/it8152.c
@@ -66,14 +66,6 @@ static void it8152_unmask_irq(unsigned int irq)
66 } 66 }
67} 67}
68 68
69static inline void it8152_irq(int irq)
70{
71 struct irq_desc *desc;
72
73 desc = irq_desc + irq;
74 desc_handle_irq(irq, desc);
75}
76
77static struct irq_chip it8152_irq_chip = { 69static struct irq_chip it8152_irq_chip = {
78 .name = "it8152", 70 .name = "it8152",
79 .ack = it8152_mask_irq, 71 .ack = it8152_mask_irq,
@@ -128,21 +120,21 @@ void it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
128 bits_pd &= ((1 << IT8152_PD_IRQ_COUNT) - 1); 120 bits_pd &= ((1 << IT8152_PD_IRQ_COUNT) - 1);
129 while (bits_pd) { 121 while (bits_pd) {
130 i = __ffs(bits_pd); 122 i = __ffs(bits_pd);
131 it8152_irq(IT8152_PD_IRQ(i)); 123 generic_handle_irq(IT8152_PD_IRQ(i));
132 bits_pd &= ~(1 << i); 124 bits_pd &= ~(1 << i);
133 } 125 }
134 126
135 bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1); 127 bits_lp &= ((1 << IT8152_LP_IRQ_COUNT) - 1);
136 while (bits_lp) { 128 while (bits_lp) {
137 i = __ffs(bits_lp); 129 i = __ffs(bits_lp);
138 it8152_irq(IT8152_LP_IRQ(i)); 130 generic_handle_irq(IT8152_LP_IRQ(i));
139 bits_lp &= ~(1 << i); 131 bits_lp &= ~(1 << i);
140 } 132 }
141 133
142 bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1); 134 bits_ld &= ((1 << IT8152_LD_IRQ_COUNT) - 1);
143 while (bits_ld) { 135 while (bits_ld) {
144 i = __ffs(bits_ld); 136 i = __ffs(bits_ld);
145 it8152_irq(IT8152_LD_IRQ(i)); 137 generic_handle_irq(IT8152_LD_IRQ(i));
146 bits_ld &= ~(1 << i); 138 bits_ld &= ~(1 << i);
147 } 139 }
148 } 140 }
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index 283051eaf931..7c6b4b99a2df 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -24,9 +24,9 @@
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/slab.h> 25#include <linux/slab.h>
26#include <linux/spinlock.h> 26#include <linux/spinlock.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31#include <asm/mach/irq.h> 31#include <asm/mach/irq.h>
32 32
@@ -169,7 +169,6 @@ static struct locomo_dev_info locomo_devices[] = {
169static void locomo_handler(unsigned int irq, struct irq_desc *desc) 169static void locomo_handler(unsigned int irq, struct irq_desc *desc)
170{ 170{
171 int req, i; 171 int req, i;
172 struct irq_desc *d;
173 void __iomem *mapbase = get_irq_chip_data(irq); 172 void __iomem *mapbase = get_irq_chip_data(irq);
174 173
175 /* Acknowledge the parent IRQ */ 174 /* Acknowledge the parent IRQ */
@@ -181,10 +180,9 @@ static void locomo_handler(unsigned int irq, struct irq_desc *desc)
181 if (req) { 180 if (req) {
182 /* generate the next interrupt(s) */ 181 /* generate the next interrupt(s) */
183 irq = LOCOMO_IRQ_START; 182 irq = LOCOMO_IRQ_START;
184 d = irq_desc + irq; 183 for (i = 0; i <= 3; i++, irq++) {
185 for (i = 0; i <= 3; i++, d++, irq++) {
186 if (req & (0x0100 << i)) { 184 if (req & (0x0100 << i)) {
187 desc_handle_irq(irq, d); 185 generic_handle_irq(irq);
188 } 186 }
189 187
190 } 188 }
@@ -222,12 +220,10 @@ static struct irq_chip locomo_chip = {
222 220
223static void locomo_key_handler(unsigned int irq, struct irq_desc *desc) 221static void locomo_key_handler(unsigned int irq, struct irq_desc *desc)
224{ 222{
225 struct irq_desc *d;
226 void __iomem *mapbase = get_irq_chip_data(irq); 223 void __iomem *mapbase = get_irq_chip_data(irq);
227 224
228 if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) { 225 if (locomo_readl(mapbase + LOCOMO_KEYBOARD + LOCOMO_KIC) & 0x0001) {
229 d = irq_desc + LOCOMO_IRQ_KEY_START; 226 generic_handle_irq(LOCOMO_IRQ_KEY_START);
230 desc_handle_irq(LOCOMO_IRQ_KEY_START, d);
231 } 227 }
232} 228}
233 229
@@ -268,7 +264,6 @@ static struct irq_chip locomo_key_chip = {
268static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc) 264static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
269{ 265{
270 int req, i; 266 int req, i;
271 struct irq_desc *d;
272 void __iomem *mapbase = get_irq_chip_data(irq); 267 void __iomem *mapbase = get_irq_chip_data(irq);
273 268
274 req = locomo_readl(mapbase + LOCOMO_GIR) & 269 req = locomo_readl(mapbase + LOCOMO_GIR) &
@@ -277,10 +272,9 @@ static void locomo_gpio_handler(unsigned int irq, struct irq_desc *desc)
277 272
278 if (req) { 273 if (req) {
279 irq = LOCOMO_IRQ_GPIO_START; 274 irq = LOCOMO_IRQ_GPIO_START;
280 d = irq_desc + LOCOMO_IRQ_GPIO_START; 275 for (i = 0; i <= 15; i++, irq++) {
281 for (i = 0; i <= 15; i++, irq++, d++) {
282 if (req & (0x0001 << i)) { 276 if (req & (0x0001 << i)) {
283 desc_handle_irq(irq, d); 277 generic_handle_irq(irq);
284 } 278 }
285 } 279 }
286 } 280 }
@@ -361,12 +355,10 @@ static struct irq_chip locomo_gpio_chip = {
361 355
362static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc) 356static void locomo_lt_handler(unsigned int irq, struct irq_desc *desc)
363{ 357{
364 struct irq_desc *d;
365 void __iomem *mapbase = get_irq_chip_data(irq); 358 void __iomem *mapbase = get_irq_chip_data(irq);
366 359
367 if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) { 360 if (locomo_readl(mapbase + LOCOMO_LTINT) & 0x0001) {
368 d = irq_desc + LOCOMO_IRQ_LT_START; 361 generic_handle_irq(LOCOMO_IRQ_LT_START);
369 desc_handle_irq(LOCOMO_IRQ_LT_START, d);
370 } 362 }
371} 363}
372 364
@@ -407,17 +399,15 @@ static struct irq_chip locomo_lt_chip = {
407static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc) 399static void locomo_spi_handler(unsigned int irq, struct irq_desc *desc)
408{ 400{
409 int req, i; 401 int req, i;
410 struct irq_desc *d;
411 void __iomem *mapbase = get_irq_chip_data(irq); 402 void __iomem *mapbase = get_irq_chip_data(irq);
412 403
413 req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F; 404 req = locomo_readl(mapbase + LOCOMO_SPI + LOCOMO_SPIIR) & 0x000F;
414 if (req) { 405 if (req) {
415 irq = LOCOMO_IRQ_SPI_START; 406 irq = LOCOMO_IRQ_SPI_START;
416 d = irq_desc + irq;
417 407
418 for (i = 0; i <= 3; i++, irq++, d++) { 408 for (i = 0; i <= 3; i++, irq++) {
419 if (req & (0x0001 << i)) { 409 if (req & (0x0001 << i)) {
420 desc_handle_irq(irq, d); 410 generic_handle_irq(irq);
421 } 411 }
422 } 412 }
423 } 413 }
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index ec8a5471bf06..fb86f248aab8 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -25,10 +25,10 @@
25#include <linux/spinlock.h> 25#include <linux/spinlock.h>
26#include <linux/dma-mapping.h> 26#include <linux/dma-mapping.h>
27#include <linux/clk.h> 27#include <linux/clk.h>
28#include <linux/io.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/mach-types.h> 31#include <asm/mach-types.h>
31#include <asm/io.h>
32#include <asm/irq.h> 32#include <asm/irq.h>
33#include <asm/mach/irq.h> 33#include <asm/mach/irq.h>
34#include <asm/sizes.h> 34#include <asm/sizes.h>
diff --git a/arch/arm/common/scoop.c b/arch/arm/common/scoop.c
index ae39553589dd..697c64913990 100644
--- a/arch/arm/common/scoop.c
+++ b/arch/arm/common/scoop.c
@@ -15,7 +15,7 @@
15#include <linux/string.h> 15#include <linux/string.h>
16#include <linux/slab.h> 16#include <linux/slab.h>
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <asm/io.h> 18#include <linux/io.h>
19#include <asm/gpio.h> 19#include <asm/gpio.h>
20#include <asm/hardware/scoop.h> 20#include <asm/hardware/scoop.h>
21 21
diff --git a/arch/arm/common/sharpsl_param.c b/arch/arm/common/sharpsl_param.c
index aad4d94ba8f5..d56c932580eb 100644
--- a/arch/arm/common/sharpsl_param.c
+++ b/arch/arm/common/sharpsl_param.c
@@ -12,6 +12,7 @@
12 */ 12 */
13 13
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/module.h>
15#include <linux/string.h> 16#include <linux/string.h>
16#include <asm/mach/sharpsl_param.h> 17#include <asm/mach/sharpsl_param.h>
17 18
@@ -36,6 +37,7 @@
36#define PHAD_MAGIC MAGIC_CHG('P','H','A','D') 37#define PHAD_MAGIC MAGIC_CHG('P','H','A','D')
37 38
38struct sharpsl_param_info sharpsl_param; 39struct sharpsl_param_info sharpsl_param;
40EXPORT_SYMBOL(sharpsl_param);
39 41
40void sharpsl_save_param(void) 42void sharpsl_save_param(void)
41{ 43{
diff --git a/arch/arm/common/time-acorn.c b/arch/arm/common/time-acorn.c
index df0983aafe69..deeed561b168 100644
--- a/arch/arm/common/time-acorn.c
+++ b/arch/arm/common/time-acorn.c
@@ -17,9 +17,9 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19#include <linux/irq.h> 19#include <linux/irq.h>
20#include <linux/io.h>
20 21
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/io.h>
23#include <asm/hardware/ioc.h> 23#include <asm/hardware/ioc.h>
24 24
25#include <asm/mach/time.h> 25#include <asm/mach/time.h>
diff --git a/arch/arm/common/uengine.c b/arch/arm/common/uengine.c
index 7ecd3c0ab011..b520e56216a9 100644
--- a/arch/arm/common/uengine.c
+++ b/arch/arm/common/uengine.c
@@ -16,9 +16,9 @@
16#include <linux/slab.h> 16#include <linux/slab.h>
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/string.h> 18#include <linux/string.h>
19#include <linux/io.h>
19#include <mach/hardware.h> 20#include <mach/hardware.h>
20#include <asm/hardware/uengine.h> 21#include <asm/hardware/uengine.h>
21#include <asm/io.h>
22 22
23#if defined(CONFIG_ARCH_IXP2000) 23#if defined(CONFIG_ARCH_IXP2000)
24#define IXP_UENGINE_CSR_VIRT_BASE IXP2000_UENGINE_CSR_VIRT_BASE 24#define IXP_UENGINE_CSR_VIRT_BASE IXP2000_UENGINE_CSR_VIRT_BASE
diff --git a/arch/arm/common/via82c505.c b/arch/arm/common/via82c505.c
index 79a8206e62ac..8421d39109b3 100644
--- a/arch/arm/common/via82c505.c
+++ b/arch/arm/common/via82c505.c
@@ -4,8 +4,8 @@
4#include <linux/mm.h> 4#include <linux/mm.h>
5#include <linux/init.h> 5#include <linux/init.h>
6#include <linux/ioport.h> 6#include <linux/ioport.h>
7#include <linux/io.h>
7 8
8#include <asm/io.h>
9#include <asm/system.h> 9#include <asm/system.h>
10 10
11#include <asm/mach/pci.h> 11#include <asm/mach/pci.h>
diff --git a/arch/arm/common/vic.c b/arch/arm/common/vic.c
index c026fa2214a3..f1e4b8f60cab 100644
--- a/arch/arm/common/vic.c
+++ b/arch/arm/common/vic.c
@@ -20,8 +20,8 @@
20 */ 20 */
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/list.h> 22#include <linux/list.h>
23#include <linux/io.h>
23 24
24#include <asm/io.h>
25#include <asm/mach/irq.h> 25#include <asm/mach/irq.h>
26#include <asm/hardware/vic.h> 26#include <asm/hardware/vic.h>
27 27
diff --git a/arch/arm/configs/afeb9260_defconfig b/arch/arm/configs/afeb9260_defconfig
new file mode 100644
index 000000000000..ce909586a34f
--- /dev/null
+++ b/arch/arm/configs/afeb9260_defconfig
@@ -0,0 +1,1259 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc2
4# Tue Aug 12 22:30:16 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y
17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_HARDIRQS_SW_RESEND=y
19CONFIG_GENERIC_IRQ_PROBE=y
20CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_SUPPORTS_AOUT=y
26CONFIG_ZONE_DMA=y
27CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
28CONFIG_VECTORS_BASE=0xffff0000
29CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
30
31#
32# General setup
33#
34CONFIG_EXPERIMENTAL=y
35CONFIG_BROKEN_ON_SMP=y
36CONFIG_LOCK_KERNEL=y
37CONFIG_INIT_ENV_ARG_LIMIT=32
38CONFIG_LOCALVERSION=""
39# CONFIG_LOCALVERSION_AUTO is not set
40CONFIG_SWAP=y
41CONFIG_SYSVIPC=y
42CONFIG_SYSVIPC_SYSCTL=y
43# CONFIG_POSIX_MQUEUE is not set
44# CONFIG_BSD_PROCESS_ACCT is not set
45# CONFIG_TASKSTATS is not set
46# CONFIG_AUDIT is not set
47# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14
49# CONFIG_CGROUPS is not set
50# CONFIG_GROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59CONFIG_BLK_DEV_INITRD=y
60CONFIG_INITRAMFS_SOURCE=""
61CONFIG_CC_OPTIMIZE_FOR_SIZE=y
62CONFIG_SYSCTL=y
63# CONFIG_EMBEDDED is not set
64CONFIG_UID16=y
65CONFIG_SYSCTL_SYSCALL=y
66CONFIG_SYSCTL_SYSCALL_CHECK=y
67CONFIG_KALLSYMS=y
68# CONFIG_KALLSYMS_ALL is not set
69# CONFIG_KALLSYMS_EXTRA_PASS is not set
70CONFIG_HOTPLUG=y
71CONFIG_PRINTK=y
72CONFIG_BUG=y
73CONFIG_ELF_CORE=y
74CONFIG_COMPAT_BRK=y
75CONFIG_BASE_FULL=y
76CONFIG_FUTEX=y
77CONFIG_ANON_INODES=y
78CONFIG_EPOLL=y
79CONFIG_SIGNALFD=y
80CONFIG_TIMERFD=y
81CONFIG_EVENTFD=y
82CONFIG_SHMEM=y
83CONFIG_VM_EVENT_COUNTERS=y
84CONFIG_SLAB=y
85# CONFIG_SLUB is not set
86# CONFIG_SLOB is not set
87# CONFIG_PROFILING is not set
88# CONFIG_MARKERS is not set
89CONFIG_HAVE_OPROFILE=y
90# CONFIG_KPROBES is not set
91# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
92# CONFIG_HAVE_IOREMAP_PROT is not set
93CONFIG_HAVE_KPROBES=y
94CONFIG_HAVE_KRETPROBES=y
95# CONFIG_HAVE_ARCH_TRACEHOOK is not set
96# CONFIG_HAVE_DMA_ATTRS is not set
97# CONFIG_USE_GENERIC_SMP_HELPERS is not set
98CONFIG_HAVE_CLK=y
99CONFIG_PROC_PAGE_MONITOR=y
100CONFIG_HAVE_GENERIC_DMA_COHERENT=y
101CONFIG_SLABINFO=y
102CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set
104CONFIG_BASE_SMALL=0
105CONFIG_MODULES=y
106# CONFIG_MODULE_FORCE_LOAD is not set
107CONFIG_MODULE_UNLOAD=y
108# CONFIG_MODULE_FORCE_UNLOAD is not set
109# CONFIG_MODVERSIONS is not set
110# CONFIG_MODULE_SRCVERSION_ALL is not set
111CONFIG_KMOD=y
112CONFIG_BLOCK=y
113# CONFIG_LBD is not set
114# CONFIG_BLK_DEV_IO_TRACE is not set
115# CONFIG_LSF is not set
116# CONFIG_BLK_DEV_BSG is not set
117# CONFIG_BLK_DEV_INTEGRITY is not set
118
119#
120# IO Schedulers
121#
122CONFIG_IOSCHED_NOOP=y
123CONFIG_IOSCHED_AS=y
124# CONFIG_IOSCHED_DEADLINE is not set
125# CONFIG_IOSCHED_CFQ is not set
126CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_DEADLINE is not set
128# CONFIG_DEFAULT_CFQ is not set
129# CONFIG_DEFAULT_NOOP is not set
130CONFIG_DEFAULT_IOSCHED="anticipatory"
131CONFIG_CLASSIC_RCU=y
132
133#
134# System Type
135#
136# CONFIG_ARCH_AAEC2000 is not set
137# CONFIG_ARCH_INTEGRATOR is not set
138# CONFIG_ARCH_REALVIEW is not set
139# CONFIG_ARCH_VERSATILE is not set
140CONFIG_ARCH_AT91=y
141# CONFIG_ARCH_CLPS7500 is not set
142# CONFIG_ARCH_CLPS711X is not set
143# CONFIG_ARCH_EBSA110 is not set
144# CONFIG_ARCH_EP93XX is not set
145# CONFIG_ARCH_FOOTBRIDGE is not set
146# CONFIG_ARCH_NETX is not set
147# CONFIG_ARCH_H720X is not set
148# CONFIG_ARCH_IMX is not set
149# CONFIG_ARCH_IOP13XX is not set
150# CONFIG_ARCH_IOP32X is not set
151# CONFIG_ARCH_IOP33X is not set
152# CONFIG_ARCH_IXP23XX is not set
153# CONFIG_ARCH_IXP2000 is not set
154# CONFIG_ARCH_IXP4XX is not set
155# CONFIG_ARCH_L7200 is not set
156# CONFIG_ARCH_KIRKWOOD is not set
157# CONFIG_ARCH_KS8695 is not set
158# CONFIG_ARCH_NS9XXX is not set
159# CONFIG_ARCH_LOKI is not set
160# CONFIG_ARCH_MV78XX0 is not set
161# CONFIG_ARCH_MXC is not set
162# CONFIG_ARCH_ORION5X is not set
163# CONFIG_ARCH_PNX4008 is not set
164# CONFIG_ARCH_PXA is not set
165# CONFIG_ARCH_RPC is not set
166# CONFIG_ARCH_SA1100 is not set
167# CONFIG_ARCH_S3C2410 is not set
168# CONFIG_ARCH_SHARK is not set
169# CONFIG_ARCH_LH7A40X is not set
170# CONFIG_ARCH_DAVINCI is not set
171# CONFIG_ARCH_OMAP is not set
172# CONFIG_ARCH_MSM7X00A is not set
173
174#
175# Boot options
176#
177
178#
179# Power management
180#
181
182#
183# Atmel AT91 System-on-Chip
184#
185# CONFIG_ARCH_AT91RM9200 is not set
186CONFIG_ARCH_AT91SAM9260=y
187# CONFIG_ARCH_AT91SAM9261 is not set
188# CONFIG_ARCH_AT91SAM9263 is not set
189# CONFIG_ARCH_AT91SAM9RL is not set
190# CONFIG_ARCH_AT91SAM9G20 is not set
191# CONFIG_ARCH_AT91CAP9 is not set
192# CONFIG_ARCH_AT91X40 is not set
193CONFIG_AT91_PMC_UNIT=y
194
195#
196# AT91SAM9260 Variants
197#
198# CONFIG_ARCH_AT91SAM9260_SAM9XE is not set
199
200#
201# AT91SAM9260 / AT91SAM9XE Board Type
202#
203# CONFIG_MACH_AT91SAM9260EK is not set
204# CONFIG_MACH_CAM60 is not set
205# CONFIG_MACH_SAM9_L9260 is not set
206CONFIG_MACH_AFEB9260=y
207# CONFIG_MACH_USB_A9260 is not set
208# CONFIG_MACH_QIL_A9260 is not set
209
210#
211# AT91 Board Options
212#
213
214#
215# AT91 Feature Selections
216#
217CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
218CONFIG_AT91_TIMER_HZ=100
219CONFIG_AT91_EARLY_DBGU=y
220# CONFIG_AT91_EARLY_USART0 is not set
221# CONFIG_AT91_EARLY_USART1 is not set
222# CONFIG_AT91_EARLY_USART2 is not set
223# CONFIG_AT91_EARLY_USART3 is not set
224# CONFIG_AT91_EARLY_USART4 is not set
225# CONFIG_AT91_EARLY_USART5 is not set
226
227#
228# Processor Type
229#
230CONFIG_CPU_32=y
231CONFIG_CPU_ARM926T=y
232CONFIG_CPU_32v5=y
233CONFIG_CPU_ABRT_EV5TJ=y
234CONFIG_CPU_PABRT_NOIFAR=y
235CONFIG_CPU_CACHE_VIVT=y
236CONFIG_CPU_COPY_V4WB=y
237CONFIG_CPU_TLB_V4WBI=y
238CONFIG_CPU_CP15=y
239CONFIG_CPU_CP15_MMU=y
240
241#
242# Processor Features
243#
244CONFIG_ARM_THUMB=y
245# CONFIG_CPU_ICACHE_DISABLE is not set
246# CONFIG_CPU_DCACHE_DISABLE is not set
247# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
248# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
249# CONFIG_OUTER_CACHE is not set
250
251#
252# Bus support
253#
254# CONFIG_PCI_SYSCALL is not set
255# CONFIG_ARCH_SUPPORTS_MSI is not set
256# CONFIG_PCCARD is not set
257
258#
259# Kernel Features
260#
261# CONFIG_TICK_ONESHOT is not set
262# CONFIG_NO_HZ is not set
263# CONFIG_HIGH_RES_TIMERS is not set
264CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
265CONFIG_PREEMPT=y
266CONFIG_HZ=100
267CONFIG_AEABI=y
268CONFIG_OABI_COMPAT=y
269# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
270CONFIG_SELECT_MEMORY_MODEL=y
271CONFIG_FLATMEM_MANUAL=y
272# CONFIG_DISCONTIGMEM_MANUAL is not set
273# CONFIG_SPARSEMEM_MANUAL is not set
274CONFIG_FLATMEM=y
275CONFIG_FLAT_NODE_MEM_MAP=y
276# CONFIG_SPARSEMEM_STATIC is not set
277# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
278CONFIG_PAGEFLAGS_EXTENDED=y
279CONFIG_SPLIT_PTLOCK_CPUS=4096
280# CONFIG_RESOURCES_64BIT is not set
281CONFIG_ZONE_DMA_FLAG=1
282CONFIG_BOUNCE=y
283CONFIG_VIRT_TO_BUS=y
284# CONFIG_LEDS is not set
285CONFIG_ALIGNMENT_TRAP=y
286
287#
288# Boot options
289#
290CONFIG_ZBOOT_ROM_TEXT=0x0
291CONFIG_ZBOOT_ROM_BSS=0x0
292CONFIG_CMDLINE="mem=64M console=ttyS0,115200 initrd=0x21100000,3145728 root=/dev/ram0 rw"
293# CONFIG_XIP_KERNEL is not set
294# CONFIG_KEXEC is not set
295
296#
297# Floating point emulation
298#
299
300#
301# At least one emulation must be selected
302#
303CONFIG_FPE_NWFPE=y
304# CONFIG_FPE_NWFPE_XP is not set
305# CONFIG_FPE_FASTFPE is not set
306# CONFIG_VFP is not set
307
308#
309# Userspace binary formats
310#
311CONFIG_BINFMT_ELF=y
312# CONFIG_BINFMT_AOUT is not set
313# CONFIG_BINFMT_MISC is not set
314
315#
316# Power management options
317#
318# CONFIG_PM is not set
319CONFIG_ARCH_SUSPEND_POSSIBLE=y
320CONFIG_NET=y
321
322#
323# Networking options
324#
325CONFIG_PACKET=y
326# CONFIG_PACKET_MMAP is not set
327CONFIG_UNIX=y
328# CONFIG_NET_KEY is not set
329CONFIG_INET=y
330# CONFIG_IP_MULTICAST is not set
331# CONFIG_IP_ADVANCED_ROUTER is not set
332CONFIG_IP_FIB_HASH=y
333CONFIG_IP_PNP=y
334# CONFIG_IP_PNP_DHCP is not set
335CONFIG_IP_PNP_BOOTP=y
336# CONFIG_IP_PNP_RARP is not set
337# CONFIG_NET_IPIP is not set
338# CONFIG_NET_IPGRE is not set
339# CONFIG_ARPD is not set
340# CONFIG_SYN_COOKIES is not set
341# CONFIG_INET_AH is not set
342# CONFIG_INET_ESP is not set
343# CONFIG_INET_IPCOMP is not set
344# CONFIG_INET_XFRM_TUNNEL is not set
345# CONFIG_INET_TUNNEL is not set
346# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
347# CONFIG_INET_XFRM_MODE_TUNNEL is not set
348# CONFIG_INET_XFRM_MODE_BEET is not set
349# CONFIG_INET_LRO is not set
350CONFIG_INET_DIAG=y
351CONFIG_INET_TCP_DIAG=y
352# CONFIG_TCP_CONG_ADVANCED is not set
353CONFIG_TCP_CONG_CUBIC=y
354CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_TCP_MD5SIG is not set
356# CONFIG_IPV6 is not set
357# CONFIG_NETWORK_SECMARK is not set
358# CONFIG_NETFILTER is not set
359# CONFIG_IP_DCCP is not set
360# CONFIG_IP_SCTP is not set
361# CONFIG_TIPC is not set
362# CONFIG_ATM is not set
363# CONFIG_BRIDGE is not set
364# CONFIG_VLAN_8021Q is not set
365# CONFIG_DECNET is not set
366# CONFIG_LLC2 is not set
367# CONFIG_IPX is not set
368# CONFIG_ATALK is not set
369# CONFIG_X25 is not set
370# CONFIG_LAPB is not set
371# CONFIG_ECONET is not set
372# CONFIG_WAN_ROUTER is not set
373# CONFIG_NET_SCHED is not set
374
375#
376# Network testing
377#
378# CONFIG_NET_PKTGEN is not set
379# CONFIG_HAMRADIO is not set
380# CONFIG_CAN is not set
381# CONFIG_IRDA is not set
382# CONFIG_BT is not set
383# CONFIG_AF_RXRPC is not set
384
385#
386# Wireless
387#
388# CONFIG_CFG80211 is not set
389# CONFIG_WIRELESS_EXT is not set
390# CONFIG_MAC80211 is not set
391# CONFIG_IEEE80211 is not set
392# CONFIG_RFKILL is not set
393# CONFIG_NET_9P is not set
394
395#
396# Device Drivers
397#
398
399#
400# Generic Driver Options
401#
402CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
403CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y
405CONFIG_FW_LOADER=y
406CONFIG_FIRMWARE_IN_KERNEL=y
407CONFIG_EXTRA_FIRMWARE=""
408# CONFIG_DEBUG_DRIVER is not set
409# CONFIG_DEBUG_DEVRES is not set
410# CONFIG_SYS_HYPERVISOR is not set
411# CONFIG_CONNECTOR is not set
412CONFIG_MTD=y
413# CONFIG_MTD_DEBUG is not set
414# CONFIG_MTD_CONCAT is not set
415CONFIG_MTD_PARTITIONS=y
416# CONFIG_MTD_REDBOOT_PARTS is not set
417# CONFIG_MTD_CMDLINE_PARTS is not set
418# CONFIG_MTD_AFS_PARTS is not set
419# CONFIG_MTD_AR7_PARTS is not set
420
421#
422# User Modules And Translation Layers
423#
424CONFIG_MTD_CHAR=y
425CONFIG_MTD_BLKDEVS=y
426CONFIG_MTD_BLOCK=y
427# CONFIG_FTL is not set
428# CONFIG_NFTL is not set
429# CONFIG_INFTL is not set
430# CONFIG_RFD_FTL is not set
431# CONFIG_SSFDC is not set
432# CONFIG_MTD_OOPS is not set
433
434#
435# RAM/ROM/Flash chip drivers
436#
437# CONFIG_MTD_CFI is not set
438# CONFIG_MTD_JEDECPROBE is not set
439CONFIG_MTD_MAP_BANK_WIDTH_1=y
440CONFIG_MTD_MAP_BANK_WIDTH_2=y
441CONFIG_MTD_MAP_BANK_WIDTH_4=y
442# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
443# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
444# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
445CONFIG_MTD_CFI_I1=y
446CONFIG_MTD_CFI_I2=y
447# CONFIG_MTD_CFI_I4 is not set
448# CONFIG_MTD_CFI_I8 is not set
449# CONFIG_MTD_RAM is not set
450# CONFIG_MTD_ROM is not set
451# CONFIG_MTD_ABSENT is not set
452
453#
454# Mapping drivers for chip access
455#
456# CONFIG_MTD_COMPLEX_MAPPINGS is not set
457# CONFIG_MTD_PLATRAM is not set
458
459#
460# Self-contained MTD device drivers
461#
462CONFIG_MTD_DATAFLASH=y
463# CONFIG_MTD_M25P80 is not set
464# CONFIG_MTD_SLRAM is not set
465# CONFIG_MTD_PHRAM is not set
466# CONFIG_MTD_MTDRAM is not set
467# CONFIG_MTD_BLOCK2MTD is not set
468
469#
470# Disk-On-Chip Device Drivers
471#
472# CONFIG_MTD_DOC2000 is not set
473# CONFIG_MTD_DOC2001 is not set
474# CONFIG_MTD_DOC2001PLUS is not set
475CONFIG_MTD_NAND=y
476# CONFIG_MTD_NAND_VERIFY_WRITE is not set
477# CONFIG_MTD_NAND_ECC_SMC is not set
478# CONFIG_MTD_NAND_MUSEUM_IDS is not set
479CONFIG_MTD_NAND_IDS=y
480# CONFIG_MTD_NAND_DISKONCHIP is not set
481CONFIG_MTD_NAND_ATMEL=y
482# CONFIG_MTD_NAND_ATMEL_ECC_HW is not set
483CONFIG_MTD_NAND_ATMEL_ECC_SOFT=y
484# CONFIG_MTD_NAND_ATMEL_ECC_NONE is not set
485# CONFIG_MTD_NAND_NANDSIM is not set
486# CONFIG_MTD_NAND_PLATFORM is not set
487# CONFIG_MTD_ALAUDA is not set
488# CONFIG_MTD_ONENAND is not set
489
490#
491# UBI - Unsorted block images
492#
493# CONFIG_MTD_UBI is not set
494# CONFIG_PARPORT is not set
495CONFIG_BLK_DEV=y
496# CONFIG_BLK_DEV_COW_COMMON is not set
497# CONFIG_BLK_DEV_LOOP is not set
498# CONFIG_BLK_DEV_NBD is not set
499# CONFIG_BLK_DEV_UB is not set
500CONFIG_BLK_DEV_RAM=y
501CONFIG_BLK_DEV_RAM_COUNT=16
502CONFIG_BLK_DEV_RAM_SIZE=8192
503# CONFIG_BLK_DEV_XIP is not set
504# CONFIG_CDROM_PKTCDVD is not set
505# CONFIG_ATA_OVER_ETH is not set
506CONFIG_MISC_DEVICES=y
507# CONFIG_ATMEL_PWM is not set
508# CONFIG_ATMEL_TCLIB is not set
509# CONFIG_EEPROM_93CX6 is not set
510CONFIG_ATMEL_SSC=y
511# CONFIG_ENCLOSURE_SERVICES is not set
512CONFIG_HAVE_IDE=y
513# CONFIG_IDE is not set
514
515#
516# SCSI device support
517#
518# CONFIG_RAID_ATTRS is not set
519CONFIG_SCSI=y
520CONFIG_SCSI_DMA=y
521# CONFIG_SCSI_TGT is not set
522# CONFIG_SCSI_NETLINK is not set
523CONFIG_SCSI_PROC_FS=y
524
525#
526# SCSI support type (disk, tape, CD-ROM)
527#
528CONFIG_BLK_DEV_SD=y
529# CONFIG_CHR_DEV_ST is not set
530# CONFIG_CHR_DEV_OSST is not set
531# CONFIG_BLK_DEV_SR is not set
532# CONFIG_CHR_DEV_SG is not set
533# CONFIG_CHR_DEV_SCH is not set
534
535#
536# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
537#
538CONFIG_SCSI_MULTI_LUN=y
539# CONFIG_SCSI_CONSTANTS is not set
540# CONFIG_SCSI_LOGGING is not set
541# CONFIG_SCSI_SCAN_ASYNC is not set
542CONFIG_SCSI_WAIT_SCAN=m
543
544#
545# SCSI Transports
546#
547# CONFIG_SCSI_SPI_ATTRS is not set
548# CONFIG_SCSI_FC_ATTRS is not set
549# CONFIG_SCSI_ISCSI_ATTRS is not set
550# CONFIG_SCSI_SAS_LIBSAS is not set
551# CONFIG_SCSI_SRP_ATTRS is not set
552CONFIG_SCSI_LOWLEVEL=y
553# CONFIG_ISCSI_TCP is not set
554# CONFIG_SCSI_DEBUG is not set
555# CONFIG_SCSI_DH is not set
556# CONFIG_ATA is not set
557# CONFIG_MD is not set
558CONFIG_NETDEVICES=y
559# CONFIG_DUMMY is not set
560# CONFIG_BONDING is not set
561# CONFIG_MACVLAN is not set
562# CONFIG_EQUALIZER is not set
563# CONFIG_TUN is not set
564# CONFIG_VETH is not set
565CONFIG_PHYLIB=y
566
567#
568# MII PHY device drivers
569#
570# CONFIG_MARVELL_PHY is not set
571# CONFIG_DAVICOM_PHY is not set
572# CONFIG_QSEMI_PHY is not set
573# CONFIG_LXT_PHY is not set
574# CONFIG_CICADA_PHY is not set
575# CONFIG_VITESSE_PHY is not set
576# CONFIG_SMSC_PHY is not set
577# CONFIG_BROADCOM_PHY is not set
578# CONFIG_ICPLUS_PHY is not set
579# CONFIG_REALTEK_PHY is not set
580# CONFIG_FIXED_PHY is not set
581# CONFIG_MDIO_BITBANG is not set
582CONFIG_NET_ETHERNET=y
583CONFIG_MII=y
584CONFIG_MACB=y
585# CONFIG_AX88796 is not set
586# CONFIG_SMC91X is not set
587# CONFIG_DM9000 is not set
588# CONFIG_ENC28J60 is not set
589# CONFIG_IBM_NEW_EMAC_ZMII is not set
590# CONFIG_IBM_NEW_EMAC_RGMII is not set
591# CONFIG_IBM_NEW_EMAC_TAH is not set
592# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
593# CONFIG_B44 is not set
594# CONFIG_NETDEV_1000 is not set
595# CONFIG_NETDEV_10000 is not set
596
597#
598# Wireless LAN
599#
600# CONFIG_WLAN_PRE80211 is not set
601# CONFIG_WLAN_80211 is not set
602# CONFIG_IWLWIFI_LEDS is not set
603
604#
605# USB Network Adapters
606#
607# CONFIG_USB_CATC is not set
608# CONFIG_USB_KAWETH is not set
609# CONFIG_USB_PEGASUS is not set
610# CONFIG_USB_RTL8150 is not set
611# CONFIG_USB_USBNET is not set
612# CONFIG_WAN is not set
613# CONFIG_PPP is not set
614# CONFIG_SLIP is not set
615# CONFIG_NETCONSOLE is not set
616# CONFIG_NETPOLL is not set
617# CONFIG_NET_POLL_CONTROLLER is not set
618# CONFIG_ISDN is not set
619
620#
621# Input device support
622#
623CONFIG_INPUT=y
624# CONFIG_INPUT_FF_MEMLESS is not set
625# CONFIG_INPUT_POLLDEV is not set
626
627#
628# Userland interfaces
629#
630CONFIG_INPUT_MOUSEDEV=y
631# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
632CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
633CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
634# CONFIG_INPUT_JOYDEV is not set
635# CONFIG_INPUT_EVDEV is not set
636# CONFIG_INPUT_EVBUG is not set
637
638#
639# Input Device Drivers
640#
641# CONFIG_INPUT_KEYBOARD is not set
642# CONFIG_INPUT_MOUSE is not set
643# CONFIG_INPUT_JOYSTICK is not set
644# CONFIG_INPUT_TABLET is not set
645# CONFIG_INPUT_TOUCHSCREEN is not set
646# CONFIG_INPUT_MISC is not set
647
648#
649# Hardware I/O ports
650#
651# CONFIG_SERIO is not set
652# CONFIG_GAMEPORT is not set
653
654#
655# Character devices
656#
657CONFIG_VT=y
658CONFIG_CONSOLE_TRANSLATIONS=y
659CONFIG_VT_CONSOLE=y
660CONFIG_HW_CONSOLE=y
661# CONFIG_VT_HW_CONSOLE_BINDING is not set
662CONFIG_DEVKMEM=y
663# CONFIG_SERIAL_NONSTANDARD is not set
664
665#
666# Serial drivers
667#
668# CONFIG_SERIAL_8250 is not set
669
670#
671# Non-8250 serial port support
672#
673CONFIG_SERIAL_ATMEL=y
674CONFIG_SERIAL_ATMEL_CONSOLE=y
675CONFIG_SERIAL_ATMEL_PDC=y
676# CONFIG_SERIAL_ATMEL_TTYAT is not set
677CONFIG_SERIAL_CORE=y
678CONFIG_SERIAL_CORE_CONSOLE=y
679CONFIG_UNIX98_PTYS=y
680CONFIG_LEGACY_PTYS=y
681CONFIG_LEGACY_PTY_COUNT=256
682# CONFIG_IPMI_HANDLER is not set
683# CONFIG_HW_RANDOM is not set
684# CONFIG_NVRAM is not set
685# CONFIG_R3964 is not set
686# CONFIG_RAW_DRIVER is not set
687# CONFIG_TCG_TPM is not set
688CONFIG_I2C=y
689CONFIG_I2C_BOARDINFO=y
690CONFIG_I2C_CHARDEV=y
691CONFIG_I2C_HELPER_AUTO=y
692CONFIG_I2C_ALGOBIT=y
693
694#
695# I2C Hardware Bus support
696#
697
698#
699# I2C system bus drivers (mostly embedded / system-on-chip)
700#
701CONFIG_I2C_GPIO=y
702# CONFIG_I2C_OCORES is not set
703# CONFIG_I2C_SIMTEC is not set
704
705#
706# External I2C/SMBus adapter drivers
707#
708# CONFIG_I2C_PARPORT_LIGHT is not set
709# CONFIG_I2C_TAOS_EVM is not set
710# CONFIG_I2C_TINY_USB is not set
711
712#
713# Other I2C/SMBus bus drivers
714#
715# CONFIG_I2C_PCA_PLATFORM is not set
716# CONFIG_I2C_STUB is not set
717
718#
719# Miscellaneous I2C Chip support
720#
721# CONFIG_DS1682 is not set
722CONFIG_AT24=y
723# CONFIG_SENSORS_EEPROM is not set
724# CONFIG_SENSORS_PCF8574 is not set
725# CONFIG_PCF8575 is not set
726# CONFIG_SENSORS_PCA9539 is not set
727# CONFIG_SENSORS_PCF8591 is not set
728# CONFIG_SENSORS_MAX6875 is not set
729# CONFIG_SENSORS_TSL2550 is not set
730# CONFIG_I2C_DEBUG_CORE is not set
731# CONFIG_I2C_DEBUG_ALGO is not set
732# CONFIG_I2C_DEBUG_BUS is not set
733# CONFIG_I2C_DEBUG_CHIP is not set
734CONFIG_SPI=y
735CONFIG_SPI_DEBUG=y
736CONFIG_SPI_MASTER=y
737
738#
739# SPI Master Controller Drivers
740#
741CONFIG_SPI_ATMEL=y
742# CONFIG_SPI_BITBANG is not set
743
744#
745# SPI Protocol Masters
746#
747# CONFIG_SPI_AT25 is not set
748CONFIG_SPI_SPIDEV=y
749# CONFIG_SPI_TLE62X0 is not set
750# CONFIG_W1 is not set
751# CONFIG_POWER_SUPPLY is not set
752# CONFIG_HWMON is not set
753CONFIG_WATCHDOG=y
754CONFIG_WATCHDOG_NOWAYOUT=y
755
756#
757# Watchdog Device Drivers
758#
759# CONFIG_SOFT_WATCHDOG is not set
760
761#
762# USB-based Watchdog Cards
763#
764# CONFIG_USBPCWATCHDOG is not set
765
766#
767# Sonics Silicon Backplane
768#
769CONFIG_SSB_POSSIBLE=y
770# CONFIG_SSB is not set
771
772#
773# Multifunction device drivers
774#
775# CONFIG_MFD_CORE is not set
776# CONFIG_MFD_SM501 is not set
777# CONFIG_HTC_PASIC3 is not set
778# CONFIG_MFD_TMIO is not set
779# CONFIG_MFD_T7L66XB is not set
780# CONFIG_MFD_TC6387XB is not set
781
782#
783# Multimedia devices
784#
785
786#
787# Multimedia core support
788#
789# CONFIG_VIDEO_DEV is not set
790# CONFIG_DVB_CORE is not set
791# CONFIG_VIDEO_MEDIA is not set
792
793#
794# Multimedia drivers
795#
796# CONFIG_DAB is not set
797
798#
799# Graphics support
800#
801# CONFIG_VGASTATE is not set
802# CONFIG_VIDEO_OUTPUT_CONTROL is not set
803# CONFIG_FB is not set
804# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
805
806#
807# Display device support
808#
809# CONFIG_DISPLAY_SUPPORT is not set
810
811#
812# Console display driver support
813#
814# CONFIG_VGA_CONSOLE is not set
815CONFIG_DUMMY_CONSOLE=y
816# CONFIG_SOUND is not set
817CONFIG_HID_SUPPORT=y
818CONFIG_HID=y
819# CONFIG_HID_DEBUG is not set
820# CONFIG_HIDRAW is not set
821
822#
823# USB Input Devices
824#
825# CONFIG_USB_HID is not set
826
827#
828# USB HID Boot Protocol drivers
829#
830# CONFIG_USB_KBD is not set
831# CONFIG_USB_MOUSE is not set
832CONFIG_USB_SUPPORT=y
833CONFIG_USB_ARCH_HAS_HCD=y
834CONFIG_USB_ARCH_HAS_OHCI=y
835# CONFIG_USB_ARCH_HAS_EHCI is not set
836CONFIG_USB=y
837# CONFIG_USB_DEBUG is not set
838# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
839
840#
841# Miscellaneous USB options
842#
843CONFIG_USB_DEVICEFS=y
844CONFIG_USB_DEVICE_CLASS=y
845# CONFIG_USB_DYNAMIC_MINORS is not set
846# CONFIG_USB_OTG is not set
847
848#
849# USB Host Controller Drivers
850#
851# CONFIG_USB_C67X00_HCD is not set
852# CONFIG_USB_ISP116X_HCD is not set
853# CONFIG_USB_ISP1760_HCD is not set
854CONFIG_USB_OHCI_HCD=y
855# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
856# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
857CONFIG_USB_OHCI_LITTLE_ENDIAN=y
858# CONFIG_USB_SL811_HCD is not set
859# CONFIG_USB_R8A66597_HCD is not set
860
861#
862# USB Device Class drivers
863#
864# CONFIG_USB_ACM is not set
865# CONFIG_USB_PRINTER is not set
866# CONFIG_USB_WDM is not set
867
868#
869# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
870#
871
872#
873# may also be needed; see USB_STORAGE Help for more information
874#
875CONFIG_USB_STORAGE=y
876# CONFIG_USB_STORAGE_DEBUG is not set
877# CONFIG_USB_STORAGE_DATAFAB is not set
878# CONFIG_USB_STORAGE_FREECOM is not set
879# CONFIG_USB_STORAGE_ISD200 is not set
880# CONFIG_USB_STORAGE_DPCM is not set
881# CONFIG_USB_STORAGE_USBAT is not set
882# CONFIG_USB_STORAGE_SDDR09 is not set
883# CONFIG_USB_STORAGE_SDDR55 is not set
884# CONFIG_USB_STORAGE_JUMPSHOT is not set
885# CONFIG_USB_STORAGE_ALAUDA is not set
886# CONFIG_USB_STORAGE_ONETOUCH is not set
887# CONFIG_USB_STORAGE_KARMA is not set
888# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
889# CONFIG_USB_LIBUSUAL is not set
890
891#
892# USB Imaging devices
893#
894# CONFIG_USB_MDC800 is not set
895# CONFIG_USB_MICROTEK is not set
896CONFIG_USB_MON=y
897
898#
899# USB port drivers
900#
901# CONFIG_USB_SERIAL is not set
902
903#
904# USB Miscellaneous drivers
905#
906# CONFIG_USB_EMI62 is not set
907# CONFIG_USB_EMI26 is not set
908# CONFIG_USB_ADUTUX is not set
909# CONFIG_USB_AUERSWALD is not set
910# CONFIG_USB_RIO500 is not set
911# CONFIG_USB_LEGOTOWER is not set
912# CONFIG_USB_LCD is not set
913# CONFIG_USB_BERRY_CHARGE is not set
914# CONFIG_USB_LED is not set
915# CONFIG_USB_CYPRESS_CY7C63 is not set
916# CONFIG_USB_CYTHERM is not set
917# CONFIG_USB_PHIDGET is not set
918# CONFIG_USB_IDMOUSE is not set
919# CONFIG_USB_FTDI_ELAN is not set
920# CONFIG_USB_APPLEDISPLAY is not set
921# CONFIG_USB_LD is not set
922# CONFIG_USB_TRANCEVIBRATOR is not set
923# CONFIG_USB_IOWARRIOR is not set
924# CONFIG_USB_TEST is not set
925# CONFIG_USB_ISIGHTFW is not set
926CONFIG_USB_GADGET=y
927# CONFIG_USB_GADGET_DEBUG is not set
928# CONFIG_USB_GADGET_DEBUG_FILES is not set
929CONFIG_USB_GADGET_SELECTED=y
930# CONFIG_USB_GADGET_AMD5536UDC is not set
931# CONFIG_USB_GADGET_ATMEL_USBA is not set
932# CONFIG_USB_GADGET_FSL_USB2 is not set
933# CONFIG_USB_GADGET_NET2280 is not set
934# CONFIG_USB_GADGET_PXA25X is not set
935# CONFIG_USB_GADGET_M66592 is not set
936# CONFIG_USB_GADGET_PXA27X is not set
937# CONFIG_USB_GADGET_GOKU is not set
938# CONFIG_USB_GADGET_LH7A40X is not set
939# CONFIG_USB_GADGET_OMAP is not set
940# CONFIG_USB_GADGET_S3C2410 is not set
941CONFIG_USB_GADGET_AT91=y
942CONFIG_USB_AT91=y
943# CONFIG_USB_GADGET_DUMMY_HCD is not set
944# CONFIG_USB_GADGET_DUALSPEED is not set
945CONFIG_USB_ZERO=m
946# CONFIG_USB_ETH is not set
947CONFIG_USB_GADGETFS=m
948CONFIG_USB_FILE_STORAGE=m
949# CONFIG_USB_FILE_STORAGE_TEST is not set
950CONFIG_USB_G_SERIAL=m
951# CONFIG_USB_MIDI_GADGET is not set
952# CONFIG_USB_G_PRINTER is not set
953# CONFIG_USB_CDC_COMPOSITE is not set
954# CONFIG_MMC is not set
955# CONFIG_NEW_LEDS is not set
956CONFIG_RTC_LIB=y
957CONFIG_RTC_CLASS=y
958CONFIG_RTC_HCTOSYS=y
959CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
960CONFIG_RTC_DEBUG=y
961
962#
963# RTC interfaces
964#
965CONFIG_RTC_INTF_SYSFS=y
966CONFIG_RTC_INTF_PROC=y
967CONFIG_RTC_INTF_DEV=y
968# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
969# CONFIG_RTC_DRV_TEST is not set
970
971#
972# I2C RTC drivers
973#
974# CONFIG_RTC_DRV_DS1307 is not set
975# CONFIG_RTC_DRV_DS1374 is not set
976# CONFIG_RTC_DRV_DS1672 is not set
977# CONFIG_RTC_DRV_MAX6900 is not set
978# CONFIG_RTC_DRV_RS5C372 is not set
979# CONFIG_RTC_DRV_ISL1208 is not set
980# CONFIG_RTC_DRV_X1205 is not set
981# CONFIG_RTC_DRV_PCF8563 is not set
982# CONFIG_RTC_DRV_PCF8583 is not set
983# CONFIG_RTC_DRV_M41T80 is not set
984# CONFIG_RTC_DRV_S35390A is not set
985CONFIG_RTC_DRV_FM3130=y
986
987#
988# SPI RTC drivers
989#
990# CONFIG_RTC_DRV_M41T94 is not set
991# CONFIG_RTC_DRV_DS1305 is not set
992# CONFIG_RTC_DRV_MAX6902 is not set
993# CONFIG_RTC_DRV_R9701 is not set
994# CONFIG_RTC_DRV_RS5C348 is not set
995
996#
997# Platform RTC drivers
998#
999# CONFIG_RTC_DRV_CMOS is not set
1000# CONFIG_RTC_DRV_DS1511 is not set
1001# CONFIG_RTC_DRV_DS1553 is not set
1002# CONFIG_RTC_DRV_DS1742 is not set
1003# CONFIG_RTC_DRV_STK17TA8 is not set
1004# CONFIG_RTC_DRV_M48T86 is not set
1005# CONFIG_RTC_DRV_M48T59 is not set
1006# CONFIG_RTC_DRV_V3020 is not set
1007
1008#
1009# on-CPU RTC drivers
1010#
1011# CONFIG_RTC_DRV_AT91SAM9 is not set
1012# CONFIG_DMADEVICES is not set
1013
1014#
1015# Voltage and Current regulators
1016#
1017# CONFIG_REGULATOR is not set
1018# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1019# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1020# CONFIG_REGULATOR_BQ24022 is not set
1021# CONFIG_UIO is not set
1022
1023#
1024# File systems
1025#
1026CONFIG_EXT2_FS=y
1027# CONFIG_EXT2_FS_XATTR is not set
1028# CONFIG_EXT2_FS_XIP is not set
1029CONFIG_EXT3_FS=y
1030CONFIG_EXT3_FS_XATTR=y
1031# CONFIG_EXT3_FS_POSIX_ACL is not set
1032# CONFIG_EXT3_FS_SECURITY is not set
1033# CONFIG_EXT4DEV_FS is not set
1034CONFIG_JBD=y
1035CONFIG_FS_MBCACHE=y
1036# CONFIG_REISERFS_FS is not set
1037# CONFIG_JFS_FS is not set
1038# CONFIG_FS_POSIX_ACL is not set
1039# CONFIG_XFS_FS is not set
1040# CONFIG_OCFS2_FS is not set
1041CONFIG_DNOTIFY=y
1042CONFIG_INOTIFY=y
1043CONFIG_INOTIFY_USER=y
1044# CONFIG_QUOTA is not set
1045# CONFIG_AUTOFS_FS is not set
1046# CONFIG_AUTOFS4_FS is not set
1047# CONFIG_FUSE_FS is not set
1048
1049#
1050# CD-ROM/DVD Filesystems
1051#
1052# CONFIG_ISO9660_FS is not set
1053# CONFIG_UDF_FS is not set
1054
1055#
1056# DOS/FAT/NT Filesystems
1057#
1058CONFIG_FAT_FS=y
1059# CONFIG_MSDOS_FS is not set
1060CONFIG_VFAT_FS=y
1061CONFIG_FAT_DEFAULT_CODEPAGE=437
1062CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1063# CONFIG_NTFS_FS is not set
1064
1065#
1066# Pseudo filesystems
1067#
1068CONFIG_PROC_FS=y
1069CONFIG_PROC_SYSCTL=y
1070CONFIG_SYSFS=y
1071CONFIG_TMPFS=y
1072# CONFIG_TMPFS_POSIX_ACL is not set
1073# CONFIG_HUGETLB_PAGE is not set
1074# CONFIG_CONFIGFS_FS is not set
1075
1076#
1077# Miscellaneous filesystems
1078#
1079# CONFIG_ADFS_FS is not set
1080# CONFIG_AFFS_FS is not set
1081# CONFIG_HFS_FS is not set
1082# CONFIG_HFSPLUS_FS is not set
1083# CONFIG_BEFS_FS is not set
1084# CONFIG_BFS_FS is not set
1085# CONFIG_EFS_FS is not set
1086CONFIG_JFFS2_FS=y
1087CONFIG_JFFS2_FS_DEBUG=0
1088CONFIG_JFFS2_FS_WRITEBUFFER=y
1089# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1090# CONFIG_JFFS2_SUMMARY is not set
1091# CONFIG_JFFS2_FS_XATTR is not set
1092# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1093CONFIG_JFFS2_ZLIB=y
1094# CONFIG_JFFS2_LZO is not set
1095CONFIG_JFFS2_RTIME=y
1096# CONFIG_JFFS2_RUBIN is not set
1097CONFIG_CRAMFS=y
1098# CONFIG_VXFS_FS is not set
1099# CONFIG_MINIX_FS is not set
1100# CONFIG_OMFS_FS is not set
1101# CONFIG_HPFS_FS is not set
1102# CONFIG_QNX4FS_FS is not set
1103# CONFIG_ROMFS_FS is not set
1104# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set
1106CONFIG_NETWORK_FILESYSTEMS=y
1107CONFIG_NFS_FS=y
1108CONFIG_NFS_V3=y
1109# CONFIG_NFS_V3_ACL is not set
1110# CONFIG_NFS_V4 is not set
1111CONFIG_ROOT_NFS=y
1112# CONFIG_NFSD is not set
1113CONFIG_LOCKD=y
1114CONFIG_LOCKD_V4=y
1115CONFIG_NFS_COMMON=y
1116CONFIG_SUNRPC=y
1117# CONFIG_RPCSEC_GSS_KRB5 is not set
1118# CONFIG_RPCSEC_GSS_SPKM3 is not set
1119# CONFIG_SMB_FS is not set
1120# CONFIG_CIFS is not set
1121# CONFIG_NCP_FS is not set
1122# CONFIG_CODA_FS is not set
1123# CONFIG_AFS_FS is not set
1124
1125#
1126# Partition Types
1127#
1128# CONFIG_PARTITION_ADVANCED is not set
1129CONFIG_MSDOS_PARTITION=y
1130CONFIG_NLS=y
1131CONFIG_NLS_DEFAULT="iso8859-1"
1132CONFIG_NLS_CODEPAGE_437=y
1133# CONFIG_NLS_CODEPAGE_737 is not set
1134# CONFIG_NLS_CODEPAGE_775 is not set
1135CONFIG_NLS_CODEPAGE_850=y
1136# CONFIG_NLS_CODEPAGE_852 is not set
1137# CONFIG_NLS_CODEPAGE_855 is not set
1138# CONFIG_NLS_CODEPAGE_857 is not set
1139# CONFIG_NLS_CODEPAGE_860 is not set
1140# CONFIG_NLS_CODEPAGE_861 is not set
1141# CONFIG_NLS_CODEPAGE_862 is not set
1142# CONFIG_NLS_CODEPAGE_863 is not set
1143# CONFIG_NLS_CODEPAGE_864 is not set
1144# CONFIG_NLS_CODEPAGE_865 is not set
1145# CONFIG_NLS_CODEPAGE_866 is not set
1146# CONFIG_NLS_CODEPAGE_869 is not set
1147# CONFIG_NLS_CODEPAGE_936 is not set
1148# CONFIG_NLS_CODEPAGE_950 is not set
1149# CONFIG_NLS_CODEPAGE_932 is not set
1150# CONFIG_NLS_CODEPAGE_949 is not set
1151# CONFIG_NLS_CODEPAGE_874 is not set
1152# CONFIG_NLS_ISO8859_8 is not set
1153# CONFIG_NLS_CODEPAGE_1250 is not set
1154# CONFIG_NLS_CODEPAGE_1251 is not set
1155# CONFIG_NLS_ASCII is not set
1156CONFIG_NLS_ISO8859_1=y
1157# CONFIG_NLS_ISO8859_2 is not set
1158# CONFIG_NLS_ISO8859_3 is not set
1159# CONFIG_NLS_ISO8859_4 is not set
1160# CONFIG_NLS_ISO8859_5 is not set
1161# CONFIG_NLS_ISO8859_6 is not set
1162# CONFIG_NLS_ISO8859_7 is not set
1163# CONFIG_NLS_ISO8859_9 is not set
1164# CONFIG_NLS_ISO8859_13 is not set
1165# CONFIG_NLS_ISO8859_14 is not set
1166# CONFIG_NLS_ISO8859_15 is not set
1167# CONFIG_NLS_KOI8_R is not set
1168# CONFIG_NLS_KOI8_U is not set
1169# CONFIG_NLS_UTF8 is not set
1170# CONFIG_DLM is not set
1171
1172#
1173# Kernel hacking
1174#
1175# CONFIG_PRINTK_TIME is not set
1176CONFIG_ENABLE_WARN_DEPRECATED=y
1177CONFIG_ENABLE_MUST_CHECK=y
1178CONFIG_FRAME_WARN=1024
1179# CONFIG_MAGIC_SYSRQ is not set
1180# CONFIG_UNUSED_SYMBOLS is not set
1181# CONFIG_DEBUG_FS is not set
1182# CONFIG_HEADERS_CHECK is not set
1183CONFIG_DEBUG_KERNEL=y
1184# CONFIG_DEBUG_SHIRQ is not set
1185CONFIG_DETECT_SOFTLOCKUP=y
1186# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1187CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1188CONFIG_SCHED_DEBUG=y
1189# CONFIG_SCHEDSTATS is not set
1190# CONFIG_TIMER_STATS is not set
1191# CONFIG_DEBUG_OBJECTS is not set
1192# CONFIG_DEBUG_SLAB is not set
1193CONFIG_DEBUG_PREEMPT=y
1194# CONFIG_DEBUG_RT_MUTEXES is not set
1195# CONFIG_RT_MUTEX_TESTER is not set
1196# CONFIG_DEBUG_SPINLOCK is not set
1197# CONFIG_DEBUG_MUTEXES is not set
1198# CONFIG_DEBUG_LOCK_ALLOC is not set
1199# CONFIG_PROVE_LOCKING is not set
1200# CONFIG_LOCK_STAT is not set
1201# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1202# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1203# CONFIG_DEBUG_KOBJECT is not set
1204CONFIG_DEBUG_BUGVERBOSE=y
1205CONFIG_DEBUG_INFO=y
1206# CONFIG_DEBUG_VM is not set
1207# CONFIG_DEBUG_WRITECOUNT is not set
1208CONFIG_DEBUG_MEMORY_INIT=y
1209# CONFIG_DEBUG_LIST is not set
1210# CONFIG_DEBUG_SG is not set
1211CONFIG_FRAME_POINTER=y
1212# CONFIG_BOOT_PRINTK_DELAY is not set
1213# CONFIG_RCU_TORTURE_TEST is not set
1214# CONFIG_BACKTRACE_SELF_TEST is not set
1215# CONFIG_FAULT_INJECTION is not set
1216# CONFIG_LATENCYTOP is not set
1217CONFIG_HAVE_FTRACE=y
1218CONFIG_HAVE_DYNAMIC_FTRACE=y
1219# CONFIG_FTRACE is not set
1220# CONFIG_IRQSOFF_TRACER is not set
1221# CONFIG_PREEMPT_TRACER is not set
1222# CONFIG_SCHED_TRACER is not set
1223# CONFIG_CONTEXT_SWITCH_TRACER is not set
1224# CONFIG_SAMPLES is not set
1225CONFIG_HAVE_ARCH_KGDB=y
1226# CONFIG_KGDB is not set
1227CONFIG_DEBUG_USER=y
1228# CONFIG_DEBUG_ERRORS is not set
1229# CONFIG_DEBUG_STACK_USAGE is not set
1230CONFIG_DEBUG_LL=y
1231# CONFIG_DEBUG_ICEDCC is not set
1232
1233#
1234# Security options
1235#
1236# CONFIG_KEYS is not set
1237# CONFIG_SECURITY is not set
1238# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1239# CONFIG_CRYPTO is not set
1240
1241#
1242# Library routines
1243#
1244CONFIG_BITREVERSE=y
1245# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1246# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1247# CONFIG_CRC_CCITT is not set
1248# CONFIG_CRC16 is not set
1249CONFIG_CRC_T10DIF=y
1250# CONFIG_CRC_ITU_T is not set
1251CONFIG_CRC32=y
1252# CONFIG_CRC7 is not set
1253# CONFIG_LIBCRC32C is not set
1254CONFIG_ZLIB_INFLATE=y
1255CONFIG_ZLIB_DEFLATE=y
1256CONFIG_PLIST=y
1257CONFIG_HAS_IOMEM=y
1258CONFIG_HAS_IOPORT=y
1259CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/ams_delta_defconfig b/arch/arm/configs/ams_delta_defconfig
new file mode 100644
index 000000000000..2c4aa11f0b0d
--- /dev/null
+++ b/arch/arm/configs/ams_delta_defconfig
@@ -0,0 +1,1314 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Thu Jun 7 04:28:32 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35
36#
37# General setup
38#
39CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y
41# CONFIG_SWAP is not set
42CONFIG_SYSVIPC=y
43# CONFIG_IPC_NS is not set
44CONFIG_SYSVIPC_SYSCTL=y
45# CONFIG_POSIX_MQUEUE is not set
46# CONFIG_BSD_PROCESS_ACCT is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_UTS_NS is not set
49# CONFIG_AUDIT is not set
50# CONFIG_IKCONFIG is not set
51CONFIG_LOG_BUF_SHIFT=14
52CONFIG_SYSFS_DEPRECATED=y
53# CONFIG_RELAY is not set
54CONFIG_BLK_DEV_INITRD=y
55CONFIG_INITRAMFS_SOURCE=""
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y
58# CONFIG_EMBEDDED is not set
59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_KALLSYMS=y
62# CONFIG_KALLSYMS_ALL is not set
63# CONFIG_KALLSYMS_EXTRA_PASS is not set
64CONFIG_HOTPLUG=y
65CONFIG_PRINTK=y
66CONFIG_BUG=y
67CONFIG_ELF_CORE=y
68CONFIG_BASE_FULL=y
69CONFIG_FUTEX=y
70CONFIG_ANON_INODES=y
71CONFIG_EPOLL=y
72CONFIG_SIGNALFD=y
73CONFIG_TIMERFD=y
74CONFIG_EVENTFD=y
75CONFIG_SHMEM=y
76CONFIG_VM_EVENT_COUNTERS=y
77CONFIG_SLAB=y
78# CONFIG_SLUB is not set
79# CONFIG_SLOB is not set
80CONFIG_RT_MUTEXES=y
81# CONFIG_TINY_SHMEM is not set
82CONFIG_BASE_SMALL=0
83
84#
85# Loadable module support
86#
87CONFIG_MODULES=y
88CONFIG_MODULE_UNLOAD=y
89CONFIG_MODULE_FORCE_UNLOAD=y
90# CONFIG_MODVERSIONS is not set
91# CONFIG_MODULE_SRCVERSION_ALL is not set
92CONFIG_KMOD=y
93
94#
95# Block layer
96#
97CONFIG_BLOCK=y
98# CONFIG_LBD is not set
99# CONFIG_BLK_DEV_IO_TRACE is not set
100# CONFIG_LSF is not set
101
102#
103# IO Schedulers
104#
105CONFIG_IOSCHED_NOOP=y
106CONFIG_IOSCHED_AS=y
107CONFIG_IOSCHED_DEADLINE=y
108CONFIG_IOSCHED_CFQ=y
109CONFIG_DEFAULT_AS=y
110# CONFIG_DEFAULT_DEADLINE is not set
111# CONFIG_DEFAULT_CFQ is not set
112# CONFIG_DEFAULT_NOOP is not set
113CONFIG_DEFAULT_IOSCHED="anticipatory"
114
115#
116# System Type
117#
118# CONFIG_ARCH_AAEC2000 is not set
119# CONFIG_ARCH_INTEGRATOR is not set
120# CONFIG_ARCH_REALVIEW is not set
121# CONFIG_ARCH_VERSATILE is not set
122# CONFIG_ARCH_AT91 is not set
123# CONFIG_ARCH_CLPS7500 is not set
124# CONFIG_ARCH_CLPS711X is not set
125# CONFIG_ARCH_CO285 is not set
126# CONFIG_ARCH_EBSA110 is not set
127# CONFIG_ARCH_EP93XX is not set
128# CONFIG_ARCH_FOOTBRIDGE is not set
129# CONFIG_ARCH_NETX is not set
130# CONFIG_ARCH_H720X is not set
131# CONFIG_ARCH_IMX is not set
132# CONFIG_ARCH_IOP13XX is not set
133# CONFIG_ARCH_IOP32X is not set
134# CONFIG_ARCH_IOP33X is not set
135# CONFIG_ARCH_IXP23XX is not set
136# CONFIG_ARCH_IXP2000 is not set
137# CONFIG_ARCH_IXP4XX is not set
138# CONFIG_ARCH_L7200 is not set
139# CONFIG_ARCH_KS8695 is not set
140# CONFIG_ARCH_NS9XXX is not set
141# CONFIG_ARCH_PNX4008 is not set
142# CONFIG_ARCH_PXA is not set
143# CONFIG_ARCH_RPC is not set
144# CONFIG_ARCH_SA1100 is not set
145# CONFIG_ARCH_S3C2410 is not set
146# CONFIG_ARCH_SHARK is not set
147# CONFIG_ARCH_LH7A40X is not set
148# CONFIG_ARCH_DAVINCI is not set
149CONFIG_ARCH_OMAP=y
150
151#
152# TI OMAP Implementations
153#
154CONFIG_ARCH_OMAP1=y
155# CONFIG_ARCH_OMAP2 is not set
156
157#
158# OMAP Feature Selections
159#
160# CONFIG_OMAP_RESET_CLOCKS is not set
161# CONFIG_OMAP_BOOT_TAG is not set
162# CONFIG_OMAP_GPIO_SWITCH is not set
163CONFIG_OMAP_MUX=y
164# CONFIG_OMAP_MUX_DEBUG is not set
165CONFIG_OMAP_MUX_WARNINGS=y
166CONFIG_OMAP_MCBSP=y
167CONFIG_OMAP_MMU_FWK=y
168CONFIG_OMAP_MBOX_FWK=m
169CONFIG_OMAP_MPU_TIMER=y
170# CONFIG_OMAP_32K_TIMER is not set
171CONFIG_OMAP_LL_DEBUG_UART1=y
172# CONFIG_OMAP_LL_DEBUG_UART2 is not set
173# CONFIG_OMAP_LL_DEBUG_UART3 is not set
174# CONFIG_OMAP_LL_DEBUG_LCD is not set
175CONFIG_OMAP_SERIAL_WAKE=y
176CONFIG_OMAP_DSP=m
177# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
178# CONFIG_OMAP_DSP_TASK_MULTIOPEN is not set
179# CONFIG_OMAP_DSP_FBEXPORT is not set
180
181#
182# OMAP Core Type
183#
184# CONFIG_ARCH_OMAP730 is not set
185CONFIG_ARCH_OMAP15XX=y
186# CONFIG_ARCH_OMAP16XX is not set
187
188#
189# OMAP Board Type
190#
191# CONFIG_MACH_OMAP_INNOVATOR is not set
192# CONFIG_MACH_VOICEBLUE is not set
193# CONFIG_MACH_OMAP_PALMTE is not set
194# CONFIG_MACH_OMAP_PALMZ71 is not set
195# CONFIG_MACH_OMAP_PALMTT is not set
196# CONFIG_MACH_SX1 is not set
197CONFIG_MACH_AMS_DELTA=y
198# CONFIG_MACH_OMAP_GENERIC is not set
199
200#
201# OMAP CPU Speed
202#
203# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
204# CONFIG_OMAP_ARM_168MHZ is not set
205CONFIG_OMAP_ARM_150MHZ=y
206# CONFIG_OMAP_ARM_120MHZ is not set
207# CONFIG_OMAP_ARM_60MHZ is not set
208# CONFIG_OMAP_ARM_30MHZ is not set
209
210#
211# Processor Type
212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM925T=y
215CONFIG_CPU_32v4T=y
216CONFIG_CPU_ABRT_EV4T=y
217CONFIG_CPU_CACHE_V4WT=y
218CONFIG_CPU_CACHE_VIVT=y
219CONFIG_CPU_COPY_V4WB=y
220CONFIG_CPU_TLB_V4WBI=y
221CONFIG_CPU_CP15=y
222CONFIG_CPU_CP15_MMU=y
223
224#
225# Processor Features
226#
227# CONFIG_ARM_THUMB is not set
228# CONFIG_CPU_ICACHE_DISABLE is not set
229# CONFIG_CPU_DCACHE_DISABLE is not set
230CONFIG_CPU_DCACHE_WRITETHROUGH=y
231# CONFIG_OUTER_CACHE is not set
232
233#
234# Bus support
235#
236# CONFIG_ARCH_SUPPORTS_MSI is not set
237
238#
239# PCCARD (PCMCIA/CardBus) support
240#
241# CONFIG_PCCARD is not set
242
243#
244# Kernel Features
245#
246# CONFIG_TICK_ONESHOT is not set
247# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_PREEMPT=y
250CONFIG_HZ=100
251# CONFIG_AEABI is not set
252# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
253CONFIG_SELECT_MEMORY_MODEL=y
254CONFIG_FLATMEM_MANUAL=y
255# CONFIG_DISCONTIGMEM_MANUAL is not set
256# CONFIG_SPARSEMEM_MANUAL is not set
257CONFIG_FLATMEM=y
258CONFIG_FLAT_NODE_MEM_MAP=y
259# CONFIG_SPARSEMEM_STATIC is not set
260CONFIG_SPLIT_PTLOCK_CPUS=4096
261# CONFIG_RESOURCES_64BIT is not set
262CONFIG_ZONE_DMA_FLAG=1
263# CONFIG_LEDS is not set
264CONFIG_ALIGNMENT_TRAP=y
265
266#
267# Boot options
268#
269CONFIG_ZBOOT_ROM_TEXT=0x0
270CONFIG_ZBOOT_ROM_BSS=0x0
271CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 initrd=0x11c00000,4M"
272# CONFIG_XIP_KERNEL is not set
273# CONFIG_KEXEC is not set
274
275#
276# CPU Frequency scaling
277#
278# CONFIG_CPU_FREQ is not set
279
280#
281# Floating point emulation
282#
283
284#
285# At least one emulation must be selected
286#
287CONFIG_FPE_NWFPE=y
288# CONFIG_FPE_NWFPE_XP is not set
289# CONFIG_FPE_FASTFPE is not set
290
291#
292# Userspace binary formats
293#
294CONFIG_BINFMT_ELF=y
295# CONFIG_BINFMT_AOUT is not set
296# CONFIG_BINFMT_MISC is not set
297# CONFIG_ARTHUR is not set
298
299#
300# Power management options
301#
302# CONFIG_PM is not set
303
304#
305# Networking
306#
307CONFIG_NET=y
308
309#
310# Networking options
311#
312CONFIG_PACKET=y
313# CONFIG_PACKET_MMAP is not set
314CONFIG_UNIX=y
315CONFIG_XFRM=y
316# CONFIG_XFRM_USER is not set
317# CONFIG_XFRM_SUB_POLICY is not set
318# CONFIG_XFRM_MIGRATE is not set
319# CONFIG_NET_KEY is not set
320CONFIG_INET=y
321CONFIG_IP_MULTICAST=y
322# CONFIG_IP_ADVANCED_ROUTER is not set
323CONFIG_IP_FIB_HASH=y
324# CONFIG_IP_PNP is not set
325# CONFIG_NET_IPIP is not set
326# CONFIG_NET_IPGRE is not set
327# CONFIG_IP_MROUTE is not set
328# CONFIG_ARPD is not set
329# CONFIG_SYN_COOKIES is not set
330# CONFIG_INET_AH is not set
331# CONFIG_INET_ESP is not set
332# CONFIG_INET_IPCOMP is not set
333# CONFIG_INET_XFRM_TUNNEL is not set
334CONFIG_INET_TUNNEL=y
335CONFIG_INET_XFRM_MODE_TRANSPORT=y
336CONFIG_INET_XFRM_MODE_TUNNEL=y
337CONFIG_INET_XFRM_MODE_BEET=y
338CONFIG_INET_DIAG=y
339CONFIG_INET_TCP_DIAG=y
340# CONFIG_TCP_CONG_ADVANCED is not set
341CONFIG_TCP_CONG_CUBIC=y
342CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_TCP_MD5SIG is not set
344CONFIG_IPV6=y
345# CONFIG_IPV6_PRIVACY is not set
346# CONFIG_IPV6_ROUTER_PREF is not set
347# CONFIG_IPV6_OPTIMISTIC_DAD is not set
348# CONFIG_INET6_AH is not set
349# CONFIG_INET6_ESP is not set
350# CONFIG_INET6_IPCOMP is not set
351# CONFIG_IPV6_MIP6 is not set
352# CONFIG_INET6_XFRM_TUNNEL is not set
353# CONFIG_INET6_TUNNEL is not set
354CONFIG_INET6_XFRM_MODE_TRANSPORT=y
355CONFIG_INET6_XFRM_MODE_TUNNEL=y
356CONFIG_INET6_XFRM_MODE_BEET=y
357# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
358CONFIG_IPV6_SIT=y
359# CONFIG_IPV6_TUNNEL is not set
360# CONFIG_IPV6_MULTIPLE_TABLES is not set
361# CONFIG_NETWORK_SECMARK is not set
362# CONFIG_NETFILTER is not set
363
364#
365# DCCP Configuration (EXPERIMENTAL)
366#
367# CONFIG_IP_DCCP is not set
368
369#
370# SCTP Configuration (EXPERIMENTAL)
371#
372# CONFIG_IP_SCTP is not set
373
374#
375# TIPC Configuration (EXPERIMENTAL)
376#
377# CONFIG_TIPC is not set
378# CONFIG_ATM is not set
379# CONFIG_BRIDGE is not set
380# CONFIG_VLAN_8021Q is not set
381# CONFIG_DECNET is not set
382# CONFIG_LLC2 is not set
383# CONFIG_IPX is not set
384# CONFIG_ATALK is not set
385# CONFIG_X25 is not set
386# CONFIG_LAPB is not set
387# CONFIG_ECONET is not set
388# CONFIG_WAN_ROUTER is not set
389
390#
391# QoS and/or fair queueing
392#
393# CONFIG_NET_SCHED is not set
394
395#
396# Network testing
397#
398# CONFIG_NET_PKTGEN is not set
399# CONFIG_HAMRADIO is not set
400# CONFIG_IRDA is not set
401# CONFIG_BT is not set
402# CONFIG_AF_RXRPC is not set
403
404#
405# Wireless
406#
407# CONFIG_CFG80211 is not set
408# CONFIG_WIRELESS_EXT is not set
409# CONFIG_MAC80211 is not set
410# CONFIG_IEEE80211 is not set
411# CONFIG_RFKILL is not set
412
413#
414# Device Drivers
415#
416
417#
418# Generic Driver Options
419#
420CONFIG_STANDALONE=y
421CONFIG_PREVENT_FIRMWARE_BUILD=y
422# CONFIG_FW_LOADER is not set
423# CONFIG_DEBUG_DRIVER is not set
424# CONFIG_DEBUG_DEVRES is not set
425# CONFIG_SYS_HYPERVISOR is not set
426
427#
428# Connector - unified userspace <-> kernelspace linker
429#
430# CONFIG_CONNECTOR is not set
431CONFIG_MTD=y
432# CONFIG_MTD_DEBUG is not set
433# CONFIG_MTD_CONCAT is not set
434CONFIG_MTD_PARTITIONS=y
435# CONFIG_MTD_REDBOOT_PARTS is not set
436# CONFIG_MTD_CMDLINE_PARTS is not set
437# CONFIG_MTD_AFS_PARTS is not set
438
439#
440# User Modules And Translation Layers
441#
442CONFIG_MTD_CHAR=y
443CONFIG_MTD_BLKDEVS=y
444CONFIG_MTD_BLOCK=y
445# CONFIG_FTL is not set
446# CONFIG_NFTL is not set
447# CONFIG_INFTL is not set
448# CONFIG_RFD_FTL is not set
449# CONFIG_SSFDC is not set
450
451#
452# RAM/ROM/Flash chip drivers
453#
454# CONFIG_MTD_CFI is not set
455# CONFIG_MTD_JEDECPROBE is not set
456CONFIG_MTD_MAP_BANK_WIDTH_1=y
457CONFIG_MTD_MAP_BANK_WIDTH_2=y
458CONFIG_MTD_MAP_BANK_WIDTH_4=y
459# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
460# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
461# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
462CONFIG_MTD_CFI_I1=y
463CONFIG_MTD_CFI_I2=y
464# CONFIG_MTD_CFI_I4 is not set
465# CONFIG_MTD_CFI_I8 is not set
466# CONFIG_MTD_RAM is not set
467# CONFIG_MTD_ROM is not set
468# CONFIG_MTD_ABSENT is not set
469
470#
471# Mapping drivers for chip access
472#
473# CONFIG_MTD_COMPLEX_MAPPINGS is not set
474# CONFIG_MTD_PLATRAM is not set
475
476#
477# Self-contained MTD device drivers
478#
479# CONFIG_MTD_SLRAM is not set
480# CONFIG_MTD_PHRAM is not set
481# CONFIG_MTD_MTDRAM is not set
482# CONFIG_MTD_BLOCK2MTD is not set
483
484#
485# Disk-On-Chip Device Drivers
486#
487# CONFIG_MTD_DOC2000 is not set
488# CONFIG_MTD_DOC2001 is not set
489# CONFIG_MTD_DOC2001PLUS is not set
490CONFIG_MTD_NAND=y
491# CONFIG_MTD_NAND_VERIFY_WRITE is not set
492# CONFIG_MTD_NAND_ECC_SMC is not set
493# CONFIG_MTD_NAND_MUSEUM_IDS is not set
494CONFIG_MTD_NAND_AMS_DELTA=y
495CONFIG_MTD_NAND_IDS=y
496# CONFIG_MTD_NAND_DISKONCHIP is not set
497# CONFIG_MTD_NAND_NANDSIM is not set
498# CONFIG_MTD_NAND_PLATFORM is not set
499# CONFIG_MTD_ONENAND is not set
500
501#
502# UBI - Unsorted block images
503#
504# CONFIG_MTD_UBI is not set
505
506#
507# Parallel port support
508#
509# CONFIG_PARPORT is not set
510
511#
512# Plug and Play support
513#
514# CONFIG_PNPACPI is not set
515
516#
517# Block devices
518#
519# CONFIG_BLK_DEV_COW_COMMON is not set
520CONFIG_BLK_DEV_LOOP=y
521# CONFIG_BLK_DEV_CRYPTOLOOP is not set
522# CONFIG_BLK_DEV_NBD is not set
523# CONFIG_BLK_DEV_UB is not set
524CONFIG_BLK_DEV_RAM=y
525CONFIG_BLK_DEV_RAM_COUNT=16
526CONFIG_BLK_DEV_RAM_SIZE=8192
527CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
528# CONFIG_CDROM_PKTCDVD is not set
529# CONFIG_ATA_OVER_ETH is not set
530
531#
532# SCSI device support
533#
534# CONFIG_RAID_ATTRS is not set
535CONFIG_SCSI=y
536# CONFIG_SCSI_TGT is not set
537# CONFIG_SCSI_NETLINK is not set
538CONFIG_SCSI_PROC_FS=y
539
540#
541# SCSI support type (disk, tape, CD-ROM)
542#
543CONFIG_BLK_DEV_SD=y
544# CONFIG_CHR_DEV_ST is not set
545# CONFIG_CHR_DEV_OSST is not set
546# CONFIG_BLK_DEV_SR is not set
547# CONFIG_CHR_DEV_SG is not set
548# CONFIG_CHR_DEV_SCH is not set
549
550#
551# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
552#
553# CONFIG_SCSI_MULTI_LUN is not set
554# CONFIG_SCSI_CONSTANTS is not set
555# CONFIG_SCSI_LOGGING is not set
556# CONFIG_SCSI_SCAN_ASYNC is not set
557CONFIG_SCSI_WAIT_SCAN=m
558
559#
560# SCSI Transports
561#
562# CONFIG_SCSI_SPI_ATTRS is not set
563# CONFIG_SCSI_FC_ATTRS is not set
564# CONFIG_SCSI_ISCSI_ATTRS is not set
565# CONFIG_SCSI_SAS_ATTRS is not set
566# CONFIG_SCSI_SAS_LIBSAS is not set
567
568#
569# SCSI low-level drivers
570#
571# CONFIG_ISCSI_TCP is not set
572# CONFIG_SCSI_DEBUG is not set
573# CONFIG_SCSI_ESP_CORE is not set
574# CONFIG_ATA is not set
575
576#
577# Multi-device support (RAID and LVM)
578#
579# CONFIG_MD is not set
580
581#
582# Network device support
583#
584CONFIG_NETDEVICES=y
585# CONFIG_DUMMY is not set
586# CONFIG_BONDING is not set
587# CONFIG_EQUALIZER is not set
588# CONFIG_TUN is not set
589# CONFIG_PHYLIB is not set
590
591#
592# Ethernet (10 or 100Mbit)
593#
594CONFIG_NET_ETHERNET=y
595CONFIG_MII=y
596# CONFIG_SMC91X is not set
597# CONFIG_DM9000 is not set
598CONFIG_NETDEV_1000=y
599CONFIG_NETDEV_10000=y
600
601#
602# Token Ring devices
603#
604
605#
606# Wireless LAN
607#
608# CONFIG_WLAN_PRE80211 is not set
609# CONFIG_WLAN_80211 is not set
610
611#
612# USB Network Adapters
613#
614CONFIG_USB_CATC=y
615CONFIG_USB_KAWETH=y
616CONFIG_USB_PEGASUS=y
617CONFIG_USB_RTL8150=y
618CONFIG_USB_USBNET_MII=y
619CONFIG_USB_USBNET=y
620CONFIG_USB_NET_AX8817X=y
621CONFIG_USB_NET_CDCETHER=y
622# CONFIG_USB_NET_DM9601 is not set
623# CONFIG_USB_NET_GL620A is not set
624CONFIG_USB_NET_NET1080=y
625# CONFIG_USB_NET_PLUSB is not set
626# CONFIG_USB_NET_MCS7830 is not set
627# CONFIG_USB_NET_RNDIS_HOST is not set
628CONFIG_USB_NET_CDC_SUBSET=y
629# CONFIG_USB_ALI_M5632 is not set
630# CONFIG_USB_AN2720 is not set
631CONFIG_USB_BELKIN=y
632CONFIG_USB_ARMLINUX=y
633# CONFIG_USB_EPSON2888 is not set
634# CONFIG_USB_KC2190 is not set
635CONFIG_USB_NET_ZAURUS=y
636# CONFIG_WAN is not set
637CONFIG_PPP=y
638CONFIG_PPP_MULTILINK=y
639# CONFIG_PPP_FILTER is not set
640# CONFIG_PPP_ASYNC is not set
641# CONFIG_PPP_SYNC_TTY is not set
642# CONFIG_PPP_DEFLATE is not set
643# CONFIG_PPP_BSDCOMP is not set
644# CONFIG_PPP_MPPE is not set
645# CONFIG_PPPOE is not set
646# CONFIG_SLIP is not set
647CONFIG_SLHC=y
648# CONFIG_SHAPER is not set
649# CONFIG_NETCONSOLE is not set
650# CONFIG_NETPOLL is not set
651# CONFIG_NET_POLL_CONTROLLER is not set
652
653#
654# ISDN subsystem
655#
656# CONFIG_ISDN is not set
657
658#
659# Input device support
660#
661CONFIG_INPUT=y
662# CONFIG_INPUT_FF_MEMLESS is not set
663
664#
665# Userland interfaces
666#
667CONFIG_INPUT_MOUSEDEV=y
668CONFIG_INPUT_MOUSEDEV_PSAUX=y
669CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
670CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
671# CONFIG_INPUT_JOYDEV is not set
672# CONFIG_INPUT_TSDEV is not set
673# CONFIG_INPUT_EVDEV is not set
674# CONFIG_INPUT_EVBUG is not set
675
676#
677# Input Device Drivers
678#
679CONFIG_INPUT_KEYBOARD=y
680CONFIG_KEYBOARD_ATKBD=y
681# CONFIG_KEYBOARD_SUNKBD is not set
682# CONFIG_KEYBOARD_LKKBD is not set
683# CONFIG_KEYBOARD_XTKBD is not set
684# CONFIG_KEYBOARD_NEWTON is not set
685# CONFIG_KEYBOARD_STOWAWAY is not set
686CONFIG_KEYBOARD_OMAP=y
687# CONFIG_KEYBOARD_GPIO is not set
688# CONFIG_INPUT_MOUSE is not set
689# CONFIG_INPUT_JOYSTICK is not set
690# CONFIG_INPUT_TABLET is not set
691# CONFIG_INPUT_TOUCHSCREEN is not set
692# CONFIG_INPUT_MISC is not set
693
694#
695# Hardware I/O ports
696#
697CONFIG_SERIO=y
698CONFIG_SERIO_SERPORT=y
699CONFIG_SERIO_LIBPS2=y
700# CONFIG_SERIO_RAW is not set
701# CONFIG_GAMEPORT is not set
702
703#
704# Character devices
705#
706CONFIG_VT=y
707CONFIG_VT_CONSOLE=y
708CONFIG_HW_CONSOLE=y
709# CONFIG_VT_HW_CONSOLE_BINDING is not set
710# CONFIG_SERIAL_NONSTANDARD is not set
711
712#
713# Serial drivers
714#
715CONFIG_SERIAL_8250=y
716CONFIG_SERIAL_8250_CONSOLE=y
717CONFIG_SERIAL_8250_NR_UARTS=4
718CONFIG_SERIAL_8250_RUNTIME_UARTS=4
719# CONFIG_SERIAL_8250_EXTENDED is not set
720
721#
722# Non-8250 serial port support
723#
724CONFIG_SERIAL_CORE=y
725CONFIG_SERIAL_CORE_CONSOLE=y
726CONFIG_UNIX98_PTYS=y
727# CONFIG_LEGACY_PTYS is not set
728
729#
730# IPMI
731#
732# CONFIG_IPMI_HANDLER is not set
733# CONFIG_WATCHDOG is not set
734CONFIG_HW_RANDOM=y
735# CONFIG_NVRAM is not set
736# CONFIG_R3964 is not set
737# CONFIG_RAW_DRIVER is not set
738
739#
740# TPM devices
741#
742# CONFIG_TCG_TPM is not set
743CONFIG_I2C=y
744CONFIG_I2C_BOARDINFO=y
745CONFIG_I2C_CHARDEV=y
746
747#
748# I2C Algorithms
749#
750CONFIG_I2C_ALGOBIT=y
751# CONFIG_I2C_ALGOPCF is not set
752# CONFIG_I2C_ALGOPCA is not set
753
754#
755# I2C Hardware Bus support
756#
757# CONFIG_I2C_GPIO is not set
758# CONFIG_I2C_OCORES is not set
759CONFIG_I2C_OMAP=y
760# CONFIG_I2C_PARPORT_LIGHT is not set
761# CONFIG_I2C_SIMTEC is not set
762# CONFIG_I2C_STUB is not set
763# CONFIG_I2C_TINY_USB is not set
764
765#
766# Miscellaneous I2C Chip support
767#
768# CONFIG_SENSORS_DS1337 is not set
769# CONFIG_SENSORS_DS1374 is not set
770# CONFIG_SENSORS_EEPROM is not set
771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set
774# CONFIG_TPS65010 is not set
775# CONFIG_SENSORS_TLV320AIC23 is not set
776# CONFIG_SENSORS_MAX6875 is not set
777# CONFIG_I2C_DEBUG_CORE is not set
778# CONFIG_I2C_DEBUG_ALGO is not set
779# CONFIG_I2C_DEBUG_BUS is not set
780# CONFIG_I2C_DEBUG_CHIP is not set
781
782#
783# SPI support
784#
785# CONFIG_SPI is not set
786# CONFIG_SPI_MASTER is not set
787
788#
789# Dallas's 1-wire bus
790#
791# CONFIG_W1 is not set
792# CONFIG_HWMON is not set
793
794#
795# Misc devices
796#
797# CONFIG_BLINK is not set
798
799#
800# Multifunction device drivers
801#
802# CONFIG_MFD_SM501 is not set
803
804#
805# LED devices
806#
807CONFIG_NEW_LEDS=y
808CONFIG_LEDS_CLASS=y
809
810#
811# LED drivers
812#
813CONFIG_LEDS_AMS_DELTA=y
814# CONFIG_LEDS_OMAP_DEBUG is not set
815# CONFIG_LEDS_OMAP is not set
816
817#
818# LED Triggers
819#
820CONFIG_LEDS_TRIGGERS=y
821CONFIG_LEDS_TRIGGER_TIMER=y
822CONFIG_LEDS_TRIGGER_HEARTBEAT=y
823
824#
825# Multimedia devices
826#
827# CONFIG_VIDEO_DEV is not set
828# CONFIG_DVB_CORE is not set
829CONFIG_DAB=y
830# CONFIG_USB_DABUSB is not set
831
832#
833# Graphics support
834#
835# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
836
837#
838# Display device support
839#
840# CONFIG_DISPLAY_SUPPORT is not set
841# CONFIG_VGASTATE is not set
842CONFIG_FB=y
843CONFIG_FIRMWARE_EDID=y
844# CONFIG_FB_DDC is not set
845# CONFIG_FB_CFB_FILLRECT is not set
846# CONFIG_FB_CFB_COPYAREA is not set
847# CONFIG_FB_CFB_IMAGEBLIT is not set
848# CONFIG_FB_SYS_FILLRECT is not set
849# CONFIG_FB_SYS_COPYAREA is not set
850# CONFIG_FB_SYS_IMAGEBLIT is not set
851# CONFIG_FB_SYS_FOPS is not set
852CONFIG_FB_DEFERRED_IO=y
853# CONFIG_FB_SVGALIB is not set
854# CONFIG_FB_MACMODES is not set
855# CONFIG_FB_BACKLIGHT is not set
856# CONFIG_FB_MODE_HELPERS is not set
857# CONFIG_FB_TILEBLITTING is not set
858
859#
860# Frame buffer hardware drivers
861#
862# CONFIG_FB_S1D13XXX is not set
863CONFIG_FB_OMAP=y
864# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
865# CONFIG_FB_OMAP_LCD_MIPID is not set
866# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
867CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
868# CONFIG_FB_OMAP_DMA_TUNE is not set
869# CONFIG_FB_VIRTUAL is not set
870
871#
872# Console display driver support
873#
874# CONFIG_VGA_CONSOLE is not set
875CONFIG_DUMMY_CONSOLE=y
876CONFIG_FRAMEBUFFER_CONSOLE=y
877# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
878CONFIG_FONTS=y
879# CONFIG_FONT_8x8 is not set
880# CONFIG_FONT_8x16 is not set
881CONFIG_FONT_6x11=y
882# CONFIG_FONT_7x14 is not set
883# CONFIG_FONT_PEARL_8x8 is not set
884# CONFIG_FONT_ACORN_8x8 is not set
885# CONFIG_FONT_MINI_4x6 is not set
886# CONFIG_FONT_CLEAN_4x6 is not set
887# CONFIG_FONT_CLEAN_5x8 is not set
888# CONFIG_FONT_SUN8x16 is not set
889# CONFIG_FONT_SUN12x22 is not set
890# CONFIG_FONT_10x18 is not set
891CONFIG_LOGO=y
892# CONFIG_LOGO_LINUX_MONO is not set
893# CONFIG_LOGO_LINUX_VGA16 is not set
894CONFIG_LOGO_LINUX_CLUT224=y
895
896#
897# Sound
898#
899# CONFIG_SOUND is not set
900
901#
902# HID Devices
903#
904CONFIG_HID=y
905# CONFIG_HID_DEBUG is not set
906
907#
908# USB Input Devices
909#
910CONFIG_USB_HID=y
911# CONFIG_USB_HIDINPUT_POWERBOOK is not set
912# CONFIG_HID_FF is not set
913# CONFIG_USB_HIDDEV is not set
914
915#
916# USB support
917#
918CONFIG_USB_ARCH_HAS_HCD=y
919CONFIG_USB_ARCH_HAS_OHCI=y
920# CONFIG_USB_ARCH_HAS_EHCI is not set
921CONFIG_USB=y
922# CONFIG_USB_DEBUG is not set
923
924#
925# Miscellaneous USB options
926#
927CONFIG_USB_DEVICEFS=y
928# CONFIG_USB_DEVICE_CLASS is not set
929# CONFIG_USB_DYNAMIC_MINORS is not set
930# CONFIG_USB_OTG is not set
931
932#
933# USB Host Controller Drivers
934#
935# CONFIG_USB_ISP116X_HCD is not set
936CONFIG_USB_OHCI_HCD=y
937# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
938# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
939CONFIG_USB_OHCI_LITTLE_ENDIAN=y
940# CONFIG_USB_SL811_HCD is not set
941# CONFIG_USB_MUSB_HDRC is not set
942
943#
944# USB Device Class drivers
945#
946# CONFIG_USB_ACM is not set
947# CONFIG_USB_PRINTER is not set
948
949#
950# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
951#
952
953#
954# may also be needed; see USB_STORAGE Help for more information
955#
956CONFIG_USB_STORAGE=y
957# CONFIG_USB_STORAGE_DEBUG is not set
958# CONFIG_USB_STORAGE_DATAFAB is not set
959# CONFIG_USB_STORAGE_FREECOM is not set
960# CONFIG_USB_STORAGE_DPCM is not set
961# CONFIG_USB_STORAGE_USBAT is not set
962# CONFIG_USB_STORAGE_SDDR09 is not set
963# CONFIG_USB_STORAGE_SDDR55 is not set
964# CONFIG_USB_STORAGE_JUMPSHOT is not set
965# CONFIG_USB_STORAGE_ALAUDA is not set
966# CONFIG_USB_STORAGE_KARMA is not set
967# CONFIG_USB_LIBUSUAL is not set
968
969#
970# USB Imaging devices
971#
972# CONFIG_USB_MDC800 is not set
973# CONFIG_USB_MICROTEK is not set
974CONFIG_USB_MON=y
975
976#
977# USB port drivers
978#
979
980#
981# USB Serial Converter support
982#
983# CONFIG_USB_SERIAL is not set
984
985#
986# USB Miscellaneous drivers
987#
988# CONFIG_USB_EMI62 is not set
989# CONFIG_USB_EMI26 is not set
990# CONFIG_USB_ADUTUX is not set
991# CONFIG_USB_AUERSWALD is not set
992# CONFIG_USB_RIO500 is not set
993# CONFIG_USB_LEGOTOWER is not set
994# CONFIG_USB_LCD is not set
995# CONFIG_USB_BERRY_CHARGE is not set
996# CONFIG_USB_LED is not set
997# CONFIG_USB_CYPRESS_CY7C63 is not set
998# CONFIG_USB_CYTHERM is not set
999# CONFIG_USB_PHIDGET is not set
1000# CONFIG_USB_IDMOUSE is not set
1001# CONFIG_USB_FTDI_ELAN is not set
1002# CONFIG_USB_APPLEDISPLAY is not set
1003# CONFIG_USB_LD is not set
1004# CONFIG_USB_TRANCEVIBRATOR is not set
1005# CONFIG_USB_IOWARRIOR is not set
1006# CONFIG_USB_TEST is not set
1007
1008#
1009# USB DSL modem support
1010#
1011
1012#
1013# USB Gadget Support
1014#
1015# CONFIG_USB_GADGET is not set
1016# CONFIG_MMC is not set
1017
1018#
1019# Real Time Clock
1020#
1021CONFIG_RTC_LIB=y
1022CONFIG_RTC_CLASS=y
1023CONFIG_RTC_HCTOSYS=y
1024CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1025# CONFIG_RTC_DEBUG is not set
1026
1027#
1028# RTC interfaces
1029#
1030CONFIG_RTC_INTF_SYSFS=y
1031CONFIG_RTC_INTF_PROC=y
1032CONFIG_RTC_INTF_DEV=y
1033# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1034# CONFIG_RTC_DRV_TEST is not set
1035
1036#
1037# I2C RTC drivers
1038#
1039# CONFIG_RTC_DRV_DS1307 is not set
1040# CONFIG_RTC_DRV_DS1672 is not set
1041# CONFIG_RTC_DRV_MAX6900 is not set
1042# CONFIG_RTC_DRV_RS5C372 is not set
1043# CONFIG_RTC_DRV_ISL1208 is not set
1044# CONFIG_RTC_DRV_X1205 is not set
1045# CONFIG_RTC_DRV_PCF8563 is not set
1046# CONFIG_RTC_DRV_PCF8583 is not set
1047
1048#
1049# SPI RTC drivers
1050#
1051
1052#
1053# Platform RTC drivers
1054#
1055# CONFIG_RTC_DRV_CMOS is not set
1056# CONFIG_RTC_DRV_DS1553 is not set
1057# CONFIG_RTC_DRV_DS1742 is not set
1058# CONFIG_RTC_DRV_M48T86 is not set
1059# CONFIG_RTC_DRV_V3020 is not set
1060
1061#
1062# on-CPU RTC drivers
1063#
1064CONFIG_RTC_DRV_OMAP=y
1065
1066#
1067# CBUS support
1068#
1069# CONFIG_CBUS is not set
1070
1071#
1072# File systems
1073#
1074CONFIG_EXT2_FS=y
1075# CONFIG_EXT2_FS_XATTR is not set
1076# CONFIG_EXT2_FS_XIP is not set
1077CONFIG_EXT3_FS=y
1078CONFIG_EXT3_FS_XATTR=y
1079# CONFIG_EXT3_FS_POSIX_ACL is not set
1080# CONFIG_EXT3_FS_SECURITY is not set
1081# CONFIG_EXT4DEV_FS is not set
1082CONFIG_JBD=y
1083# CONFIG_JBD_DEBUG is not set
1084CONFIG_FS_MBCACHE=y
1085# CONFIG_REISERFS_FS is not set
1086# CONFIG_JFS_FS is not set
1087# CONFIG_FS_POSIX_ACL is not set
1088# CONFIG_XFS_FS is not set
1089# CONFIG_GFS2_FS is not set
1090# CONFIG_OCFS2_FS is not set
1091# CONFIG_MINIX_FS is not set
1092# CONFIG_ROMFS_FS is not set
1093CONFIG_INOTIFY=y
1094CONFIG_INOTIFY_USER=y
1095# CONFIG_QUOTA is not set
1096CONFIG_DNOTIFY=y
1097CONFIG_AUTOFS_FS=y
1098CONFIG_AUTOFS4_FS=y
1099# CONFIG_FUSE_FS is not set
1100
1101#
1102# CD-ROM/DVD Filesystems
1103#
1104# CONFIG_ISO9660_FS is not set
1105# CONFIG_UDF_FS is not set
1106
1107#
1108# DOS/FAT/NT Filesystems
1109#
1110CONFIG_FAT_FS=y
1111CONFIG_MSDOS_FS=y
1112CONFIG_VFAT_FS=y
1113CONFIG_FAT_DEFAULT_CODEPAGE=437
1114CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1115# CONFIG_NTFS_FS is not set
1116
1117#
1118# Pseudo filesystems
1119#
1120CONFIG_PROC_FS=y
1121CONFIG_PROC_SYSCTL=y
1122CONFIG_SYSFS=y
1123CONFIG_TMPFS=y
1124# CONFIG_TMPFS_POSIX_ACL is not set
1125# CONFIG_HUGETLB_PAGE is not set
1126CONFIG_RAMFS=y
1127# CONFIG_CONFIGFS_FS is not set
1128
1129#
1130# Miscellaneous filesystems
1131#
1132# CONFIG_ADFS_FS is not set
1133# CONFIG_AFFS_FS is not set
1134# CONFIG_HFS_FS is not set
1135# CONFIG_HFSPLUS_FS is not set
1136# CONFIG_BEFS_FS is not set
1137# CONFIG_BFS_FS is not set
1138# CONFIG_EFS_FS is not set
1139CONFIG_JFFS2_FS=y
1140CONFIG_JFFS2_FS_DEBUG=0
1141CONFIG_JFFS2_FS_WRITEBUFFER=y
1142CONFIG_JFFS2_SUMMARY=y
1143# CONFIG_JFFS2_FS_XATTR is not set
1144# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1145CONFIG_JFFS2_ZLIB=y
1146CONFIG_JFFS2_RTIME=y
1147# CONFIG_JFFS2_RUBIN is not set
1148# CONFIG_CRAMFS is not set
1149# CONFIG_VXFS_FS is not set
1150# CONFIG_HPFS_FS is not set
1151# CONFIG_QNX4FS_FS is not set
1152# CONFIG_SYSV_FS is not set
1153# CONFIG_UFS_FS is not set
1154
1155#
1156# Network File Systems
1157#
1158CONFIG_NFS_FS=y
1159# CONFIG_NFS_V3 is not set
1160# CONFIG_NFS_V4 is not set
1161# CONFIG_NFS_DIRECTIO is not set
1162# CONFIG_NFSD is not set
1163CONFIG_LOCKD=y
1164CONFIG_NFS_COMMON=y
1165CONFIG_SUNRPC=y
1166# CONFIG_SUNRPC_BIND34 is not set
1167# CONFIG_RPCSEC_GSS_KRB5 is not set
1168# CONFIG_RPCSEC_GSS_SPKM3 is not set
1169# CONFIG_SMB_FS is not set
1170# CONFIG_CIFS is not set
1171# CONFIG_NCP_FS is not set
1172# CONFIG_CODA_FS is not set
1173# CONFIG_AFS_FS is not set
1174# CONFIG_9P_FS is not set
1175
1176#
1177# Partition Types
1178#
1179CONFIG_PARTITION_ADVANCED=y
1180# CONFIG_ACORN_PARTITION is not set
1181# CONFIG_OSF_PARTITION is not set
1182# CONFIG_AMIGA_PARTITION is not set
1183# CONFIG_ATARI_PARTITION is not set
1184# CONFIG_MAC_PARTITION is not set
1185CONFIG_MSDOS_PARTITION=y
1186# CONFIG_BSD_DISKLABEL is not set
1187# CONFIG_MINIX_SUBPARTITION is not set
1188# CONFIG_SOLARIS_X86_PARTITION is not set
1189# CONFIG_UNIXWARE_DISKLABEL is not set
1190# CONFIG_LDM_PARTITION is not set
1191# CONFIG_SGI_PARTITION is not set
1192# CONFIG_ULTRIX_PARTITION is not set
1193# CONFIG_SUN_PARTITION is not set
1194# CONFIG_KARMA_PARTITION is not set
1195# CONFIG_EFI_PARTITION is not set
1196# CONFIG_SYSV68_PARTITION is not set
1197
1198#
1199# Native Language Support
1200#
1201CONFIG_NLS=y
1202CONFIG_NLS_DEFAULT="iso8859-1"
1203CONFIG_NLS_CODEPAGE_437=y
1204# CONFIG_NLS_CODEPAGE_737 is not set
1205# CONFIG_NLS_CODEPAGE_775 is not set
1206CONFIG_NLS_CODEPAGE_850=y
1207CONFIG_NLS_CODEPAGE_852=y
1208# CONFIG_NLS_CODEPAGE_855 is not set
1209# CONFIG_NLS_CODEPAGE_857 is not set
1210# CONFIG_NLS_CODEPAGE_860 is not set
1211# CONFIG_NLS_CODEPAGE_861 is not set
1212# CONFIG_NLS_CODEPAGE_862 is not set
1213# CONFIG_NLS_CODEPAGE_863 is not set
1214# CONFIG_NLS_CODEPAGE_864 is not set
1215# CONFIG_NLS_CODEPAGE_865 is not set
1216# CONFIG_NLS_CODEPAGE_866 is not set
1217# CONFIG_NLS_CODEPAGE_869 is not set
1218# CONFIG_NLS_CODEPAGE_936 is not set
1219# CONFIG_NLS_CODEPAGE_950 is not set
1220# CONFIG_NLS_CODEPAGE_932 is not set
1221# CONFIG_NLS_CODEPAGE_949 is not set
1222# CONFIG_NLS_CODEPAGE_874 is not set
1223# CONFIG_NLS_ISO8859_8 is not set
1224# CONFIG_NLS_CODEPAGE_1250 is not set
1225# CONFIG_NLS_CODEPAGE_1251 is not set
1226# CONFIG_NLS_ASCII is not set
1227CONFIG_NLS_ISO8859_1=y
1228CONFIG_NLS_ISO8859_2=y
1229# CONFIG_NLS_ISO8859_3 is not set
1230# CONFIG_NLS_ISO8859_4 is not set
1231# CONFIG_NLS_ISO8859_5 is not set
1232# CONFIG_NLS_ISO8859_6 is not set
1233# CONFIG_NLS_ISO8859_7 is not set
1234# CONFIG_NLS_ISO8859_9 is not set
1235# CONFIG_NLS_ISO8859_13 is not set
1236# CONFIG_NLS_ISO8859_14 is not set
1237# CONFIG_NLS_ISO8859_15 is not set
1238# CONFIG_NLS_KOI8_R is not set
1239# CONFIG_NLS_KOI8_U is not set
1240# CONFIG_NLS_UTF8 is not set
1241
1242#
1243# Distributed Lock Manager
1244#
1245# CONFIG_DLM is not set
1246
1247#
1248# Profiling support
1249#
1250# CONFIG_PROFILING is not set
1251
1252#
1253# Kernel hacking
1254#
1255# CONFIG_PRINTK_TIME is not set
1256CONFIG_ENABLE_MUST_CHECK=y
1257CONFIG_MAGIC_SYSRQ=y
1258# CONFIG_UNUSED_SYMBOLS is not set
1259# CONFIG_DEBUG_FS is not set
1260# CONFIG_HEADERS_CHECK is not set
1261CONFIG_DEBUG_KERNEL=y
1262# CONFIG_DEBUG_SHIRQ is not set
1263CONFIG_DETECT_SOFTLOCKUP=y
1264# CONFIG_SCHEDSTATS is not set
1265# CONFIG_TIMER_STATS is not set
1266# CONFIG_DEBUG_SLAB is not set
1267CONFIG_DEBUG_PREEMPT=y
1268# CONFIG_DEBUG_RT_MUTEXES is not set
1269# CONFIG_RT_MUTEX_TESTER is not set
1270# CONFIG_DEBUG_SPINLOCK is not set
1271# CONFIG_DEBUG_MUTEXES is not set
1272# CONFIG_DEBUG_LOCK_ALLOC is not set
1273# CONFIG_PROVE_LOCKING is not set
1274# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1275# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1276# CONFIG_DEBUG_KOBJECT is not set
1277CONFIG_DEBUG_BUGVERBOSE=y
1278# CONFIG_DEBUG_INFO is not set
1279# CONFIG_DEBUG_VM is not set
1280# CONFIG_DEBUG_LIST is not set
1281CONFIG_FRAME_POINTER=y
1282CONFIG_FORCED_INLINING=y
1283# CONFIG_RCU_TORTURE_TEST is not set
1284# CONFIG_FAULT_INJECTION is not set
1285# CONFIG_DEBUG_USER is not set
1286# CONFIG_DEBUG_ERRORS is not set
1287# CONFIG_DEBUG_LL is not set
1288
1289#
1290# Security options
1291#
1292# CONFIG_KEYS is not set
1293# CONFIG_SECURITY is not set
1294
1295#
1296# Cryptographic options
1297#
1298# CONFIG_CRYPTO is not set
1299
1300#
1301# Library routines
1302#
1303CONFIG_BITREVERSE=y
1304# CONFIG_CRC_CCITT is not set
1305# CONFIG_CRC16 is not set
1306# CONFIG_CRC_ITU_T is not set
1307CONFIG_CRC32=y
1308# CONFIG_LIBCRC32C is not set
1309CONFIG_ZLIB_INFLATE=y
1310CONFIG_ZLIB_DEFLATE=y
1311CONFIG_PLIST=y
1312CONFIG_HAS_IOMEM=y
1313CONFIG_HAS_IOPORT=y
1314CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/at91sam9rlek_defconfig b/arch/arm/configs/at91sam9rlek_defconfig
index 1c76642272a1..811bebbdc784 100644
--- a/arch/arm/configs/at91sam9rlek_defconfig
+++ b/arch/arm/configs/at91sam9rlek_defconfig
@@ -496,6 +496,7 @@ CONFIG_INPUT_TOUCHSCREEN=y
496# CONFIG_TOUCHSCREEN_PENMOUNT is not set 496# CONFIG_TOUCHSCREEN_PENMOUNT is not set
497# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 497# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
498# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 498# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
499CONFIG_TOUCHSCREEN_ATMEL_TSADCC=y
499# CONFIG_TOUCHSCREEN_UCB1400 is not set 500# CONFIG_TOUCHSCREEN_UCB1400 is not set
500# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 501# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
501# CONFIG_INPUT_MISC is not set 502# CONFIG_INPUT_MISC is not set
diff --git a/arch/arm/configs/cm_x300_defconfig b/arch/arm/configs/cm_x300_defconfig
new file mode 100644
index 000000000000..46f1c9dc350c
--- /dev/null
+++ b/arch/arm/configs/cm_x300_defconfig
@@ -0,0 +1,1466 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc3
4# Tue Aug 19 11:26:54 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y
17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_HARDIRQS_SW_RESEND=y
19CONFIG_GENERIC_IRQ_PROBE=y
20CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y
24CONFIG_GENERIC_CALIBRATE_DELAY=y
25CONFIG_ARCH_SUPPORTS_AOUT=y
26CONFIG_ZONE_DMA=y
27CONFIG_ARCH_MTD_XIP=y
28CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
29CONFIG_VECTORS_BASE=0xffff0000
30CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
31
32#
33# General setup
34#
35CONFIG_EXPERIMENTAL=y
36CONFIG_BROKEN_ON_SMP=y
37CONFIG_INIT_ENV_ARG_LIMIT=32
38CONFIG_LOCALVERSION="-cm-x300"
39# CONFIG_LOCALVERSION_AUTO is not set
40CONFIG_SWAP=y
41CONFIG_SYSVIPC=y
42CONFIG_SYSVIPC_SYSCTL=y
43# CONFIG_POSIX_MQUEUE is not set
44# CONFIG_BSD_PROCESS_ACCT is not set
45# CONFIG_TASKSTATS is not set
46# CONFIG_AUDIT is not set
47CONFIG_IKCONFIG=y
48CONFIG_IKCONFIG_PROC=y
49CONFIG_LOG_BUF_SHIFT=18
50# CONFIG_CGROUPS is not set
51CONFIG_GROUP_SCHED=y
52CONFIG_FAIR_GROUP_SCHED=y
53# CONFIG_RT_GROUP_SCHED is not set
54CONFIG_USER_SCHED=y
55# CONFIG_CGROUP_SCHED is not set
56CONFIG_SYSFS_DEPRECATED=y
57CONFIG_SYSFS_DEPRECATED_V2=y
58# CONFIG_RELAY is not set
59CONFIG_NAMESPACES=y
60# CONFIG_UTS_NS is not set
61# CONFIG_IPC_NS is not set
62# CONFIG_USER_NS is not set
63# CONFIG_PID_NS is not set
64CONFIG_BLK_DEV_INITRD=y
65CONFIG_INITRAMFS_SOURCE=""
66# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
67CONFIG_SYSCTL=y
68# CONFIG_EMBEDDED is not set
69CONFIG_UID16=y
70CONFIG_SYSCTL_SYSCALL=y
71CONFIG_KALLSYMS=y
72# CONFIG_KALLSYMS_ALL is not set
73# CONFIG_KALLSYMS_EXTRA_PASS is not set
74CONFIG_HOTPLUG=y
75CONFIG_PRINTK=y
76CONFIG_BUG=y
77CONFIG_ELF_CORE=y
78CONFIG_COMPAT_BRK=y
79CONFIG_BASE_FULL=y
80CONFIG_FUTEX=y
81CONFIG_ANON_INODES=y
82CONFIG_EPOLL=y
83CONFIG_SIGNALFD=y
84CONFIG_TIMERFD=y
85CONFIG_EVENTFD=y
86CONFIG_SHMEM=y
87CONFIG_VM_EVENT_COUNTERS=y
88CONFIG_SLUB_DEBUG=y
89# CONFIG_SLAB is not set
90CONFIG_SLUB=y
91# CONFIG_SLOB is not set
92# CONFIG_PROFILING is not set
93# CONFIG_MARKERS is not set
94CONFIG_HAVE_OPROFILE=y
95# CONFIG_KPROBES is not set
96# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
97# CONFIG_HAVE_IOREMAP_PROT is not set
98CONFIG_HAVE_KPROBES=y
99CONFIG_HAVE_KRETPROBES=y
100# CONFIG_HAVE_ARCH_TRACEHOOK is not set
101# CONFIG_HAVE_DMA_ATTRS is not set
102# CONFIG_USE_GENERIC_SMP_HELPERS is not set
103CONFIG_HAVE_CLK=y
104CONFIG_PROC_PAGE_MONITOR=y
105CONFIG_HAVE_GENERIC_DMA_COHERENT=y
106CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0
110CONFIG_MODULES=y
111# CONFIG_MODULE_FORCE_LOAD is not set
112CONFIG_MODULE_UNLOAD=y
113# CONFIG_MODULE_FORCE_UNLOAD is not set
114# CONFIG_MODVERSIONS is not set
115# CONFIG_MODULE_SRCVERSION_ALL is not set
116CONFIG_KMOD=y
117CONFIG_BLOCK=y
118# CONFIG_LBD is not set
119# CONFIG_BLK_DEV_IO_TRACE is not set
120# CONFIG_LSF is not set
121# CONFIG_BLK_DEV_BSG is not set
122# CONFIG_BLK_DEV_INTEGRITY is not set
123
124#
125# IO Schedulers
126#
127CONFIG_IOSCHED_NOOP=y
128CONFIG_IOSCHED_AS=y
129CONFIG_IOSCHED_DEADLINE=y
130CONFIG_IOSCHED_CFQ=y
131# CONFIG_DEFAULT_AS is not set
132# CONFIG_DEFAULT_DEADLINE is not set
133CONFIG_DEFAULT_CFQ=y
134# CONFIG_DEFAULT_NOOP is not set
135CONFIG_DEFAULT_IOSCHED="cfq"
136CONFIG_CLASSIC_RCU=y
137
138#
139# System Type
140#
141# CONFIG_ARCH_AAEC2000 is not set
142# CONFIG_ARCH_INTEGRATOR is not set
143# CONFIG_ARCH_REALVIEW is not set
144# CONFIG_ARCH_VERSATILE is not set
145# CONFIG_ARCH_AT91 is not set
146# CONFIG_ARCH_CLPS7500 is not set
147# CONFIG_ARCH_CLPS711X is not set
148# CONFIG_ARCH_EBSA110 is not set
149# CONFIG_ARCH_EP93XX is not set
150# CONFIG_ARCH_FOOTBRIDGE is not set
151# CONFIG_ARCH_NETX is not set
152# CONFIG_ARCH_H720X is not set
153# CONFIG_ARCH_IMX is not set
154# CONFIG_ARCH_IOP13XX is not set
155# CONFIG_ARCH_IOP32X is not set
156# CONFIG_ARCH_IOP33X is not set
157# CONFIG_ARCH_IXP23XX is not set
158# CONFIG_ARCH_IXP2000 is not set
159# CONFIG_ARCH_IXP4XX is not set
160# CONFIG_ARCH_L7200 is not set
161# CONFIG_ARCH_KIRKWOOD is not set
162# CONFIG_ARCH_KS8695 is not set
163# CONFIG_ARCH_NS9XXX is not set
164# CONFIG_ARCH_LOKI is not set
165# CONFIG_ARCH_MV78XX0 is not set
166# CONFIG_ARCH_MXC is not set
167# CONFIG_ARCH_ORION5X is not set
168# CONFIG_ARCH_PNX4008 is not set
169CONFIG_ARCH_PXA=y
170# CONFIG_ARCH_RPC is not set
171# CONFIG_ARCH_SA1100 is not set
172# CONFIG_ARCH_S3C2410 is not set
173# CONFIG_ARCH_SHARK is not set
174# CONFIG_ARCH_LH7A40X is not set
175# CONFIG_ARCH_DAVINCI is not set
176# CONFIG_ARCH_OMAP is not set
177# CONFIG_ARCH_MSM7X00A is not set
178
179#
180# Intel PXA2xx/PXA3xx Implementations
181#
182
183#
184# Supported PXA3xx Processor Variants
185#
186CONFIG_CPU_PXA300=y
187# CONFIG_CPU_PXA310 is not set
188# CONFIG_CPU_PXA320 is not set
189# CONFIG_CPU_PXA930 is not set
190# CONFIG_ARCH_GUMSTIX is not set
191# CONFIG_ARCH_LUBBOCK is not set
192# CONFIG_MACH_LOGICPD_PXA270 is not set
193# CONFIG_MACH_MAINSTONE is not set
194# CONFIG_ARCH_PXA_IDP is not set
195# CONFIG_PXA_SHARPSL is not set
196# CONFIG_ARCH_PXA_ESERIES is not set
197# CONFIG_MACH_TRIZEPS4 is not set
198# CONFIG_MACH_EM_X270 is not set
199# CONFIG_MACH_COLIBRI is not set
200# CONFIG_MACH_ZYLONITE is not set
201# CONFIG_MACH_LITTLETON is not set
202# CONFIG_MACH_TAVOREVB is not set
203# CONFIG_MACH_SAAR is not set
204# CONFIG_MACH_ARMCORE is not set
205CONFIG_MACH_CM_X300=y
206# CONFIG_MACH_MAGICIAN is not set
207# CONFIG_MACH_PCM027 is not set
208# CONFIG_ARCH_PXA_PALM is not set
209# CONFIG_PXA_EZX is not set
210CONFIG_PXA3xx=y
211# CONFIG_PXA_PWM is not set
212
213#
214# Boot options
215#
216
217#
218# Power management
219#
220
221#
222# Processor Type
223#
224CONFIG_CPU_32=y
225CONFIG_CPU_XSC3=y
226CONFIG_CPU_32v5=y
227CONFIG_CPU_ABRT_EV5T=y
228CONFIG_CPU_PABRT_NOIFAR=y
229CONFIG_CPU_CACHE_VIVT=y
230CONFIG_CPU_TLB_V4WBI=y
231CONFIG_CPU_CP15=y
232CONFIG_CPU_CP15_MMU=y
233CONFIG_IO_36=y
234
235#
236# Processor Features
237#
238# CONFIG_ARM_THUMB is not set
239# CONFIG_CPU_DCACHE_DISABLE is not set
240# CONFIG_CPU_BPREDICT_DISABLE is not set
241CONFIG_OUTER_CACHE=y
242CONFIG_CACHE_XSC3L2=y
243CONFIG_IWMMXT=y
244
245#
246# Bus support
247#
248# CONFIG_PCI_SYSCALL is not set
249# CONFIG_ARCH_SUPPORTS_MSI is not set
250# CONFIG_PCCARD is not set
251
252#
253# Kernel Features
254#
255CONFIG_TICK_ONESHOT=y
256CONFIG_NO_HZ=y
257# CONFIG_HIGH_RES_TIMERS is not set
258CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
259# CONFIG_PREEMPT is not set
260CONFIG_HZ=100
261CONFIG_AEABI=y
262CONFIG_OABI_COMPAT=y
263# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
264CONFIG_SELECT_MEMORY_MODEL=y
265CONFIG_FLATMEM_MANUAL=y
266# CONFIG_DISCONTIGMEM_MANUAL is not set
267# CONFIG_SPARSEMEM_MANUAL is not set
268CONFIG_FLATMEM=y
269CONFIG_FLAT_NODE_MEM_MAP=y
270# CONFIG_SPARSEMEM_STATIC is not set
271# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
272CONFIG_PAGEFLAGS_EXTENDED=y
273CONFIG_SPLIT_PTLOCK_CPUS=4096
274# CONFIG_RESOURCES_64BIT is not set
275CONFIG_ZONE_DMA_FLAG=1
276CONFIG_BOUNCE=y
277CONFIG_VIRT_TO_BUS=y
278CONFIG_ALIGNMENT_TRAP=y
279
280#
281# Boot options
282#
283CONFIG_ZBOOT_ROM_TEXT=0x0
284CONFIG_ZBOOT_ROM_BSS=0x0
285CONFIG_CMDLINE="root=/dev/mtdblock5 rootfstype=jffs2 console=ttyS2,38400"
286# CONFIG_XIP_KERNEL is not set
287# CONFIG_KEXEC is not set
288
289#
290# CPU Frequency scaling
291#
292CONFIG_CPU_FREQ=y
293CONFIG_CPU_FREQ_TABLE=y
294# CONFIG_CPU_FREQ_DEBUG is not set
295CONFIG_CPU_FREQ_STAT=y
296# CONFIG_CPU_FREQ_STAT_DETAILS is not set
297CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
298# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
299# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
300# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
301# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
302CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
303# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
304CONFIG_CPU_FREQ_GOV_USERSPACE=y
305# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
306# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
307
308#
309# Floating point emulation
310#
311
312#
313# At least one emulation must be selected
314#
315CONFIG_FPE_NWFPE=y
316# CONFIG_FPE_NWFPE_XP is not set
317# CONFIG_FPE_FASTFPE is not set
318
319#
320# Userspace binary formats
321#
322CONFIG_BINFMT_ELF=y
323# CONFIG_BINFMT_AOUT is not set
324# CONFIG_BINFMT_MISC is not set
325
326#
327# Power management options
328#
329CONFIG_PM=y
330# CONFIG_PM_DEBUG is not set
331CONFIG_PM_SLEEP=y
332CONFIG_SUSPEND=y
333CONFIG_SUSPEND_FREEZER=y
334CONFIG_APM_EMULATION=y
335CONFIG_ARCH_SUSPEND_POSSIBLE=y
336CONFIG_NET=y
337
338#
339# Networking options
340#
341CONFIG_PACKET=y
342# CONFIG_PACKET_MMAP is not set
343CONFIG_UNIX=y
344# CONFIG_NET_KEY is not set
345CONFIG_INET=y
346# CONFIG_IP_MULTICAST is not set
347# CONFIG_IP_ADVANCED_ROUTER is not set
348CONFIG_IP_FIB_HASH=y
349CONFIG_IP_PNP=y
350CONFIG_IP_PNP_DHCP=y
351CONFIG_IP_PNP_BOOTP=y
352CONFIG_IP_PNP_RARP=y
353# CONFIG_NET_IPIP is not set
354# CONFIG_NET_IPGRE is not set
355# CONFIG_ARPD is not set
356# CONFIG_SYN_COOKIES is not set
357# CONFIG_INET_AH is not set
358# CONFIG_INET_ESP is not set
359# CONFIG_INET_IPCOMP is not set
360# CONFIG_INET_XFRM_TUNNEL is not set
361# CONFIG_INET_TUNNEL is not set
362# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
363# CONFIG_INET_XFRM_MODE_TUNNEL is not set
364# CONFIG_INET_XFRM_MODE_BEET is not set
365# CONFIG_INET_LRO is not set
366# CONFIG_INET_DIAG is not set
367# CONFIG_TCP_CONG_ADVANCED is not set
368CONFIG_TCP_CONG_CUBIC=y
369CONFIG_DEFAULT_TCP_CONG="cubic"
370# CONFIG_TCP_MD5SIG is not set
371# CONFIG_IPV6 is not set
372# CONFIG_NETWORK_SECMARK is not set
373# CONFIG_NETFILTER is not set
374# CONFIG_IP_DCCP is not set
375# CONFIG_IP_SCTP is not set
376# CONFIG_TIPC is not set
377# CONFIG_ATM is not set
378# CONFIG_BRIDGE is not set
379# CONFIG_VLAN_8021Q is not set
380# CONFIG_DECNET is not set
381# CONFIG_LLC2 is not set
382# CONFIG_IPX is not set
383# CONFIG_ATALK is not set
384# CONFIG_X25 is not set
385# CONFIG_LAPB is not set
386# CONFIG_ECONET is not set
387# CONFIG_WAN_ROUTER is not set
388# CONFIG_NET_SCHED is not set
389
390#
391# Network testing
392#
393# CONFIG_NET_PKTGEN is not set
394# CONFIG_HAMRADIO is not set
395# CONFIG_CAN is not set
396# CONFIG_IRDA is not set
397CONFIG_BT=m
398CONFIG_BT_L2CAP=m
399CONFIG_BT_SCO=m
400CONFIG_BT_RFCOMM=m
401CONFIG_BT_RFCOMM_TTY=y
402CONFIG_BT_BNEP=m
403CONFIG_BT_BNEP_MC_FILTER=y
404CONFIG_BT_BNEP_PROTO_FILTER=y
405CONFIG_BT_HIDP=m
406
407#
408# Bluetooth device drivers
409#
410CONFIG_BT_HCIUSB=m
411CONFIG_BT_HCIUSB_SCO=y
412# CONFIG_BT_HCIBTSDIO is not set
413# CONFIG_BT_HCIUART is not set
414# CONFIG_BT_HCIBCM203X is not set
415# CONFIG_BT_HCIBPA10X is not set
416# CONFIG_BT_HCIBFUSB is not set
417# CONFIG_BT_HCIVHCI is not set
418# CONFIG_AF_RXRPC is not set
419
420#
421# Wireless
422#
423# CONFIG_CFG80211 is not set
424CONFIG_WIRELESS_EXT=y
425CONFIG_WIRELESS_EXT_SYSFS=y
426# CONFIG_MAC80211 is not set
427CONFIG_IEEE80211=m
428# CONFIG_IEEE80211_DEBUG is not set
429CONFIG_IEEE80211_CRYPT_WEP=m
430CONFIG_IEEE80211_CRYPT_CCMP=m
431CONFIG_IEEE80211_CRYPT_TKIP=m
432# CONFIG_RFKILL is not set
433# CONFIG_NET_9P is not set
434
435#
436# Device Drivers
437#
438
439#
440# Generic Driver Options
441#
442CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
443CONFIG_STANDALONE=y
444CONFIG_PREVENT_FIRMWARE_BUILD=y
445CONFIG_FW_LOADER=y
446CONFIG_FIRMWARE_IN_KERNEL=y
447CONFIG_EXTRA_FIRMWARE=""
448# CONFIG_DEBUG_DRIVER is not set
449# CONFIG_DEBUG_DEVRES is not set
450# CONFIG_SYS_HYPERVISOR is not set
451# CONFIG_CONNECTOR is not set
452CONFIG_MTD=y
453# CONFIG_MTD_DEBUG is not set
454# CONFIG_MTD_CONCAT is not set
455CONFIG_MTD_PARTITIONS=y
456# CONFIG_MTD_REDBOOT_PARTS is not set
457# CONFIG_MTD_CMDLINE_PARTS is not set
458# CONFIG_MTD_AFS_PARTS is not set
459# CONFIG_MTD_AR7_PARTS is not set
460
461#
462# User Modules And Translation Layers
463#
464CONFIG_MTD_CHAR=y
465CONFIG_MTD_BLKDEVS=y
466CONFIG_MTD_BLOCK=y
467# CONFIG_FTL is not set
468# CONFIG_NFTL is not set
469# CONFIG_INFTL is not set
470# CONFIG_RFD_FTL is not set
471# CONFIG_SSFDC is not set
472# CONFIG_MTD_OOPS is not set
473
474#
475# RAM/ROM/Flash chip drivers
476#
477# CONFIG_MTD_CFI is not set
478# CONFIG_MTD_JEDECPROBE is not set
479CONFIG_MTD_MAP_BANK_WIDTH_1=y
480CONFIG_MTD_MAP_BANK_WIDTH_2=y
481CONFIG_MTD_MAP_BANK_WIDTH_4=y
482# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
483# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
484# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
485CONFIG_MTD_CFI_I1=y
486CONFIG_MTD_CFI_I2=y
487# CONFIG_MTD_CFI_I4 is not set
488# CONFIG_MTD_CFI_I8 is not set
489# CONFIG_MTD_RAM is not set
490# CONFIG_MTD_ROM is not set
491# CONFIG_MTD_ABSENT is not set
492
493#
494# Mapping drivers for chip access
495#
496# CONFIG_MTD_COMPLEX_MAPPINGS is not set
497# CONFIG_MTD_SHARP_SL is not set
498# CONFIG_MTD_PLATRAM is not set
499
500#
501# Self-contained MTD device drivers
502#
503# CONFIG_MTD_SLRAM is not set
504# CONFIG_MTD_PHRAM is not set
505# CONFIG_MTD_MTDRAM is not set
506# CONFIG_MTD_BLOCK2MTD is not set
507
508#
509# Disk-On-Chip Device Drivers
510#
511# CONFIG_MTD_DOC2000 is not set
512# CONFIG_MTD_DOC2001 is not set
513# CONFIG_MTD_DOC2001PLUS is not set
514CONFIG_MTD_NAND=y
515# CONFIG_MTD_NAND_VERIFY_WRITE is not set
516# CONFIG_MTD_NAND_ECC_SMC is not set
517# CONFIG_MTD_NAND_MUSEUM_IDS is not set
518# CONFIG_MTD_NAND_H1900 is not set
519CONFIG_MTD_NAND_IDS=y
520# CONFIG_MTD_NAND_DISKONCHIP is not set
521# CONFIG_MTD_NAND_SHARPSL is not set
522CONFIG_MTD_NAND_PXA3xx=y
523# CONFIG_MTD_NAND_NANDSIM is not set
524# CONFIG_MTD_NAND_PLATFORM is not set
525# CONFIG_MTD_ALAUDA is not set
526# CONFIG_MTD_ONENAND is not set
527
528#
529# UBI - Unsorted block images
530#
531# CONFIG_MTD_UBI is not set
532# CONFIG_PARPORT is not set
533CONFIG_BLK_DEV=y
534# CONFIG_BLK_DEV_COW_COMMON is not set
535CONFIG_BLK_DEV_LOOP=y
536# CONFIG_BLK_DEV_CRYPTOLOOP is not set
537# CONFIG_BLK_DEV_NBD is not set
538# CONFIG_BLK_DEV_UB is not set
539CONFIG_BLK_DEV_RAM=y
540CONFIG_BLK_DEV_RAM_COUNT=16
541CONFIG_BLK_DEV_RAM_SIZE=4096
542# CONFIG_BLK_DEV_XIP is not set
543# CONFIG_CDROM_PKTCDVD is not set
544# CONFIG_ATA_OVER_ETH is not set
545# CONFIG_MISC_DEVICES is not set
546CONFIG_HAVE_IDE=y
547# CONFIG_IDE is not set
548
549#
550# SCSI device support
551#
552# CONFIG_RAID_ATTRS is not set
553CONFIG_SCSI=y
554CONFIG_SCSI_DMA=y
555# CONFIG_SCSI_TGT is not set
556# CONFIG_SCSI_NETLINK is not set
557CONFIG_SCSI_PROC_FS=y
558
559#
560# SCSI support type (disk, tape, CD-ROM)
561#
562CONFIG_BLK_DEV_SD=y
563# CONFIG_CHR_DEV_ST is not set
564# CONFIG_CHR_DEV_OSST is not set
565# CONFIG_BLK_DEV_SR is not set
566# CONFIG_CHR_DEV_SG is not set
567# CONFIG_CHR_DEV_SCH is not set
568
569#
570# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
571#
572# CONFIG_SCSI_MULTI_LUN is not set
573# CONFIG_SCSI_CONSTANTS is not set
574# CONFIG_SCSI_LOGGING is not set
575# CONFIG_SCSI_SCAN_ASYNC is not set
576CONFIG_SCSI_WAIT_SCAN=m
577
578#
579# SCSI Transports
580#
581# CONFIG_SCSI_SPI_ATTRS is not set
582# CONFIG_SCSI_FC_ATTRS is not set
583# CONFIG_SCSI_ISCSI_ATTRS is not set
584# CONFIG_SCSI_SAS_LIBSAS is not set
585# CONFIG_SCSI_SRP_ATTRS is not set
586CONFIG_SCSI_LOWLEVEL=y
587# CONFIG_ISCSI_TCP is not set
588# CONFIG_SCSI_DEBUG is not set
589# CONFIG_SCSI_DH is not set
590# CONFIG_ATA is not set
591# CONFIG_MD is not set
592CONFIG_NETDEVICES=y
593# CONFIG_DUMMY is not set
594# CONFIG_BONDING is not set
595# CONFIG_MACVLAN is not set
596# CONFIG_EQUALIZER is not set
597# CONFIG_TUN is not set
598# CONFIG_VETH is not set
599# CONFIG_PHYLIB is not set
600CONFIG_NET_ETHERNET=y
601CONFIG_MII=y
602# CONFIG_AX88796 is not set
603# CONFIG_SMC91X is not set
604CONFIG_DM9000=y
605CONFIG_DM9000_DEBUGLEVEL=0
606CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
607# CONFIG_SMC911X is not set
608# CONFIG_IBM_NEW_EMAC_ZMII is not set
609# CONFIG_IBM_NEW_EMAC_RGMII is not set
610# CONFIG_IBM_NEW_EMAC_TAH is not set
611# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
612# CONFIG_B44 is not set
613# CONFIG_NETDEV_1000 is not set
614# CONFIG_NETDEV_10000 is not set
615
616#
617# Wireless LAN
618#
619# CONFIG_WLAN_PRE80211 is not set
620CONFIG_WLAN_80211=y
621CONFIG_LIBERTAS=m
622# CONFIG_LIBERTAS_USB is not set
623CONFIG_LIBERTAS_SDIO=m
624# CONFIG_LIBERTAS_DEBUG is not set
625# CONFIG_USB_ZD1201 is not set
626# CONFIG_USB_NET_RNDIS_WLAN is not set
627# CONFIG_IWLWIFI_LEDS is not set
628# CONFIG_HOSTAP is not set
629
630#
631# USB Network Adapters
632#
633# CONFIG_USB_CATC is not set
634# CONFIG_USB_KAWETH is not set
635# CONFIG_USB_PEGASUS is not set
636# CONFIG_USB_RTL8150 is not set
637# CONFIG_USB_USBNET is not set
638# CONFIG_WAN is not set
639# CONFIG_PPP is not set
640# CONFIG_SLIP is not set
641# CONFIG_NETCONSOLE is not set
642# CONFIG_NETPOLL is not set
643# CONFIG_NET_POLL_CONTROLLER is not set
644# CONFIG_ISDN is not set
645
646#
647# Input device support
648#
649CONFIG_INPUT=y
650# CONFIG_INPUT_FF_MEMLESS is not set
651# CONFIG_INPUT_POLLDEV is not set
652
653#
654# Userland interfaces
655#
656CONFIG_INPUT_MOUSEDEV=y
657# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
658CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
659CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
660# CONFIG_INPUT_JOYDEV is not set
661CONFIG_INPUT_EVDEV=y
662# CONFIG_INPUT_EVBUG is not set
663
664#
665# Input Device Drivers
666#
667CONFIG_INPUT_KEYBOARD=y
668# CONFIG_KEYBOARD_ATKBD is not set
669# CONFIG_KEYBOARD_SUNKBD is not set
670# CONFIG_KEYBOARD_LKKBD is not set
671# CONFIG_KEYBOARD_XTKBD is not set
672# CONFIG_KEYBOARD_NEWTON is not set
673# CONFIG_KEYBOARD_STOWAWAY is not set
674CONFIG_KEYBOARD_PXA27x=m
675# CONFIG_KEYBOARD_GPIO is not set
676# CONFIG_INPUT_MOUSE is not set
677# CONFIG_INPUT_JOYSTICK is not set
678# CONFIG_INPUT_TABLET is not set
679CONFIG_INPUT_TOUCHSCREEN=y
680# CONFIG_TOUCHSCREEN_FUJITSU is not set
681# CONFIG_TOUCHSCREEN_GUNZE is not set
682# CONFIG_TOUCHSCREEN_ELO is not set
683# CONFIG_TOUCHSCREEN_MTOUCH is not set
684# CONFIG_TOUCHSCREEN_INEXIO is not set
685# CONFIG_TOUCHSCREEN_MK712 is not set
686# CONFIG_TOUCHSCREEN_PENMOUNT is not set
687# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
688# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
689# CONFIG_TOUCHSCREEN_UCB1400 is not set
690# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
691# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
692# CONFIG_INPUT_MISC is not set
693
694#
695# Hardware I/O ports
696#
697# CONFIG_SERIO is not set
698# CONFIG_GAMEPORT is not set
699
700#
701# Character devices
702#
703CONFIG_VT=y
704CONFIG_CONSOLE_TRANSLATIONS=y
705CONFIG_VT_CONSOLE=y
706CONFIG_HW_CONSOLE=y
707# CONFIG_VT_HW_CONSOLE_BINDING is not set
708CONFIG_DEVKMEM=y
709# CONFIG_SERIAL_NONSTANDARD is not set
710
711#
712# Serial drivers
713#
714# CONFIG_SERIAL_8250 is not set
715
716#
717# Non-8250 serial port support
718#
719CONFIG_SERIAL_PXA=y
720CONFIG_SERIAL_PXA_CONSOLE=y
721CONFIG_SERIAL_CORE=y
722CONFIG_SERIAL_CORE_CONSOLE=y
723CONFIG_UNIX98_PTYS=y
724# CONFIG_LEGACY_PTYS is not set
725# CONFIG_IPMI_HANDLER is not set
726# CONFIG_HW_RANDOM is not set
727# CONFIG_NVRAM is not set
728# CONFIG_R3964 is not set
729# CONFIG_RAW_DRIVER is not set
730# CONFIG_TCG_TPM is not set
731CONFIG_I2C=y
732CONFIG_I2C_BOARDINFO=y
733# CONFIG_I2C_CHARDEV is not set
734CONFIG_I2C_HELPER_AUTO=y
735
736#
737# I2C Hardware Bus support
738#
739
740#
741# I2C system bus drivers (mostly embedded / system-on-chip)
742#
743# CONFIG_I2C_GPIO is not set
744# CONFIG_I2C_OCORES is not set
745CONFIG_I2C_PXA=y
746# CONFIG_I2C_PXA_SLAVE is not set
747# CONFIG_I2C_SIMTEC is not set
748
749#
750# External I2C/SMBus adapter drivers
751#
752# CONFIG_I2C_PARPORT_LIGHT is not set
753# CONFIG_I2C_TAOS_EVM is not set
754# CONFIG_I2C_TINY_USB is not set
755
756#
757# Other I2C/SMBus bus drivers
758#
759# CONFIG_I2C_PCA_PLATFORM is not set
760# CONFIG_I2C_STUB is not set
761
762#
763# Miscellaneous I2C Chip support
764#
765# CONFIG_DS1682 is not set
766# CONFIG_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set
768# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set
770# CONFIG_SENSORS_PCF8591 is not set
771# CONFIG_TPS65010 is not set
772# CONFIG_SENSORS_MAX6875 is not set
773# CONFIG_SENSORS_TSL2550 is not set
774# CONFIG_I2C_DEBUG_CORE is not set
775# CONFIG_I2C_DEBUG_ALGO is not set
776# CONFIG_I2C_DEBUG_BUS is not set
777# CONFIG_I2C_DEBUG_CHIP is not set
778# CONFIG_SPI is not set
779CONFIG_ARCH_REQUIRE_GPIOLIB=y
780CONFIG_GPIOLIB=y
781# CONFIG_DEBUG_GPIO is not set
782# CONFIG_GPIO_SYSFS is not set
783
784#
785# I2C GPIO expanders:
786#
787# CONFIG_GPIO_MAX732X is not set
788CONFIG_GPIO_PCA953X=y
789# CONFIG_GPIO_PCF857X is not set
790
791#
792# PCI GPIO expanders:
793#
794
795#
796# SPI GPIO expanders:
797#
798# CONFIG_W1 is not set
799# CONFIG_POWER_SUPPLY is not set
800# CONFIG_HWMON is not set
801# CONFIG_WATCHDOG is not set
802
803#
804# Sonics Silicon Backplane
805#
806CONFIG_SSB_POSSIBLE=y
807# CONFIG_SSB is not set
808
809#
810# Multifunction device drivers
811#
812# CONFIG_MFD_CORE is not set
813# CONFIG_MFD_SM501 is not set
814# CONFIG_HTC_EGPIO is not set
815# CONFIG_HTC_PASIC3 is not set
816# CONFIG_MFD_TMIO is not set
817# CONFIG_MFD_T7L66XB is not set
818# CONFIG_MFD_TC6387XB is not set
819# CONFIG_MFD_TC6393XB is not set
820
821#
822# Multimedia devices
823#
824
825#
826# Multimedia core support
827#
828# CONFIG_VIDEO_DEV is not set
829# CONFIG_DVB_CORE is not set
830# CONFIG_VIDEO_MEDIA is not set
831
832#
833# Multimedia drivers
834#
835# CONFIG_DAB is not set
836
837#
838# Graphics support
839#
840# CONFIG_VGASTATE is not set
841# CONFIG_VIDEO_OUTPUT_CONTROL is not set
842CONFIG_FB=y
843# CONFIG_FIRMWARE_EDID is not set
844# CONFIG_FB_DDC is not set
845CONFIG_FB_CFB_FILLRECT=y
846CONFIG_FB_CFB_COPYAREA=y
847CONFIG_FB_CFB_IMAGEBLIT=y
848# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
849# CONFIG_FB_SYS_FILLRECT is not set
850# CONFIG_FB_SYS_COPYAREA is not set
851# CONFIG_FB_SYS_IMAGEBLIT is not set
852# CONFIG_FB_FOREIGN_ENDIAN is not set
853# CONFIG_FB_SYS_FOPS is not set
854# CONFIG_FB_SVGALIB is not set
855# CONFIG_FB_MACMODES is not set
856# CONFIG_FB_BACKLIGHT is not set
857# CONFIG_FB_MODE_HELPERS is not set
858# CONFIG_FB_TILEBLITTING is not set
859
860#
861# Frame buffer hardware drivers
862#
863# CONFIG_FB_S1D13XXX is not set
864CONFIG_FB_PXA=y
865# CONFIG_FB_PXA_SMARTPANEL is not set
866# CONFIG_FB_PXA_PARAMETERS is not set
867# CONFIG_FB_MBX is not set
868# CONFIG_FB_W100 is not set
869# CONFIG_FB_AM200EPD is not set
870# CONFIG_FB_VIRTUAL is not set
871# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
872
873#
874# Display device support
875#
876# CONFIG_DISPLAY_SUPPORT is not set
877
878#
879# Console display driver support
880#
881# CONFIG_VGA_CONSOLE is not set
882CONFIG_DUMMY_CONSOLE=y
883CONFIG_FRAMEBUFFER_CONSOLE=y
884CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
885# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
886CONFIG_FONTS=y
887# CONFIG_FONT_8x8 is not set
888# CONFIG_FONT_8x16 is not set
889CONFIG_FONT_6x11=y
890# CONFIG_FONT_7x14 is not set
891# CONFIG_FONT_PEARL_8x8 is not set
892# CONFIG_FONT_ACORN_8x8 is not set
893# CONFIG_FONT_MINI_4x6 is not set
894# CONFIG_FONT_SUN8x16 is not set
895# CONFIG_FONT_SUN12x22 is not set
896# CONFIG_FONT_10x18 is not set
897CONFIG_LOGO=y
898CONFIG_LOGO_LINUX_MONO=y
899CONFIG_LOGO_LINUX_VGA16=y
900CONFIG_LOGO_LINUX_CLUT224=y
901CONFIG_SOUND=m
902CONFIG_SND=m
903CONFIG_SND_TIMER=m
904CONFIG_SND_PCM=m
905# CONFIG_SND_SEQUENCER is not set
906# CONFIG_SND_MIXER_OSS is not set
907# CONFIG_SND_PCM_OSS is not set
908# CONFIG_SND_DYNAMIC_MINORS is not set
909CONFIG_SND_SUPPORT_OLD_API=y
910CONFIG_SND_VERBOSE_PROCFS=y
911# CONFIG_SND_VERBOSE_PRINTK is not set
912# CONFIG_SND_DEBUG is not set
913CONFIG_SND_DRIVERS=y
914# CONFIG_SND_DUMMY is not set
915# CONFIG_SND_MTPAV is not set
916# CONFIG_SND_SERIAL_U16550 is not set
917# CONFIG_SND_MPU401 is not set
918CONFIG_SND_ARM=y
919# CONFIG_SND_PXA2XX_AC97 is not set
920CONFIG_SND_USB=y
921# CONFIG_SND_USB_AUDIO is not set
922# CONFIG_SND_USB_CAIAQ is not set
923CONFIG_SND_SOC=m
924CONFIG_SND_PXA2XX_SOC=m
925# CONFIG_SOUND_PRIME is not set
926CONFIG_HID_SUPPORT=y
927CONFIG_HID=y
928CONFIG_HID_DEBUG=y
929# CONFIG_HIDRAW is not set
930
931#
932# USB Input Devices
933#
934CONFIG_USB_HID=y
935# CONFIG_USB_HIDINPUT_POWERBOOK is not set
936# CONFIG_HID_FF is not set
937# CONFIG_USB_HIDDEV is not set
938CONFIG_USB_SUPPORT=y
939CONFIG_USB_ARCH_HAS_HCD=y
940CONFIG_USB_ARCH_HAS_OHCI=y
941# CONFIG_USB_ARCH_HAS_EHCI is not set
942CONFIG_USB=y
943# CONFIG_USB_DEBUG is not set
944# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
945
946#
947# Miscellaneous USB options
948#
949CONFIG_USB_DEVICEFS=y
950# CONFIG_USB_DEVICE_CLASS is not set
951# CONFIG_USB_DYNAMIC_MINORS is not set
952# CONFIG_USB_SUSPEND is not set
953# CONFIG_USB_OTG is not set
954CONFIG_USB_MON=y
955
956#
957# USB Host Controller Drivers
958#
959# CONFIG_USB_C67X00_HCD is not set
960# CONFIG_USB_ISP116X_HCD is not set
961# CONFIG_USB_ISP1760_HCD is not set
962CONFIG_USB_OHCI_HCD=y
963# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
964# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
965CONFIG_USB_OHCI_LITTLE_ENDIAN=y
966# CONFIG_USB_SL811_HCD is not set
967# CONFIG_USB_R8A66597_HCD is not set
968# CONFIG_USB_MUSB_HDRC is not set
969
970#
971# USB Device Class drivers
972#
973# CONFIG_USB_ACM is not set
974# CONFIG_USB_PRINTER is not set
975# CONFIG_USB_WDM is not set
976
977#
978# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
979#
980
981#
982# may also be needed; see USB_STORAGE Help for more information
983#
984CONFIG_USB_STORAGE=y
985# CONFIG_USB_STORAGE_DEBUG is not set
986# CONFIG_USB_STORAGE_DATAFAB is not set
987# CONFIG_USB_STORAGE_FREECOM is not set
988# CONFIG_USB_STORAGE_ISD200 is not set
989# CONFIG_USB_STORAGE_DPCM is not set
990# CONFIG_USB_STORAGE_USBAT is not set
991# CONFIG_USB_STORAGE_SDDR09 is not set
992# CONFIG_USB_STORAGE_SDDR55 is not set
993# CONFIG_USB_STORAGE_JUMPSHOT is not set
994# CONFIG_USB_STORAGE_ALAUDA is not set
995# CONFIG_USB_STORAGE_ONETOUCH is not set
996# CONFIG_USB_STORAGE_KARMA is not set
997# CONFIG_USB_STORAGE_SIERRA is not set
998# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
999# CONFIG_USB_LIBUSUAL is not set
1000
1001#
1002# USB Imaging devices
1003#
1004# CONFIG_USB_MDC800 is not set
1005# CONFIG_USB_MICROTEK is not set
1006
1007#
1008# USB port drivers
1009#
1010# CONFIG_USB_SERIAL is not set
1011
1012#
1013# USB Miscellaneous drivers
1014#
1015# CONFIG_USB_EMI62 is not set
1016# CONFIG_USB_EMI26 is not set
1017# CONFIG_USB_ADUTUX is not set
1018# CONFIG_USB_RIO500 is not set
1019# CONFIG_USB_LEGOTOWER is not set
1020# CONFIG_USB_LCD is not set
1021# CONFIG_USB_BERRY_CHARGE is not set
1022# CONFIG_USB_LED is not set
1023# CONFIG_USB_CYPRESS_CY7C63 is not set
1024# CONFIG_USB_CYTHERM is not set
1025# CONFIG_USB_PHIDGET is not set
1026# CONFIG_USB_IDMOUSE is not set
1027# CONFIG_USB_FTDI_ELAN is not set
1028# CONFIG_USB_APPLEDISPLAY is not set
1029# CONFIG_USB_LD is not set
1030# CONFIG_USB_TRANCEVIBRATOR is not set
1031# CONFIG_USB_IOWARRIOR is not set
1032# CONFIG_USB_TEST is not set
1033# CONFIG_USB_ISIGHTFW is not set
1034# CONFIG_USB_GADGET is not set
1035CONFIG_MMC=m
1036# CONFIG_MMC_DEBUG is not set
1037# CONFIG_MMC_UNSAFE_RESUME is not set
1038
1039#
1040# MMC/SD Card Drivers
1041#
1042CONFIG_MMC_BLOCK=m
1043CONFIG_MMC_BLOCK_BOUNCE=y
1044# CONFIG_SDIO_UART is not set
1045# CONFIG_MMC_TEST is not set
1046
1047#
1048# MMC/SD Host Controller Drivers
1049#
1050CONFIG_MMC_PXA=m
1051# CONFIG_MMC_SDHCI is not set
1052CONFIG_NEW_LEDS=y
1053CONFIG_LEDS_CLASS=y
1054
1055#
1056# LED drivers
1057#
1058# CONFIG_LEDS_PCA9532 is not set
1059CONFIG_LEDS_GPIO=y
1060# CONFIG_LEDS_PCA955X is not set
1061
1062#
1063# LED Triggers
1064#
1065CONFIG_LEDS_TRIGGERS=y
1066# CONFIG_LEDS_TRIGGER_TIMER is not set
1067CONFIG_LEDS_TRIGGER_HEARTBEAT=y
1068# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1069CONFIG_RTC_LIB=y
1070CONFIG_RTC_CLASS=y
1071CONFIG_RTC_HCTOSYS=y
1072CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1073# CONFIG_RTC_DEBUG is not set
1074
1075#
1076# RTC interfaces
1077#
1078CONFIG_RTC_INTF_SYSFS=y
1079CONFIG_RTC_INTF_PROC=y
1080CONFIG_RTC_INTF_DEV=y
1081# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1082# CONFIG_RTC_DRV_TEST is not set
1083
1084#
1085# I2C RTC drivers
1086#
1087# CONFIG_RTC_DRV_DS1307 is not set
1088# CONFIG_RTC_DRV_DS1374 is not set
1089# CONFIG_RTC_DRV_DS1672 is not set
1090# CONFIG_RTC_DRV_MAX6900 is not set
1091# CONFIG_RTC_DRV_RS5C372 is not set
1092# CONFIG_RTC_DRV_ISL1208 is not set
1093# CONFIG_RTC_DRV_X1205 is not set
1094# CONFIG_RTC_DRV_PCF8563 is not set
1095# CONFIG_RTC_DRV_PCF8583 is not set
1096# CONFIG_RTC_DRV_M41T80 is not set
1097# CONFIG_RTC_DRV_S35390A is not set
1098# CONFIG_RTC_DRV_FM3130 is not set
1099
1100#
1101# SPI RTC drivers
1102#
1103
1104#
1105# Platform RTC drivers
1106#
1107# CONFIG_RTC_DRV_CMOS is not set
1108# CONFIG_RTC_DRV_DS1511 is not set
1109# CONFIG_RTC_DRV_DS1553 is not set
1110# CONFIG_RTC_DRV_DS1742 is not set
1111# CONFIG_RTC_DRV_STK17TA8 is not set
1112# CONFIG_RTC_DRV_M48T86 is not set
1113# CONFIG_RTC_DRV_M48T59 is not set
1114# CONFIG_RTC_DRV_V3020 is not set
1115
1116#
1117# on-CPU RTC drivers
1118#
1119CONFIG_RTC_DRV_SA1100=y
1120# CONFIG_DMADEVICES is not set
1121
1122#
1123# Voltage and Current regulators
1124#
1125# CONFIG_REGULATOR is not set
1126# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1127# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1128# CONFIG_REGULATOR_BQ24022 is not set
1129# CONFIG_UIO is not set
1130
1131#
1132# File systems
1133#
1134CONFIG_EXT2_FS=y
1135# CONFIG_EXT2_FS_XATTR is not set
1136# CONFIG_EXT2_FS_XIP is not set
1137CONFIG_EXT3_FS=y
1138# CONFIG_EXT3_FS_XATTR is not set
1139# CONFIG_EXT4DEV_FS is not set
1140CONFIG_JBD=y
1141# CONFIG_JBD_DEBUG is not set
1142# CONFIG_REISERFS_FS is not set
1143# CONFIG_JFS_FS is not set
1144CONFIG_FS_POSIX_ACL=y
1145# CONFIG_XFS_FS is not set
1146# CONFIG_OCFS2_FS is not set
1147CONFIG_DNOTIFY=y
1148CONFIG_INOTIFY=y
1149CONFIG_INOTIFY_USER=y
1150# CONFIG_QUOTA is not set
1151# CONFIG_AUTOFS_FS is not set
1152# CONFIG_AUTOFS4_FS is not set
1153# CONFIG_FUSE_FS is not set
1154
1155#
1156# CD-ROM/DVD Filesystems
1157#
1158# CONFIG_ISO9660_FS is not set
1159# CONFIG_UDF_FS is not set
1160
1161#
1162# DOS/FAT/NT Filesystems
1163#
1164CONFIG_FAT_FS=m
1165CONFIG_MSDOS_FS=m
1166CONFIG_VFAT_FS=m
1167CONFIG_FAT_DEFAULT_CODEPAGE=437
1168CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1169# CONFIG_NTFS_FS is not set
1170
1171#
1172# Pseudo filesystems
1173#
1174CONFIG_PROC_FS=y
1175CONFIG_PROC_SYSCTL=y
1176CONFIG_SYSFS=y
1177CONFIG_TMPFS=y
1178# CONFIG_TMPFS_POSIX_ACL is not set
1179# CONFIG_HUGETLB_PAGE is not set
1180# CONFIG_CONFIGFS_FS is not set
1181
1182#
1183# Miscellaneous filesystems
1184#
1185# CONFIG_ADFS_FS is not set
1186# CONFIG_AFFS_FS is not set
1187# CONFIG_HFS_FS is not set
1188# CONFIG_HFSPLUS_FS is not set
1189# CONFIG_BEFS_FS is not set
1190# CONFIG_BFS_FS is not set
1191# CONFIG_EFS_FS is not set
1192CONFIG_JFFS2_FS=y
1193CONFIG_JFFS2_FS_DEBUG=0
1194CONFIG_JFFS2_FS_WRITEBUFFER=y
1195# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1196CONFIG_JFFS2_SUMMARY=y
1197# CONFIG_JFFS2_FS_XATTR is not set
1198# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1199CONFIG_JFFS2_ZLIB=y
1200# CONFIG_JFFS2_LZO is not set
1201CONFIG_JFFS2_RTIME=y
1202# CONFIG_JFFS2_RUBIN is not set
1203# CONFIG_CRAMFS is not set
1204# CONFIG_VXFS_FS is not set
1205# CONFIG_MINIX_FS is not set
1206# CONFIG_OMFS_FS is not set
1207# CONFIG_HPFS_FS is not set
1208# CONFIG_QNX4FS_FS is not set
1209# CONFIG_ROMFS_FS is not set
1210# CONFIG_SYSV_FS is not set
1211# CONFIG_UFS_FS is not set
1212CONFIG_NETWORK_FILESYSTEMS=y
1213CONFIG_NFS_FS=y
1214CONFIG_NFS_V3=y
1215CONFIG_NFS_V3_ACL=y
1216CONFIG_NFS_V4=y
1217CONFIG_ROOT_NFS=y
1218# CONFIG_NFSD is not set
1219CONFIG_LOCKD=y
1220CONFIG_LOCKD_V4=y
1221CONFIG_NFS_ACL_SUPPORT=y
1222CONFIG_NFS_COMMON=y
1223CONFIG_SUNRPC=y
1224CONFIG_SUNRPC_GSS=y
1225CONFIG_RPCSEC_GSS_KRB5=y
1226# CONFIG_RPCSEC_GSS_SPKM3 is not set
1227CONFIG_SMB_FS=m
1228# CONFIG_SMB_NLS_DEFAULT is not set
1229CONFIG_CIFS=m
1230# CONFIG_CIFS_STATS is not set
1231CONFIG_CIFS_WEAK_PW_HASH=y
1232# CONFIG_CIFS_XATTR is not set
1233# CONFIG_CIFS_DEBUG2 is not set
1234# CONFIG_CIFS_EXPERIMENTAL is not set
1235# CONFIG_NCP_FS is not set
1236# CONFIG_CODA_FS is not set
1237# CONFIG_AFS_FS is not set
1238
1239#
1240# Partition Types
1241#
1242CONFIG_PARTITION_ADVANCED=y
1243# CONFIG_ACORN_PARTITION is not set
1244# CONFIG_OSF_PARTITION is not set
1245# CONFIG_AMIGA_PARTITION is not set
1246# CONFIG_ATARI_PARTITION is not set
1247# CONFIG_MAC_PARTITION is not set
1248CONFIG_MSDOS_PARTITION=y
1249# CONFIG_BSD_DISKLABEL is not set
1250# CONFIG_MINIX_SUBPARTITION is not set
1251# CONFIG_SOLARIS_X86_PARTITION is not set
1252# CONFIG_UNIXWARE_DISKLABEL is not set
1253# CONFIG_LDM_PARTITION is not set
1254# CONFIG_SGI_PARTITION is not set
1255# CONFIG_ULTRIX_PARTITION is not set
1256# CONFIG_SUN_PARTITION is not set
1257# CONFIG_KARMA_PARTITION is not set
1258# CONFIG_EFI_PARTITION is not set
1259# CONFIG_SYSV68_PARTITION is not set
1260CONFIG_NLS=m
1261CONFIG_NLS_DEFAULT="iso8859-1"
1262CONFIG_NLS_CODEPAGE_437=m
1263# CONFIG_NLS_CODEPAGE_737 is not set
1264# CONFIG_NLS_CODEPAGE_775 is not set
1265# CONFIG_NLS_CODEPAGE_850 is not set
1266# CONFIG_NLS_CODEPAGE_852 is not set
1267# CONFIG_NLS_CODEPAGE_855 is not set
1268# CONFIG_NLS_CODEPAGE_857 is not set
1269# CONFIG_NLS_CODEPAGE_860 is not set
1270# CONFIG_NLS_CODEPAGE_861 is not set
1271# CONFIG_NLS_CODEPAGE_862 is not set
1272# CONFIG_NLS_CODEPAGE_863 is not set
1273# CONFIG_NLS_CODEPAGE_864 is not set
1274# CONFIG_NLS_CODEPAGE_865 is not set
1275# CONFIG_NLS_CODEPAGE_866 is not set
1276# CONFIG_NLS_CODEPAGE_869 is not set
1277# CONFIG_NLS_CODEPAGE_936 is not set
1278# CONFIG_NLS_CODEPAGE_950 is not set
1279# CONFIG_NLS_CODEPAGE_932 is not set
1280# CONFIG_NLS_CODEPAGE_949 is not set
1281# CONFIG_NLS_CODEPAGE_874 is not set
1282# CONFIG_NLS_ISO8859_8 is not set
1283# CONFIG_NLS_CODEPAGE_1250 is not set
1284# CONFIG_NLS_CODEPAGE_1251 is not set
1285# CONFIG_NLS_ASCII is not set
1286CONFIG_NLS_ISO8859_1=m
1287# CONFIG_NLS_ISO8859_2 is not set
1288# CONFIG_NLS_ISO8859_3 is not set
1289# CONFIG_NLS_ISO8859_4 is not set
1290# CONFIG_NLS_ISO8859_5 is not set
1291# CONFIG_NLS_ISO8859_6 is not set
1292# CONFIG_NLS_ISO8859_7 is not set
1293# CONFIG_NLS_ISO8859_9 is not set
1294# CONFIG_NLS_ISO8859_13 is not set
1295# CONFIG_NLS_ISO8859_14 is not set
1296# CONFIG_NLS_ISO8859_15 is not set
1297# CONFIG_NLS_KOI8_R is not set
1298# CONFIG_NLS_KOI8_U is not set
1299# CONFIG_NLS_UTF8 is not set
1300# CONFIG_DLM is not set
1301
1302#
1303# Kernel hacking
1304#
1305# CONFIG_PRINTK_TIME is not set
1306CONFIG_ENABLE_WARN_DEPRECATED=y
1307CONFIG_ENABLE_MUST_CHECK=y
1308CONFIG_FRAME_WARN=1024
1309# CONFIG_MAGIC_SYSRQ is not set
1310# CONFIG_UNUSED_SYMBOLS is not set
1311CONFIG_DEBUG_FS=y
1312# CONFIG_HEADERS_CHECK is not set
1313CONFIG_DEBUG_KERNEL=y
1314# CONFIG_DEBUG_SHIRQ is not set
1315# CONFIG_DETECT_SOFTLOCKUP is not set
1316# CONFIG_SCHED_DEBUG is not set
1317# CONFIG_SCHEDSTATS is not set
1318# CONFIG_TIMER_STATS is not set
1319# CONFIG_DEBUG_OBJECTS is not set
1320# CONFIG_SLUB_DEBUG_ON is not set
1321# CONFIG_SLUB_STATS is not set
1322# CONFIG_DEBUG_RT_MUTEXES is not set
1323# CONFIG_RT_MUTEX_TESTER is not set
1324# CONFIG_DEBUG_SPINLOCK is not set
1325# CONFIG_DEBUG_MUTEXES is not set
1326# CONFIG_DEBUG_LOCK_ALLOC is not set
1327# CONFIG_PROVE_LOCKING is not set
1328# CONFIG_LOCK_STAT is not set
1329# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1330# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1331# CONFIG_DEBUG_KOBJECT is not set
1332CONFIG_DEBUG_BUGVERBOSE=y
1333# CONFIG_DEBUG_INFO is not set
1334# CONFIG_DEBUG_VM is not set
1335# CONFIG_DEBUG_WRITECOUNT is not set
1336CONFIG_DEBUG_MEMORY_INIT=y
1337# CONFIG_DEBUG_LIST is not set
1338# CONFIG_DEBUG_SG is not set
1339CONFIG_FRAME_POINTER=y
1340# CONFIG_BOOT_PRINTK_DELAY is not set
1341# CONFIG_RCU_TORTURE_TEST is not set
1342# CONFIG_BACKTRACE_SELF_TEST is not set
1343# CONFIG_FAULT_INJECTION is not set
1344# CONFIG_LATENCYTOP is not set
1345CONFIG_SYSCTL_SYSCALL_CHECK=y
1346CONFIG_HAVE_FTRACE=y
1347CONFIG_HAVE_DYNAMIC_FTRACE=y
1348# CONFIG_FTRACE is not set
1349# CONFIG_IRQSOFF_TRACER is not set
1350# CONFIG_SCHED_TRACER is not set
1351# CONFIG_CONTEXT_SWITCH_TRACER is not set
1352# CONFIG_SAMPLES is not set
1353CONFIG_HAVE_ARCH_KGDB=y
1354# CONFIG_KGDB is not set
1355CONFIG_DEBUG_USER=y
1356# CONFIG_DEBUG_ERRORS is not set
1357# CONFIG_DEBUG_STACK_USAGE is not set
1358CONFIG_DEBUG_LL=y
1359# CONFIG_DEBUG_ICEDCC is not set
1360
1361#
1362# Security options
1363#
1364# CONFIG_KEYS is not set
1365# CONFIG_SECURITY is not set
1366# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1367CONFIG_CRYPTO=y
1368
1369#
1370# Crypto core or helper
1371#
1372CONFIG_CRYPTO_ALGAPI=y
1373CONFIG_CRYPTO_BLKCIPHER=y
1374CONFIG_CRYPTO_MANAGER=y
1375# CONFIG_CRYPTO_GF128MUL is not set
1376# CONFIG_CRYPTO_NULL is not set
1377# CONFIG_CRYPTO_CRYPTD is not set
1378# CONFIG_CRYPTO_AUTHENC is not set
1379# CONFIG_CRYPTO_TEST is not set
1380
1381#
1382# Authenticated Encryption with Associated Data
1383#
1384# CONFIG_CRYPTO_CCM is not set
1385# CONFIG_CRYPTO_GCM is not set
1386# CONFIG_CRYPTO_SEQIV is not set
1387
1388#
1389# Block modes
1390#
1391CONFIG_CRYPTO_CBC=y
1392# CONFIG_CRYPTO_CTR is not set
1393# CONFIG_CRYPTO_CTS is not set
1394CONFIG_CRYPTO_ECB=m
1395# CONFIG_CRYPTO_LRW is not set
1396# CONFIG_CRYPTO_PCBC is not set
1397# CONFIG_CRYPTO_XTS is not set
1398
1399#
1400# Hash modes
1401#
1402# CONFIG_CRYPTO_HMAC is not set
1403# CONFIG_CRYPTO_XCBC is not set
1404
1405#
1406# Digest
1407#
1408# CONFIG_CRYPTO_CRC32C is not set
1409# CONFIG_CRYPTO_MD4 is not set
1410CONFIG_CRYPTO_MD5=y
1411CONFIG_CRYPTO_MICHAEL_MIC=m
1412# CONFIG_CRYPTO_RMD128 is not set
1413# CONFIG_CRYPTO_RMD160 is not set
1414# CONFIG_CRYPTO_RMD256 is not set
1415# CONFIG_CRYPTO_RMD320 is not set
1416# CONFIG_CRYPTO_SHA1 is not set
1417# CONFIG_CRYPTO_SHA256 is not set
1418# CONFIG_CRYPTO_SHA512 is not set
1419# CONFIG_CRYPTO_TGR192 is not set
1420# CONFIG_CRYPTO_WP512 is not set
1421
1422#
1423# Ciphers
1424#
1425CONFIG_CRYPTO_AES=m
1426# CONFIG_CRYPTO_ANUBIS is not set
1427CONFIG_CRYPTO_ARC4=m
1428# CONFIG_CRYPTO_BLOWFISH is not set
1429# CONFIG_CRYPTO_CAMELLIA is not set
1430# CONFIG_CRYPTO_CAST5 is not set
1431# CONFIG_CRYPTO_CAST6 is not set
1432CONFIG_CRYPTO_DES=y
1433# CONFIG_CRYPTO_FCRYPT is not set
1434# CONFIG_CRYPTO_KHAZAD is not set
1435# CONFIG_CRYPTO_SALSA20 is not set
1436# CONFIG_CRYPTO_SEED is not set
1437# CONFIG_CRYPTO_SERPENT is not set
1438# CONFIG_CRYPTO_TEA is not set
1439# CONFIG_CRYPTO_TWOFISH is not set
1440
1441#
1442# Compression
1443#
1444# CONFIG_CRYPTO_DEFLATE is not set
1445# CONFIG_CRYPTO_LZO is not set
1446# CONFIG_CRYPTO_HW is not set
1447
1448#
1449# Library routines
1450#
1451CONFIG_BITREVERSE=y
1452# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1453# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1454# CONFIG_CRC_CCITT is not set
1455# CONFIG_CRC16 is not set
1456CONFIG_CRC_T10DIF=y
1457# CONFIG_CRC_ITU_T is not set
1458CONFIG_CRC32=y
1459# CONFIG_CRC7 is not set
1460# CONFIG_LIBCRC32C is not set
1461CONFIG_ZLIB_INFLATE=y
1462CONFIG_ZLIB_DEFLATE=y
1463CONFIG_PLIST=y
1464CONFIG_HAS_IOMEM=y
1465CONFIG_HAS_IOPORT=y
1466CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/jornada720_defconfig b/arch/arm/configs/jornada720_defconfig
index 0c556289a3f4..81fadafae02d 100644
--- a/arch/arm/configs/jornada720_defconfig
+++ b/arch/arm/configs/jornada720_defconfig
@@ -1,84 +1,174 @@
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-rc1-bk2 3# Linux kernel version: 2.6.27-rc6
4# Sun Mar 27 23:10:35 2005 4# Tue Sep 16 18:56:58 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
7CONFIG_MMU=y 11CONFIG_MMU=y
8CONFIG_UID16=y 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
16CONFIG_LOCKDEP_SUPPORT=y
17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
18CONFIG_HARDIRQS_SW_RESEND=y
19CONFIG_GENERIC_IRQ_PROBE=y
9CONFIG_RWSEM_GENERIC_SPINLOCK=y 20CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_GENERIC_IOMAP=y 25CONFIG_ARCH_SUPPORTS_AOUT=y
26CONFIG_ZONE_DMA=y
27CONFIG_ARCH_MTD_XIP=y
28CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
29CONFIG_VECTORS_BASE=0xffff0000
30CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 31
13# 32#
14# Code maturity level options 33# General setup
15# 34#
16CONFIG_EXPERIMENTAL=y 35CONFIG_EXPERIMENTAL=y
17CONFIG_CLEAN_COMPILE=y
18CONFIG_BROKEN_ON_SMP=y 36CONFIG_BROKEN_ON_SMP=y
19 37CONFIG_INIT_ENV_ARG_LIMIT=32
20#
21# General setup
22#
23CONFIG_LOCALVERSION="" 38CONFIG_LOCALVERSION=""
39CONFIG_LOCALVERSION_AUTO=y
24CONFIG_SWAP=y 40CONFIG_SWAP=y
25CONFIG_SYSVIPC=y 41CONFIG_SYSVIPC=y
42CONFIG_SYSVIPC_SYSCTL=y
26# CONFIG_POSIX_MQUEUE is not set 43# CONFIG_POSIX_MQUEUE is not set
27# CONFIG_BSD_PROCESS_ACCT is not set 44# CONFIG_BSD_PROCESS_ACCT is not set
28CONFIG_SYSCTL=y 45# CONFIG_TASKSTATS is not set
29# CONFIG_AUDIT is not set 46# CONFIG_AUDIT is not set
30CONFIG_HOTPLUG=y
31CONFIG_KOBJECT_UEVENT=y
32# CONFIG_IKCONFIG is not set 47# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14
49# CONFIG_CGROUPS is not set
50# CONFIG_GROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y
52CONFIG_SYSFS_DEPRECATED_V2=y
53# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59# CONFIG_BLK_DEV_INITRD is not set
60CONFIG_CC_OPTIMIZE_FOR_SIZE=y
61CONFIG_SYSCTL=y
33# CONFIG_EMBEDDED is not set 62# CONFIG_EMBEDDED is not set
63CONFIG_UID16=y
64CONFIG_SYSCTL_SYSCALL=y
34CONFIG_KALLSYMS=y 65CONFIG_KALLSYMS=y
35# CONFIG_KALLSYMS_ALL is not set 66# CONFIG_KALLSYMS_ALL is not set
36# CONFIG_KALLSYMS_EXTRA_PASS is not set 67# CONFIG_KALLSYMS_EXTRA_PASS is not set
68CONFIG_HOTPLUG=y
69CONFIG_PRINTK=y
70CONFIG_BUG=y
71CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
37CONFIG_BASE_FULL=y 73CONFIG_BASE_FULL=y
38CONFIG_FUTEX=y 74CONFIG_FUTEX=y
75CONFIG_ANON_INODES=y
39CONFIG_EPOLL=y 76CONFIG_EPOLL=y
40CONFIG_CC_OPTIMIZE_FOR_SIZE=y 77CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
79CONFIG_EVENTFD=y
41CONFIG_SHMEM=y 80CONFIG_SHMEM=y
42CONFIG_CC_ALIGN_FUNCTIONS=0 81CONFIG_VM_EVENT_COUNTERS=y
43CONFIG_CC_ALIGN_LABELS=0 82CONFIG_SLUB_DEBUG=y
44CONFIG_CC_ALIGN_LOOPS=0 83# CONFIG_SLAB is not set
45CONFIG_CC_ALIGN_JUMPS=0 84CONFIG_SLUB=y
85# CONFIG_SLOB is not set
86# CONFIG_PROFILING is not set
87# CONFIG_MARKERS is not set
88CONFIG_HAVE_OPROFILE=y
89# CONFIG_KPROBES is not set
90# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
91# CONFIG_HAVE_IOREMAP_PROT is not set
92CONFIG_HAVE_KPROBES=y
93CONFIG_HAVE_KRETPROBES=y
94# CONFIG_HAVE_ARCH_TRACEHOOK is not set
95# CONFIG_HAVE_DMA_ATTRS is not set
96# CONFIG_USE_GENERIC_SMP_HELPERS is not set
97CONFIG_HAVE_CLK=y
98CONFIG_PROC_PAGE_MONITOR=y
99CONFIG_HAVE_GENERIC_DMA_COHERENT=y
100CONFIG_SLABINFO=y
101CONFIG_RT_MUTEXES=y
46# CONFIG_TINY_SHMEM is not set 102# CONFIG_TINY_SHMEM is not set
47CONFIG_BASE_SMALL=0 103CONFIG_BASE_SMALL=0
48
49#
50# Loadable module support
51#
52CONFIG_MODULES=y 104CONFIG_MODULES=y
105# CONFIG_MODULE_FORCE_LOAD is not set
53# CONFIG_MODULE_UNLOAD is not set 106# CONFIG_MODULE_UNLOAD is not set
54CONFIG_OBSOLETE_MODPARM=y
55# CONFIG_MODVERSIONS is not set 107# CONFIG_MODVERSIONS is not set
56# CONFIG_MODULE_SRCVERSION_ALL is not set 108# CONFIG_MODULE_SRCVERSION_ALL is not set
57CONFIG_KMOD=y 109CONFIG_KMOD=y
110CONFIG_BLOCK=y
111# CONFIG_LBD is not set
112# CONFIG_BLK_DEV_IO_TRACE is not set
113# CONFIG_LSF is not set
114# CONFIG_BLK_DEV_BSG is not set
115# CONFIG_BLK_DEV_INTEGRITY is not set
116
117#
118# IO Schedulers
119#
120CONFIG_IOSCHED_NOOP=y
121CONFIG_IOSCHED_AS=y
122CONFIG_IOSCHED_DEADLINE=y
123CONFIG_IOSCHED_CFQ=y
124# CONFIG_DEFAULT_AS is not set
125# CONFIG_DEFAULT_DEADLINE is not set
126CONFIG_DEFAULT_CFQ=y
127# CONFIG_DEFAULT_NOOP is not set
128CONFIG_DEFAULT_IOSCHED="cfq"
129CONFIG_CLASSIC_RCU=y
58 130
59# 131#
60# System Type 132# System Type
61# 133#
134# CONFIG_ARCH_AAEC2000 is not set
135# CONFIG_ARCH_INTEGRATOR is not set
136# CONFIG_ARCH_REALVIEW is not set
137# CONFIG_ARCH_VERSATILE is not set
138# CONFIG_ARCH_AT91 is not set
62# CONFIG_ARCH_CLPS7500 is not set 139# CONFIG_ARCH_CLPS7500 is not set
63# CONFIG_ARCH_CLPS711X is not set 140# CONFIG_ARCH_CLPS711X is not set
64# CONFIG_ARCH_CO285 is not set
65# CONFIG_ARCH_EBSA110 is not set 141# CONFIG_ARCH_EBSA110 is not set
142# CONFIG_ARCH_EP93XX is not set
66# CONFIG_ARCH_FOOTBRIDGE is not set 143# CONFIG_ARCH_FOOTBRIDGE is not set
67# CONFIG_ARCH_INTEGRATOR is not set 144# CONFIG_ARCH_NETX is not set
68# CONFIG_ARCH_IOP3XX is not set 145# CONFIG_ARCH_H720X is not set
69# CONFIG_ARCH_IXP4XX is not set 146# CONFIG_ARCH_IMX is not set
147# CONFIG_ARCH_IOP13XX is not set
148# CONFIG_ARCH_IOP32X is not set
149# CONFIG_ARCH_IOP33X is not set
150# CONFIG_ARCH_IXP23XX is not set
70# CONFIG_ARCH_IXP2000 is not set 151# CONFIG_ARCH_IXP2000 is not set
152# CONFIG_ARCH_IXP4XX is not set
71# CONFIG_ARCH_L7200 is not set 153# CONFIG_ARCH_L7200 is not set
154# CONFIG_ARCH_KIRKWOOD is not set
155# CONFIG_ARCH_KS8695 is not set
156# CONFIG_ARCH_NS9XXX is not set
157# CONFIG_ARCH_LOKI is not set
158# CONFIG_ARCH_MV78XX0 is not set
159# CONFIG_ARCH_MXC is not set
160# CONFIG_ARCH_ORION5X is not set
161# CONFIG_ARCH_PNX4008 is not set
72# CONFIG_ARCH_PXA is not set 162# CONFIG_ARCH_PXA is not set
73# CONFIG_ARCH_RPC is not set 163# CONFIG_ARCH_RPC is not set
74CONFIG_ARCH_SA1100=y 164CONFIG_ARCH_SA1100=y
75# CONFIG_ARCH_S3C2410 is not set 165# CONFIG_ARCH_S3C2410 is not set
76# CONFIG_ARCH_SHARK is not set 166# CONFIG_ARCH_SHARK is not set
77# CONFIG_ARCH_LH7A40X is not set 167# CONFIG_ARCH_LH7A40X is not set
168# CONFIG_ARCH_DAVINCI is not set
78# CONFIG_ARCH_OMAP is not set 169# CONFIG_ARCH_OMAP is not set
79# CONFIG_ARCH_VERSATILE is not set 170# CONFIG_ARCH_MSM7X00A is not set
80# CONFIG_ARCH_IMX is not set 171CONFIG_DMABOUNCE=y
81# CONFIG_ARCH_H720X is not set
82 172
83# 173#
84# SA11x0 Implementations 174# SA11x0 Implementations
@@ -91,12 +181,21 @@ CONFIG_ARCH_SA1100=y
91# CONFIG_SA1100_H3800 is not set 181# CONFIG_SA1100_H3800 is not set
92# CONFIG_SA1100_BADGE4 is not set 182# CONFIG_SA1100_BADGE4 is not set
93CONFIG_SA1100_JORNADA720=y 183CONFIG_SA1100_JORNADA720=y
184CONFIG_SA1100_JORNADA720_SSP=y
94# CONFIG_SA1100_HACKKIT is not set 185# CONFIG_SA1100_HACKKIT is not set
95# CONFIG_SA1100_LART is not set 186# CONFIG_SA1100_LART is not set
96# CONFIG_SA1100_PLEB is not set 187# CONFIG_SA1100_PLEB is not set
97# CONFIG_SA1100_SHANNON is not set 188# CONFIG_SA1100_SHANNON is not set
98# CONFIG_SA1100_SIMPAD is not set 189# CONFIG_SA1100_SIMPAD is not set
99# CONFIG_SA1100_SSP is not set 190CONFIG_SA1100_SSP=y
191
192#
193# Boot options
194#
195
196#
197# Power management
198#
100 199
101# 200#
102# Processor Type 201# Processor Type
@@ -105,44 +204,71 @@ CONFIG_CPU_32=y
105CONFIG_CPU_SA1100=y 204CONFIG_CPU_SA1100=y
106CONFIG_CPU_32v4=y 205CONFIG_CPU_32v4=y
107CONFIG_CPU_ABRT_EV4=y 206CONFIG_CPU_ABRT_EV4=y
207CONFIG_CPU_PABRT_NOIFAR=y
108CONFIG_CPU_CACHE_V4WB=y 208CONFIG_CPU_CACHE_V4WB=y
109CONFIG_CPU_CACHE_VIVT=y 209CONFIG_CPU_CACHE_VIVT=y
110CONFIG_CPU_TLB_V4WB=y 210CONFIG_CPU_TLB_V4WB=y
111CONFIG_CPU_MINICACHE=y 211CONFIG_CPU_CP15=y
212CONFIG_CPU_CP15_MMU=y
112 213
113# 214#
114# Processor Features 215# Processor Features
115# 216#
217# CONFIG_CPU_ICACHE_DISABLE is not set
218# CONFIG_CPU_DCACHE_DISABLE is not set
219# CONFIG_OUTER_CACHE is not set
116CONFIG_SA1111=y 220CONFIG_SA1111=y
117CONFIG_DMABOUNCE=y
118CONFIG_FORCE_MAX_ZONEORDER=9 221CONFIG_FORCE_MAX_ZONEORDER=9
119 222
120# 223#
121# Bus support 224# Bus support
122# 225#
123CONFIG_ISA=y 226CONFIG_ISA=y
124 227# CONFIG_PCI_SYSCALL is not set
125# 228# CONFIG_ARCH_SUPPORTS_MSI is not set
126# PCCARD (PCMCIA/CardBus) support
127#
128CONFIG_PCCARD=y 229CONFIG_PCCARD=y
129# CONFIG_PCMCIA_DEBUG is not set 230# CONFIG_PCMCIA_DEBUG is not set
130CONFIG_PCMCIA=y 231CONFIG_PCMCIA=y
232CONFIG_PCMCIA_LOAD_CIS=y
233CONFIG_PCMCIA_IOCTL=y
131 234
132# 235#
133# PC-card bridges 236# PC-card bridges
134# 237#
135CONFIG_I82365=y 238# CONFIG_I82365 is not set
136# CONFIG_TCIC is not set 239# CONFIG_TCIC is not set
137CONFIG_PCMCIA_SA1100=y 240CONFIG_PCMCIA_SA1100=y
138# CONFIG_PCMCIA_SA1111 is not set 241# CONFIG_PCMCIA_SA1111 is not set
139CONFIG_PCCARD_NONSTATIC=y
140 242
141# 243#
142# Kernel Features 244# Kernel Features
143# 245#
246CONFIG_TICK_ONESHOT=y
247# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
144# CONFIG_PREEMPT is not set 250# CONFIG_PREEMPT is not set
251CONFIG_HZ=100
252# CONFIG_AEABI is not set
253CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
254CONFIG_ARCH_SPARSEMEM_ENABLE=y
255CONFIG_ARCH_SELECT_MEMORY_MODEL=y
256CONFIG_NODES_SHIFT=2
257CONFIG_SELECT_MEMORY_MODEL=y
258# CONFIG_FLATMEM_MANUAL is not set
259CONFIG_DISCONTIGMEM_MANUAL=y
260# CONFIG_SPARSEMEM_MANUAL is not set
145CONFIG_DISCONTIGMEM=y 261CONFIG_DISCONTIGMEM=y
262CONFIG_FLAT_NODE_MEM_MAP=y
263CONFIG_NEED_MULTIPLE_NODES=y
264# CONFIG_SPARSEMEM_STATIC is not set
265# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
266CONFIG_PAGEFLAGS_EXTENDED=y
267CONFIG_SPLIT_PTLOCK_CPUS=4096
268# CONFIG_RESOURCES_64BIT is not set
269CONFIG_ZONE_DMA_FLAG=1
270CONFIG_BOUNCE=y
271CONFIG_VIRT_TO_BUS=y
146# CONFIG_LEDS is not set 272# CONFIG_LEDS is not set
147CONFIG_ALIGNMENT_TRAP=y 273CONFIG_ALIGNMENT_TRAP=y
148 274
@@ -151,8 +277,9 @@ CONFIG_ALIGNMENT_TRAP=y
151# 277#
152CONFIG_ZBOOT_ROM_TEXT=0x0 278CONFIG_ZBOOT_ROM_TEXT=0x0
153CONFIG_ZBOOT_ROM_BSS=0x0 279CONFIG_ZBOOT_ROM_BSS=0x0
154CONFIG_CMDLINE="keepinitrd mem=32M" 280CONFIG_CMDLINE=""
155# CONFIG_XIP_KERNEL is not set 281# CONFIG_XIP_KERNEL is not set
282# CONFIG_KEXEC is not set
156 283
157# 284#
158# CPU Frequency scaling 285# CPU Frequency scaling
@@ -174,7 +301,7 @@ CONFIG_FPE_FASTFPE=y
174# Userspace binary formats 301# Userspace binary formats
175# 302#
176CONFIG_BINFMT_ELF=y 303CONFIG_BINFMT_ELF=y
177CONFIG_BINFMT_AOUT=m 304CONFIG_BINFMT_AOUT=y
178# CONFIG_BINFMT_MISC is not set 305# CONFIG_BINFMT_MISC is not set
179# CONFIG_ARTHUR is not set 306# CONFIG_ARTHUR is not set
180 307
@@ -182,188 +309,12 @@ CONFIG_BINFMT_AOUT=m
182# Power management options 309# Power management options
183# 310#
184CONFIG_PM=y 311CONFIG_PM=y
185# CONFIG_PM_LEGACY is not set 312# CONFIG_PM_DEBUG is not set
186# CONFIG_APM is not set 313CONFIG_PM_SLEEP=y
187 314CONFIG_SUSPEND=y
188# 315CONFIG_SUSPEND_FREEZER=y
189# Device Drivers 316# CONFIG_APM_EMULATION is not set
190# 317CONFIG_ARCH_SUSPEND_POSSIBLE=y
191
192#
193# Generic Driver Options
194#
195CONFIG_STANDALONE=y
196CONFIG_PREVENT_FIRMWARE_BUILD=y
197# CONFIG_FW_LOADER is not set
198# CONFIG_DEBUG_DRIVER is not set
199
200#
201# Memory Technology Devices (MTD)
202#
203CONFIG_MTD=y
204CONFIG_MTD_DEBUG=y
205CONFIG_MTD_DEBUG_VERBOSE=1
206# CONFIG_MTD_CONCAT is not set
207CONFIG_MTD_PARTITIONS=y
208# CONFIG_MTD_REDBOOT_PARTS is not set
209# CONFIG_MTD_CMDLINE_PARTS is not set
210# CONFIG_MTD_AFS_PARTS is not set
211
212#
213# User Modules And Translation Layers
214#
215CONFIG_MTD_CHAR=m
216CONFIG_MTD_BLOCK=y
217# CONFIG_FTL is not set
218# CONFIG_NFTL is not set
219# CONFIG_INFTL is not set
220
221#
222# RAM/ROM/Flash chip drivers
223#
224CONFIG_MTD_CFI=y
225# CONFIG_MTD_JEDECPROBE is not set
226CONFIG_MTD_GEN_PROBE=y
227CONFIG_MTD_CFI_ADV_OPTIONS=y
228CONFIG_MTD_CFI_NOSWAP=y
229# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
230# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
231CONFIG_MTD_CFI_GEOMETRY=y
232CONFIG_MTD_MAP_BANK_WIDTH_1=y
233CONFIG_MTD_MAP_BANK_WIDTH_2=y
234CONFIG_MTD_MAP_BANK_WIDTH_4=y
235# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
236# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
237# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
238CONFIG_MTD_CFI_I1=y
239CONFIG_MTD_CFI_I2=y
240# CONFIG_MTD_CFI_I4 is not set
241# CONFIG_MTD_CFI_I8 is not set
242CONFIG_MTD_CFI_INTELEXT=y
243# CONFIG_MTD_CFI_AMDSTD is not set
244# CONFIG_MTD_CFI_STAA is not set
245CONFIG_MTD_CFI_UTIL=y
246# CONFIG_MTD_RAM is not set
247# CONFIG_MTD_ROM is not set
248# CONFIG_MTD_ABSENT is not set
249# CONFIG_MTD_XIP is not set
250
251#
252# Mapping drivers for chip access
253#
254# CONFIG_MTD_COMPLEX_MAPPINGS is not set
255# CONFIG_MTD_PHYSMAP is not set
256# CONFIG_MTD_ARM_INTEGRATOR is not set
257CONFIG_MTD_SA1100=y
258# CONFIG_MTD_EDB7312 is not set
259
260#
261# Self-contained MTD device drivers
262#
263# CONFIG_MTD_SLRAM is not set
264# CONFIG_MTD_PHRAM is not set
265# CONFIG_MTD_MTDRAM is not set
266# CONFIG_MTD_BLKMTD is not set
267# CONFIG_MTD_BLOCK2MTD is not set
268
269#
270# Disk-On-Chip Device Drivers
271#
272# CONFIG_MTD_DOC2000 is not set
273# CONFIG_MTD_DOC2001 is not set
274# CONFIG_MTD_DOC2001PLUS is not set
275
276#
277# NAND Flash Device Drivers
278#
279# CONFIG_MTD_NAND is not set
280
281#
282# Parallel port support
283#
284# CONFIG_PARPORT is not set
285
286#
287# Plug and Play support
288#
289# CONFIG_PNP is not set
290
291#
292# Block devices
293#
294# CONFIG_BLK_DEV_FD is not set
295# CONFIG_BLK_DEV_XD is not set
296# CONFIG_BLK_DEV_COW_COMMON is not set
297CONFIG_BLK_DEV_LOOP=m
298# CONFIG_BLK_DEV_CRYPTOLOOP is not set
299CONFIG_BLK_DEV_NBD=m
300# CONFIG_BLK_DEV_RAM is not set
301CONFIG_BLK_DEV_RAM_COUNT=16
302CONFIG_INITRAMFS_SOURCE=""
303# CONFIG_CDROM_PKTCDVD is not set
304
305#
306# IO Schedulers
307#
308CONFIG_IOSCHED_NOOP=y
309CONFIG_IOSCHED_AS=y
310CONFIG_IOSCHED_DEADLINE=y
311CONFIG_IOSCHED_CFQ=y
312# CONFIG_ATA_OVER_ETH is not set
313
314#
315# ATA/ATAPI/MFM/RLL support
316#
317CONFIG_IDE=m
318CONFIG_BLK_DEV_IDE=m
319
320#
321# Please see Documentation/ide.txt for help/info on IDE drives
322#
323# CONFIG_BLK_DEV_IDE_SATA is not set
324CONFIG_BLK_DEV_IDEDISK=m
325# CONFIG_IDEDISK_MULTI_MODE is not set
326# CONFIG_BLK_DEV_IDECS is not set
327CONFIG_BLK_DEV_IDECD=m
328# CONFIG_BLK_DEV_IDETAPE is not set
329# CONFIG_BLK_DEV_IDEFLOPPY is not set
330# CONFIG_IDE_TASK_IOCTL is not set
331
332#
333# IDE chipset support/bugfixes
334#
335CONFIG_IDE_GENERIC=m
336# CONFIG_IDE_ARM is not set
337# CONFIG_IDE_CHIPSETS is not set
338# CONFIG_BLK_DEV_IDEDMA is not set
339# CONFIG_IDEDMA_AUTO is not set
340# CONFIG_BLK_DEV_HD is not set
341
342#
343# SCSI device support
344#
345# CONFIG_SCSI is not set
346
347#
348# Multi-device support (RAID and LVM)
349#
350# CONFIG_MD is not set
351
352#
353# Fusion MPT device support
354#
355
356#
357# IEEE 1394 (FireWire) support
358#
359
360#
361# I2O device support
362#
363
364#
365# Networking support
366#
367CONFIG_NET=y 318CONFIG_NET=y
368 319
369# 320#
@@ -371,12 +322,17 @@ CONFIG_NET=y
371# 322#
372CONFIG_PACKET=y 323CONFIG_PACKET=y
373CONFIG_PACKET_MMAP=y 324CONFIG_PACKET_MMAP=y
374# CONFIG_NETLINK_DEV is not set
375CONFIG_UNIX=y 325CONFIG_UNIX=y
326CONFIG_XFRM=y
327# CONFIG_XFRM_USER is not set
328# CONFIG_XFRM_SUB_POLICY is not set
329# CONFIG_XFRM_MIGRATE is not set
330# CONFIG_XFRM_STATISTICS is not set
376# CONFIG_NET_KEY is not set 331# CONFIG_NET_KEY is not set
377CONFIG_INET=y 332CONFIG_INET=y
378CONFIG_IP_MULTICAST=y 333CONFIG_IP_MULTICAST=y
379# CONFIG_IP_ADVANCED_ROUTER is not set 334# CONFIG_IP_ADVANCED_ROUTER is not set
335CONFIG_IP_FIB_HASH=y
380# CONFIG_IP_PNP is not set 336# CONFIG_IP_PNP is not set
381# CONFIG_NET_IPIP is not set 337# CONFIG_NET_IPIP is not set
382# CONFIG_NET_IPGRE is not set 338# CONFIG_NET_IPGRE is not set
@@ -386,31 +342,42 @@ CONFIG_IP_MULTICAST=y
386# CONFIG_INET_AH is not set 342# CONFIG_INET_AH is not set
387# CONFIG_INET_ESP is not set 343# CONFIG_INET_ESP is not set
388# CONFIG_INET_IPCOMP is not set 344# CONFIG_INET_IPCOMP is not set
345# CONFIG_INET_XFRM_TUNNEL is not set
389# CONFIG_INET_TUNNEL is not set 346# CONFIG_INET_TUNNEL is not set
390# CONFIG_IP_TCPDIAG is not set 347CONFIG_INET_XFRM_MODE_TRANSPORT=y
391# CONFIG_IP_TCPDIAG_IPV6 is not set 348CONFIG_INET_XFRM_MODE_TUNNEL=y
392 349CONFIG_INET_XFRM_MODE_BEET=y
393# 350# CONFIG_INET_LRO is not set
394# IP: Virtual Server Configuration 351CONFIG_INET_DIAG=y
395# 352CONFIG_INET_TCP_DIAG=y
353# CONFIG_TCP_CONG_ADVANCED is not set
354CONFIG_TCP_CONG_CUBIC=y
355CONFIG_DEFAULT_TCP_CONG="cubic"
356# CONFIG_TCP_MD5SIG is not set
396# CONFIG_IP_VS is not set 357# CONFIG_IP_VS is not set
397# CONFIG_IPV6 is not set 358# CONFIG_IPV6 is not set
359# CONFIG_NETWORK_SECMARK is not set
398CONFIG_NETFILTER=y 360CONFIG_NETFILTER=y
399# CONFIG_NETFILTER_DEBUG is not set 361# CONFIG_NETFILTER_DEBUG is not set
362CONFIG_NETFILTER_ADVANCED=y
363
364#
365# Core Netfilter Configuration
366#
367# CONFIG_NETFILTER_NETLINK_QUEUE is not set
368# CONFIG_NETFILTER_NETLINK_LOG is not set
369# CONFIG_NF_CONNTRACK is not set
370# CONFIG_NETFILTER_XTABLES is not set
400 371
401# 372#
402# IP: Netfilter Configuration 373# IP: Netfilter Configuration
403# 374#
404# CONFIG_IP_NF_CONNTRACK is not set
405# CONFIG_IP_NF_CONNTRACK_MARK is not set
406# CONFIG_IP_NF_QUEUE is not set 375# CONFIG_IP_NF_QUEUE is not set
407# CONFIG_IP_NF_IPTABLES is not set 376# CONFIG_IP_NF_IPTABLES is not set
408# CONFIG_IP_NF_ARPTABLES is not set 377# CONFIG_IP_NF_ARPTABLES is not set
409 378# CONFIG_IP_DCCP is not set
410#
411# SCTP Configuration (EXPERIMENTAL)
412#
413# CONFIG_IP_SCTP is not set 379# CONFIG_IP_SCTP is not set
380# CONFIG_TIPC is not set
414# CONFIG_ATM is not set 381# CONFIG_ATM is not set
415# CONFIG_BRIDGE is not set 382# CONFIG_BRIDGE is not set
416# CONFIG_VLAN_8021Q is not set 383# CONFIG_VLAN_8021Q is not set
@@ -420,30 +387,22 @@ CONFIG_NETFILTER=y
420# CONFIG_ATALK is not set 387# CONFIG_ATALK is not set
421# CONFIG_X25 is not set 388# CONFIG_X25 is not set
422# CONFIG_LAPB is not set 389# CONFIG_LAPB is not set
423# CONFIG_NET_DIVERT is not set
424# CONFIG_ECONET is not set 390# CONFIG_ECONET is not set
425# CONFIG_WAN_ROUTER is not set 391# CONFIG_WAN_ROUTER is not set
426
427#
428# QoS and/or fair queueing
429#
430# CONFIG_NET_SCHED is not set 392# CONFIG_NET_SCHED is not set
431# CONFIG_NET_CLS_ROUTE is not set
432 393
433# 394#
434# Network testing 395# Network testing
435# 396#
436# CONFIG_NET_PKTGEN is not set 397# CONFIG_NET_PKTGEN is not set
437# CONFIG_NETPOLL is not set
438# CONFIG_NET_POLL_CONTROLLER is not set
439# CONFIG_HAMRADIO is not set 398# CONFIG_HAMRADIO is not set
399# CONFIG_CAN is not set
440CONFIG_IRDA=m 400CONFIG_IRDA=m
441 401
442# 402#
443# IrDA protocols 403# IrDA protocols
444# 404#
445CONFIG_IRLAN=m 405CONFIG_IRLAN=m
446# CONFIG_IRNET is not set
447CONFIG_IRCOMM=m 406CONFIG_IRCOMM=m
448# CONFIG_IRDA_ULTRA is not set 407# CONFIG_IRDA_ULTRA is not set
449 408
@@ -468,89 +427,105 @@ CONFIG_IRCOMM=m
468# 427#
469 428
470# 429#
471# Old SIR device drivers
472#
473# CONFIG_IRPORT_SIR is not set
474
475#
476# Old Serial dongle support
477#
478
479#
480# FIR device drivers 430# FIR device drivers
481# 431#
482# CONFIG_NSC_FIR is not set
483# CONFIG_WINBOND_FIR is not set
484# CONFIG_SMC_IRCC_FIR is not set
485# CONFIG_ALI_FIR is not set
486CONFIG_SA1100_FIR=m 432CONFIG_SA1100_FIR=m
487# CONFIG_BT is not set 433# CONFIG_BT is not set
488CONFIG_NETDEVICES=y 434# CONFIG_AF_RXRPC is not set
489# CONFIG_DUMMY is not set
490# CONFIG_BONDING is not set
491# CONFIG_EQUALIZER is not set
492# CONFIG_TUN is not set
493
494#
495# ARCnet devices
496#
497# CONFIG_ARCNET is not set
498
499#
500# Ethernet (10 or 100Mbit)
501#
502# CONFIG_NET_ETHERNET is not set
503CONFIG_MII=m
504 435
505# 436#
506# Ethernet (1000 Mbit) 437# Wireless
507# 438#
439# CONFIG_CFG80211 is not set
440# CONFIG_WIRELESS_EXT is not set
441# CONFIG_MAC80211 is not set
442# CONFIG_IEEE80211 is not set
443# CONFIG_RFKILL is not set
444# CONFIG_NET_9P is not set
508 445
509# 446#
510# Ethernet (10000 Mbit) 447# Device Drivers
511#
512
513#
514# Token Ring devices
515#
516# CONFIG_TR is not set
517
518#
519# Wireless LAN (non-hamradio)
520# 448#
521CONFIG_NET_RADIO=y
522 449
523# 450#
524# Obsolete Wireless cards support (pre-802.11) 451# Generic Driver Options
525# 452#
526# CONFIG_STRIP is not set 453CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
527CONFIG_ARLAN=m 454CONFIG_STANDALONE=y
528CONFIG_WAVELAN=m 455CONFIG_PREVENT_FIRMWARE_BUILD=y
529CONFIG_PCMCIA_WAVELAN=m 456CONFIG_FW_LOADER=y
530# CONFIG_PCMCIA_NETWAVE is not set 457CONFIG_FIRMWARE_IN_KERNEL=y
458CONFIG_EXTRA_FIRMWARE=""
459# CONFIG_DEBUG_DRIVER is not set
460# CONFIG_DEBUG_DEVRES is not set
461# CONFIG_SYS_HYPERVISOR is not set
462# CONFIG_CONNECTOR is not set
463# CONFIG_MTD is not set
464# CONFIG_PARPORT is not set
465# CONFIG_PNP is not set
466CONFIG_BLK_DEV=y
467# CONFIG_BLK_DEV_COW_COMMON is not set
468CONFIG_BLK_DEV_LOOP=m
469# CONFIG_BLK_DEV_CRYPTOLOOP is not set
470CONFIG_BLK_DEV_NBD=m
471# CONFIG_BLK_DEV_RAM is not set
472# CONFIG_CDROM_PKTCDVD is not set
473# CONFIG_ATA_OVER_ETH is not set
474CONFIG_MISC_DEVICES=y
475# CONFIG_EEPROM_93CX6 is not set
476# CONFIG_ENCLOSURE_SERVICES is not set
477CONFIG_HAVE_IDE=y
478CONFIG_IDE=y
479CONFIG_BLK_DEV_IDE=y
531 480
532# 481#
533# Wireless 802.11 Frequency Hopping cards support 482# Please see Documentation/ide/ide.txt for help/info on IDE drives
534# 483#
535# CONFIG_PCMCIA_RAYCS is not set 484# CONFIG_BLK_DEV_IDE_SATA is not set
485CONFIG_BLK_DEV_IDEDISK=y
486# CONFIG_IDEDISK_MULTI_MODE is not set
487CONFIG_BLK_DEV_IDECS=y
488# CONFIG_BLK_DEV_IDECD is not set
489# CONFIG_BLK_DEV_IDETAPE is not set
490# CONFIG_BLK_DEV_IDEFLOPPY is not set
491# CONFIG_IDE_TASK_IOCTL is not set
492CONFIG_IDE_PROC_FS=y
536 493
537# 494#
538# Wireless 802.11b ISA/PCI cards support 495# IDE chipset support/bugfixes
539# 496#
540CONFIG_HERMES=m 497# CONFIG_BLK_DEV_PLATFORM is not set
541# CONFIG_ATMEL is not set 498# CONFIG_BLK_DEV_IDEDMA is not set
542 499
543# 500#
544# Wireless 802.11b Pcmcia/Cardbus cards support 501# SCSI device support
545# 502#
546CONFIG_PCMCIA_HERMES=m 503# CONFIG_RAID_ATTRS is not set
547CONFIG_AIRO_CS=m 504# CONFIG_SCSI is not set
548# CONFIG_PCMCIA_WL3501 is not set 505# CONFIG_SCSI_DMA is not set
549CONFIG_NET_WIRELESS=y 506# CONFIG_SCSI_NETLINK is not set
507# CONFIG_ATA is not set
508# CONFIG_MD is not set
509CONFIG_NETDEVICES=y
510CONFIG_DUMMY=y
511# CONFIG_BONDING is not set
512# CONFIG_MACVLAN is not set
513# CONFIG_EQUALIZER is not set
514# CONFIG_TUN is not set
515# CONFIG_VETH is not set
516# CONFIG_ARCNET is not set
517# CONFIG_NET_ETHERNET is not set
518CONFIG_MII=m
519# CONFIG_NETDEV_1000 is not set
520# CONFIG_NETDEV_10000 is not set
521# CONFIG_TR is not set
550 522
551# 523#
552# PCMCIA network device support 524# Wireless LAN
553# 525#
526# CONFIG_WLAN_PRE80211 is not set
527# CONFIG_WLAN_80211 is not set
528# CONFIG_IWLWIFI_LEDS is not set
554CONFIG_NET_PCMCIA=y 529CONFIG_NET_PCMCIA=y
555CONFIG_PCMCIA_3C589=m 530CONFIG_PCMCIA_3C589=m
556CONFIG_PCMCIA_3C574=m 531CONFIG_PCMCIA_3C574=m
@@ -560,32 +535,20 @@ CONFIG_PCMCIA_NMCLAN=m
560CONFIG_PCMCIA_SMC91C92=m 535CONFIG_PCMCIA_SMC91C92=m
561CONFIG_PCMCIA_XIRC2PS=m 536CONFIG_PCMCIA_XIRC2PS=m
562CONFIG_PCMCIA_AXNET=m 537CONFIG_PCMCIA_AXNET=m
563
564#
565# Wan interfaces
566#
567# CONFIG_WAN is not set 538# CONFIG_WAN is not set
568CONFIG_PPP=m 539# CONFIG_PPP is not set
569# CONFIG_PPP_MULTILINK is not set
570# CONFIG_PPP_FILTER is not set
571CONFIG_PPP_ASYNC=m
572# CONFIG_PPP_SYNC_TTY is not set
573CONFIG_PPP_DEFLATE=m
574CONFIG_PPP_BSDCOMP=m
575# CONFIG_PPPOE is not set
576# CONFIG_SLIP is not set 540# CONFIG_SLIP is not set
577# CONFIG_SHAPER is not set
578# CONFIG_NETCONSOLE is not set 541# CONFIG_NETCONSOLE is not set
579 542# CONFIG_NETPOLL is not set
580# 543# CONFIG_NET_POLL_CONTROLLER is not set
581# ISDN subsystem
582#
583# CONFIG_ISDN is not set 544# CONFIG_ISDN is not set
584 545
585# 546#
586# Input device support 547# Input device support
587# 548#
588CONFIG_INPUT=y 549CONFIG_INPUT=y
550# CONFIG_INPUT_FF_MEMLESS is not set
551# CONFIG_INPUT_POLLDEV is not set
589 552
590# 553#
591# Userland interfaces 554# Userland interfaces
@@ -595,7 +558,6 @@ CONFIG_INPUT_MOUSEDEV_PSAUX=y
595CONFIG_INPUT_MOUSEDEV_SCREEN_X=640 558CONFIG_INPUT_MOUSEDEV_SCREEN_X=640
596CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 559CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
597# CONFIG_INPUT_JOYDEV is not set 560# CONFIG_INPUT_JOYDEV is not set
598# CONFIG_INPUT_TSDEV is not set
599# CONFIG_INPUT_EVDEV is not set 561# CONFIG_INPUT_EVDEV is not set
600# CONFIG_INPUT_EVBUG is not set 562# CONFIG_INPUT_EVBUG is not set
601 563
@@ -603,20 +565,31 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
603# Input Device Drivers 565# Input Device Drivers
604# 566#
605CONFIG_INPUT_KEYBOARD=y 567CONFIG_INPUT_KEYBOARD=y
606CONFIG_KEYBOARD_ATKBD=y 568# CONFIG_KEYBOARD_ATKBD is not set
607# CONFIG_KEYBOARD_SUNKBD is not set 569# CONFIG_KEYBOARD_SUNKBD is not set
608# CONFIG_KEYBOARD_LKKBD is not set 570# CONFIG_KEYBOARD_LKKBD is not set
609# CONFIG_KEYBOARD_XTKBD is not set 571# CONFIG_KEYBOARD_XTKBD is not set
610# CONFIG_KEYBOARD_NEWTON is not set 572# CONFIG_KEYBOARD_NEWTON is not set
611CONFIG_INPUT_MOUSE=y 573# CONFIG_KEYBOARD_STOWAWAY is not set
612CONFIG_MOUSE_PS2=y 574CONFIG_KEYBOARD_HP7XX=y
613# CONFIG_MOUSE_SERIAL is not set 575# CONFIG_KEYBOARD_GPIO is not set
614# CONFIG_MOUSE_INPORT is not set 576# CONFIG_INPUT_MOUSE is not set
615# CONFIG_MOUSE_LOGIBM is not set
616# CONFIG_MOUSE_PC110PAD is not set
617# CONFIG_MOUSE_VSXXXAA is not set
618# CONFIG_INPUT_JOYSTICK is not set 577# CONFIG_INPUT_JOYSTICK is not set
619# CONFIG_INPUT_TOUCHSCREEN is not set 578# CONFIG_INPUT_TABLET is not set
579CONFIG_INPUT_TOUCHSCREEN=y
580# CONFIG_TOUCHSCREEN_FUJITSU is not set
581# CONFIG_TOUCHSCREEN_GUNZE is not set
582# CONFIG_TOUCHSCREEN_ELO is not set
583# CONFIG_TOUCHSCREEN_MTOUCH is not set
584# CONFIG_TOUCHSCREEN_INEXIO is not set
585# CONFIG_TOUCHSCREEN_MK712 is not set
586CONFIG_TOUCHSCREEN_HP7XX=y
587# CONFIG_TOUCHSCREEN_HTCPEN is not set
588# CONFIG_TOUCHSCREEN_PENMOUNT is not set
589# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
590# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
591# CONFIG_TOUCHSCREEN_UCB1400 is not set
592# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
620# CONFIG_INPUT_MISC is not set 593# CONFIG_INPUT_MISC is not set
621 594
622# 595#
@@ -625,17 +598,18 @@ CONFIG_MOUSE_PS2=y
625CONFIG_SERIO=y 598CONFIG_SERIO=y
626CONFIG_SERIO_SERPORT=y 599CONFIG_SERIO_SERPORT=y
627# CONFIG_SERIO_SA1111 is not set 600# CONFIG_SERIO_SA1111 is not set
628CONFIG_SERIO_LIBPS2=y
629# CONFIG_SERIO_RAW is not set 601# CONFIG_SERIO_RAW is not set
630# CONFIG_GAMEPORT is not set 602# CONFIG_GAMEPORT is not set
631CONFIG_SOUND_GAMEPORT=y
632 603
633# 604#
634# Character devices 605# Character devices
635# 606#
636CONFIG_VT=y 607CONFIG_VT=y
608CONFIG_CONSOLE_TRANSLATIONS=y
637CONFIG_VT_CONSOLE=y 609CONFIG_VT_CONSOLE=y
638CONFIG_HW_CONSOLE=y 610CONFIG_HW_CONSOLE=y
611# CONFIG_VT_HW_CONSOLE_BINDING is not set
612CONFIG_DEVKMEM=y
639# CONFIG_SERIAL_NONSTANDARD is not set 613# CONFIG_SERIAL_NONSTANDARD is not set
640 614
641# 615#
@@ -652,69 +626,120 @@ CONFIG_SERIAL_CORE=y
652CONFIG_SERIAL_CORE_CONSOLE=y 626CONFIG_SERIAL_CORE_CONSOLE=y
653CONFIG_UNIX98_PTYS=y 627CONFIG_UNIX98_PTYS=y
654CONFIG_LEGACY_PTYS=y 628CONFIG_LEGACY_PTYS=y
655CONFIG_LEGACY_PTY_COUNT=256 629CONFIG_LEGACY_PTY_COUNT=32
630# CONFIG_IPMI_HANDLER is not set
631CONFIG_HW_RANDOM=m
632# CONFIG_NVRAM is not set
633# CONFIG_DTLK is not set
634# CONFIG_R3964 is not set
656 635
657# 636#
658# IPMI 637# PCMCIA character devices
659# 638#
660# CONFIG_IPMI_HANDLER is not set 639# CONFIG_SYNCLINK_CS is not set
640# CONFIG_CARDMAN_4000 is not set
641# CONFIG_CARDMAN_4040 is not set
642# CONFIG_IPWIRELESS is not set
643# CONFIG_RAW_DRIVER is not set
644# CONFIG_TCG_TPM is not set
645CONFIG_DEVPORT=y
646# CONFIG_I2C is not set
647# CONFIG_SPI is not set
648CONFIG_ARCH_REQUIRE_GPIOLIB=y
649CONFIG_GPIOLIB=y
650# CONFIG_DEBUG_GPIO is not set
651# CONFIG_GPIO_SYSFS is not set
661 652
662# 653#
663# Watchdog Cards 654# I2C GPIO expanders:
664# 655#
665# CONFIG_WATCHDOG is not set
666# CONFIG_NVRAM is not set
667# CONFIG_RTC is not set
668# CONFIG_DTLK is not set
669# CONFIG_R3964 is not set
670 656
671# 657#
672# Ftape, the floppy tape device driver 658# PCI GPIO expanders:
673# 659#
674# CONFIG_DRM is not set
675 660
676# 661#
677# PCMCIA character devices 662# SPI GPIO expanders:
678# 663#
679# CONFIG_SYNCLINK_CS is not set 664# CONFIG_W1 is not set
680# CONFIG_RAW_DRIVER is not set 665# CONFIG_POWER_SUPPLY is not set
666# CONFIG_HWMON is not set
667# CONFIG_WATCHDOG is not set
681 668
682# 669#
683# TPM devices 670# Sonics Silicon Backplane
684# 671#
685# CONFIG_TCG_TPM is not set 672CONFIG_SSB_POSSIBLE=y
673# CONFIG_SSB is not set
686 674
687# 675#
688# I2C support 676# Multifunction device drivers
689# 677#
690# CONFIG_I2C is not set 678# CONFIG_MFD_CORE is not set
679# CONFIG_MFD_SM501 is not set
680# CONFIG_HTC_EGPIO is not set
681# CONFIG_HTC_PASIC3 is not set
682# CONFIG_MFD_TMIO is not set
683# CONFIG_MFD_T7L66XB is not set
684# CONFIG_MFD_TC6387XB is not set
685# CONFIG_MFD_TC6393XB is not set
691 686
692# 687#
693# Misc devices 688# Multimedia Capabilities Port drivers
694# 689#
690# CONFIG_MCP_SA11X0 is not set
695 691
696# 692#
697# Multimedia devices 693# Multimedia devices
698# 694#
695
696#
697# Multimedia core support
698#
699# CONFIG_VIDEO_DEV is not set 699# CONFIG_VIDEO_DEV is not set
700# CONFIG_DVB_CORE is not set
701# CONFIG_VIDEO_MEDIA is not set
700 702
701# 703#
702# Digital Video Broadcasting Devices 704# Multimedia drivers
703# 705#
704# CONFIG_DVB is not set 706# CONFIG_DAB is not set
705 707
706# 708#
707# Graphics support 709# Graphics support
708# 710#
711# CONFIG_VGASTATE is not set
712# CONFIG_VIDEO_OUTPUT_CONTROL is not set
709CONFIG_FB=y 713CONFIG_FB=y
710# CONFIG_FB_CFB_FILLRECT is not set 714# CONFIG_FIRMWARE_EDID is not set
711# CONFIG_FB_CFB_COPYAREA is not set 715# CONFIG_FB_DDC is not set
712# CONFIG_FB_CFB_IMAGEBLIT is not set 716CONFIG_FB_CFB_FILLRECT=y
713# CONFIG_FB_SOFT_CURSOR is not set 717CONFIG_FB_CFB_COPYAREA=y
718CONFIG_FB_CFB_IMAGEBLIT=y
719# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
720# CONFIG_FB_SYS_FILLRECT is not set
721# CONFIG_FB_SYS_COPYAREA is not set
722# CONFIG_FB_SYS_IMAGEBLIT is not set
723# CONFIG_FB_FOREIGN_ENDIAN is not set
724# CONFIG_FB_SYS_FOPS is not set
725# CONFIG_FB_SVGALIB is not set
726# CONFIG_FB_MACMODES is not set
727# CONFIG_FB_BACKLIGHT is not set
714# CONFIG_FB_MODE_HELPERS is not set 728# CONFIG_FB_MODE_HELPERS is not set
715# CONFIG_FB_TILEBLITTING is not set 729# CONFIG_FB_TILEBLITTING is not set
730
731#
732# Frame buffer hardware drivers
733#
716# CONFIG_FB_SA1100 is not set 734# CONFIG_FB_SA1100 is not set
735CONFIG_FB_S1D13XXX=y
717# CONFIG_FB_VIRTUAL is not set 736# CONFIG_FB_VIRTUAL is not set
737# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
738
739#
740# Display device support
741#
742# CONFIG_DISPLAY_SUPPORT is not set
718 743
719# 744#
720# Console display driver support 745# Console display driver support
@@ -722,94 +747,110 @@ CONFIG_FB=y
722# CONFIG_VGA_CONSOLE is not set 747# CONFIG_VGA_CONSOLE is not set
723# CONFIG_MDA_CONSOLE is not set 748# CONFIG_MDA_CONSOLE is not set
724CONFIG_DUMMY_CONSOLE=y 749CONFIG_DUMMY_CONSOLE=y
725# CONFIG_FRAMEBUFFER_CONSOLE is not set 750CONFIG_FRAMEBUFFER_CONSOLE=y
726 751CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
727# 752# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
728# Logo configuration 753# CONFIG_FONTS is not set
729# 754CONFIG_FONT_8x8=y
755CONFIG_FONT_8x16=y
730# CONFIG_LOGO is not set 756# CONFIG_LOGO is not set
731# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 757# CONFIG_SOUND is not set
732 758# CONFIG_HID_SUPPORT is not set
733# 759# CONFIG_USB_SUPPORT is not set
734# Sound 760# CONFIG_MMC is not set
735# 761# CONFIG_NEW_LEDS is not set
736CONFIG_SOUND=m 762CONFIG_RTC_LIB=y
763CONFIG_RTC_CLASS=y
764CONFIG_RTC_HCTOSYS=y
765CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
766# CONFIG_RTC_DEBUG is not set
737 767
738# 768#
739# Advanced Linux Sound Architecture 769# RTC interfaces
740# 770#
741# CONFIG_SND is not set 771CONFIG_RTC_INTF_SYSFS=y
772CONFIG_RTC_INTF_PROC=y
773CONFIG_RTC_INTF_DEV=y
774# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
775# CONFIG_RTC_DRV_TEST is not set
742 776
743# 777#
744# Open Sound System 778# SPI RTC drivers
745# 779#
746# CONFIG_SOUND_PRIME is not set
747 780
748# 781#
749# USB support 782# Platform RTC drivers
750# 783#
751CONFIG_USB_ARCH_HAS_HCD=y 784# CONFIG_RTC_DRV_CMOS is not set
752CONFIG_USB_ARCH_HAS_OHCI=y 785# CONFIG_RTC_DRV_DS1511 is not set
753# CONFIG_USB is not set 786# CONFIG_RTC_DRV_DS1553 is not set
787# CONFIG_RTC_DRV_DS1742 is not set
788# CONFIG_RTC_DRV_STK17TA8 is not set
789# CONFIG_RTC_DRV_M48T86 is not set
790# CONFIG_RTC_DRV_M48T59 is not set
791# CONFIG_RTC_DRV_V3020 is not set
754 792
755# 793#
756# USB Gadget Support 794# on-CPU RTC drivers
757# 795#
758# CONFIG_USB_GADGET is not set 796CONFIG_RTC_DRV_SA1100=y
797# CONFIG_DMADEVICES is not set
759 798
760# 799#
761# MMC/SD Card support 800# Voltage and Current regulators
762# 801#
763# CONFIG_MMC is not set 802# CONFIG_REGULATOR is not set
803# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
804# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
805# CONFIG_REGULATOR_BQ24022 is not set
806# CONFIG_UIO is not set
764 807
765# 808#
766# File systems 809# File systems
767# 810#
768CONFIG_EXT2_FS=y 811CONFIG_EXT2_FS=y
769# CONFIG_EXT2_FS_XATTR is not set 812# CONFIG_EXT2_FS_XATTR is not set
813# CONFIG_EXT2_FS_XIP is not set
770# CONFIG_EXT3_FS is not set 814# CONFIG_EXT3_FS is not set
771# CONFIG_JBD is not set 815# CONFIG_EXT4DEV_FS is not set
772# CONFIG_REISERFS_FS is not set 816# CONFIG_REISERFS_FS is not set
773# CONFIG_JFS_FS is not set 817# CONFIG_JFS_FS is not set
774 818# CONFIG_FS_POSIX_ACL is not set
775#
776# XFS support
777#
778# CONFIG_XFS_FS is not set 819# CONFIG_XFS_FS is not set
779# CONFIG_MINIX_FS is not set 820# CONFIG_OCFS2_FS is not set
780# CONFIG_ROMFS_FS is not set
781# CONFIG_QUOTA is not set
782CONFIG_DNOTIFY=y 821CONFIG_DNOTIFY=y
822CONFIG_INOTIFY=y
823CONFIG_INOTIFY_USER=y
824# CONFIG_QUOTA is not set
783# CONFIG_AUTOFS_FS is not set 825# CONFIG_AUTOFS_FS is not set
784# CONFIG_AUTOFS4_FS is not set 826# CONFIG_AUTOFS4_FS is not set
827# CONFIG_FUSE_FS is not set
785 828
786# 829#
787# CD-ROM/DVD Filesystems 830# CD-ROM/DVD Filesystems
788# 831#
789CONFIG_ISO9660_FS=m 832# CONFIG_ISO9660_FS is not set
790# CONFIG_JOLIET is not set
791# CONFIG_ZISOFS is not set
792# CONFIG_UDF_FS is not set 833# CONFIG_UDF_FS is not set
793 834
794# 835#
795# DOS/FAT/NT Filesystems 836# DOS/FAT/NT Filesystems
796# 837#
797# CONFIG_MSDOS_FS is not set 838CONFIG_FAT_FS=y
798# CONFIG_VFAT_FS is not set 839CONFIG_MSDOS_FS=y
840CONFIG_VFAT_FS=y
841CONFIG_FAT_DEFAULT_CODEPAGE=437
842CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
799# CONFIG_NTFS_FS is not set 843# CONFIG_NTFS_FS is not set
800 844
801# 845#
802# Pseudo filesystems 846# Pseudo filesystems
803# 847#
804CONFIG_PROC_FS=y 848CONFIG_PROC_FS=y
849CONFIG_PROC_SYSCTL=y
805CONFIG_SYSFS=y 850CONFIG_SYSFS=y
806CONFIG_DEVFS_FS=y
807CONFIG_DEVFS_MOUNT=y
808CONFIG_DEVFS_DEBUG=y
809# CONFIG_DEVPTS_FS_XATTR is not set
810# CONFIG_TMPFS is not set 851# CONFIG_TMPFS is not set
811# CONFIG_HUGETLB_PAGE is not set 852# CONFIG_HUGETLB_PAGE is not set
812CONFIG_RAMFS=y 853# CONFIG_CONFIGFS_FS is not set
813 854
814# 855#
815# Miscellaneous filesystems 856# Miscellaneous filesystems
@@ -821,75 +862,122 @@ CONFIG_RAMFS=y
821# CONFIG_BEFS_FS is not set 862# CONFIG_BEFS_FS is not set
822# CONFIG_BFS_FS is not set 863# CONFIG_BFS_FS is not set
823# CONFIG_EFS_FS is not set 864# CONFIG_EFS_FS is not set
824# CONFIG_JFFS_FS is not set
825CONFIG_JFFS2_FS=y
826CONFIG_JFFS2_FS_DEBUG=2
827# CONFIG_JFFS2_FS_NAND is not set
828# CONFIG_JFFS2_FS_NOR_ECC is not set
829# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
830CONFIG_JFFS2_ZLIB=y
831CONFIG_JFFS2_RTIME=y
832# CONFIG_JFFS2_RUBIN is not set
833# CONFIG_CRAMFS is not set 865# CONFIG_CRAMFS is not set
834# CONFIG_VXFS_FS is not set 866# CONFIG_VXFS_FS is not set
867# CONFIG_MINIX_FS is not set
868# CONFIG_OMFS_FS is not set
835# CONFIG_HPFS_FS is not set 869# CONFIG_HPFS_FS is not set
836# CONFIG_QNX4FS_FS is not set 870# CONFIG_QNX4FS_FS is not set
871# CONFIG_ROMFS_FS is not set
837# CONFIG_SYSV_FS is not set 872# CONFIG_SYSV_FS is not set
838# CONFIG_UFS_FS is not set 873# CONFIG_UFS_FS is not set
839 874# CONFIG_NETWORK_FILESYSTEMS is not set
840#
841# Network File Systems
842#
843CONFIG_NFS_FS=m
844CONFIG_NFS_V3=y
845# CONFIG_NFS_V4 is not set
846# CONFIG_NFS_DIRECTIO is not set
847# CONFIG_NFSD is not set
848CONFIG_LOCKD=m
849CONFIG_LOCKD_V4=y
850CONFIG_SUNRPC=m
851# CONFIG_RPCSEC_GSS_KRB5 is not set
852# CONFIG_RPCSEC_GSS_SPKM3 is not set
853# CONFIG_SMB_FS is not set
854# CONFIG_CIFS is not set
855# CONFIG_NCP_FS is not set
856# CONFIG_CODA_FS is not set
857# CONFIG_AFS_FS is not set
858 875
859# 876#
860# Partition Types 877# Partition Types
861# 878#
862# CONFIG_PARTITION_ADVANCED is not set 879# CONFIG_PARTITION_ADVANCED is not set
863CONFIG_MSDOS_PARTITION=y 880CONFIG_MSDOS_PARTITION=y
864 881CONFIG_NLS=y
865# 882CONFIG_NLS_DEFAULT="iso8859-1"
866# Native Language Support 883CONFIG_NLS_CODEPAGE_437=m
867# 884CONFIG_NLS_CODEPAGE_737=m
868# CONFIG_NLS is not set 885CONFIG_NLS_CODEPAGE_775=m
869 886CONFIG_NLS_CODEPAGE_850=m
870# 887CONFIG_NLS_CODEPAGE_852=m
871# Profiling support 888CONFIG_NLS_CODEPAGE_855=m
872# 889CONFIG_NLS_CODEPAGE_857=m
873# CONFIG_PROFILING is not set 890CONFIG_NLS_CODEPAGE_860=m
891CONFIG_NLS_CODEPAGE_861=m
892CONFIG_NLS_CODEPAGE_862=m
893CONFIG_NLS_CODEPAGE_863=m
894CONFIG_NLS_CODEPAGE_864=m
895CONFIG_NLS_CODEPAGE_865=m
896CONFIG_NLS_CODEPAGE_866=m
897CONFIG_NLS_CODEPAGE_869=m
898CONFIG_NLS_CODEPAGE_936=m
899CONFIG_NLS_CODEPAGE_950=m
900CONFIG_NLS_CODEPAGE_932=m
901CONFIG_NLS_CODEPAGE_949=m
902CONFIG_NLS_CODEPAGE_874=m
903CONFIG_NLS_ISO8859_8=m
904CONFIG_NLS_CODEPAGE_1250=m
905CONFIG_NLS_CODEPAGE_1251=m
906CONFIG_NLS_ASCII=m
907CONFIG_NLS_ISO8859_1=m
908CONFIG_NLS_ISO8859_2=m
909CONFIG_NLS_ISO8859_3=m
910CONFIG_NLS_ISO8859_4=m
911CONFIG_NLS_ISO8859_5=m
912CONFIG_NLS_ISO8859_6=m
913CONFIG_NLS_ISO8859_7=m
914CONFIG_NLS_ISO8859_9=m
915CONFIG_NLS_ISO8859_13=m
916CONFIG_NLS_ISO8859_14=m
917CONFIG_NLS_ISO8859_15=m
918CONFIG_NLS_KOI8_R=m
919CONFIG_NLS_KOI8_U=m
920CONFIG_NLS_UTF8=m
921# CONFIG_DLM is not set
874 922
875# 923#
876# Kernel hacking 924# Kernel hacking
877# 925#
878# CONFIG_PRINTK_TIME is not set 926# CONFIG_PRINTK_TIME is not set
879CONFIG_DEBUG_KERNEL=y 927CONFIG_ENABLE_WARN_DEPRECATED=y
928CONFIG_ENABLE_MUST_CHECK=y
929CONFIG_FRAME_WARN=1024
880# CONFIG_MAGIC_SYSRQ is not set 930# CONFIG_MAGIC_SYSRQ is not set
881CONFIG_LOG_BUF_SHIFT=14 931# CONFIG_UNUSED_SYMBOLS is not set
932# CONFIG_DEBUG_FS is not set
933# CONFIG_HEADERS_CHECK is not set
934CONFIG_DEBUG_KERNEL=y
935# CONFIG_DEBUG_SHIRQ is not set
936CONFIG_DETECT_SOFTLOCKUP=y
937# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
938CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
939CONFIG_SCHED_DEBUG=y
882# CONFIG_SCHEDSTATS is not set 940# CONFIG_SCHEDSTATS is not set
883CONFIG_DEBUG_SLAB=y 941# CONFIG_TIMER_STATS is not set
942# CONFIG_DEBUG_OBJECTS is not set
943# CONFIG_SLUB_DEBUG_ON is not set
944# CONFIG_SLUB_STATS is not set
945# CONFIG_DEBUG_RT_MUTEXES is not set
946# CONFIG_RT_MUTEX_TESTER is not set
884# CONFIG_DEBUG_SPINLOCK is not set 947# CONFIG_DEBUG_SPINLOCK is not set
948# CONFIG_DEBUG_MUTEXES is not set
949# CONFIG_DEBUG_LOCK_ALLOC is not set
950# CONFIG_PROVE_LOCKING is not set
951# CONFIG_LOCK_STAT is not set
885# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 952# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
953# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
886# CONFIG_DEBUG_KOBJECT is not set 954# CONFIG_DEBUG_KOBJECT is not set
887CONFIG_DEBUG_BUGVERBOSE=y 955CONFIG_DEBUG_BUGVERBOSE=y
888# CONFIG_DEBUG_INFO is not set 956# CONFIG_DEBUG_INFO is not set
889# CONFIG_DEBUG_FS is not set 957# CONFIG_DEBUG_VM is not set
958# CONFIG_DEBUG_WRITECOUNT is not set
959CONFIG_DEBUG_MEMORY_INIT=y
960# CONFIG_DEBUG_LIST is not set
961# CONFIG_DEBUG_SG is not set
890CONFIG_FRAME_POINTER=y 962CONFIG_FRAME_POINTER=y
963# CONFIG_BOOT_PRINTK_DELAY is not set
964# CONFIG_RCU_TORTURE_TEST is not set
965# CONFIG_BACKTRACE_SELF_TEST is not set
966# CONFIG_FAULT_INJECTION is not set
967# CONFIG_LATENCYTOP is not set
968# CONFIG_SYSCTL_SYSCALL_CHECK is not set
969CONFIG_HAVE_FTRACE=y
970CONFIG_HAVE_DYNAMIC_FTRACE=y
971# CONFIG_FTRACE is not set
972# CONFIG_IRQSOFF_TRACER is not set
973# CONFIG_SCHED_TRACER is not set
974# CONFIG_CONTEXT_SWITCH_TRACER is not set
975# CONFIG_SAMPLES is not set
976CONFIG_HAVE_ARCH_KGDB=y
977# CONFIG_KGDB is not set
891# CONFIG_DEBUG_USER is not set 978# CONFIG_DEBUG_USER is not set
892CONFIG_DEBUG_ERRORS=y 979CONFIG_DEBUG_ERRORS=y
980# CONFIG_DEBUG_STACK_USAGE is not set
893CONFIG_DEBUG_LL=y 981CONFIG_DEBUG_LL=y
894# CONFIG_DEBUG_ICEDCC is not set 982# CONFIG_DEBUG_ICEDCC is not set
895 983
@@ -898,21 +986,100 @@ CONFIG_DEBUG_LL=y
898# 986#
899# CONFIG_KEYS is not set 987# CONFIG_KEYS is not set
900# CONFIG_SECURITY is not set 988# CONFIG_SECURITY is not set
989# CONFIG_SECURITY_FILE_CAPABILITIES is not set
990CONFIG_CRYPTO=y
991
992#
993# Crypto core or helper
994#
995# CONFIG_CRYPTO_MANAGER is not set
996# CONFIG_CRYPTO_GF128MUL is not set
997# CONFIG_CRYPTO_NULL is not set
998# CONFIG_CRYPTO_CRYPTD is not set
999# CONFIG_CRYPTO_AUTHENC is not set
1000# CONFIG_CRYPTO_TEST is not set
1001
1002#
1003# Authenticated Encryption with Associated Data
1004#
1005# CONFIG_CRYPTO_CCM is not set
1006# CONFIG_CRYPTO_GCM is not set
1007# CONFIG_CRYPTO_SEQIV is not set
1008
1009#
1010# Block modes
1011#
1012# CONFIG_CRYPTO_CBC is not set
1013# CONFIG_CRYPTO_CTR is not set
1014# CONFIG_CRYPTO_CTS is not set
1015# CONFIG_CRYPTO_ECB is not set
1016# CONFIG_CRYPTO_LRW is not set
1017# CONFIG_CRYPTO_PCBC is not set
1018# CONFIG_CRYPTO_XTS is not set
1019
1020#
1021# Hash modes
1022#
1023# CONFIG_CRYPTO_HMAC is not set
1024# CONFIG_CRYPTO_XCBC is not set
1025
1026#
1027# Digest
1028#
1029# CONFIG_CRYPTO_CRC32C is not set
1030# CONFIG_CRYPTO_MD4 is not set
1031# CONFIG_CRYPTO_MD5 is not set
1032# CONFIG_CRYPTO_MICHAEL_MIC is not set
1033# CONFIG_CRYPTO_RMD128 is not set
1034# CONFIG_CRYPTO_RMD160 is not set
1035# CONFIG_CRYPTO_RMD256 is not set
1036# CONFIG_CRYPTO_RMD320 is not set
1037# CONFIG_CRYPTO_SHA1 is not set
1038# CONFIG_CRYPTO_SHA256 is not set
1039# CONFIG_CRYPTO_SHA512 is not set
1040# CONFIG_CRYPTO_TGR192 is not set
1041# CONFIG_CRYPTO_WP512 is not set
901 1042
902# 1043#
903# Cryptographic options 1044# Ciphers
904# 1045#
905# CONFIG_CRYPTO is not set 1046# CONFIG_CRYPTO_AES is not set
1047# CONFIG_CRYPTO_ANUBIS is not set
1048# CONFIG_CRYPTO_ARC4 is not set
1049# CONFIG_CRYPTO_BLOWFISH is not set
1050# CONFIG_CRYPTO_CAMELLIA is not set
1051# CONFIG_CRYPTO_CAST5 is not set
1052# CONFIG_CRYPTO_CAST6 is not set
1053# CONFIG_CRYPTO_DES is not set
1054# CONFIG_CRYPTO_FCRYPT is not set
1055# CONFIG_CRYPTO_KHAZAD is not set
1056# CONFIG_CRYPTO_SALSA20 is not set
1057# CONFIG_CRYPTO_SEED is not set
1058# CONFIG_CRYPTO_SERPENT is not set
1059# CONFIG_CRYPTO_TEA is not set
1060# CONFIG_CRYPTO_TWOFISH is not set
906 1061
907# 1062#
908# Hardware crypto devices 1063# Compression
909# 1064#
1065# CONFIG_CRYPTO_DEFLATE is not set
1066# CONFIG_CRYPTO_LZO is not set
1067CONFIG_CRYPTO_HW=y
910 1068
911# 1069#
912# Library routines 1070# Library routines
913# 1071#
1072CONFIG_BITREVERSE=y
1073# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1074# CONFIG_GENERIC_FIND_NEXT_BIT is not set
914CONFIG_CRC_CCITT=m 1075CONFIG_CRC_CCITT=m
1076# CONFIG_CRC16 is not set
1077# CONFIG_CRC_T10DIF is not set
1078# CONFIG_CRC_ITU_T is not set
915CONFIG_CRC32=y 1079CONFIG_CRC32=y
1080# CONFIG_CRC7 is not set
916# CONFIG_LIBCRC32C is not set 1081# CONFIG_LIBCRC32C is not set
917CONFIG_ZLIB_INFLATE=y 1082CONFIG_PLIST=y
918CONFIG_ZLIB_DEFLATE=y 1083CONFIG_HAS_IOMEM=y
1084CONFIG_HAS_IOPORT=y
1085CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/n770_defconfig b/arch/arm/configs/n770_defconfig
new file mode 100644
index 000000000000..568ef1770d5f
--- /dev/null
+++ b/arch/arm/configs/n770_defconfig
@@ -0,0 +1,1421 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.24-rc8-omap1
4# Fri Jan 18 10:21:06 2008
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39CONFIG_POSIX_MQUEUE=y
40# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47# CONFIG_CGROUPS is not set
48CONFIG_FAIR_GROUP_SCHED=y
49CONFIG_FAIR_USER_SCHED=y
50# CONFIG_FAIR_CGROUP_SCHED is not set
51CONFIG_SYSFS_DEPRECATED=y
52# CONFIG_RELAY is not set
53# CONFIG_BLK_DEV_INITRD is not set
54CONFIG_CC_OPTIMIZE_FOR_SIZE=y
55CONFIG_SYSCTL=y
56# CONFIG_EMBEDDED is not set
57CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y
59CONFIG_KALLSYMS=y
60# CONFIG_KALLSYMS_ALL is not set
61# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y
64CONFIG_BUG=y
65CONFIG_ELF_CORE=y
66CONFIG_BASE_FULL=y
67CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y
71CONFIG_EVENTFD=y
72CONFIG_SHMEM=y
73CONFIG_VM_EVENT_COUNTERS=y
74CONFIG_SLAB=y
75# CONFIG_SLUB is not set
76# CONFIG_SLOB is not set
77CONFIG_SLABINFO=y
78CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0
81CONFIG_MODULES=y
82CONFIG_MODULE_UNLOAD=y
83# CONFIG_MODULE_FORCE_UNLOAD is not set
84# CONFIG_MODVERSIONS is not set
85# CONFIG_MODULE_SRCVERSION_ALL is not set
86# CONFIG_KMOD is not set
87CONFIG_BLOCK=y
88# CONFIG_LBD is not set
89# CONFIG_BLK_DEV_IO_TRACE is not set
90# CONFIG_LSF is not set
91# CONFIG_BLK_DEV_BSG is not set
92
93#
94# IO Schedulers
95#
96CONFIG_IOSCHED_NOOP=y
97# CONFIG_IOSCHED_AS is not set
98# CONFIG_IOSCHED_DEADLINE is not set
99CONFIG_IOSCHED_CFQ=y
100# CONFIG_DEFAULT_AS is not set
101# CONFIG_DEFAULT_DEADLINE is not set
102CONFIG_DEFAULT_CFQ=y
103# CONFIG_DEFAULT_NOOP is not set
104CONFIG_DEFAULT_IOSCHED="cfq"
105
106#
107# System Type
108#
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_INTEGRATOR is not set
111# CONFIG_ARCH_REALVIEW is not set
112# CONFIG_ARCH_VERSATILE is not set
113# CONFIG_ARCH_AT91 is not set
114# CONFIG_ARCH_CLPS7500 is not set
115# CONFIG_ARCH_CLPS711X is not set
116# CONFIG_ARCH_CO285 is not set
117# CONFIG_ARCH_EBSA110 is not set
118# CONFIG_ARCH_EP93XX is not set
119# CONFIG_ARCH_FOOTBRIDGE is not set
120# CONFIG_ARCH_NETX is not set
121# CONFIG_ARCH_H720X is not set
122# CONFIG_ARCH_IMX is not set
123# CONFIG_ARCH_IOP13XX is not set
124# CONFIG_ARCH_IOP32X is not set
125# CONFIG_ARCH_IOP33X is not set
126# CONFIG_ARCH_IXP23XX is not set
127# CONFIG_ARCH_IXP2000 is not set
128# CONFIG_ARCH_IXP4XX is not set
129# CONFIG_ARCH_L7200 is not set
130# CONFIG_ARCH_KS8695 is not set
131# CONFIG_ARCH_NS9XXX is not set
132# CONFIG_ARCH_MXC is not set
133# CONFIG_ARCH_PNX4008 is not set
134# CONFIG_ARCH_PXA is not set
135# CONFIG_ARCH_RPC is not set
136# CONFIG_ARCH_SA1100 is not set
137# CONFIG_ARCH_S3C2410 is not set
138# CONFIG_ARCH_SHARK is not set
139# CONFIG_ARCH_LH7A40X is not set
140# CONFIG_ARCH_DAVINCI is not set
141CONFIG_ARCH_OMAP=y
142
143#
144# TI OMAP Implementations
145#
146CONFIG_ARCH_OMAP_OTG=y
147CONFIG_ARCH_OMAP1=y
148# CONFIG_ARCH_OMAP2 is not set
149# CONFIG_ARCH_OMAP3 is not set
150
151#
152# OMAP Feature Selections
153#
154CONFIG_OMAP_DEBUG_SRAM_PATCH=y
155CONFIG_OMAP_RESET_CLOCKS=y
156CONFIG_OMAP_BOOT_TAG=y
157CONFIG_OMAP_BOOT_REASON=y
158CONFIG_OMAP_COMPONENT_VERSION=y
159CONFIG_OMAP_GPIO_SWITCH=y
160# CONFIG_OMAP_MUX is not set
161CONFIG_OMAP_STI=y
162CONFIG_OMAP_STI_CONSOLE=y
163CONFIG_OMAP_MCBSP=y
164CONFIG_OMAP_MMU_FWK=y
165CONFIG_OMAP_MBOX_FWK=y
166# CONFIG_OMAP_MPU_TIMER is not set
167CONFIG_OMAP_32K_TIMER=y
168CONFIG_OMAP_32K_TIMER_HZ=128
169CONFIG_OMAP_DM_TIMER=y
170CONFIG_OMAP_LL_DEBUG_UART1=y
171# CONFIG_OMAP_LL_DEBUG_UART2 is not set
172# CONFIG_OMAP_LL_DEBUG_UART3 is not set
173
174#
175# OMAP Core Type
176#
177# CONFIG_ARCH_OMAP730 is not set
178# CONFIG_ARCH_OMAP15XX is not set
179CONFIG_ARCH_OMAP16XX=y
180
181#
182# OMAP Board Type
183#
184# CONFIG_MACH_OMAP_INNOVATOR is not set
185# CONFIG_MACH_OMAP_H2 is not set
186# CONFIG_MACH_OMAP_H3 is not set
187# CONFIG_MACH_OMAP_OSK is not set
188CONFIG_MACH_NOKIA770=y
189# CONFIG_MACH_OMAP_GENERIC is not set
190
191#
192# OMAP CPU Speed
193#
194CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
195CONFIG_OMAP_ARM_216MHZ=y
196# CONFIG_OMAP_ARM_192MHZ is not set
197# CONFIG_OMAP_ARM_168MHZ is not set
198# CONFIG_OMAP_ARM_120MHZ is not set
199# CONFIG_OMAP_ARM_60MHZ is not set
200# CONFIG_OMAP_ARM_30MHZ is not set
201
202#
203# Boot options
204#
205
206#
207# Power management
208#
209
210#
211# Processor Type
212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM926T=y
215CONFIG_CPU_32v5=y
216CONFIG_CPU_ABRT_EV5TJ=y
217CONFIG_CPU_PABRT_NOIFAR=y
218CONFIG_CPU_CACHE_VIVT=y
219CONFIG_CPU_COPY_V4WB=y
220CONFIG_CPU_TLB_V4WBI=y
221CONFIG_CPU_CP15=y
222CONFIG_CPU_CP15_MMU=y
223
224#
225# Processor Features
226#
227CONFIG_ARM_THUMB=y
228# CONFIG_CPU_ICACHE_DISABLE is not set
229# CONFIG_CPU_DCACHE_DISABLE is not set
230# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
231# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
232# CONFIG_OUTER_CACHE is not set
233
234#
235# Bus support
236#
237# CONFIG_PCI_SYSCALL is not set
238# CONFIG_ARCH_SUPPORTS_MSI is not set
239# CONFIG_PCCARD is not set
240
241#
242# Kernel Features
243#
244# CONFIG_TICK_ONESHOT is not set
245# CONFIG_NO_HZ is not set
246# CONFIG_HIGH_RES_TIMERS is not set
247CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
248# CONFIG_PREEMPT is not set
249CONFIG_HZ=128
250# CONFIG_AEABI is not set
251# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
252CONFIG_SELECT_MEMORY_MODEL=y
253CONFIG_FLATMEM_MANUAL=y
254# CONFIG_DISCONTIGMEM_MANUAL is not set
255# CONFIG_SPARSEMEM_MANUAL is not set
256CONFIG_FLATMEM=y
257CONFIG_FLAT_NODE_MEM_MAP=y
258# CONFIG_SPARSEMEM_STATIC is not set
259# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
260CONFIG_SPLIT_PTLOCK_CPUS=4096
261# CONFIG_RESOURCES_64BIT is not set
262CONFIG_ZONE_DMA_FLAG=1
263CONFIG_BOUNCE=y
264CONFIG_VIRT_TO_BUS=y
265# CONFIG_LEDS is not set
266CONFIG_ALIGNMENT_TRAP=y
267
268#
269# Boot options
270#
271CONFIG_ZBOOT_ROM_TEXT=0x0
272CONFIG_ZBOOT_ROM_BSS=0x0
273CONFIG_CMDLINE="root=1f03 rootfstype=jffs2 time"
274# CONFIG_XIP_KERNEL is not set
275# CONFIG_KEXEC is not set
276
277#
278# CPU Frequency scaling
279#
280# CONFIG_CPU_FREQ is not set
281
282#
283# Floating point emulation
284#
285
286#
287# At least one emulation must be selected
288#
289CONFIG_FPE_NWFPE=y
290# CONFIG_FPE_NWFPE_XP is not set
291# CONFIG_FPE_FASTFPE is not set
292# CONFIG_VFP is not set
293
294#
295# Userspace binary formats
296#
297CONFIG_BINFMT_ELF=y
298# CONFIG_BINFMT_AOUT is not set
299# CONFIG_BINFMT_MISC is not set
300# CONFIG_ARTHUR is not set
301
302#
303# Power management options
304#
305CONFIG_PM=y
306# CONFIG_PM_LEGACY is not set
307# CONFIG_PM_DEBUG is not set
308CONFIG_PM_SLEEP=y
309CONFIG_SUSPEND_UP_POSSIBLE=y
310CONFIG_SUSPEND=y
311# CONFIG_APM_EMULATION is not set
312
313#
314# Networking
315#
316CONFIG_NET=y
317
318#
319# Networking options
320#
321CONFIG_PACKET=y
322# CONFIG_PACKET_MMAP is not set
323CONFIG_UNIX=y
324CONFIG_XFRM=y
325# CONFIG_XFRM_USER is not set
326# CONFIG_XFRM_SUB_POLICY is not set
327# CONFIG_XFRM_MIGRATE is not set
328# CONFIG_NET_KEY is not set
329CONFIG_INET=y
330CONFIG_IP_MULTICAST=y
331# CONFIG_IP_ADVANCED_ROUTER is not set
332CONFIG_IP_FIB_HASH=y
333CONFIG_IP_PNP=y
334CONFIG_IP_PNP_DHCP=y
335CONFIG_IP_PNP_BOOTP=y
336# CONFIG_IP_PNP_RARP is not set
337# CONFIG_NET_IPIP is not set
338# CONFIG_NET_IPGRE is not set
339# CONFIG_IP_MROUTE is not set
340# CONFIG_ARPD is not set
341# CONFIG_SYN_COOKIES is not set
342# CONFIG_INET_AH is not set
343# CONFIG_INET_ESP is not set
344# CONFIG_INET_IPCOMP is not set
345# CONFIG_INET_XFRM_TUNNEL is not set
346# CONFIG_INET_TUNNEL is not set
347CONFIG_INET_XFRM_MODE_TRANSPORT=y
348CONFIG_INET_XFRM_MODE_TUNNEL=y
349CONFIG_INET_XFRM_MODE_BEET=y
350# CONFIG_INET_LRO is not set
351# CONFIG_INET_DIAG is not set
352# CONFIG_TCP_CONG_ADVANCED is not set
353CONFIG_TCP_CONG_CUBIC=y
354CONFIG_DEFAULT_TCP_CONG="cubic"
355# CONFIG_TCP_MD5SIG is not set
356# CONFIG_IP_VS is not set
357# CONFIG_IPV6 is not set
358# CONFIG_INET6_XFRM_TUNNEL is not set
359# CONFIG_INET6_TUNNEL is not set
360# CONFIG_NETLABEL is not set
361# CONFIG_NETWORK_SECMARK is not set
362CONFIG_NETFILTER=y
363# CONFIG_NETFILTER_DEBUG is not set
364
365#
366# Core Netfilter Configuration
367#
368CONFIG_NETFILTER_NETLINK=y
369# CONFIG_NETFILTER_NETLINK_QUEUE is not set
370# CONFIG_NETFILTER_NETLINK_LOG is not set
371# CONFIG_NF_CONNTRACK_ENABLED is not set
372# CONFIG_NF_CONNTRACK is not set
373# CONFIG_NETFILTER_XTABLES is not set
374
375#
376# IP: Netfilter Configuration
377#
378# CONFIG_IP_NF_QUEUE is not set
379# CONFIG_IP_NF_IPTABLES is not set
380# CONFIG_IP_NF_ARPTABLES is not set
381# CONFIG_IP_DCCP is not set
382# CONFIG_IP_SCTP is not set
383# CONFIG_TIPC is not set
384# CONFIG_ATM is not set
385# CONFIG_BRIDGE is not set
386# CONFIG_VLAN_8021Q is not set
387# CONFIG_DECNET is not set
388# CONFIG_LLC2 is not set
389# CONFIG_IPX is not set
390# CONFIG_ATALK is not set
391# CONFIG_X25 is not set
392# CONFIG_LAPB is not set
393# CONFIG_ECONET is not set
394# CONFIG_WAN_ROUTER is not set
395# CONFIG_NET_SCHED is not set
396
397#
398# Network testing
399#
400# CONFIG_NET_PKTGEN is not set
401# CONFIG_HAMRADIO is not set
402# CONFIG_IRDA is not set
403CONFIG_BT=y
404CONFIG_BT_L2CAP=y
405CONFIG_BT_SCO=y
406CONFIG_BT_RFCOMM=y
407CONFIG_BT_RFCOMM_TTY=y
408CONFIG_BT_BNEP=y
409# CONFIG_BT_BNEP_MC_FILTER is not set
410# CONFIG_BT_BNEP_PROTO_FILTER is not set
411CONFIG_BT_HIDP=y
412
413#
414# Bluetooth device drivers
415#
416# CONFIG_BT_HCIUSB is not set
417# CONFIG_BT_HCIBTUSB is not set
418# CONFIG_BT_HCIBTSDIO is not set
419# CONFIG_BT_HCIUART is not set
420# CONFIG_BT_HCIBCM203X is not set
421# CONFIG_BT_HCIBPA10X is not set
422# CONFIG_BT_HCIBFUSB is not set
423CONFIG_BT_HCIBRF6150=y
424# CONFIG_BT_HCIH4P is not set
425# CONFIG_BT_HCIVHCI is not set
426# CONFIG_AF_RXRPC is not set
427
428#
429# Wireless
430#
431# CONFIG_CFG80211 is not set
432# CONFIG_WIRELESS_EXT is not set
433# CONFIG_MAC80211 is not set
434# CONFIG_IEEE80211 is not set
435# CONFIG_RFKILL is not set
436# CONFIG_NET_9P is not set
437
438#
439# Device Drivers
440#
441
442#
443# Generic Driver Options
444#
445CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
446CONFIG_STANDALONE=y
447CONFIG_PREVENT_FIRMWARE_BUILD=y
448CONFIG_FW_LOADER=y
449# CONFIG_DEBUG_DRIVER is not set
450# CONFIG_DEBUG_DEVRES is not set
451# CONFIG_SYS_HYPERVISOR is not set
452CONFIG_CONNECTOR=y
453# CONFIG_PROC_EVENTS is not set
454CONFIG_MTD=y
455# CONFIG_MTD_DEBUG is not set
456# CONFIG_MTD_CONCAT is not set
457CONFIG_MTD_PARTITIONS=y
458# CONFIG_MTD_REDBOOT_PARTS is not set
459CONFIG_MTD_CMDLINE_PARTS=y
460# CONFIG_MTD_AFS_PARTS is not set
461
462#
463# User Modules And Translation Layers
464#
465CONFIG_MTD_CHAR=y
466CONFIG_MTD_BLKDEVS=y
467CONFIG_MTD_BLOCK=y
468# CONFIG_FTL is not set
469# CONFIG_NFTL is not set
470# CONFIG_INFTL is not set
471# CONFIG_RFD_FTL is not set
472# CONFIG_SSFDC is not set
473# CONFIG_MTD_OOPS is not set
474
475#
476# RAM/ROM/Flash chip drivers
477#
478# CONFIG_MTD_CFI is not set
479# CONFIG_MTD_JEDECPROBE is not set
480CONFIG_MTD_MAP_BANK_WIDTH_1=y
481CONFIG_MTD_MAP_BANK_WIDTH_2=y
482CONFIG_MTD_MAP_BANK_WIDTH_4=y
483# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
484# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
485# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
486CONFIG_MTD_CFI_I1=y
487CONFIG_MTD_CFI_I2=y
488# CONFIG_MTD_CFI_I4 is not set
489# CONFIG_MTD_CFI_I8 is not set
490# CONFIG_MTD_RAM is not set
491# CONFIG_MTD_ROM is not set
492# CONFIG_MTD_ABSENT is not set
493
494#
495# Mapping drivers for chip access
496#
497# CONFIG_MTD_COMPLEX_MAPPINGS is not set
498# CONFIG_MTD_PLATRAM is not set
499
500#
501# Self-contained MTD device drivers
502#
503# CONFIG_MTD_DATAFLASH is not set
504# CONFIG_MTD_M25P80 is not set
505# CONFIG_MTD_SLRAM is not set
506# CONFIG_MTD_PHRAM is not set
507# CONFIG_MTD_MTDRAM is not set
508# CONFIG_MTD_BLOCK2MTD is not set
509
510#
511# Disk-On-Chip Device Drivers
512#
513# CONFIG_MTD_DOC2000 is not set
514# CONFIG_MTD_DOC2001 is not set
515# CONFIG_MTD_DOC2001PLUS is not set
516CONFIG_MTD_NAND=y
517# CONFIG_MTD_NAND_VERIFY_WRITE is not set
518# CONFIG_MTD_NAND_ECC_SMC is not set
519# CONFIG_MTD_NAND_MUSEUM_IDS is not set
520CONFIG_MTD_NAND_OMAP_HW=y
521CONFIG_MTD_NAND_IDS=y
522# CONFIG_MTD_NAND_DISKONCHIP is not set
523# CONFIG_MTD_NAND_NANDSIM is not set
524# CONFIG_MTD_NAND_PLATFORM is not set
525# CONFIG_MTD_ALAUDA is not set
526# CONFIG_MTD_ONENAND is not set
527
528#
529# UBI - Unsorted block images
530#
531# CONFIG_MTD_UBI is not set
532# CONFIG_PARPORT is not set
533CONFIG_BLK_DEV=y
534# CONFIG_BLK_DEV_COW_COMMON is not set
535CONFIG_BLK_DEV_LOOP=y
536# CONFIG_BLK_DEV_CRYPTOLOOP is not set
537# CONFIG_BLK_DEV_NBD is not set
538# CONFIG_BLK_DEV_UB is not set
539# CONFIG_BLK_DEV_RAM is not set
540# CONFIG_CDROM_PKTCDVD is not set
541# CONFIG_ATA_OVER_ETH is not set
542CONFIG_MISC_DEVICES=y
543# CONFIG_EEPROM_93CX6 is not set
544
545#
546# SCSI device support
547#
548# CONFIG_RAID_ATTRS is not set
549CONFIG_SCSI=y
550CONFIG_SCSI_DMA=y
551# CONFIG_SCSI_TGT is not set
552# CONFIG_SCSI_NETLINK is not set
553# CONFIG_SCSI_PROC_FS is not set
554
555#
556# SCSI support type (disk, tape, CD-ROM)
557#
558CONFIG_BLK_DEV_SD=y
559# CONFIG_CHR_DEV_ST is not set
560# CONFIG_CHR_DEV_OSST is not set
561# CONFIG_BLK_DEV_SR is not set
562# CONFIG_CHR_DEV_SG is not set
563# CONFIG_CHR_DEV_SCH is not set
564
565#
566# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
567#
568# CONFIG_SCSI_MULTI_LUN is not set
569# CONFIG_SCSI_CONSTANTS is not set
570# CONFIG_SCSI_LOGGING is not set
571# CONFIG_SCSI_SCAN_ASYNC is not set
572CONFIG_SCSI_WAIT_SCAN=m
573
574#
575# SCSI Transports
576#
577# CONFIG_SCSI_SPI_ATTRS is not set
578# CONFIG_SCSI_FC_ATTRS is not set
579# CONFIG_SCSI_ISCSI_ATTRS is not set
580# CONFIG_SCSI_SAS_LIBSAS is not set
581# CONFIG_SCSI_SRP_ATTRS is not set
582CONFIG_SCSI_LOWLEVEL=y
583# CONFIG_ISCSI_TCP is not set
584# CONFIG_SCSI_DEBUG is not set
585# CONFIG_ATA is not set
586# CONFIG_MD is not set
587CONFIG_NETDEVICES=y
588# CONFIG_NETDEVICES_MULTIQUEUE is not set
589# CONFIG_DUMMY is not set
590# CONFIG_BONDING is not set
591# CONFIG_MACVLAN is not set
592# CONFIG_EQUALIZER is not set
593CONFIG_TUN=y
594# CONFIG_VETH is not set
595# CONFIG_PHYLIB is not set
596CONFIG_NET_ETHERNET=y
597CONFIG_MII=y
598# CONFIG_AX88796 is not set
599# CONFIG_SMC91X is not set
600# CONFIG_DM9000 is not set
601# CONFIG_IBM_NEW_EMAC_ZMII is not set
602# CONFIG_IBM_NEW_EMAC_RGMII is not set
603# CONFIG_IBM_NEW_EMAC_TAH is not set
604# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
605# CONFIG_B44 is not set
606CONFIG_NETDEV_1000=y
607CONFIG_NETDEV_10000=y
608
609#
610# Wireless LAN
611#
612# CONFIG_WLAN_PRE80211 is not set
613# CONFIG_WLAN_80211 is not set
614
615#
616# USB Network Adapters
617#
618# CONFIG_USB_CATC is not set
619# CONFIG_USB_KAWETH is not set
620# CONFIG_USB_PEGASUS is not set
621# CONFIG_USB_RTL8150 is not set
622CONFIG_USB_USBNET=y
623# CONFIG_USB_NET_AX8817X is not set
624CONFIG_USB_NET_CDCETHER=y
625# CONFIG_USB_NET_DM9601 is not set
626# CONFIG_USB_NET_GL620A is not set
627CONFIG_USB_NET_NET1080=y
628# CONFIG_USB_NET_PLUSB is not set
629# CONFIG_USB_NET_MCS7830 is not set
630# CONFIG_USB_NET_RNDIS_HOST is not set
631# CONFIG_USB_NET_CDC_SUBSET is not set
632CONFIG_USB_NET_ZAURUS=y
633# CONFIG_WAN is not set
634CONFIG_PPP=y
635# CONFIG_PPP_MULTILINK is not set
636CONFIG_PPP_FILTER=y
637CONFIG_PPP_ASYNC=y
638# CONFIG_PPP_SYNC_TTY is not set
639CONFIG_PPP_DEFLATE=y
640CONFIG_PPP_BSDCOMP=y
641# CONFIG_PPP_MPPE is not set
642# CONFIG_PPPOE is not set
643# CONFIG_PPPOL2TP is not set
644# CONFIG_SLIP is not set
645CONFIG_SLHC=y
646# CONFIG_SHAPER is not set
647# CONFIG_NETCONSOLE is not set
648# CONFIG_NETPOLL is not set
649# CONFIG_NET_POLL_CONTROLLER is not set
650# CONFIG_ISDN is not set
651
652#
653# Input device support
654#
655CONFIG_INPUT=y
656# CONFIG_INPUT_FF_MEMLESS is not set
657# CONFIG_INPUT_POLLDEV is not set
658
659#
660# Userland interfaces
661#
662CONFIG_INPUT_MOUSEDEV=y
663# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
664CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
665CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
666# CONFIG_INPUT_JOYDEV is not set
667CONFIG_INPUT_EVDEV=y
668# CONFIG_INPUT_EVBUG is not set
669
670#
671# Input Device Drivers
672#
673CONFIG_INPUT_KEYBOARD=y
674# CONFIG_KEYBOARD_ATKBD is not set
675# CONFIG_KEYBOARD_SUNKBD is not set
676# CONFIG_KEYBOARD_LKKBD is not set
677# CONFIG_KEYBOARD_XTKBD is not set
678# CONFIG_KEYBOARD_NEWTON is not set
679# CONFIG_KEYBOARD_STOWAWAY is not set
680CONFIG_KEYBOARD_OMAP=y
681# CONFIG_KEYBOARD_GPIO is not set
682# CONFIG_INPUT_MOUSE is not set
683# CONFIG_INPUT_JOYSTICK is not set
684# CONFIG_INPUT_TABLET is not set
685CONFIG_INPUT_TOUCHSCREEN=y
686CONFIG_TOUCHSCREEN_ADS7846=y
687# CONFIG_TOUCHSCREEN_FUJITSU is not set
688# CONFIG_TOUCHSCREEN_GUNZE is not set
689# CONFIG_TOUCHSCREEN_ELO is not set
690# CONFIG_TOUCHSCREEN_MTOUCH is not set
691# CONFIG_TOUCHSCREEN_MK712 is not set
692# CONFIG_TOUCHSCREEN_PENMOUNT is not set
693# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
694# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
695# CONFIG_TOUCHSCREEN_UCB1400 is not set
696# CONFIG_TOUCHSCREEN_TSC2102 is not set
697# CONFIG_TOUCHSCREEN_TSC210X is not set
698# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
699# CONFIG_INPUT_MISC is not set
700
701#
702# Hardware I/O ports
703#
704CONFIG_SERIO=y
705CONFIG_SERIO_SERPORT=y
706# CONFIG_SERIO_RAW is not set
707# CONFIG_GAMEPORT is not set
708
709#
710# Character devices
711#
712CONFIG_VT=y
713CONFIG_VT_CONSOLE=y
714CONFIG_HW_CONSOLE=y
715# CONFIG_VT_HW_CONSOLE_BINDING is not set
716# CONFIG_SERIAL_NONSTANDARD is not set
717
718#
719# Serial drivers
720#
721CONFIG_SERIAL_8250=y
722CONFIG_SERIAL_8250_CONSOLE=y
723CONFIG_SERIAL_8250_NR_UARTS=4
724CONFIG_SERIAL_8250_RUNTIME_UARTS=4
725# CONFIG_SERIAL_8250_EXTENDED is not set
726
727#
728# Non-8250 serial port support
729#
730CONFIG_SERIAL_CORE=y
731CONFIG_SERIAL_CORE_CONSOLE=y
732CONFIG_UNIX98_PTYS=y
733# CONFIG_LEGACY_PTYS is not set
734# CONFIG_IPMI_HANDLER is not set
735CONFIG_HW_RANDOM=m
736CONFIG_HW_RANDOM_OMAP=m
737# CONFIG_NVRAM is not set
738# CONFIG_R3964 is not set
739# CONFIG_RAW_DRIVER is not set
740# CONFIG_TCG_TPM is not set
741CONFIG_I2C=y
742CONFIG_I2C_BOARDINFO=y
743# CONFIG_I2C_CHARDEV is not set
744
745#
746# I2C Algorithms
747#
748# CONFIG_I2C_ALGOBIT is not set
749# CONFIG_I2C_ALGOPCF is not set
750# CONFIG_I2C_ALGOPCA is not set
751
752#
753# I2C Hardware Bus support
754#
755# CONFIG_I2C_GPIO is not set
756# CONFIG_I2C_OCORES is not set
757CONFIG_I2C_OMAP=y
758# CONFIG_I2C_PARPORT_LIGHT is not set
759# CONFIG_I2C_SIMTEC is not set
760# CONFIG_I2C_TAOS_EVM is not set
761# CONFIG_I2C_STUB is not set
762# CONFIG_I2C_TINY_USB is not set
763
764#
765# Miscellaneous I2C Chip support
766#
767# CONFIG_SENSORS_DS1337 is not set
768# CONFIG_SENSORS_DS1374 is not set
769# CONFIG_DS1682 is not set
770# CONFIG_SENSORS_EEPROM is not set
771# CONFIG_SENSORS_PCF8574 is not set
772# CONFIG_SENSORS_PCA9539 is not set
773# CONFIG_SENSORS_PCF8591 is not set
774# CONFIG_ISP1301_OMAP is not set
775# CONFIG_TPS65010 is not set
776CONFIG_SENSORS_TLV320AIC23=y
777# CONFIG_GPIOEXPANDER_OMAP is not set
778# CONFIG_SENSORS_MAX6875 is not set
779# CONFIG_SENSORS_TSL2550 is not set
780# CONFIG_I2C_DEBUG_CORE is not set
781# CONFIG_I2C_DEBUG_ALGO is not set
782# CONFIG_I2C_DEBUG_BUS is not set
783# CONFIG_I2C_DEBUG_CHIP is not set
784
785#
786# SPI support
787#
788CONFIG_SPI=y
789# CONFIG_SPI_DEBUG is not set
790CONFIG_SPI_MASTER=y
791
792#
793# SPI Master Controller Drivers
794#
795CONFIG_SPI_BITBANG=y
796CONFIG_SPI_OMAP_UWIRE=y
797
798#
799# SPI Protocol Masters
800#
801# CONFIG_SPI_AT25 is not set
802# CONFIG_SPI_TSC2101 is not set
803# CONFIG_SPI_TSC2102 is not set
804# CONFIG_SPI_TSC210X is not set
805# CONFIG_SPI_TSC2301 is not set
806# CONFIG_SPI_SPIDEV is not set
807# CONFIG_SPI_TLE62X0 is not set
808# CONFIG_W1 is not set
809# CONFIG_POWER_SUPPLY is not set
810# CONFIG_HWMON is not set
811CONFIG_WATCHDOG=y
812CONFIG_WATCHDOG_NOWAYOUT=y
813
814#
815# Watchdog Device Drivers
816#
817# CONFIG_SOFT_WATCHDOG is not set
818CONFIG_OMAP_WATCHDOG=y
819
820#
821# USB-based Watchdog Cards
822#
823# CONFIG_USBPCWATCHDOG is not set
824
825#
826# Sonics Silicon Backplane
827#
828CONFIG_SSB_POSSIBLE=y
829# CONFIG_SSB is not set
830
831#
832# Multifunction device drivers
833#
834# CONFIG_MFD_SM501 is not set
835
836#
837# Multimedia devices
838#
839# CONFIG_VIDEO_DEV is not set
840# CONFIG_DVB_CORE is not set
841CONFIG_DAB=y
842# CONFIG_USB_DABUSB is not set
843
844#
845# Graphics support
846#
847# CONFIG_VGASTATE is not set
848# CONFIG_VIDEO_OUTPUT_CONTROL is not set
849CONFIG_FB=y
850# CONFIG_FIRMWARE_EDID is not set
851# CONFIG_FB_DDC is not set
852CONFIG_FB_CFB_FILLRECT=y
853CONFIG_FB_CFB_COPYAREA=y
854CONFIG_FB_CFB_IMAGEBLIT=y
855# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
856# CONFIG_FB_SYS_FILLRECT is not set
857# CONFIG_FB_SYS_COPYAREA is not set
858# CONFIG_FB_SYS_IMAGEBLIT is not set
859# CONFIG_FB_SYS_FOPS is not set
860CONFIG_FB_DEFERRED_IO=y
861# CONFIG_FB_SVGALIB is not set
862# CONFIG_FB_MACMODES is not set
863# CONFIG_FB_BACKLIGHT is not set
864# CONFIG_FB_MODE_HELPERS is not set
865# CONFIG_FB_TILEBLITTING is not set
866
867#
868# Frame buffer hardware drivers
869#
870# CONFIG_FB_UVESA is not set
871# CONFIG_FB_S1D13XXX is not set
872# CONFIG_FB_VIRTUAL is not set
873CONFIG_FB_OMAP=y
874CONFIG_FB_OMAP_LCDC_EXTERNAL=y
875CONFIG_FB_OMAP_LCDC_HWA742=y
876# CONFIG_FB_OMAP_LCDC_BLIZZARD is not set
877CONFIG_FB_OMAP_MANUAL_UPDATE=y
878# CONFIG_FB_OMAP_LCD_MIPID is not set
879# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
880CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
881# CONFIG_FB_OMAP_DMA_TUNE is not set
882# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
883
884#
885# Display device support
886#
887# CONFIG_DISPLAY_SUPPORT is not set
888
889#
890# Console display driver support
891#
892# CONFIG_VGA_CONSOLE is not set
893CONFIG_DUMMY_CONSOLE=y
894# CONFIG_FRAMEBUFFER_CONSOLE is not set
895# CONFIG_LOGO is not set
896
897#
898# Sound
899#
900CONFIG_SOUND=y
901
902#
903# Advanced Linux Sound Architecture
904#
905CONFIG_SND=y
906CONFIG_SND_TIMER=y
907CONFIG_SND_PCM=y
908CONFIG_SND_HWDEP=y
909CONFIG_SND_RAWMIDI=y
910# CONFIG_SND_SEQUENCER is not set
911# CONFIG_SND_MIXER_OSS is not set
912# CONFIG_SND_PCM_OSS is not set
913# CONFIG_SND_DYNAMIC_MINORS is not set
914# CONFIG_SND_SUPPORT_OLD_API is not set
915CONFIG_SND_VERBOSE_PROCFS=y
916# CONFIG_SND_VERBOSE_PRINTK is not set
917# CONFIG_SND_DEBUG is not set
918
919#
920# Generic devices
921#
922CONFIG_SND_DUMMY=y
923# CONFIG_SND_MTPAV is not set
924# CONFIG_SND_SERIAL_U16550 is not set
925# CONFIG_SND_MPU401 is not set
926
927#
928# ALSA ARM devices
929#
930CONFIG_SND_OMAP_AIC23=y
931# CONFIG_SND_OMAP_TSC2101 is not set
932# CONFIG_SND_SX1 is not set
933# CONFIG_SND_OMAP_TSC2102 is not set
934# CONFIG_SND_OMAP24XX_EAC is not set
935
936#
937# SPI devices
938#
939
940#
941# USB devices
942#
943CONFIG_SND_USB_AUDIO=y
944# CONFIG_SND_USB_CAIAQ is not set
945
946#
947# System on Chip audio support
948#
949# CONFIG_SND_SOC is not set
950
951#
952# SoC Audio support for SuperH
953#
954
955#
956# Open Sound System
957#
958# CONFIG_SOUND_PRIME is not set
959CONFIG_HID_SUPPORT=y
960CONFIG_HID=y
961CONFIG_HID_DEBUG=y
962# CONFIG_HIDRAW is not set
963
964#
965# USB Input Devices
966#
967CONFIG_USB_HID=y
968# CONFIG_USB_HIDINPUT_POWERBOOK is not set
969# CONFIG_HID_FF is not set
970# CONFIG_USB_HIDDEV is not set
971CONFIG_USB_SUPPORT=y
972CONFIG_USB_ARCH_HAS_HCD=y
973CONFIG_USB_ARCH_HAS_OHCI=y
974# CONFIG_USB_ARCH_HAS_EHCI is not set
975CONFIG_USB=y
976# CONFIG_USB_DEBUG is not set
977
978#
979# Miscellaneous USB options
980#
981CONFIG_USB_DEVICEFS=y
982CONFIG_USB_DEVICE_CLASS=y
983# CONFIG_USB_DYNAMIC_MINORS is not set
984CONFIG_USB_SUSPEND=y
985# CONFIG_USB_PERSIST is not set
986CONFIG_USB_OTG=y
987# CONFIG_USB_OTG_WHITELIST is not set
988# CONFIG_USB_OTG_BLACKLIST_HUB is not set
989
990#
991# USB Host Controller Drivers
992#
993# CONFIG_USB_ISP116X_HCD is not set
994CONFIG_USB_OHCI_HCD=y
995# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
996# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
997CONFIG_USB_OHCI_LITTLE_ENDIAN=y
998# CONFIG_USB_SL811_HCD is not set
999# CONFIG_USB_R8A66597_HCD is not set
1000# CONFIG_USB_MUSB_HDRC is not set
1001# CONFIG_USB_GADGET_MUSB_HDRC is not set
1002
1003#
1004# USB Device Class drivers
1005#
1006# CONFIG_USB_ACM is not set
1007# CONFIG_USB_PRINTER is not set
1008
1009#
1010# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1011#
1012
1013#
1014# may also be needed; see USB_STORAGE Help for more information
1015#
1016CONFIG_USB_STORAGE=y
1017# CONFIG_USB_STORAGE_DEBUG is not set
1018# CONFIG_USB_STORAGE_DATAFAB is not set
1019# CONFIG_USB_STORAGE_FREECOM is not set
1020# CONFIG_USB_STORAGE_ISD200 is not set
1021# CONFIG_USB_STORAGE_DPCM is not set
1022# CONFIG_USB_STORAGE_USBAT is not set
1023# CONFIG_USB_STORAGE_SDDR09 is not set
1024# CONFIG_USB_STORAGE_SDDR55 is not set
1025# CONFIG_USB_STORAGE_JUMPSHOT is not set
1026# CONFIG_USB_STORAGE_ALAUDA is not set
1027# CONFIG_USB_STORAGE_KARMA is not set
1028# CONFIG_USB_LIBUSUAL is not set
1029
1030#
1031# USB Imaging devices
1032#
1033# CONFIG_USB_MDC800 is not set
1034# CONFIG_USB_MICROTEK is not set
1035# CONFIG_USB_MON is not set
1036
1037#
1038# USB port drivers
1039#
1040
1041#
1042# USB Serial Converter support
1043#
1044CONFIG_USB_SERIAL=y
1045CONFIG_USB_SERIAL_CONSOLE=y
1046# CONFIG_USB_SERIAL_GENERIC is not set
1047# CONFIG_USB_SERIAL_AIRCABLE is not set
1048# CONFIG_USB_SERIAL_AIRPRIME is not set
1049# CONFIG_USB_SERIAL_ARK3116 is not set
1050# CONFIG_USB_SERIAL_BELKIN is not set
1051# CONFIG_USB_SERIAL_CH341 is not set
1052# CONFIG_USB_SERIAL_WHITEHEAT is not set
1053# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1054# CONFIG_USB_SERIAL_CP2101 is not set
1055# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1056# CONFIG_USB_SERIAL_EMPEG is not set
1057# CONFIG_USB_SERIAL_FTDI_SIO is not set
1058# CONFIG_USB_SERIAL_FUNSOFT is not set
1059# CONFIG_USB_SERIAL_VISOR is not set
1060# CONFIG_USB_SERIAL_IPAQ is not set
1061# CONFIG_USB_SERIAL_IR is not set
1062# CONFIG_USB_SERIAL_EDGEPORT is not set
1063# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1064# CONFIG_USB_SERIAL_GARMIN is not set
1065# CONFIG_USB_SERIAL_IPW is not set
1066# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1067# CONFIG_USB_SERIAL_KEYSPAN is not set
1068# CONFIG_USB_SERIAL_KLSI is not set
1069# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1070# CONFIG_USB_SERIAL_MCT_U232 is not set
1071# CONFIG_USB_SERIAL_MOS7720 is not set
1072# CONFIG_USB_SERIAL_MOS7840 is not set
1073# CONFIG_USB_SERIAL_NAVMAN is not set
1074CONFIG_USB_SERIAL_PL2303=y
1075# CONFIG_USB_SERIAL_OTI6858 is not set
1076# CONFIG_USB_SERIAL_HP4X is not set
1077# CONFIG_USB_SERIAL_SAFE is not set
1078# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1079# CONFIG_USB_SERIAL_TI is not set
1080# CONFIG_USB_SERIAL_CYBERJACK is not set
1081# CONFIG_USB_SERIAL_XIRCOM is not set
1082# CONFIG_USB_SERIAL_OPTION is not set
1083# CONFIG_USB_SERIAL_OMNINET is not set
1084# CONFIG_USB_SERIAL_DEBUG is not set
1085
1086#
1087# USB Miscellaneous drivers
1088#
1089# CONFIG_USB_EMI62 is not set
1090# CONFIG_USB_EMI26 is not set
1091# CONFIG_USB_ADUTUX is not set
1092# CONFIG_USB_AUERSWALD is not set
1093# CONFIG_USB_RIO500 is not set
1094# CONFIG_USB_LEGOTOWER is not set
1095# CONFIG_USB_LCD is not set
1096# CONFIG_USB_BERRY_CHARGE is not set
1097# CONFIG_USB_LED is not set
1098# CONFIG_USB_CYPRESS_CY7C63 is not set
1099# CONFIG_USB_CYTHERM is not set
1100# CONFIG_USB_PHIDGET is not set
1101# CONFIG_USB_IDMOUSE is not set
1102# CONFIG_USB_FTDI_ELAN is not set
1103# CONFIG_USB_APPLEDISPLAY is not set
1104# CONFIG_USB_LD is not set
1105# CONFIG_USB_TRANCEVIBRATOR is not set
1106# CONFIG_USB_IOWARRIOR is not set
1107# CONFIG_USB_TEST is not set
1108
1109#
1110# USB DSL modem support
1111#
1112
1113#
1114# USB Gadget Support
1115#
1116CONFIG_USB_GADGET=y
1117# CONFIG_USB_GADGET_DEBUG is not set
1118# CONFIG_USB_GADGET_DEBUG_FILES is not set
1119CONFIG_USB_GADGET_SELECTED=y
1120# CONFIG_USB_GADGET_AMD5536UDC is not set
1121# CONFIG_USB_GADGET_ATMEL_USBA is not set
1122# CONFIG_USB_GADGET_FSL_USB2 is not set
1123# CONFIG_USB_GADGET_NET2280 is not set
1124# CONFIG_USB_GADGET_PXA2XX is not set
1125# CONFIG_USB_GADGET_M66592 is not set
1126# CONFIG_USB_GADGET_GOKU is not set
1127# CONFIG_USB_GADGET_LH7A40X is not set
1128CONFIG_USB_GADGET_OMAP=y
1129CONFIG_USB_OMAP=y
1130# CONFIG_USB_GADGET_S3C2410 is not set
1131# CONFIG_USB_GADGET_AT91 is not set
1132# CONFIG_USB_GADGET_DUMMY_HCD is not set
1133# CONFIG_USB_GADGET_DUALSPEED is not set
1134# CONFIG_USB_ZERO is not set
1135CONFIG_USB_ETH=m
1136CONFIG_USB_ETH_RNDIS=y
1137# CONFIG_USB_GADGETFS is not set
1138CONFIG_USB_FILE_STORAGE=m
1139CONFIG_USB_FILE_STORAGE_TEST=y
1140# CONFIG_USB_G_SERIAL is not set
1141# CONFIG_USB_MIDI_GADGET is not set
1142CONFIG_MMC=y
1143# CONFIG_MMC_DEBUG is not set
1144# CONFIG_MMC_UNSAFE_RESUME is not set
1145
1146#
1147# MMC/SD Card Drivers
1148#
1149CONFIG_MMC_BLOCK=y
1150CONFIG_MMC_BLOCK_BOUNCE=y
1151# CONFIG_SDIO_UART is not set
1152
1153#
1154# MMC/SD Host Controller Drivers
1155#
1156CONFIG_MMC_OMAP=y
1157# CONFIG_MMC_SPI is not set
1158# CONFIG_NEW_LEDS is not set
1159CONFIG_RTC_LIB=y
1160# CONFIG_RTC_CLASS is not set
1161
1162#
1163# CBUS support
1164#
1165CONFIG_CBUS=y
1166CONFIG_CBUS_TAHVO=y
1167CONFIG_CBUS_TAHVO_USER=y
1168CONFIG_CBUS_TAHVO_USB=y
1169# CONFIG_CBUS_TAHVO_USB_HOST_BY_DEFAULT is not set
1170CONFIG_CBUS_RETU=y
1171CONFIG_CBUS_RETU_USER=y
1172CONFIG_CBUS_RETU_POWERBUTTON=y
1173CONFIG_CBUS_RETU_RTC=y
1174CONFIG_CBUS_RETU_WDT=y
1175# CONFIG_CBUS_RETU_HEADSET is not set
1176CONFIG_OMAP_DSP=y
1177# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
1178CONFIG_OMAP_DSP_FBEXPORT=y
1179
1180#
1181# File systems
1182#
1183CONFIG_EXT2_FS=y
1184# CONFIG_EXT2_FS_XATTR is not set
1185# CONFIG_EXT2_FS_XIP is not set
1186CONFIG_EXT3_FS=y
1187CONFIG_EXT3_FS_XATTR=y
1188# CONFIG_EXT3_FS_POSIX_ACL is not set
1189# CONFIG_EXT3_FS_SECURITY is not set
1190# CONFIG_EXT4DEV_FS is not set
1191CONFIG_JBD=y
1192CONFIG_FS_MBCACHE=y
1193# CONFIG_REISERFS_FS is not set
1194# CONFIG_JFS_FS is not set
1195# CONFIG_FS_POSIX_ACL is not set
1196# CONFIG_XFS_FS is not set
1197# CONFIG_GFS2_FS is not set
1198# CONFIG_OCFS2_FS is not set
1199# CONFIG_MINIX_FS is not set
1200# CONFIG_ROMFS_FS is not set
1201# CONFIG_INOTIFY is not set
1202# CONFIG_QUOTA is not set
1203CONFIG_DNOTIFY=y
1204# CONFIG_AUTOFS_FS is not set
1205# CONFIG_AUTOFS4_FS is not set
1206# CONFIG_FUSE_FS is not set
1207
1208#
1209# CD-ROM/DVD Filesystems
1210#
1211# CONFIG_ISO9660_FS is not set
1212# CONFIG_UDF_FS is not set
1213
1214#
1215# DOS/FAT/NT Filesystems
1216#
1217CONFIG_FAT_FS=y
1218CONFIG_MSDOS_FS=y
1219CONFIG_VFAT_FS=y
1220CONFIG_FAT_DEFAULT_CODEPAGE=437
1221CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1222# CONFIG_NTFS_FS is not set
1223
1224#
1225# Pseudo filesystems
1226#
1227CONFIG_PROC_FS=y
1228CONFIG_PROC_SYSCTL=y
1229CONFIG_SYSFS=y
1230CONFIG_TMPFS=y
1231# CONFIG_TMPFS_POSIX_ACL is not set
1232# CONFIG_HUGETLB_PAGE is not set
1233# CONFIG_CONFIGFS_FS is not set
1234
1235#
1236# Miscellaneous filesystems
1237#
1238# CONFIG_ADFS_FS is not set
1239# CONFIG_AFFS_FS is not set
1240# CONFIG_HFS_FS is not set
1241# CONFIG_HFSPLUS_FS is not set
1242# CONFIG_BEFS_FS is not set
1243# CONFIG_BFS_FS is not set
1244# CONFIG_EFS_FS is not set
1245CONFIG_JFFS2_FS=y
1246CONFIG_JFFS2_FS_DEBUG=0
1247CONFIG_JFFS2_FS_WRITEBUFFER=y
1248# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1249CONFIG_JFFS2_SUMMARY=y
1250# CONFIG_JFFS2_FS_XATTR is not set
1251CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1252CONFIG_JFFS2_ZLIB=y
1253# CONFIG_JFFS2_LZO is not set
1254CONFIG_JFFS2_RTIME=y
1255# CONFIG_JFFS2_RUBIN is not set
1256# CONFIG_JFFS2_CMODE_NONE is not set
1257CONFIG_JFFS2_CMODE_PRIORITY=y
1258# CONFIG_JFFS2_CMODE_SIZE is not set
1259# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1260# CONFIG_CRAMFS is not set
1261# CONFIG_VXFS_FS is not set
1262# CONFIG_HPFS_FS is not set
1263# CONFIG_QNX4FS_FS is not set
1264# CONFIG_SYSV_FS is not set
1265# CONFIG_UFS_FS is not set
1266CONFIG_NETWORK_FILESYSTEMS=y
1267CONFIG_NFS_FS=y
1268CONFIG_NFS_V3=y
1269# CONFIG_NFS_V3_ACL is not set
1270# CONFIG_NFS_V4 is not set
1271# CONFIG_NFS_DIRECTIO is not set
1272# CONFIG_NFSD is not set
1273# CONFIG_ROOT_NFS is not set
1274CONFIG_LOCKD=y
1275CONFIG_LOCKD_V4=y
1276CONFIG_NFS_COMMON=y
1277CONFIG_SUNRPC=y
1278# CONFIG_SUNRPC_BIND34 is not set
1279# CONFIG_RPCSEC_GSS_KRB5 is not set
1280# CONFIG_RPCSEC_GSS_SPKM3 is not set
1281# CONFIG_SMB_FS is not set
1282# CONFIG_CIFS is not set
1283# CONFIG_NCP_FS is not set
1284# CONFIG_CODA_FS is not set
1285# CONFIG_AFS_FS is not set
1286
1287#
1288# Partition Types
1289#
1290CONFIG_PARTITION_ADVANCED=y
1291# CONFIG_ACORN_PARTITION is not set
1292# CONFIG_OSF_PARTITION is not set
1293# CONFIG_AMIGA_PARTITION is not set
1294# CONFIG_ATARI_PARTITION is not set
1295# CONFIG_MAC_PARTITION is not set
1296CONFIG_MSDOS_PARTITION=y
1297# CONFIG_BSD_DISKLABEL is not set
1298# CONFIG_MINIX_SUBPARTITION is not set
1299# CONFIG_SOLARIS_X86_PARTITION is not set
1300# CONFIG_UNIXWARE_DISKLABEL is not set
1301# CONFIG_LDM_PARTITION is not set
1302# CONFIG_SGI_PARTITION is not set
1303# CONFIG_ULTRIX_PARTITION is not set
1304# CONFIG_SUN_PARTITION is not set
1305# CONFIG_KARMA_PARTITION is not set
1306# CONFIG_EFI_PARTITION is not set
1307# CONFIG_SYSV68_PARTITION is not set
1308CONFIG_NLS=y
1309CONFIG_NLS_DEFAULT="iso8859-1"
1310CONFIG_NLS_CODEPAGE_437=y
1311# CONFIG_NLS_CODEPAGE_737 is not set
1312# CONFIG_NLS_CODEPAGE_775 is not set
1313# CONFIG_NLS_CODEPAGE_850 is not set
1314CONFIG_NLS_CODEPAGE_852=y
1315# CONFIG_NLS_CODEPAGE_855 is not set
1316# CONFIG_NLS_CODEPAGE_857 is not set
1317# CONFIG_NLS_CODEPAGE_860 is not set
1318# CONFIG_NLS_CODEPAGE_861 is not set
1319# CONFIG_NLS_CODEPAGE_862 is not set
1320# CONFIG_NLS_CODEPAGE_863 is not set
1321# CONFIG_NLS_CODEPAGE_864 is not set
1322# CONFIG_NLS_CODEPAGE_865 is not set
1323# CONFIG_NLS_CODEPAGE_866 is not set
1324# CONFIG_NLS_CODEPAGE_869 is not set
1325# CONFIG_NLS_CODEPAGE_936 is not set
1326# CONFIG_NLS_CODEPAGE_950 is not set
1327# CONFIG_NLS_CODEPAGE_932 is not set
1328# CONFIG_NLS_CODEPAGE_949 is not set
1329# CONFIG_NLS_CODEPAGE_874 is not set
1330# CONFIG_NLS_ISO8859_8 is not set
1331# CONFIG_NLS_CODEPAGE_1250 is not set
1332# CONFIG_NLS_CODEPAGE_1251 is not set
1333# CONFIG_NLS_ASCII is not set
1334CONFIG_NLS_ISO8859_1=y
1335# CONFIG_NLS_ISO8859_2 is not set
1336# CONFIG_NLS_ISO8859_3 is not set
1337# CONFIG_NLS_ISO8859_4 is not set
1338# CONFIG_NLS_ISO8859_5 is not set
1339# CONFIG_NLS_ISO8859_6 is not set
1340# CONFIG_NLS_ISO8859_7 is not set
1341# CONFIG_NLS_ISO8859_9 is not set
1342# CONFIG_NLS_ISO8859_13 is not set
1343# CONFIG_NLS_ISO8859_14 is not set
1344CONFIG_NLS_ISO8859_15=y
1345# CONFIG_NLS_KOI8_R is not set
1346# CONFIG_NLS_KOI8_U is not set
1347CONFIG_NLS_UTF8=y
1348# CONFIG_DLM is not set
1349CONFIG_INSTRUMENTATION=y
1350# CONFIG_PROFILING is not set
1351# CONFIG_MARKERS is not set
1352
1353#
1354# Kernel hacking
1355#
1356# CONFIG_PRINTK_TIME is not set
1357CONFIG_ENABLE_WARN_DEPRECATED=y
1358CONFIG_ENABLE_MUST_CHECK=y
1359CONFIG_MAGIC_SYSRQ=y
1360# CONFIG_UNUSED_SYMBOLS is not set
1361# CONFIG_DEBUG_FS is not set
1362# CONFIG_HEADERS_CHECK is not set
1363CONFIG_DEBUG_KERNEL=y
1364# CONFIG_DEBUG_SHIRQ is not set
1365CONFIG_DETECT_SOFTLOCKUP=y
1366CONFIG_SCHED_DEBUG=y
1367# CONFIG_SCHEDSTATS is not set
1368# CONFIG_TIMER_STATS is not set
1369# CONFIG_DEBUG_SLAB is not set
1370# CONFIG_DEBUG_RT_MUTEXES is not set
1371# CONFIG_RT_MUTEX_TESTER is not set
1372# CONFIG_DEBUG_SPINLOCK is not set
1373CONFIG_DEBUG_MUTEXES=y
1374# CONFIG_DEBUG_LOCK_ALLOC is not set
1375# CONFIG_PROVE_LOCKING is not set
1376# CONFIG_LOCK_STAT is not set
1377# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1378# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1379# CONFIG_DEBUG_KOBJECT is not set
1380CONFIG_DEBUG_BUGVERBOSE=y
1381# CONFIG_DEBUG_INFO is not set
1382# CONFIG_DEBUG_VM is not set
1383# CONFIG_DEBUG_LIST is not set
1384# CONFIG_DEBUG_SG is not set
1385CONFIG_FRAME_POINTER=y
1386CONFIG_FORCED_INLINING=y
1387# CONFIG_BOOT_PRINTK_DELAY is not set
1388# CONFIG_RCU_TORTURE_TEST is not set
1389# CONFIG_FAULT_INJECTION is not set
1390# CONFIG_SAMPLES is not set
1391# CONFIG_DEBUG_USER is not set
1392CONFIG_DEBUG_ERRORS=y
1393# CONFIG_DEBUG_LL is not set
1394
1395#
1396# Security options
1397#
1398# CONFIG_KEYS is not set
1399CONFIG_SECURITY=y
1400# CONFIG_SECURITY_NETWORK is not set
1401# CONFIG_SECURITY_CAPABILITIES is not set
1402# CONFIG_SECURITY_ROOTPLUG is not set
1403# CONFIG_SECURITY_LOWMEM is not set
1404# CONFIG_CRYPTO is not set
1405
1406#
1407# Library routines
1408#
1409CONFIG_BITREVERSE=y
1410CONFIG_CRC_CCITT=y
1411# CONFIG_CRC16 is not set
1412# CONFIG_CRC_ITU_T is not set
1413CONFIG_CRC32=y
1414# CONFIG_CRC7 is not set
1415# CONFIG_LIBCRC32C is not set
1416CONFIG_ZLIB_INFLATE=y
1417CONFIG_ZLIB_DEFLATE=y
1418CONFIG_PLIST=y
1419CONFIG_HAS_IOMEM=y
1420CONFIG_HAS_IOPORT=y
1421CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_2430sdp_defconfig b/arch/arm/configs/omap_2430sdp_defconfig
new file mode 100644
index 000000000000..b0617c0da2a1
--- /dev/null
+++ b/arch/arm/configs/omap_2430sdp_defconfig
@@ -0,0 +1,1304 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:47:37 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41CONFIG_BSD_PROCESS_ACCT=y
42# CONFIG_BSD_PROCESS_ACCT_V3 is not set
43# CONFIG_TASKSTATS is not set
44# CONFIG_USER_NS is not set
45# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14
48CONFIG_SYSFS_DEPRECATED=y
49# CONFIG_RELAY is not set
50CONFIG_BLK_DEV_INITRD=y
51CONFIG_INITRAMFS_SOURCE=""
52CONFIG_CC_OPTIMIZE_FOR_SIZE=y
53CONFIG_SYSCTL=y
54CONFIG_EMBEDDED=y
55CONFIG_UID16=y
56# CONFIG_SYSCTL_SYSCALL is not set
57CONFIG_KALLSYMS=y
58# CONFIG_KALLSYMS_ALL is not set
59CONFIG_KALLSYMS_EXTRA_PASS=y
60CONFIG_HOTPLUG=y
61CONFIG_PRINTK=y
62CONFIG_BUG=y
63CONFIG_ELF_CORE=y
64CONFIG_BASE_FULL=y
65CONFIG_FUTEX=y
66CONFIG_ANON_INODES=y
67CONFIG_EPOLL=y
68CONFIG_SIGNALFD=y
69CONFIG_TIMERFD=y
70CONFIG_EVENTFD=y
71CONFIG_SHMEM=y
72CONFIG_VM_EVENT_COUNTERS=y
73CONFIG_SLAB=y
74# CONFIG_SLUB is not set
75# CONFIG_SLOB is not set
76CONFIG_RT_MUTEXES=y
77# CONFIG_TINY_SHMEM is not set
78CONFIG_BASE_SMALL=0
79CONFIG_MODULES=y
80CONFIG_MODULE_UNLOAD=y
81# CONFIG_MODULE_FORCE_UNLOAD is not set
82CONFIG_MODVERSIONS=y
83CONFIG_MODULE_SRCVERSION_ALL=y
84CONFIG_KMOD=y
85CONFIG_BLOCK=y
86# CONFIG_LBD is not set
87# CONFIG_BLK_DEV_IO_TRACE is not set
88# CONFIG_LSF is not set
89# CONFIG_BLK_DEV_BSG is not set
90
91#
92# IO Schedulers
93#
94CONFIG_IOSCHED_NOOP=y
95CONFIG_IOSCHED_AS=y
96CONFIG_IOSCHED_DEADLINE=y
97CONFIG_IOSCHED_CFQ=y
98CONFIG_DEFAULT_AS=y
99# CONFIG_DEFAULT_DEADLINE is not set
100# CONFIG_DEFAULT_CFQ is not set
101# CONFIG_DEFAULT_NOOP is not set
102CONFIG_DEFAULT_IOSCHED="anticipatory"
103
104#
105# System Type
106#
107# CONFIG_ARCH_AAEC2000 is not set
108# CONFIG_ARCH_INTEGRATOR is not set
109# CONFIG_ARCH_REALVIEW is not set
110# CONFIG_ARCH_VERSATILE is not set
111# CONFIG_ARCH_AT91 is not set
112# CONFIG_ARCH_CLPS7500 is not set
113# CONFIG_ARCH_CLPS711X is not set
114# CONFIG_ARCH_CO285 is not set
115# CONFIG_ARCH_EBSA110 is not set
116# CONFIG_ARCH_EP93XX is not set
117# CONFIG_ARCH_FOOTBRIDGE is not set
118# CONFIG_ARCH_NETX is not set
119# CONFIG_ARCH_H720X is not set
120# CONFIG_ARCH_IMX is not set
121# CONFIG_ARCH_IOP13XX is not set
122# CONFIG_ARCH_IOP32X is not set
123# CONFIG_ARCH_IOP33X is not set
124# CONFIG_ARCH_IXP23XX is not set
125# CONFIG_ARCH_IXP2000 is not set
126# CONFIG_ARCH_IXP4XX is not set
127# CONFIG_ARCH_L7200 is not set
128# CONFIG_ARCH_KS8695 is not set
129# CONFIG_ARCH_NS9XXX is not set
130# CONFIG_ARCH_MXC is not set
131# CONFIG_ARCH_PNX4008 is not set
132# CONFIG_ARCH_PXA is not set
133# CONFIG_ARCH_RPC is not set
134# CONFIG_ARCH_SA1100 is not set
135# CONFIG_ARCH_S3C2410 is not set
136# CONFIG_ARCH_SHARK is not set
137# CONFIG_ARCH_LH7A40X is not set
138# CONFIG_ARCH_DAVINCI is not set
139CONFIG_ARCH_OMAP=y
140
141#
142# TI OMAP Implementations
143#
144# CONFIG_ARCH_OMAP1 is not set
145CONFIG_ARCH_OMAP2=y
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151# CONFIG_OMAP_RESET_CLOCKS is not set
152CONFIG_OMAP_BOOT_TAG=y
153# CONFIG_OMAP_BOOT_REASON is not set
154# CONFIG_OMAP_COMPONENT_VERSION is not set
155# CONFIG_OMAP_GPIO_SWITCH is not set
156CONFIG_OMAP_MUX=y
157# CONFIG_OMAP_MUX_DEBUG is not set
158# CONFIG_OMAP_MUX_WARNINGS is not set
159# CONFIG_OMAP_STI is not set
160CONFIG_OMAP_MCBSP=y
161# CONFIG_OMAP_MMU_FWK is not set
162# CONFIG_OMAP_MBOX_FWK is not set
163CONFIG_OMAP_MPU_TIMER=y
164# CONFIG_OMAP_32K_TIMER is not set
165CONFIG_OMAP_DM_TIMER=y
166CONFIG_OMAP_LL_DEBUG_UART1=y
167# CONFIG_OMAP_LL_DEBUG_UART2 is not set
168# CONFIG_OMAP_LL_DEBUG_UART3 is not set
169CONFIG_OMAP_SERIAL_WAKE=y
170# CONFIG_OMAP_DSP is not set
171# CONFIG_MACH_OMAP_GENERIC is not set
172
173#
174# OMAP Core Type
175#
176CONFIG_ARCH_OMAP24XX=y
177# CONFIG_ARCH_OMAP2420 is not set
178CONFIG_ARCH_OMAP2430=y
179
180#
181# OMAP Board Type
182#
183# CONFIG_MACH_NOKIA_N800 is not set
184# CONFIG_MACH_OMAP_H4 is not set
185# CONFIG_MACH_OMAP_APOLLON is not set
186# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
187CONFIG_MACH_OMAP_2430SDP=y
188
189#
190# Boot options
191#
192
193#
194# Power management
195#
196
197#
198# Processor Type
199#
200CONFIG_CPU_32=y
201CONFIG_CPU_V6=y
202# CONFIG_CPU_32v6K is not set
203CONFIG_CPU_32v6=y
204CONFIG_CPU_ABRT_EV6=y
205CONFIG_CPU_PABRT_NOIFAR=y
206CONFIG_CPU_CACHE_V6=y
207CONFIG_CPU_CACHE_VIPT=y
208CONFIG_CPU_COPY_V6=y
209CONFIG_CPU_TLB_V6=y
210CONFIG_CPU_HAS_ASID=y
211CONFIG_CPU_CP15=y
212CONFIG_CPU_CP15_MMU=y
213
214#
215# Processor Features
216#
217CONFIG_ARM_THUMB=y
218# CONFIG_CPU_ICACHE_DISABLE is not set
219# CONFIG_CPU_DCACHE_DISABLE is not set
220# CONFIG_CPU_BPREDICT_DISABLE is not set
221# CONFIG_OUTER_CACHE is not set
222
223#
224# Bus support
225#
226# CONFIG_PCI_SYSCALL is not set
227# CONFIG_ARCH_SUPPORTS_MSI is not set
228
229#
230# PCCARD (PCMCIA/CardBus) support
231#
232# CONFIG_PCCARD is not set
233
234#
235# Kernel Features
236#
237# CONFIG_TICK_ONESHOT is not set
238# CONFIG_NO_HZ is not set
239# CONFIG_HIGH_RES_TIMERS is not set
240CONFIG_PREEMPT=y
241CONFIG_HZ=100
242CONFIG_AEABI=y
243CONFIG_OABI_COMPAT=y
244# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
245CONFIG_SELECT_MEMORY_MODEL=y
246CONFIG_FLATMEM_MANUAL=y
247# CONFIG_DISCONTIGMEM_MANUAL is not set
248# CONFIG_SPARSEMEM_MANUAL is not set
249CONFIG_FLATMEM=y
250CONFIG_FLAT_NODE_MEM_MAP=y
251# CONFIG_SPARSEMEM_STATIC is not set
252CONFIG_SPLIT_PTLOCK_CPUS=4
253# CONFIG_RESOURCES_64BIT is not set
254CONFIG_ZONE_DMA_FLAG=1
255CONFIG_BOUNCE=y
256CONFIG_VIRT_TO_BUS=y
257# CONFIG_LEDS is not set
258CONFIG_ALIGNMENT_TRAP=y
259
260#
261# Boot options
262#
263CONFIG_ZBOOT_ROM_TEXT=0x0
264CONFIG_ZBOOT_ROM_BSS=0x0
265CONFIG_CMDLINE="root=/dev/ram0 rw console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
266# CONFIG_XIP_KERNEL is not set
267# CONFIG_KEXEC is not set
268
269#
270# CPU Frequency scaling
271#
272# CONFIG_CPU_FREQ is not set
273
274#
275# Floating point emulation
276#
277
278#
279# At least one emulation must be selected
280#
281CONFIG_FPE_NWFPE=y
282# CONFIG_FPE_NWFPE_XP is not set
283# CONFIG_FPE_FASTFPE is not set
284# CONFIG_VFP is not set
285
286#
287# Userspace binary formats
288#
289CONFIG_BINFMT_ELF=y
290# CONFIG_BINFMT_AOUT is not set
291CONFIG_BINFMT_MISC=y
292
293#
294# Power management options
295#
296CONFIG_PM=y
297# CONFIG_PM_LEGACY is not set
298# CONFIG_PM_DEBUG is not set
299CONFIG_PM_SLEEP=y
300CONFIG_SUSPEND_UP_POSSIBLE=y
301CONFIG_SUSPEND=y
302# CONFIG_APM_EMULATION is not set
303
304#
305# Networking
306#
307CONFIG_NET=y
308
309#
310# Networking options
311#
312CONFIG_PACKET=y
313# CONFIG_PACKET_MMAP is not set
314CONFIG_UNIX=y
315CONFIG_XFRM=y
316# CONFIG_XFRM_USER is not set
317# CONFIG_XFRM_SUB_POLICY is not set
318# CONFIG_XFRM_MIGRATE is not set
319CONFIG_NET_KEY=y
320# CONFIG_NET_KEY_MIGRATE is not set
321CONFIG_INET=y
322# CONFIG_IP_MULTICAST is not set
323# CONFIG_IP_ADVANCED_ROUTER is not set
324CONFIG_IP_FIB_HASH=y
325CONFIG_IP_PNP=y
326CONFIG_IP_PNP_DHCP=y
327# CONFIG_IP_PNP_BOOTP is not set
328# CONFIG_IP_PNP_RARP is not set
329# CONFIG_NET_IPIP is not set
330# CONFIG_NET_IPGRE is not set
331# CONFIG_ARPD is not set
332# CONFIG_SYN_COOKIES is not set
333# CONFIG_INET_AH is not set
334# CONFIG_INET_ESP is not set
335# CONFIG_INET_IPCOMP is not set
336# CONFIG_INET_XFRM_TUNNEL is not set
337# CONFIG_INET_TUNNEL is not set
338CONFIG_INET_XFRM_MODE_TRANSPORT=y
339CONFIG_INET_XFRM_MODE_TUNNEL=y
340CONFIG_INET_XFRM_MODE_BEET=y
341CONFIG_INET_DIAG=y
342CONFIG_INET_TCP_DIAG=y
343# CONFIG_TCP_CONG_ADVANCED is not set
344CONFIG_TCP_CONG_CUBIC=y
345CONFIG_DEFAULT_TCP_CONG="cubic"
346# CONFIG_TCP_MD5SIG is not set
347# CONFIG_IPV6 is not set
348# CONFIG_INET6_XFRM_TUNNEL is not set
349# CONFIG_INET6_TUNNEL is not set
350# CONFIG_NETWORK_SECMARK is not set
351# CONFIG_NETFILTER is not set
352# CONFIG_IP_DCCP is not set
353# CONFIG_IP_SCTP is not set
354# CONFIG_TIPC is not set
355# CONFIG_ATM is not set
356# CONFIG_BRIDGE is not set
357# CONFIG_VLAN_8021Q is not set
358# CONFIG_DECNET is not set
359# CONFIG_LLC2 is not set
360# CONFIG_IPX is not set
361# CONFIG_ATALK is not set
362# CONFIG_X25 is not set
363# CONFIG_LAPB is not set
364# CONFIG_ECONET is not set
365# CONFIG_WAN_ROUTER is not set
366
367#
368# QoS and/or fair queueing
369#
370# CONFIG_NET_SCHED is not set
371
372#
373# Network testing
374#
375# CONFIG_NET_PKTGEN is not set
376# CONFIG_HAMRADIO is not set
377# CONFIG_IRDA is not set
378# CONFIG_BT is not set
379# CONFIG_AF_RXRPC is not set
380
381#
382# Wireless
383#
384# CONFIG_CFG80211 is not set
385# CONFIG_WIRELESS_EXT is not set
386# CONFIG_MAC80211 is not set
387# CONFIG_IEEE80211 is not set
388# CONFIG_RFKILL is not set
389# CONFIG_NET_9P is not set
390
391#
392# Device Drivers
393#
394
395#
396# Generic Driver Options
397#
398CONFIG_STANDALONE=y
399CONFIG_PREVENT_FIRMWARE_BUILD=y
400# CONFIG_FW_LOADER is not set
401# CONFIG_DEBUG_DRIVER is not set
402# CONFIG_DEBUG_DEVRES is not set
403# CONFIG_SYS_HYPERVISOR is not set
404# CONFIG_CONNECTOR is not set
405CONFIG_MTD=y
406# CONFIG_MTD_DEBUG is not set
407CONFIG_MTD_CONCAT=y
408CONFIG_MTD_PARTITIONS=y
409# CONFIG_MTD_REDBOOT_PARTS is not set
410CONFIG_MTD_CMDLINE_PARTS=y
411# CONFIG_MTD_AFS_PARTS is not set
412
413#
414# User Modules And Translation Layers
415#
416CONFIG_MTD_CHAR=y
417CONFIG_MTD_BLKDEVS=y
418CONFIG_MTD_BLOCK=y
419# CONFIG_FTL is not set
420# CONFIG_NFTL is not set
421# CONFIG_INFTL is not set
422# CONFIG_RFD_FTL is not set
423# CONFIG_SSFDC is not set
424
425#
426# RAM/ROM/Flash chip drivers
427#
428CONFIG_MTD_CFI=y
429# CONFIG_MTD_JEDECPROBE is not set
430CONFIG_MTD_GEN_PROBE=y
431# CONFIG_MTD_CFI_ADV_OPTIONS is not set
432CONFIG_MTD_MAP_BANK_WIDTH_1=y
433CONFIG_MTD_MAP_BANK_WIDTH_2=y
434CONFIG_MTD_MAP_BANK_WIDTH_4=y
435# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
436# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
437# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
438CONFIG_MTD_CFI_I1=y
439CONFIG_MTD_CFI_I2=y
440# CONFIG_MTD_CFI_I4 is not set
441# CONFIG_MTD_CFI_I8 is not set
442CONFIG_MTD_CFI_INTELEXT=y
443# CONFIG_MTD_CFI_AMDSTD is not set
444# CONFIG_MTD_CFI_STAA is not set
445CONFIG_MTD_CFI_UTIL=y
446# CONFIG_MTD_RAM is not set
447# CONFIG_MTD_ROM is not set
448# CONFIG_MTD_ABSENT is not set
449
450#
451# Mapping drivers for chip access
452#
453# CONFIG_MTD_COMPLEX_MAPPINGS is not set
454# CONFIG_MTD_PHYSMAP is not set
455# CONFIG_MTD_ARM_INTEGRATOR is not set
456CONFIG_MTD_OMAP_NOR=y
457# CONFIG_MTD_PLATRAM is not set
458
459#
460# Self-contained MTD device drivers
461#
462# CONFIG_MTD_DATAFLASH is not set
463# CONFIG_MTD_M25P80 is not set
464# CONFIG_MTD_SLRAM is not set
465# CONFIG_MTD_PHRAM is not set
466# CONFIG_MTD_MTDRAM is not set
467# CONFIG_MTD_BLOCK2MTD is not set
468
469#
470# Disk-On-Chip Device Drivers
471#
472# CONFIG_MTD_DOC2000 is not set
473# CONFIG_MTD_DOC2001 is not set
474# CONFIG_MTD_DOC2001PLUS is not set
475# CONFIG_MTD_NAND is not set
476CONFIG_MTD_ONENAND=y
477CONFIG_MTD_ONENAND_VERIFY_WRITE=y
478# CONFIG_MTD_ONENAND_GENERIC is not set
479CONFIG_MTD_ONENAND_OMAP2=y
480# CONFIG_MTD_ONENAND_OTP is not set
481
482#
483# UBI - Unsorted block images
484#
485# CONFIG_MTD_UBI is not set
486# CONFIG_PARPORT is not set
487CONFIG_BLK_DEV=y
488# CONFIG_BLK_DEV_COW_COMMON is not set
489CONFIG_BLK_DEV_LOOP=y
490# CONFIG_BLK_DEV_CRYPTOLOOP is not set
491# CONFIG_BLK_DEV_NBD is not set
492# CONFIG_BLK_DEV_UB is not set
493CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=16384
496CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
497# CONFIG_CDROM_PKTCDVD is not set
498# CONFIG_ATA_OVER_ETH is not set
499
500#
501# SCSI device support
502#
503# CONFIG_RAID_ATTRS is not set
504CONFIG_SCSI=m
505CONFIG_SCSI_DMA=y
506# CONFIG_SCSI_TGT is not set
507# CONFIG_SCSI_NETLINK is not set
508CONFIG_SCSI_PROC_FS=y
509
510#
511# SCSI support type (disk, tape, CD-ROM)
512#
513CONFIG_BLK_DEV_SD=m
514# CONFIG_CHR_DEV_ST is not set
515# CONFIG_CHR_DEV_OSST is not set
516# CONFIG_BLK_DEV_SR is not set
517CONFIG_CHR_DEV_SG=m
518# CONFIG_CHR_DEV_SCH is not set
519
520#
521# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
522#
523# CONFIG_SCSI_MULTI_LUN is not set
524# CONFIG_SCSI_CONSTANTS is not set
525# CONFIG_SCSI_LOGGING is not set
526# CONFIG_SCSI_SCAN_ASYNC is not set
527CONFIG_SCSI_WAIT_SCAN=m
528
529#
530# SCSI Transports
531#
532# CONFIG_SCSI_SPI_ATTRS is not set
533# CONFIG_SCSI_FC_ATTRS is not set
534# CONFIG_SCSI_ISCSI_ATTRS is not set
535# CONFIG_SCSI_SAS_LIBSAS is not set
536CONFIG_SCSI_LOWLEVEL=y
537# CONFIG_ISCSI_TCP is not set
538# CONFIG_SCSI_DEBUG is not set
539# CONFIG_ATA is not set
540# CONFIG_MD is not set
541CONFIG_NETDEVICES=y
542# CONFIG_NETDEVICES_MULTIQUEUE is not set
543# CONFIG_DUMMY is not set
544# CONFIG_BONDING is not set
545# CONFIG_MACVLAN is not set
546# CONFIG_EQUALIZER is not set
547# CONFIG_TUN is not set
548# CONFIG_PHYLIB is not set
549CONFIG_NET_ETHERNET=y
550CONFIG_MII=y
551# CONFIG_AX88796 is not set
552CONFIG_SMC91X=y
553# CONFIG_DM9000 is not set
554CONFIG_NETDEV_1000=y
555CONFIG_NETDEV_10000=y
556
557#
558# Wireless LAN
559#
560# CONFIG_WLAN_PRE80211 is not set
561# CONFIG_WLAN_80211 is not set
562
563#
564# USB Network Adapters
565#
566# CONFIG_USB_CATC is not set
567# CONFIG_USB_KAWETH is not set
568# CONFIG_USB_PEGASUS is not set
569# CONFIG_USB_RTL8150 is not set
570# CONFIG_USB_USBNET_MII is not set
571# CONFIG_USB_USBNET is not set
572# CONFIG_WAN is not set
573# CONFIG_PPP is not set
574# CONFIG_SLIP is not set
575# CONFIG_SHAPER is not set
576# CONFIG_NETCONSOLE is not set
577# CONFIG_NETPOLL is not set
578# CONFIG_NET_POLL_CONTROLLER is not set
579# CONFIG_ISDN is not set
580
581#
582# Input device support
583#
584CONFIG_INPUT=y
585# CONFIG_INPUT_FF_MEMLESS is not set
586# CONFIG_INPUT_POLLDEV is not set
587
588#
589# Userland interfaces
590#
591# CONFIG_INPUT_MOUSEDEV is not set
592# CONFIG_INPUT_JOYDEV is not set
593# CONFIG_INPUT_TSDEV is not set
594CONFIG_INPUT_EVDEV=y
595# CONFIG_INPUT_EVBUG is not set
596
597#
598# Input Device Drivers
599#
600CONFIG_INPUT_KEYBOARD=y
601# CONFIG_KEYBOARD_ATKBD is not set
602# CONFIG_KEYBOARD_SUNKBD is not set
603# CONFIG_KEYBOARD_LKKBD is not set
604# CONFIG_KEYBOARD_XTKBD is not set
605# CONFIG_KEYBOARD_NEWTON is not set
606# CONFIG_KEYBOARD_STOWAWAY is not set
607# CONFIG_KEYBOARD_OMAP is not set
608CONFIG_KEYBOARD_TWL4030=y
609# CONFIG_KEYBOARD_GPIO is not set
610# CONFIG_INPUT_MOUSE is not set
611# CONFIG_INPUT_JOYSTICK is not set
612# CONFIG_INPUT_TABLET is not set
613CONFIG_INPUT_TOUCHSCREEN=y
614CONFIG_TOUCHSCREEN_ADS7846=y
615# CONFIG_TOUCHSCREEN_FUJITSU is not set
616# CONFIG_TOUCHSCREEN_GUNZE is not set
617# CONFIG_TOUCHSCREEN_ELO is not set
618# CONFIG_TOUCHSCREEN_MTOUCH is not set
619# CONFIG_TOUCHSCREEN_MK712 is not set
620# CONFIG_TOUCHSCREEN_PENMOUNT is not set
621# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
622# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
623# CONFIG_TOUCHSCREEN_UCB1400 is not set
624# CONFIG_TOUCHSCREEN_TSC2102 is not set
625# CONFIG_TOUCHSCREEN_TSC210X is not set
626# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
627# CONFIG_INPUT_MISC is not set
628
629#
630# Hardware I/O ports
631#
632# CONFIG_SERIO is not set
633# CONFIG_GAMEPORT is not set
634
635#
636# Character devices
637#
638CONFIG_VT=y
639CONFIG_VT_CONSOLE=y
640CONFIG_HW_CONSOLE=y
641# CONFIG_VT_HW_CONSOLE_BINDING is not set
642# CONFIG_SERIAL_NONSTANDARD is not set
643
644#
645# Serial drivers
646#
647CONFIG_SERIAL_8250=y
648CONFIG_SERIAL_8250_CONSOLE=y
649CONFIG_SERIAL_8250_NR_UARTS=32
650CONFIG_SERIAL_8250_RUNTIME_UARTS=4
651CONFIG_SERIAL_8250_EXTENDED=y
652CONFIG_SERIAL_8250_MANY_PORTS=y
653CONFIG_SERIAL_8250_SHARE_IRQ=y
654CONFIG_SERIAL_8250_DETECT_IRQ=y
655CONFIG_SERIAL_8250_RSA=y
656
657#
658# Non-8250 serial port support
659#
660CONFIG_SERIAL_CORE=y
661CONFIG_SERIAL_CORE_CONSOLE=y
662CONFIG_UNIX98_PTYS=y
663# CONFIG_LEGACY_PTYS is not set
664# CONFIG_IPMI_HANDLER is not set
665CONFIG_WATCHDOG=y
666CONFIG_WATCHDOG_NOWAYOUT=y
667
668#
669# Watchdog Device Drivers
670#
671# CONFIG_SOFT_WATCHDOG is not set
672CONFIG_OMAP_WATCHDOG=y
673
674#
675# USB-based Watchdog Cards
676#
677# CONFIG_USBPCWATCHDOG is not set
678CONFIG_HW_RANDOM=y
679CONFIG_HW_RANDOM_OMAP=y
680# CONFIG_NVRAM is not set
681# CONFIG_R3964 is not set
682# CONFIG_RAW_DRIVER is not set
683# CONFIG_TCG_TPM is not set
684CONFIG_I2C=y
685CONFIG_I2C_BOARDINFO=y
686CONFIG_I2C_CHARDEV=y
687
688#
689# I2C Algorithms
690#
691# CONFIG_I2C_ALGOBIT is not set
692# CONFIG_I2C_ALGOPCF is not set
693# CONFIG_I2C_ALGOPCA is not set
694
695#
696# I2C Hardware Bus support
697#
698# CONFIG_I2C_GPIO is not set
699# CONFIG_I2C_OCORES is not set
700CONFIG_I2C_OMAP=y
701# CONFIG_I2C_PARPORT_LIGHT is not set
702# CONFIG_I2C_SIMTEC is not set
703# CONFIG_I2C_TAOS_EVM is not set
704# CONFIG_I2C_STUB is not set
705# CONFIG_I2C_TINY_USB is not set
706
707#
708# Miscellaneous I2C Chip support
709#
710# CONFIG_SENSORS_DS1337 is not set
711# CONFIG_SENSORS_DS1374 is not set
712# CONFIG_DS1682 is not set
713# CONFIG_SENSORS_EEPROM is not set
714# CONFIG_SENSORS_PCF8574 is not set
715# CONFIG_SENSORS_PCA9539 is not set
716# CONFIG_SENSORS_PCF8591 is not set
717# CONFIG_TPS65010 is not set
718# CONFIG_SENSORS_TLV320AIC23 is not set
719# CONFIG_GPIOEXPANDER_OMAP is not set
720CONFIG_TWL4030_CORE=y
721CONFIG_TWL4030_GPIO=y
722# CONFIG_SENSORS_MAX6875 is not set
723# CONFIG_SENSORS_TSL2550 is not set
724# CONFIG_MENELAUS is not set
725# CONFIG_I2C_DEBUG_CORE is not set
726# CONFIG_I2C_DEBUG_ALGO is not set
727# CONFIG_I2C_DEBUG_BUS is not set
728# CONFIG_I2C_DEBUG_CHIP is not set
729
730#
731# SPI support
732#
733CONFIG_SPI=y
734# CONFIG_SPI_DEBUG is not set
735CONFIG_SPI_MASTER=y
736
737#
738# SPI Master Controller Drivers
739#
740# CONFIG_SPI_BITBANG is not set
741# CONFIG_SPI_OMAP24XX is not set
742
743#
744# SPI Protocol Masters
745#
746# CONFIG_SPI_AT25 is not set
747# CONFIG_SPI_TSC2101 is not set
748# CONFIG_SPI_TSC2102 is not set
749# CONFIG_SPI_TSC210X is not set
750# CONFIG_SPI_TSC2301 is not set
751# CONFIG_SPI_SPIDEV is not set
752# CONFIG_SPI_TLE62X0 is not set
753# CONFIG_W1 is not set
754# CONFIG_HWMON is not set
755CONFIG_MISC_DEVICES=y
756# CONFIG_EEPROM_93CX6 is not set
757
758#
759# Multifunction device drivers
760#
761# CONFIG_MFD_SM501 is not set
762# CONFIG_NEW_LEDS is not set
763
764#
765# Multimedia devices
766#
767# CONFIG_VIDEO_DEV is not set
768# CONFIG_DVB_CORE is not set
769CONFIG_DAB=y
770# CONFIG_USB_DABUSB is not set
771
772#
773# Graphics support
774#
775# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
776
777#
778# Display device support
779#
780# CONFIG_DISPLAY_SUPPORT is not set
781# CONFIG_VGASTATE is not set
782CONFIG_VIDEO_OUTPUT_CONTROL=m
783CONFIG_FB=y
784CONFIG_FIRMWARE_EDID=y
785# CONFIG_FB_DDC is not set
786# CONFIG_FB_CFB_FILLRECT is not set
787# CONFIG_FB_CFB_COPYAREA is not set
788# CONFIG_FB_CFB_IMAGEBLIT is not set
789# CONFIG_FB_SYS_FILLRECT is not set
790# CONFIG_FB_SYS_COPYAREA is not set
791# CONFIG_FB_SYS_IMAGEBLIT is not set
792# CONFIG_FB_SYS_FOPS is not set
793CONFIG_FB_DEFERRED_IO=y
794# CONFIG_FB_SVGALIB is not set
795# CONFIG_FB_MACMODES is not set
796# CONFIG_FB_BACKLIGHT is not set
797# CONFIG_FB_MODE_HELPERS is not set
798# CONFIG_FB_TILEBLITTING is not set
799
800#
801# Frame buffer hardware drivers
802#
803# CONFIG_FB_S1D13XXX is not set
804CONFIG_FB_OMAP=y
805# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
806# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
807CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
808# CONFIG_FB_VIRTUAL is not set
809
810#
811# Console display driver support
812#
813# CONFIG_VGA_CONSOLE is not set
814CONFIG_DUMMY_CONSOLE=y
815CONFIG_FRAMEBUFFER_CONSOLE=y
816# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
817# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
818# CONFIG_FONTS is not set
819CONFIG_FONT_8x8=y
820CONFIG_FONT_8x16=y
821CONFIG_LOGO=y
822# CONFIG_LOGO_LINUX_MONO is not set
823# CONFIG_LOGO_LINUX_VGA16 is not set
824CONFIG_LOGO_LINUX_CLUT224=y
825
826#
827# Sound
828#
829# CONFIG_SOUND is not set
830CONFIG_HID_SUPPORT=y
831CONFIG_HID=y
832# CONFIG_HID_DEBUG is not set
833
834#
835# USB Input Devices
836#
837CONFIG_USB_HID=m
838# CONFIG_USB_HIDINPUT_POWERBOOK is not set
839# CONFIG_HID_FF is not set
840# CONFIG_USB_HIDDEV is not set
841
842#
843# USB HID Boot Protocol drivers
844#
845# CONFIG_USB_KBD is not set
846# CONFIG_USB_MOUSE is not set
847CONFIG_USB_SUPPORT=y
848CONFIG_USB_ARCH_HAS_HCD=y
849CONFIG_USB_ARCH_HAS_OHCI=y
850# CONFIG_USB_ARCH_HAS_EHCI is not set
851CONFIG_USB=m
852# CONFIG_USB_DEBUG is not set
853
854#
855# Miscellaneous USB options
856#
857# CONFIG_USB_DEVICEFS is not set
858# CONFIG_USB_DEVICE_CLASS is not set
859# CONFIG_USB_DYNAMIC_MINORS is not set
860CONFIG_USB_SUSPEND=y
861# CONFIG_USB_PERSIST is not set
862CONFIG_USB_OTG=y
863CONFIG_USB_OTG_WHITELIST=y
864# CONFIG_USB_OTG_BLACKLIST_HUB is not set
865
866#
867# USB Host Controller Drivers
868#
869# CONFIG_USB_ISP116X_HCD is not set
870# CONFIG_USB_OHCI_HCD is not set
871# CONFIG_USB_SL811_HCD is not set
872# CONFIG_USB_R8A66597_HCD is not set
873CONFIG_USB_MUSB_HDRC=m
874CONFIG_USB_MUSB_SOC=y
875
876#
877# OMAP 243x high speed USB support
878#
879# CONFIG_USB_MUSB_HOST is not set
880# CONFIG_USB_MUSB_PERIPHERAL is not set
881CONFIG_USB_MUSB_OTG=y
882CONFIG_USB_GADGET_MUSB_HDRC=y
883CONFIG_USB_MUSB_HDRC_HCD=y
884# CONFIG_MUSB_PIO_ONLY is not set
885CONFIG_USB_INVENTRA_DMA=y
886# CONFIG_USB_TI_CPPI_DMA is not set
887CONFIG_USB_MUSB_LOGLEVEL=0
888
889#
890# USB Device Class drivers
891#
892# CONFIG_USB_ACM is not set
893# CONFIG_USB_PRINTER is not set
894
895#
896# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
897#
898
899#
900# may also be needed; see USB_STORAGE Help for more information
901#
902CONFIG_USB_STORAGE=m
903# CONFIG_USB_STORAGE_DEBUG is not set
904# CONFIG_USB_STORAGE_DATAFAB is not set
905# CONFIG_USB_STORAGE_FREECOM is not set
906# CONFIG_USB_STORAGE_DPCM is not set
907# CONFIG_USB_STORAGE_USBAT is not set
908# CONFIG_USB_STORAGE_SDDR09 is not set
909# CONFIG_USB_STORAGE_SDDR55 is not set
910# CONFIG_USB_STORAGE_JUMPSHOT is not set
911# CONFIG_USB_STORAGE_ALAUDA is not set
912# CONFIG_USB_STORAGE_KARMA is not set
913# CONFIG_USB_LIBUSUAL is not set
914
915#
916# USB Imaging devices
917#
918# CONFIG_USB_MDC800 is not set
919# CONFIG_USB_MICROTEK is not set
920CONFIG_USB_MON=y
921
922#
923# USB port drivers
924#
925
926#
927# USB Serial Converter support
928#
929# CONFIG_USB_SERIAL is not set
930
931#
932# USB Miscellaneous drivers
933#
934# CONFIG_USB_EMI62 is not set
935# CONFIG_USB_EMI26 is not set
936# CONFIG_USB_ADUTUX is not set
937# CONFIG_USB_AUERSWALD is not set
938# CONFIG_USB_RIO500 is not set
939# CONFIG_USB_LEGOTOWER is not set
940# CONFIG_USB_LCD is not set
941# CONFIG_USB_BERRY_CHARGE is not set
942# CONFIG_USB_LED is not set
943# CONFIG_USB_CYPRESS_CY7C63 is not set
944# CONFIG_USB_CYTHERM is not set
945# CONFIG_USB_PHIDGET is not set
946# CONFIG_USB_IDMOUSE is not set
947# CONFIG_USB_FTDI_ELAN is not set
948# CONFIG_USB_APPLEDISPLAY is not set
949# CONFIG_USB_LD is not set
950# CONFIG_USB_TRANCEVIBRATOR is not set
951# CONFIG_USB_IOWARRIOR is not set
952
953#
954# USB DSL modem support
955#
956
957#
958# USB Gadget Support
959#
960CONFIG_USB_GADGET=m
961# CONFIG_USB_GADGET_DEBUG is not set
962CONFIG_USB_GADGET_DEBUG_FILES=y
963CONFIG_USB_GADGET_SELECTED=y
964# CONFIG_USB_GADGET_AMD5536UDC is not set
965# CONFIG_USB_GADGET_FSL_USB2 is not set
966# CONFIG_USB_GADGET_NET2280 is not set
967# CONFIG_USB_GADGET_PXA2XX is not set
968# CONFIG_USB_GADGET_M66592 is not set
969# CONFIG_USB_GADGET_GOKU is not set
970# CONFIG_USB_GADGET_LH7A40X is not set
971# CONFIG_USB_GADGET_OMAP is not set
972# CONFIG_USB_GADGET_S3C2410 is not set
973# CONFIG_USB_GADGET_AT91 is not set
974# CONFIG_USB_GADGET_DUMMY_HCD is not set
975CONFIG_USB_GADGET_DUALSPEED=y
976CONFIG_USB_ZERO=m
977# CONFIG_USB_ZERO_HNPTEST is not set
978CONFIG_USB_ETH=m
979CONFIG_USB_ETH_RNDIS=y
980CONFIG_USB_GADGETFS=m
981CONFIG_USB_FILE_STORAGE=m
982# CONFIG_USB_FILE_STORAGE_TEST is not set
983CONFIG_USB_G_SERIAL=m
984# CONFIG_USB_MIDI_GADGET is not set
985CONFIG_MMC=y
986# CONFIG_MMC_DEBUG is not set
987# CONFIG_MMC_UNSAFE_RESUME is not set
988
989#
990# MMC/SD Card Drivers
991#
992CONFIG_MMC_BLOCK=y
993CONFIG_MMC_BLOCK_BOUNCE=y
994
995#
996# MMC/SD Host Controller Drivers
997#
998CONFIG_MMC_OMAP_HS=y
999CONFIG_RTC_LIB=y
1000# CONFIG_RTC_CLASS is not set
1001
1002#
1003# DMA Engine support
1004#
1005# CONFIG_DMA_ENGINE is not set
1006
1007#
1008# DMA Clients
1009#
1010
1011#
1012# DMA Devices
1013#
1014
1015#
1016# CBUS support
1017#
1018# CONFIG_CBUS is not set
1019
1020#
1021# File systems
1022#
1023CONFIG_EXT2_FS=y
1024# CONFIG_EXT2_FS_XATTR is not set
1025# CONFIG_EXT2_FS_XIP is not set
1026CONFIG_EXT3_FS=y
1027# CONFIG_EXT3_FS_XATTR is not set
1028# CONFIG_EXT4DEV_FS is not set
1029CONFIG_JBD=y
1030# CONFIG_JBD_DEBUG is not set
1031# CONFIG_REISERFS_FS is not set
1032# CONFIG_JFS_FS is not set
1033# CONFIG_FS_POSIX_ACL is not set
1034# CONFIG_XFS_FS is not set
1035# CONFIG_GFS2_FS is not set
1036# CONFIG_OCFS2_FS is not set
1037# CONFIG_MINIX_FS is not set
1038# CONFIG_ROMFS_FS is not set
1039CONFIG_INOTIFY=y
1040CONFIG_INOTIFY_USER=y
1041CONFIG_QUOTA=y
1042# CONFIG_QFMT_V1 is not set
1043CONFIG_QFMT_V2=y
1044CONFIG_QUOTACTL=y
1045CONFIG_DNOTIFY=y
1046# CONFIG_AUTOFS_FS is not set
1047# CONFIG_AUTOFS4_FS is not set
1048# CONFIG_FUSE_FS is not set
1049
1050#
1051# CD-ROM/DVD Filesystems
1052#
1053# CONFIG_ISO9660_FS is not set
1054# CONFIG_UDF_FS is not set
1055
1056#
1057# DOS/FAT/NT Filesystems
1058#
1059CONFIG_FAT_FS=y
1060CONFIG_MSDOS_FS=y
1061CONFIG_VFAT_FS=y
1062CONFIG_FAT_DEFAULT_CODEPAGE=437
1063CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1064# CONFIG_NTFS_FS is not set
1065
1066#
1067# Pseudo filesystems
1068#
1069CONFIG_PROC_FS=y
1070CONFIG_PROC_SYSCTL=y
1071CONFIG_SYSFS=y
1072CONFIG_TMPFS=y
1073# CONFIG_TMPFS_POSIX_ACL is not set
1074# CONFIG_HUGETLB_PAGE is not set
1075CONFIG_RAMFS=y
1076# CONFIG_CONFIGFS_FS is not set
1077
1078#
1079# Miscellaneous filesystems
1080#
1081# CONFIG_ADFS_FS is not set
1082# CONFIG_AFFS_FS is not set
1083# CONFIG_HFS_FS is not set
1084# CONFIG_HFSPLUS_FS is not set
1085# CONFIG_BEFS_FS is not set
1086# CONFIG_BFS_FS is not set
1087# CONFIG_EFS_FS is not set
1088CONFIG_JFFS2_FS=y
1089CONFIG_JFFS2_FS_DEBUG=0
1090CONFIG_JFFS2_FS_WRITEBUFFER=y
1091# CONFIG_JFFS2_SUMMARY is not set
1092# CONFIG_JFFS2_FS_XATTR is not set
1093CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1094CONFIG_JFFS2_ZLIB=y
1095CONFIG_JFFS2_RTIME=y
1096# CONFIG_JFFS2_RUBIN is not set
1097# CONFIG_JFFS2_CMODE_NONE is not set
1098CONFIG_JFFS2_CMODE_PRIORITY=y
1099# CONFIG_JFFS2_CMODE_SIZE is not set
1100# CONFIG_CRAMFS is not set
1101# CONFIG_VXFS_FS is not set
1102# CONFIG_HPFS_FS is not set
1103# CONFIG_QNX4FS_FS is not set
1104# CONFIG_SYSV_FS is not set
1105# CONFIG_UFS_FS is not set
1106
1107#
1108# Network File Systems
1109#
1110CONFIG_NFS_FS=y
1111CONFIG_NFS_V3=y
1112# CONFIG_NFS_V3_ACL is not set
1113# CONFIG_NFS_V4 is not set
1114# CONFIG_NFS_DIRECTIO is not set
1115# CONFIG_NFSD is not set
1116CONFIG_ROOT_NFS=y
1117CONFIG_LOCKD=y
1118CONFIG_LOCKD_V4=y
1119CONFIG_NFS_COMMON=y
1120CONFIG_SUNRPC=y
1121# CONFIG_SUNRPC_BIND34 is not set
1122# CONFIG_RPCSEC_GSS_KRB5 is not set
1123# CONFIG_RPCSEC_GSS_SPKM3 is not set
1124# CONFIG_SMB_FS is not set
1125# CONFIG_CIFS is not set
1126# CONFIG_NCP_FS is not set
1127# CONFIG_CODA_FS is not set
1128# CONFIG_AFS_FS is not set
1129
1130#
1131# Partition Types
1132#
1133CONFIG_PARTITION_ADVANCED=y
1134# CONFIG_ACORN_PARTITION is not set
1135# CONFIG_OSF_PARTITION is not set
1136# CONFIG_AMIGA_PARTITION is not set
1137# CONFIG_ATARI_PARTITION is not set
1138# CONFIG_MAC_PARTITION is not set
1139CONFIG_MSDOS_PARTITION=y
1140# CONFIG_BSD_DISKLABEL is not set
1141# CONFIG_MINIX_SUBPARTITION is not set
1142# CONFIG_SOLARIS_X86_PARTITION is not set
1143# CONFIG_UNIXWARE_DISKLABEL is not set
1144# CONFIG_LDM_PARTITION is not set
1145# CONFIG_SGI_PARTITION is not set
1146# CONFIG_ULTRIX_PARTITION is not set
1147# CONFIG_SUN_PARTITION is not set
1148# CONFIG_KARMA_PARTITION is not set
1149# CONFIG_EFI_PARTITION is not set
1150# CONFIG_SYSV68_PARTITION is not set
1151
1152#
1153# Native Language Support
1154#
1155CONFIG_NLS=y
1156CONFIG_NLS_DEFAULT="iso8859-1"
1157CONFIG_NLS_CODEPAGE_437=y
1158# CONFIG_NLS_CODEPAGE_737 is not set
1159# CONFIG_NLS_CODEPAGE_775 is not set
1160# CONFIG_NLS_CODEPAGE_850 is not set
1161# CONFIG_NLS_CODEPAGE_852 is not set
1162# CONFIG_NLS_CODEPAGE_855 is not set
1163# CONFIG_NLS_CODEPAGE_857 is not set
1164# CONFIG_NLS_CODEPAGE_860 is not set
1165# CONFIG_NLS_CODEPAGE_861 is not set
1166# CONFIG_NLS_CODEPAGE_862 is not set
1167# CONFIG_NLS_CODEPAGE_863 is not set
1168# CONFIG_NLS_CODEPAGE_864 is not set
1169# CONFIG_NLS_CODEPAGE_865 is not set
1170# CONFIG_NLS_CODEPAGE_866 is not set
1171# CONFIG_NLS_CODEPAGE_869 is not set
1172# CONFIG_NLS_CODEPAGE_936 is not set
1173# CONFIG_NLS_CODEPAGE_950 is not set
1174# CONFIG_NLS_CODEPAGE_932 is not set
1175# CONFIG_NLS_CODEPAGE_949 is not set
1176# CONFIG_NLS_CODEPAGE_874 is not set
1177# CONFIG_NLS_ISO8859_8 is not set
1178# CONFIG_NLS_CODEPAGE_1250 is not set
1179# CONFIG_NLS_CODEPAGE_1251 is not set
1180# CONFIG_NLS_ASCII is not set
1181# CONFIG_NLS_ISO8859_1 is not set
1182# CONFIG_NLS_ISO8859_2 is not set
1183# CONFIG_NLS_ISO8859_3 is not set
1184# CONFIG_NLS_ISO8859_4 is not set
1185# CONFIG_NLS_ISO8859_5 is not set
1186# CONFIG_NLS_ISO8859_6 is not set
1187# CONFIG_NLS_ISO8859_7 is not set
1188# CONFIG_NLS_ISO8859_9 is not set
1189# CONFIG_NLS_ISO8859_13 is not set
1190# CONFIG_NLS_ISO8859_14 is not set
1191# CONFIG_NLS_ISO8859_15 is not set
1192# CONFIG_NLS_KOI8_R is not set
1193# CONFIG_NLS_KOI8_U is not set
1194# CONFIG_NLS_UTF8 is not set
1195
1196#
1197# Distributed Lock Manager
1198#
1199# CONFIG_DLM is not set
1200
1201#
1202# Profiling support
1203#
1204# CONFIG_PROFILING is not set
1205
1206#
1207# Kernel hacking
1208#
1209# CONFIG_PRINTK_TIME is not set
1210CONFIG_ENABLE_MUST_CHECK=y
1211CONFIG_MAGIC_SYSRQ=y
1212# CONFIG_UNUSED_SYMBOLS is not set
1213# CONFIG_DEBUG_FS is not set
1214# CONFIG_HEADERS_CHECK is not set
1215CONFIG_DEBUG_KERNEL=y
1216# CONFIG_DEBUG_SHIRQ is not set
1217CONFIG_DETECT_SOFTLOCKUP=y
1218CONFIG_SCHED_DEBUG=y
1219# CONFIG_SCHEDSTATS is not set
1220CONFIG_TIMER_STATS=y
1221# CONFIG_DEBUG_SLAB is not set
1222CONFIG_DEBUG_PREEMPT=y
1223# CONFIG_DEBUG_RT_MUTEXES is not set
1224# CONFIG_RT_MUTEX_TESTER is not set
1225# CONFIG_DEBUG_SPINLOCK is not set
1226CONFIG_DEBUG_MUTEXES=y
1227# CONFIG_DEBUG_LOCK_ALLOC is not set
1228# CONFIG_PROVE_LOCKING is not set
1229# CONFIG_LOCK_STAT is not set
1230# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1231# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1232# CONFIG_DEBUG_KOBJECT is not set
1233# CONFIG_DEBUG_BUGVERBOSE is not set
1234# CONFIG_DEBUG_INFO is not set
1235# CONFIG_DEBUG_VM is not set
1236# CONFIG_DEBUG_LIST is not set
1237CONFIG_FRAME_POINTER=y
1238CONFIG_FORCED_INLINING=y
1239# CONFIG_RCU_TORTURE_TEST is not set
1240# CONFIG_FAULT_INJECTION is not set
1241# CONFIG_DEBUG_USER is not set
1242# CONFIG_DEBUG_ERRORS is not set
1243# CONFIG_DEBUG_LL is not set
1244
1245#
1246# Security options
1247#
1248# CONFIG_KEYS is not set
1249# CONFIG_SECURITY is not set
1250CONFIG_CRYPTO=y
1251CONFIG_CRYPTO_ALGAPI=y
1252CONFIG_CRYPTO_BLKCIPHER=y
1253CONFIG_CRYPTO_MANAGER=y
1254# CONFIG_CRYPTO_HMAC is not set
1255# CONFIG_CRYPTO_XCBC is not set
1256# CONFIG_CRYPTO_NULL is not set
1257# CONFIG_CRYPTO_MD4 is not set
1258CONFIG_CRYPTO_MD5=y
1259# CONFIG_CRYPTO_SHA1 is not set
1260# CONFIG_CRYPTO_SHA256 is not set
1261# CONFIG_CRYPTO_SHA512 is not set
1262# CONFIG_CRYPTO_WP512 is not set
1263# CONFIG_CRYPTO_TGR192 is not set
1264# CONFIG_CRYPTO_GF128MUL is not set
1265CONFIG_CRYPTO_ECB=m
1266CONFIG_CRYPTO_CBC=y
1267CONFIG_CRYPTO_PCBC=m
1268# CONFIG_CRYPTO_LRW is not set
1269# CONFIG_CRYPTO_CRYPTD is not set
1270CONFIG_CRYPTO_DES=y
1271# CONFIG_CRYPTO_FCRYPT is not set
1272# CONFIG_CRYPTO_BLOWFISH is not set
1273# CONFIG_CRYPTO_TWOFISH is not set
1274# CONFIG_CRYPTO_SERPENT is not set
1275# CONFIG_CRYPTO_AES is not set
1276# CONFIG_CRYPTO_CAST5 is not set
1277# CONFIG_CRYPTO_CAST6 is not set
1278# CONFIG_CRYPTO_TEA is not set
1279# CONFIG_CRYPTO_ARC4 is not set
1280# CONFIG_CRYPTO_KHAZAD is not set
1281# CONFIG_CRYPTO_ANUBIS is not set
1282# CONFIG_CRYPTO_DEFLATE is not set
1283# CONFIG_CRYPTO_MICHAEL_MIC is not set
1284# CONFIG_CRYPTO_CRC32C is not set
1285# CONFIG_CRYPTO_CAMELLIA is not set
1286# CONFIG_CRYPTO_TEST is not set
1287CONFIG_CRYPTO_HW=y
1288
1289#
1290# Library routines
1291#
1292CONFIG_BITREVERSE=y
1293CONFIG_CRC_CCITT=y
1294# CONFIG_CRC16 is not set
1295# CONFIG_CRC_ITU_T is not set
1296CONFIG_CRC32=y
1297# CONFIG_CRC7 is not set
1298CONFIG_LIBCRC32C=y
1299CONFIG_ZLIB_INFLATE=y
1300CONFIG_ZLIB_DEFLATE=y
1301CONFIG_PLIST=y
1302CONFIG_HAS_IOMEM=y
1303CONFIG_HAS_IOPORT=y
1304CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_apollon_2420_defconfig b/arch/arm/configs/omap_apollon_2420_defconfig
new file mode 100644
index 000000000000..bb39dfc72d69
--- /dev/null
+++ b/arch/arm/configs/omap_apollon_2420_defconfig
@@ -0,0 +1,962 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 12:07:29 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36# CONFIG_LOCALVERSION_AUTO is not set
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41CONFIG_BSD_PROCESS_ACCT=y
42# CONFIG_BSD_PROCESS_ACCT_V3 is not set
43# CONFIG_TASKSTATS is not set
44# CONFIG_USER_NS is not set
45# CONFIG_AUDIT is not set
46# CONFIG_IKCONFIG is not set
47CONFIG_LOG_BUF_SHIFT=14
48CONFIG_SYSFS_DEPRECATED=y
49# CONFIG_RELAY is not set
50# CONFIG_BLK_DEV_INITRD is not set
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58CONFIG_KALLSYMS_EXTRA_PASS=y
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80# CONFIG_MODULE_FORCE_UNLOAD is not set
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP_OTG=y
144# CONFIG_ARCH_OMAP1 is not set
145CONFIG_ARCH_OMAP2=y
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151# CONFIG_OMAP_RESET_CLOCKS is not set
152# CONFIG_OMAP_BOOT_TAG is not set
153# CONFIG_OMAP_GPIO_SWITCH is not set
154CONFIG_OMAP_MUX=y
155# CONFIG_OMAP_MUX_DEBUG is not set
156CONFIG_OMAP_MUX_WARNINGS=y
157# CONFIG_OMAP_STI is not set
158# CONFIG_OMAP_MCBSP is not set
159# CONFIG_OMAP_MMU_FWK is not set
160# CONFIG_OMAP_MBOX_FWK is not set
161# CONFIG_OMAP_MPU_TIMER is not set
162CONFIG_OMAP_32K_TIMER=y
163CONFIG_OMAP_32K_TIMER_HZ=128
164CONFIG_OMAP_DM_TIMER=y
165CONFIG_OMAP_LL_DEBUG_UART1=y
166# CONFIG_OMAP_LL_DEBUG_UART2 is not set
167# CONFIG_OMAP_LL_DEBUG_UART3 is not set
168CONFIG_OMAP_SERIAL_WAKE=y
169# CONFIG_OMAP_DSP is not set
170# CONFIG_MACH_OMAP_GENERIC is not set
171
172#
173# OMAP Core Type
174#
175CONFIG_ARCH_OMAP24XX=y
176CONFIG_ARCH_OMAP2420=y
177# CONFIG_ARCH_OMAP2430 is not set
178
179#
180# OMAP Board Type
181#
182# CONFIG_MACH_NOKIA_N800 is not set
183# CONFIG_MACH_OMAP_H4 is not set
184CONFIG_MACH_OMAP_APOLLON=y
185# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
186# CONFIG_MACH_OMAP_2430SDP is not set
187
188#
189# Boot options
190#
191
192#
193# Power management
194#
195
196#
197# Processor Type
198#
199CONFIG_CPU_32=y
200CONFIG_CPU_V6=y
201# CONFIG_CPU_32v6K is not set
202CONFIG_CPU_32v6=y
203CONFIG_CPU_ABRT_EV6=y
204CONFIG_CPU_PABRT_NOIFAR=y
205CONFIG_CPU_CACHE_V6=y
206CONFIG_CPU_CACHE_VIPT=y
207CONFIG_CPU_COPY_V6=y
208CONFIG_CPU_TLB_V6=y
209CONFIG_CPU_HAS_ASID=y
210CONFIG_CPU_CP15=y
211CONFIG_CPU_CP15_MMU=y
212
213#
214# Processor Features
215#
216# CONFIG_ARM_THUMB is not set
217# CONFIG_CPU_ICACHE_DISABLE is not set
218# CONFIG_CPU_DCACHE_DISABLE is not set
219# CONFIG_CPU_BPREDICT_DISABLE is not set
220# CONFIG_OUTER_CACHE is not set
221
222#
223# Bus support
224#
225# CONFIG_PCI_SYSCALL is not set
226# CONFIG_ARCH_SUPPORTS_MSI is not set
227
228#
229# PCCARD (PCMCIA/CardBus) support
230#
231# CONFIG_PCCARD is not set
232
233#
234# Kernel Features
235#
236# CONFIG_TICK_ONESHOT is not set
237# CONFIG_NO_HZ is not set
238# CONFIG_HIGH_RES_TIMERS is not set
239CONFIG_PREEMPT=y
240CONFIG_HZ=128
241# CONFIG_AEABI is not set
242# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
243CONFIG_SELECT_MEMORY_MODEL=y
244CONFIG_FLATMEM_MANUAL=y
245# CONFIG_DISCONTIGMEM_MANUAL is not set
246# CONFIG_SPARSEMEM_MANUAL is not set
247CONFIG_FLATMEM=y
248CONFIG_FLAT_NODE_MEM_MAP=y
249# CONFIG_SPARSEMEM_STATIC is not set
250CONFIG_SPLIT_PTLOCK_CPUS=4
251# CONFIG_RESOURCES_64BIT is not set
252CONFIG_ZONE_DMA_FLAG=1
253CONFIG_BOUNCE=y
254CONFIG_VIRT_TO_BUS=y
255# CONFIG_LEDS is not set
256CONFIG_ALIGNMENT_TRAP=y
257
258#
259# Boot options
260#
261CONFIG_ZBOOT_ROM_TEXT=0x0
262CONFIG_ZBOOT_ROM_BSS=0x0
263CONFIG_CMDLINE="root=/dev/ram0 rw mem=128M console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
264# CONFIG_XIP_KERNEL is not set
265# CONFIG_KEXEC is not set
266
267#
268# CPU Frequency scaling
269#
270# CONFIG_CPU_FREQ is not set
271
272#
273# Floating point emulation
274#
275
276#
277# At least one emulation must be selected
278#
279# CONFIG_FPE_NWFPE is not set
280# CONFIG_FPE_FASTFPE is not set
281CONFIG_VFP=y
282
283#
284# Userspace binary formats
285#
286CONFIG_BINFMT_ELF=y
287# CONFIG_BINFMT_AOUT is not set
288# CONFIG_BINFMT_MISC is not set
289# CONFIG_ARTHUR is not set
290
291#
292# Power management options
293#
294# CONFIG_PM is not set
295CONFIG_SUSPEND_UP_POSSIBLE=y
296
297#
298# Networking
299#
300CONFIG_NET=y
301
302#
303# Networking options
304#
305CONFIG_PACKET=y
306# CONFIG_PACKET_MMAP is not set
307CONFIG_UNIX=y
308CONFIG_XFRM=y
309# CONFIG_XFRM_USER is not set
310# CONFIG_XFRM_SUB_POLICY is not set
311# CONFIG_XFRM_MIGRATE is not set
312# CONFIG_NET_KEY is not set
313CONFIG_INET=y
314# CONFIG_IP_MULTICAST is not set
315# CONFIG_IP_ADVANCED_ROUTER is not set
316CONFIG_IP_FIB_HASH=y
317CONFIG_IP_PNP=y
318CONFIG_IP_PNP_DHCP=y
319CONFIG_IP_PNP_BOOTP=y
320# CONFIG_IP_PNP_RARP is not set
321# CONFIG_NET_IPIP is not set
322# CONFIG_NET_IPGRE is not set
323# CONFIG_ARPD is not set
324# CONFIG_SYN_COOKIES is not set
325# CONFIG_INET_AH is not set
326# CONFIG_INET_ESP is not set
327# CONFIG_INET_IPCOMP is not set
328# CONFIG_INET_XFRM_TUNNEL is not set
329# CONFIG_INET_TUNNEL is not set
330CONFIG_INET_XFRM_MODE_TRANSPORT=y
331CONFIG_INET_XFRM_MODE_TUNNEL=y
332CONFIG_INET_XFRM_MODE_BEET=y
333CONFIG_INET_DIAG=y
334CONFIG_INET_TCP_DIAG=y
335# CONFIG_TCP_CONG_ADVANCED is not set
336CONFIG_TCP_CONG_CUBIC=y
337CONFIG_DEFAULT_TCP_CONG="cubic"
338# CONFIG_TCP_MD5SIG is not set
339# CONFIG_IPV6 is not set
340# CONFIG_INET6_XFRM_TUNNEL is not set
341# CONFIG_INET6_TUNNEL is not set
342# CONFIG_NETWORK_SECMARK is not set
343# CONFIG_NETFILTER is not set
344# CONFIG_IP_DCCP is not set
345# CONFIG_IP_SCTP is not set
346# CONFIG_TIPC is not set
347# CONFIG_ATM is not set
348# CONFIG_BRIDGE is not set
349# CONFIG_VLAN_8021Q is not set
350# CONFIG_DECNET is not set
351# CONFIG_LLC2 is not set
352# CONFIG_IPX is not set
353# CONFIG_ATALK is not set
354# CONFIG_X25 is not set
355# CONFIG_LAPB is not set
356# CONFIG_ECONET is not set
357# CONFIG_WAN_ROUTER is not set
358
359#
360# QoS and/or fair queueing
361#
362# CONFIG_NET_SCHED is not set
363
364#
365# Network testing
366#
367# CONFIG_NET_PKTGEN is not set
368# CONFIG_HAMRADIO is not set
369# CONFIG_IRDA is not set
370# CONFIG_BT is not set
371# CONFIG_AF_RXRPC is not set
372
373#
374# Wireless
375#
376# CONFIG_CFG80211 is not set
377# CONFIG_WIRELESS_EXT is not set
378# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set
380# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set
382
383#
384# Device Drivers
385#
386
387#
388# Generic Driver Options
389#
390CONFIG_STANDALONE=y
391CONFIG_PREVENT_FIRMWARE_BUILD=y
392# CONFIG_FW_LOADER is not set
393# CONFIG_DEBUG_DRIVER is not set
394# CONFIG_DEBUG_DEVRES is not set
395# CONFIG_SYS_HYPERVISOR is not set
396# CONFIG_CONNECTOR is not set
397CONFIG_MTD=y
398# CONFIG_MTD_DEBUG is not set
399CONFIG_MTD_CONCAT=y
400CONFIG_MTD_PARTITIONS=y
401# CONFIG_MTD_REDBOOT_PARTS is not set
402CONFIG_MTD_CMDLINE_PARTS=y
403# CONFIG_MTD_AFS_PARTS is not set
404
405#
406# User Modules And Translation Layers
407#
408CONFIG_MTD_CHAR=y
409CONFIG_MTD_BLKDEVS=y
410CONFIG_MTD_BLOCK=y
411# CONFIG_FTL is not set
412# CONFIG_NFTL is not set
413# CONFIG_INFTL is not set
414# CONFIG_RFD_FTL is not set
415# CONFIG_SSFDC is not set
416
417#
418# RAM/ROM/Flash chip drivers
419#
420# CONFIG_MTD_CFI is not set
421# CONFIG_MTD_JEDECPROBE is not set
422CONFIG_MTD_MAP_BANK_WIDTH_1=y
423CONFIG_MTD_MAP_BANK_WIDTH_2=y
424CONFIG_MTD_MAP_BANK_WIDTH_4=y
425# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
426# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
427# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
428CONFIG_MTD_CFI_I1=y
429CONFIG_MTD_CFI_I2=y
430# CONFIG_MTD_CFI_I4 is not set
431# CONFIG_MTD_CFI_I8 is not set
432# CONFIG_MTD_RAM is not set
433# CONFIG_MTD_ROM is not set
434# CONFIG_MTD_ABSENT is not set
435
436#
437# Mapping drivers for chip access
438#
439# CONFIG_MTD_COMPLEX_MAPPINGS is not set
440# CONFIG_MTD_PLATRAM is not set
441
442#
443# Self-contained MTD device drivers
444#
445# CONFIG_MTD_DATAFLASH is not set
446# CONFIG_MTD_M25P80 is not set
447# CONFIG_MTD_SLRAM is not set
448# CONFIG_MTD_PHRAM is not set
449# CONFIG_MTD_MTDRAM is not set
450# CONFIG_MTD_BLOCK2MTD is not set
451
452#
453# Disk-On-Chip Device Drivers
454#
455# CONFIG_MTD_DOC2000 is not set
456# CONFIG_MTD_DOC2001 is not set
457# CONFIG_MTD_DOC2001PLUS is not set
458# CONFIG_MTD_NAND is not set
459CONFIG_MTD_ONENAND=y
460# CONFIG_MTD_ONENAND_VERIFY_WRITE is not set
461CONFIG_MTD_ONENAND_GENERIC=y
462# CONFIG_MTD_ONENAND_OMAP2 is not set
463# CONFIG_MTD_ONENAND_OTP is not set
464
465#
466# UBI - Unsorted block images
467#
468# CONFIG_MTD_UBI is not set
469# CONFIG_PARPORT is not set
470CONFIG_BLK_DEV=y
471# CONFIG_BLK_DEV_COW_COMMON is not set
472CONFIG_BLK_DEV_LOOP=y
473# CONFIG_BLK_DEV_CRYPTOLOOP is not set
474# CONFIG_BLK_DEV_NBD is not set
475# CONFIG_BLK_DEV_RAM is not set
476# CONFIG_CDROM_PKTCDVD is not set
477# CONFIG_ATA_OVER_ETH is not set
478
479#
480# SCSI device support
481#
482# CONFIG_RAID_ATTRS is not set
483# CONFIG_SCSI is not set
484# CONFIG_SCSI_DMA is not set
485# CONFIG_SCSI_NETLINK is not set
486# CONFIG_ATA is not set
487# CONFIG_MD is not set
488CONFIG_NETDEVICES=y
489# CONFIG_NETDEVICES_MULTIQUEUE is not set
490# CONFIG_DUMMY is not set
491# CONFIG_BONDING is not set
492# CONFIG_MACVLAN is not set
493# CONFIG_EQUALIZER is not set
494# CONFIG_TUN is not set
495# CONFIG_PHYLIB is not set
496CONFIG_NET_ETHERNET=y
497CONFIG_MII=y
498# CONFIG_AX88796 is not set
499CONFIG_SMC91X=y
500# CONFIG_DM9000 is not set
501CONFIG_NETDEV_1000=y
502CONFIG_NETDEV_10000=y
503
504#
505# Wireless LAN
506#
507# CONFIG_WLAN_PRE80211 is not set
508# CONFIG_WLAN_80211 is not set
509# CONFIG_WAN is not set
510# CONFIG_PPP is not set
511# CONFIG_SLIP is not set
512# CONFIG_SHAPER is not set
513# CONFIG_NETCONSOLE is not set
514# CONFIG_NETPOLL is not set
515# CONFIG_NET_POLL_CONTROLLER is not set
516# CONFIG_ISDN is not set
517
518#
519# Input device support
520#
521CONFIG_INPUT=y
522# CONFIG_INPUT_FF_MEMLESS is not set
523# CONFIG_INPUT_POLLDEV is not set
524
525#
526# Userland interfaces
527#
528CONFIG_INPUT_MOUSEDEV=y
529# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
530CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
531CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
532# CONFIG_INPUT_JOYDEV is not set
533# CONFIG_INPUT_TSDEV is not set
534# CONFIG_INPUT_EVDEV is not set
535# CONFIG_INPUT_EVBUG is not set
536
537#
538# Input Device Drivers
539#
540# CONFIG_INPUT_KEYBOARD is not set
541# CONFIG_INPUT_MOUSE is not set
542# CONFIG_INPUT_JOYSTICK is not set
543# CONFIG_INPUT_TABLET is not set
544# CONFIG_INPUT_TOUCHSCREEN is not set
545# CONFIG_INPUT_MISC is not set
546
547#
548# Hardware I/O ports
549#
550# CONFIG_SERIO is not set
551# CONFIG_GAMEPORT is not set
552
553#
554# Character devices
555#
556CONFIG_VT=y
557CONFIG_VT_CONSOLE=y
558CONFIG_HW_CONSOLE=y
559# CONFIG_VT_HW_CONSOLE_BINDING is not set
560# CONFIG_SERIAL_NONSTANDARD is not set
561
562#
563# Serial drivers
564#
565CONFIG_SERIAL_8250=y
566CONFIG_SERIAL_8250_CONSOLE=y
567CONFIG_SERIAL_8250_NR_UARTS=32
568CONFIG_SERIAL_8250_RUNTIME_UARTS=4
569CONFIG_SERIAL_8250_EXTENDED=y
570CONFIG_SERIAL_8250_MANY_PORTS=y
571CONFIG_SERIAL_8250_SHARE_IRQ=y
572CONFIG_SERIAL_8250_DETECT_IRQ=y
573CONFIG_SERIAL_8250_RSA=y
574
575#
576# Non-8250 serial port support
577#
578CONFIG_SERIAL_CORE=y
579CONFIG_SERIAL_CORE_CONSOLE=y
580CONFIG_UNIX98_PTYS=y
581# CONFIG_LEGACY_PTYS is not set
582# CONFIG_IPMI_HANDLER is not set
583CONFIG_WATCHDOG=y
584# CONFIG_WATCHDOG_NOWAYOUT is not set
585
586#
587# Watchdog Device Drivers
588#
589# CONFIG_SOFT_WATCHDOG is not set
590CONFIG_OMAP_WATCHDOG=y
591CONFIG_HW_RANDOM=y
592CONFIG_HW_RANDOM_OMAP=y
593# CONFIG_NVRAM is not set
594# CONFIG_R3964 is not set
595# CONFIG_RAW_DRIVER is not set
596# CONFIG_TCG_TPM is not set
597# CONFIG_I2C is not set
598
599#
600# SPI support
601#
602CONFIG_SPI=y
603# CONFIG_SPI_DEBUG is not set
604CONFIG_SPI_MASTER=y
605
606#
607# SPI Master Controller Drivers
608#
609# CONFIG_SPI_BITBANG is not set
610CONFIG_SPI_OMAP24XX=y
611
612#
613# SPI Protocol Masters
614#
615# CONFIG_SPI_AT25 is not set
616# CONFIG_SPI_TSC2101 is not set
617# CONFIG_SPI_TSC2102 is not set
618# CONFIG_SPI_TSC210X is not set
619# CONFIG_SPI_TSC2301 is not set
620# CONFIG_SPI_SPIDEV is not set
621# CONFIG_SPI_TLE62X0 is not set
622# CONFIG_W1 is not set
623# CONFIG_HWMON is not set
624CONFIG_MISC_DEVICES=y
625# CONFIG_EEPROM_93CX6 is not set
626
627#
628# Multifunction device drivers
629#
630# CONFIG_MFD_SM501 is not set
631# CONFIG_NEW_LEDS is not set
632
633#
634# Multimedia devices
635#
636# CONFIG_VIDEO_DEV is not set
637# CONFIG_DVB_CORE is not set
638CONFIG_DAB=y
639
640#
641# Graphics support
642#
643# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
644
645#
646# Display device support
647#
648# CONFIG_DISPLAY_SUPPORT is not set
649# CONFIG_VGASTATE is not set
650CONFIG_VIDEO_OUTPUT_CONTROL=m
651CONFIG_FB=y
652CONFIG_FIRMWARE_EDID=y
653# CONFIG_FB_DDC is not set
654# CONFIG_FB_CFB_FILLRECT is not set
655# CONFIG_FB_CFB_COPYAREA is not set
656# CONFIG_FB_CFB_IMAGEBLIT is not set
657# CONFIG_FB_SYS_FILLRECT is not set
658# CONFIG_FB_SYS_COPYAREA is not set
659# CONFIG_FB_SYS_IMAGEBLIT is not set
660# CONFIG_FB_SYS_FOPS is not set
661CONFIG_FB_DEFERRED_IO=y
662# CONFIG_FB_SVGALIB is not set
663# CONFIG_FB_MACMODES is not set
664# CONFIG_FB_BACKLIGHT is not set
665# CONFIG_FB_MODE_HELPERS is not set
666# CONFIG_FB_TILEBLITTING is not set
667
668#
669# Frame buffer hardware drivers
670#
671# CONFIG_FB_S1D13XXX is not set
672CONFIG_FB_OMAP=y
673# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
674# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
675CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
676# CONFIG_FB_VIRTUAL is not set
677
678#
679# Console display driver support
680#
681# CONFIG_VGA_CONSOLE is not set
682CONFIG_DUMMY_CONSOLE=y
683CONFIG_FRAMEBUFFER_CONSOLE=y
684# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
685# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
686CONFIG_FONTS=y
687CONFIG_FONT_8x8=y
688CONFIG_FONT_8x16=y
689# CONFIG_FONT_6x11 is not set
690# CONFIG_FONT_7x14 is not set
691# CONFIG_FONT_PEARL_8x8 is not set
692# CONFIG_FONT_ACORN_8x8 is not set
693# CONFIG_FONT_MINI_4x6 is not set
694# CONFIG_FONT_SUN8x16 is not set
695# CONFIG_FONT_SUN12x22 is not set
696# CONFIG_FONT_10x18 is not set
697CONFIG_LOGO=y
698# CONFIG_LOGO_LINUX_MONO is not set
699# CONFIG_LOGO_LINUX_VGA16 is not set
700CONFIG_LOGO_LINUX_CLUT224=y
701
702#
703# Sound
704#
705# CONFIG_SOUND is not set
706CONFIG_HID_SUPPORT=y
707# CONFIG_HID is not set
708CONFIG_USB_SUPPORT=y
709CONFIG_USB_ARCH_HAS_HCD=y
710CONFIG_USB_ARCH_HAS_OHCI=y
711# CONFIG_USB_ARCH_HAS_EHCI is not set
712# CONFIG_USB is not set
713# CONFIG_USB_MUSB_HDRC is not set
714# CONFIG_USB_GADGET_MUSB_HDRC is not set
715
716#
717# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
718#
719
720#
721# USB Gadget Support
722#
723CONFIG_USB_GADGET=y
724# CONFIG_USB_GADGET_DEBUG is not set
725# CONFIG_USB_GADGET_DEBUG_FILES is not set
726CONFIG_USB_GADGET_SELECTED=y
727# CONFIG_USB_GADGET_AMD5536UDC is not set
728# CONFIG_USB_GADGET_FSL_USB2 is not set
729# CONFIG_USB_GADGET_NET2280 is not set
730# CONFIG_USB_GADGET_PXA2XX is not set
731# CONFIG_USB_GADGET_M66592 is not set
732# CONFIG_USB_GADGET_GOKU is not set
733# CONFIG_USB_GADGET_LH7A40X is not set
734CONFIG_USB_GADGET_OMAP=y
735CONFIG_USB_OMAP=y
736# CONFIG_USB_GADGET_S3C2410 is not set
737# CONFIG_USB_GADGET_AT91 is not set
738# CONFIG_USB_GADGET_DUMMY_HCD is not set
739# CONFIG_USB_GADGET_DUALSPEED is not set
740# CONFIG_USB_ZERO is not set
741CONFIG_USB_ETH=m
742CONFIG_USB_ETH_RNDIS=y
743# CONFIG_USB_GADGETFS is not set
744CONFIG_USB_FILE_STORAGE=m
745# CONFIG_USB_FILE_STORAGE_TEST is not set
746# CONFIG_USB_G_SERIAL is not set
747# CONFIG_USB_MIDI_GADGET is not set
748CONFIG_MMC=y
749# CONFIG_MMC_DEBUG is not set
750# CONFIG_MMC_UNSAFE_RESUME is not set
751
752#
753# MMC/SD Card Drivers
754#
755CONFIG_MMC_BLOCK=y
756CONFIG_MMC_BLOCK_BOUNCE=y
757
758#
759# MMC/SD Host Controller Drivers
760#
761CONFIG_MMC_OMAP=y
762CONFIG_RTC_LIB=y
763# CONFIG_RTC_CLASS is not set
764
765#
766# DMA Engine support
767#
768# CONFIG_DMA_ENGINE is not set
769
770#
771# DMA Clients
772#
773
774#
775# DMA Devices
776#
777
778#
779# CBUS support
780#
781# CONFIG_CBUS is not set
782
783#
784# File systems
785#
786CONFIG_EXT2_FS=y
787# CONFIG_EXT2_FS_XATTR is not set
788# CONFIG_EXT2_FS_XIP is not set
789# CONFIG_EXT3_FS is not set
790# CONFIG_EXT4DEV_FS is not set
791# CONFIG_REISERFS_FS is not set
792# CONFIG_JFS_FS is not set
793# CONFIG_FS_POSIX_ACL is not set
794# CONFIG_XFS_FS is not set
795# CONFIG_GFS2_FS is not set
796# CONFIG_OCFS2_FS is not set
797# CONFIG_MINIX_FS is not set
798# CONFIG_ROMFS_FS is not set
799# CONFIG_INOTIFY is not set
800# CONFIG_QUOTA is not set
801CONFIG_DNOTIFY=y
802# CONFIG_AUTOFS_FS is not set
803CONFIG_AUTOFS4_FS=y
804# CONFIG_FUSE_FS is not set
805
806#
807# CD-ROM/DVD Filesystems
808#
809# CONFIG_ISO9660_FS is not set
810# CONFIG_UDF_FS is not set
811
812#
813# DOS/FAT/NT Filesystems
814#
815# CONFIG_MSDOS_FS is not set
816# CONFIG_VFAT_FS is not set
817# CONFIG_NTFS_FS is not set
818
819#
820# Pseudo filesystems
821#
822CONFIG_PROC_FS=y
823CONFIG_PROC_SYSCTL=y
824CONFIG_SYSFS=y
825CONFIG_TMPFS=y
826# CONFIG_TMPFS_POSIX_ACL is not set
827# CONFIG_HUGETLB_PAGE is not set
828CONFIG_RAMFS=y
829# CONFIG_CONFIGFS_FS is not set
830
831#
832# Miscellaneous filesystems
833#
834# CONFIG_ADFS_FS is not set
835# CONFIG_AFFS_FS is not set
836# CONFIG_HFS_FS is not set
837# CONFIG_HFSPLUS_FS is not set
838# CONFIG_BEFS_FS is not set
839# CONFIG_BFS_FS is not set
840# CONFIG_EFS_FS is not set
841CONFIG_JFFS2_FS=y
842CONFIG_JFFS2_FS_DEBUG=0
843CONFIG_JFFS2_FS_WRITEBUFFER=y
844# CONFIG_JFFS2_SUMMARY is not set
845# CONFIG_JFFS2_FS_XATTR is not set
846# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
847CONFIG_JFFS2_ZLIB=y
848CONFIG_JFFS2_RTIME=y
849# CONFIG_JFFS2_RUBIN is not set
850CONFIG_CRAMFS=y
851# CONFIG_VXFS_FS is not set
852# CONFIG_HPFS_FS is not set
853# CONFIG_QNX4FS_FS is not set
854# CONFIG_SYSV_FS is not set
855# CONFIG_UFS_FS is not set
856
857#
858# Network File Systems
859#
860CONFIG_NFS_FS=y
861CONFIG_NFS_V3=y
862# CONFIG_NFS_V3_ACL is not set
863# CONFIG_NFS_V4 is not set
864# CONFIG_NFS_DIRECTIO is not set
865# CONFIG_NFSD is not set
866CONFIG_ROOT_NFS=y
867CONFIG_LOCKD=y
868CONFIG_LOCKD_V4=y
869CONFIG_NFS_COMMON=y
870CONFIG_SUNRPC=y
871# CONFIG_SUNRPC_BIND34 is not set
872# CONFIG_RPCSEC_GSS_KRB5 is not set
873# CONFIG_RPCSEC_GSS_SPKM3 is not set
874# CONFIG_SMB_FS is not set
875# CONFIG_CIFS is not set
876# CONFIG_NCP_FS is not set
877# CONFIG_CODA_FS is not set
878# CONFIG_AFS_FS is not set
879
880#
881# Partition Types
882#
883# CONFIG_PARTITION_ADVANCED is not set
884CONFIG_MSDOS_PARTITION=y
885
886#
887# Native Language Support
888#
889# CONFIG_NLS is not set
890
891#
892# Distributed Lock Manager
893#
894# CONFIG_DLM is not set
895
896#
897# Profiling support
898#
899# CONFIG_PROFILING is not set
900
901#
902# Kernel hacking
903#
904# CONFIG_PRINTK_TIME is not set
905CONFIG_ENABLE_MUST_CHECK=y
906# CONFIG_MAGIC_SYSRQ is not set
907# CONFIG_UNUSED_SYMBOLS is not set
908# CONFIG_DEBUG_FS is not set
909# CONFIG_HEADERS_CHECK is not set
910CONFIG_DEBUG_KERNEL=y
911# CONFIG_DEBUG_SHIRQ is not set
912CONFIG_DETECT_SOFTLOCKUP=y
913CONFIG_SCHED_DEBUG=y
914# CONFIG_SCHEDSTATS is not set
915# CONFIG_TIMER_STATS is not set
916# CONFIG_DEBUG_SLAB is not set
917CONFIG_DEBUG_PREEMPT=y
918# CONFIG_DEBUG_RT_MUTEXES is not set
919# CONFIG_RT_MUTEX_TESTER is not set
920CONFIG_DEBUG_SPINLOCK=y
921CONFIG_DEBUG_MUTEXES=y
922# CONFIG_DEBUG_LOCK_ALLOC is not set
923# CONFIG_PROVE_LOCKING is not set
924# CONFIG_LOCK_STAT is not set
925CONFIG_DEBUG_SPINLOCK_SLEEP=y
926# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
927# CONFIG_DEBUG_KOBJECT is not set
928CONFIG_DEBUG_BUGVERBOSE=y
929# CONFIG_DEBUG_INFO is not set
930# CONFIG_DEBUG_VM is not set
931# CONFIG_DEBUG_LIST is not set
932CONFIG_FRAME_POINTER=y
933CONFIG_FORCED_INLINING=y
934# CONFIG_RCU_TORTURE_TEST is not set
935# CONFIG_FAULT_INJECTION is not set
936# CONFIG_DEBUG_USER is not set
937# CONFIG_DEBUG_ERRORS is not set
938# CONFIG_DEBUG_LL is not set
939
940#
941# Security options
942#
943# CONFIG_KEYS is not set
944# CONFIG_SECURITY is not set
945# CONFIG_CRYPTO is not set
946
947#
948# Library routines
949#
950CONFIG_BITREVERSE=y
951CONFIG_CRC_CCITT=y
952# CONFIG_CRC16 is not set
953# CONFIG_CRC_ITU_T is not set
954CONFIG_CRC32=y
955# CONFIG_CRC7 is not set
956CONFIG_LIBCRC32C=y
957CONFIG_ZLIB_INFLATE=y
958CONFIG_ZLIB_DEFLATE=y
959CONFIG_PLIST=y
960CONFIG_HAS_IOMEM=y
961CONFIG_HAS_IOPORT=y
962CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_1510_defconfig b/arch/arm/configs/omap_generic_1510_defconfig
new file mode 100644
index 000000000000..4b1c252f2091
--- /dev/null
+++ b/arch/arm/configs/omap_generic_1510_defconfig
@@ -0,0 +1,1172 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 12:20:19 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80CONFIG_MODULE_FORCE_UNLOAD=y
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165# CONFIG_OMAP_DSP is not set
166
167#
168# OMAP Core Type
169#
170# CONFIG_ARCH_OMAP730 is not set
171CONFIG_ARCH_OMAP15XX=y
172# CONFIG_ARCH_OMAP16XX is not set
173
174#
175# OMAP Board Type
176#
177# CONFIG_MACH_OMAP_INNOVATOR is not set
178# CONFIG_MACH_VOICEBLUE is not set
179# CONFIG_MACH_OMAP_PALMTE is not set
180# CONFIG_MACH_OMAP_PALMZ71 is not set
181# CONFIG_MACH_OMAP_PALMTT is not set
182# CONFIG_MACH_SX1 is not set
183# CONFIG_MACH_AMS_DELTA is not set
184CONFIG_MACH_OMAP_GENERIC=y
185
186#
187# OMAP CPU Speed
188#
189# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
190CONFIG_OMAP_ARM_168MHZ=y
191# CONFIG_OMAP_ARM_150MHZ is not set
192# CONFIG_OMAP_ARM_120MHZ is not set
193# CONFIG_OMAP_ARM_60MHZ is not set
194# CONFIG_OMAP_ARM_30MHZ is not set
195# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
196
197#
198# Boot options
199#
200
201#
202# Power management
203#
204
205#
206# Processor Type
207#
208CONFIG_CPU_32=y
209CONFIG_CPU_ARM925T=y
210CONFIG_CPU_32v4T=y
211CONFIG_CPU_ABRT_EV4T=y
212CONFIG_CPU_PABRT_NOIFAR=y
213CONFIG_CPU_CACHE_V4WT=y
214CONFIG_CPU_CACHE_VIVT=y
215CONFIG_CPU_COPY_V4WB=y
216CONFIG_CPU_TLB_V4WBI=y
217CONFIG_CPU_CP15=y
218CONFIG_CPU_CP15_MMU=y
219
220#
221# Processor Features
222#
223# CONFIG_ARM_THUMB is not set
224# CONFIG_CPU_ICACHE_DISABLE is not set
225# CONFIG_CPU_DCACHE_DISABLE is not set
226CONFIG_CPU_DCACHE_WRITETHROUGH=y
227# CONFIG_OUTER_CACHE is not set
228
229#
230# Bus support
231#
232# CONFIG_PCI_SYSCALL is not set
233# CONFIG_ARCH_SUPPORTS_MSI is not set
234
235#
236# PCCARD (PCMCIA/CardBus) support
237#
238# CONFIG_PCCARD is not set
239
240#
241# Kernel Features
242#
243# CONFIG_TICK_ONESHOT is not set
244# CONFIG_NO_HZ is not set
245# CONFIG_HIGH_RES_TIMERS is not set
246CONFIG_PREEMPT=y
247CONFIG_HZ=100
248# CONFIG_AEABI is not set
249# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
250CONFIG_SELECT_MEMORY_MODEL=y
251CONFIG_FLATMEM_MANUAL=y
252# CONFIG_DISCONTIGMEM_MANUAL is not set
253# CONFIG_SPARSEMEM_MANUAL is not set
254CONFIG_FLATMEM=y
255CONFIG_FLAT_NODE_MEM_MAP=y
256# CONFIG_SPARSEMEM_STATIC is not set
257CONFIG_SPLIT_PTLOCK_CPUS=4096
258# CONFIG_RESOURCES_64BIT is not set
259CONFIG_ZONE_DMA_FLAG=1
260CONFIG_BOUNCE=y
261CONFIG_VIRT_TO_BUS=y
262# CONFIG_LEDS is not set
263CONFIG_ALIGNMENT_TRAP=y
264
265#
266# Boot options
267#
268CONFIG_ZBOOT_ROM_TEXT=0x0
269CONFIG_ZBOOT_ROM_BSS=0x0
270CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
271# CONFIG_XIP_KERNEL is not set
272# CONFIG_KEXEC is not set
273
274#
275# CPU Frequency scaling
276#
277# CONFIG_CPU_FREQ is not set
278
279#
280# Floating point emulation
281#
282
283#
284# At least one emulation must be selected
285#
286CONFIG_FPE_NWFPE=y
287# CONFIG_FPE_NWFPE_XP is not set
288# CONFIG_FPE_FASTFPE is not set
289
290#
291# Userspace binary formats
292#
293CONFIG_BINFMT_ELF=y
294# CONFIG_BINFMT_AOUT is not set
295# CONFIG_BINFMT_MISC is not set
296# CONFIG_ARTHUR is not set
297
298#
299# Power management options
300#
301CONFIG_PM=y
302# CONFIG_PM_LEGACY is not set
303# CONFIG_PM_DEBUG is not set
304CONFIG_PM_SLEEP=y
305CONFIG_SUSPEND_UP_POSSIBLE=y
306CONFIG_SUSPEND=y
307# CONFIG_APM_EMULATION is not set
308
309#
310# Networking
311#
312CONFIG_NET=y
313
314#
315# Networking options
316#
317CONFIG_PACKET=y
318# CONFIG_PACKET_MMAP is not set
319CONFIG_UNIX=y
320CONFIG_XFRM=y
321# CONFIG_XFRM_USER is not set
322# CONFIG_XFRM_SUB_POLICY is not set
323# CONFIG_XFRM_MIGRATE is not set
324# CONFIG_NET_KEY is not set
325CONFIG_INET=y
326CONFIG_IP_MULTICAST=y
327# CONFIG_IP_ADVANCED_ROUTER is not set
328CONFIG_IP_FIB_HASH=y
329CONFIG_IP_PNP=y
330CONFIG_IP_PNP_DHCP=y
331CONFIG_IP_PNP_BOOTP=y
332# CONFIG_IP_PNP_RARP is not set
333# CONFIG_NET_IPIP is not set
334# CONFIG_NET_IPGRE is not set
335# CONFIG_IP_MROUTE is not set
336# CONFIG_ARPD is not set
337# CONFIG_SYN_COOKIES is not set
338# CONFIG_INET_AH is not set
339# CONFIG_INET_ESP is not set
340# CONFIG_INET_IPCOMP is not set
341# CONFIG_INET_XFRM_TUNNEL is not set
342# CONFIG_INET_TUNNEL is not set
343CONFIG_INET_XFRM_MODE_TRANSPORT=y
344CONFIG_INET_XFRM_MODE_TUNNEL=y
345CONFIG_INET_XFRM_MODE_BEET=y
346CONFIG_INET_DIAG=y
347CONFIG_INET_TCP_DIAG=y
348# CONFIG_TCP_CONG_ADVANCED is not set
349CONFIG_TCP_CONG_CUBIC=y
350CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_TCP_MD5SIG is not set
352# CONFIG_IPV6 is not set
353# CONFIG_INET6_XFRM_TUNNEL is not set
354# CONFIG_INET6_TUNNEL is not set
355# CONFIG_NETWORK_SECMARK is not set
356# CONFIG_NETFILTER is not set
357# CONFIG_IP_DCCP is not set
358# CONFIG_IP_SCTP is not set
359# CONFIG_TIPC is not set
360# CONFIG_ATM is not set
361# CONFIG_BRIDGE is not set
362# CONFIG_VLAN_8021Q is not set
363# CONFIG_DECNET is not set
364# CONFIG_LLC2 is not set
365# CONFIG_IPX is not set
366# CONFIG_ATALK is not set
367# CONFIG_X25 is not set
368# CONFIG_LAPB is not set
369# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set
371
372#
373# QoS and/or fair queueing
374#
375# CONFIG_NET_SCHED is not set
376
377#
378# Network testing
379#
380# CONFIG_NET_PKTGEN is not set
381# CONFIG_HAMRADIO is not set
382# CONFIG_IRDA is not set
383# CONFIG_BT is not set
384# CONFIG_AF_RXRPC is not set
385
386#
387# Wireless
388#
389# CONFIG_CFG80211 is not set
390# CONFIG_WIRELESS_EXT is not set
391# CONFIG_MAC80211 is not set
392# CONFIG_IEEE80211 is not set
393# CONFIG_RFKILL is not set
394# CONFIG_NET_9P is not set
395
396#
397# Device Drivers
398#
399
400#
401# Generic Driver Options
402#
403CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y
405# CONFIG_FW_LOADER is not set
406# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set
409# CONFIG_CONNECTOR is not set
410# CONFIG_MTD is not set
411# CONFIG_PARPORT is not set
412CONFIG_BLK_DEV=y
413# CONFIG_BLK_DEV_COW_COMMON is not set
414CONFIG_BLK_DEV_LOOP=y
415# CONFIG_BLK_DEV_CRYPTOLOOP is not set
416# CONFIG_BLK_DEV_NBD is not set
417# CONFIG_BLK_DEV_UB is not set
418CONFIG_BLK_DEV_RAM=y
419CONFIG_BLK_DEV_RAM_COUNT=16
420CONFIG_BLK_DEV_RAM_SIZE=8192
421CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
422# CONFIG_CDROM_PKTCDVD is not set
423# CONFIG_ATA_OVER_ETH is not set
424
425#
426# SCSI device support
427#
428# CONFIG_RAID_ATTRS is not set
429CONFIG_SCSI=y
430CONFIG_SCSI_DMA=y
431# CONFIG_SCSI_TGT is not set
432# CONFIG_SCSI_NETLINK is not set
433CONFIG_SCSI_PROC_FS=y
434
435#
436# SCSI support type (disk, tape, CD-ROM)
437#
438CONFIG_BLK_DEV_SD=y
439# CONFIG_CHR_DEV_ST is not set
440# CONFIG_CHR_DEV_OSST is not set
441CONFIG_BLK_DEV_SR=y
442# CONFIG_BLK_DEV_SR_VENDOR is not set
443CONFIG_CHR_DEV_SG=y
444# CONFIG_CHR_DEV_SCH is not set
445
446#
447# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
448#
449CONFIG_SCSI_MULTI_LUN=y
450# CONFIG_SCSI_CONSTANTS is not set
451# CONFIG_SCSI_LOGGING is not set
452# CONFIG_SCSI_SCAN_ASYNC is not set
453CONFIG_SCSI_WAIT_SCAN=m
454
455#
456# SCSI Transports
457#
458# CONFIG_SCSI_SPI_ATTRS is not set
459# CONFIG_SCSI_FC_ATTRS is not set
460# CONFIG_SCSI_ISCSI_ATTRS is not set
461# CONFIG_SCSI_SAS_LIBSAS is not set
462CONFIG_SCSI_LOWLEVEL=y
463# CONFIG_ISCSI_TCP is not set
464# CONFIG_SCSI_DEBUG is not set
465# CONFIG_ATA is not set
466# CONFIG_MD is not set
467CONFIG_NETDEVICES=y
468# CONFIG_NETDEVICES_MULTIQUEUE is not set
469# CONFIG_DUMMY is not set
470# CONFIG_BONDING is not set
471# CONFIG_MACVLAN is not set
472# CONFIG_EQUALIZER is not set
473# CONFIG_TUN is not set
474# CONFIG_PHYLIB is not set
475CONFIG_NET_ETHERNET=y
476CONFIG_MII=y
477# CONFIG_AX88796 is not set
478# CONFIG_SMC91X is not set
479# CONFIG_DM9000 is not set
480CONFIG_NETDEV_1000=y
481CONFIG_NETDEV_10000=y
482
483#
484# Wireless LAN
485#
486# CONFIG_WLAN_PRE80211 is not set
487# CONFIG_WLAN_80211 is not set
488
489#
490# USB Network Adapters
491#
492# CONFIG_USB_CATC is not set
493# CONFIG_USB_KAWETH is not set
494# CONFIG_USB_PEGASUS is not set
495CONFIG_USB_RTL8150=y
496CONFIG_USB_USBNET_MII=y
497CONFIG_USB_USBNET=y
498CONFIG_USB_NET_AX8817X=y
499CONFIG_USB_NET_CDCETHER=y
500# CONFIG_USB_NET_DM9601 is not set
501# CONFIG_USB_NET_GL620A is not set
502CONFIG_USB_NET_NET1080=y
503# CONFIG_USB_NET_PLUSB is not set
504# CONFIG_USB_NET_MCS7830 is not set
505# CONFIG_USB_NET_RNDIS_HOST is not set
506CONFIG_USB_NET_CDC_SUBSET=y
507# CONFIG_USB_ALI_M5632 is not set
508CONFIG_USB_AN2720=y
509CONFIG_USB_BELKIN=y
510CONFIG_USB_ARMLINUX=y
511CONFIG_USB_EPSON2888=y
512# CONFIG_USB_KC2190 is not set
513CONFIG_USB_NET_ZAURUS=y
514# CONFIG_WAN is not set
515CONFIG_PPP=y
516CONFIG_PPP_MULTILINK=y
517# CONFIG_PPP_FILTER is not set
518# CONFIG_PPP_ASYNC is not set
519# CONFIG_PPP_SYNC_TTY is not set
520# CONFIG_PPP_DEFLATE is not set
521# CONFIG_PPP_BSDCOMP is not set
522# CONFIG_PPP_MPPE is not set
523# CONFIG_PPPOE is not set
524# CONFIG_PPPOL2TP is not set
525# CONFIG_SLIP is not set
526CONFIG_SLHC=y
527# CONFIG_SHAPER is not set
528# CONFIG_NETCONSOLE is not set
529# CONFIG_NETPOLL is not set
530# CONFIG_NET_POLL_CONTROLLER is not set
531# CONFIG_ISDN is not set
532
533#
534# Input device support
535#
536CONFIG_INPUT=y
537# CONFIG_INPUT_FF_MEMLESS is not set
538# CONFIG_INPUT_POLLDEV is not set
539
540#
541# Userland interfaces
542#
543CONFIG_INPUT_MOUSEDEV=y
544CONFIG_INPUT_MOUSEDEV_PSAUX=y
545CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
546CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
547# CONFIG_INPUT_JOYDEV is not set
548# CONFIG_INPUT_TSDEV is not set
549# CONFIG_INPUT_EVDEV is not set
550# CONFIG_INPUT_EVBUG is not set
551
552#
553# Input Device Drivers
554#
555CONFIG_INPUT_KEYBOARD=y
556CONFIG_KEYBOARD_ATKBD=y
557# CONFIG_KEYBOARD_SUNKBD is not set
558# CONFIG_KEYBOARD_LKKBD is not set
559# CONFIG_KEYBOARD_XTKBD is not set
560# CONFIG_KEYBOARD_NEWTON is not set
561# CONFIG_KEYBOARD_STOWAWAY is not set
562CONFIG_KEYBOARD_OMAP=y
563# CONFIG_KEYBOARD_GPIO is not set
564# CONFIG_INPUT_MOUSE is not set
565# CONFIG_INPUT_JOYSTICK is not set
566# CONFIG_INPUT_TABLET is not set
567# CONFIG_INPUT_TOUCHSCREEN is not set
568# CONFIG_INPUT_MISC is not set
569
570#
571# Hardware I/O ports
572#
573CONFIG_SERIO=y
574CONFIG_SERIO_SERPORT=y
575CONFIG_SERIO_LIBPS2=y
576# CONFIG_SERIO_RAW is not set
577# CONFIG_GAMEPORT is not set
578
579#
580# Character devices
581#
582CONFIG_VT=y
583CONFIG_VT_CONSOLE=y
584CONFIG_HW_CONSOLE=y
585# CONFIG_VT_HW_CONSOLE_BINDING is not set
586# CONFIG_SERIAL_NONSTANDARD is not set
587
588#
589# Serial drivers
590#
591CONFIG_SERIAL_8250=y
592CONFIG_SERIAL_8250_CONSOLE=y
593CONFIG_SERIAL_8250_NR_UARTS=4
594CONFIG_SERIAL_8250_RUNTIME_UARTS=4
595# CONFIG_SERIAL_8250_EXTENDED is not set
596
597#
598# Non-8250 serial port support
599#
600CONFIG_SERIAL_CORE=y
601CONFIG_SERIAL_CORE_CONSOLE=y
602CONFIG_UNIX98_PTYS=y
603# CONFIG_LEGACY_PTYS is not set
604# CONFIG_IPMI_HANDLER is not set
605# CONFIG_WATCHDOG is not set
606CONFIG_HW_RANDOM=m
607# CONFIG_NVRAM is not set
608# CONFIG_R3964 is not set
609# CONFIG_RAW_DRIVER is not set
610# CONFIG_TCG_TPM is not set
611CONFIG_I2C=y
612CONFIG_I2C_BOARDINFO=y
613CONFIG_I2C_CHARDEV=y
614
615#
616# I2C Algorithms
617#
618CONFIG_I2C_ALGOBIT=y
619# CONFIG_I2C_ALGOPCF is not set
620# CONFIG_I2C_ALGOPCA is not set
621
622#
623# I2C Hardware Bus support
624#
625# CONFIG_I2C_GPIO is not set
626# CONFIG_I2C_OCORES is not set
627# CONFIG_I2C_OMAP is not set
628# CONFIG_I2C_PARPORT_LIGHT is not set
629# CONFIG_I2C_SIMTEC is not set
630# CONFIG_I2C_TAOS_EVM is not set
631# CONFIG_I2C_STUB is not set
632# CONFIG_I2C_TINY_USB is not set
633
634#
635# Miscellaneous I2C Chip support
636#
637# CONFIG_SENSORS_DS1337 is not set
638# CONFIG_SENSORS_DS1374 is not set
639# CONFIG_DS1682 is not set
640# CONFIG_SENSORS_EEPROM is not set
641# CONFIG_SENSORS_PCF8574 is not set
642# CONFIG_SENSORS_PCA9539 is not set
643# CONFIG_SENSORS_PCF8591 is not set
644# CONFIG_TPS65010 is not set
645# CONFIG_SENSORS_MAX6875 is not set
646# CONFIG_SENSORS_TSL2550 is not set
647# CONFIG_I2C_DEBUG_CORE is not set
648# CONFIG_I2C_DEBUG_ALGO is not set
649# CONFIG_I2C_DEBUG_BUS is not set
650# CONFIG_I2C_DEBUG_CHIP is not set
651
652#
653# SPI support
654#
655# CONFIG_SPI is not set
656# CONFIG_SPI_MASTER is not set
657# CONFIG_W1 is not set
658CONFIG_HWMON=y
659# CONFIG_HWMON_VID is not set
660# CONFIG_SENSORS_ABITUGURU is not set
661# CONFIG_SENSORS_ABITUGURU3 is not set
662# CONFIG_SENSORS_AD7418 is not set
663# CONFIG_SENSORS_ADM1021 is not set
664# CONFIG_SENSORS_ADM1025 is not set
665# CONFIG_SENSORS_ADM1026 is not set
666# CONFIG_SENSORS_ADM1029 is not set
667# CONFIG_SENSORS_ADM1031 is not set
668# CONFIG_SENSORS_ADM9240 is not set
669# CONFIG_SENSORS_ASB100 is not set
670# CONFIG_SENSORS_ATXP1 is not set
671# CONFIG_SENSORS_DS1621 is not set
672# CONFIG_SENSORS_F71805F is not set
673# CONFIG_SENSORS_FSCHER is not set
674# CONFIG_SENSORS_FSCPOS is not set
675# CONFIG_SENSORS_GL518SM is not set
676# CONFIG_SENSORS_GL520SM is not set
677# CONFIG_SENSORS_IT87 is not set
678# CONFIG_SENSORS_LM63 is not set
679# CONFIG_SENSORS_LM75 is not set
680# CONFIG_SENSORS_LM77 is not set
681# CONFIG_SENSORS_LM78 is not set
682# CONFIG_SENSORS_LM80 is not set
683# CONFIG_SENSORS_LM83 is not set
684# CONFIG_SENSORS_LM85 is not set
685# CONFIG_SENSORS_LM87 is not set
686# CONFIG_SENSORS_LM90 is not set
687# CONFIG_SENSORS_LM92 is not set
688# CONFIG_SENSORS_LM93 is not set
689# CONFIG_SENSORS_MAX1619 is not set
690# CONFIG_SENSORS_MAX6650 is not set
691# CONFIG_SENSORS_PC87360 is not set
692# CONFIG_SENSORS_PC87427 is not set
693# CONFIG_SENSORS_DME1737 is not set
694# CONFIG_SENSORS_SMSC47M1 is not set
695# CONFIG_SENSORS_SMSC47M192 is not set
696# CONFIG_SENSORS_SMSC47B397 is not set
697# CONFIG_SENSORS_THMC50 is not set
698# CONFIG_SENSORS_VT1211 is not set
699# CONFIG_SENSORS_W83781D is not set
700# CONFIG_SENSORS_W83791D is not set
701# CONFIG_SENSORS_W83792D is not set
702# CONFIG_SENSORS_W83793 is not set
703# CONFIG_SENSORS_W83L785TS is not set
704# CONFIG_SENSORS_W83627HF is not set
705# CONFIG_SENSORS_W83627EHF is not set
706# CONFIG_HWMON_DEBUG_CHIP is not set
707CONFIG_MISC_DEVICES=y
708# CONFIG_EEPROM_93CX6 is not set
709
710#
711# Multifunction device drivers
712#
713# CONFIG_MFD_SM501 is not set
714# CONFIG_NEW_LEDS is not set
715
716#
717# Multimedia devices
718#
719# CONFIG_VIDEO_DEV is not set
720# CONFIG_DVB_CORE is not set
721CONFIG_DAB=y
722# CONFIG_USB_DABUSB is not set
723
724#
725# Graphics support
726#
727# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
728
729#
730# Display device support
731#
732# CONFIG_DISPLAY_SUPPORT is not set
733# CONFIG_VGASTATE is not set
734CONFIG_VIDEO_OUTPUT_CONTROL=m
735# CONFIG_FB is not set
736
737#
738# Console display driver support
739#
740# CONFIG_VGA_CONSOLE is not set
741CONFIG_DUMMY_CONSOLE=y
742
743#
744# Sound
745#
746# CONFIG_SOUND is not set
747CONFIG_HID_SUPPORT=y
748CONFIG_HID=y
749# CONFIG_HID_DEBUG is not set
750
751#
752# USB Input Devices
753#
754CONFIG_USB_HID=y
755# CONFIG_USB_HIDINPUT_POWERBOOK is not set
756# CONFIG_HID_FF is not set
757# CONFIG_USB_HIDDEV is not set
758CONFIG_USB_SUPPORT=y
759CONFIG_USB_ARCH_HAS_HCD=y
760CONFIG_USB_ARCH_HAS_OHCI=y
761# CONFIG_USB_ARCH_HAS_EHCI is not set
762CONFIG_USB=y
763CONFIG_USB_DEBUG=y
764
765#
766# Miscellaneous USB options
767#
768CONFIG_USB_DEVICEFS=y
769# CONFIG_USB_DEVICE_CLASS is not set
770# CONFIG_USB_DYNAMIC_MINORS is not set
771# CONFIG_USB_SUSPEND is not set
772# CONFIG_USB_PERSIST is not set
773# CONFIG_USB_OTG is not set
774
775#
776# USB Host Controller Drivers
777#
778# CONFIG_USB_ISP116X_HCD is not set
779CONFIG_USB_OHCI_HCD=y
780# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
781# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
782CONFIG_USB_OHCI_LITTLE_ENDIAN=y
783# CONFIG_USB_SL811_HCD is not set
784# CONFIG_USB_R8A66597_HCD is not set
785# CONFIG_USB_MUSB_HDRC is not set
786
787#
788# USB Device Class drivers
789#
790# CONFIG_USB_ACM is not set
791# CONFIG_USB_PRINTER is not set
792
793#
794# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
795#
796
797#
798# may also be needed; see USB_STORAGE Help for more information
799#
800CONFIG_USB_STORAGE=y
801# CONFIG_USB_STORAGE_DEBUG is not set
802CONFIG_USB_STORAGE_DATAFAB=y
803CONFIG_USB_STORAGE_FREECOM=y
804CONFIG_USB_STORAGE_DPCM=y
805# CONFIG_USB_STORAGE_USBAT is not set
806CONFIG_USB_STORAGE_SDDR09=y
807CONFIG_USB_STORAGE_SDDR55=y
808CONFIG_USB_STORAGE_JUMPSHOT=y
809# CONFIG_USB_STORAGE_ALAUDA is not set
810# CONFIG_USB_STORAGE_KARMA is not set
811# CONFIG_USB_LIBUSUAL is not set
812
813#
814# USB Imaging devices
815#
816# CONFIG_USB_MDC800 is not set
817# CONFIG_USB_MICROTEK is not set
818CONFIG_USB_MON=y
819
820#
821# USB port drivers
822#
823
824#
825# USB Serial Converter support
826#
827# CONFIG_USB_SERIAL is not set
828
829#
830# USB Miscellaneous drivers
831#
832# CONFIG_USB_EMI62 is not set
833# CONFIG_USB_EMI26 is not set
834# CONFIG_USB_ADUTUX is not set
835# CONFIG_USB_AUERSWALD is not set
836# CONFIG_USB_RIO500 is not set
837# CONFIG_USB_LEGOTOWER is not set
838# CONFIG_USB_LCD is not set
839# CONFIG_USB_BERRY_CHARGE is not set
840# CONFIG_USB_LED is not set
841# CONFIG_USB_CYPRESS_CY7C63 is not set
842# CONFIG_USB_CYTHERM is not set
843# CONFIG_USB_PHIDGET is not set
844# CONFIG_USB_IDMOUSE is not set
845# CONFIG_USB_FTDI_ELAN is not set
846# CONFIG_USB_APPLEDISPLAY is not set
847# CONFIG_USB_LD is not set
848# CONFIG_USB_TRANCEVIBRATOR is not set
849# CONFIG_USB_IOWARRIOR is not set
850# CONFIG_USB_TEST is not set
851
852#
853# USB DSL modem support
854#
855
856#
857# USB Gadget Support
858#
859# CONFIG_USB_GADGET is not set
860CONFIG_MMC=y
861# CONFIG_MMC_DEBUG is not set
862# CONFIG_MMC_UNSAFE_RESUME is not set
863
864#
865# MMC/SD Card Drivers
866#
867CONFIG_MMC_BLOCK=y
868CONFIG_MMC_BLOCK_BOUNCE=y
869
870#
871# MMC/SD Host Controller Drivers
872#
873CONFIG_MMC_OMAP=y
874CONFIG_RTC_LIB=y
875CONFIG_RTC_CLASS=y
876CONFIG_RTC_HCTOSYS=y
877CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
878# CONFIG_RTC_DEBUG is not set
879
880#
881# RTC interfaces
882#
883CONFIG_RTC_INTF_SYSFS=y
884CONFIG_RTC_INTF_PROC=y
885CONFIG_RTC_INTF_DEV=y
886# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
887# CONFIG_RTC_DRV_TEST is not set
888
889#
890# I2C RTC drivers
891#
892# CONFIG_RTC_DRV_DS1307 is not set
893# CONFIG_RTC_DRV_DS1672 is not set
894# CONFIG_RTC_DRV_MAX6900 is not set
895# CONFIG_RTC_DRV_RS5C372 is not set
896# CONFIG_RTC_DRV_ISL1208 is not set
897# CONFIG_RTC_DRV_X1205 is not set
898# CONFIG_RTC_DRV_PCF8563 is not set
899# CONFIG_RTC_DRV_PCF8583 is not set
900# CONFIG_RTC_DRV_M41T80 is not set
901
902#
903# SPI RTC drivers
904#
905
906#
907# Platform RTC drivers
908#
909# CONFIG_RTC_DRV_CMOS is not set
910# CONFIG_RTC_DRV_DS1553 is not set
911# CONFIG_RTC_DRV_STK17TA8 is not set
912# CONFIG_RTC_DRV_DS1742 is not set
913# CONFIG_RTC_DRV_M48T86 is not set
914# CONFIG_RTC_DRV_M48T59 is not set
915# CONFIG_RTC_DRV_V3020 is not set
916
917#
918# on-CPU RTC drivers
919#
920CONFIG_RTC_DRV_OMAP=y
921
922#
923# DMA Engine support
924#
925# CONFIG_DMA_ENGINE is not set
926
927#
928# DMA Clients
929#
930
931#
932# DMA Devices
933#
934
935#
936# CBUS support
937#
938# CONFIG_CBUS is not set
939
940#
941# File systems
942#
943CONFIG_EXT2_FS=y
944# CONFIG_EXT2_FS_XATTR is not set
945# CONFIG_EXT2_FS_XIP is not set
946CONFIG_EXT3_FS=y
947CONFIG_EXT3_FS_XATTR=y
948# CONFIG_EXT3_FS_POSIX_ACL is not set
949# CONFIG_EXT3_FS_SECURITY is not set
950# CONFIG_EXT4DEV_FS is not set
951CONFIG_JBD=y
952# CONFIG_JBD_DEBUG is not set
953CONFIG_FS_MBCACHE=y
954# CONFIG_REISERFS_FS is not set
955# CONFIG_JFS_FS is not set
956# CONFIG_FS_POSIX_ACL is not set
957# CONFIG_XFS_FS is not set
958# CONFIG_GFS2_FS is not set
959# CONFIG_OCFS2_FS is not set
960# CONFIG_MINIX_FS is not set
961# CONFIG_ROMFS_FS is not set
962CONFIG_INOTIFY=y
963CONFIG_INOTIFY_USER=y
964# CONFIG_QUOTA is not set
965CONFIG_DNOTIFY=y
966CONFIG_AUTOFS_FS=y
967CONFIG_AUTOFS4_FS=y
968# CONFIG_FUSE_FS is not set
969
970#
971# CD-ROM/DVD Filesystems
972#
973CONFIG_ISO9660_FS=y
974CONFIG_JOLIET=y
975# CONFIG_ZISOFS is not set
976# CONFIG_UDF_FS is not set
977
978#
979# DOS/FAT/NT Filesystems
980#
981CONFIG_FAT_FS=m
982CONFIG_MSDOS_FS=m
983CONFIG_VFAT_FS=m
984CONFIG_FAT_DEFAULT_CODEPAGE=437
985CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
986# CONFIG_NTFS_FS is not set
987
988#
989# Pseudo filesystems
990#
991CONFIG_PROC_FS=y
992CONFIG_PROC_SYSCTL=y
993CONFIG_SYSFS=y
994# CONFIG_TMPFS is not set
995# CONFIG_HUGETLB_PAGE is not set
996CONFIG_RAMFS=y
997# CONFIG_CONFIGFS_FS is not set
998
999#
1000# Miscellaneous filesystems
1001#
1002# CONFIG_ADFS_FS is not set
1003# CONFIG_AFFS_FS is not set
1004# CONFIG_HFS_FS is not set
1005# CONFIG_HFSPLUS_FS is not set
1006# CONFIG_BEFS_FS is not set
1007# CONFIG_BFS_FS is not set
1008# CONFIG_EFS_FS is not set
1009# CONFIG_CRAMFS is not set
1010# CONFIG_VXFS_FS is not set
1011# CONFIG_HPFS_FS is not set
1012# CONFIG_QNX4FS_FS is not set
1013# CONFIG_SYSV_FS is not set
1014# CONFIG_UFS_FS is not set
1015
1016#
1017# Network File Systems
1018#
1019CONFIG_NFS_FS=y
1020# CONFIG_NFS_V3 is not set
1021# CONFIG_NFS_V4 is not set
1022# CONFIG_NFS_DIRECTIO is not set
1023# CONFIG_NFSD is not set
1024# CONFIG_ROOT_NFS is not set
1025CONFIG_LOCKD=y
1026CONFIG_NFS_COMMON=y
1027CONFIG_SUNRPC=y
1028# CONFIG_SUNRPC_BIND34 is not set
1029# CONFIG_RPCSEC_GSS_KRB5 is not set
1030# CONFIG_RPCSEC_GSS_SPKM3 is not set
1031# CONFIG_SMB_FS is not set
1032# CONFIG_CIFS is not set
1033# CONFIG_NCP_FS is not set
1034# CONFIG_CODA_FS is not set
1035# CONFIG_AFS_FS is not set
1036
1037#
1038# Partition Types
1039#
1040CONFIG_PARTITION_ADVANCED=y
1041# CONFIG_ACORN_PARTITION is not set
1042# CONFIG_OSF_PARTITION is not set
1043# CONFIG_AMIGA_PARTITION is not set
1044# CONFIG_ATARI_PARTITION is not set
1045# CONFIG_MAC_PARTITION is not set
1046CONFIG_MSDOS_PARTITION=y
1047# CONFIG_BSD_DISKLABEL is not set
1048# CONFIG_MINIX_SUBPARTITION is not set
1049# CONFIG_SOLARIS_X86_PARTITION is not set
1050# CONFIG_UNIXWARE_DISKLABEL is not set
1051# CONFIG_LDM_PARTITION is not set
1052# CONFIG_SGI_PARTITION is not set
1053# CONFIG_ULTRIX_PARTITION is not set
1054# CONFIG_SUN_PARTITION is not set
1055# CONFIG_KARMA_PARTITION is not set
1056# CONFIG_EFI_PARTITION is not set
1057# CONFIG_SYSV68_PARTITION is not set
1058
1059#
1060# Native Language Support
1061#
1062CONFIG_NLS=y
1063CONFIG_NLS_DEFAULT="iso8859-1"
1064# CONFIG_NLS_CODEPAGE_437 is not set
1065# CONFIG_NLS_CODEPAGE_737 is not set
1066# CONFIG_NLS_CODEPAGE_775 is not set
1067# CONFIG_NLS_CODEPAGE_850 is not set
1068# CONFIG_NLS_CODEPAGE_852 is not set
1069# CONFIG_NLS_CODEPAGE_855 is not set
1070# CONFIG_NLS_CODEPAGE_857 is not set
1071# CONFIG_NLS_CODEPAGE_860 is not set
1072# CONFIG_NLS_CODEPAGE_861 is not set
1073# CONFIG_NLS_CODEPAGE_862 is not set
1074# CONFIG_NLS_CODEPAGE_863 is not set
1075# CONFIG_NLS_CODEPAGE_864 is not set
1076# CONFIG_NLS_CODEPAGE_865 is not set
1077# CONFIG_NLS_CODEPAGE_866 is not set
1078# CONFIG_NLS_CODEPAGE_869 is not set
1079# CONFIG_NLS_CODEPAGE_936 is not set
1080# CONFIG_NLS_CODEPAGE_950 is not set
1081# CONFIG_NLS_CODEPAGE_932 is not set
1082# CONFIG_NLS_CODEPAGE_949 is not set
1083# CONFIG_NLS_CODEPAGE_874 is not set
1084# CONFIG_NLS_ISO8859_8 is not set
1085# CONFIG_NLS_CODEPAGE_1250 is not set
1086# CONFIG_NLS_CODEPAGE_1251 is not set
1087# CONFIG_NLS_ASCII is not set
1088# CONFIG_NLS_ISO8859_1 is not set
1089# CONFIG_NLS_ISO8859_2 is not set
1090# CONFIG_NLS_ISO8859_3 is not set
1091# CONFIG_NLS_ISO8859_4 is not set
1092# CONFIG_NLS_ISO8859_5 is not set
1093# CONFIG_NLS_ISO8859_6 is not set
1094# CONFIG_NLS_ISO8859_7 is not set
1095# CONFIG_NLS_ISO8859_9 is not set
1096# CONFIG_NLS_ISO8859_13 is not set
1097# CONFIG_NLS_ISO8859_14 is not set
1098# CONFIG_NLS_ISO8859_15 is not set
1099# CONFIG_NLS_KOI8_R is not set
1100# CONFIG_NLS_KOI8_U is not set
1101# CONFIG_NLS_UTF8 is not set
1102
1103#
1104# Distributed Lock Manager
1105#
1106# CONFIG_DLM is not set
1107
1108#
1109# Profiling support
1110#
1111# CONFIG_PROFILING is not set
1112
1113#
1114# Kernel hacking
1115#
1116# CONFIG_PRINTK_TIME is not set
1117CONFIG_ENABLE_MUST_CHECK=y
1118CONFIG_MAGIC_SYSRQ=y
1119# CONFIG_UNUSED_SYMBOLS is not set
1120# CONFIG_DEBUG_FS is not set
1121# CONFIG_HEADERS_CHECK is not set
1122CONFIG_DEBUG_KERNEL=y
1123# CONFIG_DEBUG_SHIRQ is not set
1124CONFIG_DETECT_SOFTLOCKUP=y
1125CONFIG_SCHED_DEBUG=y
1126# CONFIG_SCHEDSTATS is not set
1127# CONFIG_TIMER_STATS is not set
1128# CONFIG_DEBUG_SLAB is not set
1129CONFIG_DEBUG_PREEMPT=y
1130# CONFIG_DEBUG_RT_MUTEXES is not set
1131# CONFIG_RT_MUTEX_TESTER is not set
1132# CONFIG_DEBUG_SPINLOCK is not set
1133# CONFIG_DEBUG_MUTEXES is not set
1134# CONFIG_DEBUG_LOCK_ALLOC is not set
1135# CONFIG_PROVE_LOCKING is not set
1136# CONFIG_LOCK_STAT is not set
1137# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1138# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1139# CONFIG_DEBUG_KOBJECT is not set
1140CONFIG_DEBUG_BUGVERBOSE=y
1141# CONFIG_DEBUG_INFO is not set
1142# CONFIG_DEBUG_VM is not set
1143# CONFIG_DEBUG_LIST is not set
1144CONFIG_FRAME_POINTER=y
1145CONFIG_FORCED_INLINING=y
1146# CONFIG_RCU_TORTURE_TEST is not set
1147# CONFIG_FAULT_INJECTION is not set
1148# CONFIG_DEBUG_USER is not set
1149# CONFIG_DEBUG_ERRORS is not set
1150# CONFIG_DEBUG_LL is not set
1151
1152#
1153# Security options
1154#
1155# CONFIG_KEYS is not set
1156# CONFIG_SECURITY is not set
1157# CONFIG_CRYPTO is not set
1158
1159#
1160# Library routines
1161#
1162CONFIG_BITREVERSE=y
1163# CONFIG_CRC_CCITT is not set
1164# CONFIG_CRC16 is not set
1165# CONFIG_CRC_ITU_T is not set
1166CONFIG_CRC32=y
1167# CONFIG_CRC7 is not set
1168# CONFIG_LIBCRC32C is not set
1169CONFIG_PLIST=y
1170CONFIG_HAS_IOMEM=y
1171CONFIG_HAS_IOPORT=y
1172CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_1610_defconfig b/arch/arm/configs/omap_generic_1610_defconfig
new file mode 100644
index 000000000000..fc66f019d56c
--- /dev/null
+++ b/arch/arm/configs/omap_generic_1610_defconfig
@@ -0,0 +1,1178 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 13:01:27 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80CONFIG_MODULE_FORCE_UNLOAD=y
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP_OTG=y
144CONFIG_ARCH_OMAP1=y
145# CONFIG_ARCH_OMAP2 is not set
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151# CONFIG_OMAP_RESET_CLOCKS is not set
152# CONFIG_OMAP_BOOT_TAG is not set
153# CONFIG_OMAP_GPIO_SWITCH is not set
154CONFIG_OMAP_MUX=y
155# CONFIG_OMAP_MUX_DEBUG is not set
156CONFIG_OMAP_MUX_WARNINGS=y
157# CONFIG_OMAP_STI is not set
158CONFIG_OMAP_MCBSP=y
159# CONFIG_OMAP_MMU_FWK is not set
160# CONFIG_OMAP_MBOX_FWK is not set
161CONFIG_OMAP_MPU_TIMER=y
162# CONFIG_OMAP_32K_TIMER is not set
163# CONFIG_OMAP_DM_TIMER is not set
164CONFIG_OMAP_LL_DEBUG_UART1=y
165# CONFIG_OMAP_LL_DEBUG_UART2 is not set
166# CONFIG_OMAP_LL_DEBUG_UART3 is not set
167CONFIG_OMAP_SERIAL_WAKE=y
168# CONFIG_OMAP_DSP is not set
169
170#
171# OMAP Core Type
172#
173# CONFIG_ARCH_OMAP730 is not set
174# CONFIG_ARCH_OMAP15XX is not set
175CONFIG_ARCH_OMAP16XX=y
176
177#
178# OMAP Board Type
179#
180# CONFIG_MACH_OMAP_INNOVATOR is not set
181# CONFIG_MACH_OMAP_H2 is not set
182# CONFIG_MACH_OMAP_H3 is not set
183# CONFIG_MACH_OMAP_OSK is not set
184# CONFIG_MACH_NOKIA770 is not set
185CONFIG_MACH_OMAP_GENERIC=y
186
187#
188# OMAP CPU Speed
189#
190# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
191# CONFIG_OMAP_ARM_216MHZ is not set
192CONFIG_OMAP_ARM_192MHZ=y
193# CONFIG_OMAP_ARM_168MHZ is not set
194# CONFIG_OMAP_ARM_120MHZ is not set
195# CONFIG_OMAP_ARM_60MHZ is not set
196# CONFIG_OMAP_ARM_30MHZ is not set
197# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
198
199#
200# Boot options
201#
202
203#
204# Power management
205#
206
207#
208# Processor Type
209#
210CONFIG_CPU_32=y
211CONFIG_CPU_ARM926T=y
212CONFIG_CPU_32v5=y
213CONFIG_CPU_ABRT_EV5TJ=y
214CONFIG_CPU_PABRT_NOIFAR=y
215CONFIG_CPU_CACHE_VIVT=y
216CONFIG_CPU_COPY_V4WB=y
217CONFIG_CPU_TLB_V4WBI=y
218CONFIG_CPU_CP15=y
219CONFIG_CPU_CP15_MMU=y
220
221#
222# Processor Features
223#
224# CONFIG_ARM_THUMB is not set
225# CONFIG_CPU_ICACHE_DISABLE is not set
226# CONFIG_CPU_DCACHE_DISABLE is not set
227# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
228# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
229# CONFIG_OUTER_CACHE is not set
230
231#
232# Bus support
233#
234# CONFIG_PCI_SYSCALL is not set
235# CONFIG_ARCH_SUPPORTS_MSI is not set
236
237#
238# PCCARD (PCMCIA/CardBus) support
239#
240# CONFIG_PCCARD is not set
241
242#
243# Kernel Features
244#
245# CONFIG_TICK_ONESHOT is not set
246# CONFIG_NO_HZ is not set
247# CONFIG_HIGH_RES_TIMERS is not set
248CONFIG_PREEMPT=y
249CONFIG_HZ=100
250# CONFIG_AEABI is not set
251# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
252CONFIG_SELECT_MEMORY_MODEL=y
253CONFIG_FLATMEM_MANUAL=y
254# CONFIG_DISCONTIGMEM_MANUAL is not set
255# CONFIG_SPARSEMEM_MANUAL is not set
256CONFIG_FLATMEM=y
257CONFIG_FLAT_NODE_MEM_MAP=y
258# CONFIG_SPARSEMEM_STATIC is not set
259CONFIG_SPLIT_PTLOCK_CPUS=4096
260# CONFIG_RESOURCES_64BIT is not set
261CONFIG_ZONE_DMA_FLAG=1
262CONFIG_BOUNCE=y
263CONFIG_VIRT_TO_BUS=y
264# CONFIG_LEDS is not set
265CONFIG_ALIGNMENT_TRAP=y
266
267#
268# Boot options
269#
270CONFIG_ZBOOT_ROM_TEXT=0x0
271CONFIG_ZBOOT_ROM_BSS=0x0
272CONFIG_CMDLINE="mem=64M console=ttyS2,115200 root=0803 ro init=/bin/sh"
273# CONFIG_XIP_KERNEL is not set
274# CONFIG_KEXEC is not set
275
276#
277# CPU Frequency scaling
278#
279# CONFIG_CPU_FREQ is not set
280
281#
282# Floating point emulation
283#
284
285#
286# At least one emulation must be selected
287#
288CONFIG_FPE_NWFPE=y
289# CONFIG_FPE_NWFPE_XP is not set
290# CONFIG_FPE_FASTFPE is not set
291# CONFIG_VFP is not set
292
293#
294# Userspace binary formats
295#
296CONFIG_BINFMT_ELF=y
297# CONFIG_BINFMT_AOUT is not set
298# CONFIG_BINFMT_MISC is not set
299# CONFIG_ARTHUR is not set
300
301#
302# Power management options
303#
304CONFIG_PM=y
305# CONFIG_PM_LEGACY is not set
306# CONFIG_PM_DEBUG is not set
307CONFIG_PM_SLEEP=y
308CONFIG_SUSPEND_UP_POSSIBLE=y
309CONFIG_SUSPEND=y
310# CONFIG_APM_EMULATION is not set
311
312#
313# Networking
314#
315CONFIG_NET=y
316
317#
318# Networking options
319#
320CONFIG_PACKET=y
321# CONFIG_PACKET_MMAP is not set
322CONFIG_UNIX=y
323CONFIG_XFRM=y
324# CONFIG_XFRM_USER is not set
325# CONFIG_XFRM_SUB_POLICY is not set
326# CONFIG_XFRM_MIGRATE is not set
327# CONFIG_NET_KEY is not set
328CONFIG_INET=y
329CONFIG_IP_MULTICAST=y
330# CONFIG_IP_ADVANCED_ROUTER is not set
331CONFIG_IP_FIB_HASH=y
332CONFIG_IP_PNP=y
333CONFIG_IP_PNP_DHCP=y
334CONFIG_IP_PNP_BOOTP=y
335# CONFIG_IP_PNP_RARP is not set
336# CONFIG_NET_IPIP is not set
337# CONFIG_NET_IPGRE is not set
338# CONFIG_IP_MROUTE is not set
339# CONFIG_ARPD is not set
340# CONFIG_SYN_COOKIES is not set
341# CONFIG_INET_AH is not set
342# CONFIG_INET_ESP is not set
343# CONFIG_INET_IPCOMP is not set
344# CONFIG_INET_XFRM_TUNNEL is not set
345# CONFIG_INET_TUNNEL is not set
346CONFIG_INET_XFRM_MODE_TRANSPORT=y
347CONFIG_INET_XFRM_MODE_TUNNEL=y
348CONFIG_INET_XFRM_MODE_BEET=y
349CONFIG_INET_DIAG=y
350CONFIG_INET_TCP_DIAG=y
351# CONFIG_TCP_CONG_ADVANCED is not set
352CONFIG_TCP_CONG_CUBIC=y
353CONFIG_DEFAULT_TCP_CONG="cubic"
354# CONFIG_TCP_MD5SIG is not set
355# CONFIG_IPV6 is not set
356# CONFIG_INET6_XFRM_TUNNEL is not set
357# CONFIG_INET6_TUNNEL is not set
358# CONFIG_NETWORK_SECMARK is not set
359# CONFIG_NETFILTER is not set
360# CONFIG_IP_DCCP is not set
361# CONFIG_IP_SCTP is not set
362# CONFIG_TIPC is not set
363# CONFIG_ATM is not set
364# CONFIG_BRIDGE is not set
365# CONFIG_VLAN_8021Q is not set
366# CONFIG_DECNET is not set
367# CONFIG_LLC2 is not set
368# CONFIG_IPX is not set
369# CONFIG_ATALK is not set
370# CONFIG_X25 is not set
371# CONFIG_LAPB is not set
372# CONFIG_ECONET is not set
373# CONFIG_WAN_ROUTER is not set
374
375#
376# QoS and/or fair queueing
377#
378# CONFIG_NET_SCHED is not set
379
380#
381# Network testing
382#
383# CONFIG_NET_PKTGEN is not set
384# CONFIG_HAMRADIO is not set
385# CONFIG_IRDA is not set
386# CONFIG_BT is not set
387# CONFIG_AF_RXRPC is not set
388
389#
390# Wireless
391#
392# CONFIG_CFG80211 is not set
393# CONFIG_WIRELESS_EXT is not set
394# CONFIG_MAC80211 is not set
395# CONFIG_IEEE80211 is not set
396# CONFIG_RFKILL is not set
397# CONFIG_NET_9P is not set
398
399#
400# Device Drivers
401#
402
403#
404# Generic Driver Options
405#
406CONFIG_STANDALONE=y
407CONFIG_PREVENT_FIRMWARE_BUILD=y
408# CONFIG_FW_LOADER is not set
409# CONFIG_DEBUG_DRIVER is not set
410# CONFIG_DEBUG_DEVRES is not set
411# CONFIG_SYS_HYPERVISOR is not set
412# CONFIG_CONNECTOR is not set
413# CONFIG_MTD is not set
414# CONFIG_PARPORT is not set
415CONFIG_BLK_DEV=y
416# CONFIG_BLK_DEV_COW_COMMON is not set
417CONFIG_BLK_DEV_LOOP=y
418# CONFIG_BLK_DEV_CRYPTOLOOP is not set
419# CONFIG_BLK_DEV_NBD is not set
420# CONFIG_BLK_DEV_UB is not set
421CONFIG_BLK_DEV_RAM=y
422CONFIG_BLK_DEV_RAM_COUNT=16
423CONFIG_BLK_DEV_RAM_SIZE=8192
424CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
425# CONFIG_CDROM_PKTCDVD is not set
426# CONFIG_ATA_OVER_ETH is not set
427
428#
429# SCSI device support
430#
431# CONFIG_RAID_ATTRS is not set
432CONFIG_SCSI=y
433CONFIG_SCSI_DMA=y
434# CONFIG_SCSI_TGT is not set
435# CONFIG_SCSI_NETLINK is not set
436CONFIG_SCSI_PROC_FS=y
437
438#
439# SCSI support type (disk, tape, CD-ROM)
440#
441CONFIG_BLK_DEV_SD=y
442# CONFIG_CHR_DEV_ST is not set
443# CONFIG_CHR_DEV_OSST is not set
444CONFIG_BLK_DEV_SR=y
445# CONFIG_BLK_DEV_SR_VENDOR is not set
446CONFIG_CHR_DEV_SG=y
447# CONFIG_CHR_DEV_SCH is not set
448
449#
450# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
451#
452CONFIG_SCSI_MULTI_LUN=y
453# CONFIG_SCSI_CONSTANTS is not set
454# CONFIG_SCSI_LOGGING is not set
455# CONFIG_SCSI_SCAN_ASYNC is not set
456CONFIG_SCSI_WAIT_SCAN=m
457
458#
459# SCSI Transports
460#
461# CONFIG_SCSI_SPI_ATTRS is not set
462# CONFIG_SCSI_FC_ATTRS is not set
463# CONFIG_SCSI_ISCSI_ATTRS is not set
464# CONFIG_SCSI_SAS_LIBSAS is not set
465CONFIG_SCSI_LOWLEVEL=y
466# CONFIG_ISCSI_TCP is not set
467# CONFIG_SCSI_DEBUG is not set
468# CONFIG_ATA is not set
469# CONFIG_MD is not set
470CONFIG_NETDEVICES=y
471# CONFIG_NETDEVICES_MULTIQUEUE is not set
472# CONFIG_DUMMY is not set
473# CONFIG_BONDING is not set
474# CONFIG_MACVLAN is not set
475# CONFIG_EQUALIZER is not set
476# CONFIG_TUN is not set
477# CONFIG_PHYLIB is not set
478CONFIG_NET_ETHERNET=y
479CONFIG_MII=y
480# CONFIG_AX88796 is not set
481# CONFIG_SMC91X is not set
482# CONFIG_DM9000 is not set
483CONFIG_NETDEV_1000=y
484CONFIG_NETDEV_10000=y
485
486#
487# Wireless LAN
488#
489# CONFIG_WLAN_PRE80211 is not set
490# CONFIG_WLAN_80211 is not set
491
492#
493# USB Network Adapters
494#
495# CONFIG_USB_CATC is not set
496# CONFIG_USB_KAWETH is not set
497# CONFIG_USB_PEGASUS is not set
498CONFIG_USB_RTL8150=y
499CONFIG_USB_USBNET_MII=y
500CONFIG_USB_USBNET=y
501CONFIG_USB_NET_AX8817X=y
502CONFIG_USB_NET_CDCETHER=y
503# CONFIG_USB_NET_DM9601 is not set
504# CONFIG_USB_NET_GL620A is not set
505CONFIG_USB_NET_NET1080=y
506# CONFIG_USB_NET_PLUSB is not set
507# CONFIG_USB_NET_MCS7830 is not set
508# CONFIG_USB_NET_RNDIS_HOST is not set
509CONFIG_USB_NET_CDC_SUBSET=y
510CONFIG_USB_ALI_M5632=y
511CONFIG_USB_AN2720=y
512CONFIG_USB_BELKIN=y
513CONFIG_USB_ARMLINUX=y
514CONFIG_USB_EPSON2888=y
515# CONFIG_USB_KC2190 is not set
516CONFIG_USB_NET_ZAURUS=y
517# CONFIG_WAN is not set
518CONFIG_PPP=y
519CONFIG_PPP_MULTILINK=y
520# CONFIG_PPP_FILTER is not set
521# CONFIG_PPP_ASYNC is not set
522# CONFIG_PPP_SYNC_TTY is not set
523# CONFIG_PPP_DEFLATE is not set
524# CONFIG_PPP_BSDCOMP is not set
525# CONFIG_PPP_MPPE is not set
526# CONFIG_PPPOE is not set
527# CONFIG_PPPOL2TP is not set
528# CONFIG_SLIP is not set
529CONFIG_SLHC=y
530# CONFIG_SHAPER is not set
531# CONFIG_NETCONSOLE is not set
532# CONFIG_NETPOLL is not set
533# CONFIG_NET_POLL_CONTROLLER is not set
534# CONFIG_ISDN is not set
535
536#
537# Input device support
538#
539CONFIG_INPUT=y
540# CONFIG_INPUT_FF_MEMLESS is not set
541# CONFIG_INPUT_POLLDEV is not set
542
543#
544# Userland interfaces
545#
546CONFIG_INPUT_MOUSEDEV=y
547CONFIG_INPUT_MOUSEDEV_PSAUX=y
548CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
549CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
550# CONFIG_INPUT_JOYDEV is not set
551# CONFIG_INPUT_TSDEV is not set
552# CONFIG_INPUT_EVDEV is not set
553# CONFIG_INPUT_EVBUG is not set
554
555#
556# Input Device Drivers
557#
558CONFIG_INPUT_KEYBOARD=y
559CONFIG_KEYBOARD_ATKBD=y
560# CONFIG_KEYBOARD_SUNKBD is not set
561# CONFIG_KEYBOARD_LKKBD is not set
562# CONFIG_KEYBOARD_XTKBD is not set
563# CONFIG_KEYBOARD_NEWTON is not set
564# CONFIG_KEYBOARD_STOWAWAY is not set
565CONFIG_KEYBOARD_OMAP=y
566# CONFIG_KEYBOARD_GPIO is not set
567# CONFIG_INPUT_MOUSE is not set
568# CONFIG_INPUT_JOYSTICK is not set
569# CONFIG_INPUT_TABLET is not set
570# CONFIG_INPUT_TOUCHSCREEN is not set
571# CONFIG_INPUT_MISC is not set
572
573#
574# Hardware I/O ports
575#
576CONFIG_SERIO=y
577CONFIG_SERIO_SERPORT=y
578CONFIG_SERIO_LIBPS2=y
579# CONFIG_SERIO_RAW is not set
580# CONFIG_GAMEPORT is not set
581
582#
583# Character devices
584#
585CONFIG_VT=y
586CONFIG_VT_CONSOLE=y
587CONFIG_HW_CONSOLE=y
588# CONFIG_VT_HW_CONSOLE_BINDING is not set
589# CONFIG_SERIAL_NONSTANDARD is not set
590
591#
592# Serial drivers
593#
594CONFIG_SERIAL_8250=y
595CONFIG_SERIAL_8250_CONSOLE=y
596CONFIG_SERIAL_8250_NR_UARTS=4
597CONFIG_SERIAL_8250_RUNTIME_UARTS=4
598# CONFIG_SERIAL_8250_EXTENDED is not set
599
600#
601# Non-8250 serial port support
602#
603CONFIG_SERIAL_CORE=y
604CONFIG_SERIAL_CORE_CONSOLE=y
605CONFIG_UNIX98_PTYS=y
606# CONFIG_LEGACY_PTYS is not set
607# CONFIG_IPMI_HANDLER is not set
608# CONFIG_WATCHDOG is not set
609CONFIG_HW_RANDOM=m
610CONFIG_HW_RANDOM_OMAP=m
611# CONFIG_NVRAM is not set
612# CONFIG_R3964 is not set
613# CONFIG_RAW_DRIVER is not set
614# CONFIG_TCG_TPM is not set
615CONFIG_I2C=y
616CONFIG_I2C_BOARDINFO=y
617CONFIG_I2C_CHARDEV=y
618
619#
620# I2C Algorithms
621#
622CONFIG_I2C_ALGOBIT=y
623# CONFIG_I2C_ALGOPCF is not set
624# CONFIG_I2C_ALGOPCA is not set
625
626#
627# I2C Hardware Bus support
628#
629# CONFIG_I2C_GPIO is not set
630# CONFIG_I2C_OCORES is not set
631# CONFIG_I2C_OMAP is not set
632# CONFIG_I2C_PARPORT_LIGHT is not set
633# CONFIG_I2C_SIMTEC is not set
634# CONFIG_I2C_TAOS_EVM is not set
635# CONFIG_I2C_STUB is not set
636# CONFIG_I2C_TINY_USB is not set
637
638#
639# Miscellaneous I2C Chip support
640#
641# CONFIG_SENSORS_DS1337 is not set
642# CONFIG_SENSORS_DS1374 is not set
643# CONFIG_DS1682 is not set
644# CONFIG_SENSORS_EEPROM is not set
645# CONFIG_SENSORS_PCF8574 is not set
646# CONFIG_SENSORS_PCA9539 is not set
647# CONFIG_SENSORS_PCF8591 is not set
648# CONFIG_ISP1301_OMAP is not set
649# CONFIG_TPS65010 is not set
650# CONFIG_GPIOEXPANDER_OMAP is not set
651# CONFIG_SENSORS_MAX6875 is not set
652# CONFIG_SENSORS_TSL2550 is not set
653# CONFIG_I2C_DEBUG_CORE is not set
654# CONFIG_I2C_DEBUG_ALGO is not set
655# CONFIG_I2C_DEBUG_BUS is not set
656# CONFIG_I2C_DEBUG_CHIP is not set
657
658#
659# SPI support
660#
661# CONFIG_SPI is not set
662# CONFIG_SPI_MASTER is not set
663# CONFIG_W1 is not set
664CONFIG_HWMON=y
665# CONFIG_HWMON_VID is not set
666# CONFIG_SENSORS_ABITUGURU is not set
667# CONFIG_SENSORS_ABITUGURU3 is not set
668# CONFIG_SENSORS_AD7418 is not set
669# CONFIG_SENSORS_ADM1021 is not set
670# CONFIG_SENSORS_ADM1025 is not set
671# CONFIG_SENSORS_ADM1026 is not set
672# CONFIG_SENSORS_ADM1029 is not set
673# CONFIG_SENSORS_ADM1031 is not set
674# CONFIG_SENSORS_ADM9240 is not set
675# CONFIG_SENSORS_ASB100 is not set
676# CONFIG_SENSORS_ATXP1 is not set
677# CONFIG_SENSORS_DS1621 is not set
678# CONFIG_SENSORS_F71805F is not set
679# CONFIG_SENSORS_FSCHER is not set
680# CONFIG_SENSORS_FSCPOS is not set
681# CONFIG_SENSORS_GL518SM is not set
682# CONFIG_SENSORS_GL520SM is not set
683# CONFIG_SENSORS_IT87 is not set
684# CONFIG_SENSORS_LM63 is not set
685# CONFIG_SENSORS_LM75 is not set
686# CONFIG_SENSORS_LM77 is not set
687# CONFIG_SENSORS_LM78 is not set
688# CONFIG_SENSORS_LM80 is not set
689# CONFIG_SENSORS_LM83 is not set
690# CONFIG_SENSORS_LM85 is not set
691# CONFIG_SENSORS_LM87 is not set
692# CONFIG_SENSORS_LM90 is not set
693# CONFIG_SENSORS_LM92 is not set
694# CONFIG_SENSORS_LM93 is not set
695# CONFIG_SENSORS_MAX1619 is not set
696# CONFIG_SENSORS_MAX6650 is not set
697# CONFIG_SENSORS_PC87360 is not set
698# CONFIG_SENSORS_PC87427 is not set
699# CONFIG_SENSORS_DME1737 is not set
700# CONFIG_SENSORS_SMSC47M1 is not set
701# CONFIG_SENSORS_SMSC47M192 is not set
702# CONFIG_SENSORS_SMSC47B397 is not set
703# CONFIG_SENSORS_THMC50 is not set
704# CONFIG_SENSORS_VT1211 is not set
705# CONFIG_SENSORS_W83781D is not set
706# CONFIG_SENSORS_W83791D is not set
707# CONFIG_SENSORS_W83792D is not set
708# CONFIG_SENSORS_W83793 is not set
709# CONFIG_SENSORS_W83L785TS is not set
710# CONFIG_SENSORS_W83627HF is not set
711# CONFIG_SENSORS_W83627EHF is not set
712# CONFIG_HWMON_DEBUG_CHIP is not set
713CONFIG_MISC_DEVICES=y
714# CONFIG_EEPROM_93CX6 is not set
715
716#
717# Multifunction device drivers
718#
719# CONFIG_MFD_SM501 is not set
720# CONFIG_NEW_LEDS is not set
721
722#
723# Multimedia devices
724#
725# CONFIG_VIDEO_DEV is not set
726# CONFIG_DVB_CORE is not set
727CONFIG_DAB=y
728# CONFIG_USB_DABUSB is not set
729
730#
731# Graphics support
732#
733# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
734
735#
736# Display device support
737#
738# CONFIG_DISPLAY_SUPPORT is not set
739# CONFIG_VGASTATE is not set
740CONFIG_VIDEO_OUTPUT_CONTROL=m
741# CONFIG_FB is not set
742
743#
744# Console display driver support
745#
746# CONFIG_VGA_CONSOLE is not set
747CONFIG_DUMMY_CONSOLE=y
748
749#
750# Sound
751#
752# CONFIG_SOUND is not set
753CONFIG_HID_SUPPORT=y
754CONFIG_HID=y
755# CONFIG_HID_DEBUG is not set
756
757#
758# USB Input Devices
759#
760CONFIG_USB_HID=y
761# CONFIG_USB_HIDINPUT_POWERBOOK is not set
762# CONFIG_HID_FF is not set
763# CONFIG_USB_HIDDEV is not set
764CONFIG_USB_SUPPORT=y
765CONFIG_USB_ARCH_HAS_HCD=y
766CONFIG_USB_ARCH_HAS_OHCI=y
767# CONFIG_USB_ARCH_HAS_EHCI is not set
768CONFIG_USB=y
769CONFIG_USB_DEBUG=y
770
771#
772# Miscellaneous USB options
773#
774CONFIG_USB_DEVICEFS=y
775# CONFIG_USB_DEVICE_CLASS is not set
776# CONFIG_USB_DYNAMIC_MINORS is not set
777# CONFIG_USB_SUSPEND is not set
778# CONFIG_USB_PERSIST is not set
779# CONFIG_USB_OTG is not set
780
781#
782# USB Host Controller Drivers
783#
784# CONFIG_USB_ISP116X_HCD is not set
785CONFIG_USB_OHCI_HCD=y
786# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
787# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
788CONFIG_USB_OHCI_LITTLE_ENDIAN=y
789# CONFIG_USB_SL811_HCD is not set
790# CONFIG_USB_R8A66597_HCD is not set
791# CONFIG_USB_MUSB_HDRC is not set
792
793#
794# USB Device Class drivers
795#
796# CONFIG_USB_ACM is not set
797# CONFIG_USB_PRINTER is not set
798
799#
800# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
801#
802
803#
804# may also be needed; see USB_STORAGE Help for more information
805#
806CONFIG_USB_STORAGE=y
807# CONFIG_USB_STORAGE_DEBUG is not set
808CONFIG_USB_STORAGE_DATAFAB=y
809CONFIG_USB_STORAGE_FREECOM=y
810CONFIG_USB_STORAGE_DPCM=y
811# CONFIG_USB_STORAGE_USBAT is not set
812CONFIG_USB_STORAGE_SDDR09=y
813CONFIG_USB_STORAGE_SDDR55=y
814CONFIG_USB_STORAGE_JUMPSHOT=y
815# CONFIG_USB_STORAGE_ALAUDA is not set
816# CONFIG_USB_STORAGE_KARMA is not set
817# CONFIG_USB_LIBUSUAL is not set
818
819#
820# USB Imaging devices
821#
822# CONFIG_USB_MDC800 is not set
823# CONFIG_USB_MICROTEK is not set
824CONFIG_USB_MON=y
825
826#
827# USB port drivers
828#
829
830#
831# USB Serial Converter support
832#
833# CONFIG_USB_SERIAL is not set
834
835#
836# USB Miscellaneous drivers
837#
838# CONFIG_USB_EMI62 is not set
839# CONFIG_USB_EMI26 is not set
840# CONFIG_USB_ADUTUX is not set
841# CONFIG_USB_AUERSWALD is not set
842# CONFIG_USB_RIO500 is not set
843# CONFIG_USB_LEGOTOWER is not set
844# CONFIG_USB_LCD is not set
845# CONFIG_USB_BERRY_CHARGE is not set
846# CONFIG_USB_LED is not set
847# CONFIG_USB_CYPRESS_CY7C63 is not set
848# CONFIG_USB_CYTHERM is not set
849# CONFIG_USB_PHIDGET is not set
850# CONFIG_USB_IDMOUSE is not set
851# CONFIG_USB_FTDI_ELAN is not set
852# CONFIG_USB_APPLEDISPLAY is not set
853# CONFIG_USB_LD is not set
854# CONFIG_USB_TRANCEVIBRATOR is not set
855# CONFIG_USB_IOWARRIOR is not set
856# CONFIG_USB_TEST is not set
857
858#
859# USB DSL modem support
860#
861
862#
863# USB Gadget Support
864#
865# CONFIG_USB_GADGET is not set
866CONFIG_MMC=y
867# CONFIG_MMC_DEBUG is not set
868# CONFIG_MMC_UNSAFE_RESUME is not set
869
870#
871# MMC/SD Card Drivers
872#
873CONFIG_MMC_BLOCK=y
874CONFIG_MMC_BLOCK_BOUNCE=y
875
876#
877# MMC/SD Host Controller Drivers
878#
879CONFIG_MMC_OMAP=y
880CONFIG_RTC_LIB=y
881CONFIG_RTC_CLASS=y
882CONFIG_RTC_HCTOSYS=y
883CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
884# CONFIG_RTC_DEBUG is not set
885
886#
887# RTC interfaces
888#
889CONFIG_RTC_INTF_SYSFS=y
890CONFIG_RTC_INTF_PROC=y
891CONFIG_RTC_INTF_DEV=y
892# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
893# CONFIG_RTC_DRV_TEST is not set
894
895#
896# I2C RTC drivers
897#
898# CONFIG_RTC_DRV_DS1307 is not set
899# CONFIG_RTC_DRV_DS1672 is not set
900# CONFIG_RTC_DRV_MAX6900 is not set
901# CONFIG_RTC_DRV_RS5C372 is not set
902# CONFIG_RTC_DRV_ISL1208 is not set
903# CONFIG_RTC_DRV_X1205 is not set
904# CONFIG_RTC_DRV_PCF8563 is not set
905# CONFIG_RTC_DRV_PCF8583 is not set
906# CONFIG_RTC_DRV_M41T80 is not set
907
908#
909# SPI RTC drivers
910#
911
912#
913# Platform RTC drivers
914#
915# CONFIG_RTC_DRV_CMOS is not set
916# CONFIG_RTC_DRV_DS1553 is not set
917# CONFIG_RTC_DRV_STK17TA8 is not set
918# CONFIG_RTC_DRV_DS1742 is not set
919# CONFIG_RTC_DRV_M48T86 is not set
920# CONFIG_RTC_DRV_M48T59 is not set
921# CONFIG_RTC_DRV_V3020 is not set
922
923#
924# on-CPU RTC drivers
925#
926CONFIG_RTC_DRV_OMAP=y
927
928#
929# DMA Engine support
930#
931# CONFIG_DMA_ENGINE is not set
932
933#
934# DMA Clients
935#
936
937#
938# DMA Devices
939#
940
941#
942# CBUS support
943#
944# CONFIG_CBUS is not set
945
946#
947# File systems
948#
949CONFIG_EXT2_FS=y
950# CONFIG_EXT2_FS_XATTR is not set
951# CONFIG_EXT2_FS_XIP is not set
952CONFIG_EXT3_FS=y
953CONFIG_EXT3_FS_XATTR=y
954# CONFIG_EXT3_FS_POSIX_ACL is not set
955# CONFIG_EXT3_FS_SECURITY is not set
956# CONFIG_EXT4DEV_FS is not set
957CONFIG_JBD=y
958# CONFIG_JBD_DEBUG is not set
959CONFIG_FS_MBCACHE=y
960# CONFIG_REISERFS_FS is not set
961# CONFIG_JFS_FS is not set
962# CONFIG_FS_POSIX_ACL is not set
963# CONFIG_XFS_FS is not set
964# CONFIG_GFS2_FS is not set
965# CONFIG_OCFS2_FS is not set
966# CONFIG_MINIX_FS is not set
967# CONFIG_ROMFS_FS is not set
968CONFIG_INOTIFY=y
969CONFIG_INOTIFY_USER=y
970# CONFIG_QUOTA is not set
971CONFIG_DNOTIFY=y
972CONFIG_AUTOFS_FS=y
973CONFIG_AUTOFS4_FS=y
974# CONFIG_FUSE_FS is not set
975
976#
977# CD-ROM/DVD Filesystems
978#
979CONFIG_ISO9660_FS=y
980CONFIG_JOLIET=y
981# CONFIG_ZISOFS is not set
982# CONFIG_UDF_FS is not set
983
984#
985# DOS/FAT/NT Filesystems
986#
987CONFIG_FAT_FS=m
988CONFIG_MSDOS_FS=m
989CONFIG_VFAT_FS=m
990CONFIG_FAT_DEFAULT_CODEPAGE=437
991CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
992# CONFIG_NTFS_FS is not set
993
994#
995# Pseudo filesystems
996#
997CONFIG_PROC_FS=y
998CONFIG_PROC_SYSCTL=y
999CONFIG_SYSFS=y
1000# CONFIG_TMPFS is not set
1001# CONFIG_HUGETLB_PAGE is not set
1002CONFIG_RAMFS=y
1003# CONFIG_CONFIGFS_FS is not set
1004
1005#
1006# Miscellaneous filesystems
1007#
1008# CONFIG_ADFS_FS is not set
1009# CONFIG_AFFS_FS is not set
1010# CONFIG_HFS_FS is not set
1011# CONFIG_HFSPLUS_FS is not set
1012# CONFIG_BEFS_FS is not set
1013# CONFIG_BFS_FS is not set
1014# CONFIG_EFS_FS is not set
1015# CONFIG_CRAMFS is not set
1016# CONFIG_VXFS_FS is not set
1017# CONFIG_HPFS_FS is not set
1018# CONFIG_QNX4FS_FS is not set
1019# CONFIG_SYSV_FS is not set
1020# CONFIG_UFS_FS is not set
1021
1022#
1023# Network File Systems
1024#
1025CONFIG_NFS_FS=y
1026# CONFIG_NFS_V3 is not set
1027# CONFIG_NFS_V4 is not set
1028# CONFIG_NFS_DIRECTIO is not set
1029# CONFIG_NFSD is not set
1030# CONFIG_ROOT_NFS is not set
1031CONFIG_LOCKD=y
1032CONFIG_NFS_COMMON=y
1033CONFIG_SUNRPC=y
1034# CONFIG_SUNRPC_BIND34 is not set
1035# CONFIG_RPCSEC_GSS_KRB5 is not set
1036# CONFIG_RPCSEC_GSS_SPKM3 is not set
1037# CONFIG_SMB_FS is not set
1038# CONFIG_CIFS is not set
1039# CONFIG_NCP_FS is not set
1040# CONFIG_CODA_FS is not set
1041# CONFIG_AFS_FS is not set
1042
1043#
1044# Partition Types
1045#
1046CONFIG_PARTITION_ADVANCED=y
1047# CONFIG_ACORN_PARTITION is not set
1048# CONFIG_OSF_PARTITION is not set
1049# CONFIG_AMIGA_PARTITION is not set
1050# CONFIG_ATARI_PARTITION is not set
1051# CONFIG_MAC_PARTITION is not set
1052CONFIG_MSDOS_PARTITION=y
1053# CONFIG_BSD_DISKLABEL is not set
1054# CONFIG_MINIX_SUBPARTITION is not set
1055# CONFIG_SOLARIS_X86_PARTITION is not set
1056# CONFIG_UNIXWARE_DISKLABEL is not set
1057# CONFIG_LDM_PARTITION is not set
1058# CONFIG_SGI_PARTITION is not set
1059# CONFIG_ULTRIX_PARTITION is not set
1060# CONFIG_SUN_PARTITION is not set
1061# CONFIG_KARMA_PARTITION is not set
1062# CONFIG_EFI_PARTITION is not set
1063# CONFIG_SYSV68_PARTITION is not set
1064
1065#
1066# Native Language Support
1067#
1068CONFIG_NLS=y
1069CONFIG_NLS_DEFAULT="iso8859-1"
1070# CONFIG_NLS_CODEPAGE_437 is not set
1071# CONFIG_NLS_CODEPAGE_737 is not set
1072# CONFIG_NLS_CODEPAGE_775 is not set
1073# CONFIG_NLS_CODEPAGE_850 is not set
1074# CONFIG_NLS_CODEPAGE_852 is not set
1075# CONFIG_NLS_CODEPAGE_855 is not set
1076# CONFIG_NLS_CODEPAGE_857 is not set
1077# CONFIG_NLS_CODEPAGE_860 is not set
1078# CONFIG_NLS_CODEPAGE_861 is not set
1079# CONFIG_NLS_CODEPAGE_862 is not set
1080# CONFIG_NLS_CODEPAGE_863 is not set
1081# CONFIG_NLS_CODEPAGE_864 is not set
1082# CONFIG_NLS_CODEPAGE_865 is not set
1083# CONFIG_NLS_CODEPAGE_866 is not set
1084# CONFIG_NLS_CODEPAGE_869 is not set
1085# CONFIG_NLS_CODEPAGE_936 is not set
1086# CONFIG_NLS_CODEPAGE_950 is not set
1087# CONFIG_NLS_CODEPAGE_932 is not set
1088# CONFIG_NLS_CODEPAGE_949 is not set
1089# CONFIG_NLS_CODEPAGE_874 is not set
1090# CONFIG_NLS_ISO8859_8 is not set
1091# CONFIG_NLS_CODEPAGE_1250 is not set
1092# CONFIG_NLS_CODEPAGE_1251 is not set
1093# CONFIG_NLS_ASCII is not set
1094# CONFIG_NLS_ISO8859_1 is not set
1095# CONFIG_NLS_ISO8859_2 is not set
1096# CONFIG_NLS_ISO8859_3 is not set
1097# CONFIG_NLS_ISO8859_4 is not set
1098# CONFIG_NLS_ISO8859_5 is not set
1099# CONFIG_NLS_ISO8859_6 is not set
1100# CONFIG_NLS_ISO8859_7 is not set
1101# CONFIG_NLS_ISO8859_9 is not set
1102# CONFIG_NLS_ISO8859_13 is not set
1103# CONFIG_NLS_ISO8859_14 is not set
1104# CONFIG_NLS_ISO8859_15 is not set
1105# CONFIG_NLS_KOI8_R is not set
1106# CONFIG_NLS_KOI8_U is not set
1107# CONFIG_NLS_UTF8 is not set
1108
1109#
1110# Distributed Lock Manager
1111#
1112# CONFIG_DLM is not set
1113
1114#
1115# Profiling support
1116#
1117# CONFIG_PROFILING is not set
1118
1119#
1120# Kernel hacking
1121#
1122# CONFIG_PRINTK_TIME is not set
1123CONFIG_ENABLE_MUST_CHECK=y
1124CONFIG_MAGIC_SYSRQ=y
1125# CONFIG_UNUSED_SYMBOLS is not set
1126# CONFIG_DEBUG_FS is not set
1127# CONFIG_HEADERS_CHECK is not set
1128CONFIG_DEBUG_KERNEL=y
1129# CONFIG_DEBUG_SHIRQ is not set
1130CONFIG_DETECT_SOFTLOCKUP=y
1131CONFIG_SCHED_DEBUG=y
1132# CONFIG_SCHEDSTATS is not set
1133# CONFIG_TIMER_STATS is not set
1134# CONFIG_DEBUG_SLAB is not set
1135CONFIG_DEBUG_PREEMPT=y
1136# CONFIG_DEBUG_RT_MUTEXES is not set
1137# CONFIG_RT_MUTEX_TESTER is not set
1138# CONFIG_DEBUG_SPINLOCK is not set
1139# CONFIG_DEBUG_MUTEXES is not set
1140# CONFIG_DEBUG_LOCK_ALLOC is not set
1141# CONFIG_PROVE_LOCKING is not set
1142# CONFIG_LOCK_STAT is not set
1143# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1144# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1145# CONFIG_DEBUG_KOBJECT is not set
1146CONFIG_DEBUG_BUGVERBOSE=y
1147# CONFIG_DEBUG_INFO is not set
1148# CONFIG_DEBUG_VM is not set
1149# CONFIG_DEBUG_LIST is not set
1150CONFIG_FRAME_POINTER=y
1151CONFIG_FORCED_INLINING=y
1152# CONFIG_RCU_TORTURE_TEST is not set
1153# CONFIG_FAULT_INJECTION is not set
1154# CONFIG_DEBUG_USER is not set
1155# CONFIG_DEBUG_ERRORS is not set
1156# CONFIG_DEBUG_LL is not set
1157
1158#
1159# Security options
1160#
1161# CONFIG_KEYS is not set
1162# CONFIG_SECURITY is not set
1163# CONFIG_CRYPTO is not set
1164
1165#
1166# Library routines
1167#
1168CONFIG_BITREVERSE=y
1169# CONFIG_CRC_CCITT is not set
1170# CONFIG_CRC16 is not set
1171# CONFIG_CRC_ITU_T is not set
1172CONFIG_CRC32=y
1173# CONFIG_CRC7 is not set
1174# CONFIG_LIBCRC32C is not set
1175CONFIG_PLIST=y
1176CONFIG_HAS_IOMEM=y
1177CONFIG_HAS_IOPORT=y
1178CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_1710_defconfig b/arch/arm/configs/omap_generic_1710_defconfig
new file mode 100644
index 000000000000..0a00a708a4fc
--- /dev/null
+++ b/arch/arm/configs/omap_generic_1710_defconfig
@@ -0,0 +1,1088 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 13:02:08 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set
40# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14
46CONFIG_SYSFS_DEPRECATED=y
47# CONFIG_RELAY is not set
48CONFIG_BLK_DEV_INITRD=y
49CONFIG_INITRAMFS_SOURCE=""
50CONFIG_CC_OPTIMIZE_FOR_SIZE=y
51CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_KALLSYMS=y
56# CONFIG_KALLSYMS_ALL is not set
57# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y
59CONFIG_PRINTK=y
60CONFIG_BUG=y
61CONFIG_ELF_CORE=y
62CONFIG_BASE_FULL=y
63CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y
69CONFIG_SHMEM=y
70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLUB_DEBUG=y
72# CONFIG_SLAB is not set
73CONFIG_SLUB=y
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78# CONFIG_MODULES is not set
79CONFIG_BLOCK=y
80# CONFIG_LBD is not set
81# CONFIG_BLK_DEV_IO_TRACE is not set
82# CONFIG_LSF is not set
83# CONFIG_BLK_DEV_BSG is not set
84
85#
86# IO Schedulers
87#
88CONFIG_IOSCHED_NOOP=y
89CONFIG_IOSCHED_AS=y
90CONFIG_IOSCHED_DEADLINE=y
91CONFIG_IOSCHED_CFQ=y
92# CONFIG_DEFAULT_AS is not set
93# CONFIG_DEFAULT_DEADLINE is not set
94CONFIG_DEFAULT_CFQ=y
95# CONFIG_DEFAULT_NOOP is not set
96CONFIG_DEFAULT_IOSCHED="cfq"
97
98#
99# System Type
100#
101# CONFIG_ARCH_AAEC2000 is not set
102# CONFIG_ARCH_INTEGRATOR is not set
103# CONFIG_ARCH_REALVIEW is not set
104# CONFIG_ARCH_VERSATILE is not set
105# CONFIG_ARCH_AT91 is not set
106# CONFIG_ARCH_CLPS7500 is not set
107# CONFIG_ARCH_CLPS711X is not set
108# CONFIG_ARCH_CO285 is not set
109# CONFIG_ARCH_EBSA110 is not set
110# CONFIG_ARCH_EP93XX is not set
111# CONFIG_ARCH_FOOTBRIDGE is not set
112# CONFIG_ARCH_NETX is not set
113# CONFIG_ARCH_H720X is not set
114# CONFIG_ARCH_IMX is not set
115# CONFIG_ARCH_IOP13XX is not set
116# CONFIG_ARCH_IOP32X is not set
117# CONFIG_ARCH_IOP33X is not set
118# CONFIG_ARCH_IXP23XX is not set
119# CONFIG_ARCH_IXP2000 is not set
120# CONFIG_ARCH_IXP4XX is not set
121# CONFIG_ARCH_L7200 is not set
122# CONFIG_ARCH_KS8695 is not set
123# CONFIG_ARCH_NS9XXX is not set
124# CONFIG_ARCH_MXC is not set
125# CONFIG_ARCH_PNX4008 is not set
126# CONFIG_ARCH_PXA is not set
127# CONFIG_ARCH_RPC is not set
128# CONFIG_ARCH_SA1100 is not set
129# CONFIG_ARCH_S3C2410 is not set
130# CONFIG_ARCH_SHARK is not set
131# CONFIG_ARCH_LH7A40X is not set
132# CONFIG_ARCH_DAVINCI is not set
133CONFIG_ARCH_OMAP=y
134
135#
136# TI OMAP Implementations
137#
138CONFIG_ARCH_OMAP_OTG=y
139CONFIG_ARCH_OMAP1=y
140# CONFIG_ARCH_OMAP2 is not set
141# CONFIG_ARCH_OMAP3 is not set
142
143#
144# OMAP Feature Selections
145#
146# CONFIG_OMAP_RESET_CLOCKS is not set
147CONFIG_OMAP_BOOT_TAG=y
148# CONFIG_OMAP_BOOT_REASON is not set
149# CONFIG_OMAP_COMPONENT_VERSION is not set
150# CONFIG_OMAP_GPIO_SWITCH is not set
151# CONFIG_OMAP_MUX is not set
152# CONFIG_OMAP_STI is not set
153CONFIG_OMAP_MCBSP=y
154# CONFIG_OMAP_MMU_FWK is not set
155# CONFIG_OMAP_MBOX_FWK is not set
156CONFIG_OMAP_MPU_TIMER=y
157# CONFIG_OMAP_32K_TIMER is not set
158# CONFIG_OMAP_DM_TIMER is not set
159# CONFIG_OMAP_LL_DEBUG_UART1 is not set
160# CONFIG_OMAP_LL_DEBUG_UART2 is not set
161CONFIG_OMAP_LL_DEBUG_UART3=y
162# CONFIG_OMAP_DSP is not set
163
164#
165# OMAP Core Type
166#
167# CONFIG_ARCH_OMAP730 is not set
168# CONFIG_ARCH_OMAP15XX is not set
169CONFIG_ARCH_OMAP16XX=y
170
171#
172# OMAP Board Type
173#
174# CONFIG_MACH_OMAP_INNOVATOR is not set
175# CONFIG_MACH_OMAP_H2 is not set
176# CONFIG_MACH_OMAP_H3 is not set
177# CONFIG_MACH_OMAP_OSK is not set
178# CONFIG_MACH_NOKIA770 is not set
179CONFIG_MACH_OMAP_GENERIC=y
180
181#
182# OMAP CPU Speed
183#
184# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
185# CONFIG_OMAP_ARM_216MHZ is not set
186CONFIG_OMAP_ARM_192MHZ=y
187# CONFIG_OMAP_ARM_168MHZ is not set
188# CONFIG_OMAP_ARM_120MHZ is not set
189# CONFIG_OMAP_ARM_60MHZ is not set
190# CONFIG_OMAP_ARM_30MHZ is not set
191# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
192
193#
194# Boot options
195#
196
197#
198# Power management
199#
200
201#
202# Processor Type
203#
204CONFIG_CPU_32=y
205CONFIG_CPU_ARM926T=y
206CONFIG_CPU_32v5=y
207CONFIG_CPU_ABRT_EV5TJ=y
208CONFIG_CPU_PABRT_NOIFAR=y
209CONFIG_CPU_CACHE_VIVT=y
210CONFIG_CPU_COPY_V4WB=y
211CONFIG_CPU_TLB_V4WBI=y
212CONFIG_CPU_CP15=y
213CONFIG_CPU_CP15_MMU=y
214
215#
216# Processor Features
217#
218# CONFIG_ARM_THUMB is not set
219# CONFIG_CPU_ICACHE_DISABLE is not set
220# CONFIG_CPU_DCACHE_DISABLE is not set
221# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
222# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
223# CONFIG_OUTER_CACHE is not set
224
225#
226# Bus support
227#
228# CONFIG_PCI_SYSCALL is not set
229# CONFIG_ARCH_SUPPORTS_MSI is not set
230
231#
232# PCCARD (PCMCIA/CardBus) support
233#
234# CONFIG_PCCARD is not set
235
236#
237# Kernel Features
238#
239# CONFIG_TICK_ONESHOT is not set
240# CONFIG_NO_HZ is not set
241# CONFIG_HIGH_RES_TIMERS is not set
242# CONFIG_PREEMPT is not set
243CONFIG_HZ=100
244# CONFIG_AEABI is not set
245# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
246CONFIG_SELECT_MEMORY_MODEL=y
247CONFIG_FLATMEM_MANUAL=y
248# CONFIG_DISCONTIGMEM_MANUAL is not set
249# CONFIG_SPARSEMEM_MANUAL is not set
250CONFIG_FLATMEM=y
251CONFIG_FLAT_NODE_MEM_MAP=y
252# CONFIG_SPARSEMEM_STATIC is not set
253CONFIG_SPLIT_PTLOCK_CPUS=4096
254# CONFIG_RESOURCES_64BIT is not set
255CONFIG_ZONE_DMA_FLAG=1
256CONFIG_BOUNCE=y
257CONFIG_VIRT_TO_BUS=y
258# CONFIG_LEDS is not set
259CONFIG_ALIGNMENT_TRAP=y
260
261#
262# Boot options
263#
264CONFIG_ZBOOT_ROM_TEXT=0x0
265CONFIG_ZBOOT_ROM_BSS=0x0
266CONFIG_CMDLINE="mem=64M console=tty0 console=ttyS2,115200 root=0801"
267# CONFIG_XIP_KERNEL is not set
268# CONFIG_KEXEC is not set
269
270#
271# CPU Frequency scaling
272#
273# CONFIG_CPU_FREQ is not set
274
275#
276# Floating point emulation
277#
278
279#
280# At least one emulation must be selected
281#
282CONFIG_FPE_NWFPE=y
283# CONFIG_FPE_NWFPE_XP is not set
284# CONFIG_FPE_FASTFPE is not set
285# CONFIG_VFP is not set
286
287#
288# Userspace binary formats
289#
290CONFIG_BINFMT_ELF=y
291# CONFIG_BINFMT_AOUT is not set
292# CONFIG_BINFMT_MISC is not set
293CONFIG_ARTHUR=y
294
295#
296# Power management options
297#
298CONFIG_PM=y
299# CONFIG_PM_LEGACY is not set
300# CONFIG_PM_DEBUG is not set
301CONFIG_PM_SLEEP=y
302CONFIG_SUSPEND_UP_POSSIBLE=y
303CONFIG_SUSPEND=y
304# CONFIG_APM_EMULATION is not set
305
306#
307# Networking
308#
309CONFIG_NET=y
310
311#
312# Networking options
313#
314CONFIG_PACKET=y
315# CONFIG_PACKET_MMAP is not set
316CONFIG_UNIX=y
317CONFIG_XFRM=y
318# CONFIG_XFRM_USER is not set
319# CONFIG_XFRM_SUB_POLICY is not set
320# CONFIG_XFRM_MIGRATE is not set
321# CONFIG_NET_KEY is not set
322CONFIG_INET=y
323CONFIG_IP_MULTICAST=y
324# CONFIG_IP_ADVANCED_ROUTER is not set
325CONFIG_IP_FIB_HASH=y
326CONFIG_IP_PNP=y
327CONFIG_IP_PNP_DHCP=y
328CONFIG_IP_PNP_BOOTP=y
329# CONFIG_IP_PNP_RARP is not set
330# CONFIG_NET_IPIP is not set
331# CONFIG_NET_IPGRE is not set
332# CONFIG_IP_MROUTE is not set
333# CONFIG_ARPD is not set
334# CONFIG_SYN_COOKIES is not set
335# CONFIG_INET_AH is not set
336# CONFIG_INET_ESP is not set
337# CONFIG_INET_IPCOMP is not set
338# CONFIG_INET_XFRM_TUNNEL is not set
339# CONFIG_INET_TUNNEL is not set
340CONFIG_INET_XFRM_MODE_TRANSPORT=y
341CONFIG_INET_XFRM_MODE_TUNNEL=y
342CONFIG_INET_XFRM_MODE_BEET=y
343CONFIG_INET_DIAG=y
344CONFIG_INET_TCP_DIAG=y
345# CONFIG_TCP_CONG_ADVANCED is not set
346CONFIG_TCP_CONG_CUBIC=y
347CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_TCP_MD5SIG is not set
349# CONFIG_IPV6 is not set
350# CONFIG_INET6_XFRM_TUNNEL is not set
351# CONFIG_INET6_TUNNEL is not set
352# CONFIG_NETLABEL is not set
353# CONFIG_NETWORK_SECMARK is not set
354# CONFIG_NETFILTER is not set
355# CONFIG_IP_DCCP is not set
356# CONFIG_IP_SCTP is not set
357# CONFIG_TIPC is not set
358# CONFIG_ATM is not set
359# CONFIG_BRIDGE is not set
360# CONFIG_VLAN_8021Q is not set
361# CONFIG_DECNET is not set
362# CONFIG_LLC2 is not set
363# CONFIG_IPX is not set
364# CONFIG_ATALK is not set
365# CONFIG_X25 is not set
366# CONFIG_LAPB is not set
367# CONFIG_ECONET is not set
368# CONFIG_WAN_ROUTER is not set
369
370#
371# QoS and/or fair queueing
372#
373# CONFIG_NET_SCHED is not set
374
375#
376# Network testing
377#
378# CONFIG_NET_PKTGEN is not set
379# CONFIG_HAMRADIO is not set
380# CONFIG_IRDA is not set
381# CONFIG_BT is not set
382# CONFIG_AF_RXRPC is not set
383
384#
385# Wireless
386#
387# CONFIG_CFG80211 is not set
388# CONFIG_WIRELESS_EXT is not set
389# CONFIG_MAC80211 is not set
390# CONFIG_IEEE80211 is not set
391# CONFIG_RFKILL is not set
392# CONFIG_NET_9P is not set
393
394#
395# Device Drivers
396#
397
398#
399# Generic Driver Options
400#
401CONFIG_STANDALONE=y
402CONFIG_PREVENT_FIRMWARE_BUILD=y
403# CONFIG_FW_LOADER is not set
404# CONFIG_DEBUG_DRIVER is not set
405# CONFIG_DEBUG_DEVRES is not set
406# CONFIG_SYS_HYPERVISOR is not set
407# CONFIG_CONNECTOR is not set
408# CONFIG_MTD is not set
409# CONFIG_PARPORT is not set
410CONFIG_BLK_DEV=y
411# CONFIG_BLK_DEV_COW_COMMON is not set
412CONFIG_BLK_DEV_LOOP=y
413# CONFIG_BLK_DEV_CRYPTOLOOP is not set
414# CONFIG_BLK_DEV_NBD is not set
415# CONFIG_BLK_DEV_UB is not set
416CONFIG_BLK_DEV_RAM=y
417CONFIG_BLK_DEV_RAM_COUNT=16
418CONFIG_BLK_DEV_RAM_SIZE=8192
419CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
420# CONFIG_CDROM_PKTCDVD is not set
421# CONFIG_ATA_OVER_ETH is not set
422
423#
424# SCSI device support
425#
426# CONFIG_RAID_ATTRS is not set
427CONFIG_SCSI=y
428CONFIG_SCSI_DMA=y
429# CONFIG_SCSI_TGT is not set
430# CONFIG_SCSI_NETLINK is not set
431CONFIG_SCSI_PROC_FS=y
432
433#
434# SCSI support type (disk, tape, CD-ROM)
435#
436CONFIG_BLK_DEV_SD=y
437# CONFIG_CHR_DEV_ST is not set
438# CONFIG_CHR_DEV_OSST is not set
439# CONFIG_BLK_DEV_SR is not set
440# CONFIG_CHR_DEV_SG is not set
441# CONFIG_CHR_DEV_SCH is not set
442
443#
444# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
445#
446# CONFIG_SCSI_MULTI_LUN is not set
447# CONFIG_SCSI_CONSTANTS is not set
448# CONFIG_SCSI_LOGGING is not set
449# CONFIG_SCSI_SCAN_ASYNC is not set
450
451#
452# SCSI Transports
453#
454# CONFIG_SCSI_SPI_ATTRS is not set
455# CONFIG_SCSI_FC_ATTRS is not set
456# CONFIG_SCSI_ISCSI_ATTRS is not set
457# CONFIG_SCSI_SAS_LIBSAS is not set
458CONFIG_SCSI_LOWLEVEL=y
459# CONFIG_ISCSI_TCP is not set
460# CONFIG_SCSI_DEBUG is not set
461# CONFIG_ATA is not set
462# CONFIG_MD is not set
463CONFIG_NETDEVICES=y
464# CONFIG_NETDEVICES_MULTIQUEUE is not set
465# CONFIG_DUMMY is not set
466# CONFIG_BONDING is not set
467# CONFIG_MACVLAN is not set
468# CONFIG_EQUALIZER is not set
469# CONFIG_TUN is not set
470# CONFIG_PHYLIB is not set
471CONFIG_NET_ETHERNET=y
472CONFIG_MII=y
473# CONFIG_AX88796 is not set
474# CONFIG_SMC91X is not set
475# CONFIG_DM9000 is not set
476CONFIG_NETDEV_1000=y
477CONFIG_NETDEV_10000=y
478
479#
480# Wireless LAN
481#
482# CONFIG_WLAN_PRE80211 is not set
483# CONFIG_WLAN_80211 is not set
484
485#
486# USB Network Adapters
487#
488# CONFIG_USB_CATC is not set
489# CONFIG_USB_KAWETH is not set
490# CONFIG_USB_PEGASUS is not set
491# CONFIG_USB_RTL8150 is not set
492CONFIG_USB_USBNET_MII=y
493CONFIG_USB_USBNET=y
494CONFIG_USB_NET_AX8817X=y
495CONFIG_USB_NET_CDCETHER=y
496# CONFIG_USB_NET_DM9601 is not set
497# CONFIG_USB_NET_GL620A is not set
498CONFIG_USB_NET_NET1080=y
499# CONFIG_USB_NET_PLUSB is not set
500# CONFIG_USB_NET_MCS7830 is not set
501# CONFIG_USB_NET_RNDIS_HOST is not set
502CONFIG_USB_NET_CDC_SUBSET=y
503CONFIG_USB_ALI_M5632=y
504# CONFIG_USB_AN2720 is not set
505# CONFIG_USB_BELKIN is not set
506# CONFIG_USB_ARMLINUX is not set
507# CONFIG_USB_EPSON2888 is not set
508# CONFIG_USB_KC2190 is not set
509CONFIG_USB_NET_ZAURUS=y
510# CONFIG_WAN is not set
511CONFIG_PPP=y
512# CONFIG_PPP_MULTILINK is not set
513# CONFIG_PPP_FILTER is not set
514# CONFIG_PPP_ASYNC is not set
515# CONFIG_PPP_SYNC_TTY is not set
516# CONFIG_PPP_DEFLATE is not set
517# CONFIG_PPP_BSDCOMP is not set
518# CONFIG_PPP_MPPE is not set
519# CONFIG_PPPOE is not set
520# CONFIG_PPPOL2TP is not set
521# CONFIG_SLIP is not set
522CONFIG_SLHC=y
523# CONFIG_SHAPER is not set
524# CONFIG_NETCONSOLE is not set
525# CONFIG_NETPOLL is not set
526# CONFIG_NET_POLL_CONTROLLER is not set
527# CONFIG_ISDN is not set
528
529#
530# Input device support
531#
532CONFIG_INPUT=y
533# CONFIG_INPUT_FF_MEMLESS is not set
534# CONFIG_INPUT_POLLDEV is not set
535
536#
537# Userland interfaces
538#
539CONFIG_INPUT_MOUSEDEV=y
540CONFIG_INPUT_MOUSEDEV_PSAUX=y
541CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
542CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
543# CONFIG_INPUT_JOYDEV is not set
544# CONFIG_INPUT_TSDEV is not set
545CONFIG_INPUT_EVDEV=y
546# CONFIG_INPUT_EVBUG is not set
547
548#
549# Input Device Drivers
550#
551CONFIG_INPUT_KEYBOARD=y
552CONFIG_KEYBOARD_ATKBD=y
553# CONFIG_KEYBOARD_SUNKBD is not set
554# CONFIG_KEYBOARD_LKKBD is not set
555# CONFIG_KEYBOARD_XTKBD is not set
556# CONFIG_KEYBOARD_NEWTON is not set
557# CONFIG_KEYBOARD_STOWAWAY is not set
558CONFIG_KEYBOARD_OMAP=y
559# CONFIG_KEYBOARD_GPIO is not set
560# CONFIG_INPUT_MOUSE is not set
561# CONFIG_INPUT_JOYSTICK is not set
562# CONFIG_INPUT_TABLET is not set
563# CONFIG_INPUT_TOUCHSCREEN is not set
564# CONFIG_INPUT_MISC is not set
565
566#
567# Hardware I/O ports
568#
569CONFIG_SERIO=y
570CONFIG_SERIO_SERPORT=y
571CONFIG_SERIO_LIBPS2=y
572# CONFIG_SERIO_RAW is not set
573# CONFIG_GAMEPORT is not set
574
575#
576# Character devices
577#
578CONFIG_VT=y
579CONFIG_VT_CONSOLE=y
580CONFIG_HW_CONSOLE=y
581# CONFIG_VT_HW_CONSOLE_BINDING is not set
582# CONFIG_SERIAL_NONSTANDARD is not set
583
584#
585# Serial drivers
586#
587CONFIG_SERIAL_8250=y
588CONFIG_SERIAL_8250_CONSOLE=y
589CONFIG_SERIAL_8250_NR_UARTS=4
590CONFIG_SERIAL_8250_RUNTIME_UARTS=4
591# CONFIG_SERIAL_8250_EXTENDED is not set
592
593#
594# Non-8250 serial port support
595#
596CONFIG_SERIAL_CORE=y
597CONFIG_SERIAL_CORE_CONSOLE=y
598CONFIG_UNIX98_PTYS=y
599CONFIG_LEGACY_PTYS=y
600CONFIG_LEGACY_PTY_COUNT=256
601# CONFIG_IPMI_HANDLER is not set
602# CONFIG_WATCHDOG is not set
603CONFIG_HW_RANDOM=y
604CONFIG_HW_RANDOM_OMAP=y
605# CONFIG_NVRAM is not set
606# CONFIG_R3964 is not set
607# CONFIG_RAW_DRIVER is not set
608# CONFIG_TCG_TPM is not set
609# CONFIG_I2C is not set
610
611#
612# SPI support
613#
614# CONFIG_SPI is not set
615# CONFIG_SPI_MASTER is not set
616# CONFIG_W1 is not set
617CONFIG_HWMON=y
618# CONFIG_HWMON_VID is not set
619# CONFIG_SENSORS_ABITUGURU is not set
620# CONFIG_SENSORS_ABITUGURU3 is not set
621# CONFIG_SENSORS_F71805F is not set
622# CONFIG_SENSORS_IT87 is not set
623# CONFIG_SENSORS_PC87360 is not set
624# CONFIG_SENSORS_PC87427 is not set
625# CONFIG_SENSORS_SMSC47M1 is not set
626# CONFIG_SENSORS_SMSC47B397 is not set
627# CONFIG_SENSORS_VT1211 is not set
628# CONFIG_SENSORS_W83627HF is not set
629# CONFIG_SENSORS_W83627EHF is not set
630# CONFIG_HWMON_DEBUG_CHIP is not set
631CONFIG_MISC_DEVICES=y
632# CONFIG_EEPROM_93CX6 is not set
633
634#
635# Multifunction device drivers
636#
637# CONFIG_MFD_SM501 is not set
638# CONFIG_NEW_LEDS is not set
639
640#
641# Multimedia devices
642#
643# CONFIG_VIDEO_DEV is not set
644# CONFIG_DVB_CORE is not set
645CONFIG_DAB=y
646# CONFIG_USB_DABUSB is not set
647
648#
649# Graphics support
650#
651# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
652
653#
654# Display device support
655#
656# CONFIG_DISPLAY_SUPPORT is not set
657# CONFIG_VGASTATE is not set
658CONFIG_VIDEO_OUTPUT_CONTROL=y
659# CONFIG_FB is not set
660
661#
662# Console display driver support
663#
664# CONFIG_VGA_CONSOLE is not set
665CONFIG_DUMMY_CONSOLE=y
666
667#
668# Sound
669#
670# CONFIG_SOUND is not set
671CONFIG_HID_SUPPORT=y
672CONFIG_HID=y
673CONFIG_HID_DEBUG=y
674
675#
676# USB Input Devices
677#
678CONFIG_USB_HID=y
679# CONFIG_USB_HIDINPUT_POWERBOOK is not set
680# CONFIG_HID_FF is not set
681# CONFIG_USB_HIDDEV is not set
682CONFIG_USB_SUPPORT=y
683CONFIG_USB_ARCH_HAS_HCD=y
684CONFIG_USB_ARCH_HAS_OHCI=y
685# CONFIG_USB_ARCH_HAS_EHCI is not set
686CONFIG_USB=y
687CONFIG_USB_DEBUG=y
688
689#
690# Miscellaneous USB options
691#
692CONFIG_USB_DEVICEFS=y
693CONFIG_USB_DEVICE_CLASS=y
694# CONFIG_USB_DYNAMIC_MINORS is not set
695# CONFIG_USB_SUSPEND is not set
696# CONFIG_USB_PERSIST is not set
697# CONFIG_USB_OTG is not set
698
699#
700# USB Host Controller Drivers
701#
702# CONFIG_USB_ISP116X_HCD is not set
703CONFIG_USB_OHCI_HCD=y
704# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
705# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
706CONFIG_USB_OHCI_LITTLE_ENDIAN=y
707# CONFIG_USB_SL811_HCD is not set
708# CONFIG_USB_R8A66597_HCD is not set
709# CONFIG_USB_MUSB_HDRC is not set
710
711#
712# USB Device Class drivers
713#
714# CONFIG_USB_ACM is not set
715# CONFIG_USB_PRINTER is not set
716
717#
718# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
719#
720
721#
722# may also be needed; see USB_STORAGE Help for more information
723#
724CONFIG_USB_STORAGE=y
725# CONFIG_USB_STORAGE_DEBUG is not set
726# CONFIG_USB_STORAGE_DATAFAB is not set
727# CONFIG_USB_STORAGE_FREECOM is not set
728# CONFIG_USB_STORAGE_DPCM is not set
729# CONFIG_USB_STORAGE_USBAT is not set
730# CONFIG_USB_STORAGE_SDDR09 is not set
731# CONFIG_USB_STORAGE_SDDR55 is not set
732# CONFIG_USB_STORAGE_JUMPSHOT is not set
733# CONFIG_USB_STORAGE_ALAUDA is not set
734# CONFIG_USB_STORAGE_KARMA is not set
735# CONFIG_USB_LIBUSUAL is not set
736
737#
738# USB Imaging devices
739#
740# CONFIG_USB_MDC800 is not set
741# CONFIG_USB_MICROTEK is not set
742CONFIG_USB_MON=y
743
744#
745# USB port drivers
746#
747
748#
749# USB Serial Converter support
750#
751# CONFIG_USB_SERIAL is not set
752
753#
754# USB Miscellaneous drivers
755#
756# CONFIG_USB_EMI62 is not set
757# CONFIG_USB_EMI26 is not set
758# CONFIG_USB_ADUTUX is not set
759# CONFIG_USB_AUERSWALD is not set
760# CONFIG_USB_RIO500 is not set
761# CONFIG_USB_LEGOTOWER is not set
762# CONFIG_USB_LCD is not set
763# CONFIG_USB_BERRY_CHARGE is not set
764# CONFIG_USB_LED is not set
765# CONFIG_USB_CYPRESS_CY7C63 is not set
766# CONFIG_USB_CYTHERM is not set
767# CONFIG_USB_PHIDGET is not set
768# CONFIG_USB_IDMOUSE is not set
769# CONFIG_USB_FTDI_ELAN is not set
770# CONFIG_USB_APPLEDISPLAY is not set
771# CONFIG_USB_LD is not set
772# CONFIG_USB_TRANCEVIBRATOR is not set
773# CONFIG_USB_IOWARRIOR is not set
774# CONFIG_USB_TEST is not set
775
776#
777# USB DSL modem support
778#
779
780#
781# USB Gadget Support
782#
783# CONFIG_USB_GADGET is not set
784CONFIG_MMC=y
785# CONFIG_MMC_DEBUG is not set
786# CONFIG_MMC_UNSAFE_RESUME is not set
787
788#
789# MMC/SD Card Drivers
790#
791CONFIG_MMC_BLOCK=y
792CONFIG_MMC_BLOCK_BOUNCE=y
793
794#
795# MMC/SD Host Controller Drivers
796#
797CONFIG_MMC_OMAP=y
798CONFIG_RTC_LIB=y
799# CONFIG_RTC_CLASS is not set
800
801#
802# DMA Engine support
803#
804# CONFIG_DMA_ENGINE is not set
805
806#
807# DMA Clients
808#
809
810#
811# DMA Devices
812#
813
814#
815# CBUS support
816#
817# CONFIG_CBUS is not set
818
819#
820# File systems
821#
822CONFIG_EXT2_FS=y
823# CONFIG_EXT2_FS_XATTR is not set
824# CONFIG_EXT2_FS_XIP is not set
825CONFIG_EXT3_FS=y
826CONFIG_EXT3_FS_XATTR=y
827# CONFIG_EXT3_FS_POSIX_ACL is not set
828# CONFIG_EXT3_FS_SECURITY is not set
829# CONFIG_EXT4DEV_FS is not set
830CONFIG_JBD=y
831# CONFIG_JBD_DEBUG is not set
832CONFIG_FS_MBCACHE=y
833# CONFIG_REISERFS_FS is not set
834# CONFIG_JFS_FS is not set
835# CONFIG_FS_POSIX_ACL is not set
836# CONFIG_XFS_FS is not set
837# CONFIG_GFS2_FS is not set
838# CONFIG_OCFS2_FS is not set
839# CONFIG_MINIX_FS is not set
840# CONFIG_ROMFS_FS is not set
841CONFIG_INOTIFY=y
842CONFIG_INOTIFY_USER=y
843# CONFIG_QUOTA is not set
844CONFIG_DNOTIFY=y
845# CONFIG_AUTOFS_FS is not set
846# CONFIG_AUTOFS4_FS is not set
847# CONFIG_FUSE_FS is not set
848
849#
850# CD-ROM/DVD Filesystems
851#
852# CONFIG_ISO9660_FS is not set
853# CONFIG_UDF_FS is not set
854
855#
856# DOS/FAT/NT Filesystems
857#
858# CONFIG_MSDOS_FS is not set
859# CONFIG_VFAT_FS is not set
860# CONFIG_NTFS_FS is not set
861
862#
863# Pseudo filesystems
864#
865CONFIG_PROC_FS=y
866CONFIG_PROC_SYSCTL=y
867CONFIG_SYSFS=y
868CONFIG_TMPFS=y
869# CONFIG_TMPFS_POSIX_ACL is not set
870# CONFIG_HUGETLB_PAGE is not set
871CONFIG_RAMFS=y
872# CONFIG_CONFIGFS_FS is not set
873
874#
875# Miscellaneous filesystems
876#
877# CONFIG_ADFS_FS is not set
878# CONFIG_AFFS_FS is not set
879# CONFIG_HFS_FS is not set
880# CONFIG_HFSPLUS_FS is not set
881# CONFIG_BEFS_FS is not set
882# CONFIG_BFS_FS is not set
883# CONFIG_EFS_FS is not set
884# CONFIG_CRAMFS is not set
885# CONFIG_VXFS_FS is not set
886# CONFIG_HPFS_FS is not set
887# CONFIG_QNX4FS_FS is not set
888# CONFIG_SYSV_FS is not set
889# CONFIG_UFS_FS is not set
890
891#
892# Network File Systems
893#
894CONFIG_NFS_FS=y
895CONFIG_NFS_V3=y
896# CONFIG_NFS_V3_ACL is not set
897CONFIG_NFS_V4=y
898# CONFIG_NFS_DIRECTIO is not set
899# CONFIG_NFSD is not set
900# CONFIG_ROOT_NFS is not set
901CONFIG_LOCKD=y
902CONFIG_LOCKD_V4=y
903CONFIG_NFS_COMMON=y
904CONFIG_SUNRPC=y
905CONFIG_SUNRPC_GSS=y
906# CONFIG_SUNRPC_BIND34 is not set
907CONFIG_RPCSEC_GSS_KRB5=y
908# CONFIG_RPCSEC_GSS_SPKM3 is not set
909# CONFIG_SMB_FS is not set
910# CONFIG_CIFS is not set
911# CONFIG_NCP_FS is not set
912# CONFIG_CODA_FS is not set
913# CONFIG_AFS_FS is not set
914
915#
916# Partition Types
917#
918CONFIG_PARTITION_ADVANCED=y
919# CONFIG_ACORN_PARTITION is not set
920# CONFIG_OSF_PARTITION is not set
921# CONFIG_AMIGA_PARTITION is not set
922# CONFIG_ATARI_PARTITION is not set
923# CONFIG_MAC_PARTITION is not set
924CONFIG_MSDOS_PARTITION=y
925# CONFIG_BSD_DISKLABEL is not set
926# CONFIG_MINIX_SUBPARTITION is not set
927# CONFIG_SOLARIS_X86_PARTITION is not set
928# CONFIG_UNIXWARE_DISKLABEL is not set
929# CONFIG_LDM_PARTITION is not set
930# CONFIG_SGI_PARTITION is not set
931# CONFIG_ULTRIX_PARTITION is not set
932# CONFIG_SUN_PARTITION is not set
933# CONFIG_KARMA_PARTITION is not set
934# CONFIG_EFI_PARTITION is not set
935# CONFIG_SYSV68_PARTITION is not set
936
937#
938# Native Language Support
939#
940CONFIG_NLS=y
941CONFIG_NLS_DEFAULT="iso8859-1"
942CONFIG_NLS_CODEPAGE_437=y
943# CONFIG_NLS_CODEPAGE_737 is not set
944# CONFIG_NLS_CODEPAGE_775 is not set
945# CONFIG_NLS_CODEPAGE_850 is not set
946CONFIG_NLS_CODEPAGE_852=y
947# CONFIG_NLS_CODEPAGE_855 is not set
948# CONFIG_NLS_CODEPAGE_857 is not set
949# CONFIG_NLS_CODEPAGE_860 is not set
950# CONFIG_NLS_CODEPAGE_861 is not set
951# CONFIG_NLS_CODEPAGE_862 is not set
952# CONFIG_NLS_CODEPAGE_863 is not set
953# CONFIG_NLS_CODEPAGE_864 is not set
954# CONFIG_NLS_CODEPAGE_865 is not set
955# CONFIG_NLS_CODEPAGE_866 is not set
956# CONFIG_NLS_CODEPAGE_869 is not set
957# CONFIG_NLS_CODEPAGE_936 is not set
958# CONFIG_NLS_CODEPAGE_950 is not set
959# CONFIG_NLS_CODEPAGE_932 is not set
960# CONFIG_NLS_CODEPAGE_949 is not set
961# CONFIG_NLS_CODEPAGE_874 is not set
962# CONFIG_NLS_ISO8859_8 is not set
963# CONFIG_NLS_CODEPAGE_1250 is not set
964# CONFIG_NLS_CODEPAGE_1251 is not set
965# CONFIG_NLS_ASCII is not set
966CONFIG_NLS_ISO8859_1=y
967# CONFIG_NLS_ISO8859_2 is not set
968# CONFIG_NLS_ISO8859_3 is not set
969# CONFIG_NLS_ISO8859_4 is not set
970# CONFIG_NLS_ISO8859_5 is not set
971# CONFIG_NLS_ISO8859_6 is not set
972# CONFIG_NLS_ISO8859_7 is not set
973# CONFIG_NLS_ISO8859_9 is not set
974# CONFIG_NLS_ISO8859_13 is not set
975# CONFIG_NLS_ISO8859_14 is not set
976CONFIG_NLS_ISO8859_15=y
977# CONFIG_NLS_KOI8_R is not set
978# CONFIG_NLS_KOI8_U is not set
979# CONFIG_NLS_UTF8 is not set
980
981#
982# Distributed Lock Manager
983#
984# CONFIG_DLM is not set
985
986#
987# Profiling support
988#
989# CONFIG_PROFILING is not set
990
991#
992# Kernel hacking
993#
994# CONFIG_PRINTK_TIME is not set
995CONFIG_ENABLE_MUST_CHECK=y
996CONFIG_MAGIC_SYSRQ=y
997# CONFIG_UNUSED_SYMBOLS is not set
998# CONFIG_DEBUG_FS is not set
999# CONFIG_HEADERS_CHECK is not set
1000CONFIG_DEBUG_KERNEL=y
1001# CONFIG_DEBUG_SHIRQ is not set
1002CONFIG_DETECT_SOFTLOCKUP=y
1003CONFIG_SCHED_DEBUG=y
1004# CONFIG_SCHEDSTATS is not set
1005# CONFIG_TIMER_STATS is not set
1006# CONFIG_SLUB_DEBUG_ON is not set
1007# CONFIG_DEBUG_RT_MUTEXES is not set
1008# CONFIG_RT_MUTEX_TESTER is not set
1009CONFIG_DEBUG_SPINLOCK=y
1010# CONFIG_DEBUG_MUTEXES is not set
1011# CONFIG_DEBUG_LOCK_ALLOC is not set
1012# CONFIG_PROVE_LOCKING is not set
1013# CONFIG_LOCK_STAT is not set
1014# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1015# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1016# CONFIG_DEBUG_KOBJECT is not set
1017CONFIG_DEBUG_BUGVERBOSE=y
1018# CONFIG_DEBUG_INFO is not set
1019# CONFIG_DEBUG_VM is not set
1020# CONFIG_DEBUG_LIST is not set
1021CONFIG_FRAME_POINTER=y
1022CONFIG_FORCED_INLINING=y
1023# CONFIG_FAULT_INJECTION is not set
1024# CONFIG_DEBUG_USER is not set
1025CONFIG_DEBUG_ERRORS=y
1026# CONFIG_DEBUG_LL is not set
1027
1028#
1029# Security options
1030#
1031# CONFIG_KEYS is not set
1032CONFIG_SECURITY=y
1033# CONFIG_SECURITY_NETWORK is not set
1034CONFIG_SECURITY_CAPABILITIES=y
1035# CONFIG_SECURITY_ROOTPLUG is not set
1036# CONFIG_SECURITY_LOWMEM is not set
1037CONFIG_CRYPTO=y
1038CONFIG_CRYPTO_ALGAPI=y
1039CONFIG_CRYPTO_BLKCIPHER=y
1040CONFIG_CRYPTO_MANAGER=y
1041# CONFIG_CRYPTO_HMAC is not set
1042# CONFIG_CRYPTO_XCBC is not set
1043# CONFIG_CRYPTO_NULL is not set
1044# CONFIG_CRYPTO_MD4 is not set
1045CONFIG_CRYPTO_MD5=y
1046# CONFIG_CRYPTO_SHA1 is not set
1047# CONFIG_CRYPTO_SHA256 is not set
1048# CONFIG_CRYPTO_SHA512 is not set
1049# CONFIG_CRYPTO_WP512 is not set
1050# CONFIG_CRYPTO_TGR192 is not set
1051# CONFIG_CRYPTO_GF128MUL is not set
1052CONFIG_CRYPTO_ECB=y
1053CONFIG_CRYPTO_CBC=y
1054CONFIG_CRYPTO_PCBC=y
1055# CONFIG_CRYPTO_LRW is not set
1056# CONFIG_CRYPTO_CRYPTD is not set
1057CONFIG_CRYPTO_DES=y
1058# CONFIG_CRYPTO_FCRYPT is not set
1059# CONFIG_CRYPTO_BLOWFISH is not set
1060# CONFIG_CRYPTO_TWOFISH is not set
1061# CONFIG_CRYPTO_SERPENT is not set
1062# CONFIG_CRYPTO_AES is not set
1063# CONFIG_CRYPTO_CAST5 is not set
1064# CONFIG_CRYPTO_CAST6 is not set
1065# CONFIG_CRYPTO_TEA is not set
1066# CONFIG_CRYPTO_ARC4 is not set
1067# CONFIG_CRYPTO_KHAZAD is not set
1068# CONFIG_CRYPTO_ANUBIS is not set
1069# CONFIG_CRYPTO_DEFLATE is not set
1070# CONFIG_CRYPTO_MICHAEL_MIC is not set
1071# CONFIG_CRYPTO_CRC32C is not set
1072# CONFIG_CRYPTO_CAMELLIA is not set
1073CONFIG_CRYPTO_HW=y
1074
1075#
1076# Library routines
1077#
1078CONFIG_BITREVERSE=y
1079# CONFIG_CRC_CCITT is not set
1080# CONFIG_CRC16 is not set
1081# CONFIG_CRC_ITU_T is not set
1082CONFIG_CRC32=y
1083# CONFIG_CRC7 is not set
1084# CONFIG_LIBCRC32C is not set
1085CONFIG_PLIST=y
1086CONFIG_HAS_IOMEM=y
1087CONFIG_HAS_IOPORT=y
1088CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_generic_2420_defconfig b/arch/arm/configs/omap_generic_2420_defconfig
new file mode 100644
index 000000000000..cf4073b47aaa
--- /dev/null
+++ b/arch/arm/configs/omap_generic_2420_defconfig
@@ -0,0 +1,655 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:44:48 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_BSD_PROCESS_ACCT is not set
40# CONFIG_USER_NS is not set
41# CONFIG_IKCONFIG is not set
42CONFIG_LOG_BUF_SHIFT=14
43CONFIG_SYSFS_DEPRECATED=y
44# CONFIG_RELAY is not set
45CONFIG_BLK_DEV_INITRD=y
46CONFIG_INITRAMFS_SOURCE=""
47CONFIG_CC_OPTIMIZE_FOR_SIZE=y
48CONFIG_SYSCTL=y
49# CONFIG_EMBEDDED is not set
50CONFIG_UID16=y
51CONFIG_SYSCTL_SYSCALL=y
52CONFIG_KALLSYMS=y
53# CONFIG_KALLSYMS_ALL is not set
54# CONFIG_KALLSYMS_EXTRA_PASS is not set
55CONFIG_HOTPLUG=y
56CONFIG_PRINTK=y
57CONFIG_BUG=y
58CONFIG_ELF_CORE=y
59CONFIG_BASE_FULL=y
60CONFIG_FUTEX=y
61CONFIG_ANON_INODES=y
62CONFIG_EPOLL=y
63CONFIG_SIGNALFD=y
64CONFIG_TIMERFD=y
65CONFIG_EVENTFD=y
66CONFIG_SHMEM=y
67CONFIG_VM_EVENT_COUNTERS=y
68CONFIG_SLUB_DEBUG=y
69# CONFIG_SLAB is not set
70CONFIG_SLUB=y
71# CONFIG_SLOB is not set
72CONFIG_RT_MUTEXES=y
73# CONFIG_TINY_SHMEM is not set
74CONFIG_BASE_SMALL=0
75CONFIG_MODULES=y
76CONFIG_MODULE_UNLOAD=y
77# CONFIG_MODULE_FORCE_UNLOAD is not set
78# CONFIG_MODVERSIONS is not set
79# CONFIG_MODULE_SRCVERSION_ALL is not set
80# CONFIG_KMOD is not set
81CONFIG_BLOCK=y
82# CONFIG_LBD is not set
83# CONFIG_BLK_DEV_IO_TRACE is not set
84# CONFIG_LSF is not set
85# CONFIG_BLK_DEV_BSG is not set
86
87#
88# IO Schedulers
89#
90CONFIG_IOSCHED_NOOP=y
91CONFIG_IOSCHED_AS=y
92CONFIG_IOSCHED_DEADLINE=y
93CONFIG_IOSCHED_CFQ=y
94# CONFIG_DEFAULT_AS is not set
95# CONFIG_DEFAULT_DEADLINE is not set
96CONFIG_DEFAULT_CFQ=y
97# CONFIG_DEFAULT_NOOP is not set
98CONFIG_DEFAULT_IOSCHED="cfq"
99
100#
101# System Type
102#
103# CONFIG_ARCH_AAEC2000 is not set
104# CONFIG_ARCH_INTEGRATOR is not set
105# CONFIG_ARCH_REALVIEW is not set
106# CONFIG_ARCH_VERSATILE is not set
107# CONFIG_ARCH_AT91 is not set
108# CONFIG_ARCH_CLPS7500 is not set
109# CONFIG_ARCH_CLPS711X is not set
110# CONFIG_ARCH_CO285 is not set
111# CONFIG_ARCH_EBSA110 is not set
112# CONFIG_ARCH_EP93XX is not set
113# CONFIG_ARCH_FOOTBRIDGE is not set
114# CONFIG_ARCH_NETX is not set
115# CONFIG_ARCH_H720X is not set
116# CONFIG_ARCH_IMX is not set
117# CONFIG_ARCH_IOP13XX is not set
118# CONFIG_ARCH_IOP32X is not set
119# CONFIG_ARCH_IOP33X is not set
120# CONFIG_ARCH_IXP23XX is not set
121# CONFIG_ARCH_IXP2000 is not set
122# CONFIG_ARCH_IXP4XX is not set
123# CONFIG_ARCH_L7200 is not set
124# CONFIG_ARCH_KS8695 is not set
125# CONFIG_ARCH_NS9XXX is not set
126# CONFIG_ARCH_MXC is not set
127# CONFIG_ARCH_PNX4008 is not set
128# CONFIG_ARCH_PXA is not set
129# CONFIG_ARCH_RPC is not set
130# CONFIG_ARCH_SA1100 is not set
131# CONFIG_ARCH_S3C2410 is not set
132# CONFIG_ARCH_SHARK is not set
133# CONFIG_ARCH_LH7A40X is not set
134# CONFIG_ARCH_DAVINCI is not set
135CONFIG_ARCH_OMAP=y
136
137#
138# TI OMAP Implementations
139#
140CONFIG_ARCH_OMAP_OTG=y
141# CONFIG_ARCH_OMAP1 is not set
142CONFIG_ARCH_OMAP2=y
143# CONFIG_ARCH_OMAP3 is not set
144
145#
146# OMAP Feature Selections
147#
148# CONFIG_OMAP_RESET_CLOCKS is not set
149CONFIG_OMAP_BOOT_TAG=y
150# CONFIG_OMAP_BOOT_REASON is not set
151# CONFIG_OMAP_COMPONENT_VERSION is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153# CONFIG_OMAP_MUX is not set
154# CONFIG_OMAP_STI is not set
155CONFIG_OMAP_MCBSP=y
156# CONFIG_OMAP_MMU_FWK is not set
157# CONFIG_OMAP_MBOX_FWK is not set
158CONFIG_OMAP_MPU_TIMER=y
159# CONFIG_OMAP_32K_TIMER is not set
160CONFIG_OMAP_DM_TIMER=y
161# CONFIG_OMAP_LL_DEBUG_UART1 is not set
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163CONFIG_OMAP_LL_DEBUG_UART3=y
164# CONFIG_OMAP_DSP is not set
165CONFIG_MACH_OMAP_GENERIC=y
166
167#
168# OMAP Core Type
169#
170CONFIG_ARCH_OMAP24XX=y
171CONFIG_ARCH_OMAP2420=y
172# CONFIG_ARCH_OMAP2430 is not set
173
174#
175# OMAP Board Type
176#
177# CONFIG_MACH_NOKIA_N800 is not set
178# CONFIG_MACH_OMAP_H4 is not set
179# CONFIG_MACH_OMAP_APOLLON is not set
180# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
181# CONFIG_MACH_OMAP_2430SDP is not set
182
183#
184# Boot options
185#
186
187#
188# Power management
189#
190
191#
192# Processor Type
193#
194CONFIG_CPU_32=y
195CONFIG_CPU_V6=y
196# CONFIG_CPU_32v6K is not set
197CONFIG_CPU_32v6=y
198CONFIG_CPU_ABRT_EV6=y
199CONFIG_CPU_PABRT_NOIFAR=y
200CONFIG_CPU_CACHE_V6=y
201CONFIG_CPU_CACHE_VIPT=y
202CONFIG_CPU_COPY_V6=y
203CONFIG_CPU_TLB_V6=y
204CONFIG_CPU_HAS_ASID=y
205CONFIG_CPU_CP15=y
206CONFIG_CPU_CP15_MMU=y
207
208#
209# Processor Features
210#
211CONFIG_ARM_THUMB=y
212# CONFIG_CPU_ICACHE_DISABLE is not set
213# CONFIG_CPU_DCACHE_DISABLE is not set
214# CONFIG_CPU_BPREDICT_DISABLE is not set
215# CONFIG_OUTER_CACHE is not set
216
217#
218# Bus support
219#
220# CONFIG_PCI_SYSCALL is not set
221# CONFIG_ARCH_SUPPORTS_MSI is not set
222
223#
224# PCCARD (PCMCIA/CardBus) support
225#
226# CONFIG_PCCARD is not set
227
228#
229# Kernel Features
230#
231# CONFIG_TICK_ONESHOT is not set
232# CONFIG_NO_HZ is not set
233# CONFIG_HIGH_RES_TIMERS is not set
234# CONFIG_PREEMPT is not set
235CONFIG_HZ=100
236# CONFIG_AEABI is not set
237# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
238CONFIG_SELECT_MEMORY_MODEL=y
239CONFIG_FLATMEM_MANUAL=y
240# CONFIG_DISCONTIGMEM_MANUAL is not set
241# CONFIG_SPARSEMEM_MANUAL is not set
242CONFIG_FLATMEM=y
243CONFIG_FLAT_NODE_MEM_MAP=y
244# CONFIG_SPARSEMEM_STATIC is not set
245CONFIG_SPLIT_PTLOCK_CPUS=4
246# CONFIG_RESOURCES_64BIT is not set
247CONFIG_ZONE_DMA_FLAG=1
248CONFIG_BOUNCE=y
249CONFIG_VIRT_TO_BUS=y
250CONFIG_LEDS=y
251CONFIG_ALIGNMENT_TRAP=y
252
253#
254# Boot options
255#
256CONFIG_ZBOOT_ROM_TEXT=0x10C08000
257CONFIG_ZBOOT_ROM_BSS=0x10200000
258# CONFIG_ZBOOT_ROM is not set
259CONFIG_CMDLINE=""
260# CONFIG_XIP_KERNEL is not set
261# CONFIG_KEXEC is not set
262
263#
264# CPU Frequency scaling
265#
266# CONFIG_CPU_FREQ is not set
267
268#
269# Floating point emulation
270#
271
272#
273# At least one emulation must be selected
274#
275CONFIG_FPE_NWFPE=y
276# CONFIG_FPE_NWFPE_XP is not set
277# CONFIG_FPE_FASTFPE is not set
278# CONFIG_VFP is not set
279
280#
281# Userspace binary formats
282#
283CONFIG_BINFMT_ELF=y
284# CONFIG_BINFMT_AOUT is not set
285# CONFIG_BINFMT_MISC is not set
286# CONFIG_ARTHUR is not set
287
288#
289# Power management options
290#
291# CONFIG_PM is not set
292CONFIG_SUSPEND_UP_POSSIBLE=y
293
294#
295# Networking
296#
297# CONFIG_NET is not set
298
299#
300# Device Drivers
301#
302
303#
304# Generic Driver Options
305#
306CONFIG_STANDALONE=y
307CONFIG_PREVENT_FIRMWARE_BUILD=y
308CONFIG_FW_LOADER=y
309# CONFIG_DEBUG_DRIVER is not set
310# CONFIG_DEBUG_DEVRES is not set
311# CONFIG_SYS_HYPERVISOR is not set
312# CONFIG_MTD is not set
313# CONFIG_PARPORT is not set
314CONFIG_BLK_DEV=y
315# CONFIG_BLK_DEV_COW_COMMON is not set
316# CONFIG_BLK_DEV_LOOP is not set
317CONFIG_BLK_DEV_RAM=y
318CONFIG_BLK_DEV_RAM_COUNT=16
319CONFIG_BLK_DEV_RAM_SIZE=4096
320CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
321# CONFIG_CDROM_PKTCDVD is not set
322
323#
324# SCSI device support
325#
326# CONFIG_RAID_ATTRS is not set
327# CONFIG_SCSI is not set
328# CONFIG_SCSI_DMA is not set
329# CONFIG_SCSI_NETLINK is not set
330# CONFIG_ATA is not set
331# CONFIG_MD is not set
332
333#
334# Input device support
335#
336CONFIG_INPUT=y
337# CONFIG_INPUT_FF_MEMLESS is not set
338# CONFIG_INPUT_POLLDEV is not set
339
340#
341# Userland interfaces
342#
343CONFIG_INPUT_MOUSEDEV=y
344CONFIG_INPUT_MOUSEDEV_PSAUX=y
345CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
346CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
347# CONFIG_INPUT_JOYDEV is not set
348# CONFIG_INPUT_TSDEV is not set
349CONFIG_INPUT_EVDEV=y
350# CONFIG_INPUT_EVBUG is not set
351
352#
353# Input Device Drivers
354#
355# CONFIG_INPUT_KEYBOARD is not set
356# CONFIG_INPUT_MOUSE is not set
357# CONFIG_INPUT_JOYSTICK is not set
358# CONFIG_INPUT_TABLET is not set
359# CONFIG_INPUT_TOUCHSCREEN is not set
360# CONFIG_INPUT_MISC is not set
361
362#
363# Hardware I/O ports
364#
365CONFIG_SERIO=y
366CONFIG_SERIO_SERPORT=y
367# CONFIG_SERIO_RAW is not set
368# CONFIG_GAMEPORT is not set
369
370#
371# Character devices
372#
373CONFIG_VT=y
374CONFIG_VT_CONSOLE=y
375CONFIG_HW_CONSOLE=y
376# CONFIG_VT_HW_CONSOLE_BINDING is not set
377# CONFIG_SERIAL_NONSTANDARD is not set
378
379#
380# Serial drivers
381#
382CONFIG_SERIAL_8250=y
383CONFIG_SERIAL_8250_CONSOLE=y
384CONFIG_SERIAL_8250_NR_UARTS=4
385CONFIG_SERIAL_8250_RUNTIME_UARTS=4
386# CONFIG_SERIAL_8250_EXTENDED is not set
387
388#
389# Non-8250 serial port support
390#
391CONFIG_SERIAL_CORE=y
392CONFIG_SERIAL_CORE_CONSOLE=y
393CONFIG_UNIX98_PTYS=y
394# CONFIG_LEGACY_PTYS is not set
395# CONFIG_IPMI_HANDLER is not set
396CONFIG_WATCHDOG=y
397CONFIG_WATCHDOG_NOWAYOUT=y
398
399#
400# Watchdog Device Drivers
401#
402# CONFIG_SOFT_WATCHDOG is not set
403# CONFIG_OMAP_WATCHDOG is not set
404CONFIG_HW_RANDOM=m
405CONFIG_HW_RANDOM_OMAP=m
406# CONFIG_NVRAM is not set
407# CONFIG_R3964 is not set
408# CONFIG_RAW_DRIVER is not set
409# CONFIG_TCG_TPM is not set
410# CONFIG_I2C is not set
411
412#
413# SPI support
414#
415# CONFIG_SPI is not set
416# CONFIG_SPI_MASTER is not set
417# CONFIG_W1 is not set
418CONFIG_HWMON=y
419# CONFIG_HWMON_VID is not set
420# CONFIG_SENSORS_ABITUGURU is not set
421# CONFIG_SENSORS_ABITUGURU3 is not set
422# CONFIG_SENSORS_F71805F is not set
423# CONFIG_SENSORS_IT87 is not set
424# CONFIG_SENSORS_PC87360 is not set
425# CONFIG_SENSORS_PC87427 is not set
426# CONFIG_SENSORS_SMSC47M1 is not set
427# CONFIG_SENSORS_SMSC47B397 is not set
428# CONFIG_SENSORS_VT1211 is not set
429# CONFIG_SENSORS_W83627HF is not set
430# CONFIG_SENSORS_W83627EHF is not set
431# CONFIG_HWMON_DEBUG_CHIP is not set
432CONFIG_MISC_DEVICES=y
433# CONFIG_EEPROM_93CX6 is not set
434
435#
436# Multifunction device drivers
437#
438# CONFIG_MFD_SM501 is not set
439# CONFIG_NEW_LEDS is not set
440
441#
442# Multimedia devices
443#
444# CONFIG_VIDEO_DEV is not set
445CONFIG_DAB=y
446
447#
448# Graphics support
449#
450# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
451
452#
453# Display device support
454#
455# CONFIG_DISPLAY_SUPPORT is not set
456# CONFIG_VGASTATE is not set
457CONFIG_VIDEO_OUTPUT_CONTROL=m
458# CONFIG_FB is not set
459
460#
461# Console display driver support
462#
463# CONFIG_VGA_CONSOLE is not set
464CONFIG_DUMMY_CONSOLE=y
465
466#
467# Sound
468#
469# CONFIG_SOUND is not set
470CONFIG_HID_SUPPORT=y
471CONFIG_HID=y
472CONFIG_HID_DEBUG=y
473CONFIG_USB_SUPPORT=y
474CONFIG_USB_ARCH_HAS_HCD=y
475CONFIG_USB_ARCH_HAS_OHCI=y
476# CONFIG_USB_ARCH_HAS_EHCI is not set
477# CONFIG_USB is not set
478
479#
480# Enable Host or Gadget support to see Inventra options
481#
482
483#
484# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
485#
486
487#
488# USB Gadget Support
489#
490# CONFIG_USB_GADGET is not set
491# CONFIG_MMC is not set
492CONFIG_RTC_LIB=y
493# CONFIG_RTC_CLASS is not set
494
495#
496# DMA Engine support
497#
498# CONFIG_DMA_ENGINE is not set
499
500#
501# DMA Clients
502#
503
504#
505# DMA Devices
506#
507
508#
509# CBUS support
510#
511# CONFIG_CBUS is not set
512
513#
514# File systems
515#
516CONFIG_EXT2_FS=y
517CONFIG_EXT2_FS_XATTR=y
518# CONFIG_EXT2_FS_POSIX_ACL is not set
519# CONFIG_EXT2_FS_SECURITY is not set
520# CONFIG_EXT2_FS_XIP is not set
521# CONFIG_EXT3_FS is not set
522# CONFIG_EXT4DEV_FS is not set
523CONFIG_FS_MBCACHE=y
524# CONFIG_REISERFS_FS is not set
525# CONFIG_JFS_FS is not set
526# CONFIG_FS_POSIX_ACL is not set
527# CONFIG_XFS_FS is not set
528# CONFIG_GFS2_FS is not set
529# CONFIG_MINIX_FS is not set
530CONFIG_ROMFS_FS=y
531CONFIG_INOTIFY=y
532CONFIG_INOTIFY_USER=y
533# CONFIG_QUOTA is not set
534CONFIG_DNOTIFY=y
535# CONFIG_AUTOFS_FS is not set
536# CONFIG_AUTOFS4_FS is not set
537# CONFIG_FUSE_FS is not set
538
539#
540# CD-ROM/DVD Filesystems
541#
542# CONFIG_ISO9660_FS is not set
543# CONFIG_UDF_FS is not set
544
545#
546# DOS/FAT/NT Filesystems
547#
548# CONFIG_MSDOS_FS is not set
549# CONFIG_VFAT_FS is not set
550# CONFIG_NTFS_FS is not set
551
552#
553# Pseudo filesystems
554#
555CONFIG_PROC_FS=y
556CONFIG_PROC_SYSCTL=y
557CONFIG_SYSFS=y
558# CONFIG_TMPFS is not set
559# CONFIG_HUGETLB_PAGE is not set
560CONFIG_RAMFS=y
561# CONFIG_CONFIGFS_FS is not set
562
563#
564# Miscellaneous filesystems
565#
566# CONFIG_ADFS_FS is not set
567# CONFIG_AFFS_FS is not set
568# CONFIG_HFS_FS is not set
569# CONFIG_HFSPLUS_FS is not set
570# CONFIG_BEFS_FS is not set
571# CONFIG_BFS_FS is not set
572# CONFIG_EFS_FS is not set
573# CONFIG_CRAMFS is not set
574# CONFIG_VXFS_FS is not set
575# CONFIG_HPFS_FS is not set
576# CONFIG_QNX4FS_FS is not set
577# CONFIG_SYSV_FS is not set
578# CONFIG_UFS_FS is not set
579
580#
581# Partition Types
582#
583# CONFIG_PARTITION_ADVANCED is not set
584CONFIG_MSDOS_PARTITION=y
585
586#
587# Native Language Support
588#
589# CONFIG_NLS is not set
590
591#
592# Profiling support
593#
594# CONFIG_PROFILING is not set
595
596#
597# Kernel hacking
598#
599# CONFIG_PRINTK_TIME is not set
600CONFIG_ENABLE_MUST_CHECK=y
601# CONFIG_MAGIC_SYSRQ is not set
602# CONFIG_UNUSED_SYMBOLS is not set
603# CONFIG_DEBUG_FS is not set
604# CONFIG_HEADERS_CHECK is not set
605CONFIG_DEBUG_KERNEL=y
606# CONFIG_DEBUG_SHIRQ is not set
607CONFIG_DETECT_SOFTLOCKUP=y
608CONFIG_SCHED_DEBUG=y
609# CONFIG_SCHEDSTATS is not set
610# CONFIG_TIMER_STATS is not set
611# CONFIG_SLUB_DEBUG_ON is not set
612# CONFIG_DEBUG_RT_MUTEXES is not set
613# CONFIG_RT_MUTEX_TESTER is not set
614# CONFIG_DEBUG_SPINLOCK is not set
615# CONFIG_DEBUG_MUTEXES is not set
616# CONFIG_DEBUG_LOCK_ALLOC is not set
617# CONFIG_PROVE_LOCKING is not set
618# CONFIG_LOCK_STAT is not set
619# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
620# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
621# CONFIG_DEBUG_KOBJECT is not set
622CONFIG_DEBUG_BUGVERBOSE=y
623CONFIG_DEBUG_INFO=y
624# CONFIG_DEBUG_VM is not set
625# CONFIG_DEBUG_LIST is not set
626CONFIG_FRAME_POINTER=y
627CONFIG_FORCED_INLINING=y
628# CONFIG_RCU_TORTURE_TEST is not set
629# CONFIG_FAULT_INJECTION is not set
630CONFIG_DEBUG_USER=y
631CONFIG_DEBUG_ERRORS=y
632CONFIG_DEBUG_LL=y
633# CONFIG_DEBUG_ICEDCC is not set
634
635#
636# Security options
637#
638# CONFIG_KEYS is not set
639# CONFIG_SECURITY is not set
640# CONFIG_CRYPTO is not set
641
642#
643# Library routines
644#
645CONFIG_BITREVERSE=y
646CONFIG_CRC_CCITT=y
647# CONFIG_CRC16 is not set
648# CONFIG_CRC_ITU_T is not set
649CONFIG_CRC32=y
650# CONFIG_CRC7 is not set
651# CONFIG_LIBCRC32C is not set
652CONFIG_PLIST=y
653CONFIG_HAS_IOMEM=y
654CONFIG_HAS_IOPORT=y
655CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_h2_1610_defconfig b/arch/arm/configs/omap_h2_1610_defconfig
index 323c1deeb953..c03507202f3c 100644
--- a/arch/arm/configs/omap_h2_1610_defconfig
+++ b/arch/arm/configs/omap_h2_1610_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.25-rc3 3# Linux kernel version: 2.6.25-rc2-omap1
4# Mon Mar 3 03:39:48 2008 4# Wed Feb 20 17:12:36 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -31,7 +31,6 @@ CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
31# 31#
32CONFIG_EXPERIMENTAL=y 32CONFIG_EXPERIMENTAL=y
33CONFIG_BROKEN_ON_SMP=y 33CONFIG_BROKEN_ON_SMP=y
34CONFIG_LOCK_KERNEL=y
35CONFIG_INIT_ENV_ARG_LIMIT=32 34CONFIG_INIT_ENV_ARG_LIMIT=32
36CONFIG_LOCALVERSION="" 35CONFIG_LOCALVERSION=""
37CONFIG_LOCALVERSION_AUTO=y 36CONFIG_LOCALVERSION_AUTO=y
@@ -50,7 +49,7 @@ CONFIG_FAIR_GROUP_SCHED=y
50# CONFIG_RT_GROUP_SCHED is not set 49# CONFIG_RT_GROUP_SCHED is not set
51CONFIG_USER_SCHED=y 50CONFIG_USER_SCHED=y
52# CONFIG_CGROUP_SCHED is not set 51# CONFIG_CGROUP_SCHED is not set
53# CONFIG_SYSFS_DEPRECATED is not set 52CONFIG_SYSFS_DEPRECATED=y
54# CONFIG_RELAY is not set 53# CONFIG_RELAY is not set
55CONFIG_NAMESPACES=y 54CONFIG_NAMESPACES=y
56# CONFIG_UTS_NS is not set 55# CONFIG_UTS_NS is not set
@@ -65,6 +64,7 @@ CONFIG_SYSCTL=y
65CONFIG_UID16=y 64CONFIG_UID16=y
66CONFIG_SYSCTL_SYSCALL=y 65CONFIG_SYSCTL_SYSCALL=y
67CONFIG_KALLSYMS=y 66CONFIG_KALLSYMS=y
67# CONFIG_KALLSYMS_ALL is not set
68# CONFIG_KALLSYMS_EXTRA_PASS is not set 68# CONFIG_KALLSYMS_EXTRA_PASS is not set
69CONFIG_HOTPLUG=y 69CONFIG_HOTPLUG=y
70CONFIG_PRINTK=y 70CONFIG_PRINTK=y
@@ -165,20 +165,28 @@ CONFIG_ARCH_OMAP=y
165CONFIG_ARCH_OMAP_OTG=y 165CONFIG_ARCH_OMAP_OTG=y
166CONFIG_ARCH_OMAP1=y 166CONFIG_ARCH_OMAP1=y
167# CONFIG_ARCH_OMAP2 is not set 167# CONFIG_ARCH_OMAP2 is not set
168# CONFIG_ARCH_OMAP3 is not set
168 169
169# 170#
170# OMAP Feature Selections 171# OMAP Feature Selections
171# 172#
173CONFIG_OMAP_DEBUG_SRAM_PATCH=y
172# CONFIG_OMAP_RESET_CLOCKS is not set 174# CONFIG_OMAP_RESET_CLOCKS is not set
175CONFIG_OMAP_BOOT_TAG=y
176# CONFIG_OMAP_BOOT_REASON is not set
177# CONFIG_OMAP_COMPONENT_VERSION is not set
178CONFIG_OMAP_GPIO_SWITCH=y
173CONFIG_OMAP_MUX=y 179CONFIG_OMAP_MUX=y
174# CONFIG_OMAP_MUX_DEBUG is not set 180CONFIG_OMAP_MUX_DEBUG=y
175CONFIG_OMAP_MUX_WARNINGS=y 181CONFIG_OMAP_MUX_WARNINGS=y
182# CONFIG_OMAP_STI is not set
176CONFIG_OMAP_MCBSP=y 183CONFIG_OMAP_MCBSP=y
177# CONFIG_OMAP_MMU_FWK is not set 184# CONFIG_OMAP_MMU_FWK is not set
185# CONFIG_OMAP_MBOX_FWK is not set
178# CONFIG_OMAP_MPU_TIMER is not set 186# CONFIG_OMAP_MPU_TIMER is not set
179CONFIG_OMAP_32K_TIMER=y 187CONFIG_OMAP_32K_TIMER=y
180CONFIG_OMAP_32K_TIMER_HZ=128 188CONFIG_OMAP_32K_TIMER_HZ=128
181# CONFIG_OMAP_DM_TIMER is not set 189CONFIG_OMAP_DM_TIMER=y
182CONFIG_OMAP_LL_DEBUG_UART1=y 190CONFIG_OMAP_LL_DEBUG_UART1=y
183# CONFIG_OMAP_LL_DEBUG_UART2 is not set 191# CONFIG_OMAP_LL_DEBUG_UART2 is not set
184# CONFIG_OMAP_LL_DEBUG_UART3 is not set 192# CONFIG_OMAP_LL_DEBUG_UART3 is not set
@@ -206,10 +214,10 @@ CONFIG_MACH_OMAP_H2=y
206# 214#
207# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set 215# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
208# CONFIG_OMAP_ARM_216MHZ is not set 216# CONFIG_OMAP_ARM_216MHZ is not set
209CONFIG_OMAP_ARM_192MHZ=y 217# CONFIG_OMAP_ARM_192MHZ is not set
210# CONFIG_OMAP_ARM_168MHZ is not set 218# CONFIG_OMAP_ARM_168MHZ is not set
211# CONFIG_OMAP_ARM_120MHZ is not set 219# CONFIG_OMAP_ARM_120MHZ is not set
212# CONFIG_OMAP_ARM_60MHZ is not set 220CONFIG_OMAP_ARM_60MHZ=y
213# CONFIG_OMAP_ARM_30MHZ is not set 221# CONFIG_OMAP_ARM_30MHZ is not set
214 222
215# 223#
@@ -227,6 +235,7 @@ CONFIG_CPU_32=y
227CONFIG_CPU_ARM926T=y 235CONFIG_CPU_ARM926T=y
228CONFIG_CPU_32v5=y 236CONFIG_CPU_32v5=y
229CONFIG_CPU_ABRT_EV5TJ=y 237CONFIG_CPU_ABRT_EV5TJ=y
238CONFIG_CPU_PABRT_NOIFAR=y
230CONFIG_CPU_CACHE_VIVT=y 239CONFIG_CPU_CACHE_VIVT=y
231CONFIG_CPU_COPY_V4WB=y 240CONFIG_CPU_COPY_V4WB=y
232CONFIG_CPU_TLB_V4WBI=y 241CONFIG_CPU_TLB_V4WBI=y
@@ -257,10 +266,9 @@ CONFIG_TICK_ONESHOT=y
257CONFIG_NO_HZ=y 266CONFIG_NO_HZ=y
258CONFIG_HIGH_RES_TIMERS=y 267CONFIG_HIGH_RES_TIMERS=y
259CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 268CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
260CONFIG_PREEMPT=y 269# CONFIG_PREEMPT is not set
261CONFIG_HZ=128 270CONFIG_HZ=128
262CONFIG_AEABI=y 271# CONFIG_AEABI is not set
263CONFIG_OABI_COMPAT=y
264# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 272# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
265CONFIG_SELECT_MEMORY_MODEL=y 273CONFIG_SELECT_MEMORY_MODEL=y
266CONFIG_FLATMEM_MANUAL=y 274CONFIG_FLATMEM_MANUAL=y
@@ -275,7 +283,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4096
275CONFIG_ZONE_DMA_FLAG=1 283CONFIG_ZONE_DMA_FLAG=1
276CONFIG_BOUNCE=y 284CONFIG_BOUNCE=y
277CONFIG_VIRT_TO_BUS=y 285CONFIG_VIRT_TO_BUS=y
278# CONFIG_LEDS is not set 286CONFIG_LEDS=y
287# CONFIG_LEDS_CPU is not set
279CONFIG_ALIGNMENT_TRAP=y 288CONFIG_ALIGNMENT_TRAP=y
280 289
281# 290#
@@ -283,7 +292,7 @@ CONFIG_ALIGNMENT_TRAP=y
283# 292#
284CONFIG_ZBOOT_ROM_TEXT=0x0 293CONFIG_ZBOOT_ROM_TEXT=0x0
285CONFIG_ZBOOT_ROM_BSS=0x0 294CONFIG_ZBOOT_ROM_BSS=0x0
286CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh" 295CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=/dev/ram0 rw initrd=0x10600000,8M ramdisk_size=8192"
287# CONFIG_XIP_KERNEL is not set 296# CONFIG_XIP_KERNEL is not set
288# CONFIG_KEXEC is not set 297# CONFIG_KEXEC is not set
289# CONFIG_ATAGS_PROC is not set 298# CONFIG_ATAGS_PROC is not set
@@ -291,20 +300,7 @@ CONFIG_CMDLINE="mem=32M console=ttyS0,115200n8 root=0801 ro init=/bin/sh"
291# 300#
292# CPU Frequency scaling 301# CPU Frequency scaling
293# 302#
294CONFIG_CPU_FREQ=y 303# CONFIG_CPU_FREQ is not set
295CONFIG_CPU_FREQ_TABLE=y
296# CONFIG_CPU_FREQ_DEBUG is not set
297CONFIG_CPU_FREQ_STAT=y
298# CONFIG_CPU_FREQ_STAT_DETAILS is not set
299# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
300CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
301# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
302# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
303# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
304# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
305CONFIG_CPU_FREQ_GOV_USERSPACE=y
306# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set
307# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
308 304
309# 305#
310# Floating point emulation 306# Floating point emulation
@@ -322,8 +318,9 @@ CONFIG_FPE_NWFPE=y
322# Userspace binary formats 318# Userspace binary formats
323# 319#
324CONFIG_BINFMT_ELF=y 320CONFIG_BINFMT_ELF=y
325CONFIG_BINFMT_AOUT=y 321# CONFIG_BINFMT_AOUT is not set
326# CONFIG_BINFMT_MISC is not set 322# CONFIG_BINFMT_MISC is not set
323# CONFIG_ARTHUR is not set
327 324
328# 325#
329# Power management options 326# Power management options
@@ -433,21 +430,102 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 430CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 431CONFIG_PREVENT_FIRMWARE_BUILD=y
435# CONFIG_FW_LOADER is not set 432# CONFIG_FW_LOADER is not set
433CONFIG_DEBUG_DRIVER=y
434# CONFIG_DEBUG_DEVRES is not set
436# CONFIG_SYS_HYPERVISOR is not set 435# CONFIG_SYS_HYPERVISOR is not set
437# CONFIG_CONNECTOR is not set 436# CONFIG_CONNECTOR is not set
438# CONFIG_MTD is not set 437CONFIG_MTD=y
438CONFIG_MTD_DEBUG=y
439CONFIG_MTD_DEBUG_VERBOSE=3
440# CONFIG_MTD_CONCAT is not set
441CONFIG_MTD_PARTITIONS=y
442# CONFIG_MTD_REDBOOT_PARTS is not set
443CONFIG_MTD_CMDLINE_PARTS=y
444# CONFIG_MTD_AFS_PARTS is not set
445
446#
447# User Modules And Translation Layers
448#
449CONFIG_MTD_CHAR=y
450CONFIG_MTD_BLKDEVS=y
451CONFIG_MTD_BLOCK=y
452# CONFIG_FTL is not set
453# CONFIG_NFTL is not set
454# CONFIG_INFTL is not set
455# CONFIG_RFD_FTL is not set
456# CONFIG_SSFDC is not set
457# CONFIG_MTD_OOPS is not set
458
459#
460# RAM/ROM/Flash chip drivers
461#
462CONFIG_MTD_CFI=y
463# CONFIG_MTD_JEDECPROBE is not set
464CONFIG_MTD_GEN_PROBE=y
465# CONFIG_MTD_CFI_ADV_OPTIONS is not set
466CONFIG_MTD_MAP_BANK_WIDTH_1=y
467CONFIG_MTD_MAP_BANK_WIDTH_2=y
468CONFIG_MTD_MAP_BANK_WIDTH_4=y
469# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
470# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
471# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
472CONFIG_MTD_CFI_I1=y
473CONFIG_MTD_CFI_I2=y
474# CONFIG_MTD_CFI_I4 is not set
475# CONFIG_MTD_CFI_I8 is not set
476CONFIG_MTD_CFI_INTELEXT=y
477# CONFIG_MTD_CFI_AMDSTD is not set
478# CONFIG_MTD_CFI_STAA is not set
479CONFIG_MTD_CFI_UTIL=y
480# CONFIG_MTD_RAM is not set
481# CONFIG_MTD_ROM is not set
482# CONFIG_MTD_ABSENT is not set
483
484#
485# Mapping drivers for chip access
486#
487# CONFIG_MTD_COMPLEX_MAPPINGS is not set
488# CONFIG_MTD_PHYSMAP is not set
489# CONFIG_MTD_ARM_INTEGRATOR is not set
490# CONFIG_MTD_OMAP_NOR is not set
491# CONFIG_MTD_PLATRAM is not set
492
493#
494# Self-contained MTD device drivers
495#
496# CONFIG_MTD_DATAFLASH is not set
497# CONFIG_MTD_M25P80 is not set
498# CONFIG_MTD_SLRAM is not set
499# CONFIG_MTD_PHRAM is not set
500# CONFIG_MTD_MTDRAM is not set
501# CONFIG_MTD_BLOCK2MTD is not set
502
503#
504# Disk-On-Chip Device Drivers
505#
506# CONFIG_MTD_DOC2000 is not set
507# CONFIG_MTD_DOC2001 is not set
508# CONFIG_MTD_DOC2001PLUS is not set
509# CONFIG_MTD_NAND is not set
510# CONFIG_MTD_ONENAND is not set
511
512#
513# UBI - Unsorted block images
514#
515# CONFIG_MTD_UBI is not set
439# CONFIG_PARPORT is not set 516# CONFIG_PARPORT is not set
440CONFIG_BLK_DEV=y 517CONFIG_BLK_DEV=y
441# CONFIG_BLK_DEV_COW_COMMON is not set 518# CONFIG_BLK_DEV_COW_COMMON is not set
442CONFIG_BLK_DEV_LOOP=y 519CONFIG_BLK_DEV_LOOP=y
443# CONFIG_BLK_DEV_CRYPTOLOOP is not set 520# CONFIG_BLK_DEV_CRYPTOLOOP is not set
444# CONFIG_BLK_DEV_NBD is not set 521# CONFIG_BLK_DEV_NBD is not set
522# CONFIG_BLK_DEV_UB is not set
445CONFIG_BLK_DEV_RAM=y 523CONFIG_BLK_DEV_RAM=y
446CONFIG_BLK_DEV_RAM_COUNT=16 524CONFIG_BLK_DEV_RAM_COUNT=16
447CONFIG_BLK_DEV_RAM_SIZE=8192 525CONFIG_BLK_DEV_RAM_SIZE=8192
448# CONFIG_BLK_DEV_XIP is not set 526# CONFIG_BLK_DEV_XIP is not set
449# CONFIG_CDROM_PKTCDVD is not set 527# CONFIG_CDROM_PKTCDVD is not set
450CONFIG_ATA_OVER_ETH=m 528# CONFIG_ATA_OVER_ETH is not set
451CONFIG_MISC_DEVICES=y 529CONFIG_MISC_DEVICES=y
452# CONFIG_EEPROM_93CX6 is not set 530# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set 531# CONFIG_ENCLOSURE_SERVICES is not set
@@ -457,42 +535,9 @@ CONFIG_MISC_DEVICES=y
457# SCSI device support 535# SCSI device support
458# 536#
459# CONFIG_RAID_ATTRS is not set 537# CONFIG_RAID_ATTRS is not set
460CONFIG_SCSI=y 538# CONFIG_SCSI is not set
461CONFIG_SCSI_DMA=y 539# CONFIG_SCSI_DMA is not set
462# CONFIG_SCSI_TGT is not set
463# CONFIG_SCSI_NETLINK is not set 540# CONFIG_SCSI_NETLINK is not set
464CONFIG_SCSI_PROC_FS=y
465
466#
467# SCSI support type (disk, tape, CD-ROM)
468#
469# CONFIG_BLK_DEV_SD is not set
470# CONFIG_CHR_DEV_ST is not set
471# CONFIG_CHR_DEV_OSST is not set
472# CONFIG_BLK_DEV_SR is not set
473# CONFIG_CHR_DEV_SG is not set
474# CONFIG_CHR_DEV_SCH is not set
475
476#
477# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
478#
479# CONFIG_SCSI_MULTI_LUN is not set
480# CONFIG_SCSI_CONSTANTS is not set
481# CONFIG_SCSI_LOGGING is not set
482# CONFIG_SCSI_SCAN_ASYNC is not set
483CONFIG_SCSI_WAIT_SCAN=m
484
485#
486# SCSI Transports
487#
488# CONFIG_SCSI_SPI_ATTRS is not set
489# CONFIG_SCSI_FC_ATTRS is not set
490# CONFIG_SCSI_ISCSI_ATTRS is not set
491# CONFIG_SCSI_SAS_LIBSAS is not set
492# CONFIG_SCSI_SRP_ATTRS is not set
493CONFIG_SCSI_LOWLEVEL=y
494# CONFIG_ISCSI_TCP is not set
495# CONFIG_SCSI_DEBUG is not set
496# CONFIG_ATA is not set 541# CONFIG_ATA is not set
497# CONFIG_MD is not set 542# CONFIG_MD is not set
498CONFIG_NETDEVICES=y 543CONFIG_NETDEVICES=y
@@ -509,6 +554,7 @@ CONFIG_MII=y
509# CONFIG_AX88796 is not set 554# CONFIG_AX88796 is not set
510CONFIG_SMC91X=y 555CONFIG_SMC91X=y
511# CONFIG_DM9000 is not set 556# CONFIG_DM9000 is not set
557# CONFIG_ENC28J60 is not set
512# CONFIG_IBM_NEW_EMAC_ZMII is not set 558# CONFIG_IBM_NEW_EMAC_ZMII is not set
513# CONFIG_IBM_NEW_EMAC_RGMII is not set 559# CONFIG_IBM_NEW_EMAC_RGMII is not set
514# CONFIG_IBM_NEW_EMAC_TAH is not set 560# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -523,6 +569,15 @@ CONFIG_NETDEV_10000=y
523# 569#
524# CONFIG_WLAN_PRE80211 is not set 570# CONFIG_WLAN_PRE80211 is not set
525# CONFIG_WLAN_80211 is not set 571# CONFIG_WLAN_80211 is not set
572
573#
574# USB Network Adapters
575#
576# CONFIG_USB_CATC is not set
577# CONFIG_USB_KAWETH is not set
578# CONFIG_USB_PEGASUS is not set
579# CONFIG_USB_RTL8150 is not set
580# CONFIG_USB_USBNET is not set
526# CONFIG_WAN is not set 581# CONFIG_WAN is not set
527CONFIG_PPP=y 582CONFIG_PPP=y
528# CONFIG_PPP_MULTILINK is not set 583# CONFIG_PPP_MULTILINK is not set
@@ -612,7 +667,8 @@ CONFIG_SERIAL_CORE_CONSOLE=y
612CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
613# CONFIG_LEGACY_PTYS is not set 668# CONFIG_LEGACY_PTYS is not set
614# CONFIG_IPMI_HANDLER is not set 669# CONFIG_IPMI_HANDLER is not set
615# CONFIG_HW_RANDOM is not set 670CONFIG_HW_RANDOM=m
671CONFIG_HW_RANDOM_OMAP=m
616# CONFIG_NVRAM is not set 672# CONFIG_NVRAM is not set
617# CONFIG_R3964 is not set 673# CONFIG_R3964 is not set
618# CONFIG_RAW_DRIVER is not set 674# CONFIG_RAW_DRIVER is not set
@@ -638,6 +694,7 @@ CONFIG_I2C_OMAP=y
638# CONFIG_I2C_SIMTEC is not set 694# CONFIG_I2C_SIMTEC is not set
639# CONFIG_I2C_TAOS_EVM is not set 695# CONFIG_I2C_TAOS_EVM is not set
640# CONFIG_I2C_STUB is not set 696# CONFIG_I2C_STUB is not set
697# CONFIG_I2C_TINY_USB is not set
641 698
642# 699#
643# Miscellaneous I2C Chip support 700# Miscellaneous I2C Chip support
@@ -647,8 +704,10 @@ CONFIG_I2C_OMAP=y
647# CONFIG_SENSORS_PCF8574 is not set 704# CONFIG_SENSORS_PCF8574 is not set
648# CONFIG_PCF8575 is not set 705# CONFIG_PCF8575 is not set
649# CONFIG_SENSORS_PCF8591 is not set 706# CONFIG_SENSORS_PCF8591 is not set
650# CONFIG_ISP1301_OMAP is not set 707CONFIG_ISP1301_OMAP=y
651CONFIG_TPS65010=y 708CONFIG_TPS65010=y
709# CONFIG_SENSORS_TLV320AIC23 is not set
710# CONFIG_GPIOEXPANDER_OMAP is not set
652# CONFIG_SENSORS_MAX6875 is not set 711# CONFIG_SENSORS_MAX6875 is not set
653# CONFIG_SENSORS_TSL2550 is not set 712# CONFIG_SENSORS_TSL2550 is not set
654# CONFIG_I2C_DEBUG_CORE is not set 713# CONFIG_I2C_DEBUG_CORE is not set
@@ -659,8 +718,26 @@ CONFIG_TPS65010=y
659# 718#
660# SPI support 719# SPI support
661# 720#
662# CONFIG_SPI is not set 721CONFIG_SPI=y
663# CONFIG_SPI_MASTER is not set 722# CONFIG_SPI_DEBUG is not set
723CONFIG_SPI_MASTER=y
724
725#
726# SPI Master Controller Drivers
727#
728CONFIG_SPI_BITBANG=y
729CONFIG_SPI_OMAP_UWIRE=y
730
731#
732# SPI Protocol Masters
733#
734# CONFIG_SPI_AT25 is not set
735CONFIG_SPI_TSC2101=y
736# CONFIG_SPI_TSC2102 is not set
737# CONFIG_SPI_TSC210X is not set
738# CONFIG_SPI_TSC2301 is not set
739# CONFIG_SPI_SPIDEV is not set
740# CONFIG_SPI_TLE62X0 is not set
664# CONFIG_W1 is not set 741# CONFIG_W1 is not set
665# CONFIG_POWER_SUPPLY is not set 742# CONFIG_POWER_SUPPLY is not set
666CONFIG_HWMON=y 743CONFIG_HWMON=y
@@ -673,7 +750,6 @@ CONFIG_HWMON=y
673# CONFIG_SENSORS_ADM1031 is not set 750# CONFIG_SENSORS_ADM1031 is not set
674# CONFIG_SENSORS_ADM9240 is not set 751# CONFIG_SENSORS_ADM9240 is not set
675# CONFIG_SENSORS_ADT7470 is not set 752# CONFIG_SENSORS_ADT7470 is not set
676# CONFIG_SENSORS_ADT7473 is not set
677# CONFIG_SENSORS_ATXP1 is not set 753# CONFIG_SENSORS_ATXP1 is not set
678# CONFIG_SENSORS_DS1621 is not set 754# CONFIG_SENSORS_DS1621 is not set
679# CONFIG_SENSORS_F71805F is not set 755# CONFIG_SENSORS_F71805F is not set
@@ -683,6 +759,7 @@ CONFIG_HWMON=y
683# CONFIG_SENSORS_GL520SM is not set 759# CONFIG_SENSORS_GL520SM is not set
684# CONFIG_SENSORS_IT87 is not set 760# CONFIG_SENSORS_IT87 is not set
685# CONFIG_SENSORS_LM63 is not set 761# CONFIG_SENSORS_LM63 is not set
762# CONFIG_SENSORS_LM70 is not set
686# CONFIG_SENSORS_LM75 is not set 763# CONFIG_SENSORS_LM75 is not set
687# CONFIG_SENSORS_LM77 is not set 764# CONFIG_SENSORS_LM77 is not set
688# CONFIG_SENSORS_LM78 is not set 765# CONFIG_SENSORS_LM78 is not set
@@ -712,6 +789,7 @@ CONFIG_HWMON=y
712# CONFIG_SENSORS_W83L786NG is not set 789# CONFIG_SENSORS_W83L786NG is not set
713# CONFIG_SENSORS_W83627HF is not set 790# CONFIG_SENSORS_W83627HF is not set
714# CONFIG_SENSORS_W83627EHF is not set 791# CONFIG_SENSORS_W83627EHF is not set
792# CONFIG_SENSORS_TSC210X is not set
715# CONFIG_HWMON_DEBUG_CHIP is not set 793# CONFIG_HWMON_DEBUG_CHIP is not set
716CONFIG_WATCHDOG=y 794CONFIG_WATCHDOG=y
717CONFIG_WATCHDOG_NOWAYOUT=y 795CONFIG_WATCHDOG_NOWAYOUT=y
@@ -723,6 +801,11 @@ CONFIG_WATCHDOG_NOWAYOUT=y
723# CONFIG_OMAP_WATCHDOG is not set 801# CONFIG_OMAP_WATCHDOG is not set
724 802
725# 803#
804# USB-based Watchdog Cards
805#
806# CONFIG_USBPCWATCHDOG is not set
807
808#
726# Sonics Silicon Backplane 809# Sonics Silicon Backplane
727# 810#
728CONFIG_SSB_POSSIBLE=y 811CONFIG_SSB_POSSIBLE=y
@@ -740,6 +823,7 @@ CONFIG_SSB_POSSIBLE=y
740# CONFIG_VIDEO_DEV is not set 823# CONFIG_VIDEO_DEV is not set
741# CONFIG_DVB_CORE is not set 824# CONFIG_DVB_CORE is not set
742CONFIG_DAB=y 825CONFIG_DAB=y
826# CONFIG_USB_DABUSB is not set
743 827
744# 828#
745# Graphics support 829# Graphics support
@@ -749,9 +833,9 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
749CONFIG_FB=y 833CONFIG_FB=y
750CONFIG_FIRMWARE_EDID=y 834CONFIG_FIRMWARE_EDID=y
751# CONFIG_FB_DDC is not set 835# CONFIG_FB_DDC is not set
752# CONFIG_FB_CFB_FILLRECT is not set 836CONFIG_FB_CFB_FILLRECT=y
753# CONFIG_FB_CFB_COPYAREA is not set 837CONFIG_FB_CFB_COPYAREA=y
754# CONFIG_FB_CFB_IMAGEBLIT is not set 838CONFIG_FB_CFB_IMAGEBLIT=y
755# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 839# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
756# CONFIG_FB_SYS_FILLRECT is not set 840# CONFIG_FB_SYS_FILLRECT is not set
757# CONFIG_FB_SYS_COPYAREA is not set 841# CONFIG_FB_SYS_COPYAREA is not set
@@ -769,7 +853,11 @@ CONFIG_FB_MODE_HELPERS=y
769# 853#
770# CONFIG_FB_S1D13XXX is not set 854# CONFIG_FB_S1D13XXX is not set
771# CONFIG_FB_VIRTUAL is not set 855# CONFIG_FB_VIRTUAL is not set
772# CONFIG_FB_OMAP is not set 856CONFIG_FB_OMAP=y
857# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
858# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
859CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
860# CONFIG_FB_OMAP_DMA_TUNE is not set
773# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 861# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
774 862
775# 863#
@@ -785,17 +873,9 @@ CONFIG_DUMMY_CONSOLE=y
785CONFIG_FRAMEBUFFER_CONSOLE=y 873CONFIG_FRAMEBUFFER_CONSOLE=y
786# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set 874# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
787# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 875# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
788CONFIG_FONTS=y 876# CONFIG_FONTS is not set
789CONFIG_FONT_8x8=y 877CONFIG_FONT_8x8=y
790CONFIG_FONT_8x16=y 878CONFIG_FONT_8x16=y
791# CONFIG_FONT_6x11 is not set
792# CONFIG_FONT_7x14 is not set
793# CONFIG_FONT_PEARL_8x8 is not set
794# CONFIG_FONT_ACORN_8x8 is not set
795# CONFIG_FONT_MINI_4x6 is not set
796# CONFIG_FONT_SUN8x16 is not set
797# CONFIG_FONT_SUN12x22 is not set
798# CONFIG_FONT_10x18 is not set
799CONFIG_LOGO=y 879CONFIG_LOGO=y
800# CONFIG_LOGO_LINUX_MONO is not set 880# CONFIG_LOGO_LINUX_MONO is not set
801# CONFIG_LOGO_LINUX_VGA16 is not set 881# CONFIG_LOGO_LINUX_VGA16 is not set
@@ -804,37 +884,204 @@ CONFIG_LOGO_LINUX_CLUT224=y
804# 884#
805# Sound 885# Sound
806# 886#
807CONFIG_SOUND=y 887# CONFIG_SOUND is not set
888CONFIG_HID_SUPPORT=y
889CONFIG_HID=y
890# CONFIG_HID_DEBUG is not set
891# CONFIG_HIDRAW is not set
808 892
809# 893#
810# Advanced Linux Sound Architecture 894# USB Input Devices
811# 895#
812# CONFIG_SND is not set 896# CONFIG_USB_HID is not set
813 897
814# 898#
815# Open Sound System 899# USB HID Boot Protocol drivers
816# 900#
817CONFIG_SOUND_PRIME=y 901# CONFIG_USB_KBD is not set
818# CONFIG_SOUND_MSNDCLAS is not set 902# CONFIG_USB_MOUSE is not set
819# CONFIG_SOUND_MSNDPIN is not set
820CONFIG_HID_SUPPORT=y
821CONFIG_HID=y
822CONFIG_HID_DEBUG=y
823# CONFIG_HIDRAW is not set
824CONFIG_USB_SUPPORT=y 903CONFIG_USB_SUPPORT=y
825CONFIG_USB_ARCH_HAS_HCD=y 904CONFIG_USB_ARCH_HAS_HCD=y
826CONFIG_USB_ARCH_HAS_OHCI=y 905CONFIG_USB_ARCH_HAS_OHCI=y
827# CONFIG_USB_ARCH_HAS_EHCI is not set 906# CONFIG_USB_ARCH_HAS_EHCI is not set
828# CONFIG_USB is not set 907CONFIG_USB=y
908# CONFIG_USB_DEBUG is not set
909# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
910
911#
912# Miscellaneous USB options
913#
914CONFIG_USB_DEVICEFS=y
915# CONFIG_USB_DEVICE_CLASS is not set
916# CONFIG_USB_DYNAMIC_MINORS is not set
917CONFIG_USB_SUSPEND=y
918# CONFIG_USB_PERSIST is not set
919CONFIG_USB_OTG=y
920CONFIG_USB_OTG_WHITELIST=y
921# CONFIG_USB_OTG_BLACKLIST_HUB is not set
922
923#
924# USB Host Controller Drivers
925#
926# CONFIG_USB_ISP116X_HCD is not set
927CONFIG_USB_OHCI_HCD=y
928# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
929# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
930CONFIG_USB_OHCI_LITTLE_ENDIAN=y
931# CONFIG_USB_SL811_HCD is not set
932# CONFIG_USB_R8A66597_HCD is not set
933# CONFIG_USB_MUSB_HDRC is not set
934# CONFIG_USB_GADGET_MUSB_HDRC is not set
935
936#
937# USB Device Class drivers
938#
939# CONFIG_USB_ACM is not set
940# CONFIG_USB_PRINTER is not set
829 941
830# 942#
831# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 943# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
832# 944#
833# CONFIG_USB_GADGET is not set 945
834# CONFIG_MMC is not set 946#
947# may also be needed; see USB_STORAGE Help for more information
948#
949# CONFIG_USB_LIBUSUAL is not set
950
951#
952# USB Imaging devices
953#
954# CONFIG_USB_MDC800 is not set
955CONFIG_USB_MON=y
956
957#
958# USB port drivers
959#
960# CONFIG_USB_SERIAL is not set
961
962#
963# USB Miscellaneous drivers
964#
965# CONFIG_USB_EMI62 is not set
966# CONFIG_USB_EMI26 is not set
967# CONFIG_USB_ADUTUX is not set
968# CONFIG_USB_AUERSWALD is not set
969# CONFIG_USB_RIO500 is not set
970# CONFIG_USB_LEGOTOWER is not set
971# CONFIG_USB_LCD is not set
972# CONFIG_USB_BERRY_CHARGE is not set
973# CONFIG_USB_LED is not set
974# CONFIG_USB_CYPRESS_CY7C63 is not set
975# CONFIG_USB_CYTHERM is not set
976# CONFIG_USB_PHIDGET is not set
977# CONFIG_USB_IDMOUSE is not set
978# CONFIG_USB_FTDI_ELAN is not set
979# CONFIG_USB_APPLEDISPLAY is not set
980# CONFIG_USB_LD is not set
981# CONFIG_USB_TRANCEVIBRATOR is not set
982# CONFIG_USB_IOWARRIOR is not set
983CONFIG_USB_TEST=y
984CONFIG_USB_GADGET=y
985# CONFIG_USB_GADGET_DEBUG is not set
986# CONFIG_USB_GADGET_DEBUG_FILES is not set
987CONFIG_USB_GADGET_SELECTED=y
988# CONFIG_USB_GADGET_AMD5536UDC is not set
989# CONFIG_USB_GADGET_ATMEL_USBA is not set
990# CONFIG_USB_GADGET_FSL_USB2 is not set
991# CONFIG_USB_GADGET_NET2280 is not set
992# CONFIG_USB_GADGET_PXA2XX is not set
993# CONFIG_USB_GADGET_M66592 is not set
994# CONFIG_USB_GADGET_GOKU is not set
995# CONFIG_USB_GADGET_LH7A40X is not set
996CONFIG_USB_GADGET_OMAP=y
997CONFIG_USB_OMAP=y
998# CONFIG_USB_GADGET_S3C2410 is not set
999# CONFIG_USB_GADGET_AT91 is not set
1000# CONFIG_USB_GADGET_DUMMY_HCD is not set
1001# CONFIG_USB_GADGET_DUALSPEED is not set
1002# CONFIG_USB_ZERO is not set
1003CONFIG_USB_ETH=y
1004CONFIG_USB_ETH_RNDIS=y
1005# CONFIG_USB_GADGETFS is not set
1006# CONFIG_USB_FILE_STORAGE is not set
1007# CONFIG_USB_G_SERIAL is not set
1008# CONFIG_USB_MIDI_GADGET is not set
1009# CONFIG_USB_G_PRINTER is not set
1010CONFIG_MMC=y
1011# CONFIG_MMC_DEBUG is not set
1012# CONFIG_MMC_UNSAFE_RESUME is not set
1013
1014#
1015# MMC/SD Card Drivers
1016#
1017CONFIG_MMC_BLOCK=y
1018CONFIG_MMC_BLOCK_BOUNCE=y
1019# CONFIG_SDIO_UART is not set
1020
1021#
1022# MMC/SD Host Controller Drivers
1023#
1024CONFIG_MMC_OMAP=y
1025# CONFIG_MMC_SPI is not set
835# CONFIG_NEW_LEDS is not set 1026# CONFIG_NEW_LEDS is not set
836CONFIG_RTC_LIB=y 1027CONFIG_RTC_LIB=y
837# CONFIG_RTC_CLASS is not set 1028CONFIG_RTC_CLASS=y
1029CONFIG_RTC_HCTOSYS=y
1030CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1031# CONFIG_RTC_DEBUG is not set
1032
1033#
1034# RTC interfaces
1035#
1036CONFIG_RTC_INTF_SYSFS=y
1037CONFIG_RTC_INTF_PROC=y
1038CONFIG_RTC_INTF_DEV=y
1039# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1040# CONFIG_RTC_DRV_TEST is not set
1041
1042#
1043# I2C RTC drivers
1044#
1045# CONFIG_RTC_DRV_DS1307 is not set
1046# CONFIG_RTC_DRV_DS1374 is not set
1047# CONFIG_RTC_DRV_DS1672 is not set
1048# CONFIG_RTC_DRV_MAX6900 is not set
1049# CONFIG_RTC_DRV_RS5C372 is not set
1050# CONFIG_RTC_DRV_ISL1208 is not set
1051# CONFIG_RTC_DRV_X1205 is not set
1052# CONFIG_RTC_DRV_PCF8563 is not set
1053# CONFIG_RTC_DRV_PCF8583 is not set
1054# CONFIG_RTC_DRV_M41T80 is not set
1055
1056#
1057# SPI RTC drivers
1058#
1059# CONFIG_RTC_DRV_MAX6902 is not set
1060# CONFIG_RTC_DRV_R9701 is not set
1061# CONFIG_RTC_DRV_RS5C348 is not set
1062
1063#
1064# Platform RTC drivers
1065#
1066# CONFIG_RTC_DRV_CMOS is not set
1067# CONFIG_RTC_DRV_DS1511 is not set
1068# CONFIG_RTC_DRV_DS1553 is not set
1069# CONFIG_RTC_DRV_DS1742 is not set
1070# CONFIG_RTC_DRV_STK17TA8 is not set
1071# CONFIG_RTC_DRV_M48T86 is not set
1072# CONFIG_RTC_DRV_M48T59 is not set
1073# CONFIG_RTC_DRV_V3020 is not set
1074
1075#
1076# on-CPU RTC drivers
1077#
1078CONFIG_RTC_DRV_OMAP=y
1079
1080#
1081# CBUS support
1082#
1083# CONFIG_CBUS is not set
1084# CONFIG_OMAP_DSP is not set
838 1085
839# 1086#
840# File systems 1087# File systems
@@ -894,6 +1141,17 @@ CONFIG_SYSFS=y
894# CONFIG_BEFS_FS is not set 1141# CONFIG_BEFS_FS is not set
895# CONFIG_BFS_FS is not set 1142# CONFIG_BFS_FS is not set
896# CONFIG_EFS_FS is not set 1143# CONFIG_EFS_FS is not set
1144CONFIG_JFFS2_FS=y
1145CONFIG_JFFS2_FS_DEBUG=0
1146CONFIG_JFFS2_FS_WRITEBUFFER=y
1147# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1148# CONFIG_JFFS2_SUMMARY is not set
1149# CONFIG_JFFS2_FS_XATTR is not set
1150# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1151CONFIG_JFFS2_ZLIB=y
1152# CONFIG_JFFS2_LZO is not set
1153CONFIG_JFFS2_RTIME=y
1154# CONFIG_JFFS2_RUBIN is not set
897CONFIG_CRAMFS=y 1155CONFIG_CRAMFS=y
898# CONFIG_VXFS_FS is not set 1156# CONFIG_VXFS_FS is not set
899# CONFIG_MINIX_FS is not set 1157# CONFIG_MINIX_FS is not set
@@ -904,19 +1162,16 @@ CONFIG_ROMFS_FS=y
904# CONFIG_UFS_FS is not set 1162# CONFIG_UFS_FS is not set
905CONFIG_NETWORK_FILESYSTEMS=y 1163CONFIG_NETWORK_FILESYSTEMS=y
906CONFIG_NFS_FS=y 1164CONFIG_NFS_FS=y
907CONFIG_NFS_V3=y 1165# CONFIG_NFS_V3 is not set
908# CONFIG_NFS_V3_ACL is not set 1166# CONFIG_NFS_V4 is not set
909CONFIG_NFS_V4=y
910# CONFIG_NFS_DIRECTIO is not set 1167# CONFIG_NFS_DIRECTIO is not set
911# CONFIG_NFSD is not set 1168# CONFIG_NFSD is not set
912CONFIG_ROOT_NFS=y 1169CONFIG_ROOT_NFS=y
913CONFIG_LOCKD=y 1170CONFIG_LOCKD=y
914CONFIG_LOCKD_V4=y
915CONFIG_NFS_COMMON=y 1171CONFIG_NFS_COMMON=y
916CONFIG_SUNRPC=y 1172CONFIG_SUNRPC=y
917CONFIG_SUNRPC_GSS=y
918# CONFIG_SUNRPC_BIND34 is not set 1173# CONFIG_SUNRPC_BIND34 is not set
919CONFIG_RPCSEC_GSS_KRB5=y 1174# CONFIG_RPCSEC_GSS_KRB5 is not set
920# CONFIG_RPCSEC_GSS_SPKM3 is not set 1175# CONFIG_RPCSEC_GSS_SPKM3 is not set
921# CONFIG_SMB_FS is not set 1176# CONFIG_SMB_FS is not set
922# CONFIG_CIFS is not set 1177# CONFIG_CIFS is not set
@@ -981,11 +1236,38 @@ CONFIG_ENABLE_MUST_CHECK=y
981# CONFIG_UNUSED_SYMBOLS is not set 1236# CONFIG_UNUSED_SYMBOLS is not set
982# CONFIG_DEBUG_FS is not set 1237# CONFIG_DEBUG_FS is not set
983# CONFIG_HEADERS_CHECK is not set 1238# CONFIG_HEADERS_CHECK is not set
984# CONFIG_DEBUG_KERNEL is not set 1239CONFIG_DEBUG_KERNEL=y
1240# CONFIG_DEBUG_SHIRQ is not set
1241CONFIG_DETECT_SOFTLOCKUP=y
1242CONFIG_SCHED_DEBUG=y
1243# CONFIG_SCHEDSTATS is not set
1244# CONFIG_TIMER_STATS is not set
1245# CONFIG_DEBUG_SLAB is not set
1246# CONFIG_DEBUG_RT_MUTEXES is not set
1247# CONFIG_RT_MUTEX_TESTER is not set
1248# CONFIG_DEBUG_SPINLOCK is not set
1249# CONFIG_DEBUG_MUTEXES is not set
1250# CONFIG_DEBUG_LOCK_ALLOC is not set
1251# CONFIG_PROVE_LOCKING is not set
1252# CONFIG_LOCK_STAT is not set
1253# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1254# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1255# CONFIG_DEBUG_KOBJECT is not set
985CONFIG_DEBUG_BUGVERBOSE=y 1256CONFIG_DEBUG_BUGVERBOSE=y
1257CONFIG_DEBUG_INFO=y
1258# CONFIG_DEBUG_VM is not set
1259# CONFIG_DEBUG_LIST is not set
1260# CONFIG_DEBUG_SG is not set
986CONFIG_FRAME_POINTER=y 1261CONFIG_FRAME_POINTER=y
1262# CONFIG_BOOT_PRINTK_DELAY is not set
1263# CONFIG_RCU_TORTURE_TEST is not set
1264# CONFIG_BACKTRACE_SELF_TEST is not set
1265# CONFIG_FAULT_INJECTION is not set
987# CONFIG_SAMPLES is not set 1266# CONFIG_SAMPLES is not set
988# CONFIG_DEBUG_USER is not set 1267CONFIG_DEBUG_USER=y
1268CONFIG_DEBUG_ERRORS=y
1269# CONFIG_DEBUG_STACK_USAGE is not set
1270# CONFIG_DEBUG_LL is not set
989 1271
990# 1272#
991# Security options 1273# Security options
@@ -994,31 +1276,29 @@ CONFIG_FRAME_POINTER=y
994# CONFIG_SECURITY is not set 1276# CONFIG_SECURITY is not set
995# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1277# CONFIG_SECURITY_FILE_CAPABILITIES is not set
996CONFIG_CRYPTO=y 1278CONFIG_CRYPTO=y
997CONFIG_CRYPTO_ALGAPI=y
998CONFIG_CRYPTO_BLKCIPHER=y
999# CONFIG_CRYPTO_SEQIV is not set 1279# CONFIG_CRYPTO_SEQIV is not set
1000CONFIG_CRYPTO_MANAGER=y 1280# CONFIG_CRYPTO_MANAGER is not set
1001# CONFIG_CRYPTO_HMAC is not set 1281# CONFIG_CRYPTO_HMAC is not set
1002# CONFIG_CRYPTO_XCBC is not set 1282# CONFIG_CRYPTO_XCBC is not set
1003# CONFIG_CRYPTO_NULL is not set 1283# CONFIG_CRYPTO_NULL is not set
1004# CONFIG_CRYPTO_MD4 is not set 1284# CONFIG_CRYPTO_MD4 is not set
1005CONFIG_CRYPTO_MD5=y 1285# CONFIG_CRYPTO_MD5 is not set
1006# CONFIG_CRYPTO_SHA1 is not set 1286# CONFIG_CRYPTO_SHA1 is not set
1007# CONFIG_CRYPTO_SHA256 is not set 1287# CONFIG_CRYPTO_SHA256 is not set
1008# CONFIG_CRYPTO_SHA512 is not set 1288# CONFIG_CRYPTO_SHA512 is not set
1009# CONFIG_CRYPTO_WP512 is not set 1289# CONFIG_CRYPTO_WP512 is not set
1010# CONFIG_CRYPTO_TGR192 is not set 1290# CONFIG_CRYPTO_TGR192 is not set
1011# CONFIG_CRYPTO_GF128MUL is not set 1291# CONFIG_CRYPTO_GF128MUL is not set
1012CONFIG_CRYPTO_ECB=m 1292# CONFIG_CRYPTO_ECB is not set
1013CONFIG_CRYPTO_CBC=y 1293# CONFIG_CRYPTO_CBC is not set
1014CONFIG_CRYPTO_PCBC=m 1294# CONFIG_CRYPTO_PCBC is not set
1015# CONFIG_CRYPTO_LRW is not set 1295# CONFIG_CRYPTO_LRW is not set
1016# CONFIG_CRYPTO_XTS is not set 1296# CONFIG_CRYPTO_XTS is not set
1017# CONFIG_CRYPTO_CTR is not set 1297# CONFIG_CRYPTO_CTR is not set
1018# CONFIG_CRYPTO_GCM is not set 1298# CONFIG_CRYPTO_GCM is not set
1019# CONFIG_CRYPTO_CCM is not set 1299# CONFIG_CRYPTO_CCM is not set
1020# CONFIG_CRYPTO_CRYPTD is not set 1300# CONFIG_CRYPTO_CRYPTD is not set
1021CONFIG_CRYPTO_DES=y 1301# CONFIG_CRYPTO_DES is not set
1022# CONFIG_CRYPTO_FCRYPT is not set 1302# CONFIG_CRYPTO_FCRYPT is not set
1023# CONFIG_CRYPTO_BLOWFISH is not set 1303# CONFIG_CRYPTO_BLOWFISH is not set
1024# CONFIG_CRYPTO_TWOFISH is not set 1304# CONFIG_CRYPTO_TWOFISH is not set
@@ -1052,6 +1332,7 @@ CONFIG_CRC32=y
1052# CONFIG_CRC7 is not set 1332# CONFIG_CRC7 is not set
1053# CONFIG_LIBCRC32C is not set 1333# CONFIG_LIBCRC32C is not set
1054CONFIG_ZLIB_INFLATE=y 1334CONFIG_ZLIB_INFLATE=y
1335CONFIG_ZLIB_DEFLATE=y
1055CONFIG_PLIST=y 1336CONFIG_PLIST=y
1056CONFIG_HAS_IOMEM=y 1337CONFIG_HAS_IOMEM=y
1057CONFIG_HAS_IOPORT=y 1338CONFIG_HAS_IOPORT=y
diff --git a/arch/arm/configs/omap_h4_2420_defconfig b/arch/arm/configs/omap_h4_2420_defconfig
new file mode 100644
index 000000000000..5bc89185a64f
--- /dev/null
+++ b/arch/arm/configs/omap_h4_2420_defconfig
@@ -0,0 +1,1120 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:44:58 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set
40CONFIG_BSD_PROCESS_ACCT=y
41# CONFIG_BSD_PROCESS_ACCT_V3 is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53CONFIG_EMBEDDED=y
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58CONFIG_KALLSYMS_EXTRA_PASS=y
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80# CONFIG_MODULE_FORCE_UNLOAD is not set
81CONFIG_MODVERSIONS=y
82CONFIG_MODULE_SRCVERSION_ALL=y
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97CONFIG_DEFAULT_AS=y
98# CONFIG_DEFAULT_DEADLINE is not set
99# CONFIG_DEFAULT_CFQ is not set
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="anticipatory"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP_OTG=y
144# CONFIG_ARCH_OMAP1 is not set
145CONFIG_ARCH_OMAP2=y
146# CONFIG_ARCH_OMAP3 is not set
147
148#
149# OMAP Feature Selections
150#
151CONFIG_OMAP_DEBUG_DEVICES=y
152# CONFIG_OMAP_RESET_CLOCKS is not set
153CONFIG_OMAP_BOOT_TAG=y
154# CONFIG_OMAP_BOOT_REASON is not set
155# CONFIG_OMAP_COMPONENT_VERSION is not set
156# CONFIG_OMAP_GPIO_SWITCH is not set
157CONFIG_OMAP_MUX=y
158CONFIG_OMAP_MUX_DEBUG=y
159CONFIG_OMAP_MUX_WARNINGS=y
160# CONFIG_OMAP_STI is not set
161CONFIG_OMAP_MCBSP=y
162# CONFIG_OMAP_MMU_FWK is not set
163# CONFIG_OMAP_MBOX_FWK is not set
164CONFIG_OMAP_MPU_TIMER=y
165# CONFIG_OMAP_32K_TIMER is not set
166CONFIG_OMAP_DM_TIMER=y
167CONFIG_OMAP_LL_DEBUG_UART1=y
168# CONFIG_OMAP_LL_DEBUG_UART2 is not set
169# CONFIG_OMAP_LL_DEBUG_UART3 is not set
170CONFIG_OMAP_SERIAL_WAKE=y
171# CONFIG_OMAP_DSP is not set
172# CONFIG_MACH_OMAP_GENERIC is not set
173
174#
175# OMAP Core Type
176#
177CONFIG_ARCH_OMAP24XX=y
178CONFIG_ARCH_OMAP2420=y
179# CONFIG_ARCH_OMAP2430 is not set
180
181#
182# OMAP Board Type
183#
184# CONFIG_MACH_NOKIA_N800 is not set
185CONFIG_MACH_OMAP_H4=y
186# CONFIG_MACH_OMAP_H4_TUSB is not set
187# CONFIG_MACH_OMAP_H4_OTG is not set
188# CONFIG_MACH_OMAP2_H4_USB1 is not set
189# CONFIG_MACH_OMAP_APOLLON is not set
190# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
191# CONFIG_MACH_OMAP_2430SDP is not set
192
193#
194# Boot options
195#
196
197#
198# Power management
199#
200
201#
202# Processor Type
203#
204CONFIG_CPU_32=y
205CONFIG_CPU_V6=y
206# CONFIG_CPU_32v6K is not set
207CONFIG_CPU_32v6=y
208CONFIG_CPU_ABRT_EV6=y
209CONFIG_CPU_PABRT_NOIFAR=y
210CONFIG_CPU_CACHE_V6=y
211CONFIG_CPU_CACHE_VIPT=y
212CONFIG_CPU_COPY_V6=y
213CONFIG_CPU_TLB_V6=y
214CONFIG_CPU_HAS_ASID=y
215CONFIG_CPU_CP15=y
216CONFIG_CPU_CP15_MMU=y
217
218#
219# Processor Features
220#
221CONFIG_ARM_THUMB=y
222# CONFIG_CPU_ICACHE_DISABLE is not set
223# CONFIG_CPU_DCACHE_DISABLE is not set
224# CONFIG_CPU_BPREDICT_DISABLE is not set
225# CONFIG_OUTER_CACHE is not set
226
227#
228# Bus support
229#
230# CONFIG_PCI_SYSCALL is not set
231# CONFIG_ARCH_SUPPORTS_MSI is not set
232
233#
234# PCCARD (PCMCIA/CardBus) support
235#
236# CONFIG_PCCARD is not set
237
238#
239# Kernel Features
240#
241# CONFIG_TICK_ONESHOT is not set
242# CONFIG_NO_HZ is not set
243# CONFIG_HIGH_RES_TIMERS is not set
244# CONFIG_PREEMPT is not set
245CONFIG_HZ=100
246CONFIG_AEABI=y
247CONFIG_OABI_COMPAT=y
248# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
249CONFIG_SELECT_MEMORY_MODEL=y
250CONFIG_FLATMEM_MANUAL=y
251# CONFIG_DISCONTIGMEM_MANUAL is not set
252# CONFIG_SPARSEMEM_MANUAL is not set
253CONFIG_FLATMEM=y
254CONFIG_FLAT_NODE_MEM_MAP=y
255# CONFIG_SPARSEMEM_STATIC is not set
256CONFIG_SPLIT_PTLOCK_CPUS=4
257# CONFIG_RESOURCES_64BIT is not set
258CONFIG_ZONE_DMA_FLAG=1
259CONFIG_BOUNCE=y
260CONFIG_VIRT_TO_BUS=y
261# CONFIG_LEDS is not set
262CONFIG_ALIGNMENT_TRAP=y
263
264#
265# Boot options
266#
267CONFIG_ZBOOT_ROM_TEXT=0x0
268CONFIG_ZBOOT_ROM_BSS=0x0
269CONFIG_CMDLINE="root=/dev/ram0 rw console=ttyS0,115200n8 initrd=0x80600000,8M ramdisk_size=8192"
270# CONFIG_XIP_KERNEL is not set
271# CONFIG_KEXEC is not set
272
273#
274# CPU Frequency scaling
275#
276# CONFIG_CPU_FREQ is not set
277
278#
279# Floating point emulation
280#
281
282#
283# At least one emulation must be selected
284#
285CONFIG_FPE_NWFPE=y
286# CONFIG_FPE_NWFPE_XP is not set
287# CONFIG_FPE_FASTFPE is not set
288# CONFIG_VFP is not set
289
290#
291# Userspace binary formats
292#
293CONFIG_BINFMT_ELF=y
294# CONFIG_BINFMT_AOUT is not set
295CONFIG_BINFMT_MISC=y
296
297#
298# Power management options
299#
300# CONFIG_PM is not set
301CONFIG_SUSPEND_UP_POSSIBLE=y
302
303#
304# Networking
305#
306CONFIG_NET=y
307
308#
309# Networking options
310#
311CONFIG_PACKET=y
312# CONFIG_PACKET_MMAP is not set
313CONFIG_UNIX=y
314CONFIG_XFRM=y
315# CONFIG_XFRM_USER is not set
316# CONFIG_XFRM_SUB_POLICY is not set
317# CONFIG_XFRM_MIGRATE is not set
318CONFIG_NET_KEY=y
319# CONFIG_NET_KEY_MIGRATE is not set
320CONFIG_INET=y
321# CONFIG_IP_MULTICAST is not set
322# CONFIG_IP_ADVANCED_ROUTER is not set
323CONFIG_IP_FIB_HASH=y
324CONFIG_IP_PNP=y
325CONFIG_IP_PNP_DHCP=y
326# CONFIG_IP_PNP_BOOTP is not set
327# CONFIG_IP_PNP_RARP is not set
328# CONFIG_NET_IPIP is not set
329# CONFIG_NET_IPGRE is not set
330# CONFIG_ARPD is not set
331# CONFIG_SYN_COOKIES is not set
332# CONFIG_INET_AH is not set
333# CONFIG_INET_ESP is not set
334# CONFIG_INET_IPCOMP is not set
335# CONFIG_INET_XFRM_TUNNEL is not set
336# CONFIG_INET_TUNNEL is not set
337CONFIG_INET_XFRM_MODE_TRANSPORT=y
338CONFIG_INET_XFRM_MODE_TUNNEL=y
339CONFIG_INET_XFRM_MODE_BEET=y
340CONFIG_INET_DIAG=y
341CONFIG_INET_TCP_DIAG=y
342# CONFIG_TCP_CONG_ADVANCED is not set
343CONFIG_TCP_CONG_CUBIC=y
344CONFIG_DEFAULT_TCP_CONG="cubic"
345# CONFIG_TCP_MD5SIG is not set
346# CONFIG_IPV6 is not set
347# CONFIG_INET6_XFRM_TUNNEL is not set
348# CONFIG_INET6_TUNNEL is not set
349# CONFIG_NETWORK_SECMARK is not set
350# CONFIG_NETFILTER is not set
351# CONFIG_IP_DCCP is not set
352# CONFIG_IP_SCTP is not set
353# CONFIG_TIPC is not set
354# CONFIG_ATM is not set
355# CONFIG_BRIDGE is not set
356# CONFIG_VLAN_8021Q is not set
357# CONFIG_DECNET is not set
358# CONFIG_LLC2 is not set
359# CONFIG_IPX is not set
360# CONFIG_ATALK is not set
361# CONFIG_X25 is not set
362# CONFIG_LAPB is not set
363# CONFIG_ECONET is not set
364# CONFIG_WAN_ROUTER is not set
365
366#
367# QoS and/or fair queueing
368#
369# CONFIG_NET_SCHED is not set
370
371#
372# Network testing
373#
374# CONFIG_NET_PKTGEN is not set
375# CONFIG_HAMRADIO is not set
376CONFIG_IRDA=y
377
378#
379# IrDA protocols
380#
381CONFIG_IRLAN=y
382CONFIG_IRCOMM=y
383# CONFIG_IRDA_ULTRA is not set
384
385#
386# IrDA options
387#
388# CONFIG_IRDA_CACHE_LAST_LSAP is not set
389# CONFIG_IRDA_FAST_RR is not set
390# CONFIG_IRDA_DEBUG is not set
391
392#
393# Infrared-port device drivers
394#
395
396#
397# SIR device drivers
398#
399# CONFIG_IRTTY_SIR is not set
400
401#
402# Dongle support
403#
404
405#
406# Old SIR device drivers
407#
408# CONFIG_IRPORT_SIR is not set
409
410#
411# Old Serial dongle support
412#
413
414#
415# FIR device drivers
416#
417CONFIG_OMAP_IR=y
418# CONFIG_BT is not set
419# CONFIG_AF_RXRPC is not set
420
421#
422# Wireless
423#
424# CONFIG_CFG80211 is not set
425# CONFIG_WIRELESS_EXT is not set
426# CONFIG_MAC80211 is not set
427# CONFIG_IEEE80211 is not set
428# CONFIG_RFKILL is not set
429# CONFIG_NET_9P is not set
430
431#
432# Device Drivers
433#
434
435#
436# Generic Driver Options
437#
438CONFIG_STANDALONE=y
439CONFIG_PREVENT_FIRMWARE_BUILD=y
440# CONFIG_FW_LOADER is not set
441# CONFIG_DEBUG_DRIVER is not set
442# CONFIG_DEBUG_DEVRES is not set
443# CONFIG_SYS_HYPERVISOR is not set
444# CONFIG_CONNECTOR is not set
445CONFIG_MTD=y
446# CONFIG_MTD_DEBUG is not set
447CONFIG_MTD_CONCAT=y
448CONFIG_MTD_PARTITIONS=y
449# CONFIG_MTD_REDBOOT_PARTS is not set
450CONFIG_MTD_CMDLINE_PARTS=y
451# CONFIG_MTD_AFS_PARTS is not set
452
453#
454# User Modules And Translation Layers
455#
456CONFIG_MTD_CHAR=y
457CONFIG_MTD_BLKDEVS=y
458CONFIG_MTD_BLOCK=y
459# CONFIG_FTL is not set
460# CONFIG_NFTL is not set
461# CONFIG_INFTL is not set
462# CONFIG_RFD_FTL is not set
463# CONFIG_SSFDC is not set
464
465#
466# RAM/ROM/Flash chip drivers
467#
468CONFIG_MTD_CFI=y
469# CONFIG_MTD_JEDECPROBE is not set
470CONFIG_MTD_GEN_PROBE=y
471# CONFIG_MTD_CFI_ADV_OPTIONS is not set
472CONFIG_MTD_MAP_BANK_WIDTH_1=y
473CONFIG_MTD_MAP_BANK_WIDTH_2=y
474CONFIG_MTD_MAP_BANK_WIDTH_4=y
475# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
476# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
477# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
478CONFIG_MTD_CFI_I1=y
479CONFIG_MTD_CFI_I2=y
480# CONFIG_MTD_CFI_I4 is not set
481# CONFIG_MTD_CFI_I8 is not set
482CONFIG_MTD_CFI_INTELEXT=y
483# CONFIG_MTD_CFI_AMDSTD is not set
484# CONFIG_MTD_CFI_STAA is not set
485CONFIG_MTD_CFI_UTIL=y
486# CONFIG_MTD_RAM is not set
487# CONFIG_MTD_ROM is not set
488# CONFIG_MTD_ABSENT is not set
489
490#
491# Mapping drivers for chip access
492#
493# CONFIG_MTD_COMPLEX_MAPPINGS is not set
494# CONFIG_MTD_PHYSMAP is not set
495# CONFIG_MTD_ARM_INTEGRATOR is not set
496CONFIG_MTD_OMAP_NOR=y
497# CONFIG_MTD_PLATRAM is not set
498
499#
500# Self-contained MTD device drivers
501#
502# CONFIG_MTD_SLRAM is not set
503# CONFIG_MTD_PHRAM is not set
504# CONFIG_MTD_MTDRAM is not set
505# CONFIG_MTD_BLOCK2MTD is not set
506
507#
508# Disk-On-Chip Device Drivers
509#
510# CONFIG_MTD_DOC2000 is not set
511# CONFIG_MTD_DOC2001 is not set
512# CONFIG_MTD_DOC2001PLUS is not set
513# CONFIG_MTD_NAND is not set
514# CONFIG_MTD_ONENAND is not set
515
516#
517# UBI - Unsorted block images
518#
519# CONFIG_MTD_UBI is not set
520# CONFIG_PARPORT is not set
521CONFIG_BLK_DEV=y
522# CONFIG_BLK_DEV_COW_COMMON is not set
523CONFIG_BLK_DEV_LOOP=y
524# CONFIG_BLK_DEV_CRYPTOLOOP is not set
525# CONFIG_BLK_DEV_NBD is not set
526CONFIG_BLK_DEV_RAM=y
527CONFIG_BLK_DEV_RAM_COUNT=16
528CONFIG_BLK_DEV_RAM_SIZE=16384
529CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
530# CONFIG_CDROM_PKTCDVD is not set
531# CONFIG_ATA_OVER_ETH is not set
532
533#
534# SCSI device support
535#
536# CONFIG_RAID_ATTRS is not set
537# CONFIG_SCSI is not set
538# CONFIG_SCSI_DMA is not set
539# CONFIG_SCSI_NETLINK is not set
540# CONFIG_ATA is not set
541# CONFIG_MD is not set
542CONFIG_NETDEVICES=y
543# CONFIG_NETDEVICES_MULTIQUEUE is not set
544# CONFIG_DUMMY is not set
545# CONFIG_BONDING is not set
546# CONFIG_MACVLAN is not set
547# CONFIG_EQUALIZER is not set
548# CONFIG_TUN is not set
549# CONFIG_PHYLIB is not set
550CONFIG_NET_ETHERNET=y
551CONFIG_MII=y
552# CONFIG_AX88796 is not set
553CONFIG_SMC91X=y
554# CONFIG_DM9000 is not set
555CONFIG_NETDEV_1000=y
556CONFIG_NETDEV_10000=y
557
558#
559# Wireless LAN
560#
561# CONFIG_WLAN_PRE80211 is not set
562# CONFIG_WLAN_80211 is not set
563# CONFIG_WAN is not set
564# CONFIG_PPP is not set
565# CONFIG_SLIP is not set
566# CONFIG_SHAPER is not set
567# CONFIG_NETCONSOLE is not set
568# CONFIG_NETPOLL is not set
569# CONFIG_NET_POLL_CONTROLLER is not set
570# CONFIG_ISDN is not set
571
572#
573# Input device support
574#
575CONFIG_INPUT=y
576# CONFIG_INPUT_FF_MEMLESS is not set
577# CONFIG_INPUT_POLLDEV is not set
578
579#
580# Userland interfaces
581#
582# CONFIG_INPUT_MOUSEDEV is not set
583# CONFIG_INPUT_JOYDEV is not set
584# CONFIG_INPUT_TSDEV is not set
585CONFIG_INPUT_EVDEV=y
586# CONFIG_INPUT_EVBUG is not set
587
588#
589# Input Device Drivers
590#
591CONFIG_INPUT_KEYBOARD=y
592# CONFIG_KEYBOARD_ATKBD is not set
593# CONFIG_KEYBOARD_SUNKBD is not set
594# CONFIG_KEYBOARD_LKKBD is not set
595# CONFIG_KEYBOARD_XTKBD is not set
596# CONFIG_KEYBOARD_NEWTON is not set
597# CONFIG_KEYBOARD_STOWAWAY is not set
598CONFIG_KEYBOARD_OMAP=y
599# CONFIG_KEYBOARD_GPIO is not set
600# CONFIG_INPUT_MOUSE is not set
601# CONFIG_INPUT_JOYSTICK is not set
602# CONFIG_INPUT_TABLET is not set
603# CONFIG_INPUT_TOUCHSCREEN is not set
604# CONFIG_INPUT_MISC is not set
605
606#
607# Hardware I/O ports
608#
609# CONFIG_SERIO is not set
610# CONFIG_GAMEPORT is not set
611
612#
613# Character devices
614#
615CONFIG_VT=y
616CONFIG_VT_CONSOLE=y
617CONFIG_HW_CONSOLE=y
618# CONFIG_VT_HW_CONSOLE_BINDING is not set
619# CONFIG_SERIAL_NONSTANDARD is not set
620
621#
622# Serial drivers
623#
624CONFIG_SERIAL_8250=y
625CONFIG_SERIAL_8250_CONSOLE=y
626CONFIG_SERIAL_8250_NR_UARTS=32
627CONFIG_SERIAL_8250_RUNTIME_UARTS=4
628CONFIG_SERIAL_8250_EXTENDED=y
629CONFIG_SERIAL_8250_MANY_PORTS=y
630CONFIG_SERIAL_8250_SHARE_IRQ=y
631CONFIG_SERIAL_8250_DETECT_IRQ=y
632CONFIG_SERIAL_8250_RSA=y
633
634#
635# Non-8250 serial port support
636#
637CONFIG_SERIAL_CORE=y
638CONFIG_SERIAL_CORE_CONSOLE=y
639CONFIG_UNIX98_PTYS=y
640# CONFIG_LEGACY_PTYS is not set
641# CONFIG_IPMI_HANDLER is not set
642CONFIG_WATCHDOG=y
643CONFIG_WATCHDOG_NOWAYOUT=y
644
645#
646# Watchdog Device Drivers
647#
648# CONFIG_SOFT_WATCHDOG is not set
649CONFIG_OMAP_WATCHDOG=y
650CONFIG_HW_RANDOM=m
651CONFIG_HW_RANDOM_OMAP=m
652# CONFIG_NVRAM is not set
653# CONFIG_R3964 is not set
654# CONFIG_RAW_DRIVER is not set
655# CONFIG_TCG_TPM is not set
656CONFIG_I2C=y
657CONFIG_I2C_BOARDINFO=y
658# CONFIG_I2C_CHARDEV is not set
659
660#
661# I2C Algorithms
662#
663# CONFIG_I2C_ALGOBIT is not set
664# CONFIG_I2C_ALGOPCF is not set
665# CONFIG_I2C_ALGOPCA is not set
666
667#
668# I2C Hardware Bus support
669#
670# CONFIG_I2C_GPIO is not set
671# CONFIG_I2C_OCORES is not set
672CONFIG_I2C_OMAP=y
673# CONFIG_I2C_PARPORT_LIGHT is not set
674# CONFIG_I2C_SIMTEC is not set
675# CONFIG_I2C_TAOS_EVM is not set
676# CONFIG_I2C_STUB is not set
677
678#
679# Miscellaneous I2C Chip support
680#
681# CONFIG_SENSORS_DS1337 is not set
682# CONFIG_SENSORS_DS1374 is not set
683# CONFIG_DS1682 is not set
684# CONFIG_SENSORS_EEPROM is not set
685# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set
688# CONFIG_ISP1301_OMAP is not set
689# CONFIG_TPS65010 is not set
690# CONFIG_SENSORS_TLV320AIC23 is not set
691CONFIG_GPIOEXPANDER_OMAP=y
692# CONFIG_TWL4030_CORE is not set
693# CONFIG_SENSORS_MAX6875 is not set
694# CONFIG_SENSORS_TSL2550 is not set
695CONFIG_MENELAUS=y
696# CONFIG_I2C_DEBUG_CORE is not set
697# CONFIG_I2C_DEBUG_ALGO is not set
698# CONFIG_I2C_DEBUG_BUS is not set
699# CONFIG_I2C_DEBUG_CHIP is not set
700
701#
702# SPI support
703#
704# CONFIG_SPI is not set
705# CONFIG_SPI_MASTER is not set
706# CONFIG_W1 is not set
707# CONFIG_HWMON is not set
708CONFIG_MISC_DEVICES=y
709# CONFIG_EEPROM_93CX6 is not set
710
711#
712# Multifunction device drivers
713#
714# CONFIG_MFD_SM501 is not set
715# CONFIG_NEW_LEDS is not set
716
717#
718# Multimedia devices
719#
720# CONFIG_VIDEO_DEV is not set
721# CONFIG_DVB_CORE is not set
722CONFIG_DAB=y
723
724#
725# Graphics support
726#
727# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
728
729#
730# Display device support
731#
732# CONFIG_DISPLAY_SUPPORT is not set
733# CONFIG_VGASTATE is not set
734CONFIG_VIDEO_OUTPUT_CONTROL=m
735CONFIG_FB=y
736CONFIG_FIRMWARE_EDID=y
737# CONFIG_FB_DDC is not set
738# CONFIG_FB_CFB_FILLRECT is not set
739# CONFIG_FB_CFB_COPYAREA is not set
740# CONFIG_FB_CFB_IMAGEBLIT is not set
741# CONFIG_FB_SYS_FILLRECT is not set
742# CONFIG_FB_SYS_COPYAREA is not set
743# CONFIG_FB_SYS_IMAGEBLIT is not set
744# CONFIG_FB_SYS_FOPS is not set
745CONFIG_FB_DEFERRED_IO=y
746# CONFIG_FB_SVGALIB is not set
747# CONFIG_FB_MACMODES is not set
748# CONFIG_FB_BACKLIGHT is not set
749# CONFIG_FB_MODE_HELPERS is not set
750# CONFIG_FB_TILEBLITTING is not set
751
752#
753# Frame buffer hardware drivers
754#
755# CONFIG_FB_S1D13XXX is not set
756CONFIG_FB_OMAP=y
757# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
758# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
759CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
760# CONFIG_FB_VIRTUAL is not set
761
762#
763# Console display driver support
764#
765# CONFIG_VGA_CONSOLE is not set
766CONFIG_DUMMY_CONSOLE=y
767CONFIG_FRAMEBUFFER_CONSOLE=y
768# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
769# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
770# CONFIG_FONTS is not set
771CONFIG_FONT_8x8=y
772CONFIG_FONT_8x16=y
773CONFIG_LOGO=y
774# CONFIG_LOGO_LINUX_MONO is not set
775# CONFIG_LOGO_LINUX_VGA16 is not set
776CONFIG_LOGO_LINUX_CLUT224=y
777
778#
779# Sound
780#
781# CONFIG_SOUND is not set
782CONFIG_HID_SUPPORT=y
783CONFIG_HID=y
784# CONFIG_HID_DEBUG is not set
785CONFIG_USB_SUPPORT=y
786CONFIG_USB_ARCH_HAS_HCD=y
787CONFIG_USB_ARCH_HAS_OHCI=y
788# CONFIG_USB_ARCH_HAS_EHCI is not set
789# CONFIG_USB is not set
790
791#
792# Enable Host or Gadget support to see Inventra options
793#
794
795#
796# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
797#
798
799#
800# USB Gadget Support
801#
802# CONFIG_USB_GADGET is not set
803CONFIG_MMC=y
804# CONFIG_MMC_DEBUG is not set
805# CONFIG_MMC_UNSAFE_RESUME is not set
806
807#
808# MMC/SD Card Drivers
809#
810CONFIG_MMC_BLOCK=y
811CONFIG_MMC_BLOCK_BOUNCE=y
812
813#
814# MMC/SD Host Controller Drivers
815#
816CONFIG_MMC_OMAP=y
817CONFIG_RTC_LIB=y
818# CONFIG_RTC_CLASS is not set
819
820#
821# DMA Engine support
822#
823# CONFIG_DMA_ENGINE is not set
824
825#
826# DMA Clients
827#
828
829#
830# DMA Devices
831#
832
833#
834# CBUS support
835#
836# CONFIG_CBUS is not set
837
838#
839# File systems
840#
841CONFIG_EXT2_FS=y
842# CONFIG_EXT2_FS_XATTR is not set
843# CONFIG_EXT2_FS_XIP is not set
844CONFIG_EXT3_FS=y
845# CONFIG_EXT3_FS_XATTR is not set
846# CONFIG_EXT4DEV_FS is not set
847CONFIG_JBD=y
848# CONFIG_JBD_DEBUG is not set
849# CONFIG_REISERFS_FS is not set
850# CONFIG_JFS_FS is not set
851# CONFIG_FS_POSIX_ACL is not set
852# CONFIG_XFS_FS is not set
853# CONFIG_GFS2_FS is not set
854# CONFIG_OCFS2_FS is not set
855# CONFIG_MINIX_FS is not set
856# CONFIG_ROMFS_FS is not set
857CONFIG_INOTIFY=y
858CONFIG_INOTIFY_USER=y
859CONFIG_QUOTA=y
860# CONFIG_QFMT_V1 is not set
861CONFIG_QFMT_V2=y
862CONFIG_QUOTACTL=y
863CONFIG_DNOTIFY=y
864# CONFIG_AUTOFS_FS is not set
865# CONFIG_AUTOFS4_FS is not set
866# CONFIG_FUSE_FS is not set
867
868#
869# CD-ROM/DVD Filesystems
870#
871# CONFIG_ISO9660_FS is not set
872# CONFIG_UDF_FS is not set
873
874#
875# DOS/FAT/NT Filesystems
876#
877CONFIG_FAT_FS=y
878CONFIG_MSDOS_FS=y
879CONFIG_VFAT_FS=y
880CONFIG_FAT_DEFAULT_CODEPAGE=437
881CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
882# CONFIG_NTFS_FS is not set
883
884#
885# Pseudo filesystems
886#
887CONFIG_PROC_FS=y
888CONFIG_PROC_SYSCTL=y
889CONFIG_SYSFS=y
890CONFIG_TMPFS=y
891# CONFIG_TMPFS_POSIX_ACL is not set
892# CONFIG_HUGETLB_PAGE is not set
893CONFIG_RAMFS=y
894# CONFIG_CONFIGFS_FS is not set
895
896#
897# Miscellaneous filesystems
898#
899# CONFIG_ADFS_FS is not set
900# CONFIG_AFFS_FS is not set
901# CONFIG_HFS_FS is not set
902# CONFIG_HFSPLUS_FS is not set
903# CONFIG_BEFS_FS is not set
904# CONFIG_BFS_FS is not set
905# CONFIG_EFS_FS is not set
906CONFIG_JFFS2_FS=y
907CONFIG_JFFS2_FS_DEBUG=0
908CONFIG_JFFS2_FS_WRITEBUFFER=y
909# CONFIG_JFFS2_SUMMARY is not set
910# CONFIG_JFFS2_FS_XATTR is not set
911# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
912CONFIG_JFFS2_ZLIB=y
913CONFIG_JFFS2_RTIME=y
914# CONFIG_JFFS2_RUBIN is not set
915# CONFIG_CRAMFS is not set
916# CONFIG_VXFS_FS is not set
917# CONFIG_HPFS_FS is not set
918# CONFIG_QNX4FS_FS is not set
919# CONFIG_SYSV_FS is not set
920# CONFIG_UFS_FS is not set
921
922#
923# Network File Systems
924#
925CONFIG_NFS_FS=y
926CONFIG_NFS_V3=y
927# CONFIG_NFS_V3_ACL is not set
928CONFIG_NFS_V4=y
929# CONFIG_NFS_DIRECTIO is not set
930# CONFIG_NFSD is not set
931CONFIG_ROOT_NFS=y
932CONFIG_LOCKD=y
933CONFIG_LOCKD_V4=y
934CONFIG_NFS_COMMON=y
935CONFIG_SUNRPC=y
936CONFIG_SUNRPC_GSS=y
937# CONFIG_SUNRPC_BIND34 is not set
938CONFIG_RPCSEC_GSS_KRB5=y
939# CONFIG_RPCSEC_GSS_SPKM3 is not set
940# CONFIG_SMB_FS is not set
941# CONFIG_CIFS is not set
942# CONFIG_NCP_FS is not set
943# CONFIG_CODA_FS is not set
944# CONFIG_AFS_FS is not set
945
946#
947# Partition Types
948#
949CONFIG_PARTITION_ADVANCED=y
950# CONFIG_ACORN_PARTITION is not set
951# CONFIG_OSF_PARTITION is not set
952# CONFIG_AMIGA_PARTITION is not set
953# CONFIG_ATARI_PARTITION is not set
954# CONFIG_MAC_PARTITION is not set
955CONFIG_MSDOS_PARTITION=y
956# CONFIG_BSD_DISKLABEL is not set
957# CONFIG_MINIX_SUBPARTITION is not set
958# CONFIG_SOLARIS_X86_PARTITION is not set
959# CONFIG_UNIXWARE_DISKLABEL is not set
960# CONFIG_LDM_PARTITION is not set
961# CONFIG_SGI_PARTITION is not set
962# CONFIG_ULTRIX_PARTITION is not set
963# CONFIG_SUN_PARTITION is not set
964# CONFIG_KARMA_PARTITION is not set
965# CONFIG_EFI_PARTITION is not set
966# CONFIG_SYSV68_PARTITION is not set
967
968#
969# Native Language Support
970#
971CONFIG_NLS=y
972CONFIG_NLS_DEFAULT="iso8859-1"
973CONFIG_NLS_CODEPAGE_437=y
974# CONFIG_NLS_CODEPAGE_737 is not set
975# CONFIG_NLS_CODEPAGE_775 is not set
976# CONFIG_NLS_CODEPAGE_850 is not set
977# CONFIG_NLS_CODEPAGE_852 is not set
978# CONFIG_NLS_CODEPAGE_855 is not set
979# CONFIG_NLS_CODEPAGE_857 is not set
980# CONFIG_NLS_CODEPAGE_860 is not set
981# CONFIG_NLS_CODEPAGE_861 is not set
982# CONFIG_NLS_CODEPAGE_862 is not set
983# CONFIG_NLS_CODEPAGE_863 is not set
984# CONFIG_NLS_CODEPAGE_864 is not set
985# CONFIG_NLS_CODEPAGE_865 is not set
986# CONFIG_NLS_CODEPAGE_866 is not set
987# CONFIG_NLS_CODEPAGE_869 is not set
988# CONFIG_NLS_CODEPAGE_936 is not set
989# CONFIG_NLS_CODEPAGE_950 is not set
990# CONFIG_NLS_CODEPAGE_932 is not set
991# CONFIG_NLS_CODEPAGE_949 is not set
992# CONFIG_NLS_CODEPAGE_874 is not set
993# CONFIG_NLS_ISO8859_8 is not set
994# CONFIG_NLS_CODEPAGE_1250 is not set
995# CONFIG_NLS_CODEPAGE_1251 is not set
996# CONFIG_NLS_ASCII is not set
997# CONFIG_NLS_ISO8859_1 is not set
998# CONFIG_NLS_ISO8859_2 is not set
999# CONFIG_NLS_ISO8859_3 is not set
1000# CONFIG_NLS_ISO8859_4 is not set
1001# CONFIG_NLS_ISO8859_5 is not set
1002# CONFIG_NLS_ISO8859_6 is not set
1003# CONFIG_NLS_ISO8859_7 is not set
1004# CONFIG_NLS_ISO8859_9 is not set
1005# CONFIG_NLS_ISO8859_13 is not set
1006# CONFIG_NLS_ISO8859_14 is not set
1007# CONFIG_NLS_ISO8859_15 is not set
1008# CONFIG_NLS_KOI8_R is not set
1009# CONFIG_NLS_KOI8_U is not set
1010# CONFIG_NLS_UTF8 is not set
1011
1012#
1013# Distributed Lock Manager
1014#
1015# CONFIG_DLM is not set
1016
1017#
1018# Profiling support
1019#
1020# CONFIG_PROFILING is not set
1021
1022#
1023# Kernel hacking
1024#
1025# CONFIG_PRINTK_TIME is not set
1026CONFIG_ENABLE_MUST_CHECK=y
1027CONFIG_MAGIC_SYSRQ=y
1028# CONFIG_UNUSED_SYMBOLS is not set
1029# CONFIG_DEBUG_FS is not set
1030# CONFIG_HEADERS_CHECK is not set
1031CONFIG_DEBUG_KERNEL=y
1032# CONFIG_DEBUG_SHIRQ is not set
1033CONFIG_DETECT_SOFTLOCKUP=y
1034CONFIG_SCHED_DEBUG=y
1035# CONFIG_SCHEDSTATS is not set
1036# CONFIG_TIMER_STATS is not set
1037# CONFIG_DEBUG_SLAB is not set
1038# CONFIG_DEBUG_RT_MUTEXES is not set
1039# CONFIG_RT_MUTEX_TESTER is not set
1040# CONFIG_DEBUG_SPINLOCK is not set
1041CONFIG_DEBUG_MUTEXES=y
1042# CONFIG_DEBUG_LOCK_ALLOC is not set
1043# CONFIG_PROVE_LOCKING is not set
1044# CONFIG_LOCK_STAT is not set
1045# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1046# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1047# CONFIG_DEBUG_KOBJECT is not set
1048# CONFIG_DEBUG_BUGVERBOSE is not set
1049# CONFIG_DEBUG_INFO is not set
1050# CONFIG_DEBUG_VM is not set
1051# CONFIG_DEBUG_LIST is not set
1052CONFIG_FRAME_POINTER=y
1053CONFIG_FORCED_INLINING=y
1054# CONFIG_RCU_TORTURE_TEST is not set
1055# CONFIG_FAULT_INJECTION is not set
1056# CONFIG_DEBUG_USER is not set
1057# CONFIG_DEBUG_ERRORS is not set
1058CONFIG_DEBUG_LL=y
1059# CONFIG_DEBUG_ICEDCC is not set
1060
1061#
1062# Security options
1063#
1064# CONFIG_KEYS is not set
1065# CONFIG_SECURITY is not set
1066CONFIG_CRYPTO=y
1067CONFIG_CRYPTO_ALGAPI=y
1068CONFIG_CRYPTO_BLKCIPHER=y
1069CONFIG_CRYPTO_MANAGER=y
1070# CONFIG_CRYPTO_HMAC is not set
1071# CONFIG_CRYPTO_XCBC is not set
1072# CONFIG_CRYPTO_NULL is not set
1073# CONFIG_CRYPTO_MD4 is not set
1074CONFIG_CRYPTO_MD5=y
1075# CONFIG_CRYPTO_SHA1 is not set
1076# CONFIG_CRYPTO_SHA256 is not set
1077# CONFIG_CRYPTO_SHA512 is not set
1078# CONFIG_CRYPTO_WP512 is not set
1079# CONFIG_CRYPTO_TGR192 is not set
1080# CONFIG_CRYPTO_GF128MUL is not set
1081CONFIG_CRYPTO_ECB=m
1082CONFIG_CRYPTO_CBC=y
1083CONFIG_CRYPTO_PCBC=m
1084# CONFIG_CRYPTO_LRW is not set
1085# CONFIG_CRYPTO_CRYPTD is not set
1086CONFIG_CRYPTO_DES=y
1087# CONFIG_CRYPTO_FCRYPT is not set
1088# CONFIG_CRYPTO_BLOWFISH is not set
1089# CONFIG_CRYPTO_TWOFISH is not set
1090# CONFIG_CRYPTO_SERPENT is not set
1091# CONFIG_CRYPTO_AES is not set
1092# CONFIG_CRYPTO_CAST5 is not set
1093# CONFIG_CRYPTO_CAST6 is not set
1094# CONFIG_CRYPTO_TEA is not set
1095# CONFIG_CRYPTO_ARC4 is not set
1096# CONFIG_CRYPTO_KHAZAD is not set
1097# CONFIG_CRYPTO_ANUBIS is not set
1098# CONFIG_CRYPTO_DEFLATE is not set
1099# CONFIG_CRYPTO_MICHAEL_MIC is not set
1100# CONFIG_CRYPTO_CRC32C is not set
1101# CONFIG_CRYPTO_CAMELLIA is not set
1102# CONFIG_CRYPTO_TEST is not set
1103CONFIG_CRYPTO_HW=y
1104
1105#
1106# Library routines
1107#
1108CONFIG_BITREVERSE=y
1109CONFIG_CRC_CCITT=y
1110# CONFIG_CRC16 is not set
1111# CONFIG_CRC_ITU_T is not set
1112CONFIG_CRC32=y
1113# CONFIG_CRC7 is not set
1114CONFIG_LIBCRC32C=y
1115CONFIG_ZLIB_INFLATE=y
1116CONFIG_ZLIB_DEFLATE=y
1117CONFIG_PLIST=y
1118CONFIG_HAS_IOMEM=y
1119CONFIG_HAS_IOPORT=y
1120CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_innovator_1510_defconfig b/arch/arm/configs/omap_innovator_1510_defconfig
new file mode 100644
index 000000000000..55b2611bd90a
--- /dev/null
+++ b/arch/arm/configs/omap_innovator_1510_defconfig
@@ -0,0 +1,1253 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:45:02 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_ALL is not set
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78CONFIG_MODULES=y
79CONFIG_MODULE_UNLOAD=y
80# CONFIG_MODULE_FORCE_UNLOAD is not set
81# CONFIG_MODVERSIONS is not set
82# CONFIG_MODULE_SRCVERSION_ALL is not set
83CONFIG_KMOD=y
84CONFIG_BLOCK=y
85# CONFIG_LBD is not set
86# CONFIG_BLK_DEV_IO_TRACE is not set
87# CONFIG_LSF is not set
88# CONFIG_BLK_DEV_BSG is not set
89
90#
91# IO Schedulers
92#
93CONFIG_IOSCHED_NOOP=y
94CONFIG_IOSCHED_AS=y
95CONFIG_IOSCHED_DEADLINE=y
96CONFIG_IOSCHED_CFQ=y
97# CONFIG_DEFAULT_AS is not set
98# CONFIG_DEFAULT_DEADLINE is not set
99CONFIG_DEFAULT_CFQ=y
100# CONFIG_DEFAULT_NOOP is not set
101CONFIG_DEFAULT_IOSCHED="cfq"
102
103#
104# System Type
105#
106# CONFIG_ARCH_AAEC2000 is not set
107# CONFIG_ARCH_INTEGRATOR is not set
108# CONFIG_ARCH_REALVIEW is not set
109# CONFIG_ARCH_VERSATILE is not set
110# CONFIG_ARCH_AT91 is not set
111# CONFIG_ARCH_CLPS7500 is not set
112# CONFIG_ARCH_CLPS711X is not set
113# CONFIG_ARCH_CO285 is not set
114# CONFIG_ARCH_EBSA110 is not set
115# CONFIG_ARCH_EP93XX is not set
116# CONFIG_ARCH_FOOTBRIDGE is not set
117# CONFIG_ARCH_NETX is not set
118# CONFIG_ARCH_H720X is not set
119# CONFIG_ARCH_IMX is not set
120# CONFIG_ARCH_IOP13XX is not set
121# CONFIG_ARCH_IOP32X is not set
122# CONFIG_ARCH_IOP33X is not set
123# CONFIG_ARCH_IXP23XX is not set
124# CONFIG_ARCH_IXP2000 is not set
125# CONFIG_ARCH_IXP4XX is not set
126# CONFIG_ARCH_L7200 is not set
127# CONFIG_ARCH_KS8695 is not set
128# CONFIG_ARCH_NS9XXX is not set
129# CONFIG_ARCH_MXC is not set
130# CONFIG_ARCH_PNX4008 is not set
131# CONFIG_ARCH_PXA is not set
132# CONFIG_ARCH_RPC is not set
133# CONFIG_ARCH_SA1100 is not set
134# CONFIG_ARCH_S3C2410 is not set
135# CONFIG_ARCH_SHARK is not set
136# CONFIG_ARCH_LH7A40X is not set
137# CONFIG_ARCH_DAVINCI is not set
138CONFIG_ARCH_OMAP=y
139
140#
141# TI OMAP Implementations
142#
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165# CONFIG_OMAP_DSP is not set
166
167#
168# OMAP Core Type
169#
170# CONFIG_ARCH_OMAP730 is not set
171CONFIG_ARCH_OMAP15XX=y
172# CONFIG_ARCH_OMAP16XX is not set
173
174#
175# OMAP Board Type
176#
177CONFIG_MACH_OMAP_INNOVATOR=y
178# CONFIG_MACH_VOICEBLUE is not set
179# CONFIG_MACH_OMAP_PALMTE is not set
180# CONFIG_MACH_OMAP_PALMZ71 is not set
181# CONFIG_MACH_OMAP_PALMTT is not set
182# CONFIG_MACH_SX1 is not set
183# CONFIG_MACH_AMS_DELTA is not set
184# CONFIG_MACH_OMAP_GENERIC is not set
185
186#
187# OMAP CPU Speed
188#
189# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
190CONFIG_OMAP_ARM_168MHZ=y
191# CONFIG_OMAP_ARM_150MHZ is not set
192# CONFIG_OMAP_ARM_120MHZ is not set
193# CONFIG_OMAP_ARM_60MHZ is not set
194# CONFIG_OMAP_ARM_30MHZ is not set
195# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
196
197#
198# Boot options
199#
200
201#
202# Power management
203#
204
205#
206# Processor Type
207#
208CONFIG_CPU_32=y
209CONFIG_CPU_ARM925T=y
210CONFIG_CPU_32v4T=y
211CONFIG_CPU_ABRT_EV4T=y
212CONFIG_CPU_PABRT_NOIFAR=y
213CONFIG_CPU_CACHE_V4WT=y
214CONFIG_CPU_CACHE_VIVT=y
215CONFIG_CPU_COPY_V4WB=y
216CONFIG_CPU_TLB_V4WBI=y
217CONFIG_CPU_CP15=y
218CONFIG_CPU_CP15_MMU=y
219
220#
221# Processor Features
222#
223CONFIG_ARM_THUMB=y
224# CONFIG_CPU_ICACHE_DISABLE is not set
225# CONFIG_CPU_DCACHE_DISABLE is not set
226CONFIG_CPU_DCACHE_WRITETHROUGH=y
227# CONFIG_OUTER_CACHE is not set
228
229#
230# Bus support
231#
232# CONFIG_PCI_SYSCALL is not set
233# CONFIG_ARCH_SUPPORTS_MSI is not set
234
235#
236# PCCARD (PCMCIA/CardBus) support
237#
238# CONFIG_PCCARD is not set
239
240#
241# Kernel Features
242#
243# CONFIG_TICK_ONESHOT is not set
244# CONFIG_NO_HZ is not set
245# CONFIG_HIGH_RES_TIMERS is not set
246CONFIG_PREEMPT=y
247CONFIG_HZ=100
248# CONFIG_AEABI is not set
249# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
250CONFIG_SELECT_MEMORY_MODEL=y
251CONFIG_FLATMEM_MANUAL=y
252# CONFIG_DISCONTIGMEM_MANUAL is not set
253# CONFIG_SPARSEMEM_MANUAL is not set
254CONFIG_FLATMEM=y
255CONFIG_FLAT_NODE_MEM_MAP=y
256# CONFIG_SPARSEMEM_STATIC is not set
257CONFIG_SPLIT_PTLOCK_CPUS=4096
258# CONFIG_RESOURCES_64BIT is not set
259CONFIG_ZONE_DMA_FLAG=1
260CONFIG_BOUNCE=y
261CONFIG_VIRT_TO_BUS=y
262CONFIG_LEDS=y
263CONFIG_ALIGNMENT_TRAP=y
264
265#
266# Boot options
267#
268CONFIG_ZBOOT_ROM_TEXT=0x0
269CONFIG_ZBOOT_ROM_BSS=0x0
270CONFIG_CMDLINE="console=ttyS0,115200n8 root=/dev/nfs ip=bootp noinitrd"
271# CONFIG_XIP_KERNEL is not set
272# CONFIG_KEXEC is not set
273
274#
275# CPU Frequency scaling
276#
277# CONFIG_CPU_FREQ is not set
278
279#
280# Floating point emulation
281#
282
283#
284# At least one emulation must be selected
285#
286CONFIG_FPE_NWFPE=y
287# CONFIG_FPE_NWFPE_XP is not set
288# CONFIG_FPE_FASTFPE is not set
289
290#
291# Userspace binary formats
292#
293CONFIG_BINFMT_ELF=y
294# CONFIG_BINFMT_AOUT is not set
295# CONFIG_BINFMT_MISC is not set
296# CONFIG_ARTHUR is not set
297
298#
299# Power management options
300#
301CONFIG_PM=y
302# CONFIG_PM_LEGACY is not set
303# CONFIG_PM_DEBUG is not set
304CONFIG_PM_SLEEP=y
305CONFIG_SUSPEND_UP_POSSIBLE=y
306CONFIG_SUSPEND=y
307# CONFIG_APM_EMULATION is not set
308
309#
310# Networking
311#
312CONFIG_NET=y
313
314#
315# Networking options
316#
317CONFIG_PACKET=y
318# CONFIG_PACKET_MMAP is not set
319CONFIG_UNIX=y
320CONFIG_XFRM=y
321# CONFIG_XFRM_USER is not set
322# CONFIG_XFRM_SUB_POLICY is not set
323# CONFIG_XFRM_MIGRATE is not set
324# CONFIG_NET_KEY is not set
325CONFIG_INET=y
326CONFIG_IP_MULTICAST=y
327# CONFIG_IP_ADVANCED_ROUTER is not set
328CONFIG_IP_FIB_HASH=y
329CONFIG_IP_PNP=y
330CONFIG_IP_PNP_DHCP=y
331CONFIG_IP_PNP_BOOTP=y
332# CONFIG_IP_PNP_RARP is not set
333# CONFIG_NET_IPIP is not set
334# CONFIG_NET_IPGRE is not set
335# CONFIG_IP_MROUTE is not set
336# CONFIG_ARPD is not set
337# CONFIG_SYN_COOKIES is not set
338# CONFIG_INET_AH is not set
339# CONFIG_INET_ESP is not set
340# CONFIG_INET_IPCOMP is not set
341# CONFIG_INET_XFRM_TUNNEL is not set
342# CONFIG_INET_TUNNEL is not set
343CONFIG_INET_XFRM_MODE_TRANSPORT=y
344CONFIG_INET_XFRM_MODE_TUNNEL=y
345CONFIG_INET_XFRM_MODE_BEET=y
346CONFIG_INET_DIAG=y
347CONFIG_INET_TCP_DIAG=y
348# CONFIG_TCP_CONG_ADVANCED is not set
349CONFIG_TCP_CONG_CUBIC=y
350CONFIG_DEFAULT_TCP_CONG="cubic"
351# CONFIG_TCP_MD5SIG is not set
352# CONFIG_IPV6 is not set
353# CONFIG_INET6_XFRM_TUNNEL is not set
354# CONFIG_INET6_TUNNEL is not set
355# CONFIG_NETWORK_SECMARK is not set
356# CONFIG_NETFILTER is not set
357# CONFIG_IP_DCCP is not set
358# CONFIG_IP_SCTP is not set
359# CONFIG_TIPC is not set
360# CONFIG_ATM is not set
361# CONFIG_BRIDGE is not set
362# CONFIG_VLAN_8021Q is not set
363# CONFIG_DECNET is not set
364# CONFIG_LLC2 is not set
365# CONFIG_IPX is not set
366# CONFIG_ATALK is not set
367# CONFIG_X25 is not set
368# CONFIG_LAPB is not set
369# CONFIG_ECONET is not set
370# CONFIG_WAN_ROUTER is not set
371
372#
373# QoS and/or fair queueing
374#
375# CONFIG_NET_SCHED is not set
376
377#
378# Network testing
379#
380# CONFIG_NET_PKTGEN is not set
381# CONFIG_HAMRADIO is not set
382# CONFIG_IRDA is not set
383# CONFIG_BT is not set
384# CONFIG_AF_RXRPC is not set
385
386#
387# Wireless
388#
389# CONFIG_CFG80211 is not set
390# CONFIG_WIRELESS_EXT is not set
391# CONFIG_MAC80211 is not set
392# CONFIG_IEEE80211 is not set
393# CONFIG_RFKILL is not set
394# CONFIG_NET_9P is not set
395
396#
397# Device Drivers
398#
399
400#
401# Generic Driver Options
402#
403CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y
405# CONFIG_FW_LOADER is not set
406# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set
409# CONFIG_CONNECTOR is not set
410# CONFIG_MTD is not set
411# CONFIG_PARPORT is not set
412CONFIG_BLK_DEV=y
413# CONFIG_BLK_DEV_COW_COMMON is not set
414CONFIG_BLK_DEV_LOOP=y
415# CONFIG_BLK_DEV_CRYPTOLOOP is not set
416# CONFIG_BLK_DEV_NBD is not set
417# CONFIG_BLK_DEV_UB is not set
418CONFIG_BLK_DEV_RAM=y
419CONFIG_BLK_DEV_RAM_COUNT=16
420CONFIG_BLK_DEV_RAM_SIZE=8192
421CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
422# CONFIG_CDROM_PKTCDVD is not set
423# CONFIG_ATA_OVER_ETH is not set
424
425#
426# SCSI device support
427#
428# CONFIG_RAID_ATTRS is not set
429CONFIG_SCSI=y
430CONFIG_SCSI_DMA=y
431# CONFIG_SCSI_TGT is not set
432# CONFIG_SCSI_NETLINK is not set
433CONFIG_SCSI_PROC_FS=y
434
435#
436# SCSI support type (disk, tape, CD-ROM)
437#
438CONFIG_BLK_DEV_SD=y
439CONFIG_CHR_DEV_ST=y
440# CONFIG_CHR_DEV_OSST is not set
441CONFIG_BLK_DEV_SR=y
442# CONFIG_BLK_DEV_SR_VENDOR is not set
443CONFIG_CHR_DEV_SG=y
444# CONFIG_CHR_DEV_SCH is not set
445
446#
447# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
448#
449CONFIG_SCSI_MULTI_LUN=y
450# CONFIG_SCSI_CONSTANTS is not set
451# CONFIG_SCSI_LOGGING is not set
452# CONFIG_SCSI_SCAN_ASYNC is not set
453CONFIG_SCSI_WAIT_SCAN=m
454
455#
456# SCSI Transports
457#
458# CONFIG_SCSI_SPI_ATTRS is not set
459# CONFIG_SCSI_FC_ATTRS is not set
460# CONFIG_SCSI_ISCSI_ATTRS is not set
461# CONFIG_SCSI_SAS_LIBSAS is not set
462CONFIG_SCSI_LOWLEVEL=y
463# CONFIG_ISCSI_TCP is not set
464# CONFIG_SCSI_DEBUG is not set
465# CONFIG_ATA is not set
466# CONFIG_MD is not set
467CONFIG_NETDEVICES=y
468# CONFIG_NETDEVICES_MULTIQUEUE is not set
469# CONFIG_DUMMY is not set
470# CONFIG_BONDING is not set
471# CONFIG_MACVLAN is not set
472# CONFIG_EQUALIZER is not set
473# CONFIG_TUN is not set
474# CONFIG_PHYLIB is not set
475CONFIG_NET_ETHERNET=y
476CONFIG_MII=y
477# CONFIG_AX88796 is not set
478CONFIG_SMC91X=y
479# CONFIG_DM9000 is not set
480CONFIG_NETDEV_1000=y
481CONFIG_NETDEV_10000=y
482
483#
484# Wireless LAN
485#
486# CONFIG_WLAN_PRE80211 is not set
487# CONFIG_WLAN_80211 is not set
488
489#
490# USB Network Adapters
491#
492# CONFIG_USB_CATC is not set
493# CONFIG_USB_KAWETH is not set
494# CONFIG_USB_PEGASUS is not set
495CONFIG_USB_RTL8150=y
496CONFIG_USB_USBNET_MII=y
497CONFIG_USB_USBNET=y
498CONFIG_USB_NET_AX8817X=y
499CONFIG_USB_NET_CDCETHER=y
500# CONFIG_USB_NET_DM9601 is not set
501# CONFIG_USB_NET_GL620A is not set
502CONFIG_USB_NET_NET1080=y
503# CONFIG_USB_NET_PLUSB is not set
504# CONFIG_USB_NET_MCS7830 is not set
505# CONFIG_USB_NET_RNDIS_HOST is not set
506# CONFIG_USB_NET_CDC_SUBSET is not set
507CONFIG_USB_NET_ZAURUS=y
508# CONFIG_WAN is not set
509CONFIG_PPP=y
510CONFIG_PPP_MULTILINK=y
511# CONFIG_PPP_FILTER is not set
512CONFIG_PPP_ASYNC=y
513# CONFIG_PPP_SYNC_TTY is not set
514CONFIG_PPP_DEFLATE=y
515CONFIG_PPP_BSDCOMP=y
516# CONFIG_PPP_MPPE is not set
517# CONFIG_PPPOE is not set
518# CONFIG_PPPOL2TP is not set
519# CONFIG_SLIP is not set
520CONFIG_SLHC=y
521# CONFIG_SHAPER is not set
522# CONFIG_NETCONSOLE is not set
523# CONFIG_NETPOLL is not set
524# CONFIG_NET_POLL_CONTROLLER is not set
525# CONFIG_ISDN is not set
526
527#
528# Input device support
529#
530CONFIG_INPUT=y
531# CONFIG_INPUT_FF_MEMLESS is not set
532# CONFIG_INPUT_POLLDEV is not set
533
534#
535# Userland interfaces
536#
537CONFIG_INPUT_MOUSEDEV=y
538CONFIG_INPUT_MOUSEDEV_PSAUX=y
539CONFIG_INPUT_MOUSEDEV_SCREEN_X=240
540CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
541# CONFIG_INPUT_JOYDEV is not set
542# CONFIG_INPUT_TSDEV is not set
543# CONFIG_INPUT_EVDEV is not set
544# CONFIG_INPUT_EVBUG is not set
545
546#
547# Input Device Drivers
548#
549CONFIG_INPUT_KEYBOARD=y
550# CONFIG_KEYBOARD_ATKBD is not set
551# CONFIG_KEYBOARD_SUNKBD is not set
552# CONFIG_KEYBOARD_LKKBD is not set
553# CONFIG_KEYBOARD_XTKBD is not set
554# CONFIG_KEYBOARD_NEWTON is not set
555# CONFIG_KEYBOARD_STOWAWAY is not set
556CONFIG_KEYBOARD_OMAP=y
557CONFIG_OMAP_PS2=m
558# CONFIG_KEYBOARD_GPIO is not set
559# CONFIG_INPUT_MOUSE is not set
560# CONFIG_INPUT_JOYSTICK is not set
561# CONFIG_INPUT_TABLET is not set
562# CONFIG_INPUT_TOUCHSCREEN is not set
563# CONFIG_INPUT_MISC is not set
564
565#
566# Hardware I/O ports
567#
568CONFIG_SERIO=y
569CONFIG_SERIO_SERPORT=y
570# CONFIG_SERIO_RAW is not set
571# CONFIG_GAMEPORT is not set
572
573#
574# Character devices
575#
576CONFIG_VT=y
577CONFIG_VT_CONSOLE=y
578CONFIG_HW_CONSOLE=y
579# CONFIG_VT_HW_CONSOLE_BINDING is not set
580# CONFIG_SERIAL_NONSTANDARD is not set
581
582#
583# Serial drivers
584#
585CONFIG_SERIAL_8250=y
586CONFIG_SERIAL_8250_CONSOLE=y
587CONFIG_SERIAL_8250_NR_UARTS=4
588CONFIG_SERIAL_8250_RUNTIME_UARTS=4
589# CONFIG_SERIAL_8250_EXTENDED is not set
590
591#
592# Non-8250 serial port support
593#
594CONFIG_SERIAL_CORE=y
595CONFIG_SERIAL_CORE_CONSOLE=y
596CONFIG_UNIX98_PTYS=y
597# CONFIG_LEGACY_PTYS is not set
598# CONFIG_IPMI_HANDLER is not set
599# CONFIG_WATCHDOG is not set
600CONFIG_HW_RANDOM=m
601# CONFIG_NVRAM is not set
602# CONFIG_R3964 is not set
603# CONFIG_RAW_DRIVER is not set
604# CONFIG_TCG_TPM is not set
605CONFIG_I2C=y
606CONFIG_I2C_BOARDINFO=y
607# CONFIG_I2C_CHARDEV is not set
608
609#
610# I2C Algorithms
611#
612# CONFIG_I2C_ALGOBIT is not set
613# CONFIG_I2C_ALGOPCF is not set
614# CONFIG_I2C_ALGOPCA is not set
615
616#
617# I2C Hardware Bus support
618#
619# CONFIG_I2C_GPIO is not set
620# CONFIG_I2C_OCORES is not set
621# CONFIG_I2C_OMAP is not set
622# CONFIG_I2C_PARPORT_LIGHT is not set
623# CONFIG_I2C_SIMTEC is not set
624# CONFIG_I2C_TAOS_EVM is not set
625# CONFIG_I2C_STUB is not set
626# CONFIG_I2C_TINY_USB is not set
627
628#
629# Miscellaneous I2C Chip support
630#
631# CONFIG_SENSORS_DS1337 is not set
632# CONFIG_SENSORS_DS1374 is not set
633# CONFIG_DS1682 is not set
634# CONFIG_SENSORS_EEPROM is not set
635# CONFIG_SENSORS_PCF8574 is not set
636# CONFIG_SENSORS_PCA9539 is not set
637# CONFIG_SENSORS_PCF8591 is not set
638# CONFIG_TPS65010 is not set
639# CONFIG_SENSORS_MAX6875 is not set
640# CONFIG_SENSORS_TSL2550 is not set
641# CONFIG_I2C_DEBUG_CORE is not set
642# CONFIG_I2C_DEBUG_ALGO is not set
643# CONFIG_I2C_DEBUG_BUS is not set
644# CONFIG_I2C_DEBUG_CHIP is not set
645
646#
647# SPI support
648#
649# CONFIG_SPI is not set
650# CONFIG_SPI_MASTER is not set
651# CONFIG_W1 is not set
652CONFIG_HWMON=y
653# CONFIG_HWMON_VID is not set
654# CONFIG_SENSORS_ABITUGURU is not set
655# CONFIG_SENSORS_ABITUGURU3 is not set
656# CONFIG_SENSORS_AD7418 is not set
657# CONFIG_SENSORS_ADM1021 is not set
658# CONFIG_SENSORS_ADM1025 is not set
659# CONFIG_SENSORS_ADM1026 is not set
660# CONFIG_SENSORS_ADM1029 is not set
661# CONFIG_SENSORS_ADM1031 is not set
662# CONFIG_SENSORS_ADM9240 is not set
663# CONFIG_SENSORS_ASB100 is not set
664# CONFIG_SENSORS_ATXP1 is not set
665# CONFIG_SENSORS_DS1621 is not set
666# CONFIG_SENSORS_F71805F is not set
667# CONFIG_SENSORS_FSCHER is not set
668# CONFIG_SENSORS_FSCPOS is not set
669# CONFIG_SENSORS_GL518SM is not set
670# CONFIG_SENSORS_GL520SM is not set
671# CONFIG_SENSORS_IT87 is not set
672# CONFIG_SENSORS_LM63 is not set
673# CONFIG_SENSORS_LM75 is not set
674# CONFIG_SENSORS_LM77 is not set
675# CONFIG_SENSORS_LM78 is not set
676# CONFIG_SENSORS_LM80 is not set
677# CONFIG_SENSORS_LM83 is not set
678# CONFIG_SENSORS_LM85 is not set
679# CONFIG_SENSORS_LM87 is not set
680# CONFIG_SENSORS_LM90 is not set
681# CONFIG_SENSORS_LM92 is not set
682# CONFIG_SENSORS_LM93 is not set
683# CONFIG_SENSORS_MAX1619 is not set
684# CONFIG_SENSORS_MAX6650 is not set
685# CONFIG_SENSORS_PC87360 is not set
686# CONFIG_SENSORS_PC87427 is not set
687# CONFIG_SENSORS_DME1737 is not set
688# CONFIG_SENSORS_SMSC47M1 is not set
689# CONFIG_SENSORS_SMSC47M192 is not set
690# CONFIG_SENSORS_SMSC47B397 is not set
691# CONFIG_SENSORS_THMC50 is not set
692# CONFIG_SENSORS_VT1211 is not set
693# CONFIG_SENSORS_W83781D is not set
694# CONFIG_SENSORS_W83791D is not set
695# CONFIG_SENSORS_W83792D is not set
696# CONFIG_SENSORS_W83793 is not set
697# CONFIG_SENSORS_W83L785TS is not set
698# CONFIG_SENSORS_W83627HF is not set
699# CONFIG_SENSORS_W83627EHF is not set
700# CONFIG_HWMON_DEBUG_CHIP is not set
701CONFIG_MISC_DEVICES=y
702# CONFIG_EEPROM_93CX6 is not set
703
704#
705# Multifunction device drivers
706#
707# CONFIG_MFD_SM501 is not set
708# CONFIG_NEW_LEDS is not set
709
710#
711# Multimedia devices
712#
713# CONFIG_VIDEO_DEV is not set
714# CONFIG_DVB_CORE is not set
715CONFIG_DAB=y
716# CONFIG_USB_DABUSB is not set
717
718#
719# Graphics support
720#
721# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
722
723#
724# Display device support
725#
726# CONFIG_DISPLAY_SUPPORT is not set
727# CONFIG_VGASTATE is not set
728CONFIG_VIDEO_OUTPUT_CONTROL=m
729CONFIG_FB=y
730# CONFIG_FIRMWARE_EDID is not set
731# CONFIG_FB_DDC is not set
732# CONFIG_FB_CFB_FILLRECT is not set
733# CONFIG_FB_CFB_COPYAREA is not set
734# CONFIG_FB_CFB_IMAGEBLIT is not set
735# CONFIG_FB_SYS_FILLRECT is not set
736# CONFIG_FB_SYS_COPYAREA is not set
737# CONFIG_FB_SYS_IMAGEBLIT is not set
738# CONFIG_FB_SYS_FOPS is not set
739CONFIG_FB_DEFERRED_IO=y
740# CONFIG_FB_SVGALIB is not set
741# CONFIG_FB_MACMODES is not set
742# CONFIG_FB_BACKLIGHT is not set
743# CONFIG_FB_MODE_HELPERS is not set
744# CONFIG_FB_TILEBLITTING is not set
745
746#
747# Frame buffer hardware drivers
748#
749# CONFIG_FB_S1D13XXX is not set
750CONFIG_FB_OMAP=y
751# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
752# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
753CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
754# CONFIG_FB_OMAP_DMA_TUNE is not set
755# CONFIG_FB_VIRTUAL is not set
756
757#
758# Console display driver support
759#
760# CONFIG_VGA_CONSOLE is not set
761CONFIG_DUMMY_CONSOLE=y
762CONFIG_FRAMEBUFFER_CONSOLE=y
763# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
764# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
765CONFIG_FONTS=y
766CONFIG_FONT_8x8=y
767CONFIG_FONT_8x16=y
768# CONFIG_FONT_6x11 is not set
769# CONFIG_FONT_7x14 is not set
770# CONFIG_FONT_PEARL_8x8 is not set
771# CONFIG_FONT_ACORN_8x8 is not set
772# CONFIG_FONT_MINI_4x6 is not set
773# CONFIG_FONT_SUN8x16 is not set
774# CONFIG_FONT_SUN12x22 is not set
775# CONFIG_FONT_10x18 is not set
776CONFIG_LOGO=y
777CONFIG_LOGO_LINUX_MONO=y
778CONFIG_LOGO_LINUX_VGA16=y
779CONFIG_LOGO_LINUX_CLUT224=y
780
781#
782# Sound
783#
784# CONFIG_SOUND is not set
785CONFIG_HID_SUPPORT=y
786CONFIG_HID=y
787# CONFIG_HID_DEBUG is not set
788
789#
790# USB Input Devices
791#
792CONFIG_USB_HID=y
793# CONFIG_USB_HIDINPUT_POWERBOOK is not set
794# CONFIG_HID_FF is not set
795# CONFIG_USB_HIDDEV is not set
796CONFIG_USB_SUPPORT=y
797CONFIG_USB_ARCH_HAS_HCD=y
798CONFIG_USB_ARCH_HAS_OHCI=y
799# CONFIG_USB_ARCH_HAS_EHCI is not set
800CONFIG_USB=y
801CONFIG_USB_DEBUG=y
802
803#
804# Miscellaneous USB options
805#
806CONFIG_USB_DEVICEFS=y
807# CONFIG_USB_DEVICE_CLASS is not set
808# CONFIG_USB_DYNAMIC_MINORS is not set
809CONFIG_USB_SUSPEND=y
810# CONFIG_USB_PERSIST is not set
811# CONFIG_USB_OTG is not set
812
813#
814# USB Host Controller Drivers
815#
816# CONFIG_USB_ISP116X_HCD is not set
817CONFIG_USB_OHCI_HCD=y
818# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
819# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
820CONFIG_USB_OHCI_LITTLE_ENDIAN=y
821# CONFIG_USB_SL811_HCD is not set
822# CONFIG_USB_R8A66597_HCD is not set
823# CONFIG_USB_MUSB_HDRC is not set
824
825#
826# USB Device Class drivers
827#
828# CONFIG_USB_ACM is not set
829# CONFIG_USB_PRINTER is not set
830
831#
832# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
833#
834
835#
836# may also be needed; see USB_STORAGE Help for more information
837#
838CONFIG_USB_STORAGE=y
839# CONFIG_USB_STORAGE_DEBUG is not set
840CONFIG_USB_STORAGE_DATAFAB=y
841CONFIG_USB_STORAGE_FREECOM=y
842CONFIG_USB_STORAGE_DPCM=y
843# CONFIG_USB_STORAGE_USBAT is not set
844CONFIG_USB_STORAGE_SDDR09=y
845CONFIG_USB_STORAGE_SDDR55=y
846CONFIG_USB_STORAGE_JUMPSHOT=y
847# CONFIG_USB_STORAGE_ALAUDA is not set
848# CONFIG_USB_STORAGE_KARMA is not set
849# CONFIG_USB_LIBUSUAL is not set
850
851#
852# USB Imaging devices
853#
854# CONFIG_USB_MDC800 is not set
855# CONFIG_USB_MICROTEK is not set
856CONFIG_USB_MON=y
857
858#
859# USB port drivers
860#
861
862#
863# USB Serial Converter support
864#
865# CONFIG_USB_SERIAL is not set
866
867#
868# USB Miscellaneous drivers
869#
870# CONFIG_USB_EMI62 is not set
871# CONFIG_USB_EMI26 is not set
872# CONFIG_USB_ADUTUX is not set
873# CONFIG_USB_AUERSWALD is not set
874# CONFIG_USB_RIO500 is not set
875# CONFIG_USB_LEGOTOWER is not set
876# CONFIG_USB_LCD is not set
877# CONFIG_USB_BERRY_CHARGE is not set
878# CONFIG_USB_LED is not set
879# CONFIG_USB_CYPRESS_CY7C63 is not set
880# CONFIG_USB_CYTHERM is not set
881# CONFIG_USB_PHIDGET is not set
882# CONFIG_USB_IDMOUSE is not set
883# CONFIG_USB_FTDI_ELAN is not set
884# CONFIG_USB_APPLEDISPLAY is not set
885# CONFIG_USB_LD is not set
886# CONFIG_USB_TRANCEVIBRATOR is not set
887# CONFIG_USB_IOWARRIOR is not set
888# CONFIG_USB_TEST is not set
889
890#
891# USB DSL modem support
892#
893
894#
895# USB Gadget Support
896#
897# CONFIG_USB_GADGET is not set
898CONFIG_MMC=y
899# CONFIG_MMC_DEBUG is not set
900# CONFIG_MMC_UNSAFE_RESUME is not set
901
902#
903# MMC/SD Card Drivers
904#
905CONFIG_MMC_BLOCK=y
906CONFIG_MMC_BLOCK_BOUNCE=y
907
908#
909# MMC/SD Host Controller Drivers
910#
911CONFIG_MMC_OMAP=y
912CONFIG_RTC_LIB=y
913CONFIG_RTC_CLASS=y
914CONFIG_RTC_HCTOSYS=y
915CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
916# CONFIG_RTC_DEBUG is not set
917
918#
919# RTC interfaces
920#
921CONFIG_RTC_INTF_SYSFS=y
922CONFIG_RTC_INTF_PROC=y
923CONFIG_RTC_INTF_DEV=y
924# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
925# CONFIG_RTC_DRV_TEST is not set
926
927#
928# I2C RTC drivers
929#
930# CONFIG_RTC_DRV_DS1307 is not set
931# CONFIG_RTC_DRV_DS1672 is not set
932# CONFIG_RTC_DRV_MAX6900 is not set
933# CONFIG_RTC_DRV_RS5C372 is not set
934# CONFIG_RTC_DRV_ISL1208 is not set
935# CONFIG_RTC_DRV_X1205 is not set
936# CONFIG_RTC_DRV_PCF8563 is not set
937# CONFIG_RTC_DRV_PCF8583 is not set
938# CONFIG_RTC_DRV_M41T80 is not set
939
940#
941# SPI RTC drivers
942#
943
944#
945# Platform RTC drivers
946#
947# CONFIG_RTC_DRV_CMOS is not set
948# CONFIG_RTC_DRV_DS1553 is not set
949# CONFIG_RTC_DRV_STK17TA8 is not set
950# CONFIG_RTC_DRV_DS1742 is not set
951# CONFIG_RTC_DRV_M48T86 is not set
952# CONFIG_RTC_DRV_M48T59 is not set
953# CONFIG_RTC_DRV_V3020 is not set
954
955#
956# on-CPU RTC drivers
957#
958CONFIG_RTC_DRV_OMAP=y
959
960#
961# DMA Engine support
962#
963# CONFIG_DMA_ENGINE is not set
964
965#
966# DMA Clients
967#
968
969#
970# DMA Devices
971#
972
973#
974# CBUS support
975#
976# CONFIG_CBUS is not set
977
978#
979# File systems
980#
981CONFIG_EXT2_FS=y
982# CONFIG_EXT2_FS_XATTR is not set
983# CONFIG_EXT2_FS_XIP is not set
984CONFIG_EXT3_FS=y
985CONFIG_EXT3_FS_XATTR=y
986# CONFIG_EXT3_FS_POSIX_ACL is not set
987# CONFIG_EXT3_FS_SECURITY is not set
988# CONFIG_EXT4DEV_FS is not set
989CONFIG_JBD=y
990# CONFIG_JBD_DEBUG is not set
991CONFIG_FS_MBCACHE=y
992# CONFIG_REISERFS_FS is not set
993# CONFIG_JFS_FS is not set
994# CONFIG_FS_POSIX_ACL is not set
995# CONFIG_XFS_FS is not set
996# CONFIG_GFS2_FS is not set
997# CONFIG_OCFS2_FS is not set
998# CONFIG_MINIX_FS is not set
999# CONFIG_ROMFS_FS is not set
1000CONFIG_INOTIFY=y
1001CONFIG_INOTIFY_USER=y
1002# CONFIG_QUOTA is not set
1003CONFIG_DNOTIFY=y
1004CONFIG_AUTOFS_FS=y
1005CONFIG_AUTOFS4_FS=y
1006# CONFIG_FUSE_FS is not set
1007
1008#
1009# CD-ROM/DVD Filesystems
1010#
1011CONFIG_ISO9660_FS=y
1012CONFIG_JOLIET=y
1013# CONFIG_ZISOFS is not set
1014# CONFIG_UDF_FS is not set
1015
1016#
1017# DOS/FAT/NT Filesystems
1018#
1019CONFIG_FAT_FS=m
1020CONFIG_MSDOS_FS=m
1021CONFIG_VFAT_FS=m
1022CONFIG_FAT_DEFAULT_CODEPAGE=437
1023CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1024# CONFIG_NTFS_FS is not set
1025
1026#
1027# Pseudo filesystems
1028#
1029CONFIG_PROC_FS=y
1030CONFIG_PROC_SYSCTL=y
1031CONFIG_SYSFS=y
1032CONFIG_TMPFS=y
1033# CONFIG_TMPFS_POSIX_ACL is not set
1034# CONFIG_HUGETLB_PAGE is not set
1035CONFIG_RAMFS=y
1036# CONFIG_CONFIGFS_FS is not set
1037
1038#
1039# Miscellaneous filesystems
1040#
1041# CONFIG_ADFS_FS is not set
1042# CONFIG_AFFS_FS is not set
1043# CONFIG_HFS_FS is not set
1044# CONFIG_HFSPLUS_FS is not set
1045# CONFIG_BEFS_FS is not set
1046# CONFIG_BFS_FS is not set
1047# CONFIG_EFS_FS is not set
1048# CONFIG_CRAMFS is not set
1049# CONFIG_VXFS_FS is not set
1050# CONFIG_HPFS_FS is not set
1051# CONFIG_QNX4FS_FS is not set
1052# CONFIG_SYSV_FS is not set
1053# CONFIG_UFS_FS is not set
1054
1055#
1056# Network File Systems
1057#
1058CONFIG_NFS_FS=y
1059CONFIG_NFS_V3=y
1060# CONFIG_NFS_V3_ACL is not set
1061CONFIG_NFS_V4=y
1062# CONFIG_NFS_DIRECTIO is not set
1063# CONFIG_NFSD is not set
1064CONFIG_ROOT_NFS=y
1065CONFIG_LOCKD=y
1066CONFIG_LOCKD_V4=y
1067CONFIG_NFS_COMMON=y
1068CONFIG_SUNRPC=y
1069CONFIG_SUNRPC_GSS=y
1070# CONFIG_SUNRPC_BIND34 is not set
1071CONFIG_RPCSEC_GSS_KRB5=y
1072# CONFIG_RPCSEC_GSS_SPKM3 is not set
1073# CONFIG_SMB_FS is not set
1074# CONFIG_CIFS is not set
1075# CONFIG_NCP_FS is not set
1076# CONFIG_CODA_FS is not set
1077# CONFIG_AFS_FS is not set
1078
1079#
1080# Partition Types
1081#
1082CONFIG_PARTITION_ADVANCED=y
1083# CONFIG_ACORN_PARTITION is not set
1084# CONFIG_OSF_PARTITION is not set
1085# CONFIG_AMIGA_PARTITION is not set
1086# CONFIG_ATARI_PARTITION is not set
1087# CONFIG_MAC_PARTITION is not set
1088CONFIG_MSDOS_PARTITION=y
1089# CONFIG_BSD_DISKLABEL is not set
1090# CONFIG_MINIX_SUBPARTITION is not set
1091# CONFIG_SOLARIS_X86_PARTITION is not set
1092# CONFIG_UNIXWARE_DISKLABEL is not set
1093# CONFIG_LDM_PARTITION is not set
1094# CONFIG_SGI_PARTITION is not set
1095# CONFIG_ULTRIX_PARTITION is not set
1096# CONFIG_SUN_PARTITION is not set
1097# CONFIG_KARMA_PARTITION is not set
1098# CONFIG_EFI_PARTITION is not set
1099# CONFIG_SYSV68_PARTITION is not set
1100
1101#
1102# Native Language Support
1103#
1104CONFIG_NLS=y
1105CONFIG_NLS_DEFAULT="iso8859-1"
1106# CONFIG_NLS_CODEPAGE_437 is not set
1107# CONFIG_NLS_CODEPAGE_737 is not set
1108# CONFIG_NLS_CODEPAGE_775 is not set
1109# CONFIG_NLS_CODEPAGE_850 is not set
1110# CONFIG_NLS_CODEPAGE_852 is not set
1111# CONFIG_NLS_CODEPAGE_855 is not set
1112# CONFIG_NLS_CODEPAGE_857 is not set
1113# CONFIG_NLS_CODEPAGE_860 is not set
1114# CONFIG_NLS_CODEPAGE_861 is not set
1115# CONFIG_NLS_CODEPAGE_862 is not set
1116# CONFIG_NLS_CODEPAGE_863 is not set
1117# CONFIG_NLS_CODEPAGE_864 is not set
1118# CONFIG_NLS_CODEPAGE_865 is not set
1119# CONFIG_NLS_CODEPAGE_866 is not set
1120# CONFIG_NLS_CODEPAGE_869 is not set
1121# CONFIG_NLS_CODEPAGE_936 is not set
1122# CONFIG_NLS_CODEPAGE_950 is not set
1123# CONFIG_NLS_CODEPAGE_932 is not set
1124# CONFIG_NLS_CODEPAGE_949 is not set
1125# CONFIG_NLS_CODEPAGE_874 is not set
1126# CONFIG_NLS_ISO8859_8 is not set
1127# CONFIG_NLS_CODEPAGE_1250 is not set
1128# CONFIG_NLS_CODEPAGE_1251 is not set
1129# CONFIG_NLS_ASCII is not set
1130# CONFIG_NLS_ISO8859_1 is not set
1131# CONFIG_NLS_ISO8859_2 is not set
1132# CONFIG_NLS_ISO8859_3 is not set
1133# CONFIG_NLS_ISO8859_4 is not set
1134# CONFIG_NLS_ISO8859_5 is not set
1135# CONFIG_NLS_ISO8859_6 is not set
1136# CONFIG_NLS_ISO8859_7 is not set
1137# CONFIG_NLS_ISO8859_9 is not set
1138# CONFIG_NLS_ISO8859_13 is not set
1139# CONFIG_NLS_ISO8859_14 is not set
1140# CONFIG_NLS_ISO8859_15 is not set
1141# CONFIG_NLS_KOI8_R is not set
1142# CONFIG_NLS_KOI8_U is not set
1143# CONFIG_NLS_UTF8 is not set
1144
1145#
1146# Distributed Lock Manager
1147#
1148# CONFIG_DLM is not set
1149
1150#
1151# Profiling support
1152#
1153# CONFIG_PROFILING is not set
1154
1155#
1156# Kernel hacking
1157#
1158# CONFIG_PRINTK_TIME is not set
1159CONFIG_ENABLE_MUST_CHECK=y
1160CONFIG_MAGIC_SYSRQ=y
1161# CONFIG_UNUSED_SYMBOLS is not set
1162# CONFIG_DEBUG_FS is not set
1163# CONFIG_HEADERS_CHECK is not set
1164CONFIG_DEBUG_KERNEL=y
1165# CONFIG_DEBUG_SHIRQ is not set
1166CONFIG_DETECT_SOFTLOCKUP=y
1167CONFIG_SCHED_DEBUG=y
1168# CONFIG_SCHEDSTATS is not set
1169# CONFIG_TIMER_STATS is not set
1170# CONFIG_DEBUG_SLAB is not set
1171CONFIG_DEBUG_PREEMPT=y
1172# CONFIG_DEBUG_RT_MUTEXES is not set
1173# CONFIG_RT_MUTEX_TESTER is not set
1174# CONFIG_DEBUG_SPINLOCK is not set
1175# CONFIG_DEBUG_MUTEXES is not set
1176# CONFIG_DEBUG_LOCK_ALLOC is not set
1177# CONFIG_PROVE_LOCKING is not set
1178# CONFIG_LOCK_STAT is not set
1179# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1180# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1181# CONFIG_DEBUG_KOBJECT is not set
1182CONFIG_DEBUG_BUGVERBOSE=y
1183# CONFIG_DEBUG_INFO is not set
1184# CONFIG_DEBUG_VM is not set
1185# CONFIG_DEBUG_LIST is not set
1186CONFIG_FRAME_POINTER=y
1187CONFIG_FORCED_INLINING=y
1188# CONFIG_RCU_TORTURE_TEST is not set
1189# CONFIG_FAULT_INJECTION is not set
1190# CONFIG_DEBUG_USER is not set
1191# CONFIG_DEBUG_ERRORS is not set
1192# CONFIG_DEBUG_LL is not set
1193
1194#
1195# Security options
1196#
1197# CONFIG_KEYS is not set
1198# CONFIG_SECURITY is not set
1199CONFIG_CRYPTO=y
1200CONFIG_CRYPTO_ALGAPI=y
1201CONFIG_CRYPTO_BLKCIPHER=y
1202CONFIG_CRYPTO_MANAGER=y
1203# CONFIG_CRYPTO_HMAC is not set
1204# CONFIG_CRYPTO_XCBC is not set
1205# CONFIG_CRYPTO_NULL is not set
1206# CONFIG_CRYPTO_MD4 is not set
1207CONFIG_CRYPTO_MD5=y
1208# CONFIG_CRYPTO_SHA1 is not set
1209# CONFIG_CRYPTO_SHA256 is not set
1210# CONFIG_CRYPTO_SHA512 is not set
1211# CONFIG_CRYPTO_WP512 is not set
1212# CONFIG_CRYPTO_TGR192 is not set
1213# CONFIG_CRYPTO_GF128MUL is not set
1214CONFIG_CRYPTO_ECB=m
1215CONFIG_CRYPTO_CBC=y
1216CONFIG_CRYPTO_PCBC=m
1217# CONFIG_CRYPTO_LRW is not set
1218# CONFIG_CRYPTO_CRYPTD is not set
1219CONFIG_CRYPTO_DES=y
1220# CONFIG_CRYPTO_FCRYPT is not set
1221# CONFIG_CRYPTO_BLOWFISH is not set
1222# CONFIG_CRYPTO_TWOFISH is not set
1223# CONFIG_CRYPTO_SERPENT is not set
1224# CONFIG_CRYPTO_AES is not set
1225# CONFIG_CRYPTO_CAST5 is not set
1226# CONFIG_CRYPTO_CAST6 is not set
1227# CONFIG_CRYPTO_TEA is not set
1228# CONFIG_CRYPTO_ARC4 is not set
1229# CONFIG_CRYPTO_KHAZAD is not set
1230# CONFIG_CRYPTO_ANUBIS is not set
1231# CONFIG_CRYPTO_DEFLATE is not set
1232# CONFIG_CRYPTO_MICHAEL_MIC is not set
1233# CONFIG_CRYPTO_CRC32C is not set
1234# CONFIG_CRYPTO_CAMELLIA is not set
1235# CONFIG_CRYPTO_TEST is not set
1236CONFIG_CRYPTO_HW=y
1237
1238#
1239# Library routines
1240#
1241CONFIG_BITREVERSE=y
1242CONFIG_CRC_CCITT=y
1243# CONFIG_CRC16 is not set
1244# CONFIG_CRC_ITU_T is not set
1245CONFIG_CRC32=y
1246# CONFIG_CRC7 is not set
1247# CONFIG_LIBCRC32C is not set
1248CONFIG_ZLIB_INFLATE=y
1249CONFIG_ZLIB_DEFLATE=y
1250CONFIG_PLIST=y
1251CONFIG_HAS_IOMEM=y
1252CONFIG_HAS_IOPORT=y
1253CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_innovator_1610_defconfig b/arch/arm/configs/omap_innovator_1610_defconfig
new file mode 100644
index 000000000000..95d9f2be53e0
--- /dev/null
+++ b/arch/arm/configs/omap_innovator_1610_defconfig
@@ -0,0 +1,839 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:45:05 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34CONFIG_LOCALVERSION=""
35CONFIG_LOCALVERSION_AUTO=y
36CONFIG_SWAP=y
37CONFIG_SYSVIPC=y
38CONFIG_SYSVIPC_SYSCTL=y
39# CONFIG_POSIX_MQUEUE is not set
40# CONFIG_BSD_PROCESS_ACCT is not set
41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14
46CONFIG_SYSFS_DEPRECATED=y
47# CONFIG_RELAY is not set
48CONFIG_BLK_DEV_INITRD=y
49CONFIG_INITRAMFS_SOURCE=""
50CONFIG_CC_OPTIMIZE_FOR_SIZE=y
51CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_KALLSYMS=y
56# CONFIG_KALLSYMS_EXTRA_PASS is not set
57CONFIG_HOTPLUG=y
58CONFIG_PRINTK=y
59CONFIG_BUG=y
60CONFIG_ELF_CORE=y
61CONFIG_BASE_FULL=y
62CONFIG_FUTEX=y
63CONFIG_ANON_INODES=y
64CONFIG_EPOLL=y
65CONFIG_SIGNALFD=y
66CONFIG_TIMERFD=y
67CONFIG_EVENTFD=y
68CONFIG_SHMEM=y
69CONFIG_VM_EVENT_COUNTERS=y
70CONFIG_SLUB_DEBUG=y
71# CONFIG_SLAB is not set
72CONFIG_SLUB=y
73# CONFIG_SLOB is not set
74CONFIG_RT_MUTEXES=y
75# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=0
77CONFIG_MODULES=y
78CONFIG_MODULE_UNLOAD=y
79# CONFIG_MODULE_FORCE_UNLOAD is not set
80# CONFIG_MODVERSIONS is not set
81# CONFIG_MODULE_SRCVERSION_ALL is not set
82CONFIG_KMOD=y
83CONFIG_BLOCK=y
84# CONFIG_LBD is not set
85# CONFIG_BLK_DEV_IO_TRACE is not set
86# CONFIG_LSF is not set
87# CONFIG_BLK_DEV_BSG is not set
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93CONFIG_IOSCHED_AS=y
94CONFIG_IOSCHED_DEADLINE=y
95CONFIG_IOSCHED_CFQ=y
96# CONFIG_DEFAULT_AS is not set
97# CONFIG_DEFAULT_DEADLINE is not set
98CONFIG_DEFAULT_CFQ=y
99# CONFIG_DEFAULT_NOOP is not set
100CONFIG_DEFAULT_IOSCHED="cfq"
101
102#
103# System Type
104#
105# CONFIG_ARCH_AAEC2000 is not set
106# CONFIG_ARCH_INTEGRATOR is not set
107# CONFIG_ARCH_REALVIEW is not set
108# CONFIG_ARCH_VERSATILE is not set
109# CONFIG_ARCH_AT91 is not set
110# CONFIG_ARCH_CLPS7500 is not set
111# CONFIG_ARCH_CLPS711X is not set
112# CONFIG_ARCH_CO285 is not set
113# CONFIG_ARCH_EBSA110 is not set
114# CONFIG_ARCH_EP93XX is not set
115# CONFIG_ARCH_FOOTBRIDGE is not set
116# CONFIG_ARCH_NETX is not set
117# CONFIG_ARCH_H720X is not set
118# CONFIG_ARCH_IMX is not set
119# CONFIG_ARCH_IOP13XX is not set
120# CONFIG_ARCH_IOP32X is not set
121# CONFIG_ARCH_IOP33X is not set
122# CONFIG_ARCH_IXP23XX is not set
123# CONFIG_ARCH_IXP2000 is not set
124# CONFIG_ARCH_IXP4XX is not set
125# CONFIG_ARCH_L7200 is not set
126# CONFIG_ARCH_KS8695 is not set
127# CONFIG_ARCH_NS9XXX is not set
128# CONFIG_ARCH_MXC is not set
129# CONFIG_ARCH_PNX4008 is not set
130# CONFIG_ARCH_PXA is not set
131# CONFIG_ARCH_RPC is not set
132# CONFIG_ARCH_SA1100 is not set
133# CONFIG_ARCH_S3C2410 is not set
134# CONFIG_ARCH_SHARK is not set
135# CONFIG_ARCH_LH7A40X is not set
136# CONFIG_ARCH_DAVINCI is not set
137CONFIG_ARCH_OMAP=y
138
139#
140# TI OMAP Implementations
141#
142CONFIG_ARCH_OMAP_OTG=y
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156# CONFIG_OMAP_STI is not set
157CONFIG_OMAP_MCBSP=y
158# CONFIG_OMAP_MMU_FWK is not set
159# CONFIG_OMAP_MBOX_FWK is not set
160CONFIG_OMAP_MPU_TIMER=y
161# CONFIG_OMAP_32K_TIMER is not set
162# CONFIG_OMAP_DM_TIMER is not set
163CONFIG_OMAP_LL_DEBUG_UART1=y
164# CONFIG_OMAP_LL_DEBUG_UART2 is not set
165# CONFIG_OMAP_LL_DEBUG_UART3 is not set
166CONFIG_OMAP_SERIAL_WAKE=y
167# CONFIG_OMAP_DSP is not set
168
169#
170# OMAP Core Type
171#
172# CONFIG_ARCH_OMAP730 is not set
173# CONFIG_ARCH_OMAP15XX is not set
174CONFIG_ARCH_OMAP16XX=y
175
176#
177# OMAP Board Type
178#
179CONFIG_MACH_OMAP_INNOVATOR=y
180# CONFIG_MACH_OMAP_H2 is not set
181# CONFIG_MACH_OMAP_H3 is not set
182# CONFIG_MACH_OMAP_OSK is not set
183# CONFIG_MACH_NOKIA770 is not set
184# CONFIG_MACH_OMAP_GENERIC is not set
185
186#
187# OMAP CPU Speed
188#
189# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
190# CONFIG_OMAP_ARM_216MHZ is not set
191CONFIG_OMAP_ARM_192MHZ=y
192# CONFIG_OMAP_ARM_168MHZ is not set
193# CONFIG_OMAP_ARM_120MHZ is not set
194# CONFIG_OMAP_ARM_60MHZ is not set
195# CONFIG_OMAP_ARM_30MHZ is not set
196# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
197
198#
199# Boot options
200#
201
202#
203# Power management
204#
205
206#
207# Processor Type
208#
209CONFIG_CPU_32=y
210CONFIG_CPU_ARM926T=y
211CONFIG_CPU_32v5=y
212CONFIG_CPU_ABRT_EV5TJ=y
213CONFIG_CPU_PABRT_NOIFAR=y
214CONFIG_CPU_CACHE_VIVT=y
215CONFIG_CPU_COPY_V4WB=y
216CONFIG_CPU_TLB_V4WBI=y
217CONFIG_CPU_CP15=y
218CONFIG_CPU_CP15_MMU=y
219
220#
221# Processor Features
222#
223# CONFIG_ARM_THUMB is not set
224# CONFIG_CPU_ICACHE_DISABLE is not set
225# CONFIG_CPU_DCACHE_DISABLE is not set
226CONFIG_CPU_DCACHE_WRITETHROUGH=y
227# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
228# CONFIG_OUTER_CACHE is not set
229
230#
231# Bus support
232#
233# CONFIG_PCI_SYSCALL is not set
234# CONFIG_ARCH_SUPPORTS_MSI is not set
235
236#
237# PCCARD (PCMCIA/CardBus) support
238#
239# CONFIG_PCCARD is not set
240
241#
242# Kernel Features
243#
244# CONFIG_TICK_ONESHOT is not set
245# CONFIG_NO_HZ is not set
246# CONFIG_HIGH_RES_TIMERS is not set
247# CONFIG_PREEMPT is not set
248CONFIG_HZ=100
249# CONFIG_AEABI is not set
250# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
251CONFIG_SELECT_MEMORY_MODEL=y
252CONFIG_FLATMEM_MANUAL=y
253# CONFIG_DISCONTIGMEM_MANUAL is not set
254# CONFIG_SPARSEMEM_MANUAL is not set
255CONFIG_FLATMEM=y
256CONFIG_FLAT_NODE_MEM_MAP=y
257# CONFIG_SPARSEMEM_STATIC is not set
258CONFIG_SPLIT_PTLOCK_CPUS=4096
259# CONFIG_RESOURCES_64BIT is not set
260CONFIG_ZONE_DMA_FLAG=1
261CONFIG_BOUNCE=y
262CONFIG_VIRT_TO_BUS=y
263# CONFIG_LEDS is not set
264CONFIG_ALIGNMENT_TRAP=y
265
266#
267# Boot options
268#
269CONFIG_ZBOOT_ROM_TEXT=0x0
270CONFIG_ZBOOT_ROM_BSS=0x0
271CONFIG_CMDLINE="mem=32M console=tty0 console=ttyS0,115200 initrd=0x10200000,8M root=/dev/ram0 rw"
272# CONFIG_XIP_KERNEL is not set
273# CONFIG_KEXEC is not set
274
275#
276# CPU Frequency scaling
277#
278# CONFIG_CPU_FREQ is not set
279
280#
281# Floating point emulation
282#
283
284#
285# At least one emulation must be selected
286#
287CONFIG_FPE_NWFPE=y
288# CONFIG_FPE_NWFPE_XP is not set
289# CONFIG_FPE_FASTFPE is not set
290# CONFIG_VFP is not set
291
292#
293# Userspace binary formats
294#
295CONFIG_BINFMT_ELF=y
296# CONFIG_BINFMT_AOUT is not set
297# CONFIG_BINFMT_MISC is not set
298# CONFIG_ARTHUR is not set
299
300#
301# Power management options
302#
303# CONFIG_PM is not set
304CONFIG_SUSPEND_UP_POSSIBLE=y
305
306#
307# Networking
308#
309CONFIG_NET=y
310
311#
312# Networking options
313#
314CONFIG_PACKET=m
315# CONFIG_PACKET_MMAP is not set
316CONFIG_UNIX=y
317CONFIG_XFRM=y
318# CONFIG_XFRM_USER is not set
319# CONFIG_XFRM_SUB_POLICY is not set
320# CONFIG_XFRM_MIGRATE is not set
321# CONFIG_NET_KEY is not set
322CONFIG_INET=y
323CONFIG_IP_MULTICAST=y
324# CONFIG_IP_ADVANCED_ROUTER is not set
325CONFIG_IP_FIB_HASH=y
326CONFIG_IP_PNP=y
327CONFIG_IP_PNP_DHCP=y
328CONFIG_IP_PNP_BOOTP=y
329# CONFIG_IP_PNP_RARP is not set
330# CONFIG_NET_IPIP is not set
331# CONFIG_NET_IPGRE is not set
332# CONFIG_IP_MROUTE is not set
333# CONFIG_ARPD is not set
334# CONFIG_SYN_COOKIES is not set
335# CONFIG_INET_AH is not set
336# CONFIG_INET_ESP is not set
337# CONFIG_INET_IPCOMP is not set
338# CONFIG_INET_XFRM_TUNNEL is not set
339# CONFIG_INET_TUNNEL is not set
340CONFIG_INET_XFRM_MODE_TRANSPORT=y
341CONFIG_INET_XFRM_MODE_TUNNEL=y
342CONFIG_INET_XFRM_MODE_BEET=y
343CONFIG_INET_DIAG=y
344CONFIG_INET_TCP_DIAG=y
345# CONFIG_TCP_CONG_ADVANCED is not set
346CONFIG_TCP_CONG_CUBIC=y
347CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_TCP_MD5SIG is not set
349# CONFIG_IPV6 is not set
350# CONFIG_INET6_XFRM_TUNNEL is not set
351# CONFIG_INET6_TUNNEL is not set
352# CONFIG_NETWORK_SECMARK is not set
353# CONFIG_NETFILTER is not set
354# CONFIG_IP_DCCP is not set
355# CONFIG_IP_SCTP is not set
356# CONFIG_TIPC is not set
357# CONFIG_ATM is not set
358# CONFIG_BRIDGE is not set
359# CONFIG_VLAN_8021Q is not set
360# CONFIG_DECNET is not set
361# CONFIG_LLC2 is not set
362# CONFIG_IPX is not set
363# CONFIG_ATALK is not set
364# CONFIG_X25 is not set
365# CONFIG_LAPB is not set
366# CONFIG_ECONET is not set
367# CONFIG_WAN_ROUTER is not set
368
369#
370# QoS and/or fair queueing
371#
372# CONFIG_NET_SCHED is not set
373
374#
375# Network testing
376#
377# CONFIG_NET_PKTGEN is not set
378# CONFIG_HAMRADIO is not set
379# CONFIG_IRDA is not set
380# CONFIG_BT is not set
381# CONFIG_AF_RXRPC is not set
382
383#
384# Wireless
385#
386# CONFIG_CFG80211 is not set
387# CONFIG_WIRELESS_EXT is not set
388# CONFIG_MAC80211 is not set
389# CONFIG_IEEE80211 is not set
390# CONFIG_RFKILL is not set
391# CONFIG_NET_9P is not set
392
393#
394# Device Drivers
395#
396
397#
398# Generic Driver Options
399#
400CONFIG_STANDALONE=y
401CONFIG_PREVENT_FIRMWARE_BUILD=y
402# CONFIG_FW_LOADER is not set
403# CONFIG_SYS_HYPERVISOR is not set
404# CONFIG_CONNECTOR is not set
405# CONFIG_MTD is not set
406# CONFIG_PARPORT is not set
407CONFIG_BLK_DEV=y
408# CONFIG_BLK_DEV_COW_COMMON is not set
409CONFIG_BLK_DEV_LOOP=y
410# CONFIG_BLK_DEV_CRYPTOLOOP is not set
411# CONFIG_BLK_DEV_NBD is not set
412CONFIG_BLK_DEV_RAM=y
413CONFIG_BLK_DEV_RAM_COUNT=16
414CONFIG_BLK_DEV_RAM_SIZE=8192
415CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
416# CONFIG_CDROM_PKTCDVD is not set
417# CONFIG_ATA_OVER_ETH is not set
418
419#
420# SCSI device support
421#
422# CONFIG_RAID_ATTRS is not set
423# CONFIG_SCSI is not set
424# CONFIG_SCSI_DMA is not set
425# CONFIG_SCSI_NETLINK is not set
426# CONFIG_ATA is not set
427# CONFIG_MD is not set
428CONFIG_NETDEVICES=y
429# CONFIG_NETDEVICES_MULTIQUEUE is not set
430# CONFIG_DUMMY is not set
431# CONFIG_BONDING is not set
432# CONFIG_MACVLAN is not set
433# CONFIG_EQUALIZER is not set
434# CONFIG_TUN is not set
435# CONFIG_PHYLIB is not set
436CONFIG_NET_ETHERNET=y
437CONFIG_MII=y
438# CONFIG_AX88796 is not set
439CONFIG_SMC91X=y
440# CONFIG_DM9000 is not set
441CONFIG_NETDEV_1000=y
442CONFIG_NETDEV_10000=y
443
444#
445# Wireless LAN
446#
447# CONFIG_WLAN_PRE80211 is not set
448# CONFIG_WLAN_80211 is not set
449# CONFIG_WAN is not set
450CONFIG_PPP=y
451CONFIG_PPP_MULTILINK=y
452# CONFIG_PPP_FILTER is not set
453# CONFIG_PPP_ASYNC is not set
454# CONFIG_PPP_SYNC_TTY is not set
455# CONFIG_PPP_DEFLATE is not set
456# CONFIG_PPP_BSDCOMP is not set
457# CONFIG_PPP_MPPE is not set
458# CONFIG_PPPOE is not set
459# CONFIG_PPPOL2TP is not set
460# CONFIG_SLIP is not set
461CONFIG_SLHC=y
462# CONFIG_SHAPER is not set
463# CONFIG_NETCONSOLE is not set
464# CONFIG_NETPOLL is not set
465# CONFIG_NET_POLL_CONTROLLER is not set
466# CONFIG_ISDN is not set
467
468#
469# Input device support
470#
471CONFIG_INPUT=y
472# CONFIG_INPUT_FF_MEMLESS is not set
473# CONFIG_INPUT_POLLDEV is not set
474
475#
476# Userland interfaces
477#
478CONFIG_INPUT_MOUSEDEV=y
479CONFIG_INPUT_MOUSEDEV_PSAUX=y
480CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
481CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
482# CONFIG_INPUT_JOYDEV is not set
483# CONFIG_INPUT_TSDEV is not set
484# CONFIG_INPUT_EVDEV is not set
485# CONFIG_INPUT_EVBUG is not set
486
487#
488# Input Device Drivers
489#
490CONFIG_INPUT_KEYBOARD=y
491# CONFIG_KEYBOARD_ATKBD is not set
492# CONFIG_KEYBOARD_SUNKBD is not set
493# CONFIG_KEYBOARD_LKKBD is not set
494# CONFIG_KEYBOARD_XTKBD is not set
495# CONFIG_KEYBOARD_NEWTON is not set
496# CONFIG_KEYBOARD_STOWAWAY is not set
497CONFIG_KEYBOARD_OMAP=y
498# CONFIG_KEYBOARD_GPIO is not set
499# CONFIG_INPUT_MOUSE is not set
500# CONFIG_INPUT_JOYSTICK is not set
501# CONFIG_INPUT_TABLET is not set
502# CONFIG_INPUT_TOUCHSCREEN is not set
503# CONFIG_INPUT_MISC is not set
504
505#
506# Hardware I/O ports
507#
508CONFIG_SERIO=y
509CONFIG_SERIO_SERPORT=y
510# CONFIG_SERIO_RAW is not set
511# CONFIG_GAMEPORT is not set
512
513#
514# Character devices
515#
516CONFIG_VT=y
517CONFIG_VT_CONSOLE=y
518CONFIG_HW_CONSOLE=y
519# CONFIG_VT_HW_CONSOLE_BINDING is not set
520# CONFIG_SERIAL_NONSTANDARD is not set
521
522#
523# Serial drivers
524#
525CONFIG_SERIAL_8250=y
526CONFIG_SERIAL_8250_CONSOLE=y
527CONFIG_SERIAL_8250_NR_UARTS=4
528CONFIG_SERIAL_8250_RUNTIME_UARTS=4
529# CONFIG_SERIAL_8250_EXTENDED is not set
530
531#
532# Non-8250 serial port support
533#
534CONFIG_SERIAL_CORE=y
535CONFIG_SERIAL_CORE_CONSOLE=y
536CONFIG_UNIX98_PTYS=y
537CONFIG_LEGACY_PTYS=y
538CONFIG_LEGACY_PTY_COUNT=256
539# CONFIG_IPMI_HANDLER is not set
540# CONFIG_WATCHDOG is not set
541CONFIG_HW_RANDOM=m
542CONFIG_HW_RANDOM_OMAP=m
543# CONFIG_NVRAM is not set
544# CONFIG_R3964 is not set
545# CONFIG_RAW_DRIVER is not set
546# CONFIG_TCG_TPM is not set
547# CONFIG_I2C is not set
548
549#
550# SPI support
551#
552# CONFIG_SPI is not set
553# CONFIG_SPI_MASTER is not set
554# CONFIG_W1 is not set
555CONFIG_HWMON=y
556# CONFIG_HWMON_VID is not set
557# CONFIG_SENSORS_ABITUGURU is not set
558# CONFIG_SENSORS_ABITUGURU3 is not set
559# CONFIG_SENSORS_F71805F is not set
560# CONFIG_SENSORS_IT87 is not set
561# CONFIG_SENSORS_PC87360 is not set
562# CONFIG_SENSORS_PC87427 is not set
563# CONFIG_SENSORS_SMSC47M1 is not set
564# CONFIG_SENSORS_SMSC47B397 is not set
565# CONFIG_SENSORS_VT1211 is not set
566# CONFIG_SENSORS_W83627HF is not set
567# CONFIG_SENSORS_W83627EHF is not set
568# CONFIG_HWMON_DEBUG_CHIP is not set
569CONFIG_MISC_DEVICES=y
570# CONFIG_EEPROM_93CX6 is not set
571
572#
573# Multifunction device drivers
574#
575# CONFIG_MFD_SM501 is not set
576# CONFIG_NEW_LEDS is not set
577
578#
579# Multimedia devices
580#
581# CONFIG_VIDEO_DEV is not set
582# CONFIG_DVB_CORE is not set
583CONFIG_DAB=y
584
585#
586# Graphics support
587#
588# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
589
590#
591# Display device support
592#
593# CONFIG_DISPLAY_SUPPORT is not set
594# CONFIG_VGASTATE is not set
595CONFIG_VIDEO_OUTPUT_CONTROL=m
596CONFIG_FB=y
597# CONFIG_FIRMWARE_EDID is not set
598# CONFIG_FB_DDC is not set
599# CONFIG_FB_CFB_FILLRECT is not set
600# CONFIG_FB_CFB_COPYAREA is not set
601# CONFIG_FB_CFB_IMAGEBLIT is not set
602# CONFIG_FB_SYS_FILLRECT is not set
603# CONFIG_FB_SYS_COPYAREA is not set
604# CONFIG_FB_SYS_IMAGEBLIT is not set
605# CONFIG_FB_SYS_FOPS is not set
606CONFIG_FB_DEFERRED_IO=y
607# CONFIG_FB_SVGALIB is not set
608# CONFIG_FB_MACMODES is not set
609# CONFIG_FB_BACKLIGHT is not set
610CONFIG_FB_MODE_HELPERS=y
611# CONFIG_FB_TILEBLITTING is not set
612
613#
614# Frame buffer hardware drivers
615#
616# CONFIG_FB_S1D13XXX is not set
617CONFIG_FB_OMAP=y
618# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
619# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
620CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
621# CONFIG_FB_OMAP_DMA_TUNE is not set
622# CONFIG_FB_VIRTUAL is not set
623
624#
625# Console display driver support
626#
627# CONFIG_VGA_CONSOLE is not set
628CONFIG_DUMMY_CONSOLE=y
629CONFIG_FRAMEBUFFER_CONSOLE=y
630# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
631# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
632CONFIG_FONTS=y
633CONFIG_FONT_8x8=y
634CONFIG_FONT_8x16=y
635# CONFIG_FONT_6x11 is not set
636# CONFIG_FONT_7x14 is not set
637# CONFIG_FONT_PEARL_8x8 is not set
638# CONFIG_FONT_ACORN_8x8 is not set
639# CONFIG_FONT_MINI_4x6 is not set
640# CONFIG_FONT_SUN8x16 is not set
641# CONFIG_FONT_SUN12x22 is not set
642# CONFIG_FONT_10x18 is not set
643CONFIG_LOGO=y
644CONFIG_LOGO_LINUX_MONO=y
645CONFIG_LOGO_LINUX_VGA16=y
646CONFIG_LOGO_LINUX_CLUT224=y
647
648#
649# Sound
650#
651# CONFIG_SOUND is not set
652CONFIG_HID_SUPPORT=y
653CONFIG_HID=y
654CONFIG_HID_DEBUG=y
655CONFIG_USB_SUPPORT=y
656CONFIG_USB_ARCH_HAS_HCD=y
657CONFIG_USB_ARCH_HAS_OHCI=y
658# CONFIG_USB_ARCH_HAS_EHCI is not set
659# CONFIG_USB is not set
660
661#
662# Enable Host or Gadget support to see Inventra options
663#
664
665#
666# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
667#
668
669#
670# USB Gadget Support
671#
672# CONFIG_USB_GADGET is not set
673# CONFIG_MMC is not set
674CONFIG_RTC_LIB=y
675# CONFIG_RTC_CLASS is not set
676
677#
678# DMA Engine support
679#
680# CONFIG_DMA_ENGINE is not set
681
682#
683# DMA Clients
684#
685
686#
687# DMA Devices
688#
689
690#
691# CBUS support
692#
693# CONFIG_CBUS is not set
694
695#
696# File systems
697#
698CONFIG_EXT2_FS=y
699# CONFIG_EXT2_FS_XATTR is not set
700# CONFIG_EXT2_FS_XIP is not set
701# CONFIG_EXT3_FS is not set
702# CONFIG_EXT4DEV_FS is not set
703# CONFIG_REISERFS_FS is not set
704# CONFIG_JFS_FS is not set
705# CONFIG_FS_POSIX_ACL is not set
706# CONFIG_XFS_FS is not set
707# CONFIG_GFS2_FS is not set
708# CONFIG_OCFS2_FS is not set
709# CONFIG_MINIX_FS is not set
710# CONFIG_ROMFS_FS is not set
711CONFIG_INOTIFY=y
712CONFIG_INOTIFY_USER=y
713# CONFIG_QUOTA is not set
714CONFIG_DNOTIFY=y
715CONFIG_AUTOFS_FS=y
716CONFIG_AUTOFS4_FS=y
717# CONFIG_FUSE_FS is not set
718
719#
720# CD-ROM/DVD Filesystems
721#
722# CONFIG_ISO9660_FS is not set
723# CONFIG_UDF_FS is not set
724
725#
726# DOS/FAT/NT Filesystems
727#
728# CONFIG_MSDOS_FS is not set
729# CONFIG_VFAT_FS is not set
730# CONFIG_NTFS_FS is not set
731
732#
733# Pseudo filesystems
734#
735CONFIG_PROC_FS=y
736CONFIG_PROC_SYSCTL=y
737CONFIG_SYSFS=y
738# CONFIG_TMPFS is not set
739# CONFIG_HUGETLB_PAGE is not set
740CONFIG_RAMFS=y
741# CONFIG_CONFIGFS_FS is not set
742
743#
744# Miscellaneous filesystems
745#
746# CONFIG_ADFS_FS is not set
747# CONFIG_AFFS_FS is not set
748# CONFIG_HFS_FS is not set
749# CONFIG_HFSPLUS_FS is not set
750# CONFIG_BEFS_FS is not set
751# CONFIG_BFS_FS is not set
752# CONFIG_EFS_FS is not set
753# CONFIG_CRAMFS is not set
754# CONFIG_VXFS_FS is not set
755# CONFIG_HPFS_FS is not set
756# CONFIG_QNX4FS_FS is not set
757# CONFIG_SYSV_FS is not set
758# CONFIG_UFS_FS is not set
759
760#
761# Network File Systems
762#
763CONFIG_NFS_FS=y
764CONFIG_NFS_V3=y
765# CONFIG_NFS_V3_ACL is not set
766# CONFIG_NFS_V4 is not set
767# CONFIG_NFS_DIRECTIO is not set
768# CONFIG_NFSD is not set
769# CONFIG_ROOT_NFS is not set
770CONFIG_LOCKD=y
771CONFIG_LOCKD_V4=y
772CONFIG_NFS_COMMON=y
773CONFIG_SUNRPC=y
774# CONFIG_SUNRPC_BIND34 is not set
775# CONFIG_RPCSEC_GSS_KRB5 is not set
776# CONFIG_RPCSEC_GSS_SPKM3 is not set
777# CONFIG_SMB_FS is not set
778# CONFIG_CIFS is not set
779# CONFIG_NCP_FS is not set
780# CONFIG_CODA_FS is not set
781# CONFIG_AFS_FS is not set
782
783#
784# Partition Types
785#
786# CONFIG_PARTITION_ADVANCED is not set
787CONFIG_MSDOS_PARTITION=y
788
789#
790# Native Language Support
791#
792# CONFIG_NLS is not set
793
794#
795# Distributed Lock Manager
796#
797# CONFIG_DLM is not set
798
799#
800# Profiling support
801#
802# CONFIG_PROFILING is not set
803
804#
805# Kernel hacking
806#
807# CONFIG_PRINTK_TIME is not set
808CONFIG_ENABLE_MUST_CHECK=y
809# CONFIG_MAGIC_SYSRQ is not set
810# CONFIG_UNUSED_SYMBOLS is not set
811# CONFIG_DEBUG_FS is not set
812# CONFIG_HEADERS_CHECK is not set
813# CONFIG_DEBUG_KERNEL is not set
814# CONFIG_SLUB_DEBUG_ON is not set
815CONFIG_DEBUG_BUGVERBOSE=y
816CONFIG_FRAME_POINTER=y
817# CONFIG_DEBUG_USER is not set
818
819#
820# Security options
821#
822# CONFIG_KEYS is not set
823# CONFIG_SECURITY is not set
824# CONFIG_CRYPTO is not set
825
826#
827# Library routines
828#
829CONFIG_BITREVERSE=y
830# CONFIG_CRC_CCITT is not set
831# CONFIG_CRC16 is not set
832# CONFIG_CRC_ITU_T is not set
833CONFIG_CRC32=y
834# CONFIG_CRC7 is not set
835# CONFIG_LIBCRC32C is not set
836CONFIG_PLIST=y
837CONFIG_HAS_IOMEM=y
838CONFIG_HAS_IOPORT=y
839CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/omap_osk_5912_defconfig b/arch/arm/configs/omap_osk_5912_defconfig
index d4ca5e6e4ffa..b68e0144cab5 100644
--- a/arch/arm/configs/omap_osk_5912_defconfig
+++ b/arch/arm/configs/omap_osk_5912_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.25-rc3 3# Linux kernel version: 2.6.24-rc3-omap1
4# Mon Mar 3 03:35:17 2008 4# Fri Nov 23 12:24:12 2007
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -21,7 +21,6 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y 22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y 24CONFIG_ZONE_DMA=y
26CONFIG_VECTORS_BASE=0xffff0000 25CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -40,22 +39,17 @@ CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set 39# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set 40# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set 41# CONFIG_TASKSTATS is not set
42# CONFIG_USER_NS is not set
43# CONFIG_PID_NS is not set
43# CONFIG_AUDIT is not set 44# CONFIG_AUDIT is not set
44# CONFIG_IKCONFIG is not set 45# CONFIG_IKCONFIG is not set
45CONFIG_LOG_BUF_SHIFT=14 46CONFIG_LOG_BUF_SHIFT=14
46# CONFIG_CGROUPS is not set 47# CONFIG_CGROUPS is not set
47CONFIG_GROUP_SCHED=y
48CONFIG_FAIR_GROUP_SCHED=y 48CONFIG_FAIR_GROUP_SCHED=y
49# CONFIG_RT_GROUP_SCHED is not set 49CONFIG_FAIR_USER_SCHED=y
50CONFIG_USER_SCHED=y 50# CONFIG_FAIR_CGROUP_SCHED is not set
51# CONFIG_CGROUP_SCHED is not set 51CONFIG_SYSFS_DEPRECATED=y
52# CONFIG_SYSFS_DEPRECATED is not set
53# CONFIG_RELAY is not set 52# CONFIG_RELAY is not set
54CONFIG_NAMESPACES=y
55# CONFIG_UTS_NS is not set
56# CONFIG_IPC_NS is not set
57# CONFIG_USER_NS is not set
58# CONFIG_PID_NS is not set
59CONFIG_BLK_DEV_INITRD=y 53CONFIG_BLK_DEV_INITRD=y
60CONFIG_INITRAMFS_SOURCE="" 54CONFIG_INITRAMFS_SOURCE=""
61CONFIG_CC_OPTIMIZE_FOR_SIZE=y 55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -69,26 +63,18 @@ CONFIG_HOTPLUG=y
69CONFIG_PRINTK=y 63CONFIG_PRINTK=y
70CONFIG_BUG=y 64CONFIG_BUG=y
71CONFIG_ELF_CORE=y 65CONFIG_ELF_CORE=y
72CONFIG_COMPAT_BRK=y
73CONFIG_BASE_FULL=y 66CONFIG_BASE_FULL=y
74CONFIG_FUTEX=y 67CONFIG_FUTEX=y
75CONFIG_ANON_INODES=y 68CONFIG_ANON_INODES=y
76CONFIG_EPOLL=y 69CONFIG_EPOLL=y
77CONFIG_SIGNALFD=y 70CONFIG_SIGNALFD=y
78CONFIG_TIMERFD=y
79CONFIG_EVENTFD=y 71CONFIG_EVENTFD=y
80CONFIG_SHMEM=y 72CONFIG_SHMEM=y
81CONFIG_VM_EVENT_COUNTERS=y 73CONFIG_VM_EVENT_COUNTERS=y
82CONFIG_SLAB=y 74CONFIG_SLUB_DEBUG=y
83# CONFIG_SLUB is not set 75# CONFIG_SLAB is not set
76CONFIG_SLUB=y
84# CONFIG_SLOB is not set 77# CONFIG_SLOB is not set
85# CONFIG_PROFILING is not set
86# CONFIG_MARKERS is not set
87CONFIG_HAVE_OPROFILE=y
88# CONFIG_KPROBES is not set
89CONFIG_HAVE_KPROBES=y
90CONFIG_PROC_PAGE_MONITOR=y
91CONFIG_SLABINFO=y
92CONFIG_RT_MUTEXES=y 78CONFIG_RT_MUTEXES=y
93# CONFIG_TINY_SHMEM is not set 79# CONFIG_TINY_SHMEM is not set
94CONFIG_BASE_SMALL=0 80CONFIG_BASE_SMALL=0
@@ -116,8 +102,6 @@ CONFIG_IOSCHED_CFQ=y
116CONFIG_DEFAULT_CFQ=y 102CONFIG_DEFAULT_CFQ=y
117# CONFIG_DEFAULT_NOOP is not set 103# CONFIG_DEFAULT_NOOP is not set
118CONFIG_DEFAULT_IOSCHED="cfq" 104CONFIG_DEFAULT_IOSCHED="cfq"
119CONFIG_CLASSIC_RCU=y
120# CONFIG_PREEMPT_RCU is not set
121 105
122# 106#
123# System Type 107# System Type
@@ -146,7 +130,6 @@ CONFIG_CLASSIC_RCU=y
146# CONFIG_ARCH_KS8695 is not set 130# CONFIG_ARCH_KS8695 is not set
147# CONFIG_ARCH_NS9XXX is not set 131# CONFIG_ARCH_NS9XXX is not set
148# CONFIG_ARCH_MXC is not set 132# CONFIG_ARCH_MXC is not set
149# CONFIG_ARCH_ORION is not set
150# CONFIG_ARCH_PNX4008 is not set 133# CONFIG_ARCH_PNX4008 is not set
151# CONFIG_ARCH_PXA is not set 134# CONFIG_ARCH_PXA is not set
152# CONFIG_ARCH_RPC is not set 135# CONFIG_ARCH_RPC is not set
@@ -156,7 +139,6 @@ CONFIG_CLASSIC_RCU=y
156# CONFIG_ARCH_LH7A40X is not set 139# CONFIG_ARCH_LH7A40X is not set
157# CONFIG_ARCH_DAVINCI is not set 140# CONFIG_ARCH_DAVINCI is not set
158CONFIG_ARCH_OMAP=y 141CONFIG_ARCH_OMAP=y
159# CONFIG_ARCH_MSM7X00A is not set
160 142
161# 143#
162# TI OMAP Implementations 144# TI OMAP Implementations
@@ -164,16 +146,22 @@ CONFIG_ARCH_OMAP=y
164CONFIG_ARCH_OMAP_OTG=y 146CONFIG_ARCH_OMAP_OTG=y
165CONFIG_ARCH_OMAP1=y 147CONFIG_ARCH_OMAP1=y
166# CONFIG_ARCH_OMAP2 is not set 148# CONFIG_ARCH_OMAP2 is not set
149# CONFIG_ARCH_OMAP3 is not set
167 150
168# 151#
169# OMAP Feature Selections 152# OMAP Feature Selections
170# 153#
154CONFIG_OMAP_DEBUG_SRAM_PATCH=y
171CONFIG_OMAP_RESET_CLOCKS=y 155CONFIG_OMAP_RESET_CLOCKS=y
156# CONFIG_OMAP_BOOT_TAG is not set
157# CONFIG_OMAP_GPIO_SWITCH is not set
172CONFIG_OMAP_MUX=y 158CONFIG_OMAP_MUX=y
173# CONFIG_OMAP_MUX_DEBUG is not set 159# CONFIG_OMAP_MUX_DEBUG is not set
174CONFIG_OMAP_MUX_WARNINGS=y 160CONFIG_OMAP_MUX_WARNINGS=y
161# CONFIG_OMAP_STI is not set
175CONFIG_OMAP_MCBSP=y 162CONFIG_OMAP_MCBSP=y
176# CONFIG_OMAP_MMU_FWK is not set 163# CONFIG_OMAP_MMU_FWK is not set
164# CONFIG_OMAP_MBOX_FWK is not set
177# CONFIG_OMAP_MPU_TIMER is not set 165# CONFIG_OMAP_MPU_TIMER is not set
178CONFIG_OMAP_32K_TIMER=y 166CONFIG_OMAP_32K_TIMER=y
179CONFIG_OMAP_32K_TIMER_HZ=128 167CONFIG_OMAP_32K_TIMER_HZ=128
@@ -182,6 +170,7 @@ CONFIG_OMAP_LL_DEBUG_UART1=y
182# CONFIG_OMAP_LL_DEBUG_UART2 is not set 170# CONFIG_OMAP_LL_DEBUG_UART2 is not set
183# CONFIG_OMAP_LL_DEBUG_UART3 is not set 171# CONFIG_OMAP_LL_DEBUG_UART3 is not set
184CONFIG_OMAP_SERIAL_WAKE=y 172CONFIG_OMAP_SERIAL_WAKE=y
173# CONFIG_OMAP_DSP is not set
185 174
186# 175#
187# OMAP Core Type 176# OMAP Core Type
@@ -193,13 +182,13 @@ CONFIG_ARCH_OMAP16XX=y
193# 182#
194# OMAP Board Type 183# OMAP Board Type
195# 184#
196CONFIG_MACH_OMAP_INNOVATOR=y 185# CONFIG_MACH_OMAP_INNOVATOR is not set
197CONFIG_MACH_OMAP_H2=y 186# CONFIG_MACH_OMAP_H2 is not set
198CONFIG_MACH_OMAP_H3=y 187# CONFIG_MACH_OMAP_H3 is not set
199CONFIG_MACH_OMAP_OSK=y 188CONFIG_MACH_OMAP_OSK=y
200# CONFIG_OMAP_OSK_MISTRAL is not set 189# CONFIG_OMAP_OSK_MISTRAL is not set
201CONFIG_MACH_NOKIA770=y 190# CONFIG_MACH_NOKIA770 is not set
202CONFIG_MACH_OMAP_GENERIC=y 191# CONFIG_MACH_OMAP_GENERIC is not set
203 192
204# 193#
205# OMAP CPU Speed 194# OMAP CPU Speed
@@ -227,6 +216,7 @@ CONFIG_CPU_32=y
227CONFIG_CPU_ARM926T=y 216CONFIG_CPU_ARM926T=y
228CONFIG_CPU_32v5=y 217CONFIG_CPU_32v5=y
229CONFIG_CPU_ABRT_EV5TJ=y 218CONFIG_CPU_ABRT_EV5TJ=y
219CONFIG_CPU_PABRT_NOIFAR=y
230CONFIG_CPU_CACHE_VIVT=y 220CONFIG_CPU_CACHE_VIVT=y
231CONFIG_CPU_COPY_V4WB=y 221CONFIG_CPU_COPY_V4WB=y
232CONFIG_CPU_TLB_V4WBI=y 222CONFIG_CPU_TLB_V4WBI=y
@@ -264,12 +254,11 @@ CONFIG_OMAP_CF=y
264# 254#
265CONFIG_TICK_ONESHOT=y 255CONFIG_TICK_ONESHOT=y
266CONFIG_NO_HZ=y 256CONFIG_NO_HZ=y
267CONFIG_HIGH_RES_TIMERS=y 257# CONFIG_HIGH_RES_TIMERS is not set
268CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 258CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
269# CONFIG_PREEMPT is not set 259# CONFIG_PREEMPT is not set
270CONFIG_HZ=128 260CONFIG_HZ=128
271CONFIG_AEABI=y 261# CONFIG_AEABI is not set
272CONFIG_OABI_COMPAT=y
273# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 262# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
274CONFIG_SELECT_MEMORY_MODEL=y 263CONFIG_SELECT_MEMORY_MODEL=y
275CONFIG_FLATMEM_MANUAL=y 264CONFIG_FLATMEM_MANUAL=y
@@ -295,7 +284,6 @@ CONFIG_ZBOOT_ROM_BSS=0x0
295CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw" 284CONFIG_CMDLINE="mem=32M console=ttyS0,115200 initrd=0x10400000,8M root=/dev/ram0 rw"
296# CONFIG_XIP_KERNEL is not set 285# CONFIG_XIP_KERNEL is not set
297# CONFIG_KEXEC is not set 286# CONFIG_KEXEC is not set
298# CONFIG_ATAGS_PROC is not set
299 287
300# 288#
301# CPU Frequency scaling 289# CPU Frequency scaling
@@ -320,6 +308,7 @@ CONFIG_FPE_NWFPE=y
320CONFIG_BINFMT_ELF=y 308CONFIG_BINFMT_ELF=y
321# CONFIG_BINFMT_AOUT is not set 309# CONFIG_BINFMT_AOUT is not set
322# CONFIG_BINFMT_MISC is not set 310# CONFIG_BINFMT_MISC is not set
311# CONFIG_ARTHUR is not set
323 312
324# 313#
325# Power management options 314# Power management options
@@ -328,10 +317,9 @@ CONFIG_PM=y
328# CONFIG_PM_LEGACY is not set 317# CONFIG_PM_LEGACY is not set
329# CONFIG_PM_DEBUG is not set 318# CONFIG_PM_DEBUG is not set
330CONFIG_PM_SLEEP=y 319CONFIG_PM_SLEEP=y
320CONFIG_SUSPEND_UP_POSSIBLE=y
331CONFIG_SUSPEND=y 321CONFIG_SUSPEND=y
332CONFIG_SUSPEND_FREEZER=y
333# CONFIG_APM_EMULATION is not set 322# CONFIG_APM_EMULATION is not set
334CONFIG_ARCH_SUSPEND_POSSIBLE=y
335 323
336# 324#
337# Networking 325# Networking
@@ -348,7 +336,6 @@ CONFIG_XFRM=y
348# CONFIG_XFRM_USER is not set 336# CONFIG_XFRM_USER is not set
349# CONFIG_XFRM_SUB_POLICY is not set 337# CONFIG_XFRM_SUB_POLICY is not set
350# CONFIG_XFRM_MIGRATE is not set 338# CONFIG_XFRM_MIGRATE is not set
351# CONFIG_XFRM_STATISTICS is not set
352# CONFIG_NET_KEY is not set 339# CONFIG_NET_KEY is not set
353CONFIG_INET=y 340CONFIG_INET=y
354CONFIG_IP_MULTICAST=y 341CONFIG_IP_MULTICAST=y
@@ -404,7 +391,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
404# 391#
405# CONFIG_NET_PKTGEN is not set 392# CONFIG_NET_PKTGEN is not set
406# CONFIG_HAMRADIO is not set 393# CONFIG_HAMRADIO is not set
407# CONFIG_CAN is not set
408# CONFIG_IRDA is not set 394# CONFIG_IRDA is not set
409# CONFIG_BT is not set 395# CONFIG_BT is not set
410# CONFIG_AF_RXRPC is not set 396# CONFIG_AF_RXRPC is not set
@@ -517,13 +503,11 @@ CONFIG_BLK_DEV_LOOP=y
517CONFIG_BLK_DEV_RAM=y 503CONFIG_BLK_DEV_RAM=y
518CONFIG_BLK_DEV_RAM_COUNT=16 504CONFIG_BLK_DEV_RAM_COUNT=16
519CONFIG_BLK_DEV_RAM_SIZE=8192 505CONFIG_BLK_DEV_RAM_SIZE=8192
520# CONFIG_BLK_DEV_XIP is not set 506CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
521# CONFIG_CDROM_PKTCDVD is not set 507# CONFIG_CDROM_PKTCDVD is not set
522# CONFIG_ATA_OVER_ETH is not set 508# CONFIG_ATA_OVER_ETH is not set
523CONFIG_MISC_DEVICES=y 509CONFIG_MISC_DEVICES=y
524# CONFIG_EEPROM_93CX6 is not set 510# CONFIG_EEPROM_93CX6 is not set
525# CONFIG_ENCLOSURE_SERVICES is not set
526CONFIG_HAVE_IDE=y
527CONFIG_IDE=m 511CONFIG_IDE=m
528CONFIG_BLK_DEV_IDE=m 512CONFIG_BLK_DEV_IDE=m
529 513
@@ -545,6 +529,7 @@ CONFIG_IDE_PROC_FS=y
545# 529#
546# CONFIG_IDE_GENERIC is not set 530# CONFIG_IDE_GENERIC is not set
547# CONFIG_BLK_DEV_PLATFORM is not set 531# CONFIG_BLK_DEV_PLATFORM is not set
532# CONFIG_IDE_ARM is not set
548# CONFIG_BLK_DEV_IDEDMA is not set 533# CONFIG_BLK_DEV_IDEDMA is not set
549CONFIG_IDE_ARCH_OBSOLETE_INIT=y 534CONFIG_IDE_ARCH_OBSOLETE_INIT=y
550# CONFIG_BLK_DEV_HD is not set 535# CONFIG_BLK_DEV_HD is not set
@@ -578,7 +563,6 @@ CONFIG_SMC91X=y
578# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 563# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
579# CONFIG_B44 is not set 564# CONFIG_B44 is not set
580CONFIG_NETDEV_1000=y 565CONFIG_NETDEV_1000=y
581# CONFIG_E1000E_ENABLED is not set
582CONFIG_NETDEV_10000=y 566CONFIG_NETDEV_10000=y
583 567
584# 568#
@@ -600,6 +584,7 @@ CONFIG_PPP_MULTILINK=y
600# CONFIG_PPPOL2TP is not set 584# CONFIG_PPPOL2TP is not set
601# CONFIG_SLIP is not set 585# CONFIG_SLIP is not set
602CONFIG_SLHC=y 586CONFIG_SLHC=y
587# CONFIG_SHAPER is not set
603# CONFIG_NETCONSOLE is not set 588# CONFIG_NETCONSOLE is not set
604# CONFIG_NETPOLL is not set 589# CONFIG_NETPOLL is not set
605# CONFIG_NET_POLL_CONTROLLER is not set 590# CONFIG_NET_POLL_CONTROLLER is not set
@@ -696,7 +681,6 @@ CONFIG_HW_RANDOM_OMAP=m
696# CONFIG_SYNCLINK_CS is not set 681# CONFIG_SYNCLINK_CS is not set
697# CONFIG_CARDMAN_4000 is not set 682# CONFIG_CARDMAN_4000 is not set
698# CONFIG_CARDMAN_4040 is not set 683# CONFIG_CARDMAN_4040 is not set
699# CONFIG_IPWIRELESS is not set
700# CONFIG_RAW_DRIVER is not set 684# CONFIG_RAW_DRIVER is not set
701# CONFIG_TCG_TPM is not set 685# CONFIG_TCG_TPM is not set
702CONFIG_I2C=y 686CONFIG_I2C=y
@@ -724,13 +708,17 @@ CONFIG_I2C_OMAP=y
724# 708#
725# Miscellaneous I2C Chip support 709# Miscellaneous I2C Chip support
726# 710#
711# CONFIG_SENSORS_DS1337 is not set
712# CONFIG_SENSORS_DS1374 is not set
727# CONFIG_DS1682 is not set 713# CONFIG_DS1682 is not set
728# CONFIG_SENSORS_EEPROM is not set 714# CONFIG_SENSORS_EEPROM is not set
729# CONFIG_SENSORS_PCF8574 is not set 715# CONFIG_SENSORS_PCF8574 is not set
730# CONFIG_PCF8575 is not set 716# CONFIG_SENSORS_PCA9539 is not set
731# CONFIG_SENSORS_PCF8591 is not set 717# CONFIG_SENSORS_PCF8591 is not set
732# CONFIG_ISP1301_OMAP is not set 718# CONFIG_ISP1301_OMAP is not set
733CONFIG_TPS65010=y 719CONFIG_TPS65010=y
720# CONFIG_SENSORS_TLV320AIC23 is not set
721# CONFIG_GPIOEXPANDER_OMAP is not set
734# CONFIG_SENSORS_MAX6875 is not set 722# CONFIG_SENSORS_MAX6875 is not set
735# CONFIG_SENSORS_TSL2550 is not set 723# CONFIG_SENSORS_TSL2550 is not set
736# CONFIG_I2C_DEBUG_CORE is not set 724# CONFIG_I2C_DEBUG_CORE is not set
@@ -755,7 +743,6 @@ CONFIG_HWMON=y
755# CONFIG_SENSORS_ADM1031 is not set 743# CONFIG_SENSORS_ADM1031 is not set
756# CONFIG_SENSORS_ADM9240 is not set 744# CONFIG_SENSORS_ADM9240 is not set
757# CONFIG_SENSORS_ADT7470 is not set 745# CONFIG_SENSORS_ADT7470 is not set
758# CONFIG_SENSORS_ADT7473 is not set
759# CONFIG_SENSORS_ATXP1 is not set 746# CONFIG_SENSORS_ATXP1 is not set
760# CONFIG_SENSORS_DS1621 is not set 747# CONFIG_SENSORS_DS1621 is not set
761# CONFIG_SENSORS_F71805F is not set 748# CONFIG_SENSORS_F71805F is not set
@@ -783,7 +770,6 @@ CONFIG_HWMON=y
783# CONFIG_SENSORS_SMSC47M1 is not set 770# CONFIG_SENSORS_SMSC47M1 is not set
784# CONFIG_SENSORS_SMSC47M192 is not set 771# CONFIG_SENSORS_SMSC47M192 is not set
785# CONFIG_SENSORS_SMSC47B397 is not set 772# CONFIG_SENSORS_SMSC47B397 is not set
786# CONFIG_SENSORS_ADS7828 is not set
787# CONFIG_SENSORS_THMC50 is not set 773# CONFIG_SENSORS_THMC50 is not set
788# CONFIG_SENSORS_VT1211 is not set 774# CONFIG_SENSORS_VT1211 is not set
789# CONFIG_SENSORS_W83781D is not set 775# CONFIG_SENSORS_W83781D is not set
@@ -791,7 +777,6 @@ CONFIG_HWMON=y
791# CONFIG_SENSORS_W83792D is not set 777# CONFIG_SENSORS_W83792D is not set
792# CONFIG_SENSORS_W83793 is not set 778# CONFIG_SENSORS_W83793 is not set
793# CONFIG_SENSORS_W83L785TS is not set 779# CONFIG_SENSORS_W83L785TS is not set
794# CONFIG_SENSORS_W83L786NG is not set
795# CONFIG_SENSORS_W83627HF is not set 780# CONFIG_SENSORS_W83627HF is not set
796# CONFIG_SENSORS_W83627EHF is not set 781# CONFIG_SENSORS_W83627EHF is not set
797# CONFIG_HWMON_DEBUG_CHIP is not set 782# CONFIG_HWMON_DEBUG_CHIP is not set
@@ -807,7 +792,6 @@ CONFIG_SSB_POSSIBLE=y
807# Multifunction device drivers 792# Multifunction device drivers
808# 793#
809# CONFIG_MFD_SM501 is not set 794# CONFIG_MFD_SM501 is not set
810# CONFIG_MFD_ASIC3 is not set
811 795
812# 796#
813# Multimedia devices 797# Multimedia devices
@@ -822,11 +806,11 @@ CONFIG_DAB=y
822# CONFIG_VGASTATE is not set 806# CONFIG_VGASTATE is not set
823CONFIG_VIDEO_OUTPUT_CONTROL=m 807CONFIG_VIDEO_OUTPUT_CONTROL=m
824CONFIG_FB=y 808CONFIG_FB=y
825CONFIG_FIRMWARE_EDID=y 809# CONFIG_FIRMWARE_EDID is not set
826# CONFIG_FB_DDC is not set 810# CONFIG_FB_DDC is not set
827# CONFIG_FB_CFB_FILLRECT is not set 811CONFIG_FB_CFB_FILLRECT=y
828# CONFIG_FB_CFB_COPYAREA is not set 812CONFIG_FB_CFB_COPYAREA=y
829# CONFIG_FB_CFB_IMAGEBLIT is not set 813CONFIG_FB_CFB_IMAGEBLIT=y
830# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set 814# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
831# CONFIG_FB_SYS_FILLRECT is not set 815# CONFIG_FB_SYS_FILLRECT is not set
832# CONFIG_FB_SYS_COPYAREA is not set 816# CONFIG_FB_SYS_COPYAREA is not set
@@ -844,7 +828,11 @@ CONFIG_FB_MODE_HELPERS=y
844# 828#
845# CONFIG_FB_S1D13XXX is not set 829# CONFIG_FB_S1D13XXX is not set
846# CONFIG_FB_VIRTUAL is not set 830# CONFIG_FB_VIRTUAL is not set
847# CONFIG_FB_OMAP is not set 831CONFIG_FB_OMAP=y
832# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
833# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
834CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
835# CONFIG_FB_OMAP_DMA_TUNE is not set
848# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 836# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
849 837
850# 838#
@@ -891,8 +879,16 @@ CONFIG_USB_ARCH_HAS_OHCI=y
891# CONFIG_USB is not set 879# CONFIG_USB is not set
892 880
893# 881#
882# Enable Host or Gadget support to see Inventra options
883#
884
885#
894# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
895# 887#
888
889#
890# USB Gadget Support
891#
896# CONFIG_USB_GADGET is not set 892# CONFIG_USB_GADGET is not set
897# CONFIG_MMC is not set 893# CONFIG_MMC is not set
898# CONFIG_NEW_LEDS is not set 894# CONFIG_NEW_LEDS is not set
@@ -900,6 +896,11 @@ CONFIG_RTC_LIB=y
900# CONFIG_RTC_CLASS is not set 896# CONFIG_RTC_CLASS is not set
901 897
902# 898#
899# CBUS support
900#
901# CONFIG_CBUS is not set
902
903#
903# File systems 904# File systems
904# 905#
905CONFIG_EXT2_FS=y 906CONFIG_EXT2_FS=y
@@ -913,10 +914,12 @@ CONFIG_EXT2_FS=y
913# CONFIG_XFS_FS is not set 914# CONFIG_XFS_FS is not set
914# CONFIG_GFS2_FS is not set 915# CONFIG_GFS2_FS is not set
915# CONFIG_OCFS2_FS is not set 916# CONFIG_OCFS2_FS is not set
916CONFIG_DNOTIFY=y 917# CONFIG_MINIX_FS is not set
918# CONFIG_ROMFS_FS is not set
917CONFIG_INOTIFY=y 919CONFIG_INOTIFY=y
918CONFIG_INOTIFY_USER=y 920CONFIG_INOTIFY_USER=y
919# CONFIG_QUOTA is not set 921# CONFIG_QUOTA is not set
922CONFIG_DNOTIFY=y
920CONFIG_AUTOFS_FS=y 923CONFIG_AUTOFS_FS=y
921CONFIG_AUTOFS4_FS=y 924CONFIG_AUTOFS4_FS=y
922# CONFIG_FUSE_FS is not set 925# CONFIG_FUSE_FS is not set
@@ -970,10 +973,8 @@ CONFIG_JFFS2_RTIME=y
970# CONFIG_JFFS2_RUBIN is not set 973# CONFIG_JFFS2_RUBIN is not set
971# CONFIG_CRAMFS is not set 974# CONFIG_CRAMFS is not set
972# CONFIG_VXFS_FS is not set 975# CONFIG_VXFS_FS is not set
973# CONFIG_MINIX_FS is not set
974# CONFIG_HPFS_FS is not set 976# CONFIG_HPFS_FS is not set
975# CONFIG_QNX4FS_FS is not set 977# CONFIG_QNX4FS_FS is not set
976# CONFIG_ROMFS_FS is not set
977# CONFIG_SYSV_FS is not set 978# CONFIG_SYSV_FS is not set
978# CONFIG_UFS_FS is not set 979# CONFIG_UFS_FS is not set
979CONFIG_NETWORK_FILESYSTEMS=y 980CONFIG_NETWORK_FILESYSTEMS=y
@@ -1043,6 +1044,9 @@ CONFIG_NLS_ISO8859_1=m
1043# CONFIG_NLS_KOI8_U is not set 1044# CONFIG_NLS_KOI8_U is not set
1044# CONFIG_NLS_UTF8 is not set 1045# CONFIG_NLS_UTF8 is not set
1045# CONFIG_DLM is not set 1046# CONFIG_DLM is not set
1047CONFIG_INSTRUMENTATION=y
1048# CONFIG_PROFILING is not set
1049# CONFIG_MARKERS is not set
1046 1050
1047# 1051#
1048# Kernel hacking 1052# Kernel hacking
@@ -1055,6 +1059,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1055# CONFIG_DEBUG_FS is not set 1059# CONFIG_DEBUG_FS is not set
1056# CONFIG_HEADERS_CHECK is not set 1060# CONFIG_HEADERS_CHECK is not set
1057# CONFIG_DEBUG_KERNEL is not set 1061# CONFIG_DEBUG_KERNEL is not set
1062# CONFIG_SLUB_DEBUG_ON is not set
1058CONFIG_DEBUG_BUGVERBOSE=y 1063CONFIG_DEBUG_BUGVERBOSE=y
1059CONFIG_FRAME_POINTER=y 1064CONFIG_FRAME_POINTER=y
1060# CONFIG_SAMPLES is not set 1065# CONFIG_SAMPLES is not set
@@ -1066,51 +1071,7 @@ CONFIG_FRAME_POINTER=y
1066# CONFIG_KEYS is not set 1071# CONFIG_KEYS is not set
1067# CONFIG_SECURITY is not set 1072# CONFIG_SECURITY is not set
1068# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1073# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1069CONFIG_CRYPTO=y 1074# CONFIG_CRYPTO is not set
1070# CONFIG_CRYPTO_SEQIV is not set
1071# CONFIG_CRYPTO_MANAGER is not set
1072# CONFIG_CRYPTO_HMAC is not set
1073# CONFIG_CRYPTO_XCBC is not set
1074# CONFIG_CRYPTO_NULL is not set
1075# CONFIG_CRYPTO_MD4 is not set
1076# CONFIG_CRYPTO_MD5 is not set
1077# CONFIG_CRYPTO_SHA1 is not set
1078# CONFIG_CRYPTO_SHA256 is not set
1079# CONFIG_CRYPTO_SHA512 is not set
1080# CONFIG_CRYPTO_WP512 is not set
1081# CONFIG_CRYPTO_TGR192 is not set
1082# CONFIG_CRYPTO_GF128MUL is not set
1083# CONFIG_CRYPTO_ECB is not set
1084# CONFIG_CRYPTO_CBC is not set
1085# CONFIG_CRYPTO_PCBC is not set
1086# CONFIG_CRYPTO_LRW is not set
1087# CONFIG_CRYPTO_XTS is not set
1088# CONFIG_CRYPTO_CTR is not set
1089# CONFIG_CRYPTO_GCM is not set
1090# CONFIG_CRYPTO_CCM is not set
1091# CONFIG_CRYPTO_CRYPTD is not set
1092# CONFIG_CRYPTO_DES is not set
1093# CONFIG_CRYPTO_FCRYPT is not set
1094# CONFIG_CRYPTO_BLOWFISH is not set
1095# CONFIG_CRYPTO_TWOFISH is not set
1096# CONFIG_CRYPTO_SERPENT is not set
1097# CONFIG_CRYPTO_AES is not set
1098# CONFIG_CRYPTO_CAST5 is not set
1099# CONFIG_CRYPTO_CAST6 is not set
1100# CONFIG_CRYPTO_TEA is not set
1101# CONFIG_CRYPTO_ARC4 is not set
1102# CONFIG_CRYPTO_KHAZAD is not set
1103# CONFIG_CRYPTO_ANUBIS is not set
1104# CONFIG_CRYPTO_SEED is not set
1105# CONFIG_CRYPTO_SALSA20 is not set
1106# CONFIG_CRYPTO_DEFLATE is not set
1107# CONFIG_CRYPTO_MICHAEL_MIC is not set
1108# CONFIG_CRYPTO_CRC32C is not set
1109# CONFIG_CRYPTO_CAMELLIA is not set
1110# CONFIG_CRYPTO_TEST is not set
1111# CONFIG_CRYPTO_AUTHENC is not set
1112# CONFIG_CRYPTO_LZO is not set
1113CONFIG_CRYPTO_HW=y
1114 1075
1115# 1076#
1116# Library routines 1077# Library routines
diff --git a/arch/arm/configs/omap_perseus2_730_defconfig b/arch/arm/configs/omap_perseus2_730_defconfig
new file mode 100644
index 000000000000..b94800c0e000
--- /dev/null
+++ b/arch/arm/configs/omap_perseus2_730_defconfig
@@ -0,0 +1,928 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.23-rc6-omap1
4# Tue Sep 18 11:45:12 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# General setup
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35CONFIG_LOCALVERSION=""
36CONFIG_LOCALVERSION_AUTO=y
37CONFIG_SWAP=y
38CONFIG_SYSVIPC=y
39CONFIG_SYSVIPC_SYSCTL=y
40# CONFIG_POSIX_MQUEUE is not set
41# CONFIG_BSD_PROCESS_ACCT is not set
42# CONFIG_TASKSTATS is not set
43# CONFIG_USER_NS is not set
44# CONFIG_AUDIT is not set
45# CONFIG_IKCONFIG is not set
46CONFIG_LOG_BUF_SHIFT=14
47CONFIG_SYSFS_DEPRECATED=y
48# CONFIG_RELAY is not set
49CONFIG_BLK_DEV_INITRD=y
50CONFIG_INITRAMFS_SOURCE=""
51CONFIG_CC_OPTIMIZE_FOR_SIZE=y
52CONFIG_SYSCTL=y
53# CONFIG_EMBEDDED is not set
54CONFIG_UID16=y
55CONFIG_SYSCTL_SYSCALL=y
56CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y
59CONFIG_PRINTK=y
60CONFIG_BUG=y
61CONFIG_ELF_CORE=y
62CONFIG_BASE_FULL=y
63CONFIG_FUTEX=y
64CONFIG_ANON_INODES=y
65CONFIG_EPOLL=y
66CONFIG_SIGNALFD=y
67CONFIG_TIMERFD=y
68CONFIG_EVENTFD=y
69CONFIG_SHMEM=y
70CONFIG_VM_EVENT_COUNTERS=y
71CONFIG_SLAB=y
72# CONFIG_SLUB is not set
73# CONFIG_SLOB is not set
74CONFIG_RT_MUTEXES=y
75# CONFIG_TINY_SHMEM is not set
76CONFIG_BASE_SMALL=0
77CONFIG_MODULES=y
78CONFIG_MODULE_UNLOAD=y
79# CONFIG_MODULE_FORCE_UNLOAD is not set
80# CONFIG_MODVERSIONS is not set
81# CONFIG_MODULE_SRCVERSION_ALL is not set
82CONFIG_KMOD=y
83CONFIG_BLOCK=y
84# CONFIG_LBD is not set
85# CONFIG_BLK_DEV_IO_TRACE is not set
86# CONFIG_LSF is not set
87# CONFIG_BLK_DEV_BSG is not set
88
89#
90# IO Schedulers
91#
92CONFIG_IOSCHED_NOOP=y
93CONFIG_IOSCHED_AS=y
94CONFIG_IOSCHED_DEADLINE=y
95CONFIG_IOSCHED_CFQ=y
96# CONFIG_DEFAULT_AS is not set
97# CONFIG_DEFAULT_DEADLINE is not set
98CONFIG_DEFAULT_CFQ=y
99# CONFIG_DEFAULT_NOOP is not set
100CONFIG_DEFAULT_IOSCHED="cfq"
101
102#
103# System Type
104#
105# CONFIG_ARCH_AAEC2000 is not set
106# CONFIG_ARCH_INTEGRATOR is not set
107# CONFIG_ARCH_REALVIEW is not set
108# CONFIG_ARCH_VERSATILE is not set
109# CONFIG_ARCH_AT91 is not set
110# CONFIG_ARCH_CLPS7500 is not set
111# CONFIG_ARCH_CLPS711X is not set
112# CONFIG_ARCH_CO285 is not set
113# CONFIG_ARCH_EBSA110 is not set
114# CONFIG_ARCH_EP93XX is not set
115# CONFIG_ARCH_FOOTBRIDGE is not set
116# CONFIG_ARCH_NETX is not set
117# CONFIG_ARCH_H720X is not set
118# CONFIG_ARCH_IMX is not set
119# CONFIG_ARCH_IOP13XX is not set
120# CONFIG_ARCH_IOP32X is not set
121# CONFIG_ARCH_IOP33X is not set
122# CONFIG_ARCH_IXP23XX is not set
123# CONFIG_ARCH_IXP2000 is not set
124# CONFIG_ARCH_IXP4XX is not set
125# CONFIG_ARCH_L7200 is not set
126# CONFIG_ARCH_KS8695 is not set
127# CONFIG_ARCH_NS9XXX is not set
128# CONFIG_ARCH_MXC is not set
129# CONFIG_ARCH_PNX4008 is not set
130# CONFIG_ARCH_PXA is not set
131# CONFIG_ARCH_RPC is not set
132# CONFIG_ARCH_SA1100 is not set
133# CONFIG_ARCH_S3C2410 is not set
134# CONFIG_ARCH_SHARK is not set
135# CONFIG_ARCH_LH7A40X is not set
136# CONFIG_ARCH_DAVINCI is not set
137CONFIG_ARCH_OMAP=y
138
139#
140# TI OMAP Implementations
141#
142CONFIG_ARCH_OMAP_OTG=y
143CONFIG_ARCH_OMAP1=y
144# CONFIG_ARCH_OMAP2 is not set
145# CONFIG_ARCH_OMAP3 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152# CONFIG_OMAP_GPIO_SWITCH is not set
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165
166#
167# OMAP Core Type
168#
169CONFIG_ARCH_OMAP730=y
170# CONFIG_ARCH_OMAP15XX is not set
171# CONFIG_ARCH_OMAP16XX is not set
172
173#
174# OMAP Board Type
175#
176CONFIG_MACH_OMAP_PERSEUS2=y
177# CONFIG_MACH_OMAP_FSAMPLE is not set
178
179#
180# OMAP CPU Speed
181#
182# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
183# CONFIG_OMAP_ARM_195MHZ is not set
184CONFIG_OMAP_ARM_182MHZ=y
185# CONFIG_OMAP_ARM_168MHZ is not set
186# CONFIG_OMAP_ARM_120MHZ is not set
187# CONFIG_OMAP_ARM_60MHZ is not set
188# CONFIG_OMAP_ARM_30MHZ is not set
189# CONFIG_MACH_OMAP_APOLLON_PLUS is not set
190
191#
192# Boot options
193#
194
195#
196# Power management
197#
198
199#
200# Processor Type
201#
202CONFIG_CPU_32=y
203CONFIG_CPU_ARM926T=y
204CONFIG_CPU_32v5=y
205CONFIG_CPU_ABRT_EV5TJ=y
206CONFIG_CPU_PABRT_NOIFAR=y
207CONFIG_CPU_CACHE_VIVT=y
208CONFIG_CPU_COPY_V4WB=y
209CONFIG_CPU_TLB_V4WBI=y
210CONFIG_CPU_CP15=y
211CONFIG_CPU_CP15_MMU=y
212
213#
214# Processor Features
215#
216# CONFIG_ARM_THUMB is not set
217# CONFIG_CPU_ICACHE_DISABLE is not set
218# CONFIG_CPU_DCACHE_DISABLE is not set
219# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
220# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
221# CONFIG_OUTER_CACHE is not set
222
223#
224# Bus support
225#
226# CONFIG_PCI_SYSCALL is not set
227# CONFIG_ARCH_SUPPORTS_MSI is not set
228
229#
230# PCCARD (PCMCIA/CardBus) support
231#
232# CONFIG_PCCARD is not set
233
234#
235# Kernel Features
236#
237# CONFIG_TICK_ONESHOT is not set
238# CONFIG_NO_HZ is not set
239# CONFIG_HIGH_RES_TIMERS is not set
240CONFIG_PREEMPT=y
241CONFIG_HZ=100
242# CONFIG_AEABI is not set
243# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
244CONFIG_SELECT_MEMORY_MODEL=y
245CONFIG_FLATMEM_MANUAL=y
246# CONFIG_DISCONTIGMEM_MANUAL is not set
247# CONFIG_SPARSEMEM_MANUAL is not set
248CONFIG_FLATMEM=y
249CONFIG_FLAT_NODE_MEM_MAP=y
250# CONFIG_SPARSEMEM_STATIC is not set
251CONFIG_SPLIT_PTLOCK_CPUS=4096
252# CONFIG_RESOURCES_64BIT is not set
253CONFIG_ZONE_DMA_FLAG=1
254CONFIG_BOUNCE=y
255CONFIG_VIRT_TO_BUS=y
256CONFIG_LEDS=y
257CONFIG_LEDS_CPU=y
258CONFIG_ALIGNMENT_TRAP=y
259
260#
261# Boot options
262#
263CONFIG_ZBOOT_ROM_TEXT=0x0
264CONFIG_ZBOOT_ROM_BSS=0x0
265CONFIG_CMDLINE="mem=32M console=ttyS0,115200 ip=dhcp"
266# CONFIG_XIP_KERNEL is not set
267# CONFIG_KEXEC is not set
268
269#
270# CPU Frequency scaling
271#
272# CONFIG_CPU_FREQ is not set
273
274#
275# Floating point emulation
276#
277
278#
279# At least one emulation must be selected
280#
281CONFIG_FPE_NWFPE=y
282# CONFIG_FPE_NWFPE_XP is not set
283# CONFIG_FPE_FASTFPE is not set
284# CONFIG_VFP is not set
285
286#
287# Userspace binary formats
288#
289CONFIG_BINFMT_ELF=y
290# CONFIG_BINFMT_AOUT is not set
291# CONFIG_BINFMT_MISC is not set
292# CONFIG_ARTHUR is not set
293
294#
295# Power management options
296#
297CONFIG_PM=y
298# CONFIG_PM_LEGACY is not set
299# CONFIG_PM_DEBUG is not set
300CONFIG_PM_SLEEP=y
301CONFIG_SUSPEND_UP_POSSIBLE=y
302CONFIG_SUSPEND=y
303# CONFIG_APM_EMULATION is not set
304
305#
306# Networking
307#
308CONFIG_NET=y
309
310#
311# Networking options
312#
313CONFIG_PACKET=y
314# CONFIG_PACKET_MMAP is not set
315CONFIG_UNIX=y
316CONFIG_XFRM=y
317# CONFIG_XFRM_USER is not set
318# CONFIG_XFRM_SUB_POLICY is not set
319# CONFIG_XFRM_MIGRATE is not set
320# CONFIG_NET_KEY is not set
321CONFIG_INET=y
322CONFIG_IP_MULTICAST=y
323# CONFIG_IP_ADVANCED_ROUTER is not set
324CONFIG_IP_FIB_HASH=y
325CONFIG_IP_PNP=y
326CONFIG_IP_PNP_DHCP=y
327CONFIG_IP_PNP_BOOTP=y
328# CONFIG_IP_PNP_RARP is not set
329# CONFIG_NET_IPIP is not set
330# CONFIG_NET_IPGRE is not set
331# CONFIG_IP_MROUTE is not set
332# CONFIG_ARPD is not set
333# CONFIG_SYN_COOKIES is not set
334# CONFIG_INET_AH is not set
335# CONFIG_INET_ESP is not set
336# CONFIG_INET_IPCOMP is not set
337# CONFIG_INET_XFRM_TUNNEL is not set
338# CONFIG_INET_TUNNEL is not set
339CONFIG_INET_XFRM_MODE_TRANSPORT=y
340CONFIG_INET_XFRM_MODE_TUNNEL=y
341CONFIG_INET_XFRM_MODE_BEET=y
342CONFIG_INET_DIAG=y
343CONFIG_INET_TCP_DIAG=y
344# CONFIG_TCP_CONG_ADVANCED is not set
345CONFIG_TCP_CONG_CUBIC=y
346CONFIG_DEFAULT_TCP_CONG="cubic"
347# CONFIG_TCP_MD5SIG is not set
348# CONFIG_IPV6 is not set
349# CONFIG_INET6_XFRM_TUNNEL is not set
350# CONFIG_INET6_TUNNEL is not set
351# CONFIG_NETWORK_SECMARK is not set
352# CONFIG_NETFILTER is not set
353# CONFIG_IP_DCCP is not set
354# CONFIG_IP_SCTP is not set
355# CONFIG_TIPC is not set
356# CONFIG_ATM is not set
357# CONFIG_BRIDGE is not set
358# CONFIG_VLAN_8021Q is not set
359# CONFIG_DECNET is not set
360# CONFIG_LLC2 is not set
361# CONFIG_IPX is not set
362# CONFIG_ATALK is not set
363# CONFIG_X25 is not set
364# CONFIG_LAPB is not set
365# CONFIG_ECONET is not set
366# CONFIG_WAN_ROUTER is not set
367
368#
369# QoS and/or fair queueing
370#
371# CONFIG_NET_SCHED is not set
372
373#
374# Network testing
375#
376# CONFIG_NET_PKTGEN is not set
377# CONFIG_HAMRADIO is not set
378# CONFIG_IRDA is not set
379# CONFIG_BT is not set
380# CONFIG_AF_RXRPC is not set
381
382#
383# Wireless
384#
385# CONFIG_CFG80211 is not set
386# CONFIG_WIRELESS_EXT is not set
387# CONFIG_MAC80211 is not set
388# CONFIG_IEEE80211 is not set
389# CONFIG_RFKILL is not set
390# CONFIG_NET_9P is not set
391
392#
393# Device Drivers
394#
395
396#
397# Generic Driver Options
398#
399CONFIG_STANDALONE=y
400CONFIG_PREVENT_FIRMWARE_BUILD=y
401# CONFIG_FW_LOADER is not set
402# CONFIG_SYS_HYPERVISOR is not set
403# CONFIG_CONNECTOR is not set
404CONFIG_MTD=y
405# CONFIG_MTD_DEBUG is not set
406# CONFIG_MTD_CONCAT is not set
407CONFIG_MTD_PARTITIONS=y
408# CONFIG_MTD_REDBOOT_PARTS is not set
409CONFIG_MTD_CMDLINE_PARTS=y
410# CONFIG_MTD_AFS_PARTS is not set
411
412#
413# User Modules And Translation Layers
414#
415CONFIG_MTD_CHAR=y
416CONFIG_MTD_BLKDEVS=y
417CONFIG_MTD_BLOCK=y
418# CONFIG_FTL is not set
419# CONFIG_NFTL is not set
420# CONFIG_INFTL is not set
421# CONFIG_RFD_FTL is not set
422# CONFIG_SSFDC is not set
423
424#
425# RAM/ROM/Flash chip drivers
426#
427CONFIG_MTD_CFI=y
428# CONFIG_MTD_JEDECPROBE is not set
429CONFIG_MTD_GEN_PROBE=y
430# CONFIG_MTD_CFI_ADV_OPTIONS is not set
431CONFIG_MTD_MAP_BANK_WIDTH_1=y
432CONFIG_MTD_MAP_BANK_WIDTH_2=y
433CONFIG_MTD_MAP_BANK_WIDTH_4=y
434# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
435# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
436# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
437CONFIG_MTD_CFI_I1=y
438CONFIG_MTD_CFI_I2=y
439# CONFIG_MTD_CFI_I4 is not set
440# CONFIG_MTD_CFI_I8 is not set
441CONFIG_MTD_CFI_INTELEXT=y
442# CONFIG_MTD_CFI_AMDSTD is not set
443# CONFIG_MTD_CFI_STAA is not set
444CONFIG_MTD_CFI_UTIL=y
445# CONFIG_MTD_RAM is not set
446# CONFIG_MTD_ROM is not set
447# CONFIG_MTD_ABSENT is not set
448
449#
450# Mapping drivers for chip access
451#
452# CONFIG_MTD_COMPLEX_MAPPINGS is not set
453# CONFIG_MTD_PHYSMAP is not set
454# CONFIG_MTD_ARM_INTEGRATOR is not set
455CONFIG_MTD_OMAP_NOR=y
456# CONFIG_MTD_PLATRAM is not set
457
458#
459# Self-contained MTD device drivers
460#
461# CONFIG_MTD_SLRAM is not set
462# CONFIG_MTD_PHRAM is not set
463# CONFIG_MTD_MTDRAM is not set
464# CONFIG_MTD_BLOCK2MTD is not set
465
466#
467# Disk-On-Chip Device Drivers
468#
469# CONFIG_MTD_DOC2000 is not set
470# CONFIG_MTD_DOC2001 is not set
471# CONFIG_MTD_DOC2001PLUS is not set
472CONFIG_MTD_NAND=y
473# CONFIG_MTD_NAND_VERIFY_WRITE is not set
474# CONFIG_MTD_NAND_ECC_SMC is not set
475# CONFIG_MTD_NAND_MUSEUM_IDS is not set
476CONFIG_MTD_NAND_OMAP=y
477CONFIG_MTD_NAND_IDS=y
478# CONFIG_MTD_NAND_DISKONCHIP is not set
479# CONFIG_MTD_NAND_NANDSIM is not set
480# CONFIG_MTD_NAND_PLATFORM is not set
481# CONFIG_MTD_ONENAND is not set
482
483#
484# UBI - Unsorted block images
485#
486# CONFIG_MTD_UBI is not set
487# CONFIG_PARPORT is not set
488CONFIG_BLK_DEV=y
489# CONFIG_BLK_DEV_COW_COMMON is not set
490CONFIG_BLK_DEV_LOOP=y
491# CONFIG_BLK_DEV_CRYPTOLOOP is not set
492# CONFIG_BLK_DEV_NBD is not set
493CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=8192
496CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
497# CONFIG_CDROM_PKTCDVD is not set
498# CONFIG_ATA_OVER_ETH is not set
499
500#
501# SCSI device support
502#
503# CONFIG_RAID_ATTRS is not set
504# CONFIG_SCSI is not set
505# CONFIG_SCSI_DMA is not set
506# CONFIG_SCSI_NETLINK is not set
507# CONFIG_ATA is not set
508# CONFIG_MD is not set
509CONFIG_NETDEVICES=y
510# CONFIG_NETDEVICES_MULTIQUEUE is not set
511# CONFIG_DUMMY is not set
512# CONFIG_BONDING is not set
513# CONFIG_MACVLAN is not set
514# CONFIG_EQUALIZER is not set
515# CONFIG_TUN is not set
516# CONFIG_PHYLIB is not set
517CONFIG_NET_ETHERNET=y
518CONFIG_MII=y
519# CONFIG_AX88796 is not set
520CONFIG_SMC91X=y
521# CONFIG_DM9000 is not set
522CONFIG_NETDEV_1000=y
523CONFIG_NETDEV_10000=y
524
525#
526# Wireless LAN
527#
528# CONFIG_WLAN_PRE80211 is not set
529# CONFIG_WLAN_80211 is not set
530# CONFIG_WAN is not set
531# CONFIG_PPP is not set
532# CONFIG_SLIP is not set
533# CONFIG_SHAPER is not set
534# CONFIG_NETCONSOLE is not set
535# CONFIG_NETPOLL is not set
536# CONFIG_NET_POLL_CONTROLLER is not set
537# CONFIG_ISDN is not set
538
539#
540# Input device support
541#
542CONFIG_INPUT=y
543# CONFIG_INPUT_FF_MEMLESS is not set
544# CONFIG_INPUT_POLLDEV is not set
545
546#
547# Userland interfaces
548#
549CONFIG_INPUT_MOUSEDEV=y
550CONFIG_INPUT_MOUSEDEV_PSAUX=y
551CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
552CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
553# CONFIG_INPUT_JOYDEV is not set
554# CONFIG_INPUT_TSDEV is not set
555# CONFIG_INPUT_EVDEV is not set
556# CONFIG_INPUT_EVBUG is not set
557
558#
559# Input Device Drivers
560#
561CONFIG_INPUT_KEYBOARD=y
562# CONFIG_KEYBOARD_ATKBD is not set
563# CONFIG_KEYBOARD_SUNKBD is not set
564# CONFIG_KEYBOARD_LKKBD is not set
565# CONFIG_KEYBOARD_XTKBD is not set
566# CONFIG_KEYBOARD_NEWTON is not set
567# CONFIG_KEYBOARD_STOWAWAY is not set
568CONFIG_KEYBOARD_OMAP=y
569# CONFIG_KEYBOARD_GPIO is not set
570# CONFIG_INPUT_MOUSE is not set
571# CONFIG_INPUT_JOYSTICK is not set
572# CONFIG_INPUT_TABLET is not set
573# CONFIG_INPUT_TOUCHSCREEN is not set
574# CONFIG_INPUT_MISC is not set
575
576#
577# Hardware I/O ports
578#
579CONFIG_SERIO=y
580CONFIG_SERIO_SERPORT=y
581# CONFIG_SERIO_RAW is not set
582# CONFIG_GAMEPORT is not set
583
584#
585# Character devices
586#
587CONFIG_VT=y
588CONFIG_VT_CONSOLE=y
589CONFIG_HW_CONSOLE=y
590# CONFIG_VT_HW_CONSOLE_BINDING is not set
591# CONFIG_SERIAL_NONSTANDARD is not set
592
593#
594# Serial drivers
595#
596CONFIG_SERIAL_8250=y
597CONFIG_SERIAL_8250_CONSOLE=y
598CONFIG_SERIAL_8250_NR_UARTS=4
599CONFIG_SERIAL_8250_RUNTIME_UARTS=4
600# CONFIG_SERIAL_8250_EXTENDED is not set
601
602#
603# Non-8250 serial port support
604#
605CONFIG_SERIAL_CORE=y
606CONFIG_SERIAL_CORE_CONSOLE=y
607CONFIG_UNIX98_PTYS=y
608# CONFIG_LEGACY_PTYS is not set
609# CONFIG_IPMI_HANDLER is not set
610# CONFIG_WATCHDOG is not set
611CONFIG_HW_RANDOM=m
612# CONFIG_NVRAM is not set
613# CONFIG_R3964 is not set
614# CONFIG_RAW_DRIVER is not set
615# CONFIG_TCG_TPM is not set
616# CONFIG_I2C is not set
617
618#
619# SPI support
620#
621# CONFIG_SPI is not set
622# CONFIG_SPI_MASTER is not set
623# CONFIG_W1 is not set
624CONFIG_HWMON=y
625# CONFIG_HWMON_VID is not set
626# CONFIG_SENSORS_ABITUGURU is not set
627# CONFIG_SENSORS_ABITUGURU3 is not set
628# CONFIG_SENSORS_F71805F is not set
629# CONFIG_SENSORS_IT87 is not set
630# CONFIG_SENSORS_PC87360 is not set
631# CONFIG_SENSORS_PC87427 is not set
632# CONFIG_SENSORS_SMSC47M1 is not set
633# CONFIG_SENSORS_SMSC47B397 is not set
634# CONFIG_SENSORS_VT1211 is not set
635# CONFIG_SENSORS_W83627HF is not set
636# CONFIG_SENSORS_W83627EHF is not set
637# CONFIG_HWMON_DEBUG_CHIP is not set
638CONFIG_MISC_DEVICES=y
639# CONFIG_EEPROM_93CX6 is not set
640
641#
642# Multifunction device drivers
643#
644# CONFIG_MFD_SM501 is not set
645# CONFIG_NEW_LEDS is not set
646
647#
648# Multimedia devices
649#
650# CONFIG_VIDEO_DEV is not set
651# CONFIG_DVB_CORE is not set
652CONFIG_DAB=y
653
654#
655# Graphics support
656#
657# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
658
659#
660# Display device support
661#
662# CONFIG_DISPLAY_SUPPORT is not set
663# CONFIG_VGASTATE is not set
664CONFIG_VIDEO_OUTPUT_CONTROL=m
665CONFIG_FB=y
666# CONFIG_FIRMWARE_EDID is not set
667# CONFIG_FB_DDC is not set
668# CONFIG_FB_CFB_FILLRECT is not set
669# CONFIG_FB_CFB_COPYAREA is not set
670# CONFIG_FB_CFB_IMAGEBLIT is not set
671CONFIG_FB_SYS_FILLRECT=y
672CONFIG_FB_SYS_COPYAREA=y
673CONFIG_FB_SYS_IMAGEBLIT=y
674CONFIG_FB_SYS_FOPS=y
675CONFIG_FB_DEFERRED_IO=y
676# CONFIG_FB_SVGALIB is not set
677# CONFIG_FB_MACMODES is not set
678# CONFIG_FB_BACKLIGHT is not set
679CONFIG_FB_MODE_HELPERS=y
680# CONFIG_FB_TILEBLITTING is not set
681
682#
683# Frame buffer hardware drivers
684#
685# CONFIG_FB_S1D13XXX is not set
686# CONFIG_FB_OMAP is not set
687CONFIG_FB_VIRTUAL=y
688
689#
690# Console display driver support
691#
692# CONFIG_VGA_CONSOLE is not set
693CONFIG_DUMMY_CONSOLE=y
694# CONFIG_FRAMEBUFFER_CONSOLE is not set
695# CONFIG_LOGO is not set
696
697#
698# Sound
699#
700# CONFIG_SOUND is not set
701CONFIG_HID_SUPPORT=y
702CONFIG_HID=y
703# CONFIG_HID_DEBUG is not set
704CONFIG_USB_SUPPORT=y
705CONFIG_USB_ARCH_HAS_HCD=y
706CONFIG_USB_ARCH_HAS_OHCI=y
707# CONFIG_USB_ARCH_HAS_EHCI is not set
708# CONFIG_USB is not set
709
710#
711# Enable Host or Gadget support to see Inventra options
712#
713
714#
715# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
716#
717
718#
719# USB Gadget Support
720#
721# CONFIG_USB_GADGET is not set
722# CONFIG_MMC is not set
723CONFIG_RTC_LIB=y
724CONFIG_RTC_CLASS=y
725CONFIG_RTC_HCTOSYS=y
726CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
727# CONFIG_RTC_DEBUG is not set
728
729#
730# RTC interfaces
731#
732CONFIG_RTC_INTF_SYSFS=y
733CONFIG_RTC_INTF_PROC=y
734CONFIG_RTC_INTF_DEV=y
735# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
736# CONFIG_RTC_DRV_TEST is not set
737
738#
739# SPI RTC drivers
740#
741
742#
743# Platform RTC drivers
744#
745# CONFIG_RTC_DRV_CMOS is not set
746# CONFIG_RTC_DRV_DS1553 is not set
747# CONFIG_RTC_DRV_STK17TA8 is not set
748# CONFIG_RTC_DRV_DS1742 is not set
749# CONFIG_RTC_DRV_M48T86 is not set
750# CONFIG_RTC_DRV_M48T59 is not set
751# CONFIG_RTC_DRV_V3020 is not set
752
753#
754# on-CPU RTC drivers
755#
756CONFIG_RTC_DRV_OMAP=y
757
758#
759# DMA Engine support
760#
761# CONFIG_DMA_ENGINE is not set
762
763#
764# DMA Clients
765#
766
767#
768# DMA Devices
769#
770
771#
772# CBUS support
773#
774# CONFIG_CBUS is not set
775
776#
777# File systems
778#
779CONFIG_EXT2_FS=y
780# CONFIG_EXT2_FS_XATTR is not set
781# CONFIG_EXT2_FS_XIP is not set
782# CONFIG_EXT3_FS is not set
783# CONFIG_EXT4DEV_FS is not set
784# CONFIG_REISERFS_FS is not set
785# CONFIG_JFS_FS is not set
786# CONFIG_FS_POSIX_ACL is not set
787# CONFIG_XFS_FS is not set
788# CONFIG_GFS2_FS is not set
789# CONFIG_OCFS2_FS is not set
790# CONFIG_MINIX_FS is not set
791# CONFIG_ROMFS_FS is not set
792CONFIG_INOTIFY=y
793CONFIG_INOTIFY_USER=y
794# CONFIG_QUOTA is not set
795CONFIG_DNOTIFY=y
796# CONFIG_AUTOFS_FS is not set
797# CONFIG_AUTOFS4_FS is not set
798# CONFIG_FUSE_FS is not set
799
800#
801# CD-ROM/DVD Filesystems
802#
803# CONFIG_ISO9660_FS is not set
804# CONFIG_UDF_FS is not set
805
806#
807# DOS/FAT/NT Filesystems
808#
809# CONFIG_MSDOS_FS is not set
810# CONFIG_VFAT_FS is not set
811# CONFIG_NTFS_FS is not set
812
813#
814# Pseudo filesystems
815#
816CONFIG_PROC_FS=y
817CONFIG_PROC_SYSCTL=y
818CONFIG_SYSFS=y
819# CONFIG_TMPFS is not set
820# CONFIG_HUGETLB_PAGE is not set
821CONFIG_RAMFS=y
822# CONFIG_CONFIGFS_FS is not set
823
824#
825# Miscellaneous filesystems
826#
827# CONFIG_ADFS_FS is not set
828# CONFIG_AFFS_FS is not set
829# CONFIG_HFS_FS is not set
830# CONFIG_HFSPLUS_FS is not set
831# CONFIG_BEFS_FS is not set
832# CONFIG_BFS_FS is not set
833# CONFIG_EFS_FS is not set
834CONFIG_JFFS2_FS=y
835CONFIG_JFFS2_FS_DEBUG=0
836CONFIG_JFFS2_FS_WRITEBUFFER=y
837# CONFIG_JFFS2_SUMMARY is not set
838# CONFIG_JFFS2_FS_XATTR is not set
839# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
840CONFIG_JFFS2_ZLIB=y
841CONFIG_JFFS2_RTIME=y
842# CONFIG_JFFS2_RUBIN is not set
843# CONFIG_CRAMFS is not set
844# CONFIG_VXFS_FS is not set
845# CONFIG_HPFS_FS is not set
846# CONFIG_QNX4FS_FS is not set
847# CONFIG_SYSV_FS is not set
848# CONFIG_UFS_FS is not set
849
850#
851# Network File Systems
852#
853CONFIG_NFS_FS=y
854# CONFIG_NFS_V3 is not set
855# CONFIG_NFS_V4 is not set
856# CONFIG_NFS_DIRECTIO is not set
857# CONFIG_NFSD is not set
858CONFIG_ROOT_NFS=y
859CONFIG_LOCKD=y
860CONFIG_NFS_COMMON=y
861CONFIG_SUNRPC=y
862# CONFIG_SUNRPC_BIND34 is not set
863# CONFIG_RPCSEC_GSS_KRB5 is not set
864# CONFIG_RPCSEC_GSS_SPKM3 is not set
865# CONFIG_SMB_FS is not set
866# CONFIG_CIFS is not set
867# CONFIG_NCP_FS is not set
868# CONFIG_CODA_FS is not set
869# CONFIG_AFS_FS is not set
870
871#
872# Partition Types
873#
874# CONFIG_PARTITION_ADVANCED is not set
875CONFIG_MSDOS_PARTITION=y
876
877#
878# Native Language Support
879#
880# CONFIG_NLS is not set
881
882#
883# Distributed Lock Manager
884#
885# CONFIG_DLM is not set
886
887#
888# Profiling support
889#
890# CONFIG_PROFILING is not set
891
892#
893# Kernel hacking
894#
895# CONFIG_PRINTK_TIME is not set
896CONFIG_ENABLE_MUST_CHECK=y
897# CONFIG_MAGIC_SYSRQ is not set
898# CONFIG_UNUSED_SYMBOLS is not set
899# CONFIG_DEBUG_FS is not set
900# CONFIG_HEADERS_CHECK is not set
901# CONFIG_DEBUG_KERNEL is not set
902CONFIG_DEBUG_BUGVERBOSE=y
903CONFIG_FRAME_POINTER=y
904# CONFIG_DEBUG_USER is not set
905
906#
907# Security options
908#
909# CONFIG_KEYS is not set
910# CONFIG_SECURITY is not set
911# CONFIG_CRYPTO is not set
912
913#
914# Library routines
915#
916CONFIG_BITREVERSE=y
917# CONFIG_CRC_CCITT is not set
918# CONFIG_CRC16 is not set
919# CONFIG_CRC_ITU_T is not set
920CONFIG_CRC32=y
921# CONFIG_CRC7 is not set
922# CONFIG_LIBCRC32C is not set
923CONFIG_ZLIB_INFLATE=y
924CONFIG_ZLIB_DEFLATE=y
925CONFIG_PLIST=y
926CONFIG_HAS_IOMEM=y
927CONFIG_HAS_IOPORT=y
928CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index 06760f26eace..b2456ca544c9 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_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.26-rc4 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 2 23:54:48 2008 4# Fri Aug 22 12:38:51 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -12,6 +12,7 @@ CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
@@ -23,6 +24,7 @@ CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y 24CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y 25CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y 26CONFIG_ZONE_DMA=y
27CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
26CONFIG_VECTORS_BASE=0xffff0000 28CONFIG_VECTORS_BASE=0xffff0000
27CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 29CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
28 30
@@ -56,7 +58,6 @@ CONFIG_SYSCTL=y
56CONFIG_EMBEDDED=y 58CONFIG_EMBEDDED=y
57CONFIG_UID16=y 59CONFIG_UID16=y
58CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
59CONFIG_SYSCTL_SYSCALL_CHECK=y
60CONFIG_KALLSYMS=y 61CONFIG_KALLSYMS=y
61CONFIG_KALLSYMS_ALL=y 62CONFIG_KALLSYMS_ALL=y
62# CONFIG_KALLSYMS_EXTRA_PASS is not set 63# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -83,11 +84,17 @@ CONFIG_PROFILING=y
83CONFIG_OPROFILE=y 84CONFIG_OPROFILE=y
84CONFIG_HAVE_OPROFILE=y 85CONFIG_HAVE_OPROFILE=y
85CONFIG_KPROBES=y 86CONFIG_KPROBES=y
87# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
86CONFIG_KRETPROBES=y 88CONFIG_KRETPROBES=y
89# CONFIG_HAVE_IOREMAP_PROT is not set
87CONFIG_HAVE_KPROBES=y 90CONFIG_HAVE_KPROBES=y
88CONFIG_HAVE_KRETPROBES=y 91CONFIG_HAVE_KRETPROBES=y
92# CONFIG_HAVE_ARCH_TRACEHOOK is not set
89# CONFIG_HAVE_DMA_ATTRS is not set 93# CONFIG_HAVE_DMA_ATTRS is not set
94# CONFIG_USE_GENERIC_SMP_HELPERS is not set
95# CONFIG_HAVE_CLK is not set
90CONFIG_PROC_PAGE_MONITOR=y 96CONFIG_PROC_PAGE_MONITOR=y
97CONFIG_HAVE_GENERIC_DMA_COHERENT=y
91CONFIG_RT_MUTEXES=y 98CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set 99# CONFIG_TINY_SHMEM is not set
93CONFIG_BASE_SMALL=0 100CONFIG_BASE_SMALL=0
@@ -97,12 +104,13 @@ CONFIG_MODULE_UNLOAD=y
97# CONFIG_MODULE_FORCE_UNLOAD is not set 104# CONFIG_MODULE_FORCE_UNLOAD is not set
98# CONFIG_MODVERSIONS is not set 105# CONFIG_MODVERSIONS is not set
99# CONFIG_MODULE_SRCVERSION_ALL is not set 106# CONFIG_MODULE_SRCVERSION_ALL is not set
100# CONFIG_KMOD is not set 107CONFIG_KMOD=y
101CONFIG_BLOCK=y 108CONFIG_BLOCK=y
102# CONFIG_LBD is not set 109# CONFIG_LBD is not set
103# CONFIG_BLK_DEV_IO_TRACE is not set 110# CONFIG_BLK_DEV_IO_TRACE is not set
104# CONFIG_LSF is not set 111# CONFIG_LSF is not set
105# CONFIG_BLK_DEV_BSG is not set 112# CONFIG_BLK_DEV_BSG is not set
113# CONFIG_BLK_DEV_INTEGRITY is not set
106 114
107# 115#
108# IO Schedulers 116# IO Schedulers
@@ -128,7 +136,6 @@ CONFIG_CLASSIC_RCU=y
128# CONFIG_ARCH_AT91 is not set 136# CONFIG_ARCH_AT91 is not set
129# CONFIG_ARCH_CLPS7500 is not set 137# CONFIG_ARCH_CLPS7500 is not set
130# CONFIG_ARCH_CLPS711X is not set 138# CONFIG_ARCH_CLPS711X is not set
131# CONFIG_ARCH_CO285 is not set
132# CONFIG_ARCH_EBSA110 is not set 139# CONFIG_ARCH_EBSA110 is not set
133# CONFIG_ARCH_EP93XX is not set 140# CONFIG_ARCH_EP93XX is not set
134# CONFIG_ARCH_FOOTBRIDGE is not set 141# CONFIG_ARCH_FOOTBRIDGE is not set
@@ -142,8 +149,11 @@ CONFIG_CLASSIC_RCU=y
142# CONFIG_ARCH_IXP2000 is not set 149# CONFIG_ARCH_IXP2000 is not set
143# CONFIG_ARCH_IXP4XX is not set 150# CONFIG_ARCH_IXP4XX is not set
144# CONFIG_ARCH_L7200 is not set 151# CONFIG_ARCH_L7200 is not set
152# CONFIG_ARCH_KIRKWOOD is not set
145# CONFIG_ARCH_KS8695 is not set 153# CONFIG_ARCH_KS8695 is not set
146# CONFIG_ARCH_NS9XXX is not set 154# CONFIG_ARCH_NS9XXX is not set
155# CONFIG_ARCH_LOKI is not set
156# CONFIG_ARCH_MV78XX0 is not set
147# CONFIG_ARCH_MXC is not set 157# CONFIG_ARCH_MXC is not set
148CONFIG_ARCH_ORION5X=y 158CONFIG_ARCH_ORION5X=y
149# CONFIG_ARCH_PNX4008 is not set 159# CONFIG_ARCH_PNX4008 is not set
@@ -198,7 +208,7 @@ CONFIG_CPU_ABRT_EV5T=y
198CONFIG_CPU_PABRT_NOIFAR=y 208CONFIG_CPU_PABRT_NOIFAR=y
199CONFIG_CPU_CACHE_VIVT=y 209CONFIG_CPU_CACHE_VIVT=y
200CONFIG_CPU_COPY_FEROCEON=y 210CONFIG_CPU_COPY_FEROCEON=y
201CONFIG_CPU_TLB_V4WBI=y 211CONFIG_CPU_TLB_FEROCEON=y
202CONFIG_CPU_CP15=y 212CONFIG_CPU_CP15=y
203CONFIG_CPU_CP15_MMU=y 213CONFIG_CPU_CP15_MMU=y
204 214
@@ -283,10 +293,6 @@ CONFIG_BINFMT_ELF=y
283# 293#
284# CONFIG_PM is not set 294# CONFIG_PM is not set
285CONFIG_ARCH_SUSPEND_POSSIBLE=y 295CONFIG_ARCH_SUSPEND_POSSIBLE=y
286
287#
288# Networking
289#
290CONFIG_NET=y 296CONFIG_NET=y
291 297
292# 298#
@@ -364,6 +370,7 @@ CONFIG_NET_PKTGEN=m
364# 370#
365# CONFIG_CFG80211 is not set 371# CONFIG_CFG80211 is not set
366CONFIG_WIRELESS_EXT=y 372CONFIG_WIRELESS_EXT=y
373CONFIG_WIRELESS_EXT_SYSFS=y
367# CONFIG_MAC80211 is not set 374# CONFIG_MAC80211 is not set
368# CONFIG_IEEE80211 is not set 375# CONFIG_IEEE80211 is not set
369# CONFIG_RFKILL is not set 376# CONFIG_RFKILL is not set
@@ -380,6 +387,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
380CONFIG_STANDALONE=y 387CONFIG_STANDALONE=y
381CONFIG_PREVENT_FIRMWARE_BUILD=y 388CONFIG_PREVENT_FIRMWARE_BUILD=y
382CONFIG_FW_LOADER=y 389CONFIG_FW_LOADER=y
390# CONFIG_FIRMWARE_IN_KERNEL is not set
391CONFIG_EXTRA_FIRMWARE=""
383# CONFIG_DEBUG_DRIVER is not set 392# CONFIG_DEBUG_DRIVER is not set
384# CONFIG_DEBUG_DEVRES is not set 393# CONFIG_DEBUG_DEVRES is not set
385# CONFIG_SYS_HYPERVISOR is not set 394# CONFIG_SYS_HYPERVISOR is not set
@@ -502,6 +511,7 @@ CONFIG_MISC_DEVICES=y
502# CONFIG_SGI_IOC4 is not set 511# CONFIG_SGI_IOC4 is not set
503# CONFIG_TIFM_CORE is not set 512# CONFIG_TIFM_CORE is not set
504# CONFIG_ENCLOSURE_SERVICES is not set 513# CONFIG_ENCLOSURE_SERVICES is not set
514# CONFIG_HP_ILO is not set
505CONFIG_HAVE_IDE=y 515CONFIG_HAVE_IDE=y
506# CONFIG_IDE is not set 516# CONFIG_IDE is not set
507 517
@@ -578,6 +588,7 @@ CONFIG_SCSI_LOWLEVEL=y
578# CONFIG_SCSI_NSP32 is not set 588# CONFIG_SCSI_NSP32 is not set
579# CONFIG_SCSI_DEBUG is not set 589# CONFIG_SCSI_DEBUG is not set
580# CONFIG_SCSI_SRP is not set 590# CONFIG_SCSI_SRP is not set
591# CONFIG_SCSI_DH is not set
581CONFIG_ATA=y 592CONFIG_ATA=y
582# CONFIG_ATA_NONSTANDARD is not set 593# CONFIG_ATA_NONSTANDARD is not set
583CONFIG_SATA_PMP=y 594CONFIG_SATA_PMP=y
@@ -644,11 +655,14 @@ CONFIG_SATA_MV=y
644# 655#
645# IEEE 1394 (FireWire) support 656# IEEE 1394 (FireWire) support
646# 657#
658
659#
660# Enable only one of the two stacks, unless you know what you are doing
661#
647# CONFIG_FIREWIRE is not set 662# CONFIG_FIREWIRE is not set
648# CONFIG_IEEE1394 is not set 663# CONFIG_IEEE1394 is not set
649# CONFIG_I2O is not set 664# CONFIG_I2O is not set
650CONFIG_NETDEVICES=y 665CONFIG_NETDEVICES=y
651# CONFIG_NETDEVICES_MULTIQUEUE is not set
652# CONFIG_DUMMY is not set 666# CONFIG_DUMMY is not set
653# CONFIG_BONDING is not set 667# CONFIG_BONDING is not set
654# CONFIG_MACVLAN is not set 668# CONFIG_MACVLAN is not set
@@ -697,7 +711,6 @@ CONFIG_NETDEV_1000=y
697# CONFIG_DL2K is not set 711# CONFIG_DL2K is not set
698# CONFIG_E1000 is not set 712# CONFIG_E1000 is not set
699# CONFIG_E1000E is not set 713# CONFIG_E1000E is not set
700# CONFIG_E1000E_ENABLED is not set
701# CONFIG_IP1000 is not set 714# CONFIG_IP1000 is not set
702# CONFIG_IGB is not set 715# CONFIG_IGB is not set
703# CONFIG_NS83820 is not set 716# CONFIG_NS83820 is not set
@@ -713,6 +726,7 @@ CONFIG_NETDEV_1000=y
713CONFIG_MV643XX_ETH=y 726CONFIG_MV643XX_ETH=y
714# CONFIG_QLA3XXX is not set 727# CONFIG_QLA3XXX is not set
715# CONFIG_ATL1 is not set 728# CONFIG_ATL1 is not set
729# CONFIG_ATL1E is not set
716# CONFIG_NETDEV_10000 is not set 730# CONFIG_NETDEV_10000 is not set
717# CONFIG_TR is not set 731# CONFIG_TR is not set
718 732
@@ -818,44 +832,65 @@ CONFIG_DEVPORT=y
818CONFIG_I2C=y 832CONFIG_I2C=y
819CONFIG_I2C_BOARDINFO=y 833CONFIG_I2C_BOARDINFO=y
820CONFIG_I2C_CHARDEV=y 834CONFIG_I2C_CHARDEV=y
835CONFIG_I2C_HELPER_AUTO=y
821 836
822# 837#
823# I2C Hardware Bus support 838# I2C Hardware Bus support
824# 839#
840
841#
842# PC SMBus host controller drivers
843#
825# CONFIG_I2C_ALI1535 is not set 844# CONFIG_I2C_ALI1535 is not set
826# CONFIG_I2C_ALI1563 is not set 845# CONFIG_I2C_ALI1563 is not set
827# CONFIG_I2C_ALI15X3 is not set 846# CONFIG_I2C_ALI15X3 is not set
828# CONFIG_I2C_AMD756 is not set 847# CONFIG_I2C_AMD756 is not set
829# CONFIG_I2C_AMD8111 is not set 848# CONFIG_I2C_AMD8111 is not set
830# CONFIG_I2C_GPIO is not set
831# CONFIG_I2C_I801 is not set 849# CONFIG_I2C_I801 is not set
832# CONFIG_I2C_I810 is not set 850# CONFIG_I2C_ISCH is not set
833# CONFIG_I2C_PIIX4 is not set 851# CONFIG_I2C_PIIX4 is not set
834# CONFIG_I2C_NFORCE2 is not set 852# CONFIG_I2C_NFORCE2 is not set
835# CONFIG_I2C_OCORES is not set
836# CONFIG_I2C_PARPORT_LIGHT is not set
837# CONFIG_I2C_PROSAVAGE is not set
838# CONFIG_I2C_SAVAGE4 is not set
839# CONFIG_I2C_SIMTEC is not set
840# CONFIG_I2C_SIS5595 is not set 853# CONFIG_I2C_SIS5595 is not set
841# CONFIG_I2C_SIS630 is not set 854# CONFIG_I2C_SIS630 is not set
842# CONFIG_I2C_SIS96X is not set 855# CONFIG_I2C_SIS96X is not set
843# CONFIG_I2C_TAOS_EVM is not set
844# CONFIG_I2C_STUB is not set
845# CONFIG_I2C_TINY_USB is not set
846# CONFIG_I2C_VIA is not set 856# CONFIG_I2C_VIA is not set
847# CONFIG_I2C_VIAPRO is not set 857# CONFIG_I2C_VIAPRO is not set
858
859#
860# I2C system bus drivers (mostly embedded / system-on-chip)
861#
862# CONFIG_I2C_GPIO is not set
863CONFIG_I2C_MV64XXX=y
864# CONFIG_I2C_OCORES is not set
865# CONFIG_I2C_SIMTEC is not set
866
867#
868# External I2C/SMBus adapter drivers
869#
870# CONFIG_I2C_PARPORT_LIGHT is not set
871# CONFIG_I2C_TAOS_EVM is not set
872# CONFIG_I2C_TINY_USB is not set
873
874#
875# Graphics adapter I2C/DDC channel drivers
876#
848# CONFIG_I2C_VOODOO3 is not set 877# CONFIG_I2C_VOODOO3 is not set
878
879#
880# Other I2C/SMBus bus drivers
881#
849# CONFIG_I2C_PCA_PLATFORM is not set 882# CONFIG_I2C_PCA_PLATFORM is not set
850CONFIG_I2C_MV64XXX=y 883# CONFIG_I2C_STUB is not set
851 884
852# 885#
853# Miscellaneous I2C Chip support 886# Miscellaneous I2C Chip support
854# 887#
855# CONFIG_DS1682 is not set 888# CONFIG_DS1682 is not set
889# CONFIG_AT24 is not set
856# CONFIG_SENSORS_EEPROM is not set 890# CONFIG_SENSORS_EEPROM is not set
857# CONFIG_SENSORS_PCF8574 is not set 891# CONFIG_SENSORS_PCF8574 is not set
858# CONFIG_PCF8575 is not set 892# CONFIG_PCF8575 is not set
893# CONFIG_SENSORS_PCA9539 is not set
859# CONFIG_SENSORS_PCF8591 is not set 894# CONFIG_SENSORS_PCF8591 is not set
860# CONFIG_SENSORS_MAX6875 is not set 895# CONFIG_SENSORS_MAX6875 is not set
861# CONFIG_SENSORS_TSL2550 is not set 896# CONFIG_SENSORS_TSL2550 is not set
@@ -868,6 +903,7 @@ CONFIG_I2C_MV64XXX=y
868# CONFIG_POWER_SUPPLY is not set 903# CONFIG_POWER_SUPPLY is not set
869CONFIG_HWMON=y 904CONFIG_HWMON=y
870# CONFIG_HWMON_VID is not set 905# CONFIG_HWMON_VID is not set
906# CONFIG_SENSORS_AD7414 is not set
871# CONFIG_SENSORS_AD7418 is not set 907# CONFIG_SENSORS_AD7418 is not set
872# CONFIG_SENSORS_ADM1021 is not set 908# CONFIG_SENSORS_ADM1021 is not set
873# CONFIG_SENSORS_ADM1025 is not set 909# CONFIG_SENSORS_ADM1025 is not set
@@ -887,7 +923,7 @@ CONFIG_HWMON=y
887# CONFIG_SENSORS_GL520SM is not set 923# CONFIG_SENSORS_GL520SM is not set
888# CONFIG_SENSORS_IT87 is not set 924# CONFIG_SENSORS_IT87 is not set
889# CONFIG_SENSORS_LM63 is not set 925# CONFIG_SENSORS_LM63 is not set
890# CONFIG_SENSORS_LM75 is not set 926CONFIG_SENSORS_LM75=y
891# CONFIG_SENSORS_LM77 is not set 927# CONFIG_SENSORS_LM77 is not set
892# CONFIG_SENSORS_LM78 is not set 928# CONFIG_SENSORS_LM78 is not set
893# CONFIG_SENSORS_LM80 is not set 929# CONFIG_SENSORS_LM80 is not set
@@ -931,9 +967,12 @@ CONFIG_SSB_POSSIBLE=y
931# 967#
932# Multifunction device drivers 968# Multifunction device drivers
933# 969#
970# CONFIG_MFD_CORE is not set
934# CONFIG_MFD_SM501 is not set 971# CONFIG_MFD_SM501 is not set
935# CONFIG_MFD_ASIC3 is not set
936# CONFIG_HTC_PASIC3 is not set 972# CONFIG_HTC_PASIC3 is not set
973# CONFIG_MFD_TMIO is not set
974# CONFIG_MFD_T7L66XB is not set
975# CONFIG_MFD_TC6387XB is not set
937 976
938# 977#
939# Multimedia devices 978# Multimedia devices
@@ -964,10 +1003,6 @@ CONFIG_SSB_POSSIBLE=y
964# Display device support 1003# Display device support
965# 1004#
966# CONFIG_DISPLAY_SUPPORT is not set 1005# CONFIG_DISPLAY_SUPPORT is not set
967
968#
969# Sound
970#
971# CONFIG_SOUND is not set 1006# CONFIG_SOUND is not set
972CONFIG_HID_SUPPORT=y 1007CONFIG_HID_SUPPORT=y
973CONFIG_HID=y 1008CONFIG_HID=y
@@ -998,6 +1033,7 @@ CONFIG_USB_DEVICE_CLASS=y
998# CONFIG_USB_OTG is not set 1033# CONFIG_USB_OTG is not set
999# CONFIG_USB_OTG_WHITELIST is not set 1034# CONFIG_USB_OTG_WHITELIST is not set
1000# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1035# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1036# CONFIG_USB_MON is not set
1001 1037
1002# 1038#
1003# USB Host Controller Drivers 1039# USB Host Controller Drivers
@@ -1040,6 +1076,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1040# CONFIG_USB_STORAGE_ALAUDA is not set 1076# CONFIG_USB_STORAGE_ALAUDA is not set
1041# CONFIG_USB_STORAGE_ONETOUCH is not set 1077# CONFIG_USB_STORAGE_ONETOUCH is not set
1042# CONFIG_USB_STORAGE_KARMA is not set 1078# CONFIG_USB_STORAGE_KARMA is not set
1079# CONFIG_USB_STORAGE_SIERRA is not set
1043# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1080# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1044# CONFIG_USB_LIBUSUAL is not set 1081# CONFIG_USB_LIBUSUAL is not set
1045 1082
@@ -1048,7 +1085,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1048# 1085#
1049# CONFIG_USB_MDC800 is not set 1086# CONFIG_USB_MDC800 is not set
1050# CONFIG_USB_MICROTEK is not set 1087# CONFIG_USB_MICROTEK is not set
1051# CONFIG_USB_MON is not set
1052 1088
1053# 1089#
1054# USB port drivers 1090# USB port drivers
@@ -1061,7 +1097,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1061# CONFIG_USB_EMI62 is not set 1097# CONFIG_USB_EMI62 is not set
1062# CONFIG_USB_EMI26 is not set 1098# CONFIG_USB_EMI26 is not set
1063# CONFIG_USB_ADUTUX is not set 1099# CONFIG_USB_ADUTUX is not set
1064# CONFIG_USB_AUERSWALD is not set
1065# CONFIG_USB_RIO500 is not set 1100# CONFIG_USB_RIO500 is not set
1066# CONFIG_USB_LEGOTOWER is not set 1101# CONFIG_USB_LEGOTOWER is not set
1067# CONFIG_USB_LCD is not set 1102# CONFIG_USB_LCD is not set
@@ -1087,7 +1122,9 @@ CONFIG_LEDS_CLASS=y
1087# 1122#
1088# LED drivers 1123# LED drivers
1089# 1124#
1125# CONFIG_LEDS_PCA9532 is not set
1090CONFIG_LEDS_GPIO=y 1126CONFIG_LEDS_GPIO=y
1127# CONFIG_LEDS_PCA955X is not set
1091 1128
1092# 1129#
1093# LED Triggers 1130# LED Triggers
@@ -1126,6 +1163,7 @@ CONFIG_RTC_DRV_PCF8563=y
1126CONFIG_RTC_DRV_M41T80=y 1163CONFIG_RTC_DRV_M41T80=y
1127# CONFIG_RTC_DRV_M41T80_WDT is not set 1164# CONFIG_RTC_DRV_M41T80_WDT is not set
1128CONFIG_RTC_DRV_S35390A=y 1165CONFIG_RTC_DRV_S35390A=y
1166# CONFIG_RTC_DRV_FM3130 is not set
1129 1167
1130# 1168#
1131# SPI RTC drivers 1169# SPI RTC drivers
@@ -1146,6 +1184,27 @@ CONFIG_RTC_DRV_S35390A=y
1146# 1184#
1147# on-CPU RTC drivers 1185# on-CPU RTC drivers
1148# 1186#
1187CONFIG_DMADEVICES=y
1188
1189#
1190# DMA Devices
1191#
1192CONFIG_MV_XOR=y
1193CONFIG_DMA_ENGINE=y
1194
1195#
1196# DMA Clients
1197#
1198# CONFIG_NET_DMA is not set
1199# CONFIG_DMATEST is not set
1200
1201#
1202# Voltage and Current regulators
1203#
1204# CONFIG_REGULATOR is not set
1205# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1206# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1207# CONFIG_REGULATOR_BQ24022 is not set
1149# CONFIG_UIO is not set 1208# CONFIG_UIO is not set
1150 1209
1151# 1210#
@@ -1225,6 +1284,7 @@ CONFIG_JFFS2_RTIME=y
1225CONFIG_CRAMFS=y 1284CONFIG_CRAMFS=y
1226# CONFIG_VXFS_FS is not set 1285# CONFIG_VXFS_FS is not set
1227# CONFIG_MINIX_FS is not set 1286# CONFIG_MINIX_FS is not set
1287# CONFIG_OMFS_FS is not set
1228# CONFIG_HPFS_FS is not set 1288# CONFIG_HPFS_FS is not set
1229# CONFIG_QNX4FS_FS is not set 1289# CONFIG_QNX4FS_FS is not set
1230# CONFIG_ROMFS_FS is not set 1290# CONFIG_ROMFS_FS is not set
@@ -1235,13 +1295,12 @@ CONFIG_NFS_FS=y
1235CONFIG_NFS_V3=y 1295CONFIG_NFS_V3=y
1236# CONFIG_NFS_V3_ACL is not set 1296# CONFIG_NFS_V3_ACL is not set
1237# CONFIG_NFS_V4 is not set 1297# CONFIG_NFS_V4 is not set
1238# CONFIG_NFSD is not set
1239CONFIG_ROOT_NFS=y 1298CONFIG_ROOT_NFS=y
1299# CONFIG_NFSD is not set
1240CONFIG_LOCKD=y 1300CONFIG_LOCKD=y
1241CONFIG_LOCKD_V4=y 1301CONFIG_LOCKD_V4=y
1242CONFIG_NFS_COMMON=y 1302CONFIG_NFS_COMMON=y
1243CONFIG_SUNRPC=y 1303CONFIG_SUNRPC=y
1244# CONFIG_SUNRPC_BIND34 is not set
1245# CONFIG_RPCSEC_GSS_KRB5 is not set 1304# CONFIG_RPCSEC_GSS_KRB5 is not set
1246# CONFIG_RPCSEC_GSS_SPKM3 is not set 1305# CONFIG_RPCSEC_GSS_SPKM3 is not set
1247# CONFIG_SMB_FS is not set 1306# CONFIG_SMB_FS is not set
@@ -1327,6 +1386,8 @@ CONFIG_MAGIC_SYSRQ=y
1327CONFIG_DEBUG_KERNEL=y 1386CONFIG_DEBUG_KERNEL=y
1328# CONFIG_DEBUG_SHIRQ is not set 1387# CONFIG_DEBUG_SHIRQ is not set
1329CONFIG_DETECT_SOFTLOCKUP=y 1388CONFIG_DETECT_SOFTLOCKUP=y
1389# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1390CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1330CONFIG_SCHED_DEBUG=y 1391CONFIG_SCHED_DEBUG=y
1331CONFIG_SCHEDSTATS=y 1392CONFIG_SCHEDSTATS=y
1332# CONFIG_TIMER_STATS is not set 1393# CONFIG_TIMER_STATS is not set
@@ -1341,11 +1402,13 @@ CONFIG_DEBUG_PREEMPT=y
1341# CONFIG_LOCK_STAT is not set 1402# CONFIG_LOCK_STAT is not set
1342# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1403# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1343# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1404# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1405CONFIG_STACKTRACE=y
1344# CONFIG_DEBUG_KOBJECT is not set 1406# CONFIG_DEBUG_KOBJECT is not set
1345# CONFIG_DEBUG_BUGVERBOSE is not set 1407# CONFIG_DEBUG_BUGVERBOSE is not set
1346CONFIG_DEBUG_INFO=y 1408CONFIG_DEBUG_INFO=y
1347# CONFIG_DEBUG_VM is not set 1409# CONFIG_DEBUG_VM is not set
1348# CONFIG_DEBUG_WRITECOUNT is not set 1410# CONFIG_DEBUG_WRITECOUNT is not set
1411# CONFIG_DEBUG_MEMORY_INIT is not set
1349# CONFIG_DEBUG_LIST is not set 1412# CONFIG_DEBUG_LIST is not set
1350# CONFIG_DEBUG_SG is not set 1413# CONFIG_DEBUG_SG is not set
1351CONFIG_FRAME_POINTER=y 1414CONFIG_FRAME_POINTER=y
@@ -1355,7 +1418,18 @@ CONFIG_FRAME_POINTER=y
1355# CONFIG_BACKTRACE_SELF_TEST is not set 1418# CONFIG_BACKTRACE_SELF_TEST is not set
1356# CONFIG_LKDTM is not set 1419# CONFIG_LKDTM is not set
1357# CONFIG_FAULT_INJECTION is not set 1420# CONFIG_FAULT_INJECTION is not set
1421CONFIG_LATENCYTOP=y
1422CONFIG_SYSCTL_SYSCALL_CHECK=y
1423CONFIG_HAVE_FTRACE=y
1424CONFIG_HAVE_DYNAMIC_FTRACE=y
1425# CONFIG_FTRACE is not set
1426# CONFIG_IRQSOFF_TRACER is not set
1427# CONFIG_PREEMPT_TRACER is not set
1428# CONFIG_SCHED_TRACER is not set
1429# CONFIG_CONTEXT_SWITCH_TRACER is not set
1358# CONFIG_SAMPLES is not set 1430# CONFIG_SAMPLES is not set
1431CONFIG_HAVE_ARCH_KGDB=y
1432# CONFIG_KGDB is not set
1359CONFIG_DEBUG_USER=y 1433CONFIG_DEBUG_USER=y
1360CONFIG_DEBUG_ERRORS=y 1434CONFIG_DEBUG_ERRORS=y
1361# CONFIG_DEBUG_STACK_USAGE is not set 1435# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1368,6 +1442,7 @@ CONFIG_DEBUG_LL=y
1368# CONFIG_KEYS is not set 1442# CONFIG_KEYS is not set
1369# CONFIG_SECURITY is not set 1443# CONFIG_SECURITY is not set
1370# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1444# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1445CONFIG_ASYNC_CORE=y
1371CONFIG_CRYPTO=y 1446CONFIG_CRYPTO=y
1372 1447
1373# 1448#
@@ -1413,6 +1488,10 @@ CONFIG_CRYPTO_PCBC=m
1413# CONFIG_CRYPTO_MD4 is not set 1488# CONFIG_CRYPTO_MD4 is not set
1414# CONFIG_CRYPTO_MD5 is not set 1489# CONFIG_CRYPTO_MD5 is not set
1415# CONFIG_CRYPTO_MICHAEL_MIC is not set 1490# CONFIG_CRYPTO_MICHAEL_MIC is not set
1491# CONFIG_CRYPTO_RMD128 is not set
1492# CONFIG_CRYPTO_RMD160 is not set
1493# CONFIG_CRYPTO_RMD256 is not set
1494# CONFIG_CRYPTO_RMD320 is not set
1416# CONFIG_CRYPTO_SHA1 is not set 1495# CONFIG_CRYPTO_SHA1 is not set
1417# CONFIG_CRYPTO_SHA256 is not set 1496# CONFIG_CRYPTO_SHA256 is not set
1418# CONFIG_CRYPTO_SHA512 is not set 1497# CONFIG_CRYPTO_SHA512 is not set
@@ -1454,6 +1533,7 @@ CONFIG_BITREVERSE=y
1454# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1533# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1455# CONFIG_CRC_CCITT is not set 1534# CONFIG_CRC_CCITT is not set
1456# CONFIG_CRC16 is not set 1535# CONFIG_CRC16 is not set
1536CONFIG_CRC_T10DIF=y
1457CONFIG_CRC_ITU_T=m 1537CONFIG_CRC_ITU_T=m
1458CONFIG_CRC32=y 1538CONFIG_CRC32=y
1459# CONFIG_CRC7 is not set 1539# CONFIG_CRC7 is not set
diff --git a/arch/arm/configs/palmte_defconfig b/arch/arm/configs/palmte_defconfig
new file mode 100644
index 000000000000..40fc6a778e00
--- /dev/null
+++ b/arch/arm/configs/palmte_defconfig
@@ -0,0 +1,761 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Sat May 19 11:04:27 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34
35#
36# General setup
37#
38CONFIG_LOCALVERSION=""
39CONFIG_LOCALVERSION_AUTO=y
40# CONFIG_SWAP is not set
41CONFIG_SYSVIPC=y
42# CONFIG_IPC_NS is not set
43CONFIG_SYSVIPC_SYSCTL=y
44CONFIG_BSD_PROCESS_ACCT=y
45# CONFIG_BSD_PROCESS_ACCT_V3 is not set
46# CONFIG_UTS_NS is not set
47# CONFIG_IKCONFIG is not set
48CONFIG_LOG_BUF_SHIFT=14
49CONFIG_SYSFS_DEPRECATED=y
50# CONFIG_RELAY is not set
51# CONFIG_BLK_DEV_INITRD is not set
52CONFIG_CC_OPTIMIZE_FOR_SIZE=y
53CONFIG_SYSCTL=y
54# CONFIG_EMBEDDED is not set
55CONFIG_UID16=y
56CONFIG_SYSCTL_SYSCALL=y
57CONFIG_KALLSYMS=y
58# CONFIG_KALLSYMS_EXTRA_PASS is not set
59CONFIG_HOTPLUG=y
60CONFIG_PRINTK=y
61CONFIG_BUG=y
62CONFIG_ELF_CORE=y
63CONFIG_BASE_FULL=y
64CONFIG_FUTEX=y
65CONFIG_ANON_INODES=y
66CONFIG_EPOLL=y
67CONFIG_SIGNALFD=y
68CONFIG_TIMERFD=y
69CONFIG_EVENTFD=y
70CONFIG_SHMEM=y
71CONFIG_VM_EVENT_COUNTERS=y
72CONFIG_SLAB=y
73# CONFIG_SLUB is not set
74# CONFIG_SLOB is not set
75CONFIG_RT_MUTEXES=y
76# CONFIG_TINY_SHMEM is not set
77CONFIG_BASE_SMALL=0
78
79#
80# Loadable module support
81#
82# CONFIG_MODULES is not set
83
84#
85# Block layer
86#
87CONFIG_BLOCK=y
88# CONFIG_LBD is not set
89# CONFIG_BLK_DEV_IO_TRACE is not set
90# CONFIG_LSF is not set
91
92#
93# IO Schedulers
94#
95CONFIG_IOSCHED_NOOP=y
96CONFIG_IOSCHED_AS=y
97# CONFIG_IOSCHED_DEADLINE is not set
98# CONFIG_IOSCHED_CFQ is not set
99CONFIG_DEFAULT_AS=y
100# CONFIG_DEFAULT_DEADLINE is not set
101# CONFIG_DEFAULT_CFQ is not set
102# CONFIG_DEFAULT_NOOP is not set
103CONFIG_DEFAULT_IOSCHED="anticipatory"
104
105#
106# System Type
107#
108# CONFIG_ARCH_AAEC2000 is not set
109# CONFIG_ARCH_INTEGRATOR is not set
110# CONFIG_ARCH_REALVIEW is not set
111# CONFIG_ARCH_VERSATILE is not set
112# CONFIG_ARCH_AT91 is not set
113# CONFIG_ARCH_CLPS7500 is not set
114# CONFIG_ARCH_CLPS711X is not set
115# CONFIG_ARCH_CO285 is not set
116# CONFIG_ARCH_EBSA110 is not set
117# CONFIG_ARCH_EP93XX is not set
118# CONFIG_ARCH_FOOTBRIDGE is not set
119# CONFIG_ARCH_NETX is not set
120# CONFIG_ARCH_H720X is not set
121# CONFIG_ARCH_IMX is not set
122# CONFIG_ARCH_IOP13XX is not set
123# CONFIG_ARCH_IOP32X is not set
124# CONFIG_ARCH_IOP33X is not set
125# CONFIG_ARCH_IXP23XX is not set
126# CONFIG_ARCH_IXP2000 is not set
127# CONFIG_ARCH_IXP4XX is not set
128# CONFIG_ARCH_L7200 is not set
129# CONFIG_ARCH_KS8695 is not set
130# CONFIG_ARCH_NS9XXX is not set
131# CONFIG_ARCH_PNX4008 is not set
132# CONFIG_ARCH_PXA is not set
133# CONFIG_ARCH_RPC is not set
134# CONFIG_ARCH_SA1100 is not set
135# CONFIG_ARCH_S3C2410 is not set
136# CONFIG_ARCH_SHARK is not set
137# CONFIG_ARCH_LH7A40X is not set
138# CONFIG_ARCH_DAVINCI is not set
139CONFIG_ARCH_OMAP=y
140
141#
142# TI OMAP Implementations
143#
144CONFIG_ARCH_OMAP1=y
145# CONFIG_ARCH_OMAP2 is not set
146
147#
148# OMAP Feature Selections
149#
150# CONFIG_OMAP_RESET_CLOCKS is not set
151# CONFIG_OMAP_BOOT_TAG is not set
152CONFIG_OMAP_GPIO_SWITCH=y
153CONFIG_OMAP_MUX=y
154# CONFIG_OMAP_MUX_DEBUG is not set
155CONFIG_OMAP_MUX_WARNINGS=y
156CONFIG_OMAP_MCBSP=y
157# CONFIG_OMAP_MMU_FWK is not set
158# CONFIG_OMAP_MBOX_FWK is not set
159CONFIG_OMAP_MPU_TIMER=y
160# CONFIG_OMAP_32K_TIMER is not set
161CONFIG_OMAP_LL_DEBUG_UART1=y
162# CONFIG_OMAP_LL_DEBUG_UART2 is not set
163# CONFIG_OMAP_LL_DEBUG_UART3 is not set
164CONFIG_OMAP_SERIAL_WAKE=y
165# CONFIG_OMAP_DSP is not set
166
167#
168# OMAP Core Type
169#
170# CONFIG_ARCH_OMAP730 is not set
171CONFIG_ARCH_OMAP15XX=y
172# CONFIG_ARCH_OMAP16XX is not set
173
174#
175# OMAP Board Type
176#
177# CONFIG_MACH_OMAP_INNOVATOR is not set
178# CONFIG_MACH_VOICEBLUE is not set
179CONFIG_MACH_OMAP_PALMTE=y
180# CONFIG_MACH_OMAP_PALMZ71 is not set
181# CONFIG_MACH_OMAP_PALMTT is not set
182# CONFIG_MACH_SX1 is not set
183# CONFIG_MACH_AMS_DELTA is not set
184# CONFIG_MACH_OMAP_GENERIC is not set
185
186#
187# OMAP CPU Speed
188#
189CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
190# CONFIG_OMAP_ARM_168MHZ is not set
191# CONFIG_OMAP_ARM_150MHZ is not set
192# CONFIG_OMAP_ARM_120MHZ is not set
193# CONFIG_OMAP_ARM_60MHZ is not set
194# CONFIG_OMAP_ARM_30MHZ is not set
195
196#
197# Processor Type
198#
199CONFIG_CPU_32=y
200CONFIG_CPU_ARM925T=y
201CONFIG_CPU_32v4T=y
202CONFIG_CPU_ABRT_EV4T=y
203CONFIG_CPU_CACHE_V4WT=y
204CONFIG_CPU_CACHE_VIVT=y
205CONFIG_CPU_COPY_V4WB=y
206CONFIG_CPU_TLB_V4WBI=y
207CONFIG_CPU_CP15=y
208CONFIG_CPU_CP15_MMU=y
209
210#
211# Processor Features
212#
213# CONFIG_ARM_THUMB is not set
214# CONFIG_CPU_ICACHE_DISABLE is not set
215# CONFIG_CPU_DCACHE_DISABLE is not set
216# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
217# CONFIG_OUTER_CACHE is not set
218
219#
220# Bus support
221#
222# CONFIG_ARCH_SUPPORTS_MSI is not set
223
224#
225# PCCARD (PCMCIA/CardBus) support
226#
227# CONFIG_PCCARD is not set
228
229#
230# Kernel Features
231#
232# CONFIG_TICK_ONESHOT is not set
233# CONFIG_NO_HZ is not set
234# CONFIG_HIGH_RES_TIMERS is not set
235# CONFIG_PREEMPT is not set
236CONFIG_HZ=100
237# CONFIG_AEABI is not set
238# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
239CONFIG_SELECT_MEMORY_MODEL=y
240CONFIG_FLATMEM_MANUAL=y
241# CONFIG_DISCONTIGMEM_MANUAL is not set
242# CONFIG_SPARSEMEM_MANUAL is not set
243CONFIG_FLATMEM=y
244CONFIG_FLAT_NODE_MEM_MAP=y
245# CONFIG_SPARSEMEM_STATIC is not set
246CONFIG_SPLIT_PTLOCK_CPUS=4096
247# CONFIG_RESOURCES_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1
249# CONFIG_LEDS is not set
250CONFIG_ALIGNMENT_TRAP=y
251
252#
253# Boot options
254#
255CONFIG_ZBOOT_ROM_TEXT=0x0
256CONFIG_ZBOOT_ROM_BSS=0x0
257CONFIG_CMDLINE=""
258# CONFIG_XIP_KERNEL is not set
259# CONFIG_KEXEC is not set
260
261#
262# CPU Frequency scaling
263#
264# CONFIG_CPU_FREQ is not set
265
266#
267# Floating point emulation
268#
269
270#
271# At least one emulation must be selected
272#
273CONFIG_FPE_NWFPE=y
274# CONFIG_FPE_NWFPE_XP is not set
275# CONFIG_FPE_FASTFPE is not set
276
277#
278# Userspace binary formats
279#
280CONFIG_BINFMT_ELF=y
281# CONFIG_BINFMT_AOUT is not set
282# CONFIG_BINFMT_MISC is not set
283# CONFIG_ARTHUR is not set
284
285#
286# Power management options
287#
288# CONFIG_PM is not set
289
290#
291# Networking
292#
293# CONFIG_NET is not set
294
295#
296# Device Drivers
297#
298
299#
300# Generic Driver Options
301#
302# CONFIG_STANDALONE is not set
303# CONFIG_PREVENT_FIRMWARE_BUILD is not set
304# CONFIG_FW_LOADER is not set
305# CONFIG_SYS_HYPERVISOR is not set
306
307#
308# Connector - unified userspace <-> kernelspace linker
309#
310# CONFIG_MTD is not set
311
312#
313# Parallel port support
314#
315# CONFIG_PARPORT is not set
316
317#
318# Plug and Play support
319#
320# CONFIG_PNPACPI is not set
321
322#
323# Block devices
324#
325# CONFIG_BLK_DEV_COW_COMMON is not set
326# CONFIG_BLK_DEV_LOOP is not set
327# CONFIG_BLK_DEV_RAM is not set
328# CONFIG_CDROM_PKTCDVD is not set
329
330#
331# SCSI device support
332#
333# CONFIG_RAID_ATTRS is not set
334# CONFIG_SCSI is not set
335# CONFIG_SCSI_NETLINK is not set
336# CONFIG_ATA is not set
337
338#
339# Multi-device support (RAID and LVM)
340#
341# CONFIG_MD is not set
342
343#
344# ISDN subsystem
345#
346
347#
348# Input device support
349#
350CONFIG_INPUT=y
351# CONFIG_INPUT_FF_MEMLESS is not set
352
353#
354# Userland interfaces
355#
356CONFIG_INPUT_MOUSEDEV=y
357# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
358CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
359CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
360# CONFIG_INPUT_JOYDEV is not set
361# CONFIG_INPUT_TSDEV is not set
362# CONFIG_INPUT_EVDEV is not set
363# CONFIG_INPUT_EVBUG is not set
364
365#
366# Input Device Drivers
367#
368# CONFIG_INPUT_KEYBOARD is not set
369# CONFIG_INPUT_MOUSE is not set
370# CONFIG_INPUT_JOYSTICK is not set
371# CONFIG_INPUT_TABLET is not set
372# CONFIG_INPUT_TOUCHSCREEN is not set
373# CONFIG_INPUT_MISC is not set
374
375#
376# Hardware I/O ports
377#
378# CONFIG_SERIO is not set
379# CONFIG_GAMEPORT is not set
380
381#
382# Character devices
383#
384CONFIG_VT=y
385CONFIG_VT_CONSOLE=y
386CONFIG_HW_CONSOLE=y
387# CONFIG_VT_HW_CONSOLE_BINDING is not set
388# CONFIG_SERIAL_NONSTANDARD is not set
389
390#
391# Serial drivers
392#
393# CONFIG_SERIAL_8250 is not set
394
395#
396# Non-8250 serial port support
397#
398CONFIG_UNIX98_PTYS=y
399# CONFIG_LEGACY_PTYS is not set
400
401#
402# IPMI
403#
404# CONFIG_IPMI_HANDLER is not set
405# CONFIG_WATCHDOG is not set
406CONFIG_HW_RANDOM=y
407# CONFIG_NVRAM is not set
408CONFIG_OMAP_RTC=y
409# CONFIG_R3964 is not set
410# CONFIG_RAW_DRIVER is not set
411
412#
413# TPM devices
414#
415# CONFIG_TCG_TPM is not set
416# CONFIG_I2C is not set
417
418#
419# SPI support
420#
421# CONFIG_SPI is not set
422# CONFIG_SPI_MASTER is not set
423
424#
425# Dallas's 1-wire bus
426#
427# CONFIG_W1 is not set
428# CONFIG_HWMON is not set
429
430#
431# Misc devices
432#
433# CONFIG_BLINK is not set
434
435#
436# Multifunction device drivers
437#
438# CONFIG_MFD_SM501 is not set
439
440#
441# LED devices
442#
443# CONFIG_NEW_LEDS is not set
444
445#
446# LED drivers
447#
448
449#
450# LED Triggers
451#
452
453#
454# Multimedia devices
455#
456# CONFIG_VIDEO_DEV is not set
457CONFIG_DAB=y
458
459#
460# Graphics support
461#
462# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
463
464#
465# Display device support
466#
467# CONFIG_DISPLAY_SUPPORT is not set
468# CONFIG_VGASTATE is not set
469CONFIG_FB=y
470# CONFIG_FIRMWARE_EDID is not set
471# CONFIG_FB_DDC is not set
472# CONFIG_FB_CFB_FILLRECT is not set
473# CONFIG_FB_CFB_COPYAREA is not set
474# CONFIG_FB_CFB_IMAGEBLIT is not set
475# CONFIG_FB_SYS_FILLRECT is not set
476# CONFIG_FB_SYS_COPYAREA is not set
477# CONFIG_FB_SYS_IMAGEBLIT is not set
478# CONFIG_FB_SYS_FOPS is not set
479CONFIG_FB_DEFERRED_IO=y
480# CONFIG_FB_SVGALIB is not set
481# CONFIG_FB_MACMODES is not set
482# CONFIG_FB_BACKLIGHT is not set
483# CONFIG_FB_MODE_HELPERS is not set
484# CONFIG_FB_TILEBLITTING is not set
485
486#
487# Frame buffer hardware drivers
488#
489# CONFIG_FB_S1D13XXX is not set
490CONFIG_FB_OMAP=y
491# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
492# CONFIG_FB_OMAP_LCD_MIPID is not set
493# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
494CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
495# CONFIG_FB_OMAP_DMA_TUNE is not set
496# CONFIG_FB_VIRTUAL is not set
497
498#
499# Console display driver support
500#
501# CONFIG_VGA_CONSOLE is not set
502CONFIG_DUMMY_CONSOLE=y
503CONFIG_FRAMEBUFFER_CONSOLE=y
504# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
505# CONFIG_FONTS is not set
506CONFIG_FONT_8x8=y
507CONFIG_FONT_8x16=y
508CONFIG_LOGO=y
509# CONFIG_LOGO_LINUX_MONO is not set
510# CONFIG_LOGO_LINUX_VGA16 is not set
511CONFIG_LOGO_LINUX_CLUT224=y
512
513#
514# Sound
515#
516# CONFIG_SOUND is not set
517
518#
519# HID Devices
520#
521CONFIG_HID=y
522# CONFIG_HID_DEBUG is not set
523
524#
525# USB support
526#
527CONFIG_USB_ARCH_HAS_HCD=y
528CONFIG_USB_ARCH_HAS_OHCI=y
529# CONFIG_USB_ARCH_HAS_EHCI is not set
530# CONFIG_USB is not set
531# CONFIG_USB_MUSB_HDRC is not set
532# CONFIG_USB_GADGET_MUSB_HDRC is not set
533
534#
535# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
536#
537
538#
539# USB Gadget Support
540#
541CONFIG_USB_GADGET=y
542# CONFIG_USB_GADGET_DEBUG_FILES is not set
543CONFIG_USB_GADGET_SELECTED=y
544# CONFIG_USB_GADGET_FSL_USB2 is not set
545# CONFIG_USB_GADGET_NET2280 is not set
546# CONFIG_USB_GADGET_PXA2XX is not set
547# CONFIG_USB_GADGET_GOKU is not set
548# CONFIG_USB_GADGET_LH7A40X is not set
549CONFIG_USB_GADGET_OMAP=y
550CONFIG_USB_OMAP=y
551# CONFIG_USB_GADGET_AT91 is not set
552# CONFIG_USB_GADGET_DUMMY_HCD is not set
553# CONFIG_USB_GADGET_DUALSPEED is not set
554CONFIG_USB_ZERO=y
555# CONFIG_USB_ETH is not set
556# CONFIG_USB_GADGETFS is not set
557# CONFIG_USB_FILE_STORAGE is not set
558# CONFIG_USB_G_SERIAL is not set
559# CONFIG_USB_MIDI_GADGET is not set
560CONFIG_MMC=y
561# CONFIG_MMC_DEBUG is not set
562# CONFIG_MMC_UNSAFE_RESUME is not set
563
564#
565# MMC/SD Card Drivers
566#
567CONFIG_MMC_BLOCK=y
568
569#
570# MMC/SD Host Controller Drivers
571#
572CONFIG_MMC_OMAP=y
573
574#
575# Real Time Clock
576#
577CONFIG_RTC_LIB=y
578# CONFIG_RTC_CLASS is not set
579
580#
581# CBUS support
582#
583# CONFIG_CBUS is not set
584
585#
586# File systems
587#
588CONFIG_EXT2_FS=y
589# CONFIG_EXT2_FS_XATTR is not set
590# CONFIG_EXT2_FS_XIP is not set
591# CONFIG_EXT3_FS is not set
592# CONFIG_EXT4DEV_FS is not set
593# CONFIG_REISERFS_FS is not set
594# CONFIG_JFS_FS is not set
595# CONFIG_FS_POSIX_ACL is not set
596# CONFIG_XFS_FS is not set
597# CONFIG_GFS2_FS is not set
598# CONFIG_MINIX_FS is not set
599# CONFIG_ROMFS_FS is not set
600# CONFIG_INOTIFY is not set
601# CONFIG_QUOTA is not set
602CONFIG_DNOTIFY=y
603# CONFIG_AUTOFS_FS is not set
604# CONFIG_AUTOFS4_FS is not set
605# CONFIG_FUSE_FS is not set
606
607#
608# CD-ROM/DVD Filesystems
609#
610# CONFIG_ISO9660_FS is not set
611# CONFIG_UDF_FS is not set
612
613#
614# DOS/FAT/NT Filesystems
615#
616CONFIG_FAT_FS=y
617CONFIG_MSDOS_FS=y
618CONFIG_VFAT_FS=y
619CONFIG_FAT_DEFAULT_CODEPAGE=850
620CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
621# CONFIG_NTFS_FS is not set
622
623#
624# Pseudo filesystems
625#
626CONFIG_PROC_FS=y
627CONFIG_PROC_SYSCTL=y
628CONFIG_SYSFS=y
629CONFIG_TMPFS=y
630# CONFIG_TMPFS_POSIX_ACL is not set
631# CONFIG_HUGETLB_PAGE is not set
632CONFIG_RAMFS=y
633# CONFIG_CONFIGFS_FS is not set
634
635#
636# Miscellaneous filesystems
637#
638# CONFIG_ADFS_FS is not set
639# CONFIG_AFFS_FS is not set
640# CONFIG_HFS_FS is not set
641# CONFIG_HFSPLUS_FS is not set
642# CONFIG_BEFS_FS is not set
643# CONFIG_BFS_FS is not set
644# CONFIG_EFS_FS is not set
645CONFIG_CRAMFS=y
646# CONFIG_VXFS_FS is not set
647# CONFIG_HPFS_FS is not set
648# CONFIG_QNX4FS_FS is not set
649# CONFIG_SYSV_FS is not set
650# CONFIG_UFS_FS is not set
651
652#
653# Partition Types
654#
655CONFIG_PARTITION_ADVANCED=y
656# CONFIG_ACORN_PARTITION is not set
657# CONFIG_OSF_PARTITION is not set
658# CONFIG_AMIGA_PARTITION is not set
659# CONFIG_ATARI_PARTITION is not set
660# CONFIG_MAC_PARTITION is not set
661CONFIG_MSDOS_PARTITION=y
662# CONFIG_BSD_DISKLABEL is not set
663# CONFIG_MINIX_SUBPARTITION is not set
664# CONFIG_SOLARIS_X86_PARTITION is not set
665# CONFIG_UNIXWARE_DISKLABEL is not set
666# CONFIG_LDM_PARTITION is not set
667# CONFIG_SGI_PARTITION is not set
668# CONFIG_ULTRIX_PARTITION is not set
669# CONFIG_SUN_PARTITION is not set
670# CONFIG_KARMA_PARTITION is not set
671# CONFIG_EFI_PARTITION is not set
672# CONFIG_SYSV68_PARTITION is not set
673
674#
675# Native Language Support
676#
677CONFIG_NLS=y
678CONFIG_NLS_DEFAULT="iso8859-1"
679# CONFIG_NLS_CODEPAGE_437 is not set
680# CONFIG_NLS_CODEPAGE_737 is not set
681# CONFIG_NLS_CODEPAGE_775 is not set
682CONFIG_NLS_CODEPAGE_850=y
683# CONFIG_NLS_CODEPAGE_852 is not set
684# CONFIG_NLS_CODEPAGE_855 is not set
685# CONFIG_NLS_CODEPAGE_857 is not set
686# CONFIG_NLS_CODEPAGE_860 is not set
687# CONFIG_NLS_CODEPAGE_861 is not set
688# CONFIG_NLS_CODEPAGE_862 is not set
689# CONFIG_NLS_CODEPAGE_863 is not set
690# CONFIG_NLS_CODEPAGE_864 is not set
691# CONFIG_NLS_CODEPAGE_865 is not set
692# CONFIG_NLS_CODEPAGE_866 is not set
693# CONFIG_NLS_CODEPAGE_869 is not set
694# CONFIG_NLS_CODEPAGE_936 is not set
695# CONFIG_NLS_CODEPAGE_950 is not set
696# CONFIG_NLS_CODEPAGE_932 is not set
697# CONFIG_NLS_CODEPAGE_949 is not set
698# CONFIG_NLS_CODEPAGE_874 is not set
699# CONFIG_NLS_ISO8859_8 is not set
700# CONFIG_NLS_CODEPAGE_1250 is not set
701# CONFIG_NLS_CODEPAGE_1251 is not set
702# CONFIG_NLS_ASCII is not set
703CONFIG_NLS_ISO8859_1=y
704# CONFIG_NLS_ISO8859_2 is not set
705# CONFIG_NLS_ISO8859_3 is not set
706# CONFIG_NLS_ISO8859_4 is not set
707# CONFIG_NLS_ISO8859_5 is not set
708# CONFIG_NLS_ISO8859_6 is not set
709# CONFIG_NLS_ISO8859_7 is not set
710# CONFIG_NLS_ISO8859_9 is not set
711# CONFIG_NLS_ISO8859_13 is not set
712# CONFIG_NLS_ISO8859_14 is not set
713# CONFIG_NLS_ISO8859_15 is not set
714# CONFIG_NLS_KOI8_R is not set
715# CONFIG_NLS_KOI8_U is not set
716# CONFIG_NLS_UTF8 is not set
717
718#
719# Profiling support
720#
721# CONFIG_PROFILING is not set
722
723#
724# Kernel hacking
725#
726# CONFIG_PRINTK_TIME is not set
727CONFIG_ENABLE_MUST_CHECK=y
728# CONFIG_MAGIC_SYSRQ is not set
729# CONFIG_UNUSED_SYMBOLS is not set
730# CONFIG_DEBUG_FS is not set
731# CONFIG_HEADERS_CHECK is not set
732# CONFIG_DEBUG_KERNEL is not set
733CONFIG_DEBUG_BUGVERBOSE=y
734CONFIG_FRAME_POINTER=y
735# CONFIG_DEBUG_USER is not set
736
737#
738# Security options
739#
740# CONFIG_KEYS is not set
741# CONFIG_SECURITY is not set
742
743#
744# Cryptographic options
745#
746# CONFIG_CRYPTO is not set
747
748#
749# Library routines
750#
751CONFIG_BITREVERSE=y
752CONFIG_CRC_CCITT=y
753# CONFIG_CRC16 is not set
754# CONFIG_CRC_ITU_T is not set
755CONFIG_CRC32=y
756# CONFIG_LIBCRC32C is not set
757CONFIG_ZLIB_INFLATE=y
758CONFIG_PLIST=y
759CONFIG_HAS_IOMEM=y
760CONFIG_HAS_IOPORT=y
761CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/palmtt_defconfig b/arch/arm/configs/palmtt_defconfig
new file mode 100644
index 000000000000..e54ced41217e
--- /dev/null
+++ b/arch/arm/configs/palmtt_defconfig
@@ -0,0 +1,844 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.19-rc3-omap1
4# Sun Oct 29 00:36:12 2006
5#
6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
8CONFIG_MMU=y
9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_VECTORS_BASE=0xffff0000
17CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
18
19#
20# Code maturity level options
21#
22CONFIG_EXPERIMENTAL=y
23CONFIG_BROKEN_ON_SMP=y
24CONFIG_INIT_ENV_ARG_LIMIT=32
25
26#
27# General setup
28#
29CONFIG_LOCALVERSION=""
30CONFIG_LOCALVERSION_AUTO=y
31CONFIG_SWAP=y
32CONFIG_SYSVIPC=y
33# CONFIG_IPC_NS is not set
34# CONFIG_POSIX_MQUEUE is not set
35CONFIG_BSD_PROCESS_ACCT=y
36# CONFIG_BSD_PROCESS_ACCT_V3 is not set
37# CONFIG_TASKSTATS is not set
38# CONFIG_UTS_NS is not set
39# CONFIG_AUDIT is not set
40# CONFIG_IKCONFIG is not set
41# CONFIG_RELAY is not set
42CONFIG_INITRAMFS_SOURCE=""
43CONFIG_CC_OPTIMIZE_FOR_SIZE=y
44CONFIG_SYSCTL=y
45# CONFIG_EMBEDDED is not set
46CONFIG_UID16=y
47# CONFIG_SYSCTL_SYSCALL is not set
48CONFIG_KALLSYMS=y
49# CONFIG_KALLSYMS_EXTRA_PASS is not set
50CONFIG_HOTPLUG=y
51CONFIG_PRINTK=y
52CONFIG_BUG=y
53CONFIG_ELF_CORE=y
54CONFIG_BASE_FULL=y
55CONFIG_FUTEX=y
56CONFIG_EPOLL=y
57CONFIG_SHMEM=y
58CONFIG_SLAB=y
59CONFIG_VM_EVENT_COUNTERS=y
60CONFIG_RT_MUTEXES=y
61# CONFIG_TINY_SHMEM is not set
62CONFIG_BASE_SMALL=0
63# CONFIG_SLOB is not set
64
65#
66# Loadable module support
67#
68# CONFIG_MODULES is not set
69
70#
71# Block layer
72#
73CONFIG_BLOCK=y
74# CONFIG_BLK_DEV_IO_TRACE is not set
75
76#
77# IO Schedulers
78#
79CONFIG_IOSCHED_NOOP=y
80# CONFIG_IOSCHED_AS is not set
81# CONFIG_IOSCHED_DEADLINE is not set
82# CONFIG_IOSCHED_CFQ is not set
83# CONFIG_DEFAULT_AS is not set
84# CONFIG_DEFAULT_DEADLINE is not set
85# CONFIG_DEFAULT_CFQ is not set
86CONFIG_DEFAULT_NOOP=y
87CONFIG_DEFAULT_IOSCHED="noop"
88
89#
90# System Type
91#
92# CONFIG_ARCH_AAEC2000 is not set
93# CONFIG_ARCH_INTEGRATOR is not set
94# CONFIG_ARCH_REALVIEW is not set
95# CONFIG_ARCH_VERSATILE is not set
96# CONFIG_ARCH_AT91 is not set
97# CONFIG_ARCH_CLPS7500 is not set
98# CONFIG_ARCH_CLPS711X is not set
99# CONFIG_ARCH_CO285 is not set
100# CONFIG_ARCH_EBSA110 is not set
101# CONFIG_ARCH_EP93XX is not set
102# CONFIG_ARCH_FOOTBRIDGE is not set
103# CONFIG_ARCH_NETX is not set
104# CONFIG_ARCH_H720X is not set
105# CONFIG_ARCH_IMX is not set
106# CONFIG_ARCH_IOP32X is not set
107# CONFIG_ARCH_IOP33X is not set
108# CONFIG_ARCH_IXP4XX is not set
109# CONFIG_ARCH_IXP2000 is not set
110# CONFIG_ARCH_IXP23XX is not set
111# CONFIG_ARCH_L7200 is not set
112# CONFIG_ARCH_PNX4008 is not set
113# CONFIG_ARCH_PXA is not set
114# CONFIG_ARCH_RPC is not set
115# CONFIG_ARCH_SA1100 is not set
116# CONFIG_ARCH_S3C2410 is not set
117# CONFIG_ARCH_SHARK is not set
118# CONFIG_ARCH_LH7A40X is not set
119CONFIG_ARCH_OMAP=y
120
121#
122# TI OMAP Implementations
123#
124CONFIG_ARCH_OMAP1=y
125# CONFIG_ARCH_OMAP2 is not set
126
127#
128# OMAP Feature Selections
129#
130# CONFIG_OMAP_RESET_CLOCKS is not set
131# CONFIG_OMAP_BOOT_TAG is not set
132# CONFIG_OMAP_GPIO_SWITCH is not set
133CONFIG_OMAP_MUX=y
134# CONFIG_OMAP_MUX_DEBUG is not set
135CONFIG_OMAP_MUX_WARNINGS=y
136CONFIG_OMAP_MCBSP=y
137CONFIG_OMAP_MPU_TIMER=y
138# CONFIG_OMAP_32K_TIMER is not set
139# CONFIG_OMAP_LL_DEBUG_UART1 is not set
140CONFIG_OMAP_LL_DEBUG_UART2=y
141# CONFIG_OMAP_LL_DEBUG_UART3 is not set
142CONFIG_OMAP_SERIAL_WAKE=y
143CONFIG_OMAP_DSP=y
144# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
145# CONFIG_OMAP_DSP_TASK_MULTIOPEN is not set
146CONFIG_OMAP_DSP_FBEXPORT=y
147
148#
149# OMAP Core Type
150#
151# CONFIG_ARCH_OMAP730 is not set
152CONFIG_ARCH_OMAP15XX=y
153# CONFIG_ARCH_OMAP16XX is not set
154
155#
156# OMAP Board Type
157#
158# CONFIG_MACH_OMAP_INNOVATOR is not set
159# CONFIG_MACH_VOICEBLUE is not set
160# CONFIG_MACH_OMAP_PALMTE is not set
161# CONFIG_MACH_OMAP_PALMZ71 is not set
162CONFIG_MACH_OMAP_PALMTT=y
163# CONFIG_MACH_AMS_DELTA is not set
164# CONFIG_MACH_OMAP_GENERIC is not set
165
166#
167# OMAP CPU Speed
168#
169CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
170# CONFIG_OMAP_ARM_168MHZ is not set
171# CONFIG_OMAP_ARM_150MHZ is not set
172# CONFIG_OMAP_ARM_120MHZ is not set
173# CONFIG_OMAP_ARM_60MHZ is not set
174# CONFIG_OMAP_ARM_30MHZ is not set
175
176#
177# Processor Type
178#
179CONFIG_CPU_32=y
180CONFIG_CPU_ARM925T=y
181CONFIG_CPU_32v4T=y
182CONFIG_CPU_ABRT_EV4T=y
183CONFIG_CPU_CACHE_V4WT=y
184CONFIG_CPU_CACHE_VIVT=y
185CONFIG_CPU_COPY_V4WB=y
186CONFIG_CPU_TLB_V4WBI=y
187CONFIG_CPU_CP15=y
188CONFIG_CPU_CP15_MMU=y
189
190#
191# Processor Features
192#
193CONFIG_ARM_THUMB=y
194# CONFIG_CPU_ICACHE_DISABLE is not set
195# CONFIG_CPU_DCACHE_DISABLE is not set
196# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
197
198#
199# Bus support
200#
201
202#
203# PCCARD (PCMCIA/CardBus) support
204#
205# CONFIG_PCCARD is not set
206
207#
208# Kernel Features
209#
210# CONFIG_PREEMPT is not set
211# CONFIG_NO_IDLE_HZ is not set
212CONFIG_HZ=100
213# CONFIG_AEABI is not set
214# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
215CONFIG_SELECT_MEMORY_MODEL=y
216CONFIG_FLATMEM_MANUAL=y
217# CONFIG_DISCONTIGMEM_MANUAL is not set
218# CONFIG_SPARSEMEM_MANUAL is not set
219CONFIG_FLATMEM=y
220CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_STATIC is not set
222CONFIG_SPLIT_PTLOCK_CPUS=4096
223# CONFIG_RESOURCES_64BIT is not set
224# CONFIG_LEDS is not set
225CONFIG_ALIGNMENT_TRAP=y
226
227#
228# Boot options
229#
230CONFIG_ZBOOT_ROM_TEXT=0x0
231CONFIG_ZBOOT_ROM_BSS=0x0
232CONFIG_CMDLINE="root=/dev/mmcblk0p2 rw init=/init"
233# CONFIG_XIP_KERNEL is not set
234
235#
236# CPU Frequency scaling
237#
238# CONFIG_CPU_FREQ is not set
239
240#
241# Floating point emulation
242#
243
244#
245# At least one emulation must be selected
246#
247CONFIG_FPE_NWFPE=y
248# CONFIG_FPE_NWFPE_XP is not set
249# CONFIG_FPE_FASTFPE is not set
250
251#
252# Userspace binary formats
253#
254CONFIG_BINFMT_ELF=y
255# CONFIG_BINFMT_AOUT is not set
256# CONFIG_BINFMT_MISC is not set
257# CONFIG_ARTHUR is not set
258
259#
260# Power management options
261#
262# CONFIG_PM is not set
263# CONFIG_APM is not set
264
265#
266# Networking
267#
268CONFIG_NET=y
269
270#
271# Networking options
272#
273# CONFIG_NETDEBUG is not set
274CONFIG_PACKET=y
275# CONFIG_PACKET_MMAP is not set
276CONFIG_UNIX=y
277CONFIG_XFRM=y
278# CONFIG_XFRM_USER is not set
279# CONFIG_XFRM_SUB_POLICY is not set
280CONFIG_NET_KEY=y
281CONFIG_INET=y
282# CONFIG_IP_MULTICAST is not set
283# CONFIG_IP_ADVANCED_ROUTER is not set
284CONFIG_IP_FIB_HASH=y
285# CONFIG_IP_PNP is not set
286# CONFIG_NET_IPIP is not set
287# CONFIG_NET_IPGRE is not set
288# CONFIG_ARPD is not set
289# CONFIG_SYN_COOKIES is not set
290# CONFIG_INET_AH is not set
291# CONFIG_INET_ESP is not set
292# CONFIG_INET_IPCOMP is not set
293# CONFIG_INET_XFRM_TUNNEL is not set
294# CONFIG_INET_TUNNEL is not set
295# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
296# CONFIG_INET_XFRM_MODE_TUNNEL is not set
297# CONFIG_INET_XFRM_MODE_BEET is not set
298# CONFIG_INET_DIAG is not set
299# CONFIG_TCP_CONG_ADVANCED is not set
300CONFIG_TCP_CONG_CUBIC=y
301CONFIG_DEFAULT_TCP_CONG="cubic"
302# CONFIG_IPV6 is not set
303# CONFIG_INET6_XFRM_TUNNEL is not set
304# CONFIG_INET6_TUNNEL is not set
305# CONFIG_NETWORK_SECMARK is not set
306# CONFIG_NETFILTER is not set
307
308#
309# DCCP Configuration (EXPERIMENTAL)
310#
311# CONFIG_IP_DCCP is not set
312
313#
314# SCTP Configuration (EXPERIMENTAL)
315#
316# CONFIG_IP_SCTP is not set
317
318#
319# TIPC Configuration (EXPERIMENTAL)
320#
321# CONFIG_TIPC is not set
322# CONFIG_ATM is not set
323# CONFIG_BRIDGE is not set
324# CONFIG_VLAN_8021Q is not set
325# CONFIG_DECNET is not set
326# CONFIG_LLC2 is not set
327# CONFIG_IPX is not set
328# CONFIG_ATALK is not set
329# CONFIG_X25 is not set
330# CONFIG_LAPB is not set
331# CONFIG_ECONET is not set
332# CONFIG_WAN_ROUTER is not set
333
334#
335# QoS and/or fair queueing
336#
337# CONFIG_NET_SCHED is not set
338
339#
340# Network testing
341#
342# CONFIG_NET_PKTGEN is not set
343# CONFIG_HAMRADIO is not set
344# CONFIG_IRDA is not set
345# CONFIG_BT is not set
346# CONFIG_IEEE80211 is not set
347
348#
349# Device Drivers
350#
351
352#
353# Generic Driver Options
354#
355CONFIG_STANDALONE=y
356CONFIG_PREVENT_FIRMWARE_BUILD=y
357# CONFIG_FW_LOADER is not set
358# CONFIG_SYS_HYPERVISOR is not set
359
360#
361# Connector - unified userspace <-> kernelspace linker
362#
363# CONFIG_CONNECTOR is not set
364
365#
366# Memory Technology Devices (MTD)
367#
368# CONFIG_MTD is not set
369
370#
371# Parallel port support
372#
373# CONFIG_PARPORT is not set
374
375#
376# Plug and Play support
377#
378
379#
380# Block devices
381#
382# CONFIG_BLK_DEV_COW_COMMON is not set
383# CONFIG_BLK_DEV_LOOP is not set
384# CONFIG_BLK_DEV_NBD is not set
385# CONFIG_BLK_DEV_RAM is not set
386# CONFIG_BLK_DEV_INITRD is not set
387# CONFIG_CDROM_PKTCDVD is not set
388# CONFIG_ATA_OVER_ETH is not set
389
390#
391# SCSI device support
392#
393# CONFIG_RAID_ATTRS is not set
394# CONFIG_SCSI is not set
395# CONFIG_SCSI_NETLINK is not set
396
397#
398# Multi-device support (RAID and LVM)
399#
400# CONFIG_MD is not set
401
402#
403# Fusion MPT device support
404#
405# CONFIG_FUSION is not set
406
407#
408# IEEE 1394 (FireWire) support
409#
410
411#
412# I2O device support
413#
414
415#
416# Network device support
417#
418# CONFIG_NETDEVICES is not set
419# CONFIG_NETPOLL is not set
420# CONFIG_NET_POLL_CONTROLLER is not set
421
422#
423# ISDN subsystem
424#
425# CONFIG_ISDN is not set
426
427#
428# Input device support
429#
430CONFIG_INPUT=y
431# CONFIG_INPUT_FF_MEMLESS is not set
432
433#
434# Userland interfaces
435#
436CONFIG_INPUT_MOUSEDEV=y
437CONFIG_INPUT_MOUSEDEV_PSAUX=y
438CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
439CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
440# CONFIG_INPUT_JOYDEV is not set
441CONFIG_INPUT_TSDEV=y
442CONFIG_INPUT_TSDEV_SCREEN_X=320
443CONFIG_INPUT_TSDEV_SCREEN_Y=320
444CONFIG_INPUT_EVDEV=y
445# CONFIG_INPUT_EVBUG is not set
446
447#
448# Input Device Drivers
449#
450# CONFIG_INPUT_KEYBOARD is not set
451# CONFIG_INPUT_MOUSE is not set
452# CONFIG_INPUT_JOYSTICK is not set
453CONFIG_INPUT_TOUCHSCREEN=y
454CONFIG_TOUCHSCREEN_ADS7846=y
455# CONFIG_TOUCHSCREEN_GUNZE is not set
456# CONFIG_TOUCHSCREEN_ELO is not set
457# CONFIG_TOUCHSCREEN_MTOUCH is not set
458# CONFIG_TOUCHSCREEN_MK712 is not set
459# CONFIG_TOUCHSCREEN_PENMOUNT is not set
460# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
461# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
462# CONFIG_TOUCHSCREEN_TSC2102 is not set
463# CONFIG_INPUT_MISC is not set
464
465#
466# Hardware I/O ports
467#
468# CONFIG_SERIO is not set
469# CONFIG_GAMEPORT is not set
470
471#
472# Character devices
473#
474CONFIG_VT=y
475CONFIG_VT_CONSOLE=y
476CONFIG_HW_CONSOLE=y
477# CONFIG_VT_HW_CONSOLE_BINDING is not set
478# CONFIG_SERIAL_NONSTANDARD is not set
479
480#
481# Serial drivers
482#
483# CONFIG_SERIAL_8250 is not set
484
485#
486# Non-8250 serial port support
487#
488CONFIG_UNIX98_PTYS=y
489CONFIG_LEGACY_PTYS=y
490CONFIG_LEGACY_PTY_COUNT=256
491
492#
493# IPMI
494#
495# CONFIG_IPMI_HANDLER is not set
496
497#
498# Watchdog Cards
499#
500# CONFIG_WATCHDOG is not set
501CONFIG_HW_RANDOM=y
502# CONFIG_NVRAM is not set
503# CONFIG_OMAP_RTC is not set
504# CONFIG_DTLK is not set
505# CONFIG_R3964 is not set
506
507#
508# Ftape, the floppy tape device driver
509#
510# CONFIG_RAW_DRIVER is not set
511
512#
513# TPM devices
514#
515# CONFIG_TCG_TPM is not set
516
517#
518# I2C support
519#
520# CONFIG_I2C is not set
521
522#
523# SPI support
524#
525CONFIG_SPI=y
526CONFIG_SPI_MASTER=y
527
528#
529# SPI Master Controller Drivers
530#
531CONFIG_SPI_BITBANG=y
532CONFIG_SPI_OMAP_UWIRE=y
533
534#
535# SPI Protocol Masters
536#
537# CONFIG_TSC2102 is not set
538
539#
540# Dallas's 1-wire bus
541#
542# CONFIG_W1 is not set
543
544#
545# Hardware Monitoring support
546#
547CONFIG_HWMON=y
548# CONFIG_HWMON_VID is not set
549# CONFIG_SENSORS_ABITUGURU is not set
550# CONFIG_SENSORS_F71805F is not set
551# CONFIG_SENSORS_LM70 is not set
552# CONFIG_SENSORS_VT1211 is not set
553# CONFIG_HWMON_DEBUG_CHIP is not set
554
555#
556# Misc devices
557#
558# CONFIG_SGI_IOC4 is not set
559# CONFIG_TIFM_CORE is not set
560
561#
562# LED devices
563#
564CONFIG_NEW_LEDS=y
565CONFIG_LEDS_CLASS=y
566
567#
568# LED drivers
569#
570CONFIG_LEDS_OMAP=y
571
572#
573# LED Triggers
574#
575CONFIG_LEDS_TRIGGERS=y
576CONFIG_LEDS_TRIGGER_TIMER=y
577CONFIG_LEDS_TRIGGER_HEARTBEAT=y
578
579#
580# Multimedia devices
581#
582# CONFIG_VIDEO_DEV is not set
583
584#
585# Digital Video Broadcasting Devices
586#
587# CONFIG_DVB is not set
588
589#
590# Graphics support
591#
592CONFIG_FIRMWARE_EDID=y
593CONFIG_FB=y
594# CONFIG_FB_CFB_FILLRECT is not set
595# CONFIG_FB_CFB_COPYAREA is not set
596# CONFIG_FB_CFB_IMAGEBLIT is not set
597# CONFIG_FB_MACMODES is not set
598# CONFIG_FB_BACKLIGHT is not set
599# CONFIG_FB_MODE_HELPERS is not set
600# CONFIG_FB_TILEBLITTING is not set
601# CONFIG_FB_S1D13XXX is not set
602# CONFIG_FB_VIRTUAL is not set
603CONFIG_FB_OMAP=y
604# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
605# CONFIG_FB_OMAP_LCD_MIPID is not set
606# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
607CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
608# CONFIG_FB_OMAP_DMA_TUNE is not set
609
610#
611# Console display driver support
612#
613# CONFIG_VGA_CONSOLE is not set
614CONFIG_DUMMY_CONSOLE=y
615CONFIG_FRAMEBUFFER_CONSOLE=y
616# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
617# CONFIG_FONTS is not set
618CONFIG_FONT_8x8=y
619CONFIG_FONT_8x16=y
620
621#
622# Logo configuration
623#
624# CONFIG_LOGO is not set
625CONFIG_BACKLIGHT_LCD_SUPPORT=y
626CONFIG_BACKLIGHT_CLASS_DEVICE=y
627CONFIG_BACKLIGHT_DEVICE=y
628CONFIG_LCD_CLASS_DEVICE=y
629CONFIG_LCD_DEVICE=y
630CONFIG_BACKLIGHT_OMAP=y
631
632#
633# Sound
634#
635# CONFIG_SOUND is not set
636
637#
638# USB support
639#
640CONFIG_USB_ARCH_HAS_HCD=y
641CONFIG_USB_ARCH_HAS_OHCI=y
642# CONFIG_USB_ARCH_HAS_EHCI is not set
643# CONFIG_USB is not set
644
645#
646# Enable Host or Gadget support to see Inventra options
647#
648
649#
650# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
651#
652
653#
654# USB Gadget Support
655#
656# CONFIG_USB_GADGET is not set
657
658#
659# MMC/SD Card support
660#
661# CONFIG_MMC is not set
662
663#
664# Real Time Clock
665#
666CONFIG_RTC_LIB=y
667CONFIG_RTC_CLASS=y
668CONFIG_RTC_HCTOSYS=y
669CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
670# CONFIG_RTC_DEBUG is not set
671
672#
673# RTC interfaces
674#
675CONFIG_RTC_INTF_SYSFS=y
676CONFIG_RTC_INTF_PROC=y
677CONFIG_RTC_INTF_DEV=y
678# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
679
680#
681# RTC drivers
682#
683# CONFIG_RTC_DRV_DS1553 is not set
684# CONFIG_RTC_DRV_DS1742 is not set
685CONFIG_RTC_DRV_OMAP=y
686# CONFIG_RTC_DRV_RS5C348 is not set
687# CONFIG_RTC_DRV_M48T86 is not set
688# CONFIG_RTC_DRV_TEST is not set
689# CONFIG_RTC_DRV_MAX6902 is not set
690# CONFIG_RTC_DRV_V3020 is not set
691
692#
693# Synchronous Serial Interfaces (SSI)
694#
695# CONFIG_OMAP_UWIRE is not set
696# CONFIG_OMAP_TSC2101 is not set
697
698#
699# CBUS support
700#
701# CONFIG_CBUS is not set
702
703#
704# File systems
705#
706CONFIG_EXT2_FS=y
707# CONFIG_EXT2_FS_XATTR is not set
708# CONFIG_EXT2_FS_XIP is not set
709# CONFIG_EXT3_FS is not set
710# CONFIG_EXT4DEV_FS is not set
711# CONFIG_REISERFS_FS is not set
712# CONFIG_JFS_FS is not set
713# CONFIG_FS_POSIX_ACL is not set
714# CONFIG_XFS_FS is not set
715# CONFIG_GFS2_FS is not set
716# CONFIG_OCFS2_FS is not set
717# CONFIG_MINIX_FS is not set
718# CONFIG_ROMFS_FS is not set
719# CONFIG_INOTIFY is not set
720# CONFIG_QUOTA is not set
721CONFIG_DNOTIFY=y
722# CONFIG_AUTOFS_FS is not set
723# CONFIG_AUTOFS4_FS is not set
724# CONFIG_FUSE_FS is not set
725
726#
727# CD-ROM/DVD Filesystems
728#
729# CONFIG_ISO9660_FS is not set
730# CONFIG_UDF_FS is not set
731
732#
733# DOS/FAT/NT Filesystems
734#
735# CONFIG_MSDOS_FS is not set
736# CONFIG_VFAT_FS is not set
737# CONFIG_NTFS_FS is not set
738
739#
740# Pseudo filesystems
741#
742CONFIG_PROC_FS=y
743CONFIG_PROC_SYSCTL=y
744CONFIG_SYSFS=y
745# CONFIG_TMPFS is not set
746# CONFIG_HUGETLB_PAGE is not set
747CONFIG_RAMFS=y
748# CONFIG_CONFIGFS_FS is not set
749
750#
751# Miscellaneous filesystems
752#
753# CONFIG_ADFS_FS is not set
754# CONFIG_AFFS_FS is not set
755# CONFIG_HFS_FS is not set
756# CONFIG_HFSPLUS_FS is not set
757# CONFIG_BEFS_FS is not set
758# CONFIG_BFS_FS is not set
759# CONFIG_EFS_FS is not set
760# CONFIG_CRAMFS is not set
761# CONFIG_VXFS_FS is not set
762# CONFIG_HPFS_FS is not set
763# CONFIG_QNX4FS_FS is not set
764# CONFIG_SYSV_FS is not set
765# CONFIG_UFS_FS is not set
766
767#
768# Network File Systems
769#
770# CONFIG_NFS_FS is not set
771# CONFIG_NFSD is not set
772# CONFIG_SMB_FS is not set
773# CONFIG_CIFS is not set
774# CONFIG_NCP_FS is not set
775# CONFIG_CODA_FS is not set
776# CONFIG_AFS_FS is not set
777# CONFIG_9P_FS is not set
778
779#
780# Partition Types
781#
782CONFIG_PARTITION_ADVANCED=y
783# CONFIG_ACORN_PARTITION is not set
784# CONFIG_OSF_PARTITION is not set
785# CONFIG_AMIGA_PARTITION is not set
786# CONFIG_ATARI_PARTITION is not set
787# CONFIG_MAC_PARTITION is not set
788CONFIG_MSDOS_PARTITION=y
789# CONFIG_BSD_DISKLABEL is not set
790# CONFIG_MINIX_SUBPARTITION is not set
791# CONFIG_SOLARIS_X86_PARTITION is not set
792# CONFIG_UNIXWARE_DISKLABEL is not set
793# CONFIG_LDM_PARTITION is not set
794# CONFIG_SGI_PARTITION is not set
795# CONFIG_ULTRIX_PARTITION is not set
796# CONFIG_SUN_PARTITION is not set
797# CONFIG_KARMA_PARTITION is not set
798# CONFIG_EFI_PARTITION is not set
799
800#
801# Native Language Support
802#
803# CONFIG_NLS is not set
804
805#
806# Profiling support
807#
808# CONFIG_PROFILING is not set
809
810#
811# Kernel hacking
812#
813# CONFIG_PRINTK_TIME is not set
814# CONFIG_ENABLE_MUST_CHECK is not set
815# CONFIG_MAGIC_SYSRQ is not set
816# CONFIG_UNUSED_SYMBOLS is not set
817# CONFIG_DEBUG_KERNEL is not set
818CONFIG_LOG_BUF_SHIFT=14
819CONFIG_DEBUG_BUGVERBOSE=y
820# CONFIG_DEBUG_FS is not set
821CONFIG_FRAME_POINTER=y
822# CONFIG_UNWIND_INFO is not set
823# CONFIG_HEADERS_CHECK is not set
824# CONFIG_DEBUG_USER is not set
825
826#
827# Security options
828#
829# CONFIG_KEYS is not set
830# CONFIG_SECURITY is not set
831
832#
833# Cryptographic options
834#
835# CONFIG_CRYPTO is not set
836
837#
838# Library routines
839#
840CONFIG_CRC_CCITT=y
841CONFIG_CRC16=y
842CONFIG_CRC32=y
843CONFIG_LIBCRC32C=y
844CONFIG_PLIST=y
diff --git a/arch/arm/configs/palmz71_defconfig b/arch/arm/configs/palmz71_defconfig
new file mode 100644
index 000000000000..6361922e71c1
--- /dev/null
+++ b/arch/arm/configs/palmz71_defconfig
@@ -0,0 +1,891 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Thu Jun 7 05:13:00 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_INIT_ENV_ARG_LIMIT=32
34
35#
36# General setup
37#
38CONFIG_LOCALVERSION="-z71"
39CONFIG_LOCALVERSION_AUTO=y
40CONFIG_SWAP=y
41CONFIG_SYSVIPC=y
42# CONFIG_IPC_NS is not set
43CONFIG_SYSVIPC_SYSCTL=y
44# CONFIG_POSIX_MQUEUE is not set
45CONFIG_BSD_PROCESS_ACCT=y
46# CONFIG_BSD_PROCESS_ACCT_V3 is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_UTS_NS is not set
49# CONFIG_AUDIT is not set
50# CONFIG_IKCONFIG is not set
51CONFIG_LOG_BUF_SHIFT=14
52CONFIG_SYSFS_DEPRECATED=y
53# CONFIG_RELAY is not set
54# CONFIG_BLK_DEV_INITRD is not set
55CONFIG_CC_OPTIMIZE_FOR_SIZE=y
56CONFIG_SYSCTL=y
57# CONFIG_EMBEDDED is not set
58CONFIG_UID16=y
59CONFIG_SYSCTL_SYSCALL=y
60CONFIG_KALLSYMS=y
61# CONFIG_KALLSYMS_EXTRA_PASS is not set
62CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y
64CONFIG_BUG=y
65CONFIG_ELF_CORE=y
66CONFIG_BASE_FULL=y
67CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y
71CONFIG_TIMERFD=y
72CONFIG_EVENTFD=y
73CONFIG_SHMEM=y
74CONFIG_VM_EVENT_COUNTERS=y
75CONFIG_SLAB=y
76# CONFIG_SLUB is not set
77# CONFIG_SLOB is not set
78CONFIG_RT_MUTEXES=y
79# CONFIG_TINY_SHMEM is not set
80CONFIG_BASE_SMALL=0
81
82#
83# Loadable module support
84#
85# CONFIG_MODULES is not set
86
87#
88# Block layer
89#
90CONFIG_BLOCK=y
91# CONFIG_LBD is not set
92# CONFIG_BLK_DEV_IO_TRACE is not set
93# CONFIG_LSF is not set
94
95#
96# IO Schedulers
97#
98CONFIG_IOSCHED_NOOP=y
99# CONFIG_IOSCHED_AS is not set
100# CONFIG_IOSCHED_DEADLINE is not set
101# CONFIG_IOSCHED_CFQ is not set
102# CONFIG_DEFAULT_AS is not set
103# CONFIG_DEFAULT_DEADLINE is not set
104# CONFIG_DEFAULT_CFQ is not set
105CONFIG_DEFAULT_NOOP=y
106CONFIG_DEFAULT_IOSCHED="noop"
107
108#
109# System Type
110#
111# CONFIG_ARCH_AAEC2000 is not set
112# CONFIG_ARCH_INTEGRATOR is not set
113# CONFIG_ARCH_REALVIEW is not set
114# CONFIG_ARCH_VERSATILE is not set
115# CONFIG_ARCH_AT91 is not set
116# CONFIG_ARCH_CLPS7500 is not set
117# CONFIG_ARCH_CLPS711X is not set
118# CONFIG_ARCH_CO285 is not set
119# CONFIG_ARCH_EBSA110 is not set
120# CONFIG_ARCH_EP93XX is not set
121# CONFIG_ARCH_FOOTBRIDGE is not set
122# CONFIG_ARCH_NETX is not set
123# CONFIG_ARCH_H720X is not set
124# CONFIG_ARCH_IMX is not set
125# CONFIG_ARCH_IOP13XX is not set
126# CONFIG_ARCH_IOP32X is not set
127# CONFIG_ARCH_IOP33X is not set
128# CONFIG_ARCH_IXP23XX is not set
129# CONFIG_ARCH_IXP2000 is not set
130# CONFIG_ARCH_IXP4XX is not set
131# CONFIG_ARCH_L7200 is not set
132# CONFIG_ARCH_KS8695 is not set
133# CONFIG_ARCH_NS9XXX is not set
134# CONFIG_ARCH_PNX4008 is not set
135# CONFIG_ARCH_PXA is not set
136# CONFIG_ARCH_RPC is not set
137# CONFIG_ARCH_SA1100 is not set
138# CONFIG_ARCH_S3C2410 is not set
139# CONFIG_ARCH_SHARK is not set
140# CONFIG_ARCH_LH7A40X is not set
141# CONFIG_ARCH_DAVINCI is not set
142CONFIG_ARCH_OMAP=y
143
144#
145# TI OMAP Implementations
146#
147CONFIG_ARCH_OMAP1=y
148# CONFIG_ARCH_OMAP2 is not set
149
150#
151# OMAP Feature Selections
152#
153# CONFIG_OMAP_RESET_CLOCKS is not set
154# CONFIG_OMAP_BOOT_TAG is not set
155# CONFIG_OMAP_GPIO_SWITCH is not set
156CONFIG_OMAP_MUX=y
157# CONFIG_OMAP_MUX_DEBUG is not set
158CONFIG_OMAP_MUX_WARNINGS=y
159CONFIG_OMAP_MCBSP=y
160# CONFIG_OMAP_MMU_FWK is not set
161# CONFIG_OMAP_MBOX_FWK is not set
162CONFIG_OMAP_MPU_TIMER=y
163# CONFIG_OMAP_32K_TIMER is not set
164CONFIG_OMAP_LL_DEBUG_UART1=y
165# CONFIG_OMAP_LL_DEBUG_UART2 is not set
166# CONFIG_OMAP_LL_DEBUG_UART3 is not set
167# CONFIG_OMAP_LL_DEBUG_LCD is not set
168CONFIG_OMAP_SERIAL_WAKE=y
169# CONFIG_OMAP_DSP is not set
170
171#
172# OMAP Core Type
173#
174# CONFIG_ARCH_OMAP730 is not set
175CONFIG_ARCH_OMAP15XX=y
176# CONFIG_ARCH_OMAP16XX is not set
177
178#
179# OMAP Board Type
180#
181# CONFIG_MACH_OMAP_INNOVATOR is not set
182# CONFIG_MACH_VOICEBLUE is not set
183# CONFIG_MACH_OMAP_PALMTE is not set
184CONFIG_MACH_OMAP_PALMZ71=y
185# CONFIG_MACH_OMAP_PALMTT is not set
186# CONFIG_MACH_SX1 is not set
187# CONFIG_MACH_AMS_DELTA is not set
188# CONFIG_MACH_OMAP_GENERIC is not set
189
190#
191# OMAP CPU Speed
192#
193CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER=y
194# CONFIG_OMAP_ARM_168MHZ is not set
195# CONFIG_OMAP_ARM_150MHZ is not set
196# CONFIG_OMAP_ARM_120MHZ is not set
197# CONFIG_OMAP_ARM_60MHZ is not set
198# CONFIG_OMAP_ARM_30MHZ is not set
199
200#
201# Processor Type
202#
203CONFIG_CPU_32=y
204CONFIG_CPU_ARM925T=y
205CONFIG_CPU_32v4T=y
206CONFIG_CPU_ABRT_EV4T=y
207CONFIG_CPU_CACHE_V4WT=y
208CONFIG_CPU_CACHE_VIVT=y
209CONFIG_CPU_COPY_V4WB=y
210CONFIG_CPU_TLB_V4WBI=y
211CONFIG_CPU_CP15=y
212CONFIG_CPU_CP15_MMU=y
213
214#
215# Processor Features
216#
217# CONFIG_ARM_THUMB is not set
218# CONFIG_CPU_ICACHE_DISABLE is not set
219# CONFIG_CPU_DCACHE_DISABLE is not set
220# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
221# CONFIG_OUTER_CACHE is not set
222
223#
224# Bus support
225#
226# CONFIG_ARCH_SUPPORTS_MSI is not set
227
228#
229# PCCARD (PCMCIA/CardBus) support
230#
231# CONFIG_PCCARD is not set
232
233#
234# Kernel Features
235#
236# CONFIG_TICK_ONESHOT is not set
237# CONFIG_NO_HZ is not set
238# CONFIG_HIGH_RES_TIMERS is not set
239# CONFIG_PREEMPT is not set
240CONFIG_HZ=100
241# CONFIG_AEABI is not set
242# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
243CONFIG_SELECT_MEMORY_MODEL=y
244CONFIG_FLATMEM_MANUAL=y
245# CONFIG_DISCONTIGMEM_MANUAL is not set
246# CONFIG_SPARSEMEM_MANUAL is not set
247CONFIG_FLATMEM=y
248CONFIG_FLAT_NODE_MEM_MAP=y
249# CONFIG_SPARSEMEM_STATIC is not set
250CONFIG_SPLIT_PTLOCK_CPUS=4096
251# CONFIG_RESOURCES_64BIT is not set
252CONFIG_ZONE_DMA_FLAG=1
253# CONFIG_LEDS is not set
254CONFIG_ALIGNMENT_TRAP=y
255
256#
257# Boot options
258#
259CONFIG_ZBOOT_ROM_TEXT=0x0
260CONFIG_ZBOOT_ROM_BSS=0x0
261CONFIG_CMDLINE=""
262# CONFIG_XIP_KERNEL is not set
263# CONFIG_KEXEC is not set
264
265#
266# CPU Frequency scaling
267#
268# CONFIG_CPU_FREQ is not set
269
270#
271# Floating point emulation
272#
273
274#
275# At least one emulation must be selected
276#
277CONFIG_FPE_NWFPE=y
278# CONFIG_FPE_NWFPE_XP is not set
279# CONFIG_FPE_FASTFPE is not set
280
281#
282# Userspace binary formats
283#
284CONFIG_BINFMT_ELF=y
285# CONFIG_BINFMT_AOUT is not set
286# CONFIG_BINFMT_MISC is not set
287# CONFIG_ARTHUR is not set
288
289#
290# Power management options
291#
292# CONFIG_PM is not set
293
294#
295# Networking
296#
297CONFIG_NET=y
298
299#
300# Networking options
301#
302CONFIG_PACKET=y
303# CONFIG_PACKET_MMAP is not set
304CONFIG_UNIX=y
305CONFIG_XFRM=y
306# CONFIG_XFRM_USER is not set
307# CONFIG_XFRM_SUB_POLICY is not set
308# CONFIG_XFRM_MIGRATE is not set
309CONFIG_NET_KEY=y
310# CONFIG_NET_KEY_MIGRATE is not set
311CONFIG_INET=y
312# CONFIG_IP_MULTICAST is not set
313# CONFIG_IP_ADVANCED_ROUTER is not set
314CONFIG_IP_FIB_HASH=y
315# CONFIG_IP_PNP is not set
316# CONFIG_NET_IPIP is not set
317# CONFIG_NET_IPGRE is not set
318# CONFIG_ARPD is not set
319# CONFIG_SYN_COOKIES is not set
320# CONFIG_INET_AH is not set
321# CONFIG_INET_ESP is not set
322# CONFIG_INET_IPCOMP is not set
323# CONFIG_INET_XFRM_TUNNEL is not set
324# CONFIG_INET_TUNNEL is not set
325# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
326# CONFIG_INET_XFRM_MODE_TUNNEL is not set
327CONFIG_INET_XFRM_MODE_BEET=y
328# CONFIG_INET_DIAG is not set
329# CONFIG_TCP_CONG_ADVANCED is not set
330CONFIG_TCP_CONG_CUBIC=y
331CONFIG_DEFAULT_TCP_CONG="cubic"
332# CONFIG_TCP_MD5SIG is not set
333# CONFIG_IPV6 is not set
334# CONFIG_INET6_XFRM_TUNNEL is not set
335# CONFIG_INET6_TUNNEL is not set
336# CONFIG_NETWORK_SECMARK is not set
337# CONFIG_NETFILTER is not set
338
339#
340# DCCP Configuration (EXPERIMENTAL)
341#
342# CONFIG_IP_DCCP is not set
343
344#
345# SCTP Configuration (EXPERIMENTAL)
346#
347# CONFIG_IP_SCTP is not set
348
349#
350# TIPC Configuration (EXPERIMENTAL)
351#
352# CONFIG_TIPC is not set
353# CONFIG_ATM is not set
354# CONFIG_BRIDGE is not set
355# CONFIG_VLAN_8021Q is not set
356# CONFIG_DECNET is not set
357# CONFIG_LLC2 is not set
358# CONFIG_IPX is not set
359# CONFIG_ATALK is not set
360# CONFIG_X25 is not set
361# CONFIG_LAPB is not set
362# CONFIG_ECONET is not set
363# CONFIG_WAN_ROUTER is not set
364
365#
366# QoS and/or fair queueing
367#
368# CONFIG_NET_SCHED is not set
369
370#
371# Network testing
372#
373# CONFIG_NET_PKTGEN is not set
374# CONFIG_HAMRADIO is not set
375# CONFIG_IRDA is not set
376# CONFIG_BT is not set
377# CONFIG_AF_RXRPC is not set
378
379#
380# Wireless
381#
382# CONFIG_CFG80211 is not set
383# CONFIG_WIRELESS_EXT is not set
384# CONFIG_MAC80211 is not set
385# CONFIG_IEEE80211 is not set
386# CONFIG_RFKILL is not set
387
388#
389# Device Drivers
390#
391
392#
393# Generic Driver Options
394#
395CONFIG_STANDALONE=y
396CONFIG_PREVENT_FIRMWARE_BUILD=y
397# CONFIG_FW_LOADER is not set
398# CONFIG_SYS_HYPERVISOR is not set
399
400#
401# Connector - unified userspace <-> kernelspace linker
402#
403# CONFIG_CONNECTOR is not set
404# CONFIG_MTD is not set
405
406#
407# Parallel port support
408#
409# CONFIG_PARPORT is not set
410
411#
412# Plug and Play support
413#
414# CONFIG_PNPACPI is not set
415
416#
417# Block devices
418#
419# CONFIG_BLK_DEV_COW_COMMON is not set
420# CONFIG_BLK_DEV_LOOP is not set
421# CONFIG_BLK_DEV_NBD is not set
422# CONFIG_BLK_DEV_RAM is not set
423# CONFIG_CDROM_PKTCDVD is not set
424# CONFIG_ATA_OVER_ETH is not set
425
426#
427# SCSI device support
428#
429# CONFIG_RAID_ATTRS is not set
430# CONFIG_SCSI is not set
431# CONFIG_SCSI_NETLINK is not set
432# CONFIG_ATA is not set
433
434#
435# Multi-device support (RAID and LVM)
436#
437# CONFIG_MD is not set
438
439#
440# Network device support
441#
442# CONFIG_NETDEVICES is not set
443# CONFIG_NETPOLL is not set
444# CONFIG_NET_POLL_CONTROLLER is not set
445
446#
447# ISDN subsystem
448#
449# CONFIG_ISDN is not set
450
451#
452# Input device support
453#
454CONFIG_INPUT=y
455# CONFIG_INPUT_FF_MEMLESS is not set
456
457#
458# Userland interfaces
459#
460CONFIG_INPUT_MOUSEDEV=y
461CONFIG_INPUT_MOUSEDEV_PSAUX=y
462CONFIG_INPUT_MOUSEDEV_SCREEN_X=320
463CONFIG_INPUT_MOUSEDEV_SCREEN_Y=320
464# CONFIG_INPUT_JOYDEV is not set
465CONFIG_INPUT_TSDEV=y
466CONFIG_INPUT_TSDEV_SCREEN_X=320
467CONFIG_INPUT_TSDEV_SCREEN_Y=320
468# CONFIG_INPUT_EVDEV is not set
469# CONFIG_INPUT_EVBUG is not set
470
471#
472# Input Device Drivers
473#
474# CONFIG_INPUT_KEYBOARD is not set
475# CONFIG_INPUT_MOUSE is not set
476# CONFIG_INPUT_JOYSTICK is not set
477# CONFIG_INPUT_TABLET is not set
478CONFIG_INPUT_TOUCHSCREEN=y
479CONFIG_TOUCHSCREEN_ADS7846=y
480# CONFIG_TOUCHSCREEN_GUNZE is not set
481# CONFIG_TOUCHSCREEN_ELO is not set
482# CONFIG_TOUCHSCREEN_MTOUCH is not set
483# CONFIG_TOUCHSCREEN_MK712 is not set
484# CONFIG_TOUCHSCREEN_PENMOUNT is not set
485# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
486# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
487# CONFIG_TOUCHSCREEN_UCB1400 is not set
488# CONFIG_TOUCHSCREEN_TSC210X is not set
489# CONFIG_TOUCHSCREEN_TSC2046 is not set
490# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
491# CONFIG_INPUT_MISC is not set
492
493#
494# Hardware I/O ports
495#
496# CONFIG_SERIO is not set
497# CONFIG_GAMEPORT is not set
498
499#
500# Character devices
501#
502CONFIG_VT=y
503CONFIG_VT_CONSOLE=y
504CONFIG_HW_CONSOLE=y
505# CONFIG_VT_HW_CONSOLE_BINDING is not set
506# CONFIG_SERIAL_NONSTANDARD is not set
507
508#
509# Serial drivers
510#
511CONFIG_SERIAL_8250=y
512CONFIG_SERIAL_8250_CONSOLE=y
513CONFIG_SERIAL_8250_NR_UARTS=4
514CONFIG_SERIAL_8250_RUNTIME_UARTS=4
515# CONFIG_SERIAL_8250_EXTENDED is not set
516
517#
518# Non-8250 serial port support
519#
520CONFIG_SERIAL_CORE=y
521CONFIG_SERIAL_CORE_CONSOLE=y
522CONFIG_UNIX98_PTYS=y
523CONFIG_LEGACY_PTYS=y
524CONFIG_LEGACY_PTY_COUNT=16
525
526#
527# IPMI
528#
529# CONFIG_IPMI_HANDLER is not set
530# CONFIG_WATCHDOG is not set
531CONFIG_HW_RANDOM=y
532# CONFIG_NVRAM is not set
533# CONFIG_R3964 is not set
534# CONFIG_RAW_DRIVER is not set
535
536#
537# TPM devices
538#
539# CONFIG_TCG_TPM is not set
540# CONFIG_I2C is not set
541
542#
543# SPI support
544#
545CONFIG_SPI=y
546CONFIG_SPI_MASTER=y
547
548#
549# SPI Master Controller Drivers
550#
551CONFIG_SPI_BITBANG=y
552CONFIG_SPI_OMAP_UWIRE=y
553
554#
555# SPI Protocol Masters
556#
557# CONFIG_SPI_AT25 is not set
558# CONFIG_SPI_TSC2101 is not set
559# CONFIG_SPI_TSC2102 is not set
560# CONFIG_SPI_TSC210X is not set
561# CONFIG_SPI_TSC2301 is not set
562# CONFIG_SPI_SPIDEV is not set
563
564#
565# Dallas's 1-wire bus
566#
567# CONFIG_W1 is not set
568CONFIG_HWMON=y
569# CONFIG_HWMON_VID is not set
570# CONFIG_SENSORS_ABITUGURU is not set
571# CONFIG_SENSORS_F71805F is not set
572# CONFIG_SENSORS_LM70 is not set
573# CONFIG_SENSORS_PC87427 is not set
574# CONFIG_SENSORS_SMSC47M1 is not set
575# CONFIG_SENSORS_SMSC47B397 is not set
576# CONFIG_SENSORS_VT1211 is not set
577# CONFIG_SENSORS_W83627HF is not set
578# CONFIG_SENSORS_TSC210X is not set
579# CONFIG_HWMON_DEBUG_CHIP is not set
580
581#
582# Misc devices
583#
584# CONFIG_BLINK is not set
585
586#
587# Multifunction device drivers
588#
589# CONFIG_MFD_SM501 is not set
590
591#
592# LED devices
593#
594# CONFIG_NEW_LEDS is not set
595
596#
597# LED drivers
598#
599
600#
601# LED Triggers
602#
603
604#
605# Multimedia devices
606#
607# CONFIG_VIDEO_DEV is not set
608# CONFIG_DVB_CORE is not set
609CONFIG_DAB=y
610
611#
612# Graphics support
613#
614CONFIG_BACKLIGHT_LCD_SUPPORT=y
615CONFIG_BACKLIGHT_CLASS_DEVICE=y
616CONFIG_LCD_CLASS_DEVICE=y
617CONFIG_BACKLIGHT_OMAP=y
618
619#
620# Display device support
621#
622# CONFIG_DISPLAY_SUPPORT is not set
623# CONFIG_VGASTATE is not set
624CONFIG_FB=y
625CONFIG_FIRMWARE_EDID=y
626# CONFIG_FB_DDC is not set
627# CONFIG_FB_CFB_FILLRECT is not set
628# CONFIG_FB_CFB_COPYAREA is not set
629# CONFIG_FB_CFB_IMAGEBLIT is not set
630# CONFIG_FB_SYS_FILLRECT is not set
631# CONFIG_FB_SYS_COPYAREA is not set
632# CONFIG_FB_SYS_IMAGEBLIT is not set
633# CONFIG_FB_SYS_FOPS is not set
634CONFIG_FB_DEFERRED_IO=y
635# CONFIG_FB_SVGALIB is not set
636# CONFIG_FB_MACMODES is not set
637# CONFIG_FB_BACKLIGHT is not set
638# CONFIG_FB_MODE_HELPERS is not set
639# CONFIG_FB_TILEBLITTING is not set
640
641#
642# Frame buffer hardware drivers
643#
644# CONFIG_FB_S1D13XXX is not set
645CONFIG_FB_OMAP=y
646# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
647# CONFIG_FB_OMAP_LCD_MIPID is not set
648# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
649CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
650# CONFIG_FB_OMAP_DMA_TUNE is not set
651# CONFIG_FB_VIRTUAL is not set
652
653#
654# Console display driver support
655#
656# CONFIG_VGA_CONSOLE is not set
657CONFIG_DUMMY_CONSOLE=y
658CONFIG_FRAMEBUFFER_CONSOLE=y
659# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
660# CONFIG_FONTS is not set
661CONFIG_FONT_8x8=y
662CONFIG_FONT_8x16=y
663# CONFIG_LOGO is not set
664
665#
666# Sound
667#
668# CONFIG_SOUND is not set
669
670#
671# HID Devices
672#
673CONFIG_HID=y
674# CONFIG_HID_DEBUG is not set
675
676#
677# USB support
678#
679CONFIG_USB_ARCH_HAS_HCD=y
680CONFIG_USB_ARCH_HAS_OHCI=y
681# CONFIG_USB_ARCH_HAS_EHCI is not set
682# CONFIG_USB is not set
683
684#
685# Enable Host or Gadget support to see Inventra options
686#
687
688#
689# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
690#
691
692#
693# USB Gadget Support
694#
695# CONFIG_USB_GADGET is not set
696CONFIG_MMC=y
697# CONFIG_MMC_DEBUG is not set
698# CONFIG_MMC_UNSAFE_RESUME is not set
699
700#
701# MMC/SD Card Drivers
702#
703CONFIG_MMC_BLOCK=y
704
705#
706# MMC/SD Host Controller Drivers
707#
708CONFIG_MMC_OMAP=y
709
710#
711# Real Time Clock
712#
713CONFIG_RTC_LIB=y
714CONFIG_RTC_CLASS=y
715CONFIG_RTC_HCTOSYS=y
716CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
717# CONFIG_RTC_DEBUG is not set
718
719#
720# RTC interfaces
721#
722CONFIG_RTC_INTF_SYSFS=y
723CONFIG_RTC_INTF_PROC=y
724CONFIG_RTC_INTF_DEV=y
725# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
726# CONFIG_RTC_DRV_TEST is not set
727
728#
729# I2C RTC drivers
730#
731
732#
733# SPI RTC drivers
734#
735# CONFIG_RTC_DRV_RS5C348 is not set
736# CONFIG_RTC_DRV_MAX6902 is not set
737
738#
739# Platform RTC drivers
740#
741# CONFIG_RTC_DRV_CMOS is not set
742# CONFIG_RTC_DRV_DS1553 is not set
743# CONFIG_RTC_DRV_DS1742 is not set
744# CONFIG_RTC_DRV_M48T86 is not set
745# CONFIG_RTC_DRV_V3020 is not set
746
747#
748# on-CPU RTC drivers
749#
750CONFIG_RTC_DRV_OMAP=y
751
752#
753# CBUS support
754#
755# CONFIG_CBUS is not set
756
757#
758# File systems
759#
760CONFIG_EXT2_FS=y
761# CONFIG_EXT2_FS_XATTR is not set
762# CONFIG_EXT2_FS_XIP is not set
763# CONFIG_EXT3_FS is not set
764# CONFIG_EXT4DEV_FS is not set
765# CONFIG_REISERFS_FS is not set
766# CONFIG_JFS_FS is not set
767# CONFIG_FS_POSIX_ACL is not set
768# CONFIG_XFS_FS is not set
769# CONFIG_GFS2_FS is not set
770# CONFIG_OCFS2_FS is not set
771# CONFIG_MINIX_FS is not set
772# CONFIG_ROMFS_FS is not set
773# CONFIG_INOTIFY is not set
774# CONFIG_QUOTA is not set
775CONFIG_DNOTIFY=y
776# CONFIG_AUTOFS_FS is not set
777# CONFIG_AUTOFS4_FS is not set
778# CONFIG_FUSE_FS is not set
779
780#
781# CD-ROM/DVD Filesystems
782#
783# CONFIG_ISO9660_FS is not set
784# CONFIG_UDF_FS is not set
785
786#
787# DOS/FAT/NT Filesystems
788#
789# CONFIG_MSDOS_FS is not set
790# CONFIG_VFAT_FS is not set
791# CONFIG_NTFS_FS is not set
792
793#
794# Pseudo filesystems
795#
796CONFIG_PROC_FS=y
797CONFIG_PROC_SYSCTL=y
798CONFIG_SYSFS=y
799# CONFIG_TMPFS is not set
800# CONFIG_HUGETLB_PAGE is not set
801CONFIG_RAMFS=y
802# CONFIG_CONFIGFS_FS is not set
803
804#
805# Miscellaneous filesystems
806#
807# CONFIG_ADFS_FS is not set
808# CONFIG_AFFS_FS is not set
809# CONFIG_HFS_FS is not set
810# CONFIG_HFSPLUS_FS is not set
811# CONFIG_BEFS_FS is not set
812# CONFIG_BFS_FS is not set
813# CONFIG_EFS_FS is not set
814# CONFIG_CRAMFS is not set
815# CONFIG_VXFS_FS is not set
816# CONFIG_HPFS_FS is not set
817# CONFIG_QNX4FS_FS is not set
818# CONFIG_SYSV_FS is not set
819# CONFIG_UFS_FS is not set
820
821#
822# Network File Systems
823#
824# CONFIG_NFS_FS is not set
825# CONFIG_NFSD is not set
826# CONFIG_SMB_FS is not set
827# CONFIG_CIFS is not set
828# CONFIG_NCP_FS is not set
829# CONFIG_CODA_FS is not set
830# CONFIG_AFS_FS is not set
831# CONFIG_9P_FS is not set
832
833#
834# Partition Types
835#
836# CONFIG_PARTITION_ADVANCED is not set
837CONFIG_MSDOS_PARTITION=y
838
839#
840# Native Language Support
841#
842# CONFIG_NLS is not set
843
844#
845# Distributed Lock Manager
846#
847# CONFIG_DLM is not set
848
849#
850# Profiling support
851#
852# CONFIG_PROFILING is not set
853
854#
855# Kernel hacking
856#
857# CONFIG_PRINTK_TIME is not set
858CONFIG_ENABLE_MUST_CHECK=y
859# CONFIG_MAGIC_SYSRQ is not set
860# CONFIG_UNUSED_SYMBOLS is not set
861# CONFIG_DEBUG_FS is not set
862# CONFIG_HEADERS_CHECK is not set
863# CONFIG_DEBUG_KERNEL is not set
864CONFIG_DEBUG_BUGVERBOSE=y
865CONFIG_FRAME_POINTER=y
866# CONFIG_DEBUG_USER is not set
867
868#
869# Security options
870#
871# CONFIG_KEYS is not set
872# CONFIG_SECURITY is not set
873
874#
875# Cryptographic options
876#
877# CONFIG_CRYPTO is not set
878
879#
880# Library routines
881#
882CONFIG_BITREVERSE=y
883CONFIG_CRC_CCITT=y
884CONFIG_CRC16=y
885# CONFIG_CRC_ITU_T is not set
886CONFIG_CRC32=y
887CONFIG_LIBCRC32C=y
888CONFIG_PLIST=y
889CONFIG_HAS_IOMEM=y
890CONFIG_HAS_IOPORT=y
891CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/palmz72_defconfig b/arch/arm/configs/palmz72_defconfig
new file mode 100644
index 000000000000..3245f8f33e0a
--- /dev/null
+++ b/arch/arm/configs/palmz72_defconfig
@@ -0,0 +1,951 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4
4# Sun Aug 24 02:29:27 2008
5#
6CONFIG_ARM=y
7CONFIG_HAVE_PWM=y
8CONFIG_SYS_SUPPORTS_APM_EMULATION=y
9CONFIG_GENERIC_GPIO=y
10CONFIG_GENERIC_TIME=y
11CONFIG_GENERIC_CLOCKEVENTS=y
12CONFIG_MMU=y
13# CONFIG_NO_IOPORT is not set
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_STACKTRACE_SUPPORT=y
16CONFIG_HAVE_LATENCYTOP_SUPPORT=y
17CONFIG_LOCKDEP_SUPPORT=y
18CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_HARDIRQS_SW_RESEND=y
20CONFIG_GENERIC_IRQ_PROBE=y
21CONFIG_RWSEM_GENERIC_SPINLOCK=y
22# CONFIG_ARCH_HAS_ILOG2_U32 is not set
23# CONFIG_ARCH_HAS_ILOG2_U64 is not set
24CONFIG_GENERIC_HWEIGHT=y
25CONFIG_GENERIC_CALIBRATE_DELAY=y
26CONFIG_ARCH_SUPPORTS_AOUT=y
27CONFIG_ZONE_DMA=y
28CONFIG_ARCH_MTD_XIP=y
29CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
30CONFIG_VECTORS_BASE=0xffff0000
31CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
32
33#
34# General setup
35#
36CONFIG_EXPERIMENTAL=y
37CONFIG_BROKEN_ON_SMP=y
38CONFIG_LOCK_KERNEL=y
39CONFIG_INIT_ENV_ARG_LIMIT=32
40CONFIG_LOCALVERSION=""
41# CONFIG_LOCALVERSION_AUTO is not set
42CONFIG_SWAP=y
43CONFIG_SYSVIPC=y
44CONFIG_SYSVIPC_SYSCTL=y
45# CONFIG_POSIX_MQUEUE is not set
46# CONFIG_BSD_PROCESS_ACCT is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_AUDIT is not set
49# CONFIG_IKCONFIG is not set
50CONFIG_LOG_BUF_SHIFT=14
51# CONFIG_CGROUPS is not set
52# CONFIG_GROUP_SCHED is not set
53CONFIG_SYSFS_DEPRECATED=y
54CONFIG_SYSFS_DEPRECATED_V2=y
55# CONFIG_RELAY is not set
56CONFIG_NAMESPACES=y
57# CONFIG_UTS_NS is not set
58# CONFIG_IPC_NS is not set
59# CONFIG_USER_NS is not set
60# CONFIG_PID_NS is not set
61CONFIG_BLK_DEV_INITRD=y
62CONFIG_INITRAMFS_SOURCE=""
63CONFIG_CC_OPTIMIZE_FOR_SIZE=y
64CONFIG_SYSCTL=y
65# CONFIG_EMBEDDED is not set
66CONFIG_UID16=y
67CONFIG_SYSCTL_SYSCALL=y
68CONFIG_KALLSYMS=y
69# CONFIG_KALLSYMS_EXTRA_PASS is not set
70CONFIG_HOTPLUG=y
71CONFIG_PRINTK=y
72CONFIG_BUG=y
73CONFIG_ELF_CORE=y
74CONFIG_COMPAT_BRK=y
75CONFIG_BASE_FULL=y
76CONFIG_FUTEX=y
77CONFIG_ANON_INODES=y
78CONFIG_EPOLL=y
79CONFIG_SIGNALFD=y
80CONFIG_TIMERFD=y
81CONFIG_EVENTFD=y
82CONFIG_SHMEM=y
83CONFIG_VM_EVENT_COUNTERS=y
84CONFIG_SLAB=y
85# CONFIG_SLUB is not set
86# CONFIG_SLOB is not set
87# CONFIG_PROFILING is not set
88# CONFIG_MARKERS is not set
89CONFIG_HAVE_OPROFILE=y
90# CONFIG_KPROBES is not set
91# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
92# CONFIG_HAVE_IOREMAP_PROT is not set
93CONFIG_HAVE_KPROBES=y
94CONFIG_HAVE_KRETPROBES=y
95# CONFIG_HAVE_ARCH_TRACEHOOK is not set
96# CONFIG_HAVE_DMA_ATTRS is not set
97# CONFIG_USE_GENERIC_SMP_HELPERS is not set
98CONFIG_HAVE_CLK=y
99CONFIG_PROC_PAGE_MONITOR=y
100CONFIG_HAVE_GENERIC_DMA_COHERENT=y
101CONFIG_SLABINFO=y
102CONFIG_RT_MUTEXES=y
103# CONFIG_TINY_SHMEM is not set
104CONFIG_BASE_SMALL=0
105CONFIG_MODULES=y
106# CONFIG_MODULE_FORCE_LOAD is not set
107CONFIG_MODULE_UNLOAD=y
108# CONFIG_MODULE_FORCE_UNLOAD is not set
109# CONFIG_MODVERSIONS is not set
110# CONFIG_MODULE_SRCVERSION_ALL is not set
111CONFIG_KMOD=y
112CONFIG_BLOCK=y
113# CONFIG_LBD is not set
114# CONFIG_BLK_DEV_IO_TRACE is not set
115# CONFIG_LSF is not set
116# CONFIG_BLK_DEV_BSG is not set
117# CONFIG_BLK_DEV_INTEGRITY is not set
118
119#
120# IO Schedulers
121#
122CONFIG_IOSCHED_NOOP=y
123CONFIG_IOSCHED_AS=y
124# CONFIG_IOSCHED_DEADLINE is not set
125# CONFIG_IOSCHED_CFQ is not set
126CONFIG_DEFAULT_AS=y
127# CONFIG_DEFAULT_DEADLINE is not set
128# CONFIG_DEFAULT_CFQ is not set
129# CONFIG_DEFAULT_NOOP is not set
130CONFIG_DEFAULT_IOSCHED="anticipatory"
131CONFIG_CLASSIC_RCU=y
132
133#
134# System Type
135#
136# CONFIG_ARCH_AAEC2000 is not set
137# CONFIG_ARCH_INTEGRATOR is not set
138# CONFIG_ARCH_REALVIEW is not set
139# CONFIG_ARCH_VERSATILE is not set
140# CONFIG_ARCH_AT91 is not set
141# CONFIG_ARCH_CLPS7500 is not set
142# CONFIG_ARCH_CLPS711X is not set
143# CONFIG_ARCH_EBSA110 is not set
144# CONFIG_ARCH_EP93XX is not set
145# CONFIG_ARCH_FOOTBRIDGE is not set
146# CONFIG_ARCH_NETX is not set
147# CONFIG_ARCH_H720X is not set
148# CONFIG_ARCH_IMX is not set
149# CONFIG_ARCH_IOP13XX is not set
150# CONFIG_ARCH_IOP32X is not set
151# CONFIG_ARCH_IOP33X is not set
152# CONFIG_ARCH_IXP23XX is not set
153# CONFIG_ARCH_IXP2000 is not set
154# CONFIG_ARCH_IXP4XX is not set
155# CONFIG_ARCH_L7200 is not set
156# CONFIG_ARCH_KIRKWOOD is not set
157# CONFIG_ARCH_KS8695 is not set
158# CONFIG_ARCH_NS9XXX is not set
159# CONFIG_ARCH_LOKI is not set
160# CONFIG_ARCH_MV78XX0 is not set
161# CONFIG_ARCH_MXC is not set
162# CONFIG_ARCH_ORION5X is not set
163# CONFIG_ARCH_PNX4008 is not set
164CONFIG_ARCH_PXA=y
165# CONFIG_ARCH_RPC is not set
166# CONFIG_ARCH_SA1100 is not set
167# CONFIG_ARCH_S3C2410 is not set
168# CONFIG_ARCH_SHARK is not set
169# CONFIG_ARCH_LH7A40X is not set
170# CONFIG_ARCH_DAVINCI is not set
171# CONFIG_ARCH_OMAP is not set
172# CONFIG_ARCH_MSM7X00A is not set
173
174#
175# Intel PXA2xx/PXA3xx Implementations
176#
177# CONFIG_ARCH_GUMSTIX is not set
178# CONFIG_ARCH_LUBBOCK is not set
179# CONFIG_MACH_LOGICPD_PXA270 is not set
180# CONFIG_MACH_MAINSTONE is not set
181# CONFIG_ARCH_PXA_IDP is not set
182# CONFIG_PXA_SHARPSL is not set
183# CONFIG_ARCH_PXA_ESERIES is not set
184# CONFIG_MACH_TRIZEPS4 is not set
185# CONFIG_MACH_EM_X270 is not set
186# CONFIG_MACH_COLIBRI is not set
187# CONFIG_MACH_ZYLONITE is not set
188# CONFIG_MACH_LITTLETON is not set
189# CONFIG_MACH_TAVOREVB is not set
190# CONFIG_MACH_SAAR is not set
191# CONFIG_MACH_ARMCORE is not set
192# CONFIG_MACH_MAGICIAN is not set
193# CONFIG_MACH_PCM027 is not set
194CONFIG_ARCH_PXA_PALM=y
195# CONFIG_MACH_PALMTX is not set
196CONFIG_MACH_PALMZ72=y
197# CONFIG_PXA_EZX is not set
198CONFIG_PXA27x=y
199CONFIG_PXA_PWM=y
200
201#
202# Boot options
203#
204
205#
206# Power management
207#
208
209#
210# Processor Type
211#
212CONFIG_CPU_32=y
213CONFIG_CPU_XSCALE=y
214CONFIG_CPU_32v5=y
215CONFIG_CPU_ABRT_EV5T=y
216CONFIG_CPU_PABRT_NOIFAR=y
217CONFIG_CPU_CACHE_VIVT=y
218CONFIG_CPU_TLB_V4WBI=y
219CONFIG_CPU_CP15=y
220CONFIG_CPU_CP15_MMU=y
221
222#
223# Processor Features
224#
225CONFIG_ARM_THUMB=y
226# CONFIG_CPU_DCACHE_DISABLE is not set
227# CONFIG_OUTER_CACHE is not set
228CONFIG_IWMMXT=y
229CONFIG_XSCALE_PMU=y
230
231#
232# Bus support
233#
234# CONFIG_PCI_SYSCALL is not set
235# CONFIG_ARCH_SUPPORTS_MSI is not set
236# CONFIG_PCCARD is not set
237
238#
239# Kernel Features
240#
241CONFIG_TICK_ONESHOT=y
242# CONFIG_NO_HZ is not set
243# CONFIG_HIGH_RES_TIMERS is not set
244CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
245CONFIG_PREEMPT=y
246CONFIG_HZ=100
247CONFIG_AEABI=y
248CONFIG_OABI_COMPAT=y
249# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
250CONFIG_SELECT_MEMORY_MODEL=y
251CONFIG_FLATMEM_MANUAL=y
252# CONFIG_DISCONTIGMEM_MANUAL is not set
253# CONFIG_SPARSEMEM_MANUAL is not set
254CONFIG_FLATMEM=y
255CONFIG_FLAT_NODE_MEM_MAP=y
256# CONFIG_SPARSEMEM_STATIC is not set
257# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
258CONFIG_PAGEFLAGS_EXTENDED=y
259CONFIG_SPLIT_PTLOCK_CPUS=4096
260# CONFIG_RESOURCES_64BIT is not set
261CONFIG_ZONE_DMA_FLAG=1
262CONFIG_BOUNCE=y
263CONFIG_VIRT_TO_BUS=y
264CONFIG_ALIGNMENT_TRAP=y
265
266#
267# Boot options
268#
269CONFIG_ZBOOT_ROM_TEXT=0x0
270CONFIG_ZBOOT_ROM_BSS=0x0
271CONFIG_CMDLINE="mem=32M console=tty root=/dev/mmcblk0"
272# CONFIG_XIP_KERNEL is not set
273# CONFIG_KEXEC is not set
274
275#
276# CPU Frequency scaling
277#
278# CONFIG_CPU_FREQ is not set
279
280#
281# Floating point emulation
282#
283
284#
285# At least one emulation must be selected
286#
287CONFIG_FPE_NWFPE=y
288# CONFIG_FPE_NWFPE_XP is not set
289# CONFIG_FPE_FASTFPE is not set
290
291#
292# Userspace binary formats
293#
294CONFIG_BINFMT_ELF=y
295# CONFIG_BINFMT_AOUT is not set
296# CONFIG_BINFMT_MISC is not set
297
298#
299# Power management options
300#
301CONFIG_PM=y
302# CONFIG_PM_DEBUG is not set
303CONFIG_PM_SLEEP=y
304CONFIG_SUSPEND=y
305CONFIG_SUSPEND_FREEZER=y
306CONFIG_APM_EMULATION=y
307CONFIG_ARCH_SUSPEND_POSSIBLE=y
308CONFIG_NET=y
309
310#
311# Networking options
312#
313CONFIG_PACKET=y
314# CONFIG_PACKET_MMAP is not set
315CONFIG_UNIX=y
316# CONFIG_NET_KEY is not set
317CONFIG_INET=y
318# CONFIG_IP_MULTICAST is not set
319# CONFIG_IP_ADVANCED_ROUTER is not set
320CONFIG_IP_FIB_HASH=y
321CONFIG_IP_PNP=y
322# CONFIG_IP_PNP_DHCP is not set
323CONFIG_IP_PNP_BOOTP=y
324# CONFIG_IP_PNP_RARP is not set
325# CONFIG_NET_IPIP is not set
326# CONFIG_NET_IPGRE is not set
327# CONFIG_ARPD is not set
328# CONFIG_SYN_COOKIES is not set
329# CONFIG_INET_AH is not set
330# CONFIG_INET_ESP is not set
331# CONFIG_INET_IPCOMP is not set
332# CONFIG_INET_XFRM_TUNNEL is not set
333# CONFIG_INET_TUNNEL is not set
334# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
335# CONFIG_INET_XFRM_MODE_TUNNEL is not set
336# CONFIG_INET_XFRM_MODE_BEET is not set
337# CONFIG_INET_LRO is not set
338CONFIG_INET_DIAG=y
339CONFIG_INET_TCP_DIAG=y
340# CONFIG_TCP_CONG_ADVANCED is not set
341CONFIG_TCP_CONG_CUBIC=y
342CONFIG_DEFAULT_TCP_CONG="cubic"
343# CONFIG_TCP_MD5SIG is not set
344# CONFIG_IPV6 is not set
345# CONFIG_NETWORK_SECMARK is not set
346# CONFIG_NETFILTER is not set
347# CONFIG_IP_DCCP is not set
348# CONFIG_IP_SCTP is not set
349# CONFIG_TIPC is not set
350# CONFIG_ATM is not set
351# CONFIG_BRIDGE is not set
352# CONFIG_VLAN_8021Q is not set
353# CONFIG_DECNET is not set
354# CONFIG_LLC2 is not set
355# CONFIG_IPX is not set
356# CONFIG_ATALK is not set
357# CONFIG_X25 is not set
358# CONFIG_LAPB is not set
359# CONFIG_ECONET is not set
360# CONFIG_WAN_ROUTER is not set
361# CONFIG_NET_SCHED is not set
362
363#
364# Network testing
365#
366# CONFIG_NET_PKTGEN is not set
367# CONFIG_HAMRADIO is not set
368# CONFIG_CAN is not set
369# CONFIG_IRDA is not set
370# CONFIG_BT is not set
371# CONFIG_AF_RXRPC is not set
372
373#
374# Wireless
375#
376# CONFIG_CFG80211 is not set
377# CONFIG_WIRELESS_EXT is not set
378# CONFIG_MAC80211 is not set
379# CONFIG_IEEE80211 is not set
380# CONFIG_RFKILL is not set
381# CONFIG_NET_9P is not set
382
383#
384# Device Drivers
385#
386
387#
388# Generic Driver Options
389#
390CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
391CONFIG_STANDALONE=y
392CONFIG_PREVENT_FIRMWARE_BUILD=y
393CONFIG_FW_LOADER=y
394CONFIG_FIRMWARE_IN_KERNEL=y
395CONFIG_EXTRA_FIRMWARE=""
396# CONFIG_SYS_HYPERVISOR is not set
397# CONFIG_CONNECTOR is not set
398# CONFIG_MTD is not set
399# CONFIG_PARPORT is not set
400CONFIG_BLK_DEV=y
401# CONFIG_BLK_DEV_COW_COMMON is not set
402CONFIG_BLK_DEV_LOOP=y
403# CONFIG_BLK_DEV_CRYPTOLOOP is not set
404# CONFIG_BLK_DEV_NBD is not set
405# CONFIG_BLK_DEV_RAM is not set
406# CONFIG_CDROM_PKTCDVD is not set
407# CONFIG_ATA_OVER_ETH is not set
408# CONFIG_MISC_DEVICES is not set
409CONFIG_HAVE_IDE=y
410# CONFIG_IDE is not set
411
412#
413# SCSI device support
414#
415# CONFIG_RAID_ATTRS is not set
416# CONFIG_SCSI is not set
417# CONFIG_SCSI_DMA is not set
418# CONFIG_SCSI_NETLINK is not set
419# CONFIG_ATA is not set
420# CONFIG_MD is not set
421# CONFIG_NETDEVICES is not set
422# CONFIG_ISDN is not set
423
424#
425# Input device support
426#
427CONFIG_INPUT=y
428# CONFIG_INPUT_FF_MEMLESS is not set
429# CONFIG_INPUT_POLLDEV is not set
430
431#
432# Userland interfaces
433#
434CONFIG_INPUT_MOUSEDEV=y
435# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
436CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
437CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
438# CONFIG_INPUT_JOYDEV is not set
439CONFIG_INPUT_EVDEV=y
440# CONFIG_INPUT_EVBUG is not set
441
442#
443# Input Device Drivers
444#
445CONFIG_INPUT_KEYBOARD=y
446# CONFIG_KEYBOARD_ATKBD is not set
447# CONFIG_KEYBOARD_SUNKBD is not set
448# CONFIG_KEYBOARD_LKKBD is not set
449# CONFIG_KEYBOARD_XTKBD is not set
450# CONFIG_KEYBOARD_NEWTON is not set
451# CONFIG_KEYBOARD_STOWAWAY is not set
452CONFIG_KEYBOARD_PXA27x=y
453# CONFIG_KEYBOARD_GPIO is not set
454# CONFIG_KEYBOARD_MATRIX is not set
455# CONFIG_INPUT_MOUSE is not set
456# CONFIG_INPUT_JOYSTICK is not set
457# CONFIG_INPUT_TABLET is not set
458# CONFIG_INPUT_TOUCHSCREEN is not set
459# CONFIG_INPUT_MISC is not set
460
461#
462# Hardware I/O ports
463#
464# CONFIG_SERIO is not set
465# CONFIG_GAMEPORT is not set
466
467#
468# Character devices
469#
470CONFIG_VT=y
471CONFIG_CONSOLE_TRANSLATIONS=y
472CONFIG_VT_CONSOLE=y
473CONFIG_HW_CONSOLE=y
474# CONFIG_VT_HW_CONSOLE_BINDING is not set
475CONFIG_DEVKMEM=y
476# CONFIG_SERIAL_NONSTANDARD is not set
477
478#
479# Serial drivers
480#
481# CONFIG_SERIAL_8250 is not set
482
483#
484# Non-8250 serial port support
485#
486# CONFIG_SERIAL_PXA is not set
487CONFIG_UNIX98_PTYS=y
488CONFIG_LEGACY_PTYS=y
489CONFIG_LEGACY_PTY_COUNT=256
490# CONFIG_IPMI_HANDLER is not set
491# CONFIG_HW_RANDOM is not set
492# CONFIG_NVRAM is not set
493# CONFIG_R3964 is not set
494# CONFIG_RAW_DRIVER is not set
495# CONFIG_TCG_TPM is not set
496CONFIG_I2C=y
497CONFIG_I2C_BOARDINFO=y
498# CONFIG_I2C_CHARDEV is not set
499CONFIG_I2C_HELPER_AUTO=y
500
501#
502# I2C Hardware Bus support
503#
504
505#
506# I2C system bus drivers (mostly embedded / system-on-chip)
507#
508# CONFIG_I2C_GPIO is not set
509# CONFIG_I2C_OCORES is not set
510CONFIG_I2C_PXA=y
511# CONFIG_I2C_PXA_SLAVE is not set
512# CONFIG_I2C_SIMTEC is not set
513
514#
515# External I2C/SMBus adapter drivers
516#
517# CONFIG_I2C_PARPORT_LIGHT is not set
518# CONFIG_I2C_TAOS_EVM is not set
519
520#
521# Other I2C/SMBus bus drivers
522#
523# CONFIG_I2C_PCA_PLATFORM is not set
524# CONFIG_I2C_STUB is not set
525
526#
527# Miscellaneous I2C Chip support
528#
529# CONFIG_DS1682 is not set
530# CONFIG_AT24 is not set
531# CONFIG_SENSORS_EEPROM is not set
532# CONFIG_SENSORS_PCF8574 is not set
533# CONFIG_PCF8575 is not set
534# CONFIG_SENSORS_PCA9539 is not set
535# CONFIG_SENSORS_PCF8591 is not set
536# CONFIG_TPS65010 is not set
537# CONFIG_SENSORS_MAX6875 is not set
538# CONFIG_SENSORS_TSL2550 is not set
539# CONFIG_I2C_DEBUG_CORE is not set
540# CONFIG_I2C_DEBUG_ALGO is not set
541# CONFIG_I2C_DEBUG_BUS is not set
542# CONFIG_I2C_DEBUG_CHIP is not set
543CONFIG_SPI=y
544CONFIG_SPI_MASTER=y
545
546#
547# SPI Master Controller Drivers
548#
549# CONFIG_SPI_BITBANG is not set
550# CONFIG_SPI_PXA2XX is not set
551
552#
553# SPI Protocol Masters
554#
555# CONFIG_SPI_AT25 is not set
556CONFIG_SPI_SPIDEV=y
557# CONFIG_SPI_TLE62X0 is not set
558CONFIG_ARCH_REQUIRE_GPIOLIB=y
559CONFIG_GPIOLIB=y
560CONFIG_GPIO_SYSFS=y
561
562#
563# I2C GPIO expanders:
564#
565# CONFIG_GPIO_MAX732X is not set
566# CONFIG_GPIO_PCA953X is not set
567# CONFIG_GPIO_PCF857X is not set
568
569#
570# PCI GPIO expanders:
571#
572
573#
574# SPI GPIO expanders:
575#
576# CONFIG_GPIO_MAX7301 is not set
577# CONFIG_GPIO_MCP23S08 is not set
578# CONFIG_W1 is not set
579CONFIG_POWER_SUPPLY=y
580# CONFIG_POWER_SUPPLY_DEBUG is not set
581CONFIG_PDA_POWER=y
582# CONFIG_APM_POWER is not set
583# CONFIG_BATTERY_DS2760 is not set
584# CONFIG_HWMON is not set
585# CONFIG_WATCHDOG is not set
586
587#
588# Sonics Silicon Backplane
589#
590CONFIG_SSB_POSSIBLE=y
591# CONFIG_SSB is not set
592
593#
594# Multifunction device drivers
595#
596# CONFIG_MFD_CORE is not set
597# CONFIG_MFD_SM501 is not set
598# CONFIG_HTC_EGPIO is not set
599# CONFIG_HTC_PASIC3 is not set
600# CONFIG_MFD_TMIO is not set
601# CONFIG_MFD_T7L66XB is not set
602# CONFIG_MFD_TC6387XB is not set
603# CONFIG_MFD_TC6393XB is not set
604
605#
606# Multimedia devices
607#
608
609#
610# Multimedia core support
611#
612# CONFIG_VIDEO_DEV is not set
613# CONFIG_DVB_CORE is not set
614# CONFIG_VIDEO_MEDIA is not set
615
616#
617# Multimedia drivers
618#
619# CONFIG_DAB is not set
620
621#
622# Graphics support
623#
624# CONFIG_VGASTATE is not set
625# CONFIG_VIDEO_OUTPUT_CONTROL is not set
626CONFIG_FB=y
627# CONFIG_FIRMWARE_EDID is not set
628# CONFIG_FB_DDC is not set
629CONFIG_FB_CFB_FILLRECT=y
630CONFIG_FB_CFB_COPYAREA=y
631CONFIG_FB_CFB_IMAGEBLIT=y
632# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
633# CONFIG_FB_SYS_FILLRECT is not set
634# CONFIG_FB_SYS_COPYAREA is not set
635# CONFIG_FB_SYS_IMAGEBLIT is not set
636# CONFIG_FB_FOREIGN_ENDIAN is not set
637# CONFIG_FB_SYS_FOPS is not set
638# CONFIG_FB_SVGALIB is not set
639# CONFIG_FB_MACMODES is not set
640# CONFIG_FB_BACKLIGHT is not set
641# CONFIG_FB_MODE_HELPERS is not set
642# CONFIG_FB_TILEBLITTING is not set
643
644#
645# Frame buffer hardware drivers
646#
647# CONFIG_FB_S1D13XXX is not set
648CONFIG_FB_PXA=y
649# CONFIG_FB_PXA_SMARTPANEL is not set
650# CONFIG_FB_PXA_PARAMETERS is not set
651# CONFIG_FB_MBX is not set
652# CONFIG_FB_W100 is not set
653# CONFIG_FB_AM200EPD is not set
654# CONFIG_FB_VIRTUAL is not set
655CONFIG_BACKLIGHT_LCD_SUPPORT=y
656# CONFIG_LCD_CLASS_DEVICE is not set
657CONFIG_BACKLIGHT_CLASS_DEVICE=y
658# CONFIG_BACKLIGHT_CORGI is not set
659CONFIG_BACKLIGHT_PWM=y
660
661#
662# Display device support
663#
664CONFIG_DISPLAY_SUPPORT=y
665
666#
667# Display hardware drivers
668#
669
670#
671# Console display driver support
672#
673# CONFIG_VGA_CONSOLE is not set
674CONFIG_DUMMY_CONSOLE=y
675CONFIG_FRAMEBUFFER_CONSOLE=y
676# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
677# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
678CONFIG_FONTS=y
679CONFIG_FONT_8x8=y
680# CONFIG_FONT_8x16 is not set
681# CONFIG_FONT_6x11 is not set
682# CONFIG_FONT_7x14 is not set
683# CONFIG_FONT_PEARL_8x8 is not set
684# CONFIG_FONT_ACORN_8x8 is not set
685# CONFIG_FONT_MINI_4x6 is not set
686# CONFIG_FONT_SUN8x16 is not set
687# CONFIG_FONT_SUN12x22 is not set
688# CONFIG_FONT_10x18 is not set
689# CONFIG_LOGO is not set
690# CONFIG_SOUND is not set
691# CONFIG_HID_SUPPORT is not set
692# CONFIG_USB_SUPPORT is not set
693CONFIG_MMC=y
694CONFIG_MMC_DEBUG=y
695# CONFIG_MMC_UNSAFE_RESUME is not set
696
697#
698# MMC/SD Card Drivers
699#
700CONFIG_MMC_BLOCK=y
701CONFIG_MMC_BLOCK_BOUNCE=y
702# CONFIG_SDIO_UART is not set
703# CONFIG_MMC_TEST is not set
704
705#
706# MMC/SD Host Controller Drivers
707#
708CONFIG_MMC_PXA=y
709# CONFIG_MMC_SDHCI is not set
710# CONFIG_MMC_SPI is not set
711# CONFIG_NEW_LEDS is not set
712CONFIG_RTC_LIB=y
713CONFIG_RTC_CLASS=y
714CONFIG_RTC_HCTOSYS=y
715CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
716# CONFIG_RTC_DEBUG is not set
717
718#
719# RTC interfaces
720#
721CONFIG_RTC_INTF_SYSFS=y
722CONFIG_RTC_INTF_PROC=y
723CONFIG_RTC_INTF_DEV=y
724# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
725# CONFIG_RTC_DRV_TEST is not set
726
727#
728# I2C RTC drivers
729#
730# CONFIG_RTC_DRV_DS1307 is not set
731# CONFIG_RTC_DRV_DS1374 is not set
732# CONFIG_RTC_DRV_DS1672 is not set
733# CONFIG_RTC_DRV_MAX6900 is not set
734# CONFIG_RTC_DRV_RS5C372 is not set
735# CONFIG_RTC_DRV_ISL1208 is not set
736# CONFIG_RTC_DRV_X1205 is not set
737# CONFIG_RTC_DRV_PCF8563 is not set
738# CONFIG_RTC_DRV_PCF8583 is not set
739# CONFIG_RTC_DRV_M41T80 is not set
740# CONFIG_RTC_DRV_S35390A is not set
741# CONFIG_RTC_DRV_FM3130 is not set
742
743#
744# SPI RTC drivers
745#
746# CONFIG_RTC_DRV_M41T94 is not set
747# CONFIG_RTC_DRV_DS1305 is not set
748# CONFIG_RTC_DRV_MAX6902 is not set
749# CONFIG_RTC_DRV_R9701 is not set
750# CONFIG_RTC_DRV_RS5C348 is not set
751
752#
753# Platform RTC drivers
754#
755# CONFIG_RTC_DRV_CMOS is not set
756# CONFIG_RTC_DRV_DS1511 is not set
757# CONFIG_RTC_DRV_DS1553 is not set
758# CONFIG_RTC_DRV_DS1742 is not set
759# CONFIG_RTC_DRV_STK17TA8 is not set
760# CONFIG_RTC_DRV_M48T86 is not set
761# CONFIG_RTC_DRV_M48T59 is not set
762# CONFIG_RTC_DRV_V3020 is not set
763
764#
765# on-CPU RTC drivers
766#
767CONFIG_RTC_DRV_SA1100=y
768# CONFIG_DMADEVICES is not set
769
770#
771# Voltage and Current regulators
772#
773# CONFIG_REGULATOR is not set
774# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
775# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
776# CONFIG_REGULATOR_BQ24022 is not set
777# CONFIG_UIO is not set
778
779#
780# File systems
781#
782CONFIG_EXT2_FS=y
783# CONFIG_EXT2_FS_XATTR is not set
784# CONFIG_EXT2_FS_XIP is not set
785CONFIG_EXT3_FS=y
786CONFIG_EXT3_FS_XATTR=y
787# CONFIG_EXT3_FS_POSIX_ACL is not set
788# CONFIG_EXT3_FS_SECURITY is not set
789# CONFIG_EXT4DEV_FS is not set
790CONFIG_JBD=y
791CONFIG_FS_MBCACHE=y
792# CONFIG_REISERFS_FS is not set
793# CONFIG_JFS_FS is not set
794# CONFIG_FS_POSIX_ACL is not set
795# CONFIG_XFS_FS is not set
796# CONFIG_OCFS2_FS is not set
797# CONFIG_DNOTIFY is not set
798# CONFIG_INOTIFY is not set
799# CONFIG_QUOTA is not set
800# CONFIG_AUTOFS_FS is not set
801# CONFIG_AUTOFS4_FS is not set
802# CONFIG_FUSE_FS is not set
803
804#
805# CD-ROM/DVD Filesystems
806#
807# CONFIG_ISO9660_FS is not set
808# CONFIG_UDF_FS is not set
809
810#
811# DOS/FAT/NT Filesystems
812#
813CONFIG_FAT_FS=y
814CONFIG_MSDOS_FS=y
815CONFIG_VFAT_FS=y
816CONFIG_FAT_DEFAULT_CODEPAGE=866
817CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
818# CONFIG_NTFS_FS is not set
819
820#
821# Pseudo filesystems
822#
823CONFIG_PROC_FS=y
824CONFIG_PROC_SYSCTL=y
825CONFIG_SYSFS=y
826CONFIG_TMPFS=y
827# CONFIG_TMPFS_POSIX_ACL is not set
828# CONFIG_HUGETLB_PAGE is not set
829# CONFIG_CONFIGFS_FS is not set
830
831#
832# Miscellaneous filesystems
833#
834# CONFIG_ADFS_FS is not set
835# CONFIG_AFFS_FS is not set
836# CONFIG_HFS_FS is not set
837# CONFIG_HFSPLUS_FS is not set
838# CONFIG_BEFS_FS is not set
839# CONFIG_BFS_FS is not set
840# CONFIG_EFS_FS is not set
841# CONFIG_CRAMFS is not set
842# CONFIG_VXFS_FS is not set
843# CONFIG_MINIX_FS is not set
844# CONFIG_OMFS_FS is not set
845# CONFIG_HPFS_FS is not set
846# CONFIG_QNX4FS_FS is not set
847# CONFIG_ROMFS_FS is not set
848# CONFIG_SYSV_FS is not set
849# CONFIG_UFS_FS is not set
850# CONFIG_NETWORK_FILESYSTEMS is not set
851
852#
853# Partition Types
854#
855# CONFIG_PARTITION_ADVANCED is not set
856CONFIG_MSDOS_PARTITION=y
857CONFIG_NLS=y
858CONFIG_NLS_DEFAULT="utf8"
859# CONFIG_NLS_CODEPAGE_437 is not set
860# CONFIG_NLS_CODEPAGE_737 is not set
861# CONFIG_NLS_CODEPAGE_775 is not set
862# CONFIG_NLS_CODEPAGE_850 is not set
863# CONFIG_NLS_CODEPAGE_852 is not set
864# CONFIG_NLS_CODEPAGE_855 is not set
865# CONFIG_NLS_CODEPAGE_857 is not set
866# CONFIG_NLS_CODEPAGE_860 is not set
867# CONFIG_NLS_CODEPAGE_861 is not set
868# CONFIG_NLS_CODEPAGE_862 is not set
869# CONFIG_NLS_CODEPAGE_863 is not set
870# CONFIG_NLS_CODEPAGE_864 is not set
871# CONFIG_NLS_CODEPAGE_865 is not set
872CONFIG_NLS_CODEPAGE_866=y
873# CONFIG_NLS_CODEPAGE_869 is not set
874# CONFIG_NLS_CODEPAGE_936 is not set
875# CONFIG_NLS_CODEPAGE_950 is not set
876# CONFIG_NLS_CODEPAGE_932 is not set
877# CONFIG_NLS_CODEPAGE_949 is not set
878# CONFIG_NLS_CODEPAGE_874 is not set
879# CONFIG_NLS_ISO8859_8 is not set
880# CONFIG_NLS_CODEPAGE_1250 is not set
881# CONFIG_NLS_CODEPAGE_1251 is not set
882# CONFIG_NLS_ASCII is not set
883# CONFIG_NLS_ISO8859_1 is not set
884# CONFIG_NLS_ISO8859_2 is not set
885# CONFIG_NLS_ISO8859_3 is not set
886# CONFIG_NLS_ISO8859_4 is not set
887# CONFIG_NLS_ISO8859_5 is not set
888# CONFIG_NLS_ISO8859_6 is not set
889# CONFIG_NLS_ISO8859_7 is not set
890# CONFIG_NLS_ISO8859_9 is not set
891# CONFIG_NLS_ISO8859_13 is not set
892# CONFIG_NLS_ISO8859_14 is not set
893# CONFIG_NLS_ISO8859_15 is not set
894# CONFIG_NLS_KOI8_R is not set
895# CONFIG_NLS_KOI8_U is not set
896CONFIG_NLS_UTF8=y
897# CONFIG_DLM is not set
898
899#
900# Kernel hacking
901#
902# CONFIG_PRINTK_TIME is not set
903CONFIG_ENABLE_WARN_DEPRECATED=y
904CONFIG_ENABLE_MUST_CHECK=y
905CONFIG_FRAME_WARN=1024
906# CONFIG_MAGIC_SYSRQ is not set
907# CONFIG_UNUSED_SYMBOLS is not set
908# CONFIG_DEBUG_FS is not set
909# CONFIG_HEADERS_CHECK is not set
910# CONFIG_DEBUG_KERNEL is not set
911CONFIG_DEBUG_BUGVERBOSE=y
912CONFIG_DEBUG_MEMORY_INIT=y
913CONFIG_FRAME_POINTER=y
914# CONFIG_LATENCYTOP is not set
915CONFIG_SYSCTL_SYSCALL_CHECK=y
916CONFIG_HAVE_FTRACE=y
917CONFIG_HAVE_DYNAMIC_FTRACE=y
918# CONFIG_FTRACE is not set
919# CONFIG_IRQSOFF_TRACER is not set
920# CONFIG_PREEMPT_TRACER is not set
921# CONFIG_SCHED_TRACER is not set
922# CONFIG_CONTEXT_SWITCH_TRACER is not set
923# CONFIG_SAMPLES is not set
924CONFIG_HAVE_ARCH_KGDB=y
925CONFIG_DEBUG_USER=y
926
927#
928# Security options
929#
930# CONFIG_KEYS is not set
931# CONFIG_SECURITY is not set
932# CONFIG_SECURITY_FILE_CAPABILITIES is not set
933# CONFIG_CRYPTO is not set
934
935#
936# Library routines
937#
938CONFIG_BITREVERSE=y
939# CONFIG_GENERIC_FIND_FIRST_BIT is not set
940# CONFIG_GENERIC_FIND_NEXT_BIT is not set
941# CONFIG_CRC_CCITT is not set
942# CONFIG_CRC16 is not set
943CONFIG_CRC_T10DIF=y
944# CONFIG_CRC_ITU_T is not set
945CONFIG_CRC32=y
946# CONFIG_CRC7 is not set
947# CONFIG_LIBCRC32C is not set
948CONFIG_PLIST=y
949CONFIG_HAS_IOMEM=y
950CONFIG_HAS_IOPORT=y
951CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/sx1_defconfig b/arch/arm/configs/sx1_defconfig
new file mode 100644
index 000000000000..853dcdd9f2e0
--- /dev/null
+++ b/arch/arm/configs/sx1_defconfig
@@ -0,0 +1,1118 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.22-rc1-omap1
4# Thu Jun 7 05:16:10 2007
5#
6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
8CONFIG_GENERIC_GPIO=y
9CONFIG_GENERIC_TIME=y
10CONFIG_GENERIC_CLOCKEVENTS=y
11CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y
18CONFIG_GENERIC_IRQ_PROBE=y
19CONFIG_RWSEM_GENERIC_SPINLOCK=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_GENERIC_HWEIGHT=y
23CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ZONE_DMA=y
25CONFIG_VECTORS_BASE=0xffff0000
26CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
27
28#
29# Code maturity level options
30#
31CONFIG_EXPERIMENTAL=y
32CONFIG_BROKEN_ON_SMP=y
33CONFIG_LOCK_KERNEL=y
34CONFIG_INIT_ENV_ARG_LIMIT=32
35
36#
37# General setup
38#
39CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y
41CONFIG_SWAP=y
42CONFIG_SYSVIPC=y
43# CONFIG_IPC_NS is not set
44CONFIG_SYSVIPC_SYSCTL=y
45CONFIG_POSIX_MQUEUE=y
46# CONFIG_BSD_PROCESS_ACCT is not set
47# CONFIG_TASKSTATS is not set
48# CONFIG_UTS_NS is not set
49# CONFIG_AUDIT is not set
50CONFIG_IKCONFIG=y
51# CONFIG_IKCONFIG_PROC is not set
52CONFIG_LOG_BUF_SHIFT=14
53CONFIG_SYSFS_DEPRECATED=y
54# CONFIG_RELAY is not set
55# CONFIG_BLK_DEV_INITRD is not set
56CONFIG_CC_OPTIMIZE_FOR_SIZE=y
57CONFIG_SYSCTL=y
58CONFIG_EMBEDDED=y
59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y
61# CONFIG_KALLSYMS is not set
62CONFIG_HOTPLUG=y
63CONFIG_PRINTK=y
64CONFIG_BUG=y
65# CONFIG_ELF_CORE is not set
66# CONFIG_BASE_FULL is not set
67CONFIG_FUTEX=y
68CONFIG_ANON_INODES=y
69CONFIG_EPOLL=y
70CONFIG_SIGNALFD=y
71CONFIG_TIMERFD=y
72CONFIG_EVENTFD=y
73# CONFIG_SHMEM is not set
74# CONFIG_VM_EVENT_COUNTERS is not set
75# CONFIG_SLAB is not set
76# CONFIG_SLUB is not set
77CONFIG_SLOB=y
78CONFIG_RT_MUTEXES=y
79CONFIG_TINY_SHMEM=y
80CONFIG_BASE_SMALL=1
81
82#
83# Loadable module support
84#
85CONFIG_MODULES=y
86CONFIG_MODULE_UNLOAD=y
87# CONFIG_MODULE_FORCE_UNLOAD is not set
88# CONFIG_MODVERSIONS is not set
89# CONFIG_MODULE_SRCVERSION_ALL is not set
90CONFIG_KMOD=y
91
92#
93# Block layer
94#
95CONFIG_BLOCK=y
96# CONFIG_LBD is not set
97# CONFIG_BLK_DEV_IO_TRACE is not set
98# CONFIG_LSF is not set
99
100#
101# IO Schedulers
102#
103CONFIG_IOSCHED_NOOP=y
104# CONFIG_IOSCHED_AS is not set
105CONFIG_IOSCHED_DEADLINE=y
106# CONFIG_IOSCHED_CFQ is not set
107# CONFIG_DEFAULT_AS is not set
108CONFIG_DEFAULT_DEADLINE=y
109# CONFIG_DEFAULT_CFQ is not set
110# CONFIG_DEFAULT_NOOP is not set
111CONFIG_DEFAULT_IOSCHED="deadline"
112
113#
114# System Type
115#
116# CONFIG_ARCH_AAEC2000 is not set
117# CONFIG_ARCH_INTEGRATOR is not set
118# CONFIG_ARCH_REALVIEW is not set
119# CONFIG_ARCH_VERSATILE is not set
120# CONFIG_ARCH_AT91 is not set
121# CONFIG_ARCH_CLPS7500 is not set
122# CONFIG_ARCH_CLPS711X is not set
123# CONFIG_ARCH_CO285 is not set
124# CONFIG_ARCH_EBSA110 is not set
125# CONFIG_ARCH_EP93XX is not set
126# CONFIG_ARCH_FOOTBRIDGE is not set
127# CONFIG_ARCH_NETX is not set
128# CONFIG_ARCH_H720X is not set
129# CONFIG_ARCH_IMX is not set
130# CONFIG_ARCH_IOP13XX is not set
131# CONFIG_ARCH_IOP32X is not set
132# CONFIG_ARCH_IOP33X is not set
133# CONFIG_ARCH_IXP23XX is not set
134# CONFIG_ARCH_IXP2000 is not set
135# CONFIG_ARCH_IXP4XX is not set
136# CONFIG_ARCH_L7200 is not set
137# CONFIG_ARCH_KS8695 is not set
138# CONFIG_ARCH_NS9XXX is not set
139# CONFIG_ARCH_PNX4008 is not set
140# CONFIG_ARCH_PXA is not set
141# CONFIG_ARCH_RPC is not set
142# CONFIG_ARCH_SA1100 is not set
143# CONFIG_ARCH_S3C2410 is not set
144# CONFIG_ARCH_SHARK is not set
145# CONFIG_ARCH_LH7A40X is not set
146# CONFIG_ARCH_DAVINCI is not set
147CONFIG_ARCH_OMAP=y
148
149#
150# TI OMAP Implementations
151#
152CONFIG_ARCH_OMAP1=y
153# CONFIG_ARCH_OMAP2 is not set
154
155#
156# OMAP Feature Selections
157#
158# CONFIG_OMAP_RESET_CLOCKS is not set
159CONFIG_OMAP_BOOT_TAG=y
160# CONFIG_OMAP_BOOT_REASON is not set
161# CONFIG_OMAP_COMPONENT_VERSION is not set
162CONFIG_OMAP_GPIO_SWITCH=y
163CONFIG_OMAP_MUX=y
164# CONFIG_OMAP_MUX_DEBUG is not set
165CONFIG_OMAP_MUX_WARNINGS=y
166CONFIG_OMAP_MCBSP=y
167CONFIG_OMAP_MMU_FWK=y
168CONFIG_OMAP_MBOX_FWK=y
169CONFIG_OMAP_MPU_TIMER=y
170# CONFIG_OMAP_32K_TIMER is not set
171# CONFIG_OMAP_LL_DEBUG_UART1 is not set
172# CONFIG_OMAP_LL_DEBUG_UART2 is not set
173CONFIG_OMAP_LL_DEBUG_UART3=y
174# CONFIG_OMAP_LL_DEBUG_LCD is not set
175CONFIG_OMAP_SERIAL_WAKE=y
176CONFIG_OMAP_DSP=y
177# CONFIG_OMAP_DSP_MBCMD_VERBOSE is not set
178# CONFIG_OMAP_DSP_TASK_MULTIOPEN is not set
179# CONFIG_OMAP_DSP_FBEXPORT is not set
180
181#
182# OMAP Core Type
183#
184# CONFIG_ARCH_OMAP730 is not set
185CONFIG_ARCH_OMAP15XX=y
186# CONFIG_ARCH_OMAP16XX is not set
187
188#
189# OMAP Board Type
190#
191# CONFIG_MACH_OMAP_INNOVATOR is not set
192# CONFIG_MACH_VOICEBLUE is not set
193# CONFIG_MACH_OMAP_PALMTE is not set
194# CONFIG_MACH_OMAP_PALMZ71 is not set
195# CONFIG_MACH_OMAP_PALMTT is not set
196CONFIG_MACH_SX1=y
197# CONFIG_MACH_AMS_DELTA is not set
198# CONFIG_MACH_OMAP_GENERIC is not set
199
200#
201# OMAP CPU Speed
202#
203# CONFIG_OMAP_CLOCKS_SET_BY_BOOTLOADER is not set
204CONFIG_OMAP_ARM_168MHZ=y
205# CONFIG_OMAP_ARM_150MHZ is not set
206# CONFIG_OMAP_ARM_120MHZ is not set
207# CONFIG_OMAP_ARM_60MHZ is not set
208# CONFIG_OMAP_ARM_30MHZ is not set
209
210#
211# Processor Type
212#
213CONFIG_CPU_32=y
214CONFIG_CPU_ARM925T=y
215CONFIG_CPU_32v4T=y
216CONFIG_CPU_ABRT_EV4T=y
217CONFIG_CPU_CACHE_V4WT=y
218CONFIG_CPU_CACHE_VIVT=y
219CONFIG_CPU_COPY_V4WB=y
220CONFIG_CPU_TLB_V4WBI=y
221CONFIG_CPU_CP15=y
222CONFIG_CPU_CP15_MMU=y
223
224#
225# Processor Features
226#
227CONFIG_ARM_THUMB=y
228# CONFIG_CPU_ICACHE_DISABLE is not set
229# CONFIG_CPU_DCACHE_DISABLE is not set
230# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
231# CONFIG_OUTER_CACHE is not set
232
233#
234# Bus support
235#
236# CONFIG_ARCH_SUPPORTS_MSI is not set
237
238#
239# PCCARD (PCMCIA/CardBus) support
240#
241# CONFIG_PCCARD is not set
242
243#
244# Kernel Features
245#
246# CONFIG_TICK_ONESHOT is not set
247# CONFIG_NO_HZ is not set
248# CONFIG_HIGH_RES_TIMERS is not set
249CONFIG_PREEMPT=y
250CONFIG_HZ=100
251# CONFIG_AEABI is not set
252# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
253CONFIG_SELECT_MEMORY_MODEL=y
254CONFIG_FLATMEM_MANUAL=y
255# CONFIG_DISCONTIGMEM_MANUAL is not set
256# CONFIG_SPARSEMEM_MANUAL is not set
257CONFIG_FLATMEM=y
258CONFIG_FLAT_NODE_MEM_MAP=y
259# CONFIG_SPARSEMEM_STATIC is not set
260CONFIG_SPLIT_PTLOCK_CPUS=4096
261# CONFIG_RESOURCES_64BIT is not set
262CONFIG_ZONE_DMA_FLAG=1
263# CONFIG_LEDS is not set
264CONFIG_ALIGNMENT_TRAP=y
265
266#
267# Boot options
268#
269CONFIG_ZBOOT_ROM_TEXT=0x0
270CONFIG_ZBOOT_ROM_BSS=0x0
271CONFIG_CMDLINE=""
272# CONFIG_XIP_KERNEL is not set
273# CONFIG_KEXEC is not set
274
275#
276# CPU Frequency scaling
277#
278# CONFIG_CPU_FREQ is not set
279
280#
281# Floating point emulation
282#
283
284#
285# At least one emulation must be selected
286#
287CONFIG_FPE_NWFPE=y
288# CONFIG_FPE_NWFPE_XP is not set
289# CONFIG_FPE_FASTFPE is not set
290
291#
292# Userspace binary formats
293#
294CONFIG_BINFMT_ELF=y
295# CONFIG_BINFMT_AOUT is not set
296CONFIG_BINFMT_MISC=y
297# CONFIG_ARTHUR is not set
298
299#
300# Power management options
301#
302# CONFIG_PM is not set
303
304#
305# Networking
306#
307CONFIG_NET=y
308
309#
310# Networking options
311#
312CONFIG_PACKET=y
313CONFIG_PACKET_MMAP=y
314CONFIG_UNIX=y
315# CONFIG_NET_KEY is not set
316CONFIG_INET=y
317# CONFIG_IP_MULTICAST is not set
318# CONFIG_IP_ADVANCED_ROUTER is not set
319CONFIG_IP_FIB_HASH=y
320CONFIG_IP_PNP=y
321# CONFIG_IP_PNP_DHCP is not set
322# CONFIG_IP_PNP_BOOTP is not set
323# CONFIG_IP_PNP_RARP is not set
324# CONFIG_NET_IPIP is not set
325# CONFIG_NET_IPGRE is not set
326# CONFIG_ARPD is not set
327# CONFIG_SYN_COOKIES is not set
328# CONFIG_INET_AH is not set
329# CONFIG_INET_ESP is not set
330# CONFIG_INET_IPCOMP is not set
331# CONFIG_INET_XFRM_TUNNEL is not set
332# CONFIG_INET_TUNNEL is not set
333# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
334# CONFIG_INET_XFRM_MODE_TUNNEL is not set
335# CONFIG_INET_XFRM_MODE_BEET is not set
336# CONFIG_INET_DIAG is not set
337# CONFIG_TCP_CONG_ADVANCED is not set
338CONFIG_TCP_CONG_CUBIC=y
339CONFIG_DEFAULT_TCP_CONG="cubic"
340# CONFIG_TCP_MD5SIG is not set
341# CONFIG_IPV6 is not set
342# CONFIG_INET6_XFRM_TUNNEL is not set
343# CONFIG_INET6_TUNNEL is not set
344# CONFIG_NETWORK_SECMARK is not set
345# CONFIG_NETFILTER is not set
346
347#
348# DCCP Configuration (EXPERIMENTAL)
349#
350# CONFIG_IP_DCCP is not set
351
352#
353# SCTP Configuration (EXPERIMENTAL)
354#
355# CONFIG_IP_SCTP is not set
356
357#
358# TIPC Configuration (EXPERIMENTAL)
359#
360# CONFIG_TIPC is not set
361# CONFIG_ATM is not set
362# CONFIG_BRIDGE is not set
363# CONFIG_VLAN_8021Q is not set
364# CONFIG_DECNET is not set
365# CONFIG_LLC2 is not set
366# CONFIG_IPX is not set
367# CONFIG_ATALK is not set
368# CONFIG_X25 is not set
369# CONFIG_LAPB is not set
370# CONFIG_ECONET is not set
371# CONFIG_WAN_ROUTER is not set
372
373#
374# QoS and/or fair queueing
375#
376# CONFIG_NET_SCHED is not set
377
378#
379# Network testing
380#
381# CONFIG_NET_PKTGEN is not set
382# CONFIG_HAMRADIO is not set
383# CONFIG_IRDA is not set
384# CONFIG_BT is not set
385# CONFIG_AF_RXRPC is not set
386
387#
388# Wireless
389#
390# CONFIG_CFG80211 is not set
391# CONFIG_WIRELESS_EXT is not set
392# CONFIG_MAC80211 is not set
393# CONFIG_IEEE80211 is not set
394# CONFIG_RFKILL is not set
395
396#
397# Device Drivers
398#
399
400#
401# Generic Driver Options
402#
403CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y
405# CONFIG_FW_LOADER is not set
406# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set
409
410#
411# Connector - unified userspace <-> kernelspace linker
412#
413CONFIG_CONNECTOR=y
414# CONFIG_PROC_EVENTS is not set
415# CONFIG_MTD is not set
416
417#
418# Parallel port support
419#
420# CONFIG_PARPORT is not set
421
422#
423# Plug and Play support
424#
425# CONFIG_PNPACPI is not set
426
427#
428# Block devices
429#
430# CONFIG_BLK_DEV_COW_COMMON is not set
431CONFIG_BLK_DEV_LOOP=m
432# CONFIG_BLK_DEV_CRYPTOLOOP is not set
433# CONFIG_BLK_DEV_NBD is not set
434CONFIG_BLK_DEV_RAM=m
435CONFIG_BLK_DEV_RAM_COUNT=2
436CONFIG_BLK_DEV_RAM_SIZE=4096
437CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
438# CONFIG_CDROM_PKTCDVD is not set
439# CONFIG_ATA_OVER_ETH is not set
440
441#
442# SCSI device support
443#
444# CONFIG_RAID_ATTRS is not set
445# CONFIG_SCSI is not set
446# CONFIG_SCSI_NETLINK is not set
447# CONFIG_ATA is not set
448
449#
450# Multi-device support (RAID and LVM)
451#
452# CONFIG_MD is not set
453
454#
455# Network device support
456#
457CONFIG_NETDEVICES=y
458# CONFIG_DUMMY is not set
459# CONFIG_BONDING is not set
460# CONFIG_EQUALIZER is not set
461# CONFIG_TUN is not set
462CONFIG_PHYLIB=y
463
464#
465# MII PHY device drivers
466#
467# CONFIG_MARVELL_PHY is not set
468# CONFIG_DAVICOM_PHY is not set
469# CONFIG_QSEMI_PHY is not set
470# CONFIG_LXT_PHY is not set
471# CONFIG_CICADA_PHY is not set
472# CONFIG_VITESSE_PHY is not set
473# CONFIG_SMSC_PHY is not set
474# CONFIG_BROADCOM_PHY is not set
475# CONFIG_FIXED_PHY is not set
476
477#
478# Ethernet (10 or 100Mbit)
479#
480CONFIG_NET_ETHERNET=y
481CONFIG_MII=y
482# CONFIG_SMC91X is not set
483# CONFIG_DM9000 is not set
484CONFIG_NETDEV_1000=y
485CONFIG_NETDEV_10000=y
486
487#
488# Token Ring devices
489#
490
491#
492# Wireless LAN
493#
494# CONFIG_WLAN_PRE80211 is not set
495# CONFIG_WLAN_80211 is not set
496# CONFIG_WAN is not set
497# CONFIG_PPP is not set
498# CONFIG_SLIP is not set
499# CONFIG_SHAPER is not set
500# CONFIG_NETCONSOLE is not set
501# CONFIG_NETPOLL is not set
502# CONFIG_NET_POLL_CONTROLLER is not set
503
504#
505# ISDN subsystem
506#
507# CONFIG_ISDN is not set
508
509#
510# Input device support
511#
512CONFIG_INPUT=y
513# CONFIG_INPUT_FF_MEMLESS is not set
514
515#
516# Userland interfaces
517#
518# CONFIG_INPUT_MOUSEDEV is not set
519# CONFIG_INPUT_JOYDEV is not set
520# CONFIG_INPUT_TSDEV is not set
521CONFIG_INPUT_EVDEV=y
522# CONFIG_INPUT_EVBUG is not set
523
524#
525# Input Device Drivers
526#
527CONFIG_INPUT_KEYBOARD=y
528# CONFIG_KEYBOARD_ATKBD is not set
529# CONFIG_KEYBOARD_SUNKBD is not set
530# CONFIG_KEYBOARD_LKKBD is not set
531# CONFIG_KEYBOARD_XTKBD is not set
532# CONFIG_KEYBOARD_NEWTON is not set
533# CONFIG_KEYBOARD_STOWAWAY is not set
534CONFIG_KEYBOARD_OMAP=y
535# CONFIG_KEYBOARD_GPIO is not set
536# CONFIG_INPUT_MOUSE is not set
537# CONFIG_INPUT_JOYSTICK is not set
538# CONFIG_INPUT_TABLET is not set
539# CONFIG_INPUT_TOUCHSCREEN is not set
540# CONFIG_INPUT_MISC is not set
541
542#
543# Hardware I/O ports
544#
545# CONFIG_SERIO is not set
546# CONFIG_GAMEPORT is not set
547
548#
549# Character devices
550#
551CONFIG_VT=y
552CONFIG_VT_CONSOLE=y
553CONFIG_HW_CONSOLE=y
554# CONFIG_VT_HW_CONSOLE_BINDING is not set
555# CONFIG_SERIAL_NONSTANDARD is not set
556
557#
558# Serial drivers
559#
560CONFIG_SERIAL_8250=y
561# CONFIG_SERIAL_8250_CONSOLE is not set
562CONFIG_SERIAL_8250_NR_UARTS=3
563CONFIG_SERIAL_8250_RUNTIME_UARTS=3
564# CONFIG_SERIAL_8250_EXTENDED is not set
565
566#
567# Non-8250 serial port support
568#
569CONFIG_SERIAL_CORE=y
570CONFIG_UNIX98_PTYS=y
571# CONFIG_LEGACY_PTYS is not set
572
573#
574# IPMI
575#
576# CONFIG_IPMI_HANDLER is not set
577# CONFIG_WATCHDOG is not set
578# CONFIG_HW_RANDOM is not set
579# CONFIG_NVRAM is not set
580# CONFIG_R3964 is not set
581# CONFIG_RAW_DRIVER is not set
582
583#
584# TPM devices
585#
586# CONFIG_TCG_TPM is not set
587CONFIG_I2C=y
588CONFIG_I2C_BOARDINFO=y
589CONFIG_I2C_CHARDEV=y
590
591#
592# I2C Algorithms
593#
594# CONFIG_I2C_ALGOBIT is not set
595# CONFIG_I2C_ALGOPCF is not set
596# CONFIG_I2C_ALGOPCA is not set
597
598#
599# I2C Hardware Bus support
600#
601# CONFIG_I2C_GPIO is not set
602# CONFIG_I2C_OCORES is not set
603CONFIG_I2C_OMAP=y
604# CONFIG_I2C_PARPORT_LIGHT is not set
605# CONFIG_I2C_SIMTEC is not set
606# CONFIG_I2C_STUB is not set
607
608#
609# Miscellaneous I2C Chip support
610#
611# CONFIG_SENSORS_DS1337 is not set
612# CONFIG_SENSORS_DS1374 is not set
613# CONFIG_SENSORS_EEPROM is not set
614# CONFIG_SENSORS_PCF8574 is not set
615# CONFIG_SENSORS_PCA9539 is not set
616# CONFIG_SENSORS_PCF8591 is not set
617# CONFIG_TPS65010 is not set
618# CONFIG_SENSORS_TLV320AIC23 is not set
619# CONFIG_SENSORS_MAX6875 is not set
620# CONFIG_I2C_DEBUG_CORE is not set
621# CONFIG_I2C_DEBUG_ALGO is not set
622# CONFIG_I2C_DEBUG_BUS is not set
623# CONFIG_I2C_DEBUG_CHIP is not set
624
625#
626# SPI support
627#
628# CONFIG_SPI is not set
629# CONFIG_SPI_MASTER is not set
630
631#
632# Dallas's 1-wire bus
633#
634# CONFIG_W1 is not set
635# CONFIG_HWMON is not set
636
637#
638# Misc devices
639#
640# CONFIG_BLINK is not set
641
642#
643# Multifunction device drivers
644#
645# CONFIG_MFD_SM501 is not set
646
647#
648# LED devices
649#
650# CONFIG_NEW_LEDS is not set
651
652#
653# LED drivers
654#
655
656#
657# LED Triggers
658#
659
660#
661# Multimedia devices
662#
663# CONFIG_VIDEO_DEV is not set
664# CONFIG_DVB_CORE is not set
665CONFIG_DAB=y
666
667#
668# Graphics support
669#
670# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
671
672#
673# Display device support
674#
675# CONFIG_DISPLAY_SUPPORT is not set
676# CONFIG_VGASTATE is not set
677CONFIG_FB=y
678# CONFIG_FIRMWARE_EDID is not set
679# CONFIG_FB_DDC is not set
680# CONFIG_FB_CFB_FILLRECT is not set
681# CONFIG_FB_CFB_COPYAREA is not set
682# CONFIG_FB_CFB_IMAGEBLIT is not set
683# CONFIG_FB_SYS_FILLRECT is not set
684# CONFIG_FB_SYS_COPYAREA is not set
685# CONFIG_FB_SYS_IMAGEBLIT is not set
686# CONFIG_FB_SYS_FOPS is not set
687CONFIG_FB_DEFERRED_IO=y
688# CONFIG_FB_SVGALIB is not set
689# CONFIG_FB_MACMODES is not set
690# CONFIG_FB_BACKLIGHT is not set
691# CONFIG_FB_MODE_HELPERS is not set
692# CONFIG_FB_TILEBLITTING is not set
693
694#
695# Frame buffer hardware drivers
696#
697# CONFIG_FB_S1D13XXX is not set
698CONFIG_FB_OMAP=y
699# CONFIG_FB_OMAP_LCDC_EXTERNAL is not set
700# CONFIG_FB_OMAP_LCD_MIPID is not set
701CONFIG_FB_OMAP_BOOTLOADER_INIT=y
702CONFIG_FB_OMAP_CONSISTENT_DMA_SIZE=2
703# CONFIG_FB_OMAP_DMA_TUNE is not set
704# CONFIG_FB_VIRTUAL is not set
705
706#
707# Console display driver support
708#
709# CONFIG_VGA_CONSOLE is not set
710CONFIG_DUMMY_CONSOLE=y
711CONFIG_FRAMEBUFFER_CONSOLE=y
712# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
713CONFIG_FONTS=y
714# CONFIG_FONT_8x8 is not set
715# CONFIG_FONT_8x16 is not set
716# CONFIG_FONT_6x11 is not set
717# CONFIG_FONT_7x14 is not set
718# CONFIG_FONT_PEARL_8x8 is not set
719# CONFIG_FONT_ACORN_8x8 is not set
720CONFIG_FONT_MINI_4x6=y
721# CONFIG_FONT_CLEAN_4x6 is not set
722# CONFIG_FONT_CLEAN_5x8 is not set
723# CONFIG_FONT_SUN8x16 is not set
724# CONFIG_FONT_SUN12x22 is not set
725# CONFIG_FONT_10x18 is not set
726CONFIG_LOGO=y
727# CONFIG_LOGO_LINUX_MONO is not set
728# CONFIG_LOGO_LINUX_VGA16 is not set
729CONFIG_LOGO_LINUX_CLUT224=y
730
731#
732# Sound
733#
734CONFIG_SOUND=y
735
736#
737# Advanced Linux Sound Architecture
738#
739CONFIG_SND=y
740CONFIG_SND_TIMER=y
741CONFIG_SND_PCM=y
742# CONFIG_SND_SEQUENCER is not set
743CONFIG_SND_OSSEMUL=y
744CONFIG_SND_MIXER_OSS=y
745CONFIG_SND_PCM_OSS=y
746CONFIG_SND_PCM_OSS_PLUGINS=y
747# CONFIG_SND_DYNAMIC_MINORS is not set
748# CONFIG_SND_SUPPORT_OLD_API is not set
749# CONFIG_SND_VERBOSE_PROCFS is not set
750# CONFIG_SND_VERBOSE_PRINTK is not set
751# CONFIG_SND_DEBUG is not set
752
753#
754# Generic devices
755#
756# CONFIG_SND_DUMMY is not set
757# CONFIG_SND_MTPAV is not set
758# CONFIG_SND_SERIAL_U16550 is not set
759# CONFIG_SND_MPU401 is not set
760
761#
762# ALSA ARM devices
763#
764# CONFIG_SND_OMAP_AIC23 is not set
765# CONFIG_SND_OMAP_TSC2101 is not set
766CONFIG_SND_SX1=y
767# CONFIG_SND_OMAP_TSC2102 is not set
768# CONFIG_SND_OMAP24XX_EAC is not set
769
770#
771# System on Chip audio support
772#
773# CONFIG_SND_SOC is not set
774
775#
776# Open Sound System
777#
778# CONFIG_SOUND_PRIME is not set
779
780#
781# HID Devices
782#
783CONFIG_HID=y
784# CONFIG_HID_DEBUG is not set
785
786#
787# USB support
788#
789CONFIG_USB_ARCH_HAS_HCD=y
790CONFIG_USB_ARCH_HAS_OHCI=y
791# CONFIG_USB_ARCH_HAS_EHCI is not set
792# CONFIG_USB is not set
793# CONFIG_USB_MUSB_HDRC is not set
794# CONFIG_USB_GADGET_MUSB_HDRC is not set
795
796#
797# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
798#
799
800#
801# USB Gadget Support
802#
803CONFIG_USB_GADGET=y
804# CONFIG_USB_GADGET_DEBUG_FILES is not set
805CONFIG_USB_GADGET_SELECTED=y
806# CONFIG_USB_GADGET_FSL_USB2 is not set
807# CONFIG_USB_GADGET_NET2280 is not set
808# CONFIG_USB_GADGET_PXA2XX is not set
809# CONFIG_USB_GADGET_GOKU is not set
810# CONFIG_USB_GADGET_LH7A40X is not set
811CONFIG_USB_GADGET_OMAP=y
812CONFIG_USB_OMAP=y
813# CONFIG_USB_GADGET_AT91 is not set
814# CONFIG_USB_GADGET_DUMMY_HCD is not set
815# CONFIG_USB_GADGET_DUALSPEED is not set
816# CONFIG_USB_ZERO is not set
817CONFIG_USB_ETH=y
818CONFIG_USB_ETH_RNDIS=y
819# CONFIG_USB_GADGETFS is not set
820# CONFIG_USB_FILE_STORAGE is not set
821# CONFIG_USB_G_SERIAL is not set
822# CONFIG_USB_MIDI_GADGET is not set
823CONFIG_MMC=y
824# CONFIG_MMC_DEBUG is not set
825# CONFIG_MMC_UNSAFE_RESUME is not set
826
827#
828# MMC/SD Card Drivers
829#
830CONFIG_MMC_BLOCK=y
831
832#
833# MMC/SD Host Controller Drivers
834#
835CONFIG_MMC_OMAP=y
836
837#
838# Real Time Clock
839#
840CONFIG_RTC_LIB=y
841CONFIG_RTC_CLASS=y
842CONFIG_RTC_HCTOSYS=y
843CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
844# CONFIG_RTC_DEBUG is not set
845
846#
847# RTC interfaces
848#
849CONFIG_RTC_INTF_SYSFS=y
850CONFIG_RTC_INTF_PROC=y
851CONFIG_RTC_INTF_DEV=y
852# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
853# CONFIG_RTC_DRV_TEST is not set
854
855#
856# I2C RTC drivers
857#
858# CONFIG_RTC_DRV_DS1307 is not set
859# CONFIG_RTC_DRV_DS1672 is not set
860# CONFIG_RTC_DRV_MAX6900 is not set
861# CONFIG_RTC_DRV_RS5C372 is not set
862# CONFIG_RTC_DRV_ISL1208 is not set
863# CONFIG_RTC_DRV_X1205 is not set
864# CONFIG_RTC_DRV_PCF8563 is not set
865# CONFIG_RTC_DRV_PCF8583 is not set
866
867#
868# SPI RTC drivers
869#
870
871#
872# Platform RTC drivers
873#
874# CONFIG_RTC_DRV_CMOS is not set
875# CONFIG_RTC_DRV_DS1553 is not set
876# CONFIG_RTC_DRV_DS1742 is not set
877# CONFIG_RTC_DRV_M48T86 is not set
878# CONFIG_RTC_DRV_V3020 is not set
879
880#
881# on-CPU RTC drivers
882#
883CONFIG_RTC_DRV_OMAP=y
884
885#
886# CBUS support
887#
888# CONFIG_CBUS is not set
889
890#
891# File systems
892#
893CONFIG_EXT2_FS=y
894# CONFIG_EXT2_FS_XATTR is not set
895# CONFIG_EXT2_FS_XIP is not set
896# CONFIG_EXT3_FS is not set
897# CONFIG_EXT4DEV_FS is not set
898# CONFIG_REISERFS_FS is not set
899# CONFIG_JFS_FS is not set
900# CONFIG_FS_POSIX_ACL is not set
901# CONFIG_XFS_FS is not set
902# CONFIG_GFS2_FS is not set
903# CONFIG_OCFS2_FS is not set
904# CONFIG_MINIX_FS is not set
905# CONFIG_ROMFS_FS is not set
906CONFIG_INOTIFY=y
907CONFIG_INOTIFY_USER=y
908# CONFIG_QUOTA is not set
909# CONFIG_DNOTIFY is not set
910# CONFIG_AUTOFS_FS is not set
911# CONFIG_AUTOFS4_FS is not set
912# CONFIG_FUSE_FS is not set
913
914#
915# CD-ROM/DVD Filesystems
916#
917# CONFIG_ISO9660_FS is not set
918# CONFIG_UDF_FS is not set
919
920#
921# DOS/FAT/NT Filesystems
922#
923CONFIG_FAT_FS=y
924CONFIG_MSDOS_FS=y
925CONFIG_VFAT_FS=y
926CONFIG_FAT_DEFAULT_CODEPAGE=866
927CONFIG_FAT_DEFAULT_IOCHARSET="koi8-r"
928# CONFIG_NTFS_FS is not set
929
930#
931# Pseudo filesystems
932#
933CONFIG_PROC_FS=y
934CONFIG_PROC_SYSCTL=y
935CONFIG_SYSFS=y
936CONFIG_TMPFS=y
937# CONFIG_TMPFS_POSIX_ACL is not set
938# CONFIG_HUGETLB_PAGE is not set
939CONFIG_RAMFS=y
940# CONFIG_CONFIGFS_FS is not set
941
942#
943# Miscellaneous filesystems
944#
945# CONFIG_ADFS_FS is not set
946# CONFIG_AFFS_FS is not set
947# CONFIG_HFS_FS is not set
948# CONFIG_HFSPLUS_FS is not set
949# CONFIG_BEFS_FS is not set
950# CONFIG_BFS_FS is not set
951# CONFIG_EFS_FS is not set
952CONFIG_CRAMFS=y
953# CONFIG_VXFS_FS is not set
954# CONFIG_HPFS_FS is not set
955# CONFIG_QNX4FS_FS is not set
956# CONFIG_SYSV_FS is not set
957# CONFIG_UFS_FS is not set
958
959#
960# Network File Systems
961#
962CONFIG_NFS_FS=y
963# CONFIG_NFS_V3 is not set
964# CONFIG_NFS_V4 is not set
965# CONFIG_NFS_DIRECTIO is not set
966# CONFIG_NFSD is not set
967CONFIG_ROOT_NFS=y
968CONFIG_LOCKD=y
969CONFIG_NFS_COMMON=y
970CONFIG_SUNRPC=y
971# CONFIG_SUNRPC_BIND34 is not set
972# CONFIG_RPCSEC_GSS_KRB5 is not set
973# CONFIG_RPCSEC_GSS_SPKM3 is not set
974# CONFIG_SMB_FS is not set
975# CONFIG_CIFS is not set
976# CONFIG_NCP_FS is not set
977# CONFIG_CODA_FS is not set
978# CONFIG_AFS_FS is not set
979# CONFIG_9P_FS is not set
980
981#
982# Partition Types
983#
984CONFIG_PARTITION_ADVANCED=y
985# CONFIG_ACORN_PARTITION is not set
986# CONFIG_OSF_PARTITION is not set
987# CONFIG_AMIGA_PARTITION is not set
988# CONFIG_ATARI_PARTITION is not set
989# CONFIG_MAC_PARTITION is not set
990CONFIG_MSDOS_PARTITION=y
991# CONFIG_BSD_DISKLABEL is not set
992# CONFIG_MINIX_SUBPARTITION is not set
993# CONFIG_SOLARIS_X86_PARTITION is not set
994# CONFIG_UNIXWARE_DISKLABEL is not set
995# CONFIG_LDM_PARTITION is not set
996# CONFIG_SGI_PARTITION is not set
997# CONFIG_ULTRIX_PARTITION is not set
998# CONFIG_SUN_PARTITION is not set
999# CONFIG_KARMA_PARTITION is not set
1000# CONFIG_EFI_PARTITION is not set
1001# CONFIG_SYSV68_PARTITION is not set
1002
1003#
1004# Native Language Support
1005#
1006CONFIG_NLS=y
1007CONFIG_NLS_DEFAULT="iso8859-1"
1008CONFIG_NLS_CODEPAGE_437=y
1009# CONFIG_NLS_CODEPAGE_737 is not set
1010# CONFIG_NLS_CODEPAGE_775 is not set
1011# CONFIG_NLS_CODEPAGE_850 is not set
1012# CONFIG_NLS_CODEPAGE_852 is not set
1013# CONFIG_NLS_CODEPAGE_855 is not set
1014# CONFIG_NLS_CODEPAGE_857 is not set
1015# CONFIG_NLS_CODEPAGE_860 is not set
1016# CONFIG_NLS_CODEPAGE_861 is not set
1017# CONFIG_NLS_CODEPAGE_862 is not set
1018# CONFIG_NLS_CODEPAGE_863 is not set
1019# CONFIG_NLS_CODEPAGE_864 is not set
1020# CONFIG_NLS_CODEPAGE_865 is not set
1021CONFIG_NLS_CODEPAGE_866=y
1022# CONFIG_NLS_CODEPAGE_869 is not set
1023# CONFIG_NLS_CODEPAGE_936 is not set
1024# CONFIG_NLS_CODEPAGE_950 is not set
1025# CONFIG_NLS_CODEPAGE_932 is not set
1026# CONFIG_NLS_CODEPAGE_949 is not set
1027# CONFIG_NLS_CODEPAGE_874 is not set
1028# CONFIG_NLS_ISO8859_8 is not set
1029# CONFIG_NLS_CODEPAGE_1250 is not set
1030CONFIG_NLS_CODEPAGE_1251=y
1031# CONFIG_NLS_ASCII is not set
1032CONFIG_NLS_ISO8859_1=y
1033# CONFIG_NLS_ISO8859_2 is not set
1034# CONFIG_NLS_ISO8859_3 is not set
1035# CONFIG_NLS_ISO8859_4 is not set
1036CONFIG_NLS_ISO8859_5=y
1037# CONFIG_NLS_ISO8859_6 is not set
1038# CONFIG_NLS_ISO8859_7 is not set
1039# CONFIG_NLS_ISO8859_9 is not set
1040# CONFIG_NLS_ISO8859_13 is not set
1041# CONFIG_NLS_ISO8859_14 is not set
1042# CONFIG_NLS_ISO8859_15 is not set
1043CONFIG_NLS_KOI8_R=y
1044# CONFIG_NLS_KOI8_U is not set
1045CONFIG_NLS_UTF8=y
1046
1047#
1048# Distributed Lock Manager
1049#
1050# CONFIG_DLM is not set
1051
1052#
1053# Profiling support
1054#
1055CONFIG_PROFILING=y
1056CONFIG_OPROFILE=y
1057
1058#
1059# Kernel hacking
1060#
1061# CONFIG_PRINTK_TIME is not set
1062# CONFIG_ENABLE_MUST_CHECK is not set
1063# CONFIG_MAGIC_SYSRQ is not set
1064# CONFIG_UNUSED_SYMBOLS is not set
1065# CONFIG_DEBUG_FS is not set
1066# CONFIG_HEADERS_CHECK is not set
1067CONFIG_DEBUG_KERNEL=y
1068# CONFIG_DEBUG_SHIRQ is not set
1069# CONFIG_DETECT_SOFTLOCKUP is not set
1070# CONFIG_SCHEDSTATS is not set
1071# CONFIG_TIMER_STATS is not set
1072CONFIG_DEBUG_PREEMPT=y
1073# CONFIG_DEBUG_RT_MUTEXES is not set
1074# CONFIG_RT_MUTEX_TESTER is not set
1075# CONFIG_DEBUG_SPINLOCK is not set
1076# CONFIG_DEBUG_MUTEXES is not set
1077# CONFIG_DEBUG_LOCK_ALLOC is not set
1078# CONFIG_PROVE_LOCKING is not set
1079# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1080# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1081# CONFIG_DEBUG_KOBJECT is not set
1082# CONFIG_DEBUG_BUGVERBOSE is not set
1083# CONFIG_DEBUG_INFO is not set
1084# CONFIG_DEBUG_VM is not set
1085# CONFIG_DEBUG_LIST is not set
1086CONFIG_FRAME_POINTER=y
1087CONFIG_FORCED_INLINING=y
1088# CONFIG_RCU_TORTURE_TEST is not set
1089# CONFIG_FAULT_INJECTION is not set
1090# CONFIG_DEBUG_USER is not set
1091# CONFIG_DEBUG_ERRORS is not set
1092# CONFIG_DEBUG_LL is not set
1093
1094#
1095# Security options
1096#
1097# CONFIG_KEYS is not set
1098# CONFIG_SECURITY is not set
1099
1100#
1101# Cryptographic options
1102#
1103# CONFIG_CRYPTO is not set
1104
1105#
1106# Library routines
1107#
1108CONFIG_BITREVERSE=y
1109CONFIG_CRC_CCITT=y
1110CONFIG_CRC16=y
1111# CONFIG_CRC_ITU_T is not set
1112CONFIG_CRC32=y
1113CONFIG_LIBCRC32C=y
1114CONFIG_ZLIB_INFLATE=y
1115CONFIG_PLIST=y
1116CONFIG_HAS_IOMEM=y
1117CONFIG_HAS_IOPORT=y
1118CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/viper_defconfig b/arch/arm/configs/viper_defconfig
new file mode 100644
index 000000000000..d01fecb8673e
--- /dev/null
+++ b/arch/arm/configs/viper_defconfig
@@ -0,0 +1,1678 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.27-rc4
4# Thu Aug 21 17:12:07 2008
5#
6CONFIG_ARM=y
7CONFIG_HAVE_PWM=y
8CONFIG_SYS_SUPPORTS_APM_EMULATION=y
9CONFIG_GENERIC_GPIO=y
10CONFIG_GENERIC_TIME=y
11CONFIG_GENERIC_CLOCKEVENTS=y
12CONFIG_MMU=y
13# CONFIG_NO_IOPORT is not set
14CONFIG_GENERIC_HARDIRQS=y
15CONFIG_STACKTRACE_SUPPORT=y
16CONFIG_HAVE_LATENCYTOP_SUPPORT=y
17CONFIG_LOCKDEP_SUPPORT=y
18CONFIG_TRACE_IRQFLAGS_SUPPORT=y
19CONFIG_HARDIRQS_SW_RESEND=y
20CONFIG_GENERIC_IRQ_PROBE=y
21CONFIG_RWSEM_GENERIC_SPINLOCK=y
22# CONFIG_ARCH_HAS_ILOG2_U32 is not set
23# CONFIG_ARCH_HAS_ILOG2_U64 is not set
24CONFIG_GENERIC_HWEIGHT=y
25CONFIG_GENERIC_CALIBRATE_DELAY=y
26CONFIG_ARCH_SUPPORTS_AOUT=y
27CONFIG_ZONE_DMA=y
28CONFIG_ARCH_MTD_XIP=y
29CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
30CONFIG_VECTORS_BASE=0xffff0000
31CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
32
33#
34# General setup
35#
36CONFIG_EXPERIMENTAL=y
37CONFIG_BROKEN_ON_SMP=y
38CONFIG_INIT_ENV_ARG_LIMIT=32
39CONFIG_LOCALVERSION=""
40CONFIG_LOCALVERSION_AUTO=y
41# CONFIG_SWAP is not set
42CONFIG_SYSVIPC=y
43CONFIG_SYSVIPC_SYSCTL=y
44# CONFIG_POSIX_MQUEUE is not set
45# CONFIG_BSD_PROCESS_ACCT is not set
46# CONFIG_TASKSTATS is not set
47# CONFIG_AUDIT is not set
48# CONFIG_IKCONFIG is not set
49CONFIG_LOG_BUF_SHIFT=13
50# CONFIG_CGROUPS is not set
51# CONFIG_GROUP_SCHED is not set
52CONFIG_SYSFS_DEPRECATED=y
53CONFIG_SYSFS_DEPRECATED_V2=y
54# CONFIG_RELAY is not set
55# CONFIG_NAMESPACES is not set
56# CONFIG_BLK_DEV_INITRD is not set
57CONFIG_CC_OPTIMIZE_FOR_SIZE=y
58CONFIG_SYSCTL=y
59CONFIG_EMBEDDED=y
60CONFIG_UID16=y
61CONFIG_SYSCTL_SYSCALL=y
62CONFIG_KALLSYMS=y
63# CONFIG_KALLSYMS_ALL is not set
64# CONFIG_KALLSYMS_EXTRA_PASS is not set
65CONFIG_HOTPLUG=y
66CONFIG_PRINTK=y
67CONFIG_BUG=y
68# CONFIG_ELF_CORE is not set
69CONFIG_COMPAT_BRK=y
70CONFIG_BASE_FULL=y
71CONFIG_FUTEX=y
72CONFIG_ANON_INODES=y
73CONFIG_EPOLL=y
74CONFIG_SIGNALFD=y
75CONFIG_TIMERFD=y
76CONFIG_EVENTFD=y
77# CONFIG_SHMEM is not set
78CONFIG_VM_EVENT_COUNTERS=y
79CONFIG_SLAB=y
80# CONFIG_SLUB is not set
81# CONFIG_SLOB is not set
82# CONFIG_PROFILING is not set
83# CONFIG_MARKERS is not set
84CONFIG_HAVE_OPROFILE=y
85# CONFIG_KPROBES is not set
86# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
87# CONFIG_HAVE_IOREMAP_PROT is not set
88CONFIG_HAVE_KPROBES=y
89CONFIG_HAVE_KRETPROBES=y
90# CONFIG_HAVE_ARCH_TRACEHOOK is not set
91# CONFIG_HAVE_DMA_ATTRS is not set
92# CONFIG_USE_GENERIC_SMP_HELPERS is not set
93CONFIG_HAVE_CLK=y
94CONFIG_PROC_PAGE_MONITOR=y
95CONFIG_HAVE_GENERIC_DMA_COHERENT=y
96CONFIG_SLABINFO=y
97CONFIG_RT_MUTEXES=y
98CONFIG_TINY_SHMEM=y
99CONFIG_BASE_SMALL=0
100CONFIG_MODULES=y
101# CONFIG_MODULE_FORCE_LOAD is not set
102CONFIG_MODULE_UNLOAD=y
103# CONFIG_MODULE_FORCE_UNLOAD is not set
104# CONFIG_MODVERSIONS is not set
105# CONFIG_MODULE_SRCVERSION_ALL is not set
106CONFIG_KMOD=y
107CONFIG_BLOCK=y
108# CONFIG_LBD is not set
109# CONFIG_BLK_DEV_IO_TRACE is not set
110# CONFIG_LSF is not set
111# CONFIG_BLK_DEV_BSG is not set
112# CONFIG_BLK_DEV_INTEGRITY is not set
113
114#
115# IO Schedulers
116#
117CONFIG_IOSCHED_NOOP=y
118# CONFIG_IOSCHED_AS is not set
119CONFIG_IOSCHED_DEADLINE=y
120# CONFIG_IOSCHED_CFQ is not set
121# CONFIG_DEFAULT_AS is not set
122CONFIG_DEFAULT_DEADLINE=y
123# CONFIG_DEFAULT_CFQ is not set
124# CONFIG_DEFAULT_NOOP is not set
125CONFIG_DEFAULT_IOSCHED="deadline"
126CONFIG_CLASSIC_RCU=y
127
128#
129# System Type
130#
131# CONFIG_ARCH_AAEC2000 is not set
132# CONFIG_ARCH_INTEGRATOR is not set
133# CONFIG_ARCH_REALVIEW is not set
134# CONFIG_ARCH_VERSATILE is not set
135# CONFIG_ARCH_AT91 is not set
136# CONFIG_ARCH_CLPS7500 is not set
137# CONFIG_ARCH_CLPS711X is not set
138# CONFIG_ARCH_EBSA110 is not set
139# CONFIG_ARCH_EP93XX is not set
140# CONFIG_ARCH_FOOTBRIDGE is not set
141# CONFIG_ARCH_NETX is not set
142# CONFIG_ARCH_H720X is not set
143# CONFIG_ARCH_IMX is not set
144# CONFIG_ARCH_IOP13XX is not set
145# CONFIG_ARCH_IOP32X is not set
146# CONFIG_ARCH_IOP33X is not set
147# CONFIG_ARCH_IXP23XX is not set
148# CONFIG_ARCH_IXP2000 is not set
149# CONFIG_ARCH_IXP4XX is not set
150# CONFIG_ARCH_L7200 is not set
151# CONFIG_ARCH_KIRKWOOD is not set
152# CONFIG_ARCH_KS8695 is not set
153# CONFIG_ARCH_NS9XXX is not set
154# CONFIG_ARCH_LOKI is not set
155# CONFIG_ARCH_MV78XX0 is not set
156# CONFIG_ARCH_MXC is not set
157# CONFIG_ARCH_ORION5X is not set
158# CONFIG_ARCH_PNX4008 is not set
159CONFIG_ARCH_PXA=y
160# CONFIG_ARCH_RPC is not set
161# CONFIG_ARCH_SA1100 is not set
162# CONFIG_ARCH_S3C2410 is not set
163# CONFIG_ARCH_SHARK is not set
164# CONFIG_ARCH_LH7A40X is not set
165# CONFIG_ARCH_DAVINCI is not set
166# CONFIG_ARCH_OMAP is not set
167# CONFIG_ARCH_MSM7X00A is not set
168
169#
170# Intel PXA2xx/PXA3xx Implementations
171#
172# CONFIG_ARCH_GUMSTIX is not set
173# CONFIG_ARCH_LUBBOCK is not set
174# CONFIG_MACH_LOGICPD_PXA270 is not set
175# CONFIG_MACH_MAINSTONE is not set
176# CONFIG_ARCH_PXA_IDP is not set
177# CONFIG_PXA_SHARPSL is not set
178CONFIG_ARCH_VIPER=y
179# CONFIG_ARCH_PXA_ESERIES is not set
180# CONFIG_MACH_TRIZEPS4 is not set
181# CONFIG_MACH_EM_X270 is not set
182# CONFIG_MACH_COLIBRI is not set
183# CONFIG_MACH_ZYLONITE is not set
184# CONFIG_MACH_LITTLETON is not set
185# CONFIG_MACH_TAVOREVB is not set
186# CONFIG_MACH_SAAR is not set
187# CONFIG_MACH_ARMCORE is not set
188# CONFIG_MACH_MAGICIAN is not set
189# CONFIG_MACH_PCM027 is not set
190# CONFIG_ARCH_PXA_PALM is not set
191# CONFIG_PXA_EZX is not set
192CONFIG_PXA25x=y
193CONFIG_PXA_PWM=m
194CONFIG_PXA_HAVE_ISA_IRQS=y
195
196#
197# Boot options
198#
199
200#
201# Power management
202#
203
204#
205# Processor Type
206#
207CONFIG_CPU_32=y
208CONFIG_CPU_XSCALE=y
209CONFIG_CPU_32v5=y
210CONFIG_CPU_ABRT_EV5T=y
211CONFIG_CPU_PABRT_NOIFAR=y
212CONFIG_CPU_CACHE_VIVT=y
213CONFIG_CPU_TLB_V4WBI=y
214CONFIG_CPU_CP15=y
215CONFIG_CPU_CP15_MMU=y
216
217#
218# Processor Features
219#
220CONFIG_ARM_THUMB=y
221# CONFIG_CPU_DCACHE_DISABLE is not set
222# CONFIG_OUTER_CACHE is not set
223CONFIG_IWMMXT=y
224CONFIG_XSCALE_PMU=y
225
226#
227# Bus support
228#
229CONFIG_ISA=y
230# CONFIG_PCI_SYSCALL is not set
231# CONFIG_ARCH_SUPPORTS_MSI is not set
232CONFIG_PCCARD=m
233# CONFIG_PCMCIA_DEBUG is not set
234CONFIG_PCMCIA=m
235CONFIG_PCMCIA_LOAD_CIS=y
236CONFIG_PCMCIA_IOCTL=y
237
238#
239# PC-card bridges
240#
241# CONFIG_I82365 is not set
242# CONFIG_TCIC is not set
243CONFIG_PCMCIA_PXA2XX=m
244CONFIG_PCMCIA_PROBE=y
245
246#
247# Kernel Features
248#
249CONFIG_TICK_ONESHOT=y
250# CONFIG_NO_HZ is not set
251# CONFIG_HIGH_RES_TIMERS is not set
252CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
253# CONFIG_PREEMPT is not set
254CONFIG_HZ=100
255CONFIG_AEABI=y
256CONFIG_OABI_COMPAT=y
257# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
258CONFIG_SELECT_MEMORY_MODEL=y
259CONFIG_FLATMEM_MANUAL=y
260# CONFIG_DISCONTIGMEM_MANUAL is not set
261# CONFIG_SPARSEMEM_MANUAL is not set
262CONFIG_FLATMEM=y
263CONFIG_FLAT_NODE_MEM_MAP=y
264# CONFIG_SPARSEMEM_STATIC is not set
265# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
266CONFIG_PAGEFLAGS_EXTENDED=y
267CONFIG_SPLIT_PTLOCK_CPUS=4096
268# CONFIG_RESOURCES_64BIT is not set
269CONFIG_ZONE_DMA_FLAG=1
270CONFIG_BOUNCE=y
271CONFIG_VIRT_TO_BUS=y
272CONFIG_ALIGNMENT_TRAP=y
273
274#
275# Boot options
276#
277CONFIG_ZBOOT_ROM_TEXT=0x0
278CONFIG_ZBOOT_ROM_BSS=0x0
279CONFIG_CMDLINE="root=31:02 rootfstype=jffs2 ro console=ttyS0,115200"
280# CONFIG_XIP_KERNEL is not set
281# CONFIG_KEXEC is not set
282
283#
284# CPU Frequency scaling
285#
286CONFIG_CPU_FREQ=y
287CONFIG_CPU_FREQ_TABLE=y
288# CONFIG_CPU_FREQ_DEBUG is not set
289CONFIG_CPU_FREQ_STAT=y
290# CONFIG_CPU_FREQ_STAT_DETAILS is not set
291CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
292# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
293# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
294# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
295# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
296CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
297CONFIG_CPU_FREQ_GOV_POWERSAVE=m
298CONFIG_CPU_FREQ_GOV_USERSPACE=m
299CONFIG_CPU_FREQ_GOV_ONDEMAND=m
300CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
301CONFIG_CPU_FREQ_PXA=y
302
303#
304# Floating point emulation
305#
306
307#
308# At least one emulation must be selected
309#
310# CONFIG_FPE_NWFPE is not set
311CONFIG_FPE_FASTFPE=y
312
313#
314# Userspace binary formats
315#
316CONFIG_BINFMT_ELF=y
317# CONFIG_BINFMT_AOUT is not set
318# CONFIG_BINFMT_MISC is not set
319
320#
321# Power management options
322#
323CONFIG_PM=y
324# CONFIG_PM_DEBUG is not set
325CONFIG_PM_SLEEP=y
326CONFIG_SUSPEND=y
327CONFIG_SUSPEND_FREEZER=y
328# CONFIG_APM_EMULATION is not set
329CONFIG_ARCH_SUSPEND_POSSIBLE=y
330CONFIG_NET=y
331
332#
333# Networking options
334#
335CONFIG_PACKET=y
336# CONFIG_PACKET_MMAP is not set
337CONFIG_UNIX=y
338CONFIG_XFRM=y
339# CONFIG_XFRM_USER is not set
340# CONFIG_XFRM_SUB_POLICY is not set
341# CONFIG_XFRM_MIGRATE is not set
342# CONFIG_XFRM_STATISTICS is not set
343# CONFIG_NET_KEY is not set
344CONFIG_INET=y
345# CONFIG_IP_MULTICAST is not set
346# CONFIG_IP_ADVANCED_ROUTER is not set
347CONFIG_IP_FIB_HASH=y
348CONFIG_IP_PNP=y
349CONFIG_IP_PNP_DHCP=y
350# CONFIG_IP_PNP_BOOTP is not set
351# CONFIG_IP_PNP_RARP is not set
352# CONFIG_NET_IPIP is not set
353# CONFIG_NET_IPGRE is not set
354# CONFIG_ARPD is not set
355CONFIG_SYN_COOKIES=y
356# CONFIG_INET_AH is not set
357# CONFIG_INET_ESP is not set
358# CONFIG_INET_IPCOMP is not set
359# CONFIG_INET_XFRM_TUNNEL is not set
360# CONFIG_INET_TUNNEL is not set
361CONFIG_INET_XFRM_MODE_TRANSPORT=y
362CONFIG_INET_XFRM_MODE_TUNNEL=y
363CONFIG_INET_XFRM_MODE_BEET=y
364# CONFIG_INET_LRO is not set
365CONFIG_INET_DIAG=y
366CONFIG_INET_TCP_DIAG=y
367# CONFIG_TCP_CONG_ADVANCED is not set
368CONFIG_TCP_CONG_CUBIC=y
369CONFIG_DEFAULT_TCP_CONG="cubic"
370# CONFIG_TCP_MD5SIG is not set
371# CONFIG_IPV6 is not set
372# CONFIG_NETWORK_SECMARK is not set
373# CONFIG_NETFILTER is not set
374# CONFIG_IP_DCCP is not set
375# CONFIG_IP_SCTP is not set
376# CONFIG_TIPC is not set
377# CONFIG_ATM is not set
378# CONFIG_BRIDGE is not set
379# CONFIG_VLAN_8021Q is not set
380# CONFIG_DECNET is not set
381# CONFIG_LLC2 is not set
382# CONFIG_IPX is not set
383# CONFIG_ATALK is not set
384# CONFIG_X25 is not set
385# CONFIG_LAPB is not set
386# CONFIG_ECONET is not set
387# CONFIG_WAN_ROUTER is not set
388# CONFIG_NET_SCHED is not set
389
390#
391# Network testing
392#
393# CONFIG_NET_PKTGEN is not set
394# CONFIG_HAMRADIO is not set
395# CONFIG_CAN is not set
396# CONFIG_IRDA is not set
397CONFIG_BT=m
398CONFIG_BT_L2CAP=m
399# CONFIG_BT_SCO is not set
400CONFIG_BT_RFCOMM=m
401CONFIG_BT_RFCOMM_TTY=y
402CONFIG_BT_BNEP=m
403# CONFIG_BT_BNEP_MC_FILTER is not set
404# CONFIG_BT_BNEP_PROTO_FILTER is not set
405# CONFIG_BT_HIDP is not set
406
407#
408# Bluetooth device drivers
409#
410CONFIG_BT_HCIUSB=m
411# CONFIG_BT_HCIUSB_SCO is not set
412# CONFIG_BT_HCIBTUSB is not set
413CONFIG_BT_HCIUART=m
414CONFIG_BT_HCIUART_H4=y
415CONFIG_BT_HCIUART_BCSP=y
416# CONFIG_BT_HCIUART_LL is not set
417# CONFIG_BT_HCIBCM203X is not set
418# CONFIG_BT_HCIBPA10X is not set
419# CONFIG_BT_HCIBFUSB is not set
420# CONFIG_BT_HCIDTL1 is not set
421# CONFIG_BT_HCIBT3C is not set
422# CONFIG_BT_HCIBLUECARD is not set
423# CONFIG_BT_HCIBTUART is not set
424# CONFIG_BT_HCIVHCI is not set
425# CONFIG_AF_RXRPC is not set
426
427#
428# Wireless
429#
430# CONFIG_CFG80211 is not set
431# CONFIG_WIRELESS_EXT is not set
432# CONFIG_MAC80211 is not set
433CONFIG_IEEE80211=m
434# CONFIG_IEEE80211_DEBUG is not set
435CONFIG_IEEE80211_CRYPT_WEP=m
436# CONFIG_IEEE80211_CRYPT_CCMP is not set
437# CONFIG_IEEE80211_CRYPT_TKIP is not set
438# CONFIG_RFKILL is not set
439# CONFIG_NET_9P is not set
440
441#
442# Device Drivers
443#
444
445#
446# Generic Driver Options
447#
448CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
449CONFIG_STANDALONE=y
450CONFIG_PREVENT_FIRMWARE_BUILD=y
451CONFIG_FW_LOADER=m
452CONFIG_FIRMWARE_IN_KERNEL=y
453CONFIG_EXTRA_FIRMWARE=""
454# CONFIG_DEBUG_DRIVER is not set
455# CONFIG_DEBUG_DEVRES is not set
456# CONFIG_SYS_HYPERVISOR is not set
457# CONFIG_CONNECTOR is not set
458CONFIG_MTD=y
459# CONFIG_MTD_DEBUG is not set
460# CONFIG_MTD_CONCAT is not set
461CONFIG_MTD_PARTITIONS=y
462CONFIG_MTD_REDBOOT_PARTS=y
463CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=0
464# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
465# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
466# CONFIG_MTD_CMDLINE_PARTS is not set
467# CONFIG_MTD_AFS_PARTS is not set
468# CONFIG_MTD_AR7_PARTS is not set
469
470#
471# User Modules And Translation Layers
472#
473CONFIG_MTD_CHAR=m
474CONFIG_MTD_BLKDEVS=y
475CONFIG_MTD_BLOCK=y
476# CONFIG_FTL is not set
477# CONFIG_NFTL is not set
478# CONFIG_INFTL is not set
479# CONFIG_RFD_FTL is not set
480# CONFIG_SSFDC is not set
481# CONFIG_MTD_OOPS is not set
482
483#
484# RAM/ROM/Flash chip drivers
485#
486CONFIG_MTD_CFI=y
487CONFIG_MTD_JEDECPROBE=y
488CONFIG_MTD_GEN_PROBE=y
489CONFIG_MTD_CFI_ADV_OPTIONS=y
490CONFIG_MTD_CFI_NOSWAP=y
491# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
492# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
493CONFIG_MTD_CFI_GEOMETRY=y
494CONFIG_MTD_MAP_BANK_WIDTH_1=y
495CONFIG_MTD_MAP_BANK_WIDTH_2=y
496# CONFIG_MTD_MAP_BANK_WIDTH_4 is not set
497# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
498# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
499# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
500CONFIG_MTD_CFI_I1=y
501# CONFIG_MTD_CFI_I2 is not set
502# CONFIG_MTD_CFI_I4 is not set
503# CONFIG_MTD_CFI_I8 is not set
504# CONFIG_MTD_OTP is not set
505CONFIG_MTD_CFI_INTELEXT=y
506CONFIG_MTD_CFI_AMDSTD=y
507# CONFIG_MTD_CFI_STAA is not set
508CONFIG_MTD_CFI_UTIL=y
509CONFIG_MTD_RAM=y
510# CONFIG_MTD_ROM is not set
511# CONFIG_MTD_ABSENT is not set
512# CONFIG_MTD_XIP is not set
513
514#
515# Mapping drivers for chip access
516#
517CONFIG_MTD_COMPLEX_MAPPINGS=y
518CONFIG_MTD_PHYSMAP=y
519CONFIG_MTD_PHYSMAP_START=0x8000000
520CONFIG_MTD_PHYSMAP_LEN=0
521CONFIG_MTD_PHYSMAP_BANKWIDTH=2
522CONFIG_MTD_PXA2XX=y
523# CONFIG_MTD_ARM_INTEGRATOR is not set
524# CONFIG_MTD_IMPA7 is not set
525# CONFIG_MTD_SHARP_SL is not set
526# CONFIG_MTD_PLATRAM is not set
527CONFIG_MTD_SPARSE_RAM=y
528
529#
530# Self-contained MTD device drivers
531#
532# CONFIG_MTD_SLRAM is not set
533# CONFIG_MTD_PHRAM is not set
534# CONFIG_MTD_MTDRAM is not set
535# CONFIG_MTD_BLOCK2MTD is not set
536
537#
538# Disk-On-Chip Device Drivers
539#
540# CONFIG_MTD_DOC2000 is not set
541# CONFIG_MTD_DOC2001 is not set
542# CONFIG_MTD_DOC2001PLUS is not set
543# CONFIG_MTD_NAND is not set
544# CONFIG_MTD_ONENAND is not set
545
546#
547# UBI - Unsorted block images
548#
549# CONFIG_MTD_UBI is not set
550# CONFIG_PARPORT is not set
551# CONFIG_PNP is not set
552CONFIG_BLK_DEV=y
553# CONFIG_BLK_DEV_COW_COMMON is not set
554CONFIG_BLK_DEV_LOOP=m
555# CONFIG_BLK_DEV_CRYPTOLOOP is not set
556# CONFIG_BLK_DEV_NBD is not set
557# CONFIG_BLK_DEV_UB is not set
558# CONFIG_BLK_DEV_RAM is not set
559# CONFIG_CDROM_PKTCDVD is not set
560# CONFIG_ATA_OVER_ETH is not set
561CONFIG_MISC_DEVICES=y
562# CONFIG_EEPROM_93CX6 is not set
563# CONFIG_ENCLOSURE_SERVICES is not set
564CONFIG_HAVE_IDE=y
565# CONFIG_IDE is not set
566
567#
568# SCSI device support
569#
570# CONFIG_RAID_ATTRS is not set
571CONFIG_SCSI=m
572CONFIG_SCSI_DMA=y
573# CONFIG_SCSI_TGT is not set
574# CONFIG_SCSI_NETLINK is not set
575# CONFIG_SCSI_PROC_FS is not set
576
577#
578# SCSI support type (disk, tape, CD-ROM)
579#
580CONFIG_BLK_DEV_SD=m
581# CONFIG_CHR_DEV_ST is not set
582# CONFIG_CHR_DEV_OSST is not set
583# CONFIG_BLK_DEV_SR is not set
584# CONFIG_CHR_DEV_SG is not set
585# CONFIG_CHR_DEV_SCH is not set
586
587#
588# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
589#
590# CONFIG_SCSI_MULTI_LUN is not set
591# CONFIG_SCSI_CONSTANTS is not set
592# CONFIG_SCSI_LOGGING is not set
593# CONFIG_SCSI_SCAN_ASYNC is not set
594CONFIG_SCSI_WAIT_SCAN=m
595
596#
597# SCSI Transports
598#
599# CONFIG_SCSI_SPI_ATTRS is not set
600# CONFIG_SCSI_FC_ATTRS is not set
601# CONFIG_SCSI_ISCSI_ATTRS is not set
602# CONFIG_SCSI_SAS_LIBSAS is not set
603# CONFIG_SCSI_SRP_ATTRS is not set
604CONFIG_SCSI_LOWLEVEL=y
605# CONFIG_ISCSI_TCP is not set
606# CONFIG_SCSI_AHA152X is not set
607# CONFIG_SCSI_AIC7XXX_OLD is not set
608# CONFIG_SCSI_ADVANSYS is not set
609# CONFIG_SCSI_IN2000 is not set
610# CONFIG_SCSI_DTC3280 is not set
611# CONFIG_SCSI_FUTURE_DOMAIN is not set
612# CONFIG_SCSI_GENERIC_NCR5380 is not set
613# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
614# CONFIG_SCSI_NCR53C406A is not set
615# CONFIG_SCSI_PAS16 is not set
616# CONFIG_SCSI_QLOGIC_FAS is not set
617# CONFIG_SCSI_SYM53C416 is not set
618# CONFIG_SCSI_T128 is not set
619# CONFIG_SCSI_DEBUG is not set
620# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
621# CONFIG_SCSI_DH is not set
622CONFIG_ATA=m
623# CONFIG_ATA_NONSTANDARD is not set
624# CONFIG_SATA_PMP is not set
625CONFIG_ATA_SFF=y
626# CONFIG_SATA_MV is not set
627# CONFIG_PATA_LEGACY is not set
628CONFIG_PATA_PCMCIA=m
629# CONFIG_PATA_QDI is not set
630# CONFIG_PATA_WINBOND_VLB is not set
631# CONFIG_PATA_PLATFORM is not set
632# CONFIG_MD is not set
633CONFIG_NETDEVICES=y
634# CONFIG_DUMMY is not set
635# CONFIG_BONDING is not set
636# CONFIG_MACVLAN is not set
637# CONFIG_EQUALIZER is not set
638# CONFIG_TUN is not set
639# CONFIG_VETH is not set
640# CONFIG_ARCNET is not set
641# CONFIG_PHYLIB is not set
642CONFIG_NET_ETHERNET=y
643CONFIG_MII=y
644# CONFIG_AX88796 is not set
645# CONFIG_NET_VENDOR_3COM is not set
646# CONFIG_NET_VENDOR_SMC is not set
647CONFIG_SMC91X=y
648# CONFIG_DM9000 is not set
649# CONFIG_SMC911X is not set
650# CONFIG_NET_VENDOR_RACAL is not set
651# CONFIG_AT1700 is not set
652# CONFIG_DEPCA is not set
653# CONFIG_HP100 is not set
654# CONFIG_NET_ISA is not set
655# CONFIG_IBM_NEW_EMAC_ZMII is not set
656# CONFIG_IBM_NEW_EMAC_RGMII is not set
657# CONFIG_IBM_NEW_EMAC_TAH is not set
658# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
659# CONFIG_NET_PCI is not set
660# CONFIG_B44 is not set
661# CONFIG_NETDEV_1000 is not set
662# CONFIG_NETDEV_10000 is not set
663# CONFIG_TR is not set
664
665#
666# Wireless LAN
667#
668# CONFIG_WLAN_PRE80211 is not set
669# CONFIG_WLAN_80211 is not set
670# CONFIG_IWLWIFI_LEDS is not set
671
672#
673# USB Network Adapters
674#
675# CONFIG_USB_CATC is not set
676# CONFIG_USB_KAWETH is not set
677CONFIG_USB_PEGASUS=m
678# CONFIG_USB_RTL8150 is not set
679CONFIG_USB_USBNET=m
680CONFIG_USB_NET_AX8817X=m
681CONFIG_USB_NET_CDCETHER=m
682# CONFIG_USB_NET_DM9601 is not set
683# CONFIG_USB_NET_GL620A is not set
684CONFIG_USB_NET_NET1080=m
685# CONFIG_USB_NET_PLUSB is not set
686# CONFIG_USB_NET_MCS7830 is not set
687# CONFIG_USB_NET_RNDIS_HOST is not set
688# CONFIG_USB_NET_CDC_SUBSET is not set
689CONFIG_USB_NET_ZAURUS=m
690CONFIG_NET_PCMCIA=y
691# CONFIG_PCMCIA_3C589 is not set
692# CONFIG_PCMCIA_3C574 is not set
693# CONFIG_PCMCIA_FMVJ18X is not set
694# CONFIG_PCMCIA_PCNET is not set
695# CONFIG_PCMCIA_NMCLAN is not set
696# CONFIG_PCMCIA_SMC91C92 is not set
697# CONFIG_PCMCIA_XIRC2PS is not set
698# CONFIG_PCMCIA_AXNET is not set
699# CONFIG_WAN is not set
700CONFIG_PPP=m
701# CONFIG_PPP_MULTILINK is not set
702# CONFIG_PPP_FILTER is not set
703CONFIG_PPP_ASYNC=m
704# CONFIG_PPP_SYNC_TTY is not set
705CONFIG_PPP_DEFLATE=m
706CONFIG_PPP_BSDCOMP=m
707# CONFIG_PPP_MPPE is not set
708# CONFIG_PPPOE is not set
709# CONFIG_PPPOL2TP is not set
710# CONFIG_SLIP is not set
711CONFIG_SLHC=m
712# CONFIG_NETCONSOLE is not set
713# CONFIG_NETPOLL is not set
714# CONFIG_NET_POLL_CONTROLLER is not set
715# CONFIG_ISDN is not set
716
717#
718# Input device support
719#
720CONFIG_INPUT=y
721# CONFIG_INPUT_FF_MEMLESS is not set
722# CONFIG_INPUT_POLLDEV is not set
723
724#
725# Userland interfaces
726#
727CONFIG_INPUT_MOUSEDEV=m
728# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
729CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
730CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
731# CONFIG_INPUT_JOYDEV is not set
732CONFIG_INPUT_EVDEV=m
733# CONFIG_INPUT_EVBUG is not set
734
735#
736# Input Device Drivers
737#
738# CONFIG_INPUT_KEYBOARD is not set
739# CONFIG_INPUT_MOUSE is not set
740# CONFIG_INPUT_JOYSTICK is not set
741# CONFIG_INPUT_TABLET is not set
742CONFIG_INPUT_TOUCHSCREEN=y
743CONFIG_TOUCHSCREEN_FUJITSU=m
744# CONFIG_TOUCHSCREEN_GUNZE is not set
745CONFIG_TOUCHSCREEN_ELO=m
746CONFIG_TOUCHSCREEN_MTOUCH=m
747CONFIG_TOUCHSCREEN_INEXIO=m
748# CONFIG_TOUCHSCREEN_MK712 is not set
749CONFIG_TOUCHSCREEN_HTCPEN=m
750CONFIG_TOUCHSCREEN_PENMOUNT=m
751CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
752CONFIG_TOUCHSCREEN_TOUCHWIN=m
753# CONFIG_TOUCHSCREEN_UCB1400 is not set
754# CONFIG_TOUCHSCREEN_WM97XX is not set
755# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
756CONFIG_TOUCHSCREEN_TOUCHIT213=m
757CONFIG_INPUT_MISC=y
758# CONFIG_INPUT_ATI_REMOTE is not set
759# CONFIG_INPUT_ATI_REMOTE2 is not set
760# CONFIG_INPUT_KEYSPAN_REMOTE is not set
761# CONFIG_INPUT_POWERMATE is not set
762# CONFIG_INPUT_YEALINK is not set
763CONFIG_INPUT_UINPUT=m
764
765#
766# Hardware I/O ports
767#
768CONFIG_SERIO=y
769CONFIG_SERIO_SERPORT=y
770# CONFIG_SERIO_LIBPS2 is not set
771# CONFIG_SERIO_RAW is not set
772# CONFIG_GAMEPORT is not set
773
774#
775# Character devices
776#
777CONFIG_VT=y
778# CONFIG_CONSOLE_TRANSLATIONS is not set
779# CONFIG_VT_CONSOLE is not set
780CONFIG_HW_CONSOLE=y
781# CONFIG_VT_HW_CONSOLE_BINDING is not set
782CONFIG_DEVKMEM=y
783# CONFIG_SERIAL_NONSTANDARD is not set
784
785#
786# Serial drivers
787#
788CONFIG_SERIAL_8250=m
789# CONFIG_SERIAL_8250_CS is not set
790CONFIG_SERIAL_8250_NR_UARTS=5
791CONFIG_SERIAL_8250_RUNTIME_UARTS=5
792# CONFIG_SERIAL_8250_EXTENDED is not set
793
794#
795# Non-8250 serial port support
796#
797CONFIG_SERIAL_PXA=y
798CONFIG_SERIAL_PXA_CONSOLE=y
799CONFIG_SERIAL_CORE=y
800CONFIG_SERIAL_CORE_CONSOLE=y
801CONFIG_UNIX98_PTYS=y
802# CONFIG_LEGACY_PTYS is not set
803# CONFIG_IPMI_HANDLER is not set
804CONFIG_HW_RANDOM=m
805# CONFIG_NVRAM is not set
806# CONFIG_DTLK is not set
807# CONFIG_R3964 is not set
808
809#
810# PCMCIA character devices
811#
812# CONFIG_SYNCLINK_CS is not set
813# CONFIG_CARDMAN_4000 is not set
814# CONFIG_CARDMAN_4040 is not set
815# CONFIG_IPWIRELESS is not set
816# CONFIG_RAW_DRIVER is not set
817# CONFIG_TCG_TPM is not set
818CONFIG_DEVPORT=y
819CONFIG_I2C=y
820CONFIG_I2C_BOARDINFO=y
821CONFIG_I2C_CHARDEV=y
822# CONFIG_I2C_HELPER_AUTO is not set
823
824#
825# I2C Algorithms
826#
827CONFIG_I2C_ALGOBIT=y
828# CONFIG_I2C_ALGOPCF is not set
829# CONFIG_I2C_ALGOPCA is not set
830
831#
832# I2C Hardware Bus support
833#
834
835#
836# I2C system bus drivers (mostly embedded / system-on-chip)
837#
838CONFIG_I2C_GPIO=y
839# CONFIG_I2C_OCORES is not set
840CONFIG_I2C_PXA=y
841# CONFIG_I2C_PXA_SLAVE is not set
842# CONFIG_I2C_SIMTEC is not set
843
844#
845# External I2C/SMBus adapter drivers
846#
847# CONFIG_I2C_PARPORT_LIGHT is not set
848# CONFIG_I2C_TAOS_EVM is not set
849# CONFIG_I2C_TINY_USB is not set
850
851#
852# Other I2C/SMBus bus drivers
853#
854# CONFIG_I2C_ELEKTOR is not set
855# CONFIG_I2C_PCA_ISA is not set
856# CONFIG_I2C_PCA_PLATFORM is not set
857# CONFIG_I2C_STUB is not set
858
859#
860# Miscellaneous I2C Chip support
861#
862# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set
864# CONFIG_SENSORS_EEPROM is not set
865# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set
867# CONFIG_SENSORS_PCA9539 is not set
868# CONFIG_SENSORS_PCF8591 is not set
869# CONFIG_TPS65010 is not set
870# CONFIG_SENSORS_MAX6875 is not set
871# CONFIG_SENSORS_TSL2550 is not set
872# CONFIG_I2C_DEBUG_CORE is not set
873# CONFIG_I2C_DEBUG_ALGO is not set
874# CONFIG_I2C_DEBUG_BUS is not set
875# CONFIG_I2C_DEBUG_CHIP is not set
876# CONFIG_SPI is not set
877CONFIG_ARCH_REQUIRE_GPIOLIB=y
878CONFIG_GPIOLIB=y
879# CONFIG_DEBUG_GPIO is not set
880CONFIG_GPIO_SYSFS=y
881
882#
883# I2C GPIO expanders:
884#
885# CONFIG_GPIO_MAX732X is not set
886# CONFIG_GPIO_PCA953X is not set
887# CONFIG_GPIO_PCF857X is not set
888
889#
890# PCI GPIO expanders:
891#
892
893#
894# SPI GPIO expanders:
895#
896# CONFIG_W1 is not set
897# CONFIG_POWER_SUPPLY is not set
898CONFIG_HWMON=y
899# CONFIG_HWMON_VID is not set
900# CONFIG_SENSORS_AD7414 is not set
901# CONFIG_SENSORS_AD7418 is not set
902# CONFIG_SENSORS_ADM1021 is not set
903# CONFIG_SENSORS_ADM1025 is not set
904# CONFIG_SENSORS_ADM1026 is not set
905# CONFIG_SENSORS_ADM1029 is not set
906# CONFIG_SENSORS_ADM1031 is not set
907# CONFIG_SENSORS_ADM9240 is not set
908# CONFIG_SENSORS_ADT7470 is not set
909# CONFIG_SENSORS_ADT7473 is not set
910# CONFIG_SENSORS_ATXP1 is not set
911# CONFIG_SENSORS_DS1621 is not set
912# CONFIG_SENSORS_F71805F is not set
913# CONFIG_SENSORS_F71882FG is not set
914# CONFIG_SENSORS_F75375S is not set
915# CONFIG_SENSORS_GL518SM is not set
916# CONFIG_SENSORS_GL520SM is not set
917# CONFIG_SENSORS_IT87 is not set
918# CONFIG_SENSORS_LM63 is not set
919# CONFIG_SENSORS_LM75 is not set
920# CONFIG_SENSORS_LM77 is not set
921# CONFIG_SENSORS_LM78 is not set
922# CONFIG_SENSORS_LM80 is not set
923# CONFIG_SENSORS_LM83 is not set
924# CONFIG_SENSORS_LM85 is not set
925# CONFIG_SENSORS_LM87 is not set
926# CONFIG_SENSORS_LM90 is not set
927# CONFIG_SENSORS_LM92 is not set
928# CONFIG_SENSORS_LM93 is not set
929# CONFIG_SENSORS_MAX1619 is not set
930# CONFIG_SENSORS_MAX6650 is not set
931# CONFIG_SENSORS_PC87360 is not set
932# CONFIG_SENSORS_PC87427 is not set
933# CONFIG_SENSORS_DME1737 is not set
934# CONFIG_SENSORS_SMSC47M1 is not set
935# CONFIG_SENSORS_SMSC47M192 is not set
936# CONFIG_SENSORS_SMSC47B397 is not set
937# CONFIG_SENSORS_ADS7828 is not set
938# CONFIG_SENSORS_THMC50 is not set
939# CONFIG_SENSORS_VT1211 is not set
940# CONFIG_SENSORS_W83781D is not set
941# CONFIG_SENSORS_W83791D is not set
942# CONFIG_SENSORS_W83792D is not set
943# CONFIG_SENSORS_W83793 is not set
944# CONFIG_SENSORS_W83L785TS is not set
945# CONFIG_SENSORS_W83L786NG is not set
946# CONFIG_SENSORS_W83627HF is not set
947# CONFIG_SENSORS_W83627EHF is not set
948# CONFIG_HWMON_DEBUG_CHIP is not set
949CONFIG_WATCHDOG=y
950# CONFIG_WATCHDOG_NOWAYOUT is not set
951
952#
953# Watchdog Device Drivers
954#
955# CONFIG_SOFT_WATCHDOG is not set
956# CONFIG_SA1100_WATCHDOG is not set
957
958#
959# ISA-based Watchdog Cards
960#
961# CONFIG_PCWATCHDOG is not set
962# CONFIG_MIXCOMWD is not set
963# CONFIG_WDT is not set
964
965#
966# USB-based Watchdog Cards
967#
968# CONFIG_USBPCWATCHDOG is not set
969
970#
971# Sonics Silicon Backplane
972#
973CONFIG_SSB_POSSIBLE=y
974# CONFIG_SSB is not set
975
976#
977# Multifunction device drivers
978#
979# CONFIG_MFD_CORE is not set
980# CONFIG_MFD_SM501 is not set
981# CONFIG_HTC_EGPIO is not set
982# CONFIG_HTC_PASIC3 is not set
983# CONFIG_MFD_TMIO is not set
984# CONFIG_MFD_T7L66XB is not set
985# CONFIG_MFD_TC6387XB is not set
986# CONFIG_MFD_TC6393XB is not set
987
988#
989# Multimedia devices
990#
991
992#
993# Multimedia core support
994#
995# CONFIG_VIDEO_DEV is not set
996# CONFIG_DVB_CORE is not set
997# CONFIG_VIDEO_MEDIA is not set
998
999#
1000# Multimedia drivers
1001#
1002# CONFIG_DAB is not set
1003
1004#
1005# Graphics support
1006#
1007# CONFIG_VGASTATE is not set
1008# CONFIG_VIDEO_OUTPUT_CONTROL is not set
1009CONFIG_FB=y
1010# CONFIG_FIRMWARE_EDID is not set
1011# CONFIG_FB_DDC is not set
1012CONFIG_FB_CFB_FILLRECT=m
1013CONFIG_FB_CFB_COPYAREA=m
1014CONFIG_FB_CFB_IMAGEBLIT=m
1015# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1016# CONFIG_FB_SYS_FILLRECT is not set
1017# CONFIG_FB_SYS_COPYAREA is not set
1018# CONFIG_FB_SYS_IMAGEBLIT is not set
1019# CONFIG_FB_FOREIGN_ENDIAN is not set
1020# CONFIG_FB_SYS_FOPS is not set
1021# CONFIG_FB_SVGALIB is not set
1022# CONFIG_FB_MACMODES is not set
1023# CONFIG_FB_BACKLIGHT is not set
1024# CONFIG_FB_MODE_HELPERS is not set
1025# CONFIG_FB_TILEBLITTING is not set
1026
1027#
1028# Frame buffer hardware drivers
1029#
1030# CONFIG_FB_S1D13XXX is not set
1031CONFIG_FB_PXA=m
1032# CONFIG_FB_PXA_SMARTPANEL is not set
1033CONFIG_FB_PXA_PARAMETERS=y
1034# CONFIG_FB_MBX is not set
1035# CONFIG_FB_W100 is not set
1036# CONFIG_FB_AM200EPD is not set
1037# CONFIG_FB_VIRTUAL is not set
1038CONFIG_BACKLIGHT_LCD_SUPPORT=y
1039CONFIG_LCD_CLASS_DEVICE=m
1040# CONFIG_LCD_ILI9320 is not set
1041# CONFIG_LCD_PLATFORM is not set
1042CONFIG_BACKLIGHT_CLASS_DEVICE=m
1043# CONFIG_BACKLIGHT_CORGI is not set
1044CONFIG_BACKLIGHT_PWM=m
1045
1046#
1047# Display device support
1048#
1049# CONFIG_DISPLAY_SUPPORT is not set
1050
1051#
1052# Console display driver support
1053#
1054# CONFIG_VGA_CONSOLE is not set
1055# CONFIG_MDA_CONSOLE is not set
1056CONFIG_DUMMY_CONSOLE=y
1057CONFIG_FRAMEBUFFER_CONSOLE=m
1058# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1059# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
1060# CONFIG_FONTS is not set
1061CONFIG_FONT_8x8=y
1062CONFIG_FONT_8x16=y
1063CONFIG_LOGO=y
1064CONFIG_LOGO_LINUX_MONO=y
1065CONFIG_LOGO_LINUX_VGA16=y
1066CONFIG_LOGO_LINUX_CLUT224=y
1067CONFIG_SOUND=m
1068CONFIG_SND=m
1069CONFIG_SND_TIMER=m
1070CONFIG_SND_PCM=m
1071# CONFIG_SND_SEQUENCER is not set
1072CONFIG_SND_OSSEMUL=y
1073CONFIG_SND_MIXER_OSS=m
1074CONFIG_SND_PCM_OSS=m
1075CONFIG_SND_PCM_OSS_PLUGINS=y
1076# CONFIG_SND_DYNAMIC_MINORS is not set
1077CONFIG_SND_SUPPORT_OLD_API=y
1078CONFIG_SND_VERBOSE_PROCFS=y
1079# CONFIG_SND_VERBOSE_PRINTK is not set
1080# CONFIG_SND_DEBUG is not set
1081CONFIG_SND_VMASTER=y
1082CONFIG_SND_AC97_CODEC=m
1083CONFIG_SND_DRIVERS=y
1084# CONFIG_SND_DUMMY is not set
1085# CONFIG_SND_MTPAV is not set
1086# CONFIG_SND_SERIAL_U16550 is not set
1087# CONFIG_SND_MPU401 is not set
1088# CONFIG_SND_AC97_POWER_SAVE is not set
1089CONFIG_SND_ARM=y
1090CONFIG_SND_PXA2XX_PCM=m
1091CONFIG_SND_PXA2XX_AC97=m
1092CONFIG_SND_USB=y
1093# CONFIG_SND_USB_AUDIO is not set
1094# CONFIG_SND_USB_CAIAQ is not set
1095CONFIG_SND_PCMCIA=y
1096# CONFIG_SND_VXPOCKET is not set
1097# CONFIG_SND_PDAUDIOCF is not set
1098# CONFIG_SND_SOC is not set
1099# CONFIG_SOUND_PRIME is not set
1100CONFIG_AC97_BUS=m
1101CONFIG_HID_SUPPORT=y
1102CONFIG_HID=y
1103# CONFIG_HID_DEBUG is not set
1104# CONFIG_HIDRAW is not set
1105
1106#
1107# USB Input Devices
1108#
1109CONFIG_USB_HID=m
1110# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1111# CONFIG_HID_FF is not set
1112# CONFIG_USB_HIDDEV is not set
1113
1114#
1115# USB HID Boot Protocol drivers
1116#
1117# CONFIG_USB_KBD is not set
1118# CONFIG_USB_MOUSE is not set
1119CONFIG_USB_SUPPORT=y
1120CONFIG_USB_ARCH_HAS_HCD=y
1121# CONFIG_USB_ARCH_HAS_OHCI is not set
1122# CONFIG_USB_ARCH_HAS_EHCI is not set
1123CONFIG_USB=m
1124# CONFIG_USB_DEBUG is not set
1125# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1126
1127#
1128# Miscellaneous USB options
1129#
1130CONFIG_USB_DEVICEFS=y
1131CONFIG_USB_DEVICE_CLASS=y
1132# CONFIG_USB_DYNAMIC_MINORS is not set
1133CONFIG_USB_SUSPEND=y
1134# CONFIG_USB_OTG is not set
1135# CONFIG_USB_OTG_WHITELIST is not set
1136# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1137# CONFIG_USB_MON is not set
1138
1139#
1140# USB Host Controller Drivers
1141#
1142# CONFIG_USB_C67X00_HCD is not set
1143CONFIG_USB_ISP116X_HCD=m
1144# CONFIG_USB_ISP1760_HCD is not set
1145CONFIG_USB_SL811_HCD=m
1146# CONFIG_USB_SL811_CS is not set
1147CONFIG_USB_R8A66597_HCD=m
1148# CONFIG_USB_MUSB_HDRC is not set
1149# CONFIG_USB_GADGET_MUSB_HDRC is not set
1150
1151#
1152# USB Device Class drivers
1153#
1154CONFIG_USB_ACM=m
1155# CONFIG_USB_PRINTER is not set
1156# CONFIG_USB_WDM is not set
1157
1158#
1159# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1160#
1161
1162#
1163# may also be needed; see USB_STORAGE Help for more information
1164#
1165CONFIG_USB_STORAGE=m
1166# CONFIG_USB_STORAGE_DEBUG is not set
1167# CONFIG_USB_STORAGE_DATAFAB is not set
1168# CONFIG_USB_STORAGE_FREECOM is not set
1169# CONFIG_USB_STORAGE_ISD200 is not set
1170# CONFIG_USB_STORAGE_DPCM is not set
1171# CONFIG_USB_STORAGE_USBAT is not set
1172# CONFIG_USB_STORAGE_SDDR09 is not set
1173# CONFIG_USB_STORAGE_SDDR55 is not set
1174# CONFIG_USB_STORAGE_JUMPSHOT is not set
1175# CONFIG_USB_STORAGE_ALAUDA is not set
1176# CONFIG_USB_STORAGE_ONETOUCH is not set
1177# CONFIG_USB_STORAGE_KARMA is not set
1178# CONFIG_USB_STORAGE_SIERRA is not set
1179# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1180# CONFIG_USB_LIBUSUAL is not set
1181
1182#
1183# USB Imaging devices
1184#
1185# CONFIG_USB_MDC800 is not set
1186# CONFIG_USB_MICROTEK is not set
1187
1188#
1189# USB port drivers
1190#
1191CONFIG_USB_SERIAL=m
1192# CONFIG_USB_EZUSB is not set
1193CONFIG_USB_SERIAL_GENERIC=y
1194# CONFIG_USB_SERIAL_AIRCABLE is not set
1195# CONFIG_USB_SERIAL_ARK3116 is not set
1196# CONFIG_USB_SERIAL_BELKIN is not set
1197# CONFIG_USB_SERIAL_CH341 is not set
1198# CONFIG_USB_SERIAL_WHITEHEAT is not set
1199# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1200# CONFIG_USB_SERIAL_CP2101 is not set
1201# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1202# CONFIG_USB_SERIAL_EMPEG is not set
1203# CONFIG_USB_SERIAL_FTDI_SIO is not set
1204# CONFIG_USB_SERIAL_FUNSOFT is not set
1205# CONFIG_USB_SERIAL_VISOR is not set
1206# CONFIG_USB_SERIAL_IPAQ is not set
1207# CONFIG_USB_SERIAL_IR is not set
1208# CONFIG_USB_SERIAL_EDGEPORT is not set
1209# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1210# CONFIG_USB_SERIAL_GARMIN is not set
1211# CONFIG_USB_SERIAL_IPW is not set
1212# CONFIG_USB_SERIAL_IUU is not set
1213# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1214# CONFIG_USB_SERIAL_KEYSPAN is not set
1215# CONFIG_USB_SERIAL_KLSI is not set
1216# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1217CONFIG_USB_SERIAL_MCT_U232=m
1218# CONFIG_USB_SERIAL_MOS7720 is not set
1219# CONFIG_USB_SERIAL_MOS7840 is not set
1220# CONFIG_USB_SERIAL_MOTOROLA is not set
1221# CONFIG_USB_SERIAL_NAVMAN is not set
1222# CONFIG_USB_SERIAL_PL2303 is not set
1223# CONFIG_USB_SERIAL_OTI6858 is not set
1224# CONFIG_USB_SERIAL_SPCP8X5 is not set
1225# CONFIG_USB_SERIAL_HP4X is not set
1226# CONFIG_USB_SERIAL_SAFE is not set
1227# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1228# CONFIG_USB_SERIAL_TI is not set
1229# CONFIG_USB_SERIAL_CYBERJACK is not set
1230# CONFIG_USB_SERIAL_XIRCOM is not set
1231# CONFIG_USB_SERIAL_OPTION is not set
1232# CONFIG_USB_SERIAL_OMNINET is not set
1233# CONFIG_USB_SERIAL_DEBUG is not set
1234
1235#
1236# USB Miscellaneous drivers
1237#
1238# CONFIG_USB_EMI62 is not set
1239# CONFIG_USB_EMI26 is not set
1240# CONFIG_USB_ADUTUX is not set
1241# CONFIG_USB_RIO500 is not set
1242# CONFIG_USB_LEGOTOWER is not set
1243# CONFIG_USB_LCD is not set
1244# CONFIG_USB_BERRY_CHARGE is not set
1245# CONFIG_USB_LED is not set
1246# CONFIG_USB_CYPRESS_CY7C63 is not set
1247# CONFIG_USB_CYTHERM is not set
1248# CONFIG_USB_PHIDGET is not set
1249# CONFIG_USB_IDMOUSE is not set
1250# CONFIG_USB_FTDI_ELAN is not set
1251# CONFIG_USB_APPLEDISPLAY is not set
1252# CONFIG_USB_LD is not set
1253# CONFIG_USB_TRANCEVIBRATOR is not set
1254# CONFIG_USB_IOWARRIOR is not set
1255# CONFIG_USB_TEST is not set
1256# CONFIG_USB_ISIGHTFW is not set
1257CONFIG_USB_GADGET=m
1258# CONFIG_USB_GADGET_DEBUG is not set
1259# CONFIG_USB_GADGET_DEBUG_FILES is not set
1260CONFIG_USB_GADGET_SELECTED=y
1261# CONFIG_USB_GADGET_AMD5536UDC is not set
1262# CONFIG_USB_GADGET_ATMEL_USBA is not set
1263# CONFIG_USB_GADGET_FSL_USB2 is not set
1264# CONFIG_USB_GADGET_NET2280 is not set
1265CONFIG_USB_GADGET_PXA25X=y
1266CONFIG_USB_PXA25X=m
1267# CONFIG_USB_PXA25X_SMALL is not set
1268# CONFIG_USB_GADGET_M66592 is not set
1269# CONFIG_USB_GADGET_PXA27X is not set
1270# CONFIG_USB_GADGET_GOKU is not set
1271# CONFIG_USB_GADGET_LH7A40X is not set
1272# CONFIG_USB_GADGET_OMAP is not set
1273# CONFIG_USB_GADGET_S3C2410 is not set
1274# CONFIG_USB_GADGET_AT91 is not set
1275# CONFIG_USB_GADGET_DUMMY_HCD is not set
1276# CONFIG_USB_GADGET_DUALSPEED is not set
1277# CONFIG_USB_ZERO is not set
1278CONFIG_USB_ETH=m
1279CONFIG_USB_ETH_RNDIS=y
1280CONFIG_USB_GADGETFS=m
1281CONFIG_USB_FILE_STORAGE=m
1282# CONFIG_USB_FILE_STORAGE_TEST is not set
1283CONFIG_USB_G_SERIAL=m
1284# CONFIG_USB_MIDI_GADGET is not set
1285CONFIG_USB_G_PRINTER=m
1286# CONFIG_USB_CDC_COMPOSITE is not set
1287# CONFIG_MMC is not set
1288# CONFIG_NEW_LEDS is not set
1289CONFIG_RTC_LIB=y
1290CONFIG_RTC_CLASS=m
1291
1292#
1293# RTC interfaces
1294#
1295CONFIG_RTC_INTF_SYSFS=y
1296CONFIG_RTC_INTF_PROC=y
1297CONFIG_RTC_INTF_DEV=y
1298# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1299# CONFIG_RTC_DRV_TEST is not set
1300
1301#
1302# I2C RTC drivers
1303#
1304CONFIG_RTC_DRV_DS1307=m
1305# CONFIG_RTC_DRV_DS1374 is not set
1306# CONFIG_RTC_DRV_DS1672 is not set
1307# CONFIG_RTC_DRV_MAX6900 is not set
1308# CONFIG_RTC_DRV_RS5C372 is not set
1309# CONFIG_RTC_DRV_ISL1208 is not set
1310# CONFIG_RTC_DRV_X1205 is not set
1311# CONFIG_RTC_DRV_PCF8563 is not set
1312# CONFIG_RTC_DRV_PCF8583 is not set
1313# CONFIG_RTC_DRV_M41T80 is not set
1314# CONFIG_RTC_DRV_S35390A is not set
1315# CONFIG_RTC_DRV_FM3130 is not set
1316
1317#
1318# SPI RTC drivers
1319#
1320
1321#
1322# Platform RTC drivers
1323#
1324# CONFIG_RTC_DRV_CMOS is not set
1325# CONFIG_RTC_DRV_DS1511 is not set
1326# CONFIG_RTC_DRV_DS1553 is not set
1327# CONFIG_RTC_DRV_DS1742 is not set
1328# CONFIG_RTC_DRV_STK17TA8 is not set
1329# CONFIG_RTC_DRV_M48T86 is not set
1330# CONFIG_RTC_DRV_M48T59 is not set
1331# CONFIG_RTC_DRV_V3020 is not set
1332
1333#
1334# on-CPU RTC drivers
1335#
1336CONFIG_RTC_DRV_SA1100=m
1337# CONFIG_DMADEVICES is not set
1338
1339#
1340# Voltage and Current regulators
1341#
1342# CONFIG_REGULATOR is not set
1343# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1344# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1345# CONFIG_REGULATOR_BQ24022 is not set
1346# CONFIG_UIO is not set
1347
1348#
1349# File systems
1350#
1351CONFIG_EXT2_FS=m
1352# CONFIG_EXT2_FS_XATTR is not set
1353# CONFIG_EXT2_FS_XIP is not set
1354CONFIG_EXT3_FS=m
1355# CONFIG_EXT3_FS_XATTR is not set
1356# CONFIG_EXT4DEV_FS is not set
1357CONFIG_JBD=m
1358# CONFIG_REISERFS_FS is not set
1359# CONFIG_JFS_FS is not set
1360# CONFIG_FS_POSIX_ACL is not set
1361# CONFIG_XFS_FS is not set
1362# CONFIG_OCFS2_FS is not set
1363# CONFIG_DNOTIFY is not set
1364CONFIG_INOTIFY=y
1365CONFIG_INOTIFY_USER=y
1366# CONFIG_QUOTA is not set
1367# CONFIG_AUTOFS_FS is not set
1368# CONFIG_AUTOFS4_FS is not set
1369# CONFIG_FUSE_FS is not set
1370
1371#
1372# CD-ROM/DVD Filesystems
1373#
1374# CONFIG_ISO9660_FS is not set
1375# CONFIG_UDF_FS is not set
1376
1377#
1378# DOS/FAT/NT Filesystems
1379#
1380CONFIG_FAT_FS=m
1381# CONFIG_MSDOS_FS is not set
1382CONFIG_VFAT_FS=m
1383CONFIG_FAT_DEFAULT_CODEPAGE=437
1384CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1385# CONFIG_NTFS_FS is not set
1386
1387#
1388# Pseudo filesystems
1389#
1390CONFIG_PROC_FS=y
1391CONFIG_PROC_SYSCTL=y
1392CONFIG_SYSFS=y
1393CONFIG_TMPFS=y
1394# CONFIG_TMPFS_POSIX_ACL is not set
1395# CONFIG_HUGETLB_PAGE is not set
1396# CONFIG_CONFIGFS_FS is not set
1397
1398#
1399# Miscellaneous filesystems
1400#
1401# CONFIG_ADFS_FS is not set
1402# CONFIG_AFFS_FS is not set
1403# CONFIG_HFS_FS is not set
1404# CONFIG_HFSPLUS_FS is not set
1405# CONFIG_BEFS_FS is not set
1406# CONFIG_BFS_FS is not set
1407# CONFIG_EFS_FS is not set
1408CONFIG_JFFS2_FS=y
1409CONFIG_JFFS2_FS_DEBUG=0
1410CONFIG_JFFS2_FS_WRITEBUFFER=y
1411# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1412# CONFIG_JFFS2_SUMMARY is not set
1413# CONFIG_JFFS2_FS_XATTR is not set
1414# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1415CONFIG_JFFS2_ZLIB=y
1416# CONFIG_JFFS2_LZO is not set
1417CONFIG_JFFS2_RTIME=y
1418# CONFIG_JFFS2_RUBIN is not set
1419# CONFIG_CRAMFS is not set
1420# CONFIG_VXFS_FS is not set
1421# CONFIG_MINIX_FS is not set
1422# CONFIG_OMFS_FS is not set
1423# CONFIG_HPFS_FS is not set
1424# CONFIG_QNX4FS_FS is not set
1425# CONFIG_ROMFS_FS is not set
1426# CONFIG_SYSV_FS is not set
1427# CONFIG_UFS_FS is not set
1428CONFIG_NETWORK_FILESYSTEMS=y
1429CONFIG_NFS_FS=y
1430CONFIG_NFS_V3=y
1431# CONFIG_NFS_V3_ACL is not set
1432# CONFIG_NFS_V4 is not set
1433CONFIG_ROOT_NFS=y
1434CONFIG_NFSD=m
1435CONFIG_NFSD_V3=y
1436# CONFIG_NFSD_V3_ACL is not set
1437# CONFIG_NFSD_V4 is not set
1438CONFIG_LOCKD=y
1439CONFIG_LOCKD_V4=y
1440CONFIG_EXPORTFS=m
1441CONFIG_NFS_COMMON=y
1442CONFIG_SUNRPC=y
1443# CONFIG_RPCSEC_GSS_KRB5 is not set
1444# CONFIG_RPCSEC_GSS_SPKM3 is not set
1445# CONFIG_SMB_FS is not set
1446# CONFIG_CIFS is not set
1447# CONFIG_NCP_FS is not set
1448# CONFIG_CODA_FS is not set
1449# CONFIG_AFS_FS is not set
1450
1451#
1452# Partition Types
1453#
1454CONFIG_PARTITION_ADVANCED=y
1455# CONFIG_ACORN_PARTITION is not set
1456# CONFIG_OSF_PARTITION is not set
1457# CONFIG_AMIGA_PARTITION is not set
1458# CONFIG_ATARI_PARTITION is not set
1459# CONFIG_MAC_PARTITION is not set
1460CONFIG_MSDOS_PARTITION=y
1461# CONFIG_BSD_DISKLABEL is not set
1462# CONFIG_MINIX_SUBPARTITION is not set
1463# CONFIG_SOLARIS_X86_PARTITION is not set
1464# CONFIG_UNIXWARE_DISKLABEL is not set
1465# CONFIG_LDM_PARTITION is not set
1466# CONFIG_SGI_PARTITION is not set
1467# CONFIG_ULTRIX_PARTITION is not set
1468# CONFIG_SUN_PARTITION is not set
1469# CONFIG_KARMA_PARTITION is not set
1470# CONFIG_EFI_PARTITION is not set
1471# CONFIG_SYSV68_PARTITION is not set
1472CONFIG_NLS=m
1473CONFIG_NLS_DEFAULT="iso8859-1"
1474CONFIG_NLS_CODEPAGE_437=m
1475# CONFIG_NLS_CODEPAGE_737 is not set
1476# CONFIG_NLS_CODEPAGE_775 is not set
1477CONFIG_NLS_CODEPAGE_850=m
1478# CONFIG_NLS_CODEPAGE_852 is not set
1479# CONFIG_NLS_CODEPAGE_855 is not set
1480# CONFIG_NLS_CODEPAGE_857 is not set
1481# CONFIG_NLS_CODEPAGE_860 is not set
1482# CONFIG_NLS_CODEPAGE_861 is not set
1483# CONFIG_NLS_CODEPAGE_862 is not set
1484# CONFIG_NLS_CODEPAGE_863 is not set
1485# CONFIG_NLS_CODEPAGE_864 is not set
1486# CONFIG_NLS_CODEPAGE_865 is not set
1487# CONFIG_NLS_CODEPAGE_866 is not set
1488# CONFIG_NLS_CODEPAGE_869 is not set
1489# CONFIG_NLS_CODEPAGE_936 is not set
1490# CONFIG_NLS_CODEPAGE_950 is not set
1491# CONFIG_NLS_CODEPAGE_932 is not set
1492# CONFIG_NLS_CODEPAGE_949 is not set
1493# CONFIG_NLS_CODEPAGE_874 is not set
1494# CONFIG_NLS_ISO8859_8 is not set
1495# CONFIG_NLS_CODEPAGE_1250 is not set
1496# CONFIG_NLS_CODEPAGE_1251 is not set
1497# CONFIG_NLS_ASCII is not set
1498CONFIG_NLS_ISO8859_1=m
1499# CONFIG_NLS_ISO8859_2 is not set
1500# CONFIG_NLS_ISO8859_3 is not set
1501# CONFIG_NLS_ISO8859_4 is not set
1502# CONFIG_NLS_ISO8859_5 is not set
1503# CONFIG_NLS_ISO8859_6 is not set
1504# CONFIG_NLS_ISO8859_7 is not set
1505# CONFIG_NLS_ISO8859_9 is not set
1506# CONFIG_NLS_ISO8859_13 is not set
1507# CONFIG_NLS_ISO8859_14 is not set
1508CONFIG_NLS_ISO8859_15=m
1509# CONFIG_NLS_KOI8_R is not set
1510# CONFIG_NLS_KOI8_U is not set
1511CONFIG_NLS_UTF8=m
1512# CONFIG_DLM is not set
1513
1514#
1515# Kernel hacking
1516#
1517# CONFIG_PRINTK_TIME is not set
1518CONFIG_ENABLE_WARN_DEPRECATED=y
1519CONFIG_ENABLE_MUST_CHECK=y
1520CONFIG_FRAME_WARN=1024
1521CONFIG_MAGIC_SYSRQ=y
1522# CONFIG_UNUSED_SYMBOLS is not set
1523# CONFIG_DEBUG_FS is not set
1524# CONFIG_HEADERS_CHECK is not set
1525CONFIG_DEBUG_KERNEL=y
1526# CONFIG_DEBUG_SHIRQ is not set
1527CONFIG_DETECT_SOFTLOCKUP=y
1528# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1529CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1530CONFIG_SCHED_DEBUG=y
1531# CONFIG_SCHEDSTATS is not set
1532# CONFIG_TIMER_STATS is not set
1533# CONFIG_DEBUG_OBJECTS is not set
1534# CONFIG_DEBUG_SLAB is not set
1535# CONFIG_DEBUG_RT_MUTEXES is not set
1536# CONFIG_RT_MUTEX_TESTER is not set
1537# CONFIG_DEBUG_SPINLOCK is not set
1538CONFIG_DEBUG_MUTEXES=y
1539# CONFIG_DEBUG_LOCK_ALLOC is not set
1540# CONFIG_PROVE_LOCKING is not set
1541# CONFIG_LOCK_STAT is not set
1542# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1543# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1544# CONFIG_DEBUG_KOBJECT is not set
1545CONFIG_DEBUG_BUGVERBOSE=y
1546# CONFIG_DEBUG_INFO is not set
1547# CONFIG_DEBUG_VM is not set
1548# CONFIG_DEBUG_WRITECOUNT is not set
1549# CONFIG_DEBUG_MEMORY_INIT is not set
1550# CONFIG_DEBUG_LIST is not set
1551# CONFIG_DEBUG_SG is not set
1552CONFIG_FRAME_POINTER=y
1553# CONFIG_BOOT_PRINTK_DELAY is not set
1554# CONFIG_RCU_TORTURE_TEST is not set
1555# CONFIG_BACKTRACE_SELF_TEST is not set
1556# CONFIG_FAULT_INJECTION is not set
1557# CONFIG_LATENCYTOP is not set
1558CONFIG_SYSCTL_SYSCALL_CHECK=y
1559CONFIG_HAVE_FTRACE=y
1560CONFIG_HAVE_DYNAMIC_FTRACE=y
1561# CONFIG_FTRACE is not set
1562# CONFIG_IRQSOFF_TRACER is not set
1563# CONFIG_SCHED_TRACER is not set
1564# CONFIG_CONTEXT_SWITCH_TRACER is not set
1565# CONFIG_SAMPLES is not set
1566CONFIG_HAVE_ARCH_KGDB=y
1567# CONFIG_KGDB is not set
1568# CONFIG_DEBUG_USER is not set
1569CONFIG_DEBUG_ERRORS=y
1570# CONFIG_DEBUG_STACK_USAGE is not set
1571# CONFIG_DEBUG_LL is not set
1572
1573#
1574# Security options
1575#
1576# CONFIG_KEYS is not set
1577# CONFIG_SECURITY is not set
1578# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1579CONFIG_CRYPTO=y
1580
1581#
1582# Crypto core or helper
1583#
1584CONFIG_CRYPTO_ALGAPI=m
1585CONFIG_CRYPTO_BLKCIPHER=m
1586CONFIG_CRYPTO_MANAGER=m
1587# CONFIG_CRYPTO_GF128MUL is not set
1588# CONFIG_CRYPTO_NULL is not set
1589# CONFIG_CRYPTO_CRYPTD is not set
1590# CONFIG_CRYPTO_AUTHENC is not set
1591# CONFIG_CRYPTO_TEST is not set
1592
1593#
1594# Authenticated Encryption with Associated Data
1595#
1596# CONFIG_CRYPTO_CCM is not set
1597# CONFIG_CRYPTO_GCM is not set
1598# CONFIG_CRYPTO_SEQIV is not set
1599
1600#
1601# Block modes
1602#
1603# CONFIG_CRYPTO_CBC is not set
1604# CONFIG_CRYPTO_CTR is not set
1605# CONFIG_CRYPTO_CTS is not set
1606CONFIG_CRYPTO_ECB=m
1607# CONFIG_CRYPTO_LRW is not set
1608# CONFIG_CRYPTO_PCBC is not set
1609# CONFIG_CRYPTO_XTS is not set
1610
1611#
1612# Hash modes
1613#
1614# CONFIG_CRYPTO_HMAC is not set
1615# CONFIG_CRYPTO_XCBC is not set
1616
1617#
1618# Digest
1619#
1620# CONFIG_CRYPTO_CRC32C is not set
1621# CONFIG_CRYPTO_MD4 is not set
1622# CONFIG_CRYPTO_MD5 is not set
1623# CONFIG_CRYPTO_MICHAEL_MIC is not set
1624# CONFIG_CRYPTO_RMD128 is not set
1625# CONFIG_CRYPTO_RMD160 is not set
1626# CONFIG_CRYPTO_RMD256 is not set
1627# CONFIG_CRYPTO_RMD320 is not set
1628# CONFIG_CRYPTO_SHA1 is not set
1629# CONFIG_CRYPTO_SHA256 is not set
1630# CONFIG_CRYPTO_SHA512 is not set
1631# CONFIG_CRYPTO_TGR192 is not set
1632# CONFIG_CRYPTO_WP512 is not set
1633
1634#
1635# Ciphers
1636#
1637# CONFIG_CRYPTO_AES is not set
1638# CONFIG_CRYPTO_ANUBIS is not set
1639CONFIG_CRYPTO_ARC4=m
1640# CONFIG_CRYPTO_BLOWFISH is not set
1641# CONFIG_CRYPTO_CAMELLIA is not set
1642# CONFIG_CRYPTO_CAST5 is not set
1643# CONFIG_CRYPTO_CAST6 is not set
1644# CONFIG_CRYPTO_DES is not set
1645# CONFIG_CRYPTO_FCRYPT is not set
1646# CONFIG_CRYPTO_KHAZAD is not set
1647# CONFIG_CRYPTO_SALSA20 is not set
1648# CONFIG_CRYPTO_SEED is not set
1649# CONFIG_CRYPTO_SERPENT is not set
1650# CONFIG_CRYPTO_TEA is not set
1651# CONFIG_CRYPTO_TWOFISH is not set
1652
1653#
1654# Compression
1655#
1656# CONFIG_CRYPTO_DEFLATE is not set
1657# CONFIG_CRYPTO_LZO is not set
1658CONFIG_CRYPTO_HW=y
1659
1660#
1661# Library routines
1662#
1663CONFIG_BITREVERSE=y
1664# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1665# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1666CONFIG_CRC_CCITT=m
1667# CONFIG_CRC16 is not set
1668CONFIG_CRC_T10DIF=m
1669# CONFIG_CRC_ITU_T is not set
1670CONFIG_CRC32=y
1671# CONFIG_CRC7 is not set
1672# CONFIG_LIBCRC32C is not set
1673CONFIG_ZLIB_INFLATE=y
1674CONFIG_ZLIB_DEFLATE=y
1675CONFIG_PLIST=y
1676CONFIG_HAS_IOMEM=y
1677CONFIG_HAS_IOPORT=y
1678CONFIG_HAS_DMA=y
diff --git a/arch/arm/configs/xm_x270_defconfig b/arch/arm/configs/xm_x2xx_defconfig
index aa40d91ce599..f891364deceb 100644
--- a/arch/arm/configs/xm_x270_defconfig
+++ b/arch/arm/configs/xm_x2xx_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.25 3# Linux kernel version: 2.6.27-rc8
4# Sun May 11 15:12:52 2008 4# Sun Oct 5 11:05:36 2008
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_SYS_SUPPORTS_APM_EMULATION=y 7CONFIG_SYS_SUPPORTS_APM_EMULATION=y
@@ -12,6 +12,7 @@ CONFIG_MMU=y
12# CONFIG_NO_IOPORT is not set 12# CONFIG_NO_IOPORT is not set
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_STACKTRACE_SUPPORT=y 14CONFIG_STACKTRACE_SUPPORT=y
15CONFIG_HAVE_LATENCYTOP_SUPPORT=y
15CONFIG_LOCKDEP_SUPPORT=y 16CONFIG_LOCKDEP_SUPPORT=y
16CONFIG_TRACE_IRQFLAGS_SUPPORT=y 17CONFIG_TRACE_IRQFLAGS_SUPPORT=y
17CONFIG_HARDIRQS_SW_RESEND=y 18CONFIG_HARDIRQS_SW_RESEND=y
@@ -24,6 +25,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
24CONFIG_ARCH_SUPPORTS_AOUT=y 25CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_ZONE_DMA=y 26CONFIG_ZONE_DMA=y
26CONFIG_ARCH_MTD_XIP=y 27CONFIG_ARCH_MTD_XIP=y
28CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
27CONFIG_VECTORS_BASE=0xffff0000 29CONFIG_VECTORS_BASE=0xffff0000
28CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 30CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
29 31
@@ -62,7 +64,6 @@ CONFIG_SYSCTL=y
62CONFIG_EMBEDDED=y 64CONFIG_EMBEDDED=y
63CONFIG_UID16=y 65CONFIG_UID16=y
64CONFIG_SYSCTL_SYSCALL=y 66CONFIG_SYSCTL_SYSCALL=y
65CONFIG_SYSCTL_SYSCALL_CHECK=y
66CONFIG_KALLSYMS=y 67CONFIG_KALLSYMS=y
67# CONFIG_KALLSYMS_ALL is not set 68# CONFIG_KALLSYMS_ALL is not set
68# CONFIG_KALLSYMS_EXTRA_PASS is not set 69# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -88,14 +89,21 @@ CONFIG_SLUB=y
88# CONFIG_MARKERS is not set 89# CONFIG_MARKERS is not set
89CONFIG_HAVE_OPROFILE=y 90CONFIG_HAVE_OPROFILE=y
90# CONFIG_KPROBES is not set 91# CONFIG_KPROBES is not set
92# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
93# CONFIG_HAVE_IOREMAP_PROT is not set
91CONFIG_HAVE_KPROBES=y 94CONFIG_HAVE_KPROBES=y
92CONFIG_HAVE_KRETPROBES=y 95CONFIG_HAVE_KRETPROBES=y
96# CONFIG_HAVE_ARCH_TRACEHOOK is not set
93# CONFIG_HAVE_DMA_ATTRS is not set 97# CONFIG_HAVE_DMA_ATTRS is not set
98# CONFIG_USE_GENERIC_SMP_HELPERS is not set
99CONFIG_HAVE_CLK=y
94# CONFIG_PROC_PAGE_MONITOR is not set 100# CONFIG_PROC_PAGE_MONITOR is not set
101CONFIG_HAVE_GENERIC_DMA_COHERENT=y
95CONFIG_RT_MUTEXES=y 102CONFIG_RT_MUTEXES=y
96# CONFIG_TINY_SHMEM is not set 103# CONFIG_TINY_SHMEM is not set
97CONFIG_BASE_SMALL=0 104CONFIG_BASE_SMALL=0
98CONFIG_MODULES=y 105CONFIG_MODULES=y
106# CONFIG_MODULE_FORCE_LOAD is not set
99CONFIG_MODULE_UNLOAD=y 107CONFIG_MODULE_UNLOAD=y
100# CONFIG_MODULE_FORCE_UNLOAD is not set 108# CONFIG_MODULE_FORCE_UNLOAD is not set
101# CONFIG_MODVERSIONS is not set 109# CONFIG_MODVERSIONS is not set
@@ -106,6 +114,7 @@ CONFIG_BLOCK=y
106# CONFIG_BLK_DEV_IO_TRACE is not set 114# CONFIG_BLK_DEV_IO_TRACE is not set
107# CONFIG_LSF is not set 115# CONFIG_LSF is not set
108# CONFIG_BLK_DEV_BSG is not set 116# CONFIG_BLK_DEV_BSG is not set
117# CONFIG_BLK_DEV_INTEGRITY is not set
109 118
110# 119#
111# IO Schedulers 120# IO Schedulers
@@ -131,7 +140,6 @@ CONFIG_CLASSIC_RCU=y
131# CONFIG_ARCH_AT91 is not set 140# CONFIG_ARCH_AT91 is not set
132# CONFIG_ARCH_CLPS7500 is not set 141# CONFIG_ARCH_CLPS7500 is not set
133# CONFIG_ARCH_CLPS711X is not set 142# CONFIG_ARCH_CLPS711X is not set
134# CONFIG_ARCH_CO285 is not set
135# CONFIG_ARCH_EBSA110 is not set 143# CONFIG_ARCH_EBSA110 is not set
136# CONFIG_ARCH_EP93XX is not set 144# CONFIG_ARCH_EP93XX is not set
137# CONFIG_ARCH_FOOTBRIDGE is not set 145# CONFIG_ARCH_FOOTBRIDGE is not set
@@ -145,8 +153,11 @@ CONFIG_CLASSIC_RCU=y
145# CONFIG_ARCH_IXP2000 is not set 153# CONFIG_ARCH_IXP2000 is not set
146# CONFIG_ARCH_IXP4XX is not set 154# CONFIG_ARCH_IXP4XX is not set
147# CONFIG_ARCH_L7200 is not set 155# CONFIG_ARCH_L7200 is not set
156# CONFIG_ARCH_KIRKWOOD is not set
148# CONFIG_ARCH_KS8695 is not set 157# CONFIG_ARCH_KS8695 is not set
149# CONFIG_ARCH_NS9XXX is not set 158# CONFIG_ARCH_NS9XXX is not set
159# CONFIG_ARCH_LOKI is not set
160# CONFIG_ARCH_MV78XX0 is not set
150# CONFIG_ARCH_MXC is not set 161# CONFIG_ARCH_MXC is not set
151# CONFIG_ARCH_ORION5X is not set 162# CONFIG_ARCH_ORION5X is not set
152# CONFIG_ARCH_PNX4008 is not set 163# CONFIG_ARCH_PNX4008 is not set
@@ -164,26 +175,32 @@ CONFIG_DMABOUNCE=y
164# 175#
165# Intel PXA2xx/PXA3xx Implementations 176# Intel PXA2xx/PXA3xx Implementations
166# 177#
167
168#
169# Select target boards
170#
171# CONFIG_ARCH_GUMSTIX is not set 178# CONFIG_ARCH_GUMSTIX is not set
172# CONFIG_ARCH_LUBBOCK is not set 179# CONFIG_ARCH_LUBBOCK is not set
173# CONFIG_MACH_LOGICPD_PXA270 is not set 180# CONFIG_MACH_LOGICPD_PXA270 is not set
174# CONFIG_MACH_MAINSTONE is not set 181# CONFIG_MACH_MAINSTONE is not set
182# CONFIG_MACH_MP900C is not set
175# CONFIG_ARCH_PXA_IDP is not set 183# CONFIG_ARCH_PXA_IDP is not set
176# CONFIG_PXA_SHARPSL is not set 184# CONFIG_PXA_SHARPSL is not set
185# CONFIG_ARCH_VIPER is not set
177# CONFIG_ARCH_PXA_ESERIES is not set 186# CONFIG_ARCH_PXA_ESERIES is not set
178# CONFIG_MACH_TRIZEPS4 is not set 187# CONFIG_TRIZEPS_PXA is not set
179CONFIG_MACH_EM_X270=y 188CONFIG_MACH_EM_X270=y
180# CONFIG_MACH_COLIBRI is not set 189# CONFIG_MACH_COLIBRI is not set
181# CONFIG_MACH_ZYLONITE is not set 190# CONFIG_MACH_ZYLONITE is not set
182# CONFIG_MACH_LITTLETON is not set 191# CONFIG_MACH_LITTLETON is not set
192# CONFIG_MACH_TAVOREVB is not set
193# CONFIG_MACH_SAAR is not set
183CONFIG_MACH_ARMCORE=y 194CONFIG_MACH_ARMCORE=y
195# CONFIG_MACH_CM_X300 is not set
184# CONFIG_MACH_MAGICIAN is not set 196# CONFIG_MACH_MAGICIAN is not set
197# CONFIG_MACH_MIOA701 is not set
185# CONFIG_MACH_PCM027 is not set 198# CONFIG_MACH_PCM027 is not set
199# CONFIG_ARCH_PXA_PALM is not set
200# CONFIG_PXA_EZX is not set
201CONFIG_PXA25x=y
186CONFIG_PXA27x=y 202CONFIG_PXA27x=y
203CONFIG_PXA_SSP=y
187# CONFIG_PXA_PWM is not set 204# CONFIG_PXA_PWM is not set
188 205
189# 206#
@@ -253,11 +270,17 @@ CONFIG_TICK_ONESHOT=y
253CONFIG_NO_HZ=y 270CONFIG_NO_HZ=y
254# CONFIG_HIGH_RES_TIMERS is not set 271# CONFIG_HIGH_RES_TIMERS is not set
255CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 272CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
273CONFIG_VMSPLIT_3G=y
274# CONFIG_VMSPLIT_2G is not set
275# CONFIG_VMSPLIT_1G is not set
276CONFIG_PAGE_OFFSET=0xC0000000
256# CONFIG_PREEMPT is not set 277# CONFIG_PREEMPT is not set
257CONFIG_HZ=100 278CONFIG_HZ=100
258CONFIG_AEABI=y 279CONFIG_AEABI=y
259CONFIG_OABI_COMPAT=y 280CONFIG_OABI_COMPAT=y
260# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 281CONFIG_ARCH_FLATMEM_HAS_HOLES=y
282# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
283# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
261CONFIG_SELECT_MEMORY_MODEL=y 284CONFIG_SELECT_MEMORY_MODEL=y
262CONFIG_FLATMEM_MANUAL=y 285CONFIG_FLATMEM_MANUAL=y
263# CONFIG_DISCONTIGMEM_MANUAL is not set 286# CONFIG_DISCONTIGMEM_MANUAL is not set
@@ -284,9 +307,10 @@ CONFIG_CMDLINE="root=1f03 mem=32M"
284# CONFIG_KEXEC is not set 307# CONFIG_KEXEC is not set
285 308
286# 309#
287# CPU Frequency scaling 310# CPU Power Management
288# 311#
289# CONFIG_CPU_FREQ is not set 312# CONFIG_CPU_FREQ is not set
313# CONFIG_CPU_IDLE is not set
290 314
291# 315#
292# Floating point emulation 316# Floating point emulation
@@ -316,10 +340,6 @@ CONFIG_SUSPEND=y
316CONFIG_SUSPEND_FREEZER=y 340CONFIG_SUSPEND_FREEZER=y
317CONFIG_APM_EMULATION=m 341CONFIG_APM_EMULATION=m
318CONFIG_ARCH_SUSPEND_POSSIBLE=y 342CONFIG_ARCH_SUSPEND_POSSIBLE=y
319
320#
321# Networking
322#
323CONFIG_NET=y 343CONFIG_NET=y
324 344
325# 345#
@@ -402,6 +422,7 @@ CONFIG_BT_HIDP=m
402# 422#
403CONFIG_BT_HCIUSB=m 423CONFIG_BT_HCIUSB=m
404CONFIG_BT_HCIUSB_SCO=y 424CONFIG_BT_HCIUSB_SCO=y
425# CONFIG_BT_HCIBTUSB is not set
405# CONFIG_BT_HCIBTSDIO is not set 426# CONFIG_BT_HCIBTSDIO is not set
406# CONFIG_BT_HCIUART is not set 427# CONFIG_BT_HCIUART is not set
407# CONFIG_BT_HCIBCM203X is not set 428# CONFIG_BT_HCIBCM203X is not set
@@ -419,6 +440,7 @@ CONFIG_BT_HCIUSB_SCO=y
419# 440#
420# CONFIG_CFG80211 is not set 441# CONFIG_CFG80211 is not set
421CONFIG_WIRELESS_EXT=y 442CONFIG_WIRELESS_EXT=y
443CONFIG_WIRELESS_EXT_SYSFS=y
422# CONFIG_MAC80211 is not set 444# CONFIG_MAC80211 is not set
423# CONFIG_IEEE80211 is not set 445# CONFIG_IEEE80211 is not set
424# CONFIG_RFKILL is not set 446# CONFIG_RFKILL is not set
@@ -435,6 +457,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
435CONFIG_STANDALONE=y 457CONFIG_STANDALONE=y
436CONFIG_PREVENT_FIRMWARE_BUILD=y 458CONFIG_PREVENT_FIRMWARE_BUILD=y
437CONFIG_FW_LOADER=m 459CONFIG_FW_LOADER=m
460CONFIG_FIRMWARE_IN_KERNEL=y
461CONFIG_EXTRA_FIRMWARE=""
438# CONFIG_DEBUG_DRIVER is not set 462# CONFIG_DEBUG_DRIVER is not set
439# CONFIG_DEBUG_DEVRES is not set 463# CONFIG_DEBUG_DEVRES is not set
440# CONFIG_SYS_HYPERVISOR is not set 464# CONFIG_SYS_HYPERVISOR is not set
@@ -527,6 +551,7 @@ CONFIG_MTD_NAND=y
527# CONFIG_MTD_NAND_ECC_SMC is not set 551# CONFIG_MTD_NAND_ECC_SMC is not set
528# CONFIG_MTD_NAND_MUSEUM_IDS is not set 552# CONFIG_MTD_NAND_MUSEUM_IDS is not set
529# CONFIG_MTD_NAND_H1900 is not set 553# CONFIG_MTD_NAND_H1900 is not set
554CONFIG_MTD_NAND_GPIO=m
530CONFIG_MTD_NAND_IDS=y 555CONFIG_MTD_NAND_IDS=y
531# CONFIG_MTD_NAND_DISKONCHIP is not set 556# CONFIG_MTD_NAND_DISKONCHIP is not set
532# CONFIG_MTD_NAND_SHARPSL is not set 557# CONFIG_MTD_NAND_SHARPSL is not set
@@ -636,6 +661,7 @@ CONFIG_SCSI_LOWLEVEL=y
636# CONFIG_SCSI_DEBUG is not set 661# CONFIG_SCSI_DEBUG is not set
637# CONFIG_SCSI_SRP is not set 662# CONFIG_SCSI_SRP is not set
638# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 663# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
664# CONFIG_SCSI_DH is not set
639CONFIG_ATA=m 665CONFIG_ATA=m
640# CONFIG_ATA_NONSTANDARD is not set 666# CONFIG_ATA_NONSTANDARD is not set
641# CONFIG_SATA_PMP is not set 667# CONFIG_SATA_PMP is not set
@@ -696,17 +722,21 @@ CONFIG_PATA_PCMCIA=m
696# CONFIG_PATA_VIA is not set 722# CONFIG_PATA_VIA is not set
697# CONFIG_PATA_WINBOND is not set 723# CONFIG_PATA_WINBOND is not set
698# CONFIG_PATA_PLATFORM is not set 724# CONFIG_PATA_PLATFORM is not set
725# CONFIG_PATA_SCH is not set
699# CONFIG_MD is not set 726# CONFIG_MD is not set
700# CONFIG_FUSION is not set 727# CONFIG_FUSION is not set
701 728
702# 729#
703# IEEE 1394 (FireWire) support 730# IEEE 1394 (FireWire) support
704# 731#
732
733#
734# Enable only one of the two stacks, unless you know what you are doing
735#
705# CONFIG_FIREWIRE is not set 736# CONFIG_FIREWIRE is not set
706# CONFIG_IEEE1394 is not set 737# CONFIG_IEEE1394 is not set
707# CONFIG_I2O is not set 738# CONFIG_I2O is not set
708CONFIG_NETDEVICES=y 739CONFIG_NETDEVICES=y
709# CONFIG_NETDEVICES_MULTIQUEUE is not set
710# CONFIG_DUMMY is not set 740# CONFIG_DUMMY is not set
711# CONFIG_BONDING is not set 741# CONFIG_BONDING is not set
712# CONFIG_MACVLAN is not set 742# CONFIG_MACVLAN is not set
@@ -725,6 +755,7 @@ CONFIG_MII=y
725# CONFIG_SMC91X is not set 755# CONFIG_SMC91X is not set
726CONFIG_DM9000=y 756CONFIG_DM9000=y
727CONFIG_DM9000_DEBUGLEVEL=1 757CONFIG_DM9000_DEBUGLEVEL=1
758# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
728# CONFIG_SMC911X is not set 759# CONFIG_SMC911X is not set
729# CONFIG_NET_TULIP is not set 760# CONFIG_NET_TULIP is not set
730# CONFIG_HP100 is not set 761# CONFIG_HP100 is not set
@@ -780,7 +811,6 @@ CONFIG_LIBERTAS_SDIO=m
780# CONFIG_PRISM54 is not set 811# CONFIG_PRISM54 is not set
781# CONFIG_USB_ZD1201 is not set 812# CONFIG_USB_ZD1201 is not set
782# CONFIG_USB_NET_RNDIS_WLAN is not set 813# CONFIG_USB_NET_RNDIS_WLAN is not set
783# CONFIG_IWLWIFI is not set
784# CONFIG_IWLWIFI_LEDS is not set 814# CONFIG_IWLWIFI_LEDS is not set
785# CONFIG_HOSTAP is not set 815# CONFIG_HOSTAP is not set
786 816
@@ -853,17 +883,18 @@ CONFIG_INPUT_TOUCHSCREEN=y
853# CONFIG_TOUCHSCREEN_GUNZE is not set 883# CONFIG_TOUCHSCREEN_GUNZE is not set
854# CONFIG_TOUCHSCREEN_ELO is not set 884# CONFIG_TOUCHSCREEN_ELO is not set
855# CONFIG_TOUCHSCREEN_MTOUCH is not set 885# CONFIG_TOUCHSCREEN_MTOUCH is not set
886# CONFIG_TOUCHSCREEN_INEXIO is not set
856# CONFIG_TOUCHSCREEN_MK712 is not set 887# CONFIG_TOUCHSCREEN_MK712 is not set
857# CONFIG_TOUCHSCREEN_PENMOUNT is not set 888# CONFIG_TOUCHSCREEN_PENMOUNT is not set
858# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 889# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
859# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 890# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
860CONFIG_TOUCHSCREEN_UCB1400=m
861CONFIG_TOUCHSCREEN_WM97XX=m 891CONFIG_TOUCHSCREEN_WM97XX=m
862# CONFIG_TOUCHSCREEN_WM9705 is not set 892# CONFIG_TOUCHSCREEN_WM9705 is not set
863CONFIG_TOUCHSCREEN_WM9712=y 893CONFIG_TOUCHSCREEN_WM9712=y
864# CONFIG_TOUCHSCREEN_WM9713 is not set 894# CONFIG_TOUCHSCREEN_WM9713 is not set
865# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set 895# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set
866# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 896# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
897# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
867# CONFIG_INPUT_MISC is not set 898# CONFIG_INPUT_MISC is not set
868 899
869# 900#
@@ -880,6 +911,7 @@ CONFIG_SERIO_LIBPS2=y
880# Character devices 911# Character devices
881# 912#
882CONFIG_VT=y 913CONFIG_VT=y
914CONFIG_CONSOLE_TRANSLATIONS=y
883CONFIG_VT_CONSOLE=y 915CONFIG_VT_CONSOLE=y
884CONFIG_HW_CONSOLE=y 916CONFIG_HW_CONSOLE=y
885# CONFIG_VT_HW_CONSOLE_BINDING is not set 917# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -922,45 +954,66 @@ CONFIG_DEVPORT=y
922CONFIG_I2C=y 954CONFIG_I2C=y
923CONFIG_I2C_BOARDINFO=y 955CONFIG_I2C_BOARDINFO=y
924CONFIG_I2C_CHARDEV=m 956CONFIG_I2C_CHARDEV=m
957CONFIG_I2C_HELPER_AUTO=y
925 958
926# 959#
927# I2C Hardware Bus support 960# I2C Hardware Bus support
928# 961#
962
963#
964# PC SMBus host controller drivers
965#
929# CONFIG_I2C_ALI1535 is not set 966# CONFIG_I2C_ALI1535 is not set
930# CONFIG_I2C_ALI1563 is not set 967# CONFIG_I2C_ALI1563 is not set
931# CONFIG_I2C_ALI15X3 is not set 968# CONFIG_I2C_ALI15X3 is not set
932# CONFIG_I2C_AMD756 is not set 969# CONFIG_I2C_AMD756 is not set
933# CONFIG_I2C_AMD8111 is not set 970# CONFIG_I2C_AMD8111 is not set
934# CONFIG_I2C_GPIO is not set
935# CONFIG_I2C_I801 is not set 971# CONFIG_I2C_I801 is not set
936# CONFIG_I2C_I810 is not set 972# CONFIG_I2C_ISCH is not set
937CONFIG_I2C_PXA=y
938# CONFIG_I2C_PXA_SLAVE is not set
939# CONFIG_I2C_PIIX4 is not set 973# CONFIG_I2C_PIIX4 is not set
940# CONFIG_I2C_NFORCE2 is not set 974# CONFIG_I2C_NFORCE2 is not set
941# CONFIG_I2C_OCORES is not set
942# CONFIG_I2C_PARPORT_LIGHT is not set
943# CONFIG_I2C_PROSAVAGE is not set
944# CONFIG_I2C_SAVAGE4 is not set
945# CONFIG_I2C_SIMTEC is not set
946# CONFIG_I2C_SIS5595 is not set 975# CONFIG_I2C_SIS5595 is not set
947# CONFIG_I2C_SIS630 is not set 976# CONFIG_I2C_SIS630 is not set
948# CONFIG_I2C_SIS96X is not set 977# CONFIG_I2C_SIS96X is not set
949# CONFIG_I2C_TAOS_EVM is not set
950# CONFIG_I2C_STUB is not set
951# CONFIG_I2C_TINY_USB is not set
952# CONFIG_I2C_VIA is not set 978# CONFIG_I2C_VIA is not set
953# CONFIG_I2C_VIAPRO is not set 979# CONFIG_I2C_VIAPRO is not set
980
981#
982# I2C system bus drivers (mostly embedded / system-on-chip)
983#
984# CONFIG_I2C_GPIO is not set
985# CONFIG_I2C_OCORES is not set
986CONFIG_I2C_PXA=y
987# CONFIG_I2C_PXA_SLAVE is not set
988# CONFIG_I2C_SIMTEC is not set
989
990#
991# External I2C/SMBus adapter drivers
992#
993# CONFIG_I2C_PARPORT_LIGHT is not set
994# CONFIG_I2C_TAOS_EVM is not set
995# CONFIG_I2C_TINY_USB is not set
996
997#
998# Graphics adapter I2C/DDC channel drivers
999#
954# CONFIG_I2C_VOODOO3 is not set 1000# CONFIG_I2C_VOODOO3 is not set
1001
1002#
1003# Other I2C/SMBus bus drivers
1004#
955# CONFIG_I2C_PCA_PLATFORM is not set 1005# CONFIG_I2C_PCA_PLATFORM is not set
1006# CONFIG_I2C_STUB is not set
956 1007
957# 1008#
958# Miscellaneous I2C Chip support 1009# Miscellaneous I2C Chip support
959# 1010#
960# CONFIG_DS1682 is not set 1011# CONFIG_DS1682 is not set
1012# CONFIG_AT24 is not set
961# CONFIG_SENSORS_EEPROM is not set 1013# CONFIG_SENSORS_EEPROM is not set
962# CONFIG_SENSORS_PCF8574 is not set 1014# CONFIG_SENSORS_PCF8574 is not set
963# CONFIG_PCF8575 is not set 1015# CONFIG_PCF8575 is not set
1016# CONFIG_SENSORS_PCA9539 is not set
964# CONFIG_SENSORS_PCF8591 is not set 1017# CONFIG_SENSORS_PCF8591 is not set
965# CONFIG_TPS65010 is not set 1018# CONFIG_TPS65010 is not set
966# CONFIG_SENSORS_MAX6875 is not set 1019# CONFIG_SENSORS_MAX6875 is not set
@@ -970,25 +1023,31 @@ CONFIG_I2C_PXA=y
970# CONFIG_I2C_DEBUG_BUS is not set 1023# CONFIG_I2C_DEBUG_BUS is not set
971# CONFIG_I2C_DEBUG_CHIP is not set 1024# CONFIG_I2C_DEBUG_CHIP is not set
972# CONFIG_SPI is not set 1025# CONFIG_SPI is not set
973CONFIG_HAVE_GPIO_LIB=y 1026CONFIG_ARCH_REQUIRE_GPIOLIB=y
974 1027CONFIG_GPIOLIB=y
975#
976# GPIO Support
977#
978# CONFIG_DEBUG_GPIO is not set 1028# CONFIG_DEBUG_GPIO is not set
1029# CONFIG_GPIO_SYSFS is not set
979 1030
980# 1031#
981# I2C GPIO expanders: 1032# I2C GPIO expanders:
982# 1033#
1034# CONFIG_GPIO_MAX732X is not set
983# CONFIG_GPIO_PCA953X is not set 1035# CONFIG_GPIO_PCA953X is not set
984# CONFIG_GPIO_PCF857X is not set 1036# CONFIG_GPIO_PCF857X is not set
985 1037
986# 1038#
1039# PCI GPIO expanders:
1040#
1041# CONFIG_GPIO_BT8XX is not set
1042
1043#
987# SPI GPIO expanders: 1044# SPI GPIO expanders:
988# 1045#
989# CONFIG_W1 is not set 1046# CONFIG_W1 is not set
990# CONFIG_POWER_SUPPLY is not set 1047# CONFIG_POWER_SUPPLY is not set
991# CONFIG_HWMON is not set 1048# CONFIG_HWMON is not set
1049# CONFIG_THERMAL is not set
1050# CONFIG_THERMAL_HWMON is not set
992# CONFIG_WATCHDOG is not set 1051# CONFIG_WATCHDOG is not set
993 1052
994# 1053#
@@ -1000,10 +1059,16 @@ CONFIG_SSB_POSSIBLE=y
1000# 1059#
1001# Multifunction device drivers 1060# Multifunction device drivers
1002# 1061#
1062# CONFIG_MFD_CORE is not set
1003# CONFIG_MFD_SM501 is not set 1063# CONFIG_MFD_SM501 is not set
1004# CONFIG_MFD_ASIC3 is not set 1064# CONFIG_MFD_ASIC3 is not set
1005# CONFIG_HTC_EGPIO is not set 1065# CONFIG_HTC_EGPIO is not set
1006# CONFIG_HTC_PASIC3 is not set 1066# CONFIG_HTC_PASIC3 is not set
1067# CONFIG_UCB1400_CORE is not set
1068# CONFIG_MFD_TMIO is not set
1069# CONFIG_MFD_T7L66XB is not set
1070# CONFIG_MFD_TC6387XB is not set
1071# CONFIG_MFD_TC6393XB is not set
1007 1072
1008# 1073#
1009# Multimedia devices 1074# Multimedia devices
@@ -1014,6 +1079,7 @@ CONFIG_SSB_POSSIBLE=y
1014# 1079#
1015# CONFIG_VIDEO_DEV is not set 1080# CONFIG_VIDEO_DEV is not set
1016# CONFIG_DVB_CORE is not set 1081# CONFIG_DVB_CORE is not set
1082# CONFIG_VIDEO_MEDIA is not set
1017 1083
1018# 1084#
1019# Multimedia drivers 1085# Multimedia drivers
@@ -1038,7 +1104,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
1038# CONFIG_FB_SYS_IMAGEBLIT is not set 1104# CONFIG_FB_SYS_IMAGEBLIT is not set
1039# CONFIG_FB_FOREIGN_ENDIAN is not set 1105# CONFIG_FB_FOREIGN_ENDIAN is not set
1040# CONFIG_FB_SYS_FOPS is not set 1106# CONFIG_FB_SYS_FOPS is not set
1041CONFIG_FB_DEFERRED_IO=y
1042# CONFIG_FB_SVGALIB is not set 1107# CONFIG_FB_SVGALIB is not set
1043# CONFIG_FB_MACMODES is not set 1108# CONFIG_FB_MACMODES is not set
1044# CONFIG_FB_BACKLIGHT is not set 1109# CONFIG_FB_BACKLIGHT is not set
@@ -1071,12 +1136,14 @@ CONFIG_FB_DEFERRED_IO=y
1071# CONFIG_FB_TRIDENT is not set 1136# CONFIG_FB_TRIDENT is not set
1072# CONFIG_FB_ARK is not set 1137# CONFIG_FB_ARK is not set
1073# CONFIG_FB_PM3 is not set 1138# CONFIG_FB_PM3 is not set
1139# CONFIG_FB_CARMINE is not set
1074CONFIG_FB_PXA=y 1140CONFIG_FB_PXA=y
1075# CONFIG_FB_PXA_SMARTPANEL is not set 1141# CONFIG_FB_PXA_SMARTPANEL is not set
1076CONFIG_FB_PXA_PARAMETERS=y 1142CONFIG_FB_PXA_PARAMETERS=y
1077CONFIG_FB_MBX=m 1143CONFIG_FB_MBX=m
1078# CONFIG_FB_AM200EPD is not set 1144# CONFIG_FB_W100 is not set
1079# CONFIG_FB_VIRTUAL is not set 1145# CONFIG_FB_VIRTUAL is not set
1146# CONFIG_FB_METRONOME is not set
1080# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1147# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
1081 1148
1082# 1149#
@@ -1099,15 +1166,7 @@ CONFIG_LOGO=y
1099CONFIG_LOGO_LINUX_MONO=y 1166CONFIG_LOGO_LINUX_MONO=y
1100CONFIG_LOGO_LINUX_VGA16=y 1167CONFIG_LOGO_LINUX_VGA16=y
1101CONFIG_LOGO_LINUX_CLUT224=y 1168CONFIG_LOGO_LINUX_CLUT224=y
1102
1103#
1104# Sound
1105#
1106CONFIG_SOUND=m 1169CONFIG_SOUND=m
1107
1108#
1109# Advanced Linux Sound Architecture
1110#
1111CONFIG_SND=m 1170CONFIG_SND=m
1112CONFIG_SND_TIMER=m 1171CONFIG_SND_TIMER=m
1113CONFIG_SND_PCM=m 1172CONFIG_SND_PCM=m
@@ -1121,19 +1180,15 @@ CONFIG_SND_SUPPORT_OLD_API=y
1121CONFIG_SND_VERBOSE_PROCFS=y 1180CONFIG_SND_VERBOSE_PROCFS=y
1122# CONFIG_SND_VERBOSE_PRINTK is not set 1181# CONFIG_SND_VERBOSE_PRINTK is not set
1123# CONFIG_SND_DEBUG is not set 1182# CONFIG_SND_DEBUG is not set
1124 1183CONFIG_SND_VMASTER=y
1125#
1126# Generic devices
1127#
1128CONFIG_SND_AC97_CODEC=m 1184CONFIG_SND_AC97_CODEC=m
1185CONFIG_SND_DRIVERS=y
1129# CONFIG_SND_DUMMY is not set 1186# CONFIG_SND_DUMMY is not set
1130# CONFIG_SND_MTPAV is not set 1187# CONFIG_SND_MTPAV is not set
1131# CONFIG_SND_SERIAL_U16550 is not set 1188# CONFIG_SND_SERIAL_U16550 is not set
1132# CONFIG_SND_MPU401 is not set 1189# CONFIG_SND_MPU401 is not set
1133 1190# CONFIG_SND_AC97_POWER_SAVE is not set
1134# 1191CONFIG_SND_PCI=y
1135# PCI devices
1136#
1137# CONFIG_SND_AD1889 is not set 1192# CONFIG_SND_AD1889 is not set
1138# CONFIG_SND_ALS300 is not set 1193# CONFIG_SND_ALS300 is not set
1139# CONFIG_SND_ALI5451 is not set 1194# CONFIG_SND_ALI5451 is not set
@@ -1193,42 +1248,16 @@ CONFIG_SND_AC97_CODEC=m
1193# CONFIG_SND_VIRTUOSO is not set 1248# CONFIG_SND_VIRTUOSO is not set
1194# CONFIG_SND_VX222 is not set 1249# CONFIG_SND_VX222 is not set
1195# CONFIG_SND_YMFPCI is not set 1250# CONFIG_SND_YMFPCI is not set
1196# CONFIG_SND_AC97_POWER_SAVE is not set 1251CONFIG_SND_ARM=y
1197
1198#
1199# ALSA ARM devices
1200#
1201CONFIG_SND_PXA2XX_PCM=m 1252CONFIG_SND_PXA2XX_PCM=m
1202CONFIG_SND_PXA2XX_AC97=m 1253CONFIG_SND_PXA2XX_AC97=m
1203 1254CONFIG_SND_USB=y
1204#
1205# USB devices
1206#
1207# CONFIG_SND_USB_AUDIO is not set 1255# CONFIG_SND_USB_AUDIO is not set
1208# CONFIG_SND_USB_CAIAQ is not set 1256# CONFIG_SND_USB_CAIAQ is not set
1209 1257CONFIG_SND_PCMCIA=y
1210#
1211# PCMCIA devices
1212#
1213# CONFIG_SND_VXPOCKET is not set 1258# CONFIG_SND_VXPOCKET is not set
1214# CONFIG_SND_PDAUDIOCF is not set 1259# CONFIG_SND_PDAUDIOCF is not set
1215
1216#
1217# System on Chip audio support
1218#
1219# CONFIG_SND_SOC is not set 1260# CONFIG_SND_SOC is not set
1220
1221#
1222# ALSA SoC audio for Freescale SOCs
1223#
1224
1225#
1226# SoC Audio for the Texas Instruments OMAP
1227#
1228
1229#
1230# Open Sound System
1231#
1232# CONFIG_SOUND_PRIME is not set 1261# CONFIG_SOUND_PRIME is not set
1233CONFIG_AC97_BUS=m 1262CONFIG_AC97_BUS=m
1234CONFIG_HID_SUPPORT=y 1263CONFIG_HID_SUPPORT=y
@@ -1261,12 +1290,15 @@ CONFIG_USB_DEVICEFS=y
1261# CONFIG_USB_OTG is not set 1290# CONFIG_USB_OTG is not set
1262# CONFIG_USB_OTG_WHITELIST is not set 1291# CONFIG_USB_OTG_WHITELIST is not set
1263# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1292# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1293CONFIG_USB_MON=y
1264 1294
1265# 1295#
1266# USB Host Controller Drivers 1296# USB Host Controller Drivers
1267# 1297#
1298# CONFIG_USB_C67X00_HCD is not set
1268# CONFIG_USB_EHCI_HCD is not set 1299# CONFIG_USB_EHCI_HCD is not set
1269# CONFIG_USB_ISP116X_HCD is not set 1300# CONFIG_USB_ISP116X_HCD is not set
1301# CONFIG_USB_ISP1760_HCD is not set
1270CONFIG_USB_OHCI_HCD=y 1302CONFIG_USB_OHCI_HCD=y
1271# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1303# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1272# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1304# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -1274,12 +1306,14 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1274# CONFIG_USB_UHCI_HCD is not set 1306# CONFIG_USB_UHCI_HCD is not set
1275# CONFIG_USB_SL811_HCD is not set 1307# CONFIG_USB_SL811_HCD is not set
1276# CONFIG_USB_R8A66597_HCD is not set 1308# CONFIG_USB_R8A66597_HCD is not set
1309# CONFIG_USB_MUSB_HDRC is not set
1277 1310
1278# 1311#
1279# USB Device Class drivers 1312# USB Device Class drivers
1280# 1313#
1281# CONFIG_USB_ACM is not set 1314# CONFIG_USB_ACM is not set
1282# CONFIG_USB_PRINTER is not set 1315# CONFIG_USB_PRINTER is not set
1316# CONFIG_USB_WDM is not set
1283 1317
1284# 1318#
1285# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1319# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1309,7 +1343,6 @@ CONFIG_USB_STORAGE=y
1309# 1343#
1310# CONFIG_USB_MDC800 is not set 1344# CONFIG_USB_MDC800 is not set
1311# CONFIG_USB_MICROTEK is not set 1345# CONFIG_USB_MICROTEK is not set
1312CONFIG_USB_MON=y
1313 1346
1314# 1347#
1315# USB port drivers 1348# USB port drivers
@@ -1322,7 +1355,6 @@ CONFIG_USB_MON=y
1322# CONFIG_USB_EMI62 is not set 1355# CONFIG_USB_EMI62 is not set
1323# CONFIG_USB_EMI26 is not set 1356# CONFIG_USB_EMI26 is not set
1324# CONFIG_USB_ADUTUX is not set 1357# CONFIG_USB_ADUTUX is not set
1325# CONFIG_USB_AUERSWALD is not set
1326# CONFIG_USB_RIO500 is not set 1358# CONFIG_USB_RIO500 is not set
1327# CONFIG_USB_LEGOTOWER is not set 1359# CONFIG_USB_LEGOTOWER is not set
1328# CONFIG_USB_LCD is not set 1360# CONFIG_USB_LCD is not set
@@ -1338,6 +1370,7 @@ CONFIG_USB_MON=y
1338# CONFIG_USB_TRANCEVIBRATOR is not set 1370# CONFIG_USB_TRANCEVIBRATOR is not set
1339# CONFIG_USB_IOWARRIOR is not set 1371# CONFIG_USB_IOWARRIOR is not set
1340# CONFIG_USB_TEST is not set 1372# CONFIG_USB_TEST is not set
1373# CONFIG_USB_ISIGHTFW is not set
1341# CONFIG_USB_GADGET is not set 1374# CONFIG_USB_GADGET is not set
1342CONFIG_MMC=m 1375CONFIG_MMC=m
1343# CONFIG_MMC_DEBUG is not set 1376# CONFIG_MMC_DEBUG is not set
@@ -1349,6 +1382,7 @@ CONFIG_MMC=m
1349CONFIG_MMC_BLOCK=m 1382CONFIG_MMC_BLOCK=m
1350CONFIG_MMC_BLOCK_BOUNCE=y 1383CONFIG_MMC_BLOCK_BOUNCE=y
1351# CONFIG_SDIO_UART is not set 1384# CONFIG_SDIO_UART is not set
1385# CONFIG_MMC_TEST is not set
1352 1386
1353# 1387#
1354# MMC/SD Host Controller Drivers 1388# MMC/SD Host Controller Drivers
@@ -1356,14 +1390,19 @@ CONFIG_MMC_BLOCK_BOUNCE=y
1356CONFIG_MMC_PXA=m 1390CONFIG_MMC_PXA=m
1357# CONFIG_MMC_SDHCI is not set 1391# CONFIG_MMC_SDHCI is not set
1358# CONFIG_MMC_TIFM_SD is not set 1392# CONFIG_MMC_TIFM_SD is not set
1393# CONFIG_MMC_SDRICOH_CS is not set
1394# CONFIG_MEMSTICK is not set
1395# CONFIG_ACCESSIBILITY is not set
1359CONFIG_NEW_LEDS=y 1396CONFIG_NEW_LEDS=y
1360CONFIG_LEDS_CLASS=y 1397CONFIG_LEDS_CLASS=y
1361 1398
1362# 1399#
1363# LED drivers 1400# LED drivers
1364# 1401#
1402# CONFIG_LEDS_PCA9532 is not set
1365# CONFIG_LEDS_GPIO is not set 1403# CONFIG_LEDS_GPIO is not set
1366CONFIG_LEDS_CM_X270=y 1404CONFIG_LEDS_CM_X270=y
1405# CONFIG_LEDS_PCA955X is not set
1367 1406
1368# 1407#
1369# LED Triggers 1408# LED Triggers
@@ -1401,6 +1440,7 @@ CONFIG_RTC_INTF_DEV=y
1401# CONFIG_RTC_DRV_PCF8583 is not set 1440# CONFIG_RTC_DRV_PCF8583 is not set
1402# CONFIG_RTC_DRV_M41T80 is not set 1441# CONFIG_RTC_DRV_M41T80 is not set
1403# CONFIG_RTC_DRV_S35390A is not set 1442# CONFIG_RTC_DRV_S35390A is not set
1443# CONFIG_RTC_DRV_FM3130 is not set
1404 1444
1405# 1445#
1406# SPI RTC drivers 1446# SPI RTC drivers
@@ -1422,6 +1462,15 @@ CONFIG_RTC_DRV_V3020=y
1422# on-CPU RTC drivers 1462# on-CPU RTC drivers
1423# 1463#
1424CONFIG_RTC_DRV_SA1100=y 1464CONFIG_RTC_DRV_SA1100=y
1465# CONFIG_DMADEVICES is not set
1466
1467#
1468# Voltage and Current regulators
1469#
1470# CONFIG_REGULATOR is not set
1471# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
1472# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
1473# CONFIG_REGULATOR_BQ24022 is not set
1425# CONFIG_UIO is not set 1474# CONFIG_UIO is not set
1426 1475
1427# 1476#
@@ -1501,6 +1550,7 @@ CONFIG_JFFS2_RTIME=y
1501# CONFIG_CRAMFS is not set 1550# CONFIG_CRAMFS is not set
1502# CONFIG_VXFS_FS is not set 1551# CONFIG_VXFS_FS is not set
1503# CONFIG_MINIX_FS is not set 1552# CONFIG_MINIX_FS is not set
1553# CONFIG_OMFS_FS is not set
1504# CONFIG_HPFS_FS is not set 1554# CONFIG_HPFS_FS is not set
1505# CONFIG_QNX4FS_FS is not set 1555# CONFIG_QNX4FS_FS is not set
1506# CONFIG_ROMFS_FS is not set 1556# CONFIG_ROMFS_FS is not set
@@ -1511,13 +1561,12 @@ CONFIG_NFS_FS=y
1511CONFIG_NFS_V3=y 1561CONFIG_NFS_V3=y
1512# CONFIG_NFS_V3_ACL is not set 1562# CONFIG_NFS_V3_ACL is not set
1513# CONFIG_NFS_V4 is not set 1563# CONFIG_NFS_V4 is not set
1514# CONFIG_NFSD is not set
1515CONFIG_ROOT_NFS=y 1564CONFIG_ROOT_NFS=y
1565# CONFIG_NFSD is not set
1516CONFIG_LOCKD=y 1566CONFIG_LOCKD=y
1517CONFIG_LOCKD_V4=y 1567CONFIG_LOCKD_V4=y
1518CONFIG_NFS_COMMON=y 1568CONFIG_NFS_COMMON=y
1519CONFIG_SUNRPC=y 1569CONFIG_SUNRPC=y
1520# CONFIG_SUNRPC_BIND34 is not set
1521# CONFIG_RPCSEC_GSS_KRB5 is not set 1570# CONFIG_RPCSEC_GSS_KRB5 is not set
1522# CONFIG_RPCSEC_GSS_SPKM3 is not set 1571# CONFIG_RPCSEC_GSS_SPKM3 is not set
1523# CONFIG_SMB_FS is not set 1572# CONFIG_SMB_FS is not set
@@ -1626,6 +1675,7 @@ CONFIG_DEBUG_KERNEL=y
1626# CONFIG_DEBUG_INFO is not set 1675# CONFIG_DEBUG_INFO is not set
1627# CONFIG_DEBUG_VM is not set 1676# CONFIG_DEBUG_VM is not set
1628# CONFIG_DEBUG_WRITECOUNT is not set 1677# CONFIG_DEBUG_WRITECOUNT is not set
1678# CONFIG_DEBUG_MEMORY_INIT is not set
1629# CONFIG_DEBUG_LIST is not set 1679# CONFIG_DEBUG_LIST is not set
1630# CONFIG_DEBUG_SG is not set 1680# CONFIG_DEBUG_SG is not set
1631CONFIG_FRAME_POINTER=y 1681CONFIG_FRAME_POINTER=y
@@ -1633,7 +1683,17 @@ CONFIG_FRAME_POINTER=y
1633# CONFIG_RCU_TORTURE_TEST is not set 1683# CONFIG_RCU_TORTURE_TEST is not set
1634# CONFIG_BACKTRACE_SELF_TEST is not set 1684# CONFIG_BACKTRACE_SELF_TEST is not set
1635# CONFIG_FAULT_INJECTION is not set 1685# CONFIG_FAULT_INJECTION is not set
1686# CONFIG_LATENCYTOP is not set
1687CONFIG_SYSCTL_SYSCALL_CHECK=y
1688CONFIG_HAVE_FTRACE=y
1689CONFIG_HAVE_DYNAMIC_FTRACE=y
1690# CONFIG_FTRACE is not set
1691# CONFIG_IRQSOFF_TRACER is not set
1692# CONFIG_SCHED_TRACER is not set
1693# CONFIG_CONTEXT_SWITCH_TRACER is not set
1636# CONFIG_SAMPLES is not set 1694# CONFIG_SAMPLES is not set
1695CONFIG_HAVE_ARCH_KGDB=y
1696# CONFIG_KGDB is not set
1637CONFIG_DEBUG_USER=y 1697CONFIG_DEBUG_USER=y
1638CONFIG_DEBUG_ERRORS=y 1698CONFIG_DEBUG_ERRORS=y
1639# CONFIG_DEBUG_STACK_USAGE is not set 1699# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1689,6 +1749,10 @@ CONFIG_CRYPTO=y
1689# CONFIG_CRYPTO_MD4 is not set 1749# CONFIG_CRYPTO_MD4 is not set
1690# CONFIG_CRYPTO_MD5 is not set 1750# CONFIG_CRYPTO_MD5 is not set
1691# CONFIG_CRYPTO_MICHAEL_MIC is not set 1751# CONFIG_CRYPTO_MICHAEL_MIC is not set
1752# CONFIG_CRYPTO_RMD128 is not set
1753# CONFIG_CRYPTO_RMD160 is not set
1754# CONFIG_CRYPTO_RMD256 is not set
1755# CONFIG_CRYPTO_RMD320 is not set
1692# CONFIG_CRYPTO_SHA1 is not set 1756# CONFIG_CRYPTO_SHA1 is not set
1693# CONFIG_CRYPTO_SHA256 is not set 1757# CONFIG_CRYPTO_SHA256 is not set
1694# CONFIG_CRYPTO_SHA512 is not set 1758# CONFIG_CRYPTO_SHA512 is not set
@@ -1729,6 +1793,7 @@ CONFIG_BITREVERSE=y
1729# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1793# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1730CONFIG_CRC_CCITT=m 1794CONFIG_CRC_CCITT=m
1731# CONFIG_CRC16 is not set 1795# CONFIG_CRC16 is not set
1796# CONFIG_CRC_T10DIF is not set
1732# CONFIG_CRC_ITU_T is not set 1797# CONFIG_CRC_ITU_T is not set
1733CONFIG_CRC32=y 1798CONFIG_CRC32=y
1734# CONFIG_CRC7 is not set 1799# CONFIG_CRC7 is not set
diff --git a/arch/arm/include/asm/bug.h b/arch/arm/include/asm/bug.h
index 7b62351f097d..4d88425a4169 100644
--- a/arch/arm/include/asm/bug.h
+++ b/arch/arm/include/asm/bug.h
@@ -12,7 +12,7 @@ extern void __bug(const char *file, int line) __attribute__((noreturn));
12#else 12#else
13 13
14/* this just causes an oops */ 14/* this just causes an oops */
15#define BUG() (*(int *)0 = 0) 15#define BUG() do { *(int *)0 = 0; } while (1)
16 16
17#endif 17#endif
18 18
diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
index 9073d9c6567e..de6c59f814a1 100644
--- a/arch/arm/include/asm/cacheflush.h
+++ b/arch/arm/include/asm/cacheflush.h
@@ -444,94 +444,4 @@ static inline void flush_ioremap_region(unsigned long phys, void __iomem *virt,
444 dmac_inv_range(start, start + size); 444 dmac_inv_range(start, start + size);
445} 445}
446 446
447#define __cacheid_present(val) (val != read_cpuid(CPUID_ID))
448#define __cacheid_type_v7(val) ((val & (7 << 29)) == (4 << 29))
449
450#define __cacheid_vivt_prev7(val) ((val & (15 << 25)) != (14 << 25))
451#define __cacheid_vipt_prev7(val) ((val & (15 << 25)) == (14 << 25))
452#define __cacheid_vipt_nonaliasing_prev7(val) ((val & (15 << 25 | 1 << 23)) == (14 << 25))
453#define __cacheid_vipt_aliasing_prev7(val) ((val & (15 << 25 | 1 << 23)) == (14 << 25 | 1 << 23))
454
455#define __cacheid_vivt(val) (__cacheid_type_v7(val) ? 0 : __cacheid_vivt_prev7(val))
456#define __cacheid_vipt(val) (__cacheid_type_v7(val) ? 1 : __cacheid_vipt_prev7(val))
457#define __cacheid_vipt_nonaliasing(val) (__cacheid_type_v7(val) ? 1 : __cacheid_vipt_nonaliasing_prev7(val))
458#define __cacheid_vipt_aliasing(val) (__cacheid_type_v7(val) ? 0 : __cacheid_vipt_aliasing_prev7(val))
459#define __cacheid_vivt_asid_tagged_instr(val) (__cacheid_type_v7(val) ? ((val & (3 << 14)) == (1 << 14)) : 0)
460
461#if defined(CONFIG_CPU_CACHE_VIVT) && !defined(CONFIG_CPU_CACHE_VIPT)
462/*
463 * VIVT caches only
464 */
465#define cache_is_vivt() 1
466#define cache_is_vipt() 0
467#define cache_is_vipt_nonaliasing() 0
468#define cache_is_vipt_aliasing() 0
469#define icache_is_vivt_asid_tagged() 0
470
471#elif !defined(CONFIG_CPU_CACHE_VIVT) && defined(CONFIG_CPU_CACHE_VIPT)
472/*
473 * VIPT caches only
474 */
475#define cache_is_vivt() 0
476#define cache_is_vipt() 1
477#define cache_is_vipt_nonaliasing() \
478 ({ \
479 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
480 __cacheid_vipt_nonaliasing(__val); \
481 })
482
483#define cache_is_vipt_aliasing() \
484 ({ \
485 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
486 __cacheid_vipt_aliasing(__val); \
487 })
488
489#define icache_is_vivt_asid_tagged() \
490 ({ \
491 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
492 __cacheid_vivt_asid_tagged_instr(__val); \
493 })
494
495#else
496/*
497 * VIVT or VIPT caches. Note that this is unreliable since ARM926
498 * and V6 CPUs satisfy the "(val & (15 << 25)) == (14 << 25)" test.
499 * There's no way to tell from the CacheType register what type (!)
500 * the cache is.
501 */
502#define cache_is_vivt() \
503 ({ \
504 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
505 (!__cacheid_present(__val)) || __cacheid_vivt(__val); \
506 })
507
508#define cache_is_vipt() \
509 ({ \
510 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
511 __cacheid_present(__val) && __cacheid_vipt(__val); \
512 })
513
514#define cache_is_vipt_nonaliasing() \
515 ({ \
516 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
517 __cacheid_present(__val) && \
518 __cacheid_vipt_nonaliasing(__val); \
519 })
520
521#define cache_is_vipt_aliasing() \
522 ({ \
523 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
524 __cacheid_present(__val) && \
525 __cacheid_vipt_aliasing(__val); \
526 })
527
528#define icache_is_vivt_asid_tagged() \
529 ({ \
530 unsigned int __val = read_cpuid(CPUID_CACHETYPE); \
531 __cacheid_present(__val) && \
532 __cacheid_vivt_asid_tagged_instr(__val); \
533 })
534
535#endif
536
537#endif 447#endif
diff --git a/arch/arm/include/asm/cachetype.h b/arch/arm/include/asm/cachetype.h
new file mode 100644
index 000000000000..d3a4c2cb9f2f
--- /dev/null
+++ b/arch/arm/include/asm/cachetype.h
@@ -0,0 +1,52 @@
1#ifndef __ASM_ARM_CACHETYPE_H
2#define __ASM_ARM_CACHETYPE_H
3
4#define CACHEID_VIVT (1 << 0)
5#define CACHEID_VIPT_NONALIASING (1 << 1)
6#define CACHEID_VIPT_ALIASING (1 << 2)
7#define CACHEID_VIPT (CACHEID_VIPT_ALIASING|CACHEID_VIPT_NONALIASING)
8#define CACHEID_ASID_TAGGED (1 << 3)
9
10extern unsigned int cacheid;
11
12#define cache_is_vivt() cacheid_is(CACHEID_VIVT)
13#define cache_is_vipt() cacheid_is(CACHEID_VIPT)
14#define cache_is_vipt_nonaliasing() cacheid_is(CACHEID_VIPT_NONALIASING)
15#define cache_is_vipt_aliasing() cacheid_is(CACHEID_VIPT_ALIASING)
16#define icache_is_vivt_asid_tagged() cacheid_is(CACHEID_ASID_TAGGED)
17
18/*
19 * __LINUX_ARM_ARCH__ is the minimum supported CPU architecture
20 * Mask out support which will never be present on newer CPUs.
21 * - v6+ is never VIVT
22 * - v7+ VIPT never aliases
23 */
24#if __LINUX_ARM_ARCH__ >= 7
25#define __CACHEID_ARCH_MIN (CACHEID_VIPT_NONALIASING | CACHEID_ASID_TAGGED)
26#elif __LINUX_ARM_ARCH__ >= 6
27#define __CACHEID_ARCH_MIN (~CACHEID_VIVT)
28#else
29#define __CACHEID_ARCH_MIN (~0)
30#endif
31
32/*
33 * Mask out support which isn't configured
34 */
35#if defined(CONFIG_CPU_CACHE_VIVT) && !defined(CONFIG_CPU_CACHE_VIPT)
36#define __CACHEID_ALWAYS (CACHEID_VIVT)
37#define __CACHEID_NEVER (~CACHEID_VIVT)
38#elif !defined(CONFIG_CPU_CACHE_VIVT) && defined(CONFIG_CPU_CACHE_VIPT)
39#define __CACHEID_ALWAYS (0)
40#define __CACHEID_NEVER (CACHEID_VIVT)
41#else
42#define __CACHEID_ALWAYS (0)
43#define __CACHEID_NEVER (0)
44#endif
45
46static inline unsigned int __attribute__((pure)) cacheid_is(unsigned int mask)
47{
48 return (__CACHEID_ALWAYS & mask) |
49 (~__CACHEID_NEVER & __CACHEID_ARCH_MIN & mask & cacheid);
50}
51
52#endif
diff --git a/arch/arm/include/asm/cputype.h b/arch/arm/include/asm/cputype.h
new file mode 100644
index 000000000000..7b9d27e749b8
--- /dev/null
+++ b/arch/arm/include/asm/cputype.h
@@ -0,0 +1,64 @@
1#ifndef __ASM_ARM_CPUTYPE_H
2#define __ASM_ARM_CPUTYPE_H
3
4#include <linux/stringify.h>
5
6#define CPUID_ID 0
7#define CPUID_CACHETYPE 1
8#define CPUID_TCM 2
9#define CPUID_TLBTYPE 3
10
11#ifdef CONFIG_CPU_CP15
12#define read_cpuid(reg) \
13 ({ \
14 unsigned int __val; \
15 asm("mrc p15, 0, %0, c0, c0, " __stringify(reg) \
16 : "=r" (__val) \
17 : \
18 : "cc"); \
19 __val; \
20 })
21#else
22extern unsigned int processor_id;
23#define read_cpuid(reg) (processor_id)
24#endif
25
26/*
27 * The CPU ID never changes at run time, so we might as well tell the
28 * compiler that it's constant. Use this function to read the CPU ID
29 * rather than directly reading processor_id or read_cpuid() directly.
30 */
31static inline unsigned int __attribute_const__ read_cpuid_id(void)
32{
33 return read_cpuid(CPUID_ID);
34}
35
36static inline unsigned int __attribute_const__ read_cpuid_cachetype(void)
37{
38 return read_cpuid(CPUID_CACHETYPE);
39}
40
41/*
42 * Intel's XScale3 core supports some v6 features (supersections, L2)
43 * but advertises itself as v5 as it does not support the v6 ISA. For
44 * this reason, we need a way to explicitly test for this type of CPU.
45 */
46#ifndef CONFIG_CPU_XSC3
47#define cpu_is_xsc3() 0
48#else
49static inline int cpu_is_xsc3(void)
50{
51 if ((read_cpuid_id() & 0xffffe000) == 0x69056000)
52 return 1;
53
54 return 0;
55}
56#endif
57
58#if !defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_CPU_XSC3)
59#define cpu_is_xscale() 0
60#else
61#define cpu_is_xscale() 1
62#endif
63
64#endif
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h
index 7b95d2058395..1cb8602dd9d5 100644
--- a/arch/arm/include/asm/dma-mapping.h
+++ b/arch/arm/include/asm/dma-mapping.h
@@ -104,15 +104,14 @@ static inline int dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
104 * Dummy noncoherent implementation. We don't provide a dma_cache_sync 104 * Dummy noncoherent implementation. We don't provide a dma_cache_sync
105 * function so drivers using this API are highlighted with build warnings. 105 * function so drivers using this API are highlighted with build warnings.
106 */ 106 */
107static inline void * 107static inline void *dma_alloc_noncoherent(struct device *dev, size_t size,
108dma_alloc_noncoherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp) 108 dma_addr_t *handle, gfp_t gfp)
109{ 109{
110 return NULL; 110 return NULL;
111} 111}
112 112
113static inline void 113static inline void dma_free_noncoherent(struct device *dev, size_t size,
114dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr, 114 void *cpu_addr, dma_addr_t handle)
115 dma_addr_t handle)
116{ 115{
117} 116}
118 117
@@ -127,8 +126,7 @@ dma_free_noncoherent(struct device *dev, size_t size, void *cpu_addr,
127 * return the CPU-viewed address, and sets @handle to be the 126 * return the CPU-viewed address, and sets @handle to be the
128 * device-viewed address. 127 * device-viewed address.
129 */ 128 */
130extern void * 129extern void *dma_alloc_coherent(struct device *, size_t, dma_addr_t *, gfp_t);
131dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp);
132 130
133/** 131/**
134 * dma_free_coherent - free memory allocated by dma_alloc_coherent 132 * dma_free_coherent - free memory allocated by dma_alloc_coherent
@@ -143,9 +141,7 @@ dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gf
143 * References to memory and mappings associated with cpu_addr/handle 141 * References to memory and mappings associated with cpu_addr/handle
144 * during and after this call executing are illegal. 142 * during and after this call executing are illegal.
145 */ 143 */
146extern void 144extern void dma_free_coherent(struct device *, size_t, void *, dma_addr_t);
147dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
148 dma_addr_t handle);
149 145
150/** 146/**
151 * dma_mmap_coherent - map a coherent DMA allocation into user space 147 * dma_mmap_coherent - map a coherent DMA allocation into user space
@@ -159,8 +155,8 @@ dma_free_coherent(struct device *dev, size_t size, void *cpu_addr,
159 * into user space. The coherent DMA buffer must not be freed by the 155 * into user space. The coherent DMA buffer must not be freed by the
160 * driver until the user space mapping has been released. 156 * driver until the user space mapping has been released.
161 */ 157 */
162int dma_mmap_coherent(struct device *dev, struct vm_area_struct *vma, 158int dma_mmap_coherent(struct device *, struct vm_area_struct *,
163 void *cpu_addr, dma_addr_t handle, size_t size); 159 void *, dma_addr_t, size_t);
164 160
165 161
166/** 162/**
@@ -174,14 +170,94 @@ int dma_mmap_coherent(struct device *dev, struct vm_area_struct *vma,
174 * return the CPU-viewed address, and sets @handle to be the 170 * return the CPU-viewed address, and sets @handle to be the
175 * device-viewed address. 171 * device-viewed address.
176 */ 172 */
177extern void * 173extern void *dma_alloc_writecombine(struct device *, size_t, dma_addr_t *,
178dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp); 174 gfp_t);
179 175
180#define dma_free_writecombine(dev,size,cpu_addr,handle) \ 176#define dma_free_writecombine(dev,size,cpu_addr,handle) \
181 dma_free_coherent(dev,size,cpu_addr,handle) 177 dma_free_coherent(dev,size,cpu_addr,handle)
182 178
183int dma_mmap_writecombine(struct device *dev, struct vm_area_struct *vma, 179int dma_mmap_writecombine(struct device *, struct vm_area_struct *,
184 void *cpu_addr, dma_addr_t handle, size_t size); 180 void *, dma_addr_t, size_t);
181
182
183#ifdef CONFIG_DMABOUNCE
184/*
185 * For SA-1111, IXP425, and ADI systems the dma-mapping functions are "magic"
186 * and utilize bounce buffers as needed to work around limited DMA windows.
187 *
188 * On the SA-1111, a bug limits DMA to only certain regions of RAM.
189 * On the IXP425, the PCI inbound window is 64MB (256MB total RAM)
190 * On some ADI engineering systems, PCI inbound window is 32MB (12MB total RAM)
191 *
192 * The following are helper functions used by the dmabounce subystem
193 *
194 */
195
196/**
197 * dmabounce_register_dev
198 *
199 * @dev: valid struct device pointer
200 * @small_buf_size: size of buffers to use with small buffer pool
201 * @large_buf_size: size of buffers to use with large buffer pool (can be 0)
202 *
203 * This function should be called by low-level platform code to register
204 * a device as requireing DMA buffer bouncing. The function will allocate
205 * appropriate DMA pools for the device.
206 *
207 */
208extern int dmabounce_register_dev(struct device *, unsigned long,
209 unsigned long);
210
211/**
212 * dmabounce_unregister_dev
213 *
214 * @dev: valid struct device pointer
215 *
216 * This function should be called by low-level platform code when device
217 * that was previously registered with dmabounce_register_dev is removed
218 * from the system.
219 *
220 */
221extern void dmabounce_unregister_dev(struct device *);
222
223/**
224 * dma_needs_bounce
225 *
226 * @dev: valid struct device pointer
227 * @dma_handle: dma_handle of unbounced buffer
228 * @size: size of region being mapped
229 *
230 * Platforms that utilize the dmabounce mechanism must implement
231 * this function.
232 *
233 * The dmabounce routines call this function whenever a dma-mapping
234 * is requested to determine whether a given buffer needs to be bounced
235 * or not. The function must return 0 if the buffer is OK for
236 * DMA access and 1 if the buffer needs to be bounced.
237 *
238 */
239extern int dma_needs_bounce(struct device*, dma_addr_t, size_t);
240
241/*
242 * The DMA API, implemented by dmabounce.c. See below for descriptions.
243 */
244extern dma_addr_t dma_map_single(struct device *, void *, size_t,
245 enum dma_data_direction);
246extern dma_addr_t dma_map_page(struct device *, struct page *,
247 unsigned long, size_t, enum dma_data_direction);
248extern void dma_unmap_single(struct device *, dma_addr_t, size_t,
249 enum dma_data_direction);
250
251/*
252 * Private functions
253 */
254int dmabounce_sync_for_cpu(struct device *, dma_addr_t, unsigned long,
255 size_t, enum dma_data_direction);
256int dmabounce_sync_for_device(struct device *, dma_addr_t, unsigned long,
257 size_t, enum dma_data_direction);
258#else
259#define dmabounce_sync_for_cpu(dev,dma,off,sz,dir) (1)
260#define dmabounce_sync_for_device(dev,dma,off,sz,dir) (1)
185 261
186 262
187/** 263/**
@@ -198,19 +274,16 @@ int dma_mmap_writecombine(struct device *dev, struct vm_area_struct *vma,
198 * can regain ownership by calling dma_unmap_single() or 274 * can regain ownership by calling dma_unmap_single() or
199 * dma_sync_single_for_cpu(). 275 * dma_sync_single_for_cpu().
200 */ 276 */
201#ifndef CONFIG_DMABOUNCE 277static inline dma_addr_t dma_map_single(struct device *dev, void *cpu_addr,
202static inline dma_addr_t 278 size_t size, enum dma_data_direction dir)
203dma_map_single(struct device *dev, void *cpu_addr, size_t size,
204 enum dma_data_direction dir)
205{ 279{
280 BUG_ON(!valid_dma_direction(dir));
281
206 if (!arch_is_coherent()) 282 if (!arch_is_coherent())
207 dma_cache_maint(cpu_addr, size, dir); 283 dma_cache_maint(cpu_addr, size, dir);
208 284
209 return virt_to_dma(dev, cpu_addr); 285 return virt_to_dma(dev, cpu_addr);
210} 286}
211#else
212extern dma_addr_t dma_map_single(struct device *,void *, size_t, enum dma_data_direction);
213#endif
214 287
215/** 288/**
216 * dma_map_page - map a portion of a page for streaming DMA 289 * dma_map_page - map a portion of a page for streaming DMA
@@ -224,23 +297,25 @@ extern dma_addr_t dma_map_single(struct device *,void *, size_t, enum dma_data_d
224 * or written back. 297 * or written back.
225 * 298 *
226 * The device owns this memory once this call has completed. The CPU 299 * The device owns this memory once this call has completed. The CPU
227 * can regain ownership by calling dma_unmap_page() or 300 * can regain ownership by calling dma_unmap_page().
228 * dma_sync_single_for_cpu().
229 */ 301 */
230static inline dma_addr_t 302static inline dma_addr_t dma_map_page(struct device *dev, struct page *page,
231dma_map_page(struct device *dev, struct page *page, 303 unsigned long offset, size_t size, enum dma_data_direction dir)
232 unsigned long offset, size_t size,
233 enum dma_data_direction dir)
234{ 304{
235 return dma_map_single(dev, page_address(page) + offset, size, dir); 305 BUG_ON(!valid_dma_direction(dir));
306
307 if (!arch_is_coherent())
308 dma_cache_maint(page_address(page) + offset, size, dir);
309
310 return page_to_dma(dev, page) + offset;
236} 311}
237 312
238/** 313/**
239 * dma_unmap_single - unmap a single buffer previously mapped 314 * dma_unmap_single - unmap a single buffer previously mapped
240 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices 315 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
241 * @handle: DMA address of buffer 316 * @handle: DMA address of buffer
242 * @size: size of buffer to map 317 * @size: size of buffer (same as passed to dma_map_single)
243 * @dir: DMA transfer direction 318 * @dir: DMA transfer direction (same as passed to dma_map_single)
244 * 319 *
245 * Unmap a single streaming mode DMA translation. The handle and size 320 * Unmap a single streaming mode DMA translation. The handle and size
246 * must match what was provided in the previous dma_map_single() call. 321 * must match what was provided in the previous dma_map_single() call.
@@ -249,108 +324,34 @@ dma_map_page(struct device *dev, struct page *page,
249 * After this call, reads by the CPU to the buffer are guaranteed to see 324 * After this call, reads by the CPU to the buffer are guaranteed to see
250 * whatever the device wrote there. 325 * whatever the device wrote there.
251 */ 326 */
252#ifndef CONFIG_DMABOUNCE 327static inline void dma_unmap_single(struct device *dev, dma_addr_t handle,
253static inline void 328 size_t size, enum dma_data_direction dir)
254dma_unmap_single(struct device *dev, dma_addr_t handle, size_t size,
255 enum dma_data_direction dir)
256{ 329{
257 /* nothing to do */ 330 /* nothing to do */
258} 331}
259#else 332#endif /* CONFIG_DMABOUNCE */
260extern void dma_unmap_single(struct device *, dma_addr_t, size_t, enum dma_data_direction);
261#endif
262 333
263/** 334/**
264 * dma_unmap_page - unmap a buffer previously mapped through dma_map_page() 335 * dma_unmap_page - unmap a buffer previously mapped through dma_map_page()
265 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices 336 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
266 * @handle: DMA address of buffer 337 * @handle: DMA address of buffer
267 * @size: size of buffer to map 338 * @size: size of buffer (same as passed to dma_map_page)
268 * @dir: DMA transfer direction 339 * @dir: DMA transfer direction (same as passed to dma_map_page)
269 * 340 *
270 * Unmap a single streaming mode DMA translation. The handle and size 341 * Unmap a page streaming mode DMA translation. The handle and size
271 * must match what was provided in the previous dma_map_single() call. 342 * must match what was provided in the previous dma_map_page() call.
272 * All other usages are undefined. 343 * All other usages are undefined.
273 * 344 *
274 * After this call, reads by the CPU to the buffer are guaranteed to see 345 * After this call, reads by the CPU to the buffer are guaranteed to see
275 * whatever the device wrote there. 346 * whatever the device wrote there.
276 */ 347 */
277static inline void 348static inline void dma_unmap_page(struct device *dev, dma_addr_t handle,
278dma_unmap_page(struct device *dev, dma_addr_t handle, size_t size, 349 size_t size, enum dma_data_direction dir)
279 enum dma_data_direction dir)
280{ 350{
281 dma_unmap_single(dev, handle, size, dir); 351 dma_unmap_single(dev, handle, size, dir);
282} 352}
283 353
284/** 354/**
285 * dma_map_sg - map a set of SG buffers for streaming mode DMA
286 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
287 * @sg: list of buffers
288 * @nents: number of buffers to map
289 * @dir: DMA transfer direction
290 *
291 * Map a set of buffers described by scatterlist in streaming
292 * mode for DMA. This is the scatter-gather version of the
293 * above dma_map_single interface. Here the scatter gather list
294 * elements are each tagged with the appropriate dma address
295 * and length. They are obtained via sg_dma_{address,length}(SG).
296 *
297 * NOTE: An implementation may be able to use a smaller number of
298 * DMA address/length pairs than there are SG table elements.
299 * (for example via virtual mapping capabilities)
300 * The routine returns the number of addr/length pairs actually
301 * used, at most nents.
302 *
303 * Device ownership issues as mentioned above for dma_map_single are
304 * the same here.
305 */
306#ifndef CONFIG_DMABOUNCE
307static inline int
308dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
309 enum dma_data_direction dir)
310{
311 int i;
312
313 for (i = 0; i < nents; i++, sg++) {
314 char *virt;
315
316 sg->dma_address = page_to_dma(dev, sg_page(sg)) + sg->offset;
317 virt = sg_virt(sg);
318
319 if (!arch_is_coherent())
320 dma_cache_maint(virt, sg->length, dir);
321 }
322
323 return nents;
324}
325#else
326extern int dma_map_sg(struct device *, struct scatterlist *, int, enum dma_data_direction);
327#endif
328
329/**
330 * dma_unmap_sg - unmap a set of SG buffers mapped by dma_map_sg
331 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
332 * @sg: list of buffers
333 * @nents: number of buffers to map
334 * @dir: DMA transfer direction
335 *
336 * Unmap a set of streaming mode DMA translations.
337 * Again, CPU read rules concerning calls here are the same as for
338 * dma_unmap_single() above.
339 */
340#ifndef CONFIG_DMABOUNCE
341static inline void
342dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
343 enum dma_data_direction dir)
344{
345
346 /* nothing to do */
347}
348#else
349extern void dma_unmap_sg(struct device *, struct scatterlist *, int, enum dma_data_direction);
350#endif
351
352
353/**
354 * dma_sync_single_range_for_cpu 355 * dma_sync_single_range_for_cpu
355 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices 356 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
356 * @handle: DMA address of buffer 357 * @handle: DMA address of buffer
@@ -368,145 +369,52 @@ extern void dma_unmap_sg(struct device *, struct scatterlist *, int, enum dma_da
368 * must first the perform a dma_sync_for_device, and then the 369 * must first the perform a dma_sync_for_device, and then the
369 * device again owns the buffer. 370 * device again owns the buffer.
370 */ 371 */
371#ifndef CONFIG_DMABOUNCE 372static inline void dma_sync_single_range_for_cpu(struct device *dev,
372static inline void 373 dma_addr_t handle, unsigned long offset, size_t size,
373dma_sync_single_range_for_cpu(struct device *dev, dma_addr_t handle, 374 enum dma_data_direction dir)
374 unsigned long offset, size_t size,
375 enum dma_data_direction dir)
376{ 375{
377 if (!arch_is_coherent()) 376 BUG_ON(!valid_dma_direction(dir));
378 dma_cache_maint(dma_to_virt(dev, handle) + offset, size, dir); 377
378 dmabounce_sync_for_cpu(dev, handle, offset, size, dir);
379} 379}
380 380
381static inline void 381static inline void dma_sync_single_range_for_device(struct device *dev,
382dma_sync_single_range_for_device(struct device *dev, dma_addr_t handle, 382 dma_addr_t handle, unsigned long offset, size_t size,
383 unsigned long offset, size_t size, 383 enum dma_data_direction dir)
384 enum dma_data_direction dir)
385{ 384{
385 BUG_ON(!valid_dma_direction(dir));
386
387 if (!dmabounce_sync_for_device(dev, handle, offset, size, dir))
388 return;
389
386 if (!arch_is_coherent()) 390 if (!arch_is_coherent())
387 dma_cache_maint(dma_to_virt(dev, handle) + offset, size, dir); 391 dma_cache_maint(dma_to_virt(dev, handle) + offset, size, dir);
388} 392}
389#else
390extern void dma_sync_single_range_for_cpu(struct device *, dma_addr_t, unsigned long, size_t, enum dma_data_direction);
391extern void dma_sync_single_range_for_device(struct device *, dma_addr_t, unsigned long, size_t, enum dma_data_direction);
392#endif
393 393
394static inline void 394static inline void dma_sync_single_for_cpu(struct device *dev,
395dma_sync_single_for_cpu(struct device *dev, dma_addr_t handle, size_t size, 395 dma_addr_t handle, size_t size, enum dma_data_direction dir)
396 enum dma_data_direction dir)
397{ 396{
398 dma_sync_single_range_for_cpu(dev, handle, 0, size, dir); 397 dma_sync_single_range_for_cpu(dev, handle, 0, size, dir);
399} 398}
400 399
401static inline void 400static inline void dma_sync_single_for_device(struct device *dev,
402dma_sync_single_for_device(struct device *dev, dma_addr_t handle, size_t size, 401 dma_addr_t handle, size_t size, enum dma_data_direction dir)
403 enum dma_data_direction dir)
404{ 402{
405 dma_sync_single_range_for_device(dev, handle, 0, size, dir); 403 dma_sync_single_range_for_device(dev, handle, 0, size, dir);
406} 404}
407 405
408
409/**
410 * dma_sync_sg_for_cpu
411 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
412 * @sg: list of buffers
413 * @nents: number of buffers to map
414 * @dir: DMA transfer direction
415 *
416 * Make physical memory consistent for a set of streaming
417 * mode DMA translations after a transfer.
418 *
419 * The same as dma_sync_single_for_* but for a scatter-gather list,
420 * same rules and usage.
421 */
422#ifndef CONFIG_DMABOUNCE
423static inline void
424dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nents,
425 enum dma_data_direction dir)
426{
427 int i;
428
429 for (i = 0; i < nents; i++, sg++) {
430 char *virt = sg_virt(sg);
431 if (!arch_is_coherent())
432 dma_cache_maint(virt, sg->length, dir);
433 }
434}
435
436static inline void
437dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nents,
438 enum dma_data_direction dir)
439{
440 int i;
441
442 for (i = 0; i < nents; i++, sg++) {
443 char *virt = sg_virt(sg);
444 if (!arch_is_coherent())
445 dma_cache_maint(virt, sg->length, dir);
446 }
447}
448#else
449extern void dma_sync_sg_for_cpu(struct device*, struct scatterlist*, int, enum dma_data_direction);
450extern void dma_sync_sg_for_device(struct device*, struct scatterlist*, int, enum dma_data_direction);
451#endif
452
453#ifdef CONFIG_DMABOUNCE
454/* 406/*
455 * For SA-1111, IXP425, and ADI systems the dma-mapping functions are "magic" 407 * The scatter list versions of the above methods.
456 * and utilize bounce buffers as needed to work around limited DMA windows.
457 *
458 * On the SA-1111, a bug limits DMA to only certain regions of RAM.
459 * On the IXP425, the PCI inbound window is 64MB (256MB total RAM)
460 * On some ADI engineering systems, PCI inbound window is 32MB (12MB total RAM)
461 *
462 * The following are helper functions used by the dmabounce subystem
463 *
464 */
465
466/**
467 * dmabounce_register_dev
468 *
469 * @dev: valid struct device pointer
470 * @small_buf_size: size of buffers to use with small buffer pool
471 * @large_buf_size: size of buffers to use with large buffer pool (can be 0)
472 *
473 * This function should be called by low-level platform code to register
474 * a device as requireing DMA buffer bouncing. The function will allocate
475 * appropriate DMA pools for the device.
476 *
477 */
478extern int dmabounce_register_dev(struct device *, unsigned long, unsigned long);
479
480/**
481 * dmabounce_unregister_dev
482 *
483 * @dev: valid struct device pointer
484 *
485 * This function should be called by low-level platform code when device
486 * that was previously registered with dmabounce_register_dev is removed
487 * from the system.
488 *
489 */ 408 */
490extern void dmabounce_unregister_dev(struct device *); 409extern int dma_map_sg(struct device *, struct scatterlist *, int,
410 enum dma_data_direction);
411extern void dma_unmap_sg(struct device *, struct scatterlist *, int,
412 enum dma_data_direction);
413extern void dma_sync_sg_for_cpu(struct device *, struct scatterlist *, int,
414 enum dma_data_direction);
415extern void dma_sync_sg_for_device(struct device *, struct scatterlist *, int,
416 enum dma_data_direction);
491 417
492/**
493 * dma_needs_bounce
494 *
495 * @dev: valid struct device pointer
496 * @dma_handle: dma_handle of unbounced buffer
497 * @size: size of region being mapped
498 *
499 * Platforms that utilize the dmabounce mechanism must implement
500 * this function.
501 *
502 * The dmabounce routines call this function whenever a dma-mapping
503 * is requested to determine whether a given buffer needs to be bounced
504 * or not. The function must return 0 if the buffer is OK for
505 * DMA access and 1 if the buffer needs to be bounced.
506 *
507 */
508extern int dma_needs_bounce(struct device*, dma_addr_t, size_t);
509#endif /* CONFIG_DMABOUNCE */
510 418
511#endif /* __KERNEL__ */ 419#endif /* __KERNEL__ */
512#endif 420#endif
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
index 4ca751627489..5be016980c19 100644
--- a/arch/arm/include/asm/elf.h
+++ b/arch/arm/include/asm/elf.h
@@ -3,7 +3,6 @@
3 3
4#include <asm/hwcap.h> 4#include <asm/hwcap.h>
5 5
6#ifndef __ASSEMBLY__
7/* 6/*
8 * ELF register definitions.. 7 * ELF register definitions..
9 */ 8 */
@@ -17,12 +16,34 @@ typedef unsigned long elf_freg_t[3];
17typedef elf_greg_t elf_gregset_t[ELF_NGREG]; 16typedef elf_greg_t elf_gregset_t[ELF_NGREG];
18 17
19typedef struct user_fp elf_fpregset_t; 18typedef struct user_fp elf_fpregset_t;
20#endif
21 19
22#define EM_ARM 40 20#define EM_ARM 40
23#define EF_ARM_APCS26 0x08 21
24#define EF_ARM_SOFT_FLOAT 0x200 22#define EF_ARM_EABI_MASK 0xff000000
25#define EF_ARM_EABI_MASK 0xFF000000 23#define EF_ARM_EABI_UNKNOWN 0x00000000
24#define EF_ARM_EABI_VER1 0x01000000
25#define EF_ARM_EABI_VER2 0x02000000
26#define EF_ARM_EABI_VER3 0x03000000
27#define EF_ARM_EABI_VER4 0x04000000
28#define EF_ARM_EABI_VER5 0x05000000
29
30#define EF_ARM_BE8 0x00800000 /* ABI 4,5 */
31#define EF_ARM_LE8 0x00400000 /* ABI 4,5 */
32#define EF_ARM_MAVERICK_FLOAT 0x00000800 /* ABI 0 */
33#define EF_ARM_VFP_FLOAT 0x00000400 /* ABI 0 */
34#define EF_ARM_SOFT_FLOAT 0x00000200 /* ABI 0 */
35#define EF_ARM_OLD_ABI 0x00000100 /* ABI 0 */
36#define EF_ARM_NEW_ABI 0x00000080 /* ABI 0 */
37#define EF_ARM_ALIGN8 0x00000040 /* ABI 0 */
38#define EF_ARM_PIC 0x00000020 /* ABI 0 */
39#define EF_ARM_MAPSYMSFIRST 0x00000010 /* ABI 2 */
40#define EF_ARM_APCS_FLOAT 0x00000010 /* ABI 0, floats in fp regs */
41#define EF_ARM_DYNSYMSUSESEGIDX 0x00000008 /* ABI 2 */
42#define EF_ARM_APCS_26 0x00000008 /* ABI 0 */
43#define EF_ARM_SYMSARESORTED 0x00000004 /* ABI 1,2 */
44#define EF_ARM_INTERWORK 0x00000004 /* ABI 0 */
45#define EF_ARM_HASENTRY 0x00000002 /* All */
46#define EF_ARM_RELEXEC 0x00000001 /* All */
26 47
27#define R_ARM_NONE 0 48#define R_ARM_NONE 0
28#define R_ARM_PC24 1 49#define R_ARM_PC24 1
@@ -41,7 +62,6 @@ typedef struct user_fp elf_fpregset_t;
41#endif 62#endif
42#define ELF_ARCH EM_ARM 63#define ELF_ARCH EM_ARM
43 64
44#ifndef __ASSEMBLY__
45/* 65/*
46 * This yields a string that ld.so will use to load implementation 66 * This yields a string that ld.so will use to load implementation
47 * specific libraries for optimization. This is more specific in 67 * specific libraries for optimization. This is more specific in
@@ -59,25 +79,17 @@ typedef struct user_fp elf_fpregset_t;
59#define ELF_PLATFORM (elf_platform) 79#define ELF_PLATFORM (elf_platform)
60 80
61extern char elf_platform[]; 81extern char elf_platform[];
62#endif
63 82
64/* 83struct elf32_hdr;
65 * This is used to ensure we don't load something for the wrong architecture.
66 */
67#define elf_check_arch(x) ((x)->e_machine == EM_ARM && ELF_PROC_OK(x))
68 84
69/* 85/*
70 * 32-bit code is always OK. Some cpus can do 26-bit, some can't. 86 * This is used to ensure we don't load something for the wrong architecture.
71 */ 87 */
72#define ELF_PROC_OK(x) (ELF_THUMB_OK(x) && ELF_26BIT_OK(x)) 88extern int elf_check_arch(const struct elf32_hdr *);
73 89#define elf_check_arch elf_check_arch
74#define ELF_THUMB_OK(x) \
75 ((elf_hwcap & HWCAP_THUMB && ((x)->e_entry & 1) == 1) || \
76 ((x)->e_entry & 3) == 0)
77 90
78#define ELF_26BIT_OK(x) \ 91extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int);
79 ((elf_hwcap & HWCAP_26BIT && (x)->e_flags & EF_ARM_APCS26) || \ 92#define elf_read_implies_exec(ex,stk) arm_elf_read_implies_exec(&(ex), stk)
80 ((x)->e_flags & EF_ARM_APCS26) == 0)
81 93
82#define USE_ELF_CORE_DUMP 94#define USE_ELF_CORE_DUMP
83#define ELF_EXEC_PAGESIZE 4096 95#define ELF_EXEC_PAGESIZE 4096
@@ -94,23 +106,7 @@ extern char elf_platform[];
94 have no such handler. */ 106 have no such handler. */
95#define ELF_PLAT_INIT(_r, load_addr) (_r)->ARM_r0 = 0 107#define ELF_PLAT_INIT(_r, load_addr) (_r)->ARM_r0 = 0
96 108
97/* 109extern void elf_set_personality(const struct elf32_hdr *);
98 * Since the FPA coprocessor uses CP1 and CP2, and iWMMXt uses CP0 110#define SET_PERSONALITY(ex, ibcs2) elf_set_personality(&(ex))
99 * and CP1, we only enable access to the iWMMXt coprocessor if the
100 * binary is EABI or softfloat (and thus, guaranteed not to use
101 * FPA instructions.)
102 */
103#define SET_PERSONALITY(ex, ibcs2) \
104 do { \
105 if ((ex).e_flags & EF_ARM_APCS26) { \
106 set_personality(PER_LINUX); \
107 } else { \
108 set_personality(PER_LINUX_32BIT); \
109 if (elf_hwcap & HWCAP_IWMMXT && (ex).e_flags & (EF_ARM_EABI_MASK | EF_ARM_SOFT_FLOAT)) \
110 set_thread_flag(TIF_USING_IWMMXT); \
111 else \
112 clear_thread_flag(TIF_USING_IWMMXT); \
113 } \
114 } while (0)
115 111
116#endif 112#endif
diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
index 6a332a9f099c..9ee743b95de8 100644
--- a/arch/arm/include/asm/futex.h
+++ b/arch/arm/include/asm/futex.h
@@ -1,6 +1,124 @@
1#ifndef _ASM_FUTEX_H 1#ifndef _ASM_ARM_FUTEX_H
2#define _ASM_FUTEX_H 2#define _ASM_ARM_FUTEX_H
3
4#ifdef __KERNEL__
5
6#ifdef CONFIG_SMP
3 7
4#include <asm-generic/futex.h> 8#include <asm-generic/futex.h>
5 9
6#endif 10#else /* !SMP, we can work around lack of atomic ops by disabling preemption */
11
12#include <linux/futex.h>
13#include <linux/preempt.h>
14#include <linux/uaccess.h>
15#include <asm/errno.h>
16
17#define __futex_atomic_op(insn, ret, oldval, uaddr, oparg) \
18 __asm__ __volatile__( \
19 "1: ldrt %1, [%2]\n" \
20 " " insn "\n" \
21 "2: strt %0, [%2]\n" \
22 " mov %0, #0\n" \
23 "3:\n" \
24 " .section __ex_table,\"a\"\n" \
25 " .align 3\n" \
26 " .long 1b, 4f, 2b, 4f\n" \
27 " .previous\n" \
28 " .section .fixup,\"ax\"\n" \
29 "4: mov %0, %4\n" \
30 " b 3b\n" \
31 " .previous" \
32 : "=&r" (ret), "=&r" (oldval) \
33 : "r" (uaddr), "r" (oparg), "Ir" (-EFAULT) \
34 : "cc", "memory")
35
36static inline int
37futex_atomic_op_inuser (int encoded_op, int __user *uaddr)
38{
39 int op = (encoded_op >> 28) & 7;
40 int cmp = (encoded_op >> 24) & 15;
41 int oparg = (encoded_op << 8) >> 20;
42 int cmparg = (encoded_op << 20) >> 20;
43 int oldval = 0, ret;
44
45 if (encoded_op & (FUTEX_OP_OPARG_SHIFT << 28))
46 oparg = 1 << oparg;
47
48 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
49 return -EFAULT;
50
51 pagefault_disable(); /* implies preempt_disable() */
52
53 switch (op) {
54 case FUTEX_OP_SET:
55 __futex_atomic_op("mov %0, %3", ret, oldval, uaddr, oparg);
56 break;
57 case FUTEX_OP_ADD:
58 __futex_atomic_op("add %0, %1, %3", ret, oldval, uaddr, oparg);
59 break;
60 case FUTEX_OP_OR:
61 __futex_atomic_op("orr %0, %1, %3", ret, oldval, uaddr, oparg);
62 break;
63 case FUTEX_OP_ANDN:
64 __futex_atomic_op("and %0, %1, %3", ret, oldval, uaddr, ~oparg);
65 break;
66 case FUTEX_OP_XOR:
67 __futex_atomic_op("eor %0, %1, %3", ret, oldval, uaddr, oparg);
68 break;
69 default:
70 ret = -ENOSYS;
71 }
72
73 pagefault_enable(); /* subsumes preempt_enable() */
74
75 if (!ret) {
76 switch (cmp) {
77 case FUTEX_OP_CMP_EQ: ret = (oldval == cmparg); break;
78 case FUTEX_OP_CMP_NE: ret = (oldval != cmparg); break;
79 case FUTEX_OP_CMP_LT: ret = (oldval < cmparg); break;
80 case FUTEX_OP_CMP_GE: ret = (oldval >= cmparg); break;
81 case FUTEX_OP_CMP_LE: ret = (oldval <= cmparg); break;
82 case FUTEX_OP_CMP_GT: ret = (oldval > cmparg); break;
83 default: ret = -ENOSYS;
84 }
85 }
86 return ret;
87}
88
89static inline int
90futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
91{
92 int val;
93
94 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(int)))
95 return -EFAULT;
96
97 pagefault_disable(); /* implies preempt_disable() */
98
99 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
100 "1: ldrt %0, [%3]\n"
101 " teq %0, %1\n"
102 "2: streqt %2, [%3]\n"
103 "3:\n"
104 " .section __ex_table,\"a\"\n"
105 " .align 3\n"
106 " .long 1b, 4f, 2b, 4f\n"
107 " .previous\n"
108 " .section .fixup,\"ax\"\n"
109 "4: mov %0, %4\n"
110 " b 3b\n"
111 " .previous"
112 : "=&r" (val)
113 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT)
114 : "cc", "memory");
115
116 pagefault_enable(); /* subsumes preempt_enable() */
117
118 return val;
119}
120
121#endif /* !SMP */
122
123#endif /* __KERNEL__ */
124#endif /* _ASM_ARM_FUTEX_H */
diff --git a/arch/arm/include/asm/io.h b/arch/arm/include/asm/io.h
index 94a95d7fafd6..a8094451be57 100644
--- a/arch/arm/include/asm/io.h
+++ b/arch/arm/include/asm/io.h
@@ -60,7 +60,7 @@ extern void __raw_readsl(const void __iomem *addr, void *data, int longlen);
60#define MT_DEVICE 0 60#define MT_DEVICE 0
61#define MT_DEVICE_NONSHARED 1 61#define MT_DEVICE_NONSHARED 1
62#define MT_DEVICE_CACHED 2 62#define MT_DEVICE_CACHED 2
63#define MT_DEVICE_IXP2000 3 63#define MT_DEVICE_WC 3
64/* 64/*
65 * types 4 onwards can be found in asm/mach/map.h and are undefined 65 * types 4 onwards can be found in asm/mach/map.h and are undefined
66 * for ioremap 66 * for ioremap
@@ -215,11 +215,13 @@ extern void _memset_io(volatile void __iomem *, int, size_t);
215#define ioremap(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE) 215#define ioremap(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)
216#define ioremap_nocache(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE) 216#define ioremap_nocache(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE)
217#define ioremap_cached(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_CACHED) 217#define ioremap_cached(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_CACHED)
218#define ioremap_wc(cookie,size) __arm_ioremap(cookie, size, MT_DEVICE_WC)
218#define iounmap(cookie) __iounmap(cookie) 219#define iounmap(cookie) __iounmap(cookie)
219#else 220#else
220#define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE) 221#define ioremap(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
221#define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE) 222#define ioremap_nocache(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE)
222#define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED) 223#define ioremap_cached(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_CACHED)
224#define ioremap_wc(cookie,size) __arch_ioremap((cookie), (size), MT_DEVICE_WC)
223#define iounmap(cookie) __arch_iounmap(cookie) 225#define iounmap(cookie) __arch_iounmap(cookie)
224#endif 226#endif
225 227
diff --git a/arch/arm/include/asm/irq.h b/arch/arm/include/asm/irq.h
index d6786090d02c..a0009aa5d157 100644
--- a/arch/arm/include/asm/irq.h
+++ b/arch/arm/include/asm/irq.h
@@ -22,6 +22,10 @@
22#ifndef __ASSEMBLY__ 22#ifndef __ASSEMBLY__
23struct irqaction; 23struct irqaction;
24extern void migrate_irqs(void); 24extern void migrate_irqs(void);
25
26extern void asm_do_IRQ(unsigned int, struct pt_regs *);
27void init_IRQ(void);
28
25#endif 29#endif
26 30
27#endif 31#endif
diff --git a/arch/arm/include/asm/kprobes.h b/arch/arm/include/asm/kprobes.h
index a5d0d99ad387..bb8a19bd5822 100644
--- a/arch/arm/include/asm/kprobes.h
+++ b/arch/arm/include/asm/kprobes.h
@@ -61,7 +61,6 @@ struct kprobe_ctlblk {
61void arch_remove_kprobe(struct kprobe *); 61void arch_remove_kprobe(struct kprobe *);
62void kretprobe_trampoline(void); 62void kretprobe_trampoline(void);
63 63
64int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr);
65int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr); 64int kprobe_fault_handler(struct pt_regs *regs, unsigned int fsr);
66int kprobe_exceptions_notify(struct notifier_block *self, 65int kprobe_exceptions_notify(struct notifier_block *self,
67 unsigned long val, void *data); 66 unsigned long val, void *data);
diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
index 06f583b13999..cb1139ac1943 100644
--- a/arch/arm/include/asm/mach/map.h
+++ b/arch/arm/include/asm/mach/map.h
@@ -26,9 +26,6 @@ struct map_desc {
26#define MT_MEMORY 8 26#define MT_MEMORY 8
27#define MT_ROM 9 27#define MT_ROM 9
28 28
29#define MT_NONSHARED_DEVICE MT_DEVICE_NONSHARED
30#define MT_IXP2000_DEVICE MT_DEVICE_IXP2000
31
32#ifdef CONFIG_MMU 29#ifdef CONFIG_MMU
33extern void iotable_init(struct map_desc *, int); 30extern void iotable_init(struct map_desc *, int);
34#else 31#else
diff --git a/arch/arm/include/asm/mach/udc_pxa2xx.h b/arch/arm/include/asm/mach/udc_pxa2xx.h
index 270902c353fd..f3eabf1ecec3 100644
--- a/arch/arm/include/asm/mach/udc_pxa2xx.h
+++ b/arch/arm/include/asm/mach/udc_pxa2xx.h
@@ -18,8 +18,7 @@ struct pxa2xx_udc_mach_info {
18 /* Boards following the design guidelines in the developer's manual, 18 /* Boards following the design guidelines in the developer's manual,
19 * with on-chip GPIOs not Lubbock's weird hardware, can have a sane 19 * with on-chip GPIOs not Lubbock's weird hardware, can have a sane
20 * VBUS IRQ and omit the methods above. Store the GPIO number 20 * VBUS IRQ and omit the methods above. Store the GPIO number
21 * here; for GPIO 0, also mask in one of the pxa_gpio_mode() bits. 21 * here. Note that sometimes the signals go through inverters...
22 * Note that sometimes the signals go through inverters...
23 */ 22 */
24 bool gpio_vbus_inverted; 23 bool gpio_vbus_inverted;
25 u16 gpio_vbus; /* high == vbus present */ 24 u16 gpio_vbus; /* high == vbus present */
diff --git a/arch/arm/include/asm/mc146818rtc.h b/arch/arm/include/asm/mc146818rtc.h
index e1ca48a9e973..6b884d2b0b69 100644
--- a/arch/arm/include/asm/mc146818rtc.h
+++ b/arch/arm/include/asm/mc146818rtc.h
@@ -4,8 +4,8 @@
4#ifndef _ASM_MC146818RTC_H 4#ifndef _ASM_MC146818RTC_H
5#define _ASM_MC146818RTC_H 5#define _ASM_MC146818RTC_H
6 6
7#include <linux/io.h>
7#include <mach/irqs.h> 8#include <mach/irqs.h>
8#include <asm/io.h>
9 9
10#ifndef RTC_PORT 10#ifndef RTC_PORT
11#define RTC_PORT(x) (0x70 + (x)) 11#define RTC_PORT(x) (0x70 + (x))
diff --git a/arch/arm/include/asm/memory.h b/arch/arm/include/asm/memory.h
index bf7c737c9226..809ff9ab853a 100644
--- a/arch/arm/include/asm/memory.h
+++ b/arch/arm/include/asm/memory.h
@@ -13,30 +13,27 @@
13#ifndef __ASM_ARM_MEMORY_H 13#ifndef __ASM_ARM_MEMORY_H
14#define __ASM_ARM_MEMORY_H 14#define __ASM_ARM_MEMORY_H
15 15
16#include <linux/compiler.h>
17#include <linux/const.h>
18#include <mach/memory.h>
19#include <asm/sizes.h>
20
16/* 21/*
17 * Allow for constants defined here to be used from assembly code 22 * Allow for constants defined here to be used from assembly code
18 * by prepending the UL suffix only with actual C code compilation. 23 * by prepending the UL suffix only with actual C code compilation.
19 */ 24 */
20#ifndef __ASSEMBLY__ 25#define UL(x) _AC(x, UL)
21#define UL(x) (x##UL)
22#else
23#define UL(x) (x)
24#endif
25
26#include <linux/compiler.h>
27#include <mach/memory.h>
28#include <asm/sizes.h>
29 26
30#ifdef CONFIG_MMU 27#ifdef CONFIG_MMU
31 28
32#ifndef TASK_SIZE
33/* 29/*
30 * PAGE_OFFSET - the virtual address of the start of the kernel image
34 * TASK_SIZE - the maximum size of a user space task. 31 * TASK_SIZE - the maximum size of a user space task.
35 * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area 32 * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area
36 */ 33 */
37#define TASK_SIZE UL(0xbf000000) 34#define PAGE_OFFSET UL(CONFIG_PAGE_OFFSET)
38#define TASK_UNMAPPED_BASE UL(0x40000000) 35#define TASK_SIZE (UL(CONFIG_PAGE_OFFSET) - UL(0x01000000))
39#endif 36#define TASK_UNMAPPED_BASE (UL(CONFIG_PAGE_OFFSET) / 3)
40 37
41/* 38/*
42 * The maximum size of a 26-bit user space task. 39 * The maximum size of a 26-bit user space task.
@@ -44,13 +41,6 @@
44#define TASK_SIZE_26 UL(0x04000000) 41#define TASK_SIZE_26 UL(0x04000000)
45 42
46/* 43/*
47 * Page offset: 3GB
48 */
49#ifndef PAGE_OFFSET
50#define PAGE_OFFSET UL(0xc0000000)
51#endif
52
53/*
54 * The module space lives between the addresses given by TASK_SIZE 44 * The module space lives between the addresses given by TASK_SIZE
55 * and PAGE_OFFSET - it must be within 32MB of the kernel text. 45 * and PAGE_OFFSET - it must be within 32MB of the kernel text.
56 */ 46 */
@@ -147,17 +137,11 @@
147 137
148#ifndef arch_adjust_zones 138#ifndef arch_adjust_zones
149#define arch_adjust_zones(node,size,holes) do { } while (0) 139#define arch_adjust_zones(node,size,holes) do { } while (0)
140#elif !defined(CONFIG_ZONE_DMA)
141#error "custom arch_adjust_zones() requires CONFIG_ZONE_DMA"
150#endif 142#endif
151 143
152/* 144/*
153 * Amount of memory reserved for the vmalloc() area, and minimum
154 * address for vmalloc mappings.
155 */
156extern unsigned long vmalloc_reserve;
157
158#define VMALLOC_MIN (void *)(VMALLOC_END - vmalloc_reserve)
159
160/*
161 * PFNs are used to describe any physical page; this means 145 * PFNs are used to describe any physical page; this means
162 * PFN 0 == physical address 0. 146 * PFN 0 == physical address 0.
163 * 147 *
diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h
index a301e446007f..0559f37c2a27 100644
--- a/arch/arm/include/asm/mmu_context.h
+++ b/arch/arm/include/asm/mmu_context.h
@@ -15,6 +15,7 @@
15 15
16#include <linux/compiler.h> 16#include <linux/compiler.h>
17#include <asm/cacheflush.h> 17#include <asm/cacheflush.h>
18#include <asm/cachetype.h>
18#include <asm/proc-fns.h> 19#include <asm/proc-fns.h>
19#include <asm-generic/mm_hooks.h> 20#include <asm-generic/mm_hooks.h>
20 21
diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
index cf2e2680daaa..bed1c0a00368 100644
--- a/arch/arm/include/asm/page.h
+++ b/arch/arm/include/asm/page.h
@@ -184,8 +184,9 @@ typedef struct page *pgtable_t;
184 184
185#endif /* !__ASSEMBLY__ */ 185#endif /* !__ASSEMBLY__ */
186 186
187#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ 187#define VM_DATA_DEFAULT_FLAGS \
188 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) 188 (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
189 VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
189 190
190/* 191/*
191 * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers. 192 * With EABI on ARMv5 and above we must have 64-bit aligned slab pointers.
diff --git a/arch/arm/include/asm/pci.h b/arch/arm/include/asm/pci.h
index 721c03d53f4b..918d0cbbf064 100644
--- a/arch/arm/include/asm/pci.h
+++ b/arch/arm/include/asm/pci.h
@@ -30,7 +30,7 @@ static inline void pcibios_penalize_isa_irq(int irq, int active)
30 * The networking and block device layers use this boolean for bounce 30 * The networking and block device layers use this boolean for bounce
31 * buffer decisions. 31 * buffer decisions.
32 */ 32 */
33#define PCI_DMA_BUS_IS_PHYS (0) 33#define PCI_DMA_BUS_IS_PHYS (1)
34 34
35/* 35/*
36 * Whether pci_unmap_{single,page} is a nop depends upon the 36 * Whether pci_unmap_{single,page} is a nop depends upon the
diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
index 8e21ef15bd74..110295c5461d 100644
--- a/arch/arm/include/asm/pgtable.h
+++ b/arch/arm/include/asm/pgtable.h
@@ -164,14 +164,30 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
164#define L_PTE_PRESENT (1 << 0) 164#define L_PTE_PRESENT (1 << 0)
165#define L_PTE_FILE (1 << 1) /* only when !PRESENT */ 165#define L_PTE_FILE (1 << 1) /* only when !PRESENT */
166#define L_PTE_YOUNG (1 << 1) 166#define L_PTE_YOUNG (1 << 1)
167#define L_PTE_BUFFERABLE (1 << 2) /* matches PTE */ 167#define L_PTE_BUFFERABLE (1 << 2) /* obsolete, matches PTE */
168#define L_PTE_CACHEABLE (1 << 3) /* matches PTE */ 168#define L_PTE_CACHEABLE (1 << 3) /* obsolete, matches PTE */
169#define L_PTE_USER (1 << 4) 169#define L_PTE_DIRTY (1 << 6)
170#define L_PTE_WRITE (1 << 5) 170#define L_PTE_WRITE (1 << 7)
171#define L_PTE_EXEC (1 << 6) 171#define L_PTE_USER (1 << 8)
172#define L_PTE_DIRTY (1 << 7) 172#define L_PTE_EXEC (1 << 9)
173#define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */ 173#define L_PTE_SHARED (1 << 10) /* shared(v6), coherent(xsc3) */
174 174
175/*
176 * These are the memory types, defined to be compatible with
177 * pre-ARMv6 CPUs cacheable and bufferable bits: XXCB
178 */
179#define L_PTE_MT_UNCACHED (0x00 << 2) /* 0000 */
180#define L_PTE_MT_BUFFERABLE (0x01 << 2) /* 0001 */
181#define L_PTE_MT_WRITETHROUGH (0x02 << 2) /* 0010 */
182#define L_PTE_MT_WRITEBACK (0x03 << 2) /* 0011 */
183#define L_PTE_MT_MINICACHE (0x06 << 2) /* 0110 (sa1100, xscale) */
184#define L_PTE_MT_WRITEALLOC (0x07 << 2) /* 0111 */
185#define L_PTE_MT_DEV_SHARED (0x04 << 2) /* 0100 */
186#define L_PTE_MT_DEV_NONSHARED (0x0c << 2) /* 1100 */
187#define L_PTE_MT_DEV_WC (0x09 << 2) /* 1001 */
188#define L_PTE_MT_DEV_CACHED (0x0b << 2) /* 1011 */
189#define L_PTE_MT_MASK (0x0f << 2)
190
175#ifndef __ASSEMBLY__ 191#ifndef __ASSEMBLY__
176 192
177/* 193/*
@@ -180,23 +196,30 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
180 * as well as any architecture dependent bits like global/ASID and SMP 196 * as well as any architecture dependent bits like global/ASID and SMP
181 * shared mapping bits. 197 * shared mapping bits.
182 */ 198 */
183#define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_CACHEABLE | L_PTE_BUFFERABLE 199#define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG
184#define _L_PTE_READ L_PTE_USER | L_PTE_EXEC
185 200
186extern pgprot_t pgprot_user; 201extern pgprot_t pgprot_user;
187extern pgprot_t pgprot_kernel; 202extern pgprot_t pgprot_kernel;
188 203
189#define PAGE_NONE pgprot_user 204#define _MOD_PROT(p, b) __pgprot(pgprot_val(p) | (b))
190#define PAGE_COPY __pgprot(pgprot_val(pgprot_user) | _L_PTE_READ) 205
191#define PAGE_SHARED __pgprot(pgprot_val(pgprot_user) | _L_PTE_READ | \ 206#define PAGE_NONE pgprot_user
192 L_PTE_WRITE) 207#define PAGE_SHARED _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE)
193#define PAGE_READONLY __pgprot(pgprot_val(pgprot_user) | _L_PTE_READ) 208#define PAGE_SHARED_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC)
194#define PAGE_KERNEL pgprot_kernel 209#define PAGE_COPY _MOD_PROT(pgprot_user, L_PTE_USER)
195 210#define PAGE_COPY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC)
196#define __PAGE_NONE __pgprot(_L_PTE_DEFAULT) 211#define PAGE_READONLY _MOD_PROT(pgprot_user, L_PTE_USER)
197#define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ) 212#define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_EXEC)
198#define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | _L_PTE_READ | L_PTE_WRITE) 213#define PAGE_KERNEL pgprot_kernel
199#define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | _L_PTE_READ) 214#define PAGE_KERNEL_EXEC _MOD_PROT(pgprot_kernel, L_PTE_EXEC)
215
216#define __PAGE_NONE __pgprot(_L_PTE_DEFAULT)
217#define __PAGE_SHARED __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE)
218#define __PAGE_SHARED_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_WRITE | L_PTE_EXEC)
219#define __PAGE_COPY __pgprot(_L_PTE_DEFAULT | L_PTE_USER)
220#define __PAGE_COPY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC)
221#define __PAGE_READONLY __pgprot(_L_PTE_DEFAULT | L_PTE_USER)
222#define __PAGE_READONLY_EXEC __pgprot(_L_PTE_DEFAULT | L_PTE_USER | L_PTE_EXEC)
200 223
201#endif /* __ASSEMBLY__ */ 224#endif /* __ASSEMBLY__ */
202 225
@@ -212,19 +235,19 @@ extern pgprot_t pgprot_kernel;
212#define __P001 __PAGE_READONLY 235#define __P001 __PAGE_READONLY
213#define __P010 __PAGE_COPY 236#define __P010 __PAGE_COPY
214#define __P011 __PAGE_COPY 237#define __P011 __PAGE_COPY
215#define __P100 __PAGE_READONLY 238#define __P100 __PAGE_READONLY_EXEC
216#define __P101 __PAGE_READONLY 239#define __P101 __PAGE_READONLY_EXEC
217#define __P110 __PAGE_COPY 240#define __P110 __PAGE_COPY_EXEC
218#define __P111 __PAGE_COPY 241#define __P111 __PAGE_COPY_EXEC
219 242
220#define __S000 __PAGE_NONE 243#define __S000 __PAGE_NONE
221#define __S001 __PAGE_READONLY 244#define __S001 __PAGE_READONLY
222#define __S010 __PAGE_SHARED 245#define __S010 __PAGE_SHARED
223#define __S011 __PAGE_SHARED 246#define __S011 __PAGE_SHARED
224#define __S100 __PAGE_READONLY 247#define __S100 __PAGE_READONLY_EXEC
225#define __S101 __PAGE_READONLY 248#define __S101 __PAGE_READONLY_EXEC
226#define __S110 __PAGE_SHARED 249#define __S110 __PAGE_SHARED_EXEC
227#define __S111 __PAGE_SHARED 250#define __S111 __PAGE_SHARED_EXEC
228 251
229#ifndef __ASSEMBLY__ 252#ifndef __ASSEMBLY__
230/* 253/*
@@ -286,8 +309,10 @@ static inline pte_t pte_mkspecial(pte_t pte) { return pte; }
286/* 309/*
287 * Mark the prot value as uncacheable and unbufferable. 310 * Mark the prot value as uncacheable and unbufferable.
288 */ 311 */
289#define pgprot_noncached(prot) __pgprot(pgprot_val(prot) & ~(L_PTE_CACHEABLE | L_PTE_BUFFERABLE)) 312#define pgprot_noncached(prot) \
290#define pgprot_writecombine(prot) __pgprot(pgprot_val(prot) & ~L_PTE_CACHEABLE) 313 __pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_UNCACHED)
314#define pgprot_writecombine(prot) \
315 __pgprot((pgprot_val(prot) & ~L_PTE_MT_MASK) | L_PTE_MT_BUFFERABLE)
291 316
292#define pmd_none(pmd) (!pmd_val(pmd)) 317#define pmd_none(pmd) (!pmd_val(pmd))
293#define pmd_present(pmd) (pmd_val(pmd)) 318#define pmd_present(pmd) (pmd_val(pmd))
@@ -320,11 +345,6 @@ static inline pte_t *pmd_page_vaddr(pmd_t pmd)
320#define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd))) 345#define pmd_page(pmd) virt_to_page(__va(pmd_val(pmd)))
321 346
322/* 347/*
323 * Permanent address of a page. We never have highmem, so this is trivial.
324 */
325#define pages_to_mb(x) ((x) >> (20 - PAGE_SHIFT))
326
327/*
328 * Conversion functions: convert a page and protection to a page entry, 348 * Conversion functions: convert a page and protection to a page entry,
329 * and a page entry and page directory to the page they refer to. 349 * and a page entry and page directory to the page they refer to.
330 */ 350 */
diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h
index b415c0e85458..73192618f1c2 100644
--- a/arch/arm/include/asm/ptrace.h
+++ b/arch/arm/include/asm/ptrace.h
@@ -54,7 +54,6 @@
54#define PSR_C_BIT 0x20000000 54#define PSR_C_BIT 0x20000000
55#define PSR_Z_BIT 0x40000000 55#define PSR_Z_BIT 0x40000000
56#define PSR_N_BIT 0x80000000 56#define PSR_N_BIT 0x80000000
57#define PCMASK 0
58 57
59/* 58/*
60 * Groups of PSR bits 59 * Groups of PSR bits
@@ -139,11 +138,7 @@ static inline int valid_user_regs(struct pt_regs *regs)
139 return 0; 138 return 0;
140} 139}
141 140
142#define pc_pointer(v) \ 141#define instruction_pointer(regs) (regs)->ARM_pc
143 ((v) & ~PCMASK)
144
145#define instruction_pointer(regs) \
146 (pc_pointer((regs)->ARM_pc))
147 142
148#ifdef CONFIG_SMP 143#ifdef CONFIG_SMP
149extern unsigned long profile_pc(struct pt_regs *regs); 144extern unsigned long profile_pc(struct pt_regs *regs);
diff --git a/arch/arm/include/asm/setup.h b/arch/arm/include/asm/setup.h
index 7bbf105463f1..a65413ba121d 100644
--- a/arch/arm/include/asm/setup.h
+++ b/arch/arm/include/asm/setup.h
@@ -209,6 +209,17 @@ struct meminfo {
209 struct membank bank[NR_BANKS]; 209 struct membank bank[NR_BANKS];
210}; 210};
211 211
212#define for_each_nodebank(iter,mi,no) \
213 for (iter = 0; iter < mi->nr_banks; iter++) \
214 if (mi->bank[iter].node == no)
215
216#define bank_pfn_start(bank) __phys_to_pfn((bank)->start)
217#define bank_pfn_end(bank) __phys_to_pfn((bank)->start + (bank)->size)
218#define bank_pfn_size(bank) ((bank)->size >> PAGE_SHIFT)
219#define bank_phys_start(bank) (bank)->start
220#define bank_phys_end(bank) ((bank)->start + (bank)->size)
221#define bank_phys_size(bank) (bank)->size
222
212/* 223/*
213 * Early command line parameters. 224 * Early command line parameters.
214 */ 225 */
diff --git a/arch/arm/include/asm/sparsemem.h b/arch/arm/include/asm/sparsemem.h
index 277158191a0d..00098615c6f0 100644
--- a/arch/arm/include/asm/sparsemem.h
+++ b/arch/arm/include/asm/sparsemem.h
@@ -3,8 +3,22 @@
3 3
4#include <asm/memory.h> 4#include <asm/memory.h>
5 5
6#define MAX_PHYSADDR_BITS 32 6/*
7#define MAX_PHYSMEM_BITS 32 7 * Two definitions are required for sparsemem:
8#define SECTION_SIZE_BITS NODE_MEM_SIZE_BITS 8 *
9 * MAX_PHYSMEM_BITS: The number of physical address bits required
10 * to address the last byte of memory.
11 *
12 * SECTION_SIZE_BITS: The number of physical address bits to cover
13 * the maximum amount of memory in a section.
14 *
15 * Eg, if you have 2 banks of up to 64MB at 0x80000000, 0x84000000,
16 * then MAX_PHYSMEM_BITS is 32, SECTION_SIZE_BITS is 26.
17 *
18 * Define these in your mach/memory.h.
19 */
20#if !defined(SECTION_SIZE_BITS) || !defined(MAX_PHYSMEM_BITS)
21#error Sparsemem is not supported on this platform
22#endif
9 23
10#endif 24#endif
diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
index 514af792a598..7aad78420f18 100644
--- a/arch/arm/include/asm/system.h
+++ b/arch/arm/include/asm/system.h
@@ -43,11 +43,6 @@
43#define CR_XP (1 << 23) /* Extended page tables */ 43#define CR_XP (1 << 23) /* Extended page tables */
44#define CR_VE (1 << 24) /* Vectored interrupts */ 44#define CR_VE (1 << 24) /* Vectored interrupts */
45 45
46#define CPUID_ID 0
47#define CPUID_CACHETYPE 1
48#define CPUID_TCM 2
49#define CPUID_TLBTYPE 3
50
51/* 46/*
52 * This is used to ensure the compiler did actually allocate the register we 47 * This is used to ensure the compiler did actually allocate the register we
53 * asked it for some inline assembly sequences. Apparently we can't trust 48 * asked it for some inline assembly sequences. Apparently we can't trust
@@ -61,36 +56,8 @@
61#ifndef __ASSEMBLY__ 56#ifndef __ASSEMBLY__
62 57
63#include <linux/linkage.h> 58#include <linux/linkage.h>
64#include <linux/stringify.h>
65#include <linux/irqflags.h> 59#include <linux/irqflags.h>
66 60
67#ifdef CONFIG_CPU_CP15
68#define read_cpuid(reg) \
69 ({ \
70 unsigned int __val; \
71 asm("mrc p15, 0, %0, c0, c0, " __stringify(reg) \
72 : "=r" (__val) \
73 : \
74 : "cc"); \
75 __val; \
76 })
77#else
78extern unsigned int processor_id;
79#define read_cpuid(reg) (processor_id)
80#endif
81
82/*
83 * The CPU ID never changes at run time, so we might as well tell the
84 * compiler that it's constant. Use this function to read the CPU ID
85 * rather than directly reading processor_id or read_cpuid() directly.
86 */
87static inline unsigned int read_cpuid_id(void) __attribute_const__;
88
89static inline unsigned int read_cpuid_id(void)
90{
91 return read_cpuid(CPUID_ID);
92}
93
94#define __exception __attribute__((section(".exception.text"))) 61#define __exception __attribute__((section(".exception.text")))
95 62
96struct thread_info; 63struct thread_info;
@@ -131,31 +98,6 @@ extern void cpu_init(void);
131void arm_machine_restart(char mode); 98void arm_machine_restart(char mode);
132extern void (*arm_pm_restart)(char str); 99extern void (*arm_pm_restart)(char str);
133 100
134/*
135 * Intel's XScale3 core supports some v6 features (supersections, L2)
136 * but advertises itself as v5 as it does not support the v6 ISA. For
137 * this reason, we need a way to explicitly test for this type of CPU.
138 */
139#ifndef CONFIG_CPU_XSC3
140#define cpu_is_xsc3() 0
141#else
142static inline int cpu_is_xsc3(void)
143{
144 extern unsigned int processor_id;
145
146 if ((processor_id & 0xffffe000) == 0x69056000)
147 return 1;
148
149 return 0;
150}
151#endif
152
153#if !defined(CONFIG_CPU_XSCALE) && !defined(CONFIG_CPU_XSC3)
154#define cpu_is_xscale() 0
155#else
156#define cpu_is_xscale() 1
157#endif
158
159#define UDBG_UNDEFINED (1 << 0) 101#define UDBG_UNDEFINED (1 << 0)
160#define UDBG_SYSCALL (1 << 1) 102#define UDBG_SYSCALL (1 << 1)
161#define UDBG_BADABORT (1 << 2) 103#define UDBG_BADABORT (1 << 2)
diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
index e56fa48e4ae7..68b9ec82a37f 100644
--- a/arch/arm/include/asm/thread_info.h
+++ b/arch/arm/include/asm/thread_info.h
@@ -98,7 +98,7 @@ static inline struct thread_info *current_thread_info(void)
98} 98}
99 99
100#define thread_saved_pc(tsk) \ 100#define thread_saved_pc(tsk) \
101 ((unsigned long)(pc_pointer(task_thread_info(tsk)->cpu_context.pc))) 101 ((unsigned long)(task_thread_info(tsk)->cpu_context.pc))
102#define thread_saved_fp(tsk) \ 102#define thread_saved_fp(tsk) \
103 ((unsigned long)(task_thread_info(tsk)->cpu_context.fp)) 103 ((unsigned long)(task_thread_info(tsk)->cpu_context.fp))
104 104
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index d0f51ff900b5..e98ec60b3400 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -225,7 +225,7 @@ do { \
225 225
226#define __get_user_asm_byte(x,addr,err) \ 226#define __get_user_asm_byte(x,addr,err) \
227 __asm__ __volatile__( \ 227 __asm__ __volatile__( \
228 "1: ldrbt %1,[%2],#0\n" \ 228 "1: ldrbt %1,[%2]\n" \
229 "2:\n" \ 229 "2:\n" \
230 " .section .fixup,\"ax\"\n" \ 230 " .section .fixup,\"ax\"\n" \
231 " .align 2\n" \ 231 " .align 2\n" \
@@ -261,7 +261,7 @@ do { \
261 261
262#define __get_user_asm_word(x,addr,err) \ 262#define __get_user_asm_word(x,addr,err) \
263 __asm__ __volatile__( \ 263 __asm__ __volatile__( \
264 "1: ldrt %1,[%2],#0\n" \ 264 "1: ldrt %1,[%2]\n" \
265 "2:\n" \ 265 "2:\n" \
266 " .section .fixup,\"ax\"\n" \ 266 " .section .fixup,\"ax\"\n" \
267 " .align 2\n" \ 267 " .align 2\n" \
@@ -306,7 +306,7 @@ do { \
306 306
307#define __put_user_asm_byte(x,__pu_addr,err) \ 307#define __put_user_asm_byte(x,__pu_addr,err) \
308 __asm__ __volatile__( \ 308 __asm__ __volatile__( \
309 "1: strbt %1,[%2],#0\n" \ 309 "1: strbt %1,[%2]\n" \
310 "2:\n" \ 310 "2:\n" \
311 " .section .fixup,\"ax\"\n" \ 311 " .section .fixup,\"ax\"\n" \
312 " .align 2\n" \ 312 " .align 2\n" \
@@ -339,7 +339,7 @@ do { \
339 339
340#define __put_user_asm_word(x,__pu_addr,err) \ 340#define __put_user_asm_word(x,__pu_addr,err) \
341 __asm__ __volatile__( \ 341 __asm__ __volatile__( \
342 "1: strt %1,[%2],#0\n" \ 342 "1: strt %1,[%2]\n" \
343 "2:\n" \ 343 "2:\n" \
344 " .section .fixup,\"ax\"\n" \ 344 " .section .fixup,\"ax\"\n" \
345 " .align 2\n" \ 345 " .align 2\n" \
@@ -365,7 +365,7 @@ do { \
365#define __put_user_asm_dword(x,__pu_addr,err) \ 365#define __put_user_asm_dword(x,__pu_addr,err) \
366 __asm__ __volatile__( \ 366 __asm__ __volatile__( \
367 "1: strt " __reg_oper1 ", [%1], #4\n" \ 367 "1: strt " __reg_oper1 ", [%1], #4\n" \
368 "2: strt " __reg_oper0 ", [%1], #0\n" \ 368 "2: strt " __reg_oper0 ", [%1]\n" \
369 "3:\n" \ 369 "3:\n" \
370 " .section .fixup,\"ax\"\n" \ 370 " .section .fixup,\"ax\"\n" \
371 " .align 2\n" \ 371 " .align 2\n" \
diff --git a/arch/arm/include/asm/vga.h b/arch/arm/include/asm/vga.h
index 6a3cd2a2f670..250a4dd00630 100644
--- a/arch/arm/include/asm/vga.h
+++ b/arch/arm/include/asm/vga.h
@@ -1,8 +1,8 @@
1#ifndef ASMARM_VGA_H 1#ifndef ASMARM_VGA_H
2#define ASMARM_VGA_H 2#define ASMARM_VGA_H
3 3
4#include <linux/io.h>
4#include <mach/hardware.h> 5#include <mach/hardware.h>
5#include <asm/io.h>
6 6
7#define VGA_MAP_MEM(x,s) (PCIMEM_BASE + (x)) 7#define VGA_MAP_MEM(x,s) (PCIMEM_BASE + (x))
8 8
diff --git a/arch/arm/kernel/Makefile b/arch/arm/kernel/Makefile
index 1d296fc8494e..4305345987d3 100644
--- a/arch/arm/kernel/Makefile
+++ b/arch/arm/kernel/Makefile
@@ -10,7 +10,7 @@ endif
10 10
11# Object file lists. 11# Object file lists.
12 12
13obj-y := compat.o entry-armv.o entry-common.o irq.o \ 13obj-y := compat.o elf.o entry-armv.o entry-common.o irq.o \
14 process.o ptrace.o setup.o signal.o \ 14 process.o ptrace.o setup.o signal.o \
15 sys_arm.o stacktrace.o time.o traps.o 15 sys_arm.o stacktrace.o time.o traps.o
16 16
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index cc7b246e9652..2357b1cf1cf9 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -13,11 +13,11 @@
13#include <linux/delay.h> 13#include <linux/delay.h>
14#include <linux/in6.h> 14#include <linux/in6.h>
15#include <linux/syscalls.h> 15#include <linux/syscalls.h>
16#include <linux/uaccess.h>
17#include <linux/io.h>
16 18
17#include <asm/checksum.h> 19#include <asm/checksum.h>
18#include <asm/io.h>
19#include <asm/system.h> 20#include <asm/system.h>
20#include <asm/uaccess.h>
21#include <asm/ftrace.h> 21#include <asm/ftrace.h>
22 22
23/* 23/*
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index e5747547b44c..17a59b6e521f 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -10,8 +10,8 @@
10#include <linux/pci.h> 10#include <linux/pci.h>
11#include <linux/slab.h> 11#include <linux/slab.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/io.h>
13 14
14#include <asm/io.h>
15#include <asm/mach-types.h> 15#include <asm/mach-types.h>
16#include <asm/mach/pci.h> 16#include <asm/mach/pci.h>
17 17
diff --git a/arch/arm/kernel/crunch.c b/arch/arm/kernel/crunch.c
index 3b6a1c293ee4..99995c2b2312 100644
--- a/arch/arm/kernel/crunch.c
+++ b/arch/arm/kernel/crunch.c
@@ -15,9 +15,9 @@
15#include <linux/signal.h> 15#include <linux/signal.h>
16#include <linux/sched.h> 16#include <linux/sched.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/io.h>
18#include <mach/ep93xx-regs.h> 19#include <mach/ep93xx-regs.h>
19#include <asm/thread_notify.h> 20#include <asm/thread_notify.h>
20#include <asm/io.h>
21 21
22struct crunch_state *crunch_owner; 22struct crunch_state *crunch_owner;
23 23
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S
index 9550ff0ddde4..f53c58290543 100644
--- a/arch/arm/kernel/debug.S
+++ b/arch/arm/kernel/debug.S
@@ -89,10 +89,12 @@
89ENTRY(printhex8) 89ENTRY(printhex8)
90 mov r1, #8 90 mov r1, #8
91 b printhex 91 b printhex
92ENDPROC(printhex8)
92 93
93ENTRY(printhex4) 94ENTRY(printhex4)
94 mov r1, #4 95 mov r1, #4
95 b printhex 96 b printhex
97ENDPROC(printhex4)
96 98
97ENTRY(printhex2) 99ENTRY(printhex2)
98 mov r1, #2 100 mov r1, #2
@@ -110,6 +112,7 @@ printhex: adr r2, hexbuf
110 bne 1b 112 bne 1b
111 mov r0, r2 113 mov r0, r2
112 b printascii 114 b printascii
115ENDPROC(printhex2)
113 116
114 .ltorg 117 .ltorg
115 118
@@ -127,11 +130,13 @@ ENTRY(printascii)
127 teqne r1, #0 130 teqne r1, #0
128 bne 1b 131 bne 1b
129 mov pc, lr 132 mov pc, lr
133ENDPROC(printascii)
130 134
131ENTRY(printch) 135ENTRY(printch)
132 addruart r3 136 addruart r3
133 mov r1, r0 137 mov r1, r0
134 mov r0, #0 138 mov r0, #0
135 b 1b 139 b 1b
140ENDPROC(printch)
136 141
137hexbuf: .space 16 142hexbuf: .space 16
diff --git a/arch/arm/kernel/dma-isa.c b/arch/arm/kernel/dma-isa.c
index 2f080a35a2d9..4a3a50495c60 100644
--- a/arch/arm/kernel/dma-isa.c
+++ b/arch/arm/kernel/dma-isa.c
@@ -19,10 +19,9 @@
19#include <linux/ioport.h> 19#include <linux/ioport.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/dma-mapping.h> 21#include <linux/dma-mapping.h>
22#include <linux/io.h>
22 23
23#include <asm/dma.h> 24#include <asm/dma.h>
24#include <asm/io.h>
25
26#include <asm/mach/dma.h> 25#include <asm/mach/dma.h>
27 26
28#define ISA_DMA_MODE_READ 0x44 27#define ISA_DMA_MODE_READ 0x44
diff --git a/arch/arm/kernel/ecard.c b/arch/arm/kernel/ecard.c
index 7a50575a8d4d..60c079d85355 100644
--- a/arch/arm/kernel/ecard.c
+++ b/arch/arm/kernel/ecard.c
@@ -587,8 +587,7 @@ ecard_irq_handler(unsigned int irq, struct irq_desc *desc)
587 pending = ecard_default_ops.irqpending(ec); 587 pending = ecard_default_ops.irqpending(ec);
588 588
589 if (pending) { 589 if (pending) {
590 struct irq_desc *d = irq_desc + ec->irq; 590 generic_handle_irq(ec->irq);
591 desc_handle_irq(ec->irq, d);
592 called ++; 591 called ++;
593 } 592 }
594 } 593 }
@@ -622,7 +621,6 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
622 ecard_t *ec = slot_to_ecard(slot); 621 ecard_t *ec = slot_to_ecard(slot);
623 622
624 if (ec->claimed) { 623 if (ec->claimed) {
625 struct irq_desc *d = irq_desc + ec->irq;
626 /* 624 /*
627 * this ugly code is so that we can operate a 625 * this ugly code is so that we can operate a
628 * prioritorising system: 626 * prioritorising system:
@@ -635,7 +633,7 @@ ecard_irqexp_handler(unsigned int irq, struct irq_desc *desc)
635 * Serial cards should go in 0/1, ethernet/scsi in 2/3 633 * Serial cards should go in 0/1, ethernet/scsi in 2/3
636 * otherwise you will lose serial data at high speeds! 634 * otherwise you will lose serial data at high speeds!
637 */ 635 */
638 desc_handle_irq(ec->irq, d); 636 generic_handle_irq(ec->irq);
639 } else { 637 } else {
640 printk(KERN_WARNING "card%d: interrupt from unclaimed " 638 printk(KERN_WARNING "card%d: interrupt from unclaimed "
641 "card???\n", slot); 639 "card???\n", slot);
diff --git a/arch/arm/kernel/elf.c b/arch/arm/kernel/elf.c
new file mode 100644
index 000000000000..513f332f040d
--- /dev/null
+++ b/arch/arm/kernel/elf.c
@@ -0,0 +1,79 @@
1#include <linux/module.h>
2#include <linux/sched.h>
3#include <linux/personality.h>
4#include <linux/binfmts.h>
5#include <linux/elf.h>
6
7int elf_check_arch(const struct elf32_hdr *x)
8{
9 unsigned int eflags;
10
11 /* Make sure it's an ARM executable */
12 if (x->e_machine != EM_ARM)
13 return 0;
14
15 /* Make sure the entry address is reasonable */
16 if (x->e_entry & 1) {
17 if (!(elf_hwcap & HWCAP_THUMB))
18 return 0;
19 } else if (x->e_entry & 3)
20 return 0;
21
22 eflags = x->e_flags;
23 if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) {
24 /* APCS26 is only allowed if the CPU supports it */
25 if ((eflags & EF_ARM_APCS_26) && !(elf_hwcap & HWCAP_26BIT))
26 return 0;
27
28 /* VFP requires the supporting code */
29 if ((eflags & EF_ARM_VFP_FLOAT) && !(elf_hwcap & HWCAP_VFP))
30 return 0;
31 }
32 return 1;
33}
34EXPORT_SYMBOL(elf_check_arch);
35
36void elf_set_personality(const struct elf32_hdr *x)
37{
38 unsigned int eflags = x->e_flags;
39 unsigned int personality = PER_LINUX_32BIT;
40
41 /*
42 * APCS-26 is only valid for OABI executables
43 */
44 if ((eflags & EF_ARM_EABI_MASK) == EF_ARM_EABI_UNKNOWN) {
45 if (eflags & EF_ARM_APCS_26)
46 personality = PER_LINUX;
47 }
48
49 set_personality(personality);
50
51 /*
52 * Since the FPA coprocessor uses CP1 and CP2, and iWMMXt uses CP0
53 * and CP1, we only enable access to the iWMMXt coprocessor if the
54 * binary is EABI or softfloat (and thus, guaranteed not to use
55 * FPA instructions.)
56 */
57 if (elf_hwcap & HWCAP_IWMMXT &&
58 eflags & (EF_ARM_EABI_MASK | EF_ARM_SOFT_FLOAT)) {
59 set_thread_flag(TIF_USING_IWMMXT);
60 } else {
61 clear_thread_flag(TIF_USING_IWMMXT);
62 }
63}
64EXPORT_SYMBOL(elf_set_personality);
65
66/*
67 * Set READ_IMPLIES_EXEC if:
68 * - the binary requires an executable stack
69 * - we're running on a CPU which doesn't support NX.
70 */
71int arm_elf_read_implies_exec(const struct elf32_hdr *x, int executable_stack)
72{
73 if (executable_stack != EXSTACK_ENABLE_X)
74 return 1;
75 if (cpu_architecture() <= CPU_ARCH_ARMv6)
76 return 1;
77 return 0;
78}
79EXPORT_SYMBOL(arm_elf_read_implies_exec);
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 617e509d60df..77b047475539 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -76,14 +76,17 @@
76__pabt_invalid: 76__pabt_invalid:
77 inv_entry BAD_PREFETCH 77 inv_entry BAD_PREFETCH
78 b common_invalid 78 b common_invalid
79ENDPROC(__pabt_invalid)
79 80
80__dabt_invalid: 81__dabt_invalid:
81 inv_entry BAD_DATA 82 inv_entry BAD_DATA
82 b common_invalid 83 b common_invalid
84ENDPROC(__dabt_invalid)
83 85
84__irq_invalid: 86__irq_invalid:
85 inv_entry BAD_IRQ 87 inv_entry BAD_IRQ
86 b common_invalid 88 b common_invalid
89ENDPROC(__irq_invalid)
87 90
88__und_invalid: 91__und_invalid:
89 inv_entry BAD_UNDEFINSTR 92 inv_entry BAD_UNDEFINSTR
@@ -107,6 +110,7 @@ common_invalid:
107 110
108 mov r0, sp 111 mov r0, sp
109 b bad_mode 112 b bad_mode
113ENDPROC(__und_invalid)
110 114
111/* 115/*
112 * SVC mode handlers 116 * SVC mode handlers
@@ -192,6 +196,7 @@ __dabt_svc:
192 ldr r0, [sp, #S_PSR] 196 ldr r0, [sp, #S_PSR]
193 msr spsr_cxsf, r0 197 msr spsr_cxsf, r0
194 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr 198 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr
199ENDPROC(__dabt_svc)
195 200
196 .align 5 201 .align 5
197__irq_svc: 202__irq_svc:
@@ -223,6 +228,7 @@ __irq_svc:
223 bleq trace_hardirqs_on 228 bleq trace_hardirqs_on
224#endif 229#endif
225 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr 230 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr
231ENDPROC(__irq_svc)
226 232
227 .ltorg 233 .ltorg
228 234
@@ -272,6 +278,7 @@ __und_svc:
272 ldr lr, [sp, #S_PSR] @ Get SVC cpsr 278 ldr lr, [sp, #S_PSR] @ Get SVC cpsr
273 msr spsr_cxsf, lr 279 msr spsr_cxsf, lr
274 ldmia sp, {r0 - pc}^ @ Restore SVC registers 280 ldmia sp, {r0 - pc}^ @ Restore SVC registers
281ENDPROC(__und_svc)
275 282
276 .align 5 283 .align 5
277__pabt_svc: 284__pabt_svc:
@@ -313,6 +320,7 @@ __pabt_svc:
313 ldr r0, [sp, #S_PSR] 320 ldr r0, [sp, #S_PSR]
314 msr spsr_cxsf, r0 321 msr spsr_cxsf, r0
315 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr 322 ldmia sp, {r0 - pc}^ @ load r0 - pc, cpsr
323ENDPROC(__pabt_svc)
316 324
317 .align 5 325 .align 5
318.LCcralign: 326.LCcralign:
@@ -412,6 +420,7 @@ __dabt_usr:
412 mov r2, sp 420 mov r2, sp
413 adr lr, ret_from_exception 421 adr lr, ret_from_exception
414 b do_DataAbort 422 b do_DataAbort
423ENDPROC(__dabt_usr)
415 424
416 .align 5 425 .align 5
417__irq_usr: 426__irq_usr:
@@ -441,6 +450,7 @@ __irq_usr:
441 450
442 mov why, #0 451 mov why, #0
443 b ret_to_user 452 b ret_to_user
453ENDPROC(__irq_usr)
444 454
445 .ltorg 455 .ltorg
446 456
@@ -474,6 +484,7 @@ __und_usr:
474#else 484#else
475 b __und_usr_unknown 485 b __und_usr_unknown
476#endif 486#endif
487ENDPROC(__und_usr)
477 488
478 @ 489 @
479 @ fallthrough to call_fpe 490 @ fallthrough to call_fpe
@@ -642,6 +653,7 @@ __und_usr_unknown:
642 mov r0, sp 653 mov r0, sp
643 adr lr, ret_from_exception 654 adr lr, ret_from_exception
644 b do_undefinstr 655 b do_undefinstr
656ENDPROC(__und_usr_unknown)
645 657
646 .align 5 658 .align 5
647__pabt_usr: 659__pabt_usr:
@@ -666,6 +678,8 @@ ENTRY(ret_from_exception)
666 get_thread_info tsk 678 get_thread_info tsk
667 mov why, #0 679 mov why, #0
668 b ret_to_user 680 b ret_to_user
681ENDPROC(__pabt_usr)
682ENDPROC(ret_from_exception)
669 683
670/* 684/*
671 * Register switch for ARMv3 and ARMv4 processors 685 * Register switch for ARMv3 and ARMv4 processors
@@ -702,6 +716,7 @@ ENTRY(__switch_to)
702 bl atomic_notifier_call_chain 716 bl atomic_notifier_call_chain
703 mov r0, r5 717 mov r0, r5
704 ldmia r4, {r4 - sl, fp, sp, pc} @ Load all regs saved previously 718 ldmia r4, {r4 - sl, fp, sp, pc} @ Load all regs saved previously
719ENDPROC(__switch_to)
705 720
706 __INIT 721 __INIT
707 722
@@ -1029,6 +1044,7 @@ vector_\name:
1029 mov r0, sp 1044 mov r0, sp
1030 ldr lr, [pc, lr, lsl #2] 1045 ldr lr, [pc, lr, lsl #2]
1031 movs pc, lr @ branch to handler in SVC mode 1046 movs pc, lr @ branch to handler in SVC mode
1047ENDPROC(vector_\name)
1032 .endm 1048 .endm
1033 1049
1034 .globl __stubs_start 1050 .globl __stubs_start
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 060d7e2e9f64..3aa14dcc5bab 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -77,6 +77,7 @@ no_work_pending:
77 mov r0, r0 77 mov r0, r0
78 add sp, sp, #S_FRAME_SIZE - S_PC 78 add sp, sp, #S_FRAME_SIZE - S_PC
79 movs pc, lr @ return & move spsr_svc into cpsr 79 movs pc, lr @ return & move spsr_svc into cpsr
80ENDPROC(ret_to_user)
80 81
81/* 82/*
82 * This is how we return from a fork. 83 * This is how we return from a fork.
@@ -92,7 +93,7 @@ ENTRY(ret_from_fork)
92 mov r0, #1 @ trace exit [IP = 1] 93 mov r0, #1 @ trace exit [IP = 1]
93 bl syscall_trace 94 bl syscall_trace
94 b ret_slow_syscall 95 b ret_slow_syscall
95 96ENDPROC(ret_from_fork)
96 97
97 .equ NR_syscalls,0 98 .equ NR_syscalls,0
98#define CALL(x) .equ NR_syscalls,NR_syscalls+1 99#define CALL(x) .equ NR_syscalls,NR_syscalls+1
@@ -269,6 +270,7 @@ ENTRY(vector_swi)
269 eor r0, scno, #__NR_SYSCALL_BASE @ put OS number back 270 eor r0, scno, #__NR_SYSCALL_BASE @ put OS number back
270 bcs arm_syscall 271 bcs arm_syscall
271 b sys_ni_syscall @ not private func 272 b sys_ni_syscall @ not private func
273ENDPROC(vector_swi)
272 274
273 /* 275 /*
274 * This is the really slow path. We're going to be doing 276 * This is the really slow path. We're going to be doing
@@ -326,7 +328,6 @@ ENTRY(sys_call_table)
326 */ 328 */
327@ r0 = syscall number 329@ r0 = syscall number
328@ r8 = syscall table 330@ r8 = syscall table
329 .type sys_syscall, #function
330sys_syscall: 331sys_syscall:
331 bic scno, r0, #__NR_OABI_SYSCALL_BASE 332 bic scno, r0, #__NR_OABI_SYSCALL_BASE
332 cmp scno, #__NR_syscall - __NR_SYSCALL_BASE 333 cmp scno, #__NR_syscall - __NR_SYSCALL_BASE
@@ -338,53 +339,65 @@ sys_syscall:
338 movlo r3, r4 339 movlo r3, r4
339 ldrlo pc, [tbl, scno, lsl #2] 340 ldrlo pc, [tbl, scno, lsl #2]
340 b sys_ni_syscall 341 b sys_ni_syscall
342ENDPROC(sys_syscall)
341 343
342sys_fork_wrapper: 344sys_fork_wrapper:
343 add r0, sp, #S_OFF 345 add r0, sp, #S_OFF
344 b sys_fork 346 b sys_fork
347ENDPROC(sys_fork_wrapper)
345 348
346sys_vfork_wrapper: 349sys_vfork_wrapper:
347 add r0, sp, #S_OFF 350 add r0, sp, #S_OFF
348 b sys_vfork 351 b sys_vfork
352ENDPROC(sys_vfork_wrapper)
349 353
350sys_execve_wrapper: 354sys_execve_wrapper:
351 add r3, sp, #S_OFF 355 add r3, sp, #S_OFF
352 b sys_execve 356 b sys_execve
357ENDPROC(sys_execve_wrapper)
353 358
354sys_clone_wrapper: 359sys_clone_wrapper:
355 add ip, sp, #S_OFF 360 add ip, sp, #S_OFF
356 str ip, [sp, #4] 361 str ip, [sp, #4]
357 b sys_clone 362 b sys_clone
363ENDPROC(sys_clone_wrapper)
358 364
359sys_sigsuspend_wrapper: 365sys_sigsuspend_wrapper:
360 add r3, sp, #S_OFF 366 add r3, sp, #S_OFF
361 b sys_sigsuspend 367 b sys_sigsuspend
368ENDPROC(sys_sigsuspend_wrapper)
362 369
363sys_rt_sigsuspend_wrapper: 370sys_rt_sigsuspend_wrapper:
364 add r2, sp, #S_OFF 371 add r2, sp, #S_OFF
365 b sys_rt_sigsuspend 372 b sys_rt_sigsuspend
373ENDPROC(sys_rt_sigsuspend_wrapper)
366 374
367sys_sigreturn_wrapper: 375sys_sigreturn_wrapper:
368 add r0, sp, #S_OFF 376 add r0, sp, #S_OFF
369 b sys_sigreturn 377 b sys_sigreturn
378ENDPROC(sys_sigreturn_wrapper)
370 379
371sys_rt_sigreturn_wrapper: 380sys_rt_sigreturn_wrapper:
372 add r0, sp, #S_OFF 381 add r0, sp, #S_OFF
373 b sys_rt_sigreturn 382 b sys_rt_sigreturn
383ENDPROC(sys_rt_sigreturn_wrapper)
374 384
375sys_sigaltstack_wrapper: 385sys_sigaltstack_wrapper:
376 ldr r2, [sp, #S_OFF + S_SP] 386 ldr r2, [sp, #S_OFF + S_SP]
377 b do_sigaltstack 387 b do_sigaltstack
388ENDPROC(sys_sigaltstack_wrapper)
378 389
379sys_statfs64_wrapper: 390sys_statfs64_wrapper:
380 teq r1, #88 391 teq r1, #88
381 moveq r1, #84 392 moveq r1, #84
382 b sys_statfs64 393 b sys_statfs64
394ENDPROC(sys_statfs64_wrapper)
383 395
384sys_fstatfs64_wrapper: 396sys_fstatfs64_wrapper:
385 teq r1, #88 397 teq r1, #88
386 moveq r1, #84 398 moveq r1, #84
387 b sys_fstatfs64 399 b sys_fstatfs64
400ENDPROC(sys_fstatfs64_wrapper)
388 401
389/* 402/*
390 * Note: off_4k (r5) is always units of 4K. If we can't do the requested 403 * Note: off_4k (r5) is always units of 4K. If we can't do the requested
@@ -402,11 +415,14 @@ sys_mmap2:
402 str r5, [sp, #4] 415 str r5, [sp, #4]
403 b do_mmap2 416 b do_mmap2
404#endif 417#endif
418ENDPROC(sys_mmap2)
405 419
406ENTRY(pabort_ifar) 420ENTRY(pabort_ifar)
407 mrc p15, 0, r0, cr6, cr0, 2 421 mrc p15, 0, r0, cr6, cr0, 2
408ENTRY(pabort_noifar) 422ENTRY(pabort_noifar)
409 mov pc, lr 423 mov pc, lr
424ENDPROC(pabort_ifar)
425ENDPROC(pabort_noifar)
410 426
411#ifdef CONFIG_OABI_COMPAT 427#ifdef CONFIG_OABI_COMPAT
412 428
@@ -417,26 +433,31 @@ ENTRY(pabort_noifar)
417sys_oabi_pread64: 433sys_oabi_pread64:
418 stmia sp, {r3, r4} 434 stmia sp, {r3, r4}
419 b sys_pread64 435 b sys_pread64
436ENDPROC(sys_oabi_pread64)
420 437
421sys_oabi_pwrite64: 438sys_oabi_pwrite64:
422 stmia sp, {r3, r4} 439 stmia sp, {r3, r4}
423 b sys_pwrite64 440 b sys_pwrite64
441ENDPROC(sys_oabi_pwrite64)
424 442
425sys_oabi_truncate64: 443sys_oabi_truncate64:
426 mov r3, r2 444 mov r3, r2
427 mov r2, r1 445 mov r2, r1
428 b sys_truncate64 446 b sys_truncate64
447ENDPROC(sys_oabi_truncate64)
429 448
430sys_oabi_ftruncate64: 449sys_oabi_ftruncate64:
431 mov r3, r2 450 mov r3, r2
432 mov r2, r1 451 mov r2, r1
433 b sys_ftruncate64 452 b sys_ftruncate64
453ENDPROC(sys_oabi_ftruncate64)
434 454
435sys_oabi_readahead: 455sys_oabi_readahead:
436 str r3, [sp] 456 str r3, [sp]
437 mov r3, r2 457 mov r3, r2
438 mov r2, r1 458 mov r2, r1
439 b sys_readahead 459 b sys_readahead
460ENDPROC(sys_oabi_readahead)
440 461
441/* 462/*
442 * Let's declare a second syscall table for old ABI binaries 463 * Let's declare a second syscall table for old ABI binaries
diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
index e8e90346f11c..36f81d967979 100644
--- a/arch/arm/kernel/fiq.c
+++ b/arch/arm/kernel/fiq.c
@@ -45,7 +45,6 @@
45#include <asm/fiq.h> 45#include <asm/fiq.h>
46#include <asm/irq.h> 46#include <asm/irq.h>
47#include <asm/system.h> 47#include <asm/system.h>
48#include <asm/uaccess.h>
49 48
50static unsigned long no_fiq_insn; 49static unsigned long no_fiq_insn;
51 50
diff --git a/arch/arm/kernel/head-common.S b/arch/arm/kernel/head-common.S
index 1c3c6ea5f9e7..bde52df1c668 100644
--- a/arch/arm/kernel/head-common.S
+++ b/arch/arm/kernel/head-common.S
@@ -36,7 +36,6 @@ __switch_data:
36 * r2 = atags pointer 36 * r2 = atags pointer
37 * r9 = processor ID 37 * r9 = processor ID
38 */ 38 */
39 .type __mmap_switched, %function
40__mmap_switched: 39__mmap_switched:
41 adr r3, __switch_data + 4 40 adr r3, __switch_data + 4
42 41
@@ -59,6 +58,7 @@ __mmap_switched:
59 bic r4, r0, #CR_A @ Clear 'A' bit 58 bic r4, r0, #CR_A @ Clear 'A' bit
60 stmia r7, {r0, r4} @ Save control register values 59 stmia r7, {r0, r4} @ Save control register values
61 b start_kernel 60 b start_kernel
61ENDPROC(__mmap_switched)
62 62
63/* 63/*
64 * Exception handling. Something went wrong and we can't proceed. We 64 * Exception handling. Something went wrong and we can't proceed. We
@@ -69,8 +69,6 @@ __mmap_switched:
69 * and hope for the best (useful if bootloader fails to pass a proper 69 * and hope for the best (useful if bootloader fails to pass a proper
70 * machine ID for example). 70 * machine ID for example).
71 */ 71 */
72
73 .type __error_p, %function
74__error_p: 72__error_p:
75#ifdef CONFIG_DEBUG_LL 73#ifdef CONFIG_DEBUG_LL
76 adr r0, str_p1 74 adr r0, str_p1
@@ -84,8 +82,8 @@ str_p1: .asciz "\nError: unrecognized/unsupported processor variant (0x"
84str_p2: .asciz ").\n" 82str_p2: .asciz ").\n"
85 .align 83 .align
86#endif 84#endif
85ENDPROC(__error_p)
87 86
88 .type __error_a, %function
89__error_a: 87__error_a:
90#ifdef CONFIG_DEBUG_LL 88#ifdef CONFIG_DEBUG_LL
91 mov r4, r1 @ preserve machine ID 89 mov r4, r1 @ preserve machine ID
@@ -115,13 +113,14 @@ __error_a:
115 adr r0, str_a3 113 adr r0, str_a3
116 bl printascii 114 bl printascii
117 b __error 115 b __error
116ENDPROC(__error_a)
117
118str_a1: .asciz "\nError: unrecognized/unsupported machine ID (r1 = 0x" 118str_a1: .asciz "\nError: unrecognized/unsupported machine ID (r1 = 0x"
119str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n" 119str_a2: .asciz ").\n\nAvailable machine support:\n\nID (hex)\tNAME\n"
120str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n" 120str_a3: .asciz "\nPlease check your kernel config and/or bootloader.\n"
121 .align 121 .align
122#endif 122#endif
123 123
124 .type __error, %function
125__error: 124__error:
126#ifdef CONFIG_ARCH_RPC 125#ifdef CONFIG_ARCH_RPC
127/* 126/*
@@ -138,6 +137,7 @@ __error:
138#endif 137#endif
1391: mov r0, r0 1381: mov r0, r0
140 b 1b 139 b 1b
140ENDPROC(__error)
141 141
142 142
143/* 143/*
@@ -153,7 +153,6 @@ __error:
153 * r5 = proc_info pointer in physical address space 153 * r5 = proc_info pointer in physical address space
154 * r9 = cpuid (preserved) 154 * r9 = cpuid (preserved)
155 */ 155 */
156 .type __lookup_processor_type, %function
157__lookup_processor_type: 156__lookup_processor_type:
158 adr r3, 3f 157 adr r3, 3f
159 ldmda r3, {r5 - r7} 158 ldmda r3, {r5 - r7}
@@ -169,6 +168,7 @@ __lookup_processor_type:
169 blo 1b 168 blo 1b
170 mov r5, #0 @ unknown processor 169 mov r5, #0 @ unknown processor
1712: mov pc, lr 1702: mov pc, lr
171ENDPROC(__lookup_processor_type)
172 172
173/* 173/*
174 * This provides a C-API version of the above function. 174 * This provides a C-API version of the above function.
@@ -179,6 +179,7 @@ ENTRY(lookup_processor_type)
179 bl __lookup_processor_type 179 bl __lookup_processor_type
180 mov r0, r5 180 mov r0, r5
181 ldmfd sp!, {r4 - r7, r9, pc} 181 ldmfd sp!, {r4 - r7, r9, pc}
182ENDPROC(lookup_processor_type)
182 183
183/* 184/*
184 * Look in <asm/procinfo.h> and arch/arm/kernel/arch.[ch] for 185 * Look in <asm/procinfo.h> and arch/arm/kernel/arch.[ch] for
@@ -201,7 +202,6 @@ ENTRY(lookup_processor_type)
201 * r3, r4, r6 corrupted 202 * r3, r4, r6 corrupted
202 * r5 = mach_info pointer in physical address space 203 * r5 = mach_info pointer in physical address space
203 */ 204 */
204 .type __lookup_machine_type, %function
205__lookup_machine_type: 205__lookup_machine_type:
206 adr r3, 3b 206 adr r3, 3b
207 ldmia r3, {r4, r5, r6} 207 ldmia r3, {r4, r5, r6}
@@ -216,6 +216,7 @@ __lookup_machine_type:
216 blo 1b 216 blo 1b
217 mov r5, #0 @ unknown machine 217 mov r5, #0 @ unknown machine
2182: mov pc, lr 2182: mov pc, lr
219ENDPROC(__lookup_machine_type)
219 220
220/* 221/*
221 * This provides a C-API version of the above function. 222 * This provides a C-API version of the above function.
@@ -226,6 +227,7 @@ ENTRY(lookup_machine_type)
226 bl __lookup_machine_type 227 bl __lookup_machine_type
227 mov r0, r5 228 mov r0, r5
228 ldmfd sp!, {r4 - r6, pc} 229 ldmfd sp!, {r4 - r6, pc}
230ENDPROC(lookup_machine_type)
229 231
230/* Determine validity of the r2 atags pointer. The heuristic requires 232/* Determine validity of the r2 atags pointer. The heuristic requires
231 * that the pointer be aligned, in the first 16k of physical RAM and 233 * that the pointer be aligned, in the first 16k of physical RAM and
@@ -239,8 +241,6 @@ ENTRY(lookup_machine_type)
239 * r2 either valid atags pointer, or zero 241 * r2 either valid atags pointer, or zero
240 * r5, r6 corrupted 242 * r5, r6 corrupted
241 */ 243 */
242
243 .type __vet_atags, %function
244__vet_atags: 244__vet_atags:
245 tst r2, #0x3 @ aligned? 245 tst r2, #0x3 @ aligned?
246 bne 1f 246 bne 1f
@@ -257,3 +257,4 @@ __vet_atags:
257 257
2581: mov r2, #0 2581: mov r2, #0
259 mov pc, lr 259 mov pc, lr
260ENDPROC(__vet_atags)
diff --git a/arch/arm/kernel/head-nommu.S b/arch/arm/kernel/head-nommu.S
index 27329bd32037..cc87e1765ed2 100644
--- a/arch/arm/kernel/head-nommu.S
+++ b/arch/arm/kernel/head-nommu.S
@@ -33,7 +33,6 @@
33 * 33 *
34 */ 34 */
35 .section ".text.head", "ax" 35 .section ".text.head", "ax"
36 .type stext, %function
37ENTRY(stext) 36ENTRY(stext)
38 msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode 37 msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode
39 @ and irqs disabled 38 @ and irqs disabled
@@ -53,11 +52,11 @@ ENTRY(stext)
53 @ the initialization is done 52 @ the initialization is done
54 adr lr, __after_proc_init @ return (PIC) address 53 adr lr, __after_proc_init @ return (PIC) address
55 add pc, r10, #PROCINFO_INITFUNC 54 add pc, r10, #PROCINFO_INITFUNC
55ENDPROC(stext)
56 56
57/* 57/*
58 * Set the Control Register and Read the process ID. 58 * Set the Control Register and Read the process ID.
59 */ 59 */
60 .type __after_proc_init, %function
61__after_proc_init: 60__after_proc_init:
62#ifdef CONFIG_CPU_CP15 61#ifdef CONFIG_CPU_CP15
63 mrc p15, 0, r0, c1, c0, 0 @ read control reg 62 mrc p15, 0, r0, c1, c0, 0 @ read control reg
@@ -85,6 +84,7 @@ __after_proc_init:
85 84
86 mov pc, r13 @ clear the BSS and jump 85 mov pc, r13 @ clear the BSS and jump
87 @ to start_kernel 86 @ to start_kernel
87ENDPROC(__after_proc_init)
88 .ltorg 88 .ltorg
89 89
90#include "head-common.S" 90#include "head-common.S"
diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index bff4c6e90dd5..21e17dc94cb5 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -75,7 +75,6 @@
75 * circumstances, zImage) is for. 75 * circumstances, zImage) is for.
76 */ 76 */
77 .section ".text.head", "ax" 77 .section ".text.head", "ax"
78 .type stext, %function
79ENTRY(stext) 78ENTRY(stext)
80 msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode 79 msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode
81 @ and irqs disabled 80 @ and irqs disabled
@@ -100,9 +99,9 @@ ENTRY(stext)
100 @ mmu has been enabled 99 @ mmu has been enabled
101 adr lr, __enable_mmu @ return (PIC) address 100 adr lr, __enable_mmu @ return (PIC) address
102 add pc, r10, #PROCINFO_INITFUNC 101 add pc, r10, #PROCINFO_INITFUNC
102ENDPROC(stext)
103 103
104#if defined(CONFIG_SMP) 104#if defined(CONFIG_SMP)
105 .type secondary_startup, #function
106ENTRY(secondary_startup) 105ENTRY(secondary_startup)
107 /* 106 /*
108 * Common entry point for secondary CPUs. 107 * Common entry point for secondary CPUs.
@@ -128,6 +127,7 @@ ENTRY(secondary_startup)
128 adr lr, __enable_mmu @ return address 127 adr lr, __enable_mmu @ return address
129 add pc, r10, #PROCINFO_INITFUNC @ initialise processor 128 add pc, r10, #PROCINFO_INITFUNC @ initialise processor
130 @ (return control reg) 129 @ (return control reg)
130ENDPROC(secondary_startup)
131 131
132 /* 132 /*
133 * r6 = &secondary_data 133 * r6 = &secondary_data
@@ -136,6 +136,7 @@ ENTRY(__secondary_switched)
136 ldr sp, [r7, #4] @ get secondary_data.stack 136 ldr sp, [r7, #4] @ get secondary_data.stack
137 mov fp, #0 137 mov fp, #0
138 b secondary_start_kernel 138 b secondary_start_kernel
139ENDPROC(__secondary_switched)
139 140
140 .type __secondary_data, %object 141 .type __secondary_data, %object
141__secondary_data: 142__secondary_data:
@@ -151,7 +152,6 @@ __secondary_data:
151 * this is just loading the page table pointer and domain access 152 * this is just loading the page table pointer and domain access
152 * registers. 153 * registers.
153 */ 154 */
154 .type __enable_mmu, %function
155__enable_mmu: 155__enable_mmu:
156#ifdef CONFIG_ALIGNMENT_TRAP 156#ifdef CONFIG_ALIGNMENT_TRAP
157 orr r0, r0, #CR_A 157 orr r0, r0, #CR_A
@@ -174,6 +174,7 @@ __enable_mmu:
174 mcr p15, 0, r5, c3, c0, 0 @ load domain access register 174 mcr p15, 0, r5, c3, c0, 0 @ load domain access register
175 mcr p15, 0, r4, c2, c0, 0 @ load page table pointer 175 mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
176 b __turn_mmu_on 176 b __turn_mmu_on
177ENDPROC(__enable_mmu)
177 178
178/* 179/*
179 * Enable the MMU. This completely changes the structure of the visible 180 * Enable the MMU. This completely changes the structure of the visible
@@ -187,7 +188,6 @@ __enable_mmu:
187 * other registers depend on the function called upon completion 188 * other registers depend on the function called upon completion
188 */ 189 */
189 .align 5 190 .align 5
190 .type __turn_mmu_on, %function
191__turn_mmu_on: 191__turn_mmu_on:
192 mov r0, r0 192 mov r0, r0
193 mcr p15, 0, r0, c1, c0, 0 @ write control reg 193 mcr p15, 0, r0, c1, c0, 0 @ write control reg
@@ -195,7 +195,7 @@ __turn_mmu_on:
195 mov r3, r3 195 mov r3, r3
196 mov r3, r3 196 mov r3, r3
197 mov pc, r13 197 mov pc, r13
198 198ENDPROC(__turn_mmu_on)
199 199
200 200
201/* 201/*
@@ -211,7 +211,6 @@ __turn_mmu_on:
211 * r0, r3, r6, r7 corrupted 211 * r0, r3, r6, r7 corrupted
212 * r4 = physical page table address 212 * r4 = physical page table address
213 */ 213 */
214 .type __create_page_tables, %function
215__create_page_tables: 214__create_page_tables:
216 pgtbl r4 @ page table address 215 pgtbl r4 @ page table address
217 216
@@ -325,6 +324,7 @@ __create_page_tables:
325#endif 324#endif
326#endif 325#endif
327 mov pc, lr 326 mov pc, lr
327ENDPROC(__create_page_tables)
328 .ltorg 328 .ltorg
329 329
330#include "head-common.S" 330#include "head-common.S"
diff --git a/arch/arm/kernel/init_task.c b/arch/arm/kernel/init_task.c
index 8b8c9d38a761..0bbf80625395 100644
--- a/arch/arm/kernel/init_task.c
+++ b/arch/arm/kernel/init_task.c
@@ -8,8 +8,8 @@
8#include <linux/init.h> 8#include <linux/init.h>
9#include <linux/init_task.h> 9#include <linux/init_task.h>
10#include <linux/mqueue.h> 10#include <linux/mqueue.h>
11#include <linux/uaccess.h>
11 12
12#include <asm/uaccess.h>
13#include <asm/pgtable.h> 13#include <asm/pgtable.h>
14 14
15static struct fs_struct init_fs = INIT_FS; 15static struct fs_struct init_fs = INIT_FS;
diff --git a/arch/arm/kernel/io.c b/arch/arm/kernel/io.c
index 1f6822dfae74..f4470307edb8 100644
--- a/arch/arm/kernel/io.c
+++ b/arch/arm/kernel/io.c
@@ -1,7 +1,6 @@
1#include <linux/module.h> 1#include <linux/module.h>
2#include <linux/types.h> 2#include <linux/types.h>
3 3#include <linux/io.h>
4#include <asm/io.h>
5 4
6/* 5/*
7 * Copy data from IO memory space to "real" memory space. 6 * Copy data from IO memory space to "real" memory space.
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index f88efb135b70..2f3eb795fa6e 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -112,18 +112,17 @@ static struct irq_desc bad_irq_desc = {
112asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs) 112asmlinkage void __exception asm_do_IRQ(unsigned int irq, struct pt_regs *regs)
113{ 113{
114 struct pt_regs *old_regs = set_irq_regs(regs); 114 struct pt_regs *old_regs = set_irq_regs(regs);
115 struct irq_desc *desc = irq_desc + irq; 115
116 irq_enter();
116 117
117 /* 118 /*
118 * Some hardware gives randomly wrong interrupts. Rather 119 * Some hardware gives randomly wrong interrupts. Rather
119 * than crashing, do something sensible. 120 * than crashing, do something sensible.
120 */ 121 */
121 if (irq >= NR_IRQS) 122 if (irq >= NR_IRQS)
122 desc = &bad_irq_desc; 123 handle_bad_irq(irq, &bad_irq_desc);
123 124 else
124 irq_enter(); 125 generic_handle_irq(irq);
125
126 desc_handle_irq(irq, desc);
127 126
128 /* AT91 specific workaround */ 127 /* AT91 specific workaround */
129 irq_finish(irq); 128 irq_finish(irq);
diff --git a/arch/arm/kernel/kprobes-decode.c b/arch/arm/kernel/kprobes-decode.c
index b4565bb133c1..da1f94906a4e 100644
--- a/arch/arm/kernel/kprobes-decode.c
+++ b/arch/arm/kernel/kprobes-decode.c
@@ -488,7 +488,7 @@ static void __kprobes simulate_ldm1stm1(struct kprobe *p, struct pt_regs *regs)
488 488
489 if (!ubit) 489 if (!ubit)
490 addr -= reg_count; 490 addr -= reg_count;
491 addr += (!pbit ^ !ubit); 491 addr += (!pbit == !ubit);
492 492
493 reg_bit_vector = insn & 0xffff; 493 reg_bit_vector = insn & 0xffff;
494 while (reg_bit_vector) { 494 while (reg_bit_vector) {
@@ -503,7 +503,7 @@ static void __kprobes simulate_ldm1stm1(struct kprobe *p, struct pt_regs *regs)
503 if (wbit) { 503 if (wbit) {
504 if (!ubit) 504 if (!ubit)
505 addr -= reg_count; 505 addr -= reg_count;
506 addr -= (!pbit ^ !ubit); 506 addr -= (!pbit == !ubit);
507 regs->uregs[rn] = (long)addr; 507 regs->uregs[rn] = (long)addr;
508 } 508 }
509} 509}
diff --git a/arch/arm/kernel/kprobes.c b/arch/arm/kernel/kprobes.c
index d28513f14d05..3f9abe0e9aff 100644
--- a/arch/arm/kernel/kprobes.c
+++ b/arch/arm/kernel/kprobes.c
@@ -200,9 +200,12 @@ void __kprobes kprobe_handler(struct pt_regs *regs)
200 } 200 }
201} 201}
202 202
203int kprobe_trap_handler(struct pt_regs *regs, unsigned int instr) 203static int __kprobes kprobe_trap_handler(struct pt_regs *regs, unsigned int instr)
204{ 204{
205 unsigned long flags;
206 local_irq_save(flags);
205 kprobe_handler(regs); 207 kprobe_handler(regs);
208 local_irq_restore(flags);
206 return 0; 209 return 0;
207} 210}
208 211
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
index fae5beb3c3d6..440dc62cdc3a 100644
--- a/arch/arm/kernel/machine_kexec.c
+++ b/arch/arm/kernel/machine_kexec.c
@@ -6,10 +6,10 @@
6#include <linux/kexec.h> 6#include <linux/kexec.h>
7#include <linux/delay.h> 7#include <linux/delay.h>
8#include <linux/reboot.h> 8#include <linux/reboot.h>
9#include <linux/io.h>
9#include <asm/pgtable.h> 10#include <asm/pgtable.h>
10#include <asm/pgalloc.h> 11#include <asm/pgalloc.h>
11#include <asm/mmu_context.h> 12#include <asm/mmu_context.h>
12#include <asm/io.h>
13#include <asm/cacheflush.h> 13#include <asm/cacheflush.h>
14#include <asm/mach-types.h> 14#include <asm/mach-types.h>
15 15
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
index a68259a0cccd..9203ba7d58ee 100644
--- a/arch/arm/kernel/module.c
+++ b/arch/arm/kernel/module.c
@@ -47,7 +47,7 @@ void *module_alloc(unsigned long size)
47 if (!area) 47 if (!area)
48 return NULL; 48 return NULL;
49 49
50 return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL); 50 return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL_EXEC);
51} 51}
52#else /* CONFIG_MMU */ 52#else /* CONFIG_MMU */
53void *module_alloc(unsigned long size) 53void *module_alloc(unsigned long size)
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 3fd882337064..d3ea6fa89521 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -28,12 +28,12 @@
28#include <linux/pm.h> 28#include <linux/pm.h>
29#include <linux/tick.h> 29#include <linux/tick.h>
30#include <linux/utsname.h> 30#include <linux/utsname.h>
31#include <linux/uaccess.h>
31 32
32#include <asm/leds.h> 33#include <asm/leds.h>
33#include <asm/processor.h> 34#include <asm/processor.h>
34#include <asm/system.h> 35#include <asm/system.h>
35#include <asm/thread_notify.h> 36#include <asm/thread_notify.h>
36#include <asm/uaccess.h>
37#include <asm/mach/time.h> 37#include <asm/mach/time.h>
38 38
39static const char *processor_modes[] = { 39static const char *processor_modes[] = {
@@ -267,35 +267,6 @@ void show_regs(struct pt_regs * regs)
267 __backtrace(); 267 __backtrace();
268} 268}
269 269
270void show_fpregs(struct user_fp *regs)
271{
272 int i;
273
274 for (i = 0; i < 8; i++) {
275 unsigned long *p;
276 char type;
277
278 p = (unsigned long *)(regs->fpregs + i);
279
280 switch (regs->ftype[i]) {
281 case 1: type = 'f'; break;
282 case 2: type = 'd'; break;
283 case 3: type = 'e'; break;
284 default: type = '?'; break;
285 }
286 if (regs->init_flag)
287 type = '?';
288
289 printk(" f%d(%c): %08lx %08lx %08lx%c",
290 i, type, p[0], p[1], p[2], i & 1 ? '\n' : ' ');
291 }
292
293
294 printk("FPSR: %08lx FPCR: %08lx\n",
295 (unsigned long)regs->fpsr,
296 (unsigned long)regs->fpcr);
297}
298
299/* 270/*
300 * Free current thread data structures etc.. 271 * Free current thread data structures etc..
301 */ 272 */
@@ -414,7 +385,7 @@ unsigned long get_wchan(struct task_struct *p)
414 do { 385 do {
415 if (fp < stack_start || fp > stack_end) 386 if (fp < stack_start || fp > stack_end)
416 return 0; 387 return 0;
417 lr = pc_pointer (((unsigned long *)fp)[-1]); 388 lr = ((unsigned long *)fp)[-1];
418 if (!in_sched_functions(lr)) 389 if (!in_sched_functions(lr))
419 return lr; 390 return lr;
420 fp = *(unsigned long *) (fp - 12); 391 fp = *(unsigned long *) (fp - 12);
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
index 4b05dc5c1023..df653ea59250 100644
--- a/arch/arm/kernel/ptrace.c
+++ b/arch/arm/kernel/ptrace.c
@@ -18,8 +18,8 @@
18#include <linux/security.h> 18#include <linux/security.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/signal.h> 20#include <linux/signal.h>
21#include <linux/uaccess.h>
21 22
22#include <asm/uaccess.h>
23#include <asm/pgtable.h> 23#include <asm/pgtable.h>
24#include <asm/system.h> 24#include <asm/system.h>
25#include <asm/traps.h> 25#include <asm/traps.h>
@@ -126,7 +126,7 @@ ptrace_getrn(struct task_struct *child, unsigned long insn)
126 126
127 val = get_user_reg(child, reg); 127 val = get_user_reg(child, reg);
128 if (reg == 15) 128 if (reg == 15)
129 val = pc_pointer(val + 8); 129 val += 8;
130 130
131 return val; 131 return val;
132} 132}
@@ -278,8 +278,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in
278 else 278 else
279 base -= aluop2; 279 base -= aluop2;
280 } 280 }
281 if (read_u32(child, base, &alt) == 0) 281 read_u32(child, base, &alt);
282 alt = pc_pointer(alt);
283 } 282 }
284 break; 283 break;
285 284
@@ -305,8 +304,7 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in
305 304
306 base = ptrace_getrn(child, insn); 305 base = ptrace_getrn(child, insn);
307 306
308 if (read_u32(child, base + nr_regs, &alt) == 0) 307 read_u32(child, base + nr_regs, &alt);
309 alt = pc_pointer(alt);
310 break; 308 break;
311 } 309 }
312 break; 310 break;
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 2ca7038b67a7..1f1eecca7f55 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -26,11 +26,13 @@
26#include <linux/fs.h> 26#include <linux/fs.h>
27 27
28#include <asm/cpu.h> 28#include <asm/cpu.h>
29#include <asm/cputype.h>
29#include <asm/elf.h> 30#include <asm/elf.h>
30#include <asm/procinfo.h> 31#include <asm/procinfo.h>
31#include <asm/setup.h> 32#include <asm/setup.h>
32#include <asm/mach-types.h> 33#include <asm/mach-types.h>
33#include <asm/cacheflush.h> 34#include <asm/cacheflush.h>
35#include <asm/cachetype.h>
34#include <asm/tlbflush.h> 36#include <asm/tlbflush.h>
35 37
36#include <asm/mach/arch.h> 38#include <asm/mach/arch.h>
@@ -59,13 +61,14 @@ __setup("fpe=", fpe_setup);
59 61
60extern void paging_init(struct meminfo *, struct machine_desc *desc); 62extern void paging_init(struct meminfo *, struct machine_desc *desc);
61extern void reboot_setup(char *str); 63extern void reboot_setup(char *str);
62extern int root_mountflags; 64extern void _text, _etext, __data_start, _edata, _end;
63extern void _stext, _text, _etext, __data_start, _edata, _end;
64 65
65unsigned int processor_id; 66unsigned int processor_id;
66EXPORT_SYMBOL(processor_id); 67EXPORT_SYMBOL(processor_id);
67unsigned int __machine_arch_type; 68unsigned int __machine_arch_type;
68EXPORT_SYMBOL(__machine_arch_type); 69EXPORT_SYMBOL(__machine_arch_type);
70unsigned int cacheid;
71EXPORT_SYMBOL(cacheid);
69 72
70unsigned int __atags_pointer __initdata; 73unsigned int __atags_pointer __initdata;
71 74
@@ -81,8 +84,6 @@ EXPORT_SYMBOL(system_serial_high);
81unsigned int elf_hwcap; 84unsigned int elf_hwcap;
82EXPORT_SYMBOL(elf_hwcap); 85EXPORT_SYMBOL(elf_hwcap);
83 86
84unsigned long __initdata vmalloc_reserve = 128 << 20;
85
86 87
87#ifdef MULTI_CPU 88#ifdef MULTI_CPU
88struct processor processor; 89struct processor processor;
@@ -111,9 +112,6 @@ static struct stack stacks[NR_CPUS];
111char elf_platform[ELF_PLATFORM_SIZE]; 112char elf_platform[ELF_PLATFORM_SIZE];
112EXPORT_SYMBOL(elf_platform); 113EXPORT_SYMBOL(elf_platform);
113 114
114unsigned long phys_initrd_start __initdata = 0;
115unsigned long phys_initrd_size __initdata = 0;
116
117static struct meminfo meminfo __initdata = { 0, }; 115static struct meminfo meminfo __initdata = { 0, };
118static const char *cpu_name; 116static const char *cpu_name;
119static const char *machine_name; 117static const char *machine_name;
@@ -178,63 +176,6 @@ static struct resource io_res[] = {
178#define lp1 io_res[1] 176#define lp1 io_res[1]
179#define lp2 io_res[2] 177#define lp2 io_res[2]
180 178
181static const char *cache_types[16] = {
182 "write-through",
183 "write-back",
184 "write-back",
185 "undefined 3",
186 "undefined 4",
187 "undefined 5",
188 "write-back",
189 "write-back",
190 "undefined 8",
191 "undefined 9",
192 "undefined 10",
193 "undefined 11",
194 "undefined 12",
195 "undefined 13",
196 "write-back",
197 "undefined 15",
198};
199
200static const char *cache_clean[16] = {
201 "not required",
202 "read-block",
203 "cp15 c7 ops",
204 "undefined 3",
205 "undefined 4",
206 "undefined 5",
207 "cp15 c7 ops",
208 "cp15 c7 ops",
209 "undefined 8",
210 "undefined 9",
211 "undefined 10",
212 "undefined 11",
213 "undefined 12",
214 "undefined 13",
215 "cp15 c7 ops",
216 "undefined 15",
217};
218
219static const char *cache_lockdown[16] = {
220 "not supported",
221 "not supported",
222 "not supported",
223 "undefined 3",
224 "undefined 4",
225 "undefined 5",
226 "format A",
227 "format B",
228 "undefined 8",
229 "undefined 9",
230 "undefined 10",
231 "undefined 11",
232 "undefined 12",
233 "undefined 13",
234 "format C",
235 "undefined 15",
236};
237
238static const char *proc_arch[] = { 179static const char *proc_arch[] = {
239 "undefined/unknown", 180 "undefined/unknown",
240 "3", 181 "3",
@@ -255,61 +196,19 @@ static const char *proc_arch[] = {
255 "?(17)", 196 "?(17)",
256}; 197};
257 198
258#define CACHE_TYPE(x) (((x) >> 25) & 15)
259#define CACHE_S(x) ((x) & (1 << 24))
260#define CACHE_DSIZE(x) (((x) >> 12) & 4095) /* only if S=1 */
261#define CACHE_ISIZE(x) ((x) & 4095)
262
263#define CACHE_SIZE(y) (((y) >> 6) & 7)
264#define CACHE_ASSOC(y) (((y) >> 3) & 7)
265#define CACHE_M(y) ((y) & (1 << 2))
266#define CACHE_LINE(y) ((y) & 3)
267
268static inline void dump_cache(const char *prefix, int cpu, unsigned int cache)
269{
270 unsigned int mult = 2 + (CACHE_M(cache) ? 1 : 0);
271
272 printk("CPU%u: %s: %d bytes, associativity %d, %d byte lines, %d sets\n",
273 cpu, prefix,
274 mult << (8 + CACHE_SIZE(cache)),
275 (mult << CACHE_ASSOC(cache)) >> 1,
276 8 << CACHE_LINE(cache),
277 1 << (6 + CACHE_SIZE(cache) - CACHE_ASSOC(cache) -
278 CACHE_LINE(cache)));
279}
280
281static void __init dump_cpu_info(int cpu)
282{
283 unsigned int info = read_cpuid(CPUID_CACHETYPE);
284
285 if (info != processor_id) {
286 printk("CPU%u: D %s %s cache\n", cpu, cache_is_vivt() ? "VIVT" : "VIPT",
287 cache_types[CACHE_TYPE(info)]);
288 if (CACHE_S(info)) {
289 dump_cache("I cache", cpu, CACHE_ISIZE(info));
290 dump_cache("D cache", cpu, CACHE_DSIZE(info));
291 } else {
292 dump_cache("cache", cpu, CACHE_ISIZE(info));
293 }
294 }
295
296 if (arch_is_coherent())
297 printk("Cache coherency enabled\n");
298}
299
300int cpu_architecture(void) 199int cpu_architecture(void)
301{ 200{
302 int cpu_arch; 201 int cpu_arch;
303 202
304 if ((processor_id & 0x0008f000) == 0) { 203 if ((read_cpuid_id() & 0x0008f000) == 0) {
305 cpu_arch = CPU_ARCH_UNKNOWN; 204 cpu_arch = CPU_ARCH_UNKNOWN;
306 } else if ((processor_id & 0x0008f000) == 0x00007000) { 205 } else if ((read_cpuid_id() & 0x0008f000) == 0x00007000) {
307 cpu_arch = (processor_id & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3; 206 cpu_arch = (read_cpuid_id() & (1 << 23)) ? CPU_ARCH_ARMv4T : CPU_ARCH_ARMv3;
308 } else if ((processor_id & 0x00080000) == 0x00000000) { 207 } else if ((read_cpuid_id() & 0x00080000) == 0x00000000) {
309 cpu_arch = (processor_id >> 16) & 7; 208 cpu_arch = (read_cpuid_id() >> 16) & 7;
310 if (cpu_arch) 209 if (cpu_arch)
311 cpu_arch += CPU_ARCH_ARMv3; 210 cpu_arch += CPU_ARCH_ARMv3;
312 } else if ((processor_id & 0x000f0000) == 0x000f0000) { 211 } else if ((read_cpuid_id() & 0x000f0000) == 0x000f0000) {
313 unsigned int mmfr0; 212 unsigned int mmfr0;
314 213
315 /* Revised CPUID format. Read the Memory Model Feature 214 /* Revised CPUID format. Read the Memory Model Feature
@@ -330,6 +229,34 @@ int cpu_architecture(void)
330 return cpu_arch; 229 return cpu_arch;
331} 230}
332 231
232static void __init cacheid_init(void)
233{
234 unsigned int cachetype = read_cpuid_cachetype();
235 unsigned int arch = cpu_architecture();
236
237 if (arch >= CPU_ARCH_ARMv7) {
238 cacheid = CACHEID_VIPT_NONALIASING;
239 if ((cachetype & (3 << 14)) == 1 << 14)
240 cacheid |= CACHEID_ASID_TAGGED;
241 } else if (arch >= CPU_ARCH_ARMv6) {
242 if (cachetype & (1 << 23))
243 cacheid = CACHEID_VIPT_ALIASING;
244 else
245 cacheid = CACHEID_VIPT_NONALIASING;
246 } else {
247 cacheid = CACHEID_VIVT;
248 }
249
250 printk("CPU: %s data cache, %s instruction cache\n",
251 cache_is_vivt() ? "VIVT" :
252 cache_is_vipt_aliasing() ? "VIPT aliasing" :
253 cache_is_vipt_nonaliasing() ? "VIPT nonaliasing" : "unknown",
254 cache_is_vivt() ? "VIVT" :
255 icache_is_vivt_asid_tagged() ? "VIVT ASID tagged" :
256 cache_is_vipt_aliasing() ? "VIPT aliasing" :
257 cache_is_vipt_nonaliasing() ? "VIPT nonaliasing" : "unknown");
258}
259
333/* 260/*
334 * These functions re-use the assembly code in head.S, which 261 * These functions re-use the assembly code in head.S, which
335 * already provide the required functionality. 262 * already provide the required functionality.
@@ -346,10 +273,10 @@ static void __init setup_processor(void)
346 * types. The linker builds this table for us from the 273 * types. The linker builds this table for us from the
347 * entries in arch/arm/mm/proc-*.S 274 * entries in arch/arm/mm/proc-*.S
348 */ 275 */
349 list = lookup_processor_type(processor_id); 276 list = lookup_processor_type(read_cpuid_id());
350 if (!list) { 277 if (!list) {
351 printk("CPU configuration botched (ID %08x), unable " 278 printk("CPU configuration botched (ID %08x), unable "
352 "to continue.\n", processor_id); 279 "to continue.\n", read_cpuid_id());
353 while (1); 280 while (1);
354 } 281 }
355 282
@@ -369,7 +296,7 @@ static void __init setup_processor(void)
369#endif 296#endif
370 297
371 printk("CPU: %s [%08x] revision %d (ARMv%s), cr=%08lx\n", 298 printk("CPU: %s [%08x] revision %d (ARMv%s), cr=%08lx\n",
372 cpu_name, processor_id, (int)processor_id & 15, 299 cpu_name, read_cpuid_id(), read_cpuid_id() & 15,
373 proc_arch[cpu_architecture()], cr_alignment); 300 proc_arch[cpu_architecture()], cr_alignment);
374 301
375 sprintf(init_utsname()->machine, "%s%c", list->arch_name, ENDIANNESS); 302 sprintf(init_utsname()->machine, "%s%c", list->arch_name, ENDIANNESS);
@@ -379,14 +306,14 @@ static void __init setup_processor(void)
379 elf_hwcap &= ~HWCAP_THUMB; 306 elf_hwcap &= ~HWCAP_THUMB;
380#endif 307#endif
381 308
309 cacheid_init();
382 cpu_proc_init(); 310 cpu_proc_init();
383} 311}
384 312
385/* 313/*
386 * cpu_init - initialise one CPU. 314 * cpu_init - initialise one CPU.
387 * 315 *
388 * cpu_init dumps the cache information, initialises SMP specific 316 * cpu_init sets up the per-CPU stacks.
389 * information, and sets up the per-CPU stacks.
390 */ 317 */
391void cpu_init(void) 318void cpu_init(void)
392{ 319{
@@ -398,9 +325,6 @@ void cpu_init(void)
398 BUG(); 325 BUG();
399 } 326 }
400 327
401 if (system_state == SYSTEM_BOOTING)
402 dump_cpu_info(cpu);
403
404 /* 328 /*
405 * setup stacks for re-entrant exception handlers 329 * setup stacks for re-entrant exception handlers
406 */ 330 */
@@ -443,20 +367,6 @@ static struct machine_desc * __init setup_machine(unsigned int nr)
443 return list; 367 return list;
444} 368}
445 369
446static void __init early_initrd(char **p)
447{
448 unsigned long start, size;
449
450 start = memparse(*p, p);
451 if (**p == ',') {
452 size = memparse((*p) + 1, p);
453
454 phys_initrd_start = start;
455 phys_initrd_size = size;
456 }
457}
458__early_param("initrd=", early_initrd);
459
460static void __init arm_add_memory(unsigned long start, unsigned long size) 370static void __init arm_add_memory(unsigned long start, unsigned long size)
461{ 371{
462 struct membank *bank; 372 struct membank *bank;
@@ -503,17 +413,6 @@ static void __init early_mem(char **p)
503__early_param("mem=", early_mem); 413__early_param("mem=", early_mem);
504 414
505/* 415/*
506 * vmalloc=size forces the vmalloc area to be exactly 'size'
507 * bytes. This can be used to increase (or decrease) the vmalloc
508 * area - the default is 128m.
509 */
510static void __init early_vmalloc(char **arg)
511{
512 vmalloc_reserve = memparse(*arg, arg);
513}
514__early_param("vmalloc=", early_vmalloc);
515
516/*
517 * Initial parsing of the command line. 416 * Initial parsing of the command line.
518 */ 417 */
519static void __init parse_cmdline(char **cmdline_p, char *from) 418static void __init parse_cmdline(char **cmdline_p, char *from)
@@ -527,12 +426,12 @@ static void __init parse_cmdline(char **cmdline_p, char *from)
527 struct early_params *p; 426 struct early_params *p;
528 427
529 for (p = &__early_begin; p < &__early_end; p++) { 428 for (p = &__early_begin; p < &__early_end; p++) {
530 int len = strlen(p->arg); 429 int arglen = strlen(p->arg);
531 430
532 if (memcmp(from, p->arg, len) == 0) { 431 if (memcmp(from, p->arg, arglen) == 0) {
533 if (to != command_line) 432 if (to != command_line)
534 to -= 1; 433 to -= 1;
535 from += len; 434 from += arglen;
536 p->fn(&from); 435 p->fn(&from);
537 436
538 while (*from != ' ' && *from != '\0') 437 while (*from != ' ' && *from != '\0')
@@ -579,18 +478,13 @@ request_standard_resources(struct meminfo *mi, struct machine_desc *mdesc)
579 kernel_data.end = virt_to_phys(&_end - 1); 478 kernel_data.end = virt_to_phys(&_end - 1);
580 479
581 for (i = 0; i < mi->nr_banks; i++) { 480 for (i = 0; i < mi->nr_banks; i++) {
582 unsigned long virt_start, virt_end;
583
584 if (mi->bank[i].size == 0) 481 if (mi->bank[i].size == 0)
585 continue; 482 continue;
586 483
587 virt_start = __phys_to_virt(mi->bank[i].start);
588 virt_end = virt_start + mi->bank[i].size - 1;
589
590 res = alloc_bootmem_low(sizeof(*res)); 484 res = alloc_bootmem_low(sizeof(*res));
591 res->name = "System RAM"; 485 res->name = "System RAM";
592 res->start = __virt_to_phys(virt_start); 486 res->start = mi->bank[i].start;
593 res->end = __virt_to_phys(virt_end); 487 res->end = mi->bank[i].start + mi->bank[i].size - 1;
594 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; 488 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
595 489
596 request_resource(&iomem_resource, res); 490 request_resource(&iomem_resource, res);
@@ -694,26 +588,6 @@ static int __init parse_tag_ramdisk(const struct tag *tag)
694 588
695__tagtable(ATAG_RAMDISK, parse_tag_ramdisk); 589__tagtable(ATAG_RAMDISK, parse_tag_ramdisk);
696 590
697static int __init parse_tag_initrd(const struct tag *tag)
698{
699 printk(KERN_WARNING "ATAG_INITRD is deprecated; "
700 "please update your bootloader.\n");
701 phys_initrd_start = __virt_to_phys(tag->u.initrd.start);
702 phys_initrd_size = tag->u.initrd.size;
703 return 0;
704}
705
706__tagtable(ATAG_INITRD, parse_tag_initrd);
707
708static int __init parse_tag_initrd2(const struct tag *tag)
709{
710 phys_initrd_start = tag->u.initrd.start;
711 phys_initrd_size = tag->u.initrd.size;
712 return 0;
713}
714
715__tagtable(ATAG_INITRD2, parse_tag_initrd2);
716
717static int __init parse_tag_serialnr(const struct tag *tag) 591static int __init parse_tag_serialnr(const struct tag *tag)
718{ 592{
719 system_serial_low = tag->u.serialnr.low; 593 system_serial_low = tag->u.serialnr.low;
@@ -901,28 +775,12 @@ static const char *hwcap_str[] = {
901 NULL 775 NULL
902}; 776};
903 777
904static void
905c_show_cache(struct seq_file *m, const char *type, unsigned int cache)
906{
907 unsigned int mult = 2 + (CACHE_M(cache) ? 1 : 0);
908
909 seq_printf(m, "%s size\t\t: %d\n"
910 "%s assoc\t\t: %d\n"
911 "%s line length\t: %d\n"
912 "%s sets\t\t: %d\n",
913 type, mult << (8 + CACHE_SIZE(cache)),
914 type, (mult << CACHE_ASSOC(cache)) >> 1,
915 type, 8 << CACHE_LINE(cache),
916 type, 1 << (6 + CACHE_SIZE(cache) - CACHE_ASSOC(cache) -
917 CACHE_LINE(cache)));
918}
919
920static int c_show(struct seq_file *m, void *v) 778static int c_show(struct seq_file *m, void *v)
921{ 779{
922 int i; 780 int i;
923 781
924 seq_printf(m, "Processor\t: %s rev %d (%s)\n", 782 seq_printf(m, "Processor\t: %s rev %d (%s)\n",
925 cpu_name, (int)processor_id & 15, elf_platform); 783 cpu_name, read_cpuid_id() & 15, elf_platform);
926 784
927#if defined(CONFIG_SMP) 785#if defined(CONFIG_SMP)
928 for_each_online_cpu(i) { 786 for_each_online_cpu(i) {
@@ -949,47 +807,26 @@ static int c_show(struct seq_file *m, void *v)
949 if (elf_hwcap & (1 << i)) 807 if (elf_hwcap & (1 << i))
950 seq_printf(m, "%s ", hwcap_str[i]); 808 seq_printf(m, "%s ", hwcap_str[i]);
951 809
952 seq_printf(m, "\nCPU implementer\t: 0x%02x\n", processor_id >> 24); 810 seq_printf(m, "\nCPU implementer\t: 0x%02x\n", read_cpuid_id() >> 24);
953 seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]); 811 seq_printf(m, "CPU architecture: %s\n", proc_arch[cpu_architecture()]);
954 812
955 if ((processor_id & 0x0008f000) == 0x00000000) { 813 if ((read_cpuid_id() & 0x0008f000) == 0x00000000) {
956 /* pre-ARM7 */ 814 /* pre-ARM7 */
957 seq_printf(m, "CPU part\t: %07x\n", processor_id >> 4); 815 seq_printf(m, "CPU part\t: %07x\n", read_cpuid_id() >> 4);
958 } else { 816 } else {
959 if ((processor_id & 0x0008f000) == 0x00007000) { 817 if ((read_cpuid_id() & 0x0008f000) == 0x00007000) {
960 /* ARM7 */ 818 /* ARM7 */
961 seq_printf(m, "CPU variant\t: 0x%02x\n", 819 seq_printf(m, "CPU variant\t: 0x%02x\n",
962 (processor_id >> 16) & 127); 820 (read_cpuid_id() >> 16) & 127);
963 } else { 821 } else {
964 /* post-ARM7 */ 822 /* post-ARM7 */
965 seq_printf(m, "CPU variant\t: 0x%x\n", 823 seq_printf(m, "CPU variant\t: 0x%x\n",
966 (processor_id >> 20) & 15); 824 (read_cpuid_id() >> 20) & 15);
967 } 825 }
968 seq_printf(m, "CPU part\t: 0x%03x\n", 826 seq_printf(m, "CPU part\t: 0x%03x\n",
969 (processor_id >> 4) & 0xfff); 827 (read_cpuid_id() >> 4) & 0xfff);
970 }
971 seq_printf(m, "CPU revision\t: %d\n", processor_id & 15);
972
973 {
974 unsigned int cache_info = read_cpuid(CPUID_CACHETYPE);
975 if (cache_info != processor_id) {
976 seq_printf(m, "Cache type\t: %s\n"
977 "Cache clean\t: %s\n"
978 "Cache lockdown\t: %s\n"
979 "Cache format\t: %s\n",
980 cache_types[CACHE_TYPE(cache_info)],
981 cache_clean[CACHE_TYPE(cache_info)],
982 cache_lockdown[CACHE_TYPE(cache_info)],
983 CACHE_S(cache_info) ? "Harvard" : "Unified");
984
985 if (CACHE_S(cache_info)) {
986 c_show_cache(m, "I", CACHE_ISIZE(cache_info));
987 c_show_cache(m, "D", CACHE_DSIZE(cache_info));
988 } else {
989 c_show_cache(m, "Cache", CACHE_ISIZE(cache_info));
990 }
991 }
992 } 828 }
829 seq_printf(m, "CPU revision\t: %d\n", read_cpuid_id() & 15);
993 830
994 seq_puts(m, "\n"); 831 seq_puts(m, "\n");
995 832
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index ef2f86a5e78a..80b8b5c7e07a 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -11,11 +11,11 @@
11#include <linux/signal.h> 11#include <linux/signal.h>
12#include <linux/personality.h> 12#include <linux/personality.h>
13#include <linux/freezer.h> 13#include <linux/freezer.h>
14#include <linux/uaccess.h>
14 15
15#include <asm/elf.h> 16#include <asm/elf.h>
16#include <asm/cacheflush.h> 17#include <asm/cacheflush.h>
17#include <asm/ucontext.h> 18#include <asm/ucontext.h>
18#include <asm/uaccess.h>
19#include <asm/unistd.h> 19#include <asm/unistd.h>
20 20
21#include "ptrace.h" 21#include "ptrace.h"
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c
index 0128687ba0f7..b3ec641b5cf8 100644
--- a/arch/arm/kernel/sys_arm.c
+++ b/arch/arm/kernel/sys_arm.c
@@ -27,8 +27,7 @@
27#include <linux/file.h> 27#include <linux/file.h>
28#include <linux/utsname.h> 28#include <linux/utsname.h>
29#include <linux/ipc.h> 29#include <linux/ipc.h>
30 30#include <linux/uaccess.h>
31#include <asm/uaccess.h>
32 31
33extern unsigned long do_mremap(unsigned long addr, unsigned long old_len, 32extern unsigned long do_mremap(unsigned long addr, unsigned long old_len,
34 unsigned long new_len, unsigned long flags, 33 unsigned long new_len, unsigned long flags,
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c
index 96ab5f52949c..42623db7f870 100644
--- a/arch/arm/kernel/sys_oabi-compat.c
+++ b/arch/arm/kernel/sys_oabi-compat.c
@@ -82,7 +82,7 @@
82#include <linux/socket.h> 82#include <linux/socket.h>
83#include <linux/net.h> 83#include <linux/net.h>
84#include <linux/ipc.h> 84#include <linux/ipc.h>
85#include <asm/uaccess.h> 85#include <linux/uaccess.h>
86 86
87struct oldabi_stat64 { 87struct oldabi_stat64 {
88 unsigned long long st_dev; 88 unsigned long long st_dev;
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
index 368d171754cf..c68b44aa88d2 100644
--- a/arch/arm/kernel/time.c
+++ b/arch/arm/kernel/time.c
@@ -59,7 +59,7 @@ unsigned long profile_pc(struct pt_regs *regs)
59 59
60 if (in_lock_functions(pc)) { 60 if (in_lock_functions(pc)) {
61 fp = regs->ARM_fp; 61 fp = regs->ARM_fp;
62 pc = pc_pointer(((unsigned long *)fp)[-1]); 62 pc = ((unsigned long *)fp)[-1];
63 } 63 }
64 64
65 return pc; 65 return pc;
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 872f1f8fbb57..57e6874d0b80 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -19,15 +19,13 @@
19#include <linux/kallsyms.h> 19#include <linux/kallsyms.h>
20#include <linux/delay.h> 20#include <linux/delay.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/kprobes.h> 22#include <linux/uaccess.h>
23 23
24#include <asm/atomic.h> 24#include <asm/atomic.h>
25#include <asm/cacheflush.h> 25#include <asm/cacheflush.h>
26#include <asm/system.h> 26#include <asm/system.h>
27#include <asm/uaccess.h>
28#include <asm/unistd.h> 27#include <asm/unistd.h>
29#include <asm/traps.h> 28#include <asm/traps.h>
30#include <asm/io.h>
31 29
32#include "ptrace.h" 30#include "ptrace.h"
33#include "signal.h" 31#include "signal.h"
@@ -69,7 +67,8 @@ void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long
69 */ 67 */
70static int verify_stack(unsigned long sp) 68static int verify_stack(unsigned long sp)
71{ 69{
72 if (sp < PAGE_OFFSET || (sp > (unsigned long)high_memory && high_memory != 0)) 70 if (sp < PAGE_OFFSET ||
71 (sp > (unsigned long)high_memory && high_memory != NULL))
73 return -EFAULT; 72 return -EFAULT;
74 73
75 return 0; 74 return 0;
@@ -328,17 +327,6 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
328 get_user(instr, (u32 __user *)pc); 327 get_user(instr, (u32 __user *)pc);
329 } 328 }
330 329
331#ifdef CONFIG_KPROBES
332 /*
333 * It is possible to have recursive kprobes, so we can't call
334 * the kprobe trap handler with the undef_lock held.
335 */
336 if (instr == KPROBE_BREAKPOINT_INSTRUCTION && !user_mode(regs)) {
337 kprobe_trap_handler(regs, instr);
338 return;
339 }
340#endif
341
342 if (call_undef_hook(regs, instr) == 0) 330 if (call_undef_hook(regs, instr) == 0)
343 return; 331 return;
344 332
diff --git a/arch/arm/kernel/xscale-cp0.c b/arch/arm/kernel/xscale-cp0.c
index 180000bfdc8f..17127db906fa 100644
--- a/arch/arm/kernel/xscale-cp0.c
+++ b/arch/arm/kernel/xscale-cp0.c
@@ -14,8 +14,8 @@
14#include <linux/signal.h> 14#include <linux/signal.h>
15#include <linux/sched.h> 15#include <linux/sched.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/io.h>
17#include <asm/thread_notify.h> 18#include <asm/thread_notify.h>
18#include <asm/io.h>
19 19
20static inline void dsp_save_state(u32 *state) 20static inline void dsp_save_state(u32 *state)
21{ 21{
diff --git a/arch/arm/lib/ashldi3.S b/arch/arm/lib/ashldi3.S
index 55e57a1c2e6d..1154d924080b 100644
--- a/arch/arm/lib/ashldi3.S
+++ b/arch/arm/lib/ashldi3.S
@@ -47,3 +47,5 @@ ENTRY(__aeabi_llsl)
47 mov al, al, lsl r2 47 mov al, al, lsl r2
48 mov pc, lr 48 mov pc, lr
49 49
50ENDPROC(__ashldi3)
51ENDPROC(__aeabi_llsl)
diff --git a/arch/arm/lib/ashrdi3.S b/arch/arm/lib/ashrdi3.S
index 0b31398f89b2..9f8b35572f8c 100644
--- a/arch/arm/lib/ashrdi3.S
+++ b/arch/arm/lib/ashrdi3.S
@@ -47,3 +47,5 @@ ENTRY(__aeabi_lasr)
47 mov ah, ah, asr r2 47 mov ah, ah, asr r2
48 mov pc, lr 48 mov pc, lr
49 49
50ENDPROC(__ashrdi3)
51ENDPROC(__aeabi_lasr)
diff --git a/arch/arm/lib/backtrace.S b/arch/arm/lib/backtrace.S
index 84dc890d2bf3..b0951d0e8b2c 100644
--- a/arch/arm/lib/backtrace.S
+++ b/arch/arm/lib/backtrace.S
@@ -30,6 +30,8 @@ ENTRY(c_backtrace)
30 30
31#if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK) 31#if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK)
32 mov pc, lr 32 mov pc, lr
33ENDPROC(__backtrace)
34ENDPROC(c_backtrace)
33#else 35#else
34 stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location... 36 stmfd sp!, {r4 - r8, lr} @ Save an extra register so we have a location...
35 movs frame, r0 @ if frame pointer is zero 37 movs frame, r0 @ if frame pointer is zero
@@ -103,6 +105,8 @@ for_each_frame: tst frame, mask @ Check for address exceptions
103 mov r1, frame 105 mov r1, frame
104 bl printk 106 bl printk
105no_frame: ldmfd sp!, {r4 - r8, pc} 107no_frame: ldmfd sp!, {r4 - r8, pc}
108ENDPROC(__backtrace)
109ENDPROC(c_backtrace)
106 110
107 .section __ex_table,"a" 111 .section __ex_table,"a"
108 .align 3 112 .align 3
diff --git a/arch/arm/lib/changebit.S b/arch/arm/lib/changebit.S
index 389567c24090..80f3115cbee2 100644
--- a/arch/arm/lib/changebit.S
+++ b/arch/arm/lib/changebit.S
@@ -19,3 +19,5 @@ ENTRY(_change_bit_be)
19 eor r0, r0, #0x18 @ big endian byte ordering 19 eor r0, r0, #0x18 @ big endian byte ordering
20ENTRY(_change_bit_le) 20ENTRY(_change_bit_le)
21 bitop eor 21 bitop eor
22ENDPROC(_change_bit_be)
23ENDPROC(_change_bit_le)
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S
index ecb28dcdaf7b..4d6bc71231f3 100644
--- a/arch/arm/lib/clear_user.S
+++ b/arch/arm/lib/clear_user.S
@@ -41,9 +41,10 @@ USER( strplt r2, [r0], #4)
41USER( strnebt r2, [r0], #1) 41USER( strnebt r2, [r0], #1)
42USER( strnebt r2, [r0], #1) 42USER( strnebt r2, [r0], #1)
43 tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1 43 tst r1, #1 @ x1 x0 x1 x0 x1 x0 x1
44USER( strnebt r2, [r0], #1) 44USER( strnebt r2, [r0])
45 mov r0, #0 45 mov r0, #0
46 ldmfd sp!, {r1, pc} 46 ldmfd sp!, {r1, pc}
47ENDPROC(__clear_user)
47 48
48 .section .fixup,"ax" 49 .section .fixup,"ax"
49 .align 0 50 .align 0
diff --git a/arch/arm/lib/clearbit.S b/arch/arm/lib/clearbit.S
index 347516533025..1a63e43a1df0 100644
--- a/arch/arm/lib/clearbit.S
+++ b/arch/arm/lib/clearbit.S
@@ -20,3 +20,5 @@ ENTRY(_clear_bit_be)
20 eor r0, r0, #0x18 @ big endian byte ordering 20 eor r0, r0, #0x18 @ big endian byte ordering
21ENTRY(_clear_bit_le) 21ENTRY(_clear_bit_le)
22 bitop bic 22 bitop bic
23ENDPROC(_clear_bit_be)
24ENDPROC(_clear_bit_le)
diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S
index 6b7363ce749c..56799a165cc4 100644
--- a/arch/arm/lib/copy_from_user.S
+++ b/arch/arm/lib/copy_from_user.S
@@ -87,6 +87,8 @@ ENTRY(__copy_from_user)
87 87
88#include "copy_template.S" 88#include "copy_template.S"
89 89
90ENDPROC(__copy_from_user)
91
90 .section .fixup,"ax" 92 .section .fixup,"ax"
91 .align 0 93 .align 0
92 copy_abort_preamble 94 copy_abort_preamble
diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S
index 666c99cc0744..6ae04db1ca4f 100644
--- a/arch/arm/lib/copy_page.S
+++ b/arch/arm/lib/copy_page.S
@@ -44,3 +44,4 @@ ENTRY(copy_page)
44 PLD( ldmeqia r1!, {r3, r4, ip, lr} ) 44 PLD( ldmeqia r1!, {r3, r4, ip, lr} )
45 PLD( beq 2b ) 45 PLD( beq 2b )
46 ldmfd sp!, {r4, pc} @ 3 46 ldmfd sp!, {r4, pc} @ 3
47ENDPROC(copy_page)
diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
index 5224d94688d9..22f968bbdffd 100644
--- a/arch/arm/lib/copy_to_user.S
+++ b/arch/arm/lib/copy_to_user.S
@@ -90,6 +90,8 @@ ENTRY(__copy_to_user)
90 90
91#include "copy_template.S" 91#include "copy_template.S"
92 92
93ENDPROC(__copy_to_user)
94
93 .section .fixup,"ax" 95 .section .fixup,"ax"
94 .align 0 96 .align 0
95 copy_abort_preamble 97 copy_abort_preamble
diff --git a/arch/arm/lib/csumipv6.S b/arch/arm/lib/csumipv6.S
index 9621469beec1..3ac6ef01bc43 100644
--- a/arch/arm/lib/csumipv6.S
+++ b/arch/arm/lib/csumipv6.S
@@ -29,4 +29,5 @@ ENTRY(__csum_ipv6_magic)
29 adcs r0, r0, r2 29 adcs r0, r0, r2
30 adcs r0, r0, #0 30 adcs r0, r0, #0
31 ldmfd sp!, {pc} 31 ldmfd sp!, {pc}
32ENDPROC(__csum_ipv6_magic)
32 33
diff --git a/arch/arm/lib/csumpartial.S b/arch/arm/lib/csumpartial.S
index a78dae5a7b28..31d3cb34740d 100644
--- a/arch/arm/lib/csumpartial.S
+++ b/arch/arm/lib/csumpartial.S
@@ -139,3 +139,4 @@ ENTRY(csum_partial)
139 tst len, #0x1c 139 tst len, #0x1c
140 bne 4b 140 bne 4b
141 b .Lless4 141 b .Lless4
142ENDPROC(csum_partial)
diff --git a/arch/arm/lib/csumpartialcopy.S b/arch/arm/lib/csumpartialcopy.S
index 21effe0dbf97..d03fc71fc88c 100644
--- a/arch/arm/lib/csumpartialcopy.S
+++ b/arch/arm/lib/csumpartialcopy.S
@@ -18,13 +18,11 @@
18 */ 18 */
19 19
20 .macro save_regs 20 .macro save_regs
21 mov ip, sp 21 stmfd sp!, {r1, r4 - r8, lr}
22 stmfd sp!, {r1, r4 - r8, fp, ip, lr, pc}
23 sub fp, ip, #4
24 .endm 22 .endm
25 23
26 .macro load_regs 24 .macro load_regs
27 ldmfd sp, {r1, r4 - r8, fp, sp, pc} 25 ldmfd sp!, {r1, r4 - r8, pc}
28 .endm 26 .endm
29 27
30 .macro load1b, reg1 28 .macro load1b, reg1
@@ -50,5 +48,6 @@
50 .endm 48 .endm
51 49
52#define FN_ENTRY ENTRY(csum_partial_copy_nocheck) 50#define FN_ENTRY ENTRY(csum_partial_copy_nocheck)
51#define FN_EXIT ENDPROC(csum_partial_copy_nocheck)
53 52
54#include "csumpartialcopygeneric.S" 53#include "csumpartialcopygeneric.S"
diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S
index c50e8f5285d1..d620a5f22a09 100644
--- a/arch/arm/lib/csumpartialcopygeneric.S
+++ b/arch/arm/lib/csumpartialcopygeneric.S
@@ -329,3 +329,4 @@ FN_ENTRY
329 adcs sum, sum, r4, push #24 329 adcs sum, sum, r4, push #24
330 mov r5, r4, get_byte_1 330 mov r5, r4, get_byte_1
331 b .Lexit 331 b .Lexit
332FN_EXIT
diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
index c3b93e22ea25..14677fb4b0c4 100644
--- a/arch/arm/lib/csumpartialcopyuser.S
+++ b/arch/arm/lib/csumpartialcopyuser.S
@@ -18,13 +18,11 @@
18 .text 18 .text
19 19
20 .macro save_regs 20 .macro save_regs
21 mov ip, sp 21 stmfd sp!, {r1, r2, r4 - r8, lr}
22 stmfd sp!, {r1 - r2, r4 - r8, fp, ip, lr, pc}
23 sub fp, ip, #4
24 .endm 22 .endm
25 23
26 .macro load_regs 24 .macro load_regs
27 ldmfd sp, {r1, r2, r4-r8, fp, sp, pc} 25 ldmfd sp!, {r1, r2, r4 - r8, pc}
28 .endm 26 .endm
29 27
30 .macro load1b, reg1 28 .macro load1b, reg1
@@ -82,6 +80,7 @@
82 */ 80 */
83 81
84#define FN_ENTRY ENTRY(csum_partial_copy_from_user) 82#define FN_ENTRY ENTRY(csum_partial_copy_from_user)
83#define FN_EXIT ENDPROC(csum_partial_copy_from_user)
85 84
86#include "csumpartialcopygeneric.S" 85#include "csumpartialcopygeneric.S"
87 86
diff --git a/arch/arm/lib/delay.S b/arch/arm/lib/delay.S
index 930a70259220..8d6a8762ab88 100644
--- a/arch/arm/lib/delay.S
+++ b/arch/arm/lib/delay.S
@@ -60,3 +60,6 @@ ENTRY(__delay)
60#endif 60#endif
61 bhi __delay 61 bhi __delay
62 mov pc, lr 62 mov pc, lr
63ENDPROC(__udelay)
64ENDPROC(__const_udelay)
65ENDPROC(__delay)
diff --git a/arch/arm/lib/div64.S b/arch/arm/lib/div64.S
index 58eef6607629..1425e789ba86 100644
--- a/arch/arm/lib/div64.S
+++ b/arch/arm/lib/div64.S
@@ -198,3 +198,4 @@ ENTRY(__do_div64)
198 mov xh, #0 198 mov xh, #0
199 ldr pc, [sp], #8 199 ldr pc, [sp], #8
200 200
201ENDPROC(__do_div64)
diff --git a/arch/arm/lib/findbit.S b/arch/arm/lib/findbit.S
index a5ca0248aa4e..8c4defc4f3c4 100644
--- a/arch/arm/lib/findbit.S
+++ b/arch/arm/lib/findbit.S
@@ -33,6 +33,7 @@ ENTRY(_find_first_zero_bit_le)
33 blo 1b 33 blo 1b
343: mov r0, r1 @ no free bits 343: mov r0, r1 @ no free bits
35 mov pc, lr 35 mov pc, lr
36ENDPROC(_find_first_zero_bit_le)
36 37
37/* 38/*
38 * Purpose : Find next 'zero' bit 39 * Purpose : Find next 'zero' bit
@@ -50,6 +51,7 @@ ENTRY(_find_next_zero_bit_le)
50 orr r2, r2, #7 @ if zero, then no bits here 51 orr r2, r2, #7 @ if zero, then no bits here
51 add r2, r2, #1 @ align bit pointer 52 add r2, r2, #1 @ align bit pointer
52 b 2b @ loop for next bit 53 b 2b @ loop for next bit
54ENDPROC(_find_next_zero_bit_le)
53 55
54/* 56/*
55 * Purpose : Find a 'one' bit 57 * Purpose : Find a 'one' bit
@@ -67,6 +69,7 @@ ENTRY(_find_first_bit_le)
67 blo 1b 69 blo 1b
683: mov r0, r1 @ no free bits 703: mov r0, r1 @ no free bits
69 mov pc, lr 71 mov pc, lr
72ENDPROC(_find_first_bit_le)
70 73
71/* 74/*
72 * Purpose : Find next 'one' bit 75 * Purpose : Find next 'one' bit
@@ -83,6 +86,7 @@ ENTRY(_find_next_bit_le)
83 orr r2, r2, #7 @ if zero, then no bits here 86 orr r2, r2, #7 @ if zero, then no bits here
84 add r2, r2, #1 @ align bit pointer 87 add r2, r2, #1 @ align bit pointer
85 b 2b @ loop for next bit 88 b 2b @ loop for next bit
89ENDPROC(_find_next_bit_le)
86 90
87#ifdef __ARMEB__ 91#ifdef __ARMEB__
88 92
@@ -99,6 +103,7 @@ ENTRY(_find_first_zero_bit_be)
99 blo 1b 103 blo 1b
1003: mov r0, r1 @ no free bits 1043: mov r0, r1 @ no free bits
101 mov pc, lr 105 mov pc, lr
106ENDPROC(_find_first_zero_bit_be)
102 107
103ENTRY(_find_next_zero_bit_be) 108ENTRY(_find_next_zero_bit_be)
104 teq r1, #0 109 teq r1, #0
@@ -113,6 +118,7 @@ ENTRY(_find_next_zero_bit_be)
113 orr r2, r2, #7 @ if zero, then no bits here 118 orr r2, r2, #7 @ if zero, then no bits here
114 add r2, r2, #1 @ align bit pointer 119 add r2, r2, #1 @ align bit pointer
115 b 2b @ loop for next bit 120 b 2b @ loop for next bit
121ENDPROC(_find_next_zero_bit_be)
116 122
117ENTRY(_find_first_bit_be) 123ENTRY(_find_first_bit_be)
118 teq r1, #0 124 teq r1, #0
@@ -127,6 +133,7 @@ ENTRY(_find_first_bit_be)
127 blo 1b 133 blo 1b
1283: mov r0, r1 @ no free bits 1343: mov r0, r1 @ no free bits
129 mov pc, lr 135 mov pc, lr
136ENDPROC(_find_first_bit_be)
130 137
131ENTRY(_find_next_bit_be) 138ENTRY(_find_next_bit_be)
132 teq r1, #0 139 teq r1, #0
@@ -140,6 +147,7 @@ ENTRY(_find_next_bit_be)
140 orr r2, r2, #7 @ if zero, then no bits here 147 orr r2, r2, #7 @ if zero, then no bits here
141 add r2, r2, #1 @ align bit pointer 148 add r2, r2, #1 @ align bit pointer
142 b 2b @ loop for next bit 149 b 2b @ loop for next bit
150ENDPROC(_find_next_bit_be)
143 151
144#endif 152#endif
145 153
diff --git a/arch/arm/lib/getuser.S b/arch/arm/lib/getuser.S
index 2034d4dbe6ad..6763088b7607 100644
--- a/arch/arm/lib/getuser.S
+++ b/arch/arm/lib/getuser.S
@@ -26,16 +26,16 @@
26 * Note that ADDR_LIMIT is either 0 or 0xc0000000. 26 * Note that ADDR_LIMIT is either 0 or 0xc0000000.
27 * Note also that it is intended that __get_user_bad is not global. 27 * Note also that it is intended that __get_user_bad is not global.
28 */ 28 */
29#include <linux/linkage.h>
29#include <asm/errno.h> 30#include <asm/errno.h>
30 31
31 .global __get_user_1 32ENTRY(__get_user_1)
32__get_user_1:
331: ldrbt r2, [r0] 331: ldrbt r2, [r0]
34 mov r0, #0 34 mov r0, #0
35 mov pc, lr 35 mov pc, lr
36ENDPROC(__get_user_1)
36 37
37 .global __get_user_2 38ENTRY(__get_user_2)
38__get_user_2:
392: ldrbt r2, [r0], #1 392: ldrbt r2, [r0], #1
403: ldrbt r3, [r0] 403: ldrbt r3, [r0]
41#ifndef __ARMEB__ 41#ifndef __ARMEB__
@@ -45,17 +45,19 @@ __get_user_2:
45#endif 45#endif
46 mov r0, #0 46 mov r0, #0
47 mov pc, lr 47 mov pc, lr
48ENDPROC(__get_user_2)
48 49
49 .global __get_user_4 50ENTRY(__get_user_4)
50__get_user_4:
514: ldrt r2, [r0] 514: ldrt r2, [r0]
52 mov r0, #0 52 mov r0, #0
53 mov pc, lr 53 mov pc, lr
54ENDPROC(__get_user_4)
54 55
55__get_user_bad: 56__get_user_bad:
56 mov r2, #0 57 mov r2, #0
57 mov r0, #-EFAULT 58 mov r0, #-EFAULT
58 mov pc, lr 59 mov pc, lr
60ENDPROC(__get_user_bad)
59 61
60.section __ex_table, "a" 62.section __ex_table, "a"
61 .long 1b, __get_user_bad 63 .long 1b, __get_user_bad
diff --git a/arch/arm/lib/io-readsb.S b/arch/arm/lib/io-readsb.S
index fb966ad0276f..9f4238987fe9 100644
--- a/arch/arm/lib/io-readsb.S
+++ b/arch/arm/lib/io-readsb.S
@@ -120,3 +120,4 @@ ENTRY(__raw_readsb)
120 strgtb r3, [r1] 120 strgtb r3, [r1]
121 121
122 ldmfd sp!, {r4 - r6, pc} 122 ldmfd sp!, {r4 - r6, pc}
123ENDPROC(__raw_readsb)
diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S
index 75a9121cb23f..5fb97e7f9f4b 100644
--- a/arch/arm/lib/io-readsl.S
+++ b/arch/arm/lib/io-readsl.S
@@ -76,3 +76,4 @@ ENTRY(__raw_readsl)
768: mov r3, ip, get_byte_0 768: mov r3, ip, get_byte_0
77 strb r3, [r1, #0] 77 strb r3, [r1, #0]
78 mov pc, lr 78 mov pc, lr
79ENDPROC(__raw_readsl)
diff --git a/arch/arm/lib/io-readsw-armv4.S b/arch/arm/lib/io-readsw-armv4.S
index 4db1c5f0b219..1f393d42593d 100644
--- a/arch/arm/lib/io-readsw-armv4.S
+++ b/arch/arm/lib/io-readsw-armv4.S
@@ -128,3 +128,4 @@ ENTRY(__raw_readsw)
128 _BE_ONLY_( movne ip, ip, lsr #24 ) 128 _BE_ONLY_( movne ip, ip, lsr #24 )
129 strneb ip, [r1] 129 strneb ip, [r1]
130 ldmfd sp!, {r4, pc} 130 ldmfd sp!, {r4, pc}
131ENDPROC(__raw_readsw)
diff --git a/arch/arm/lib/io-writesb.S b/arch/arm/lib/io-writesb.S
index 7eba2b6cc69f..68b92f4acaeb 100644
--- a/arch/arm/lib/io-writesb.S
+++ b/arch/arm/lib/io-writesb.S
@@ -91,3 +91,4 @@ ENTRY(__raw_writesb)
91 strgtb r3, [r0] 91 strgtb r3, [r0]
92 92
93 ldmfd sp!, {r4, r5, pc} 93 ldmfd sp!, {r4, r5, pc}
94ENDPROC(__raw_writesb)
diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S
index f8f14dd227ca..8d3b7813725c 100644
--- a/arch/arm/lib/io-writesl.S
+++ b/arch/arm/lib/io-writesl.S
@@ -64,3 +64,4 @@ ENTRY(__raw_writesl)
64 str ip, [r0] 64 str ip, [r0]
65 bne 6b 65 bne 6b
66 mov pc, lr 66 mov pc, lr
67ENDPROC(__raw_writesl)
diff --git a/arch/arm/lib/io-writesw-armv4.S b/arch/arm/lib/io-writesw-armv4.S
index c8e85bd653b7..d6585612c86b 100644
--- a/arch/arm/lib/io-writesw-armv4.S
+++ b/arch/arm/lib/io-writesw-armv4.S
@@ -94,3 +94,4 @@ ENTRY(__raw_writesw)
943: movne ip, r3, lsr #8 943: movne ip, r3, lsr #8
95 strneh ip, [r0] 95 strneh ip, [r0]
96 mov pc, lr 96 mov pc, lr
97ENDPROC(__raw_writesw)
diff --git a/arch/arm/lib/lib1funcs.S b/arch/arm/lib/lib1funcs.S
index 4e492f4b3f0e..67964bcfc854 100644
--- a/arch/arm/lib/lib1funcs.S
+++ b/arch/arm/lib/lib1funcs.S
@@ -230,6 +230,8 @@ ENTRY(__aeabi_uidiv)
230 mov r0, r0, lsr r2 230 mov r0, r0, lsr r2
231 mov pc, lr 231 mov pc, lr
232 232
233ENDPROC(__udivsi3)
234ENDPROC(__aeabi_uidiv)
233 235
234ENTRY(__umodsi3) 236ENTRY(__umodsi3)
235 237
@@ -245,6 +247,7 @@ ENTRY(__umodsi3)
245 247
246 mov pc, lr 248 mov pc, lr
247 249
250ENDPROC(__umodsi3)
248 251
249ENTRY(__divsi3) 252ENTRY(__divsi3)
250ENTRY(__aeabi_idiv) 253ENTRY(__aeabi_idiv)
@@ -284,6 +287,8 @@ ENTRY(__aeabi_idiv)
284 rsbmi r0, r0, #0 287 rsbmi r0, r0, #0
285 mov pc, lr 288 mov pc, lr
286 289
290ENDPROC(__divsi3)
291ENDPROC(__aeabi_idiv)
287 292
288ENTRY(__modsi3) 293ENTRY(__modsi3)
289 294
@@ -305,6 +310,8 @@ ENTRY(__modsi3)
305 rsbmi r0, r0, #0 310 rsbmi r0, r0, #0
306 mov pc, lr 311 mov pc, lr
307 312
313ENDPROC(__modsi3)
314
308#ifdef CONFIG_AEABI 315#ifdef CONFIG_AEABI
309 316
310ENTRY(__aeabi_uidivmod) 317ENTRY(__aeabi_uidivmod)
@@ -316,6 +323,8 @@ ENTRY(__aeabi_uidivmod)
316 sub r1, r1, r3 323 sub r1, r1, r3
317 mov pc, lr 324 mov pc, lr
318 325
326ENDPROC(__aeabi_uidivmod)
327
319ENTRY(__aeabi_idivmod) 328ENTRY(__aeabi_idivmod)
320 329
321 stmfd sp!, {r0, r1, ip, lr} 330 stmfd sp!, {r0, r1, ip, lr}
@@ -325,6 +334,8 @@ ENTRY(__aeabi_idivmod)
325 sub r1, r1, r3 334 sub r1, r1, r3
326 mov pc, lr 335 mov pc, lr
327 336
337ENDPROC(__aeabi_idivmod)
338
328#endif 339#endif
329 340
330Ldiv0: 341Ldiv0:
diff --git a/arch/arm/lib/lshrdi3.S b/arch/arm/lib/lshrdi3.S
index a86dbdd59cc4..99ea338bf87c 100644
--- a/arch/arm/lib/lshrdi3.S
+++ b/arch/arm/lib/lshrdi3.S
@@ -47,3 +47,5 @@ ENTRY(__aeabi_llsr)
47 mov ah, ah, lsr r2 47 mov ah, ah, lsr r2
48 mov pc, lr 48 mov pc, lr
49 49
50ENDPROC(__lshrdi3)
51ENDPROC(__aeabi_llsr)
diff --git a/arch/arm/lib/memchr.S b/arch/arm/lib/memchr.S
index e7ab1ea8ebaa..1da86991d700 100644
--- a/arch/arm/lib/memchr.S
+++ b/arch/arm/lib/memchr.S
@@ -23,3 +23,4 @@ ENTRY(memchr)
23 sub r0, r0, #1 23 sub r0, r0, #1
242: movne r0, #0 242: movne r0, #0
25 mov pc, lr 25 mov pc, lr
26ENDPROC(memchr)
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S
index 7e71d6708a8d..e0d002641d3f 100644
--- a/arch/arm/lib/memcpy.S
+++ b/arch/arm/lib/memcpy.S
@@ -57,3 +57,4 @@ ENTRY(memcpy)
57 57
58#include "copy_template.S" 58#include "copy_template.S"
59 59
60ENDPROC(memcpy)
diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S
index 2e301b7bd8f1..12549187088c 100644
--- a/arch/arm/lib/memmove.S
+++ b/arch/arm/lib/memmove.S
@@ -196,3 +196,4 @@ ENTRY(memmove)
196 196
19718: backward_copy_shift push=24 pull=8 19718: backward_copy_shift push=24 pull=8
198 198
199ENDPROC(memmove)
diff --git a/arch/arm/lib/memset.S b/arch/arm/lib/memset.S
index b477d4ac88ef..761eefa76243 100644
--- a/arch/arm/lib/memset.S
+++ b/arch/arm/lib/memset.S
@@ -124,3 +124,4 @@ ENTRY(memset)
124 tst r2, #1 124 tst r2, #1
125 strneb r1, [r0], #1 125 strneb r1, [r0], #1
126 mov pc, lr 126 mov pc, lr
127ENDPROC(memset)
diff --git a/arch/arm/lib/memzero.S b/arch/arm/lib/memzero.S
index b8f79d80ee9b..3fbdef5f802a 100644
--- a/arch/arm/lib/memzero.S
+++ b/arch/arm/lib/memzero.S
@@ -122,3 +122,4 @@ ENTRY(__memzero)
122 tst r1, #1 @ 1 a byte left over 122 tst r1, #1 @ 1 a byte left over
123 strneb r2, [r0], #1 @ 1 123 strneb r2, [r0], #1 @ 1
124 mov pc, lr @ 1 124 mov pc, lr @ 1
125ENDPROC(__memzero)
diff --git a/arch/arm/lib/muldi3.S b/arch/arm/lib/muldi3.S
index d89c60615794..36c91b4957e2 100644
--- a/arch/arm/lib/muldi3.S
+++ b/arch/arm/lib/muldi3.S
@@ -43,3 +43,5 @@ ENTRY(__aeabi_lmul)
43 adc xh, xh, ip, lsr #16 43 adc xh, xh, ip, lsr #16
44 mov pc, lr 44 mov pc, lr
45 45
46ENDPROC(__muldi3)
47ENDPROC(__aeabi_lmul)
diff --git a/arch/arm/lib/putuser.S b/arch/arm/lib/putuser.S
index 08ec7dffa52e..864f3c1c4f18 100644
--- a/arch/arm/lib/putuser.S
+++ b/arch/arm/lib/putuser.S
@@ -26,16 +26,16 @@
26 * Note that ADDR_LIMIT is either 0 or 0xc0000000 26 * Note that ADDR_LIMIT is either 0 or 0xc0000000
27 * Note also that it is intended that __put_user_bad is not global. 27 * Note also that it is intended that __put_user_bad is not global.
28 */ 28 */
29#include <linux/linkage.h>
29#include <asm/errno.h> 30#include <asm/errno.h>
30 31
31 .global __put_user_1 32ENTRY(__put_user_1)
32__put_user_1:
331: strbt r2, [r0] 331: strbt r2, [r0]
34 mov r0, #0 34 mov r0, #0
35 mov pc, lr 35 mov pc, lr
36ENDPROC(__put_user_1)
36 37
37 .global __put_user_2 38ENTRY(__put_user_2)
38__put_user_2:
39 mov ip, r2, lsr #8 39 mov ip, r2, lsr #8
40#ifndef __ARMEB__ 40#ifndef __ARMEB__
412: strbt r2, [r0], #1 412: strbt r2, [r0], #1
@@ -46,23 +46,25 @@ __put_user_2:
46#endif 46#endif
47 mov r0, #0 47 mov r0, #0
48 mov pc, lr 48 mov pc, lr
49ENDPROC(__put_user_2)
49 50
50 .global __put_user_4 51ENTRY(__put_user_4)
51__put_user_4:
524: strt r2, [r0] 524: strt r2, [r0]
53 mov r0, #0 53 mov r0, #0
54 mov pc, lr 54 mov pc, lr
55ENDPROC(__put_user_4)
55 56
56 .global __put_user_8 57ENTRY(__put_user_8)
57__put_user_8:
585: strt r2, [r0], #4 585: strt r2, [r0], #4
596: strt r3, [r0] 596: strt r3, [r0]
60 mov r0, #0 60 mov r0, #0
61 mov pc, lr 61 mov pc, lr
62ENDPROC(__put_user_8)
62 63
63__put_user_bad: 64__put_user_bad:
64 mov r0, #-EFAULT 65 mov r0, #-EFAULT
65 mov pc, lr 66 mov pc, lr
67ENDPROC(__put_user_bad)
66 68
67.section __ex_table, "a" 69.section __ex_table, "a"
68 .long 1b, __put_user_bad 70 .long 1b, __put_user_bad
diff --git a/arch/arm/lib/setbit.S b/arch/arm/lib/setbit.S
index 83bc23d5b037..1dd7176c4b2b 100644
--- a/arch/arm/lib/setbit.S
+++ b/arch/arm/lib/setbit.S
@@ -20,3 +20,5 @@ ENTRY(_set_bit_be)
20 eor r0, r0, #0x18 @ big endian byte ordering 20 eor r0, r0, #0x18 @ big endian byte ordering
21ENTRY(_set_bit_le) 21ENTRY(_set_bit_le)
22 bitop orr 22 bitop orr
23ENDPROC(_set_bit_be)
24ENDPROC(_set_bit_le)
diff --git a/arch/arm/lib/sha1.S b/arch/arm/lib/sha1.S
index ff6ece487ffc..a16fb208c841 100644
--- a/arch/arm/lib/sha1.S
+++ b/arch/arm/lib/sha1.S
@@ -29,7 +29,7 @@ ENTRY(sha_transform)
29 stmfd sp!, {r4 - r8, lr} 29 stmfd sp!, {r4 - r8, lr}
30 30
31 @ for (i = 0; i < 16; i++) 31 @ for (i = 0; i < 16; i++)
32 @ W[i] = be32_to_cpu(in[i]); */ 32 @ W[i] = be32_to_cpu(in[i]);
33 33
34#ifdef __ARMEB__ 34#ifdef __ARMEB__
35 mov r4, r0 35 mov r4, r0
@@ -185,6 +185,8 @@ ENTRY(sha_transform)
185 185
186 ldmfd sp!, {r4 - r8, pc} 186 ldmfd sp!, {r4 - r8, pc}
187 187
188ENDPROC(sha_transform)
189
188.L_sha_K: 190.L_sha_K:
189 .word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 191 .word 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6
190 192
@@ -204,3 +206,4 @@ ENTRY(sha_init)
204 stmia r0, {r1, r2, r3, ip, lr} 206 stmia r0, {r1, r2, r3, ip, lr}
205 ldr pc, [sp], #4 207 ldr pc, [sp], #4
206 208
209ENDPROC(sha_init)
diff --git a/arch/arm/lib/strchr.S b/arch/arm/lib/strchr.S
index 9f18d6fdee6a..d8f2a1c1aea4 100644
--- a/arch/arm/lib/strchr.S
+++ b/arch/arm/lib/strchr.S
@@ -24,3 +24,4 @@ ENTRY(strchr)
24 movne r0, #0 24 movne r0, #0
25 subeq r0, r0, #1 25 subeq r0, r0, #1
26 mov pc, lr 26 mov pc, lr
27ENDPROC(strchr)
diff --git a/arch/arm/lib/strncpy_from_user.S b/arch/arm/lib/strncpy_from_user.S
index 36e3741a3772..330373c26dd9 100644
--- a/arch/arm/lib/strncpy_from_user.S
+++ b/arch/arm/lib/strncpy_from_user.S
@@ -31,6 +31,7 @@ USER( ldrplbt r3, [r1], #1)
31 sub r1, r1, #1 @ take NUL character out of count 31 sub r1, r1, #1 @ take NUL character out of count
322: sub r0, r1, ip 322: sub r0, r1, ip
33 mov pc, lr 33 mov pc, lr
34ENDPROC(__strncpy_from_user)
34 35
35 .section .fixup,"ax" 36 .section .fixup,"ax"
36 .align 0 37 .align 0
diff --git a/arch/arm/lib/strnlen_user.S b/arch/arm/lib/strnlen_user.S
index 18d8fa4f925a..90bb9d020836 100644
--- a/arch/arm/lib/strnlen_user.S
+++ b/arch/arm/lib/strnlen_user.S
@@ -31,6 +31,7 @@ USER( ldrbt r3, [r0], #1)
31 add r0, r0, #1 31 add r0, r0, #1
322: sub r0, r0, r2 322: sub r0, r0, r2
33 mov pc, lr 33 mov pc, lr
34ENDPROC(__strnlen_user)
34 35
35 .section .fixup,"ax" 36 .section .fixup,"ax"
36 .align 0 37 .align 0
diff --git a/arch/arm/lib/strrchr.S b/arch/arm/lib/strrchr.S
index 538df220aa48..302f20cd2423 100644
--- a/arch/arm/lib/strrchr.S
+++ b/arch/arm/lib/strrchr.S
@@ -23,3 +23,4 @@ ENTRY(strrchr)
23 bne 1b 23 bne 1b
24 mov r0, r3 24 mov r0, r3
25 mov pc, lr 25 mov pc, lr
26ENDPROC(strrchr)
diff --git a/arch/arm/lib/testchangebit.S b/arch/arm/lib/testchangebit.S
index b25dcd2be53e..5c98dc567f0f 100644
--- a/arch/arm/lib/testchangebit.S
+++ b/arch/arm/lib/testchangebit.S
@@ -16,3 +16,5 @@ ENTRY(_test_and_change_bit_be)
16 eor r0, r0, #0x18 @ big endian byte ordering 16 eor r0, r0, #0x18 @ big endian byte ordering
17ENTRY(_test_and_change_bit_le) 17ENTRY(_test_and_change_bit_le)
18 testop eor, strb 18 testop eor, strb
19ENDPROC(_test_and_change_bit_be)
20ENDPROC(_test_and_change_bit_le)
diff --git a/arch/arm/lib/testclearbit.S b/arch/arm/lib/testclearbit.S
index 2dcc4b16b68e..543d7094d18e 100644
--- a/arch/arm/lib/testclearbit.S
+++ b/arch/arm/lib/testclearbit.S
@@ -16,3 +16,5 @@ ENTRY(_test_and_clear_bit_be)
16 eor r0, r0, #0x18 @ big endian byte ordering 16 eor r0, r0, #0x18 @ big endian byte ordering
17ENTRY(_test_and_clear_bit_le) 17ENTRY(_test_and_clear_bit_le)
18 testop bicne, strneb 18 testop bicne, strneb
19ENDPROC(_test_and_clear_bit_be)
20ENDPROC(_test_and_clear_bit_le)
diff --git a/arch/arm/lib/testsetbit.S b/arch/arm/lib/testsetbit.S
index 9011c969761a..0b3f390401ce 100644
--- a/arch/arm/lib/testsetbit.S
+++ b/arch/arm/lib/testsetbit.S
@@ -16,3 +16,5 @@ ENTRY(_test_and_set_bit_be)
16 eor r0, r0, #0x18 @ big endian byte ordering 16 eor r0, r0, #0x18 @ big endian byte ordering
17ENTRY(_test_and_set_bit_le) 17ENTRY(_test_and_set_bit_le)
18 testop orreq, streqb 18 testop orreq, streqb
19ENDPROC(_test_and_set_bit_be)
20ENDPROC(_test_and_set_bit_le)
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S
index b48bd6d5fd83..ffdd27498cee 100644
--- a/arch/arm/lib/uaccess.S
+++ b/arch/arm/lib/uaccess.S
@@ -277,6 +277,7 @@ USER( strgebt r3, [r0], #1) @ May fault
277 ldrgtb r3, [r1], #0 277 ldrgtb r3, [r1], #0
278USER( strgtbt r3, [r0], #1) @ May fault 278USER( strgtbt r3, [r0], #1) @ May fault
279 b .Lc2u_finished 279 b .Lc2u_finished
280ENDPROC(__copy_to_user)
280 281
281 .section .fixup,"ax" 282 .section .fixup,"ax"
282 .align 0 283 .align 0
@@ -542,6 +543,7 @@ USER( ldrgebt r3, [r1], #1) @ May fault
542USER( ldrgtbt r3, [r1], #1) @ May fault 543USER( ldrgtbt r3, [r1], #1) @ May fault
543 strgtb r3, [r0], #1 544 strgtb r3, [r0], #1
544 b .Lcfu_finished 545 b .Lcfu_finished
546ENDPROC(__copy_from_user)
545 547
546 .section .fixup,"ax" 548 .section .fixup,"ax"
547 .align 0 549 .align 0
diff --git a/arch/arm/lib/ucmpdi2.S b/arch/arm/lib/ucmpdi2.S
index f76de07ac182..f0df6a91db04 100644
--- a/arch/arm/lib/ucmpdi2.S
+++ b/arch/arm/lib/ucmpdi2.S
@@ -33,6 +33,8 @@ ENTRY(__ucmpdi2)
33 movhi r0, #2 33 movhi r0, #2
34 mov pc, lr 34 mov pc, lr
35 35
36ENDPROC(__ucmpdi2)
37
36#ifdef CONFIG_AEABI 38#ifdef CONFIG_AEABI
37 39
38ENTRY(__aeabi_ulcmp) 40ENTRY(__aeabi_ulcmp)
@@ -44,5 +46,7 @@ ENTRY(__aeabi_ulcmp)
44 movhi r0, #1 46 movhi r0, #1
45 mov pc, lr 47 mov pc, lr
46 48
49ENDPROC(__aeabi_ulcmp)
50
47#endif 51#endif
48 52
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index a048b92cb407..5aafb2e2ca7a 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -175,6 +175,15 @@ config MACH_SAM9_L9260
175 Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260. 175 Select this if you are using Olimex's SAM9-L9260 board based on the Atmel AT91SAM9260.
176 <http://www.olimex.com/dev/sam9-L9260.html> 176 <http://www.olimex.com/dev/sam9-L9260.html>
177 177
178config MACH_AFEB9260
179 bool "Custom afeb9260 board v1"
180 depends on ARCH_AT91SAM9260
181 help
182 Select this if you are using custom afeb9260 board based on
183 open hardware design. Select this for revision 1 of the board.
184 <svn://194.85.238.22/home/users/george/svn/arm9eb>
185 <http://groups.google.com/group/arm9fpga-evolution-board>
186
178config MACH_USB_A9260 187config MACH_USB_A9260
179 bool "CALAO USB-A9260" 188 bool "CALAO USB-A9260"
180 depends on ARCH_AT91SAM9260 189 depends on ARCH_AT91SAM9260
@@ -314,6 +323,19 @@ config AT91_PROGRAMMABLE_CLOCKS
314 Select this if you need to program one or more of the PCK0..PCK3 323 Select this if you need to program one or more of the PCK0..PCK3
315 programmable clock outputs. 324 programmable clock outputs.
316 325
326config AT91_SLOW_CLOCK
327 bool "Suspend-to-RAM disables main oscillator"
328 depends on SUSPEND
329 help
330 Select this if you want Suspend-to-RAM to save the most power
331 possible (without powering off the CPU) by disabling the PLLs
332 and main oscillator so that only the 32 KiHz clock is available.
333
334 When only that slow-clock is available, some peripherals lose
335 functionality. Many can't issue wakeup events unless faster
336 clocks are available. Some lose their operating state and
337 need to be completely re-initialized.
338
317config AT91_TIMER_HZ 339config AT91_TIMER_HZ
318 int "Kernel HZ (jiffies per second)" 340 int "Kernel HZ (jiffies per second)"
319 range 32 1024 341 range 32 1024
diff --git a/arch/arm/mach-at91/Makefile b/arch/arm/mach-at91/Makefile
index 7d641f97516b..cca612d97ca2 100644
--- a/arch/arm/mach-at91/Makefile
+++ b/arch/arm/mach-at91/Makefile
@@ -39,6 +39,7 @@ obj-$(CONFIG_MACH_CAM60) += board-cam60.o
39obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o 39obj-$(CONFIG_MACH_SAM9_L9260) += board-sam9-l9260.o
40obj-$(CONFIG_MACH_USB_A9260) += board-usb-a9260.o 40obj-$(CONFIG_MACH_USB_A9260) += board-usb-a9260.o
41obj-$(CONFIG_MACH_QIL_A9260) += board-qil-a9260.o 41obj-$(CONFIG_MACH_QIL_A9260) += board-qil-a9260.o
42obj-$(CONFIG_MACH_AFEB9260) += board-afeb-9260v1.o
42 43
43# AT91SAM9261 board-specific support 44# AT91SAM9261 board-specific support
44obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o 45obj-$(CONFIG_MACH_AT91SAM9261EK) += board-sam9261ek.o
@@ -64,6 +65,7 @@ obj-y += leds.o
64 65
65# Power Management 66# Power Management
66obj-$(CONFIG_PM) += pm.o 67obj-$(CONFIG_PM) += pm.o
68obj-$(CONFIG_AT91_SLOW_CLOCK) += pm_slowclock.o
67 69
68ifeq ($(CONFIG_PM_DEBUG),y) 70ifeq ($(CONFIG_PM_DEBUG),y)
69CFLAGS_pm.o += -DDEBUG 71CFLAGS_pm.o += -DDEBUG
diff --git a/arch/arm/mach-at91/at91cap9.c b/arch/arm/mach-at91/at91cap9.c
index 638948c16770..0fc0adaebd58 100644
--- a/arch/arm/mach-at91/at91cap9.c
+++ b/arch/arm/mach-at91/at91cap9.c
@@ -141,8 +141,8 @@ static struct clk tcb_clk = {
141 .pmc_mask = 1 << AT91CAP9_ID_TCB, 141 .pmc_mask = 1 << AT91CAP9_ID_TCB,
142 .type = CLK_TYPE_PERIPHERAL, 142 .type = CLK_TYPE_PERIPHERAL,
143}; 143};
144static struct clk pwmc_clk = { 144static struct clk pwm_clk = {
145 .name = "pwmc_clk", 145 .name = "pwm_clk",
146 .pmc_mask = 1 << AT91CAP9_ID_PWMC, 146 .pmc_mask = 1 << AT91CAP9_ID_PWMC,
147 .type = CLK_TYPE_PERIPHERAL, 147 .type = CLK_TYPE_PERIPHERAL,
148}; 148};
@@ -207,7 +207,7 @@ static struct clk *periph_clocks[] __initdata = {
207 &ssc1_clk, 207 &ssc1_clk,
208 &ac97_clk, 208 &ac97_clk,
209 &tcb_clk, 209 &tcb_clk,
210 &pwmc_clk, 210 &pwm_clk,
211 &macb_clk, 211 &macb_clk,
212 &aestdes_clk, 212 &aestdes_clk,
213 &adc_clk, 213 &adc_clk,
diff --git a/arch/arm/mach-at91/at91cap9_devices.c b/arch/arm/mach-at91/at91cap9_devices.c
index abb4aac8fa98..5ebd4273d353 100644
--- a/arch/arm/mach-at91/at91cap9_devices.c
+++ b/arch/arm/mach-at91/at91cap9_devices.c
@@ -719,6 +719,60 @@ static void __init at91_add_device_watchdog(void) {}
719 719
720 720
721/* -------------------------------------------------------------------- 721/* --------------------------------------------------------------------
722 * PWM
723 * --------------------------------------------------------------------*/
724
725#if defined(CONFIG_ATMEL_PWM)
726static u32 pwm_mask;
727
728static struct resource pwm_resources[] = {
729 [0] = {
730 .start = AT91CAP9_BASE_PWMC,
731 .end = AT91CAP9_BASE_PWMC + SZ_16K - 1,
732 .flags = IORESOURCE_MEM,
733 },
734 [1] = {
735 .start = AT91CAP9_ID_PWMC,
736 .end = AT91CAP9_ID_PWMC,
737 .flags = IORESOURCE_IRQ,
738 },
739};
740
741static struct platform_device at91cap9_pwm0_device = {
742 .name = "atmel_pwm",
743 .id = -1,
744 .dev = {
745 .platform_data = &pwm_mask,
746 },
747 .resource = pwm_resources,
748 .num_resources = ARRAY_SIZE(pwm_resources),
749};
750
751void __init at91_add_device_pwm(u32 mask)
752{
753 if (mask & (1 << AT91_PWM0))
754 at91_set_A_periph(AT91_PIN_PB19, 1); /* enable PWM0 */
755
756 if (mask & (1 << AT91_PWM1))
757 at91_set_B_periph(AT91_PIN_PB8, 1); /* enable PWM1 */
758
759 if (mask & (1 << AT91_PWM2))
760 at91_set_B_periph(AT91_PIN_PC29, 1); /* enable PWM2 */
761
762 if (mask & (1 << AT91_PWM3))
763 at91_set_B_periph(AT91_PIN_PA11, 1); /* enable PWM3 */
764
765 pwm_mask = mask;
766
767 platform_device_register(&at91cap9_pwm0_device);
768}
769#else
770void __init at91_add_device_pwm(u32 mask) {}
771#endif
772
773
774
775/* --------------------------------------------------------------------
722 * AC97 776 * AC97
723 * -------------------------------------------------------------------- */ 777 * -------------------------------------------------------------------- */
724 778
diff --git a/arch/arm/mach-at91/at91sam9263.c b/arch/arm/mach-at91/at91sam9263.c
index 80bfab5680e2..ada4b6769107 100644
--- a/arch/arm/mach-at91/at91sam9263.c
+++ b/arch/arm/mach-at91/at91sam9263.c
@@ -129,8 +129,8 @@ static struct clk tcb_clk = {
129 .pmc_mask = 1 << AT91SAM9263_ID_TCB, 129 .pmc_mask = 1 << AT91SAM9263_ID_TCB,
130 .type = CLK_TYPE_PERIPHERAL, 130 .type = CLK_TYPE_PERIPHERAL,
131}; 131};
132static struct clk pwmc_clk = { 132static struct clk pwm_clk = {
133 .name = "pwmc_clk", 133 .name = "pwm_clk",
134 .pmc_mask = 1 << AT91SAM9263_ID_PWMC, 134 .pmc_mask = 1 << AT91SAM9263_ID_PWMC,
135 .type = CLK_TYPE_PERIPHERAL, 135 .type = CLK_TYPE_PERIPHERAL,
136}; 136};
@@ -187,7 +187,7 @@ static struct clk *periph_clocks[] __initdata = {
187 &ssc1_clk, 187 &ssc1_clk,
188 &ac97_clk, 188 &ac97_clk,
189 &tcb_clk, 189 &tcb_clk,
190 &pwmc_clk, 190 &pwm_clk,
191 &macb_clk, 191 &macb_clk,
192 &twodge_clk, 192 &twodge_clk,
193 &udc_clk, 193 &udc_clk,
diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
index c93992f55dc9..8b884083f76d 100644
--- a/arch/arm/mach-at91/at91sam9263_devices.c
+++ b/arch/arm/mach-at91/at91sam9263_devices.c
@@ -886,6 +886,59 @@ static void __init at91_add_device_watchdog(void) {}
886 886
887 887
888/* -------------------------------------------------------------------- 888/* --------------------------------------------------------------------
889 * PWM
890 * --------------------------------------------------------------------*/
891
892#if defined(CONFIG_ATMEL_PWM)
893static u32 pwm_mask;
894
895static struct resource pwm_resources[] = {
896 [0] = {
897 .start = AT91SAM9263_BASE_PWMC,
898 .end = AT91SAM9263_BASE_PWMC + SZ_16K - 1,
899 .flags = IORESOURCE_MEM,
900 },
901 [1] = {
902 .start = AT91SAM9263_ID_PWMC,
903 .end = AT91SAM9263_ID_PWMC,
904 .flags = IORESOURCE_IRQ,
905 },
906};
907
908static struct platform_device at91sam9263_pwm0_device = {
909 .name = "atmel_pwm",
910 .id = -1,
911 .dev = {
912 .platform_data = &pwm_mask,
913 },
914 .resource = pwm_resources,
915 .num_resources = ARRAY_SIZE(pwm_resources),
916};
917
918void __init at91_add_device_pwm(u32 mask)
919{
920 if (mask & (1 << AT91_PWM0))
921 at91_set_B_periph(AT91_PIN_PB7, 1); /* enable PWM0 */
922
923 if (mask & (1 << AT91_PWM1))
924 at91_set_B_periph(AT91_PIN_PB8, 1); /* enable PWM1 */
925
926 if (mask & (1 << AT91_PWM2))
927 at91_set_B_periph(AT91_PIN_PC29, 1); /* enable PWM2 */
928
929 if (mask & (1 << AT91_PWM3))
930 at91_set_B_periph(AT91_PIN_PB29, 1); /* enable PWM3 */
931
932 pwm_mask = mask;
933
934 platform_device_register(&at91sam9263_pwm0_device);
935}
936#else
937void __init at91_add_device_pwm(u32 mask) {}
938#endif
939
940
941/* --------------------------------------------------------------------
889 * SSC -- Synchronous Serial Controller 942 * SSC -- Synchronous Serial Controller
890 * -------------------------------------------------------------------- */ 943 * -------------------------------------------------------------------- */
891 944
diff --git a/arch/arm/mach-at91/at91sam9rl.c b/arch/arm/mach-at91/at91sam9rl.c
index 556bddf35b45..252e954b49fd 100644
--- a/arch/arm/mach-at91/at91sam9rl.c
+++ b/arch/arm/mach-at91/at91sam9rl.c
@@ -131,8 +131,8 @@ static struct clk tc2_clk = {
131 .pmc_mask = 1 << AT91SAM9RL_ID_TC2, 131 .pmc_mask = 1 << AT91SAM9RL_ID_TC2,
132 .type = CLK_TYPE_PERIPHERAL, 132 .type = CLK_TYPE_PERIPHERAL,
133}; 133};
134static struct clk pwmc_clk = { 134static struct clk pwm_clk = {
135 .name = "pwmc_clk", 135 .name = "pwm_clk",
136 .pmc_mask = 1 << AT91SAM9RL_ID_PWMC, 136 .pmc_mask = 1 << AT91SAM9RL_ID_PWMC,
137 .type = CLK_TYPE_PERIPHERAL, 137 .type = CLK_TYPE_PERIPHERAL,
138}; 138};
@@ -180,7 +180,7 @@ static struct clk *periph_clocks[] __initdata = {
180 &tc0_clk, 180 &tc0_clk,
181 &tc1_clk, 181 &tc1_clk,
182 &tc2_clk, 182 &tc2_clk,
183 &pwmc_clk, 183 &pwm_clk,
184 &tsc_clk, 184 &tsc_clk,
185 &dma_clk, 185 &dma_clk,
186 &udphs_clk, 186 &udphs_clk,
diff --git a/arch/arm/mach-at91/at91sam9rl_devices.c b/arch/arm/mach-at91/at91sam9rl_devices.c
index 620886341fb5..87deb1e1b529 100644
--- a/arch/arm/mach-at91/at91sam9rl_devices.c
+++ b/arch/arm/mach-at91/at91sam9rl_devices.c
@@ -527,6 +527,51 @@ static void __init at91_add_device_tc(void) { }
527 527
528 528
529/* -------------------------------------------------------------------- 529/* --------------------------------------------------------------------
530 * Touchscreen
531 * -------------------------------------------------------------------- */
532
533#if defined(CONFIG_TOUCHSCREEN_ATMEL_TSADCC) || defined(CONFIG_TOUCHSCREEN_ATMEL_TSADCC_MODULE)
534static u64 tsadcc_dmamask = DMA_BIT_MASK(32);
535
536static struct resource tsadcc_resources[] = {
537 [0] = {
538 .start = AT91SAM9RL_BASE_TSC,
539 .end = AT91SAM9RL_BASE_TSC + SZ_16K - 1,
540 .flags = IORESOURCE_MEM,
541 },
542 [1] = {
543 .start = AT91SAM9RL_ID_TSC,
544 .end = AT91SAM9RL_ID_TSC,
545 .flags = IORESOURCE_IRQ,
546 }
547};
548
549static struct platform_device at91sam9rl_tsadcc_device = {
550 .name = "atmel_tsadcc",
551 .id = -1,
552 .dev = {
553 .dma_mask = &tsadcc_dmamask,
554 .coherent_dma_mask = DMA_BIT_MASK(32),
555 },
556 .resource = tsadcc_resources,
557 .num_resources = ARRAY_SIZE(tsadcc_resources),
558};
559
560void __init at91_add_device_tsadcc(void)
561{
562 at91_set_A_periph(AT91_PIN_PA17, 0); /* AD0_XR */
563 at91_set_A_periph(AT91_PIN_PA18, 0); /* AD1_XL */
564 at91_set_A_periph(AT91_PIN_PA19, 0); /* AD2_YT */
565 at91_set_A_periph(AT91_PIN_PA20, 0); /* AD3_TB */
566
567 platform_device_register(&at91sam9rl_tsadcc_device);
568}
569#else
570void __init at91_add_device_tsadcc(void) {}
571#endif
572
573
574/* --------------------------------------------------------------------
530 * RTC 575 * RTC
531 * -------------------------------------------------------------------- */ 576 * -------------------------------------------------------------------- */
532 577
@@ -592,6 +637,59 @@ static void __init at91_add_device_watchdog(void) {}
592 637
593 638
594/* -------------------------------------------------------------------- 639/* --------------------------------------------------------------------
640 * PWM
641 * --------------------------------------------------------------------*/
642
643#if defined(CONFIG_ATMEL_PWM)
644static u32 pwm_mask;
645
646static struct resource pwm_resources[] = {
647 [0] = {
648 .start = AT91SAM9RL_BASE_PWMC,
649 .end = AT91SAM9RL_BASE_PWMC + SZ_16K - 1,
650 .flags = IORESOURCE_MEM,
651 },
652 [1] = {
653 .start = AT91SAM9RL_ID_PWMC,
654 .end = AT91SAM9RL_ID_PWMC,
655 .flags = IORESOURCE_IRQ,
656 },
657};
658
659static struct platform_device at91sam9rl_pwm0_device = {
660 .name = "atmel_pwm",
661 .id = -1,
662 .dev = {
663 .platform_data = &pwm_mask,
664 },
665 .resource = pwm_resources,
666 .num_resources = ARRAY_SIZE(pwm_resources),
667};
668
669void __init at91_add_device_pwm(u32 mask)
670{
671 if (mask & (1 << AT91_PWM0))
672 at91_set_B_periph(AT91_PIN_PB8, 1); /* enable PWM0 */
673
674 if (mask & (1 << AT91_PWM1))
675 at91_set_B_periph(AT91_PIN_PB9, 1); /* enable PWM1 */
676
677 if (mask & (1 << AT91_PWM2))
678 at91_set_B_periph(AT91_PIN_PD5, 1); /* enable PWM2 */
679
680 if (mask & (1 << AT91_PWM3))
681 at91_set_B_periph(AT91_PIN_PD8, 1); /* enable PWM3 */
682
683 pwm_mask = mask;
684
685 platform_device_register(&at91sam9rl_pwm0_device);
686}
687#else
688void __init at91_add_device_pwm(u32 mask) {}
689#endif
690
691
692/* --------------------------------------------------------------------
595 * SSC -- Synchronous Serial Controller 693 * SSC -- Synchronous Serial Controller
596 * -------------------------------------------------------------------- */ 694 * -------------------------------------------------------------------- */
597 695
diff --git a/arch/arm/mach-at91/at91x40_time.c b/arch/arm/mach-at91/at91x40_time.c
index 869b5e28d195..dfff2895f4b2 100644
--- a/arch/arm/mach-at91/at91x40_time.c
+++ b/arch/arm/mach-at91/at91x40_time.c
@@ -23,8 +23,8 @@
23#include <linux/interrupt.h> 23#include <linux/interrupt.h>
24#include <linux/irq.h> 24#include <linux/irq.h>
25#include <linux/time.h> 25#include <linux/time.h>
26#include <linux/io.h>
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/io.h>
28#include <asm/mach/time.h> 28#include <asm/mach/time.h>
29#include <mach/at91_tc.h> 29#include <mach/at91_tc.h>
30 30
diff --git a/arch/arm/mach-at91/board-afeb-9260v1.c b/arch/arm/mach-at91/board-afeb-9260v1.c
new file mode 100644
index 000000000000..9c040c78889a
--- /dev/null
+++ b/arch/arm/mach-at91/board-afeb-9260v1.c
@@ -0,0 +1,210 @@
1/*
2 * linux/arch/arm/mach-at91/board-afeb-9260v1.c
3 *
4 * Copyright (C) 2005 SAN People
5 * Copyright (C) 2006 Atmel
6 * Copyright (C) 2008 Sergey Lapin
7 *
8 * A custom board designed as open hardware; PCBs and various information
9 * is available at http://groups.google.com/group/arm9fpga-evolution-board/
10 * Subversion repository: svn://194.85.238.22/home/users/george/svn/arm9eb
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License as published by
14 * the Free Software Foundation; either version 2 of the License, or
15 * (at your option) any later version.
16 *
17 * This program is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 * GNU General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 */
26
27#include <linux/types.h>
28#include <linux/init.h>
29#include <linux/mm.h>
30#include <linux/module.h>
31#include <linux/platform_device.h>
32#include <linux/spi/spi.h>
33#include <linux/clk.h>
34#include <linux/dma-mapping.h>
35
36#include <mach/hardware.h>
37#include <asm/setup.h>
38#include <asm/mach-types.h>
39#include <asm/irq.h>
40
41#include <asm/mach/arch.h>
42#include <asm/mach/map.h>
43#include <asm/mach/irq.h>
44
45#include <mach/board.h>
46#include <mach/gpio.h>
47
48#include "generic.h"
49
50
51static void __init afeb9260_map_io(void)
52{
53 /* Initialize processor: 18.432 MHz crystal */
54 at91sam9260_initialize(18432000);
55
56 /* DGBU on ttyS0. (Rx & Tx only) */
57 at91_register_uart(0, 0, 0);
58
59 /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */
60 at91_register_uart(AT91SAM9260_ID_US0, 1,
61 ATMEL_UART_CTS | ATMEL_UART_RTS
62 | ATMEL_UART_DTR | ATMEL_UART_DSR
63 | ATMEL_UART_DCD | ATMEL_UART_RI);
64
65 /* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */
66 at91_register_uart(AT91SAM9260_ID_US1, 2,
67 ATMEL_UART_CTS | ATMEL_UART_RTS);
68
69 /* set serial console to ttyS0 (ie, DBGU) */
70 at91_set_serial_console(0);
71}
72
73static void __init afeb9260_init_irq(void)
74{
75 at91sam9260_init_interrupts(NULL);
76}
77
78
79/*
80 * USB Host port
81 */
82static struct at91_usbh_data __initdata afeb9260_usbh_data = {
83 .ports = 1,
84};
85
86/*
87 * USB Device port
88 */
89static struct at91_udc_data __initdata afeb9260_udc_data = {
90 .vbus_pin = AT91_PIN_PC5,
91 .pullup_pin = 0, /* pull-up driven by UDC */
92};
93
94
95
96/*
97 * SPI devices.
98 */
99static struct spi_board_info afeb9260_spi_devices[] = {
100 { /* DataFlash chip */
101 .modalias = "mtd_dataflash",
102 .chip_select = 1,
103 .max_speed_hz = 15 * 1000 * 1000,
104 .bus_num = 0,
105 },
106};
107
108
109/*
110 * MACB Ethernet device
111 */
112static struct at91_eth_data __initdata afeb9260_macb_data = {
113 .phy_irq_pin = AT91_PIN_PA9,
114 .is_rmii = 0,
115};
116
117
118/*
119 * NAND flash
120 */
121static struct mtd_partition __initdata afeb9260_nand_partition[] = {
122 {
123 .name = "bootloader",
124 .offset = 0,
125 .size = (640 * SZ_1K),
126 },
127 {
128 .name = "kernel",
129 .offset = MTDPART_OFS_NXTBLK,
130 .size = SZ_2M,
131 },
132 {
133 .name = "rootfs",
134 .offset = MTDPART_OFS_NXTBLK,
135 .size = MTDPART_SIZ_FULL,
136 },
137};
138
139static struct mtd_partition * __init nand_partitions(int size, int *num_partitions)
140{
141 *num_partitions = ARRAY_SIZE(afeb9260_nand_partition);
142 return afeb9260_nand_partition;
143}
144
145static struct atmel_nand_data __initdata afeb9260_nand_data = {
146 .ale = 21,
147 .cle = 22,
148 .rdy_pin = AT91_PIN_PC13,
149 .enable_pin = AT91_PIN_PC14,
150 .partition_info = nand_partitions,
151 .bus_width_16 = 0,
152};
153
154
155/*
156 * MCI (SD/MMC)
157 */
158static struct at91_mmc_data __initdata afeb9260_mmc_data = {
159 .slot_b = 1,
160 .wire4 = 1,
161};
162
163
164
165static struct i2c_board_info __initdata afeb9260_i2c_devices[] = {
166 {
167 I2C_BOARD_INFO("fm3130", 0x68),
168 I2C_BOARD_INFO("24c64", 0x50),
169 },
170};
171
172static void __init afeb9260_board_init(void)
173{
174 /* Serial */
175 at91_add_device_serial();
176 /* USB Host */
177 at91_add_device_usbh(&afeb9260_usbh_data);
178 /* USB Device */
179 at91_add_device_udc(&afeb9260_udc_data);
180 /* SPI */
181 at91_add_device_spi(afeb9260_spi_devices,
182 ARRAY_SIZE(afeb9260_spi_devices));
183 /* NAND */
184 at91_add_device_nand(&afeb9260_nand_data);
185 /* Ethernet */
186 at91_add_device_eth(&afeb9260_macb_data);
187
188 /* Standard function's pin assignments are not
189 * appropriate for us and generic code provide
190 * no API to configure these pins any other way */
191 at91_set_B_periph(AT91_PIN_PA10, 0); /* ETX2 */
192 at91_set_B_periph(AT91_PIN_PA11, 0); /* ETX3 */
193 /* MMC */
194 at91_add_device_mmc(0, &afeb9260_mmc_data);
195 /* I2C */
196 at91_add_device_i2c(afeb9260_i2c_devices,
197 ARRAY_SIZE(afeb9260_i2c_devices));
198}
199
200MACHINE_START(AFEB9260, "Custom afeb9260 board")
201 /* Maintainer: Sergey Lapin <slapin@ossfans.org> */
202 .phys_io = AT91_BASE_SYS,
203 .io_pg_offst = (AT91_VA_BASE_SYS >> 18) & 0xfffc,
204 .boot_params = AT91_SDRAM_BASE + 0x100,
205 .timer = &at91sam926x_timer,
206 .map_io = afeb9260_map_io,
207 .init_irq = afeb9260_init_irq,
208 .init_machine = afeb9260_board_init,
209MACHINE_END
210
diff --git a/arch/arm/mach-at91/board-cap9adk.c b/arch/arm/mach-at91/board-cap9adk.c
index 196199552eb6..201b89392dcc 100644
--- a/arch/arm/mach-at91/board-cap9adk.c
+++ b/arch/arm/mach-at91/board-cap9adk.c
@@ -214,7 +214,7 @@ static struct physmap_flash_data cap9adk_nor_data = {
214}; 214};
215 215
216#define NOR_BASE AT91_CHIPSELECT_0 216#define NOR_BASE AT91_CHIPSELECT_0
217#define NOR_SIZE 0x800000 217#define NOR_SIZE SZ_8M
218 218
219static struct resource nor_flash_resources[] = { 219static struct resource nor_flash_resources[] = {
220 { 220 {
diff --git a/arch/arm/mach-at91/board-carmeva.c b/arch/arm/mach-at91/board-carmeva.c
index afa1ff0e9577..db1f9544d2e0 100644
--- a/arch/arm/mach-at91/board-carmeva.c
+++ b/arch/arm/mach-at91/board-carmeva.c
@@ -25,7 +25,6 @@
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/platform_device.h> 26#include <linux/platform_device.h>
27 27
28#include <mach/hardware.h>
29#include <asm/setup.h> 28#include <asm/setup.h>
30#include <asm/mach-types.h> 29#include <asm/mach-types.h>
31#include <asm/irq.h> 30#include <asm/irq.h>
@@ -34,6 +33,7 @@
34#include <asm/mach/map.h> 33#include <asm/mach/map.h>
35#include <asm/mach/irq.h> 34#include <asm/mach/irq.h>
36 35
36#include <mach/hardware.h>
37#include <mach/board.h> 37#include <mach/board.h>
38#include <mach/gpio.h> 38#include <mach/gpio.h>
39 39
@@ -114,6 +114,30 @@ static struct spi_board_info carmeva_spi_devices[] = {
114 }, 114 },
115}; 115};
116 116
117static struct gpio_led carmeva_leds[] = {
118 { /* "user led 1", LED9 */
119 .name = "led9",
120 .gpio = AT91_PIN_PA21,
121 .active_low = 1,
122 .default_trigger = "heartbeat",
123 },
124 { /* "user led 2", LED10 */
125 .name = "led10",
126 .gpio = AT91_PIN_PA25,
127 .active_low = 1,
128 },
129 { /* "user led 3", LED11 */
130 .name = "led11",
131 .gpio = AT91_PIN_PA26,
132 .active_low = 1,
133 },
134 { /* "user led 4", LED12 */
135 .name = "led12",
136 .gpio = AT91_PIN_PA18,
137 .active_low = 1,
138 }
139};
140
117static void __init carmeva_board_init(void) 141static void __init carmeva_board_init(void)
118{ 142{
119 /* Serial */ 143 /* Serial */
@@ -132,6 +156,8 @@ static void __init carmeva_board_init(void)
132// at91_add_device_cf(&carmeva_cf_data); 156// at91_add_device_cf(&carmeva_cf_data);
133 /* MMC */ 157 /* MMC */
134 at91_add_device_mmc(0, &carmeva_mmc_data); 158 at91_add_device_mmc(0, &carmeva_mmc_data);
159 /* LEDs */
160 at91_gpio_leds(carmeva_leds, ARRAY_SIZE(carmeva_leds));
135} 161}
136 162
137MACHINE_START(CARMEVA, "Carmeva") 163MACHINE_START(CARMEVA, "Carmeva")
diff --git a/arch/arm/mach-at91/board-csb337.c b/arch/arm/mach-at91/board-csb337.c
index cb7c9a8fa487..fea2529ebcf9 100644
--- a/arch/arm/mach-at91/board-csb337.c
+++ b/arch/arm/mach-at91/board-csb337.c
@@ -28,7 +28,6 @@
28#include <linux/input.h> 28#include <linux/input.h>
29#include <linux/gpio_keys.h> 29#include <linux/gpio_keys.h>
30 30
31#include <mach/hardware.h>
32#include <asm/setup.h> 31#include <asm/setup.h>
33#include <asm/mach-types.h> 32#include <asm/mach-types.h>
34#include <asm/irq.h> 33#include <asm/irq.h>
@@ -37,6 +36,7 @@
37#include <asm/mach/map.h> 36#include <asm/mach/map.h>
38#include <asm/mach/irq.h> 37#include <asm/mach/irq.h>
39 38
39#include <mach/hardware.h>
40#include <mach/board.h> 40#include <mach/board.h>
41#include <mach/gpio.h> 41#include <mach/gpio.h>
42 42
@@ -114,7 +114,7 @@ static struct spi_board_info csb337_spi_devices[] = {
114}; 114};
115 115
116#define CSB_FLASH_BASE AT91_CHIPSELECT_0 116#define CSB_FLASH_BASE AT91_CHIPSELECT_0
117#define CSB_FLASH_SIZE 0x800000 117#define CSB_FLASH_SIZE SZ_8M
118 118
119static struct mtd_partition csb_flash_partitions[] = { 119static struct mtd_partition csb_flash_partitions[] = {
120 { 120 {
@@ -193,11 +193,11 @@ static struct platform_device csb300_button_device = {
193 193
194static void __init csb300_add_device_buttons(void) 194static void __init csb300_add_device_buttons(void)
195{ 195{
196 at91_set_gpio_input(AT91_PIN_PB29, 0); /* sw0 */ 196 at91_set_gpio_input(AT91_PIN_PB29, 1); /* sw0 */
197 at91_set_deglitch(AT91_PIN_PB29, 1); 197 at91_set_deglitch(AT91_PIN_PB29, 1);
198 at91_set_gpio_input(AT91_PIN_PB28, 0); /* sw1 */ 198 at91_set_gpio_input(AT91_PIN_PB28, 1); /* sw1 */
199 at91_set_deglitch(AT91_PIN_PB28, 1); 199 at91_set_deglitch(AT91_PIN_PB28, 1);
200 at91_set_gpio_input(AT91_PIN_PA21, 0); /* sw2 */ 200 at91_set_gpio_input(AT91_PIN_PA21, 1); /* sw2 */
201 at91_set_deglitch(AT91_PIN_PA21, 1); 201 at91_set_deglitch(AT91_PIN_PA21, 1);
202 202
203 platform_device_register(&csb300_button_device); 203 platform_device_register(&csb300_button_device);
@@ -224,7 +224,7 @@ static struct gpio_led csb_leds[] = {
224 .gpio = AT91_PIN_PB0, 224 .gpio = AT91_PIN_PB0,
225 .active_low = 1, 225 .active_low = 1,
226 .default_trigger = "ide-disk", 226 .default_trigger = "ide-disk",
227 }, 227 }
228}; 228};
229 229
230 230
diff --git a/arch/arm/mach-at91/board-csb637.c b/arch/arm/mach-at91/board-csb637.c
index 8db8bd8babd9..cfa3f04b2205 100644
--- a/arch/arm/mach-at91/board-csb637.c
+++ b/arch/arm/mach-at91/board-csb637.c
@@ -25,7 +25,6 @@
25#include <linux/platform_device.h> 25#include <linux/platform_device.h>
26#include <linux/mtd/physmap.h> 26#include <linux/mtd/physmap.h>
27 27
28#include <mach/hardware.h>
29#include <asm/setup.h> 28#include <asm/setup.h>
30#include <asm/mach-types.h> 29#include <asm/mach-types.h>
31#include <asm/irq.h> 30#include <asm/irq.h>
@@ -34,6 +33,7 @@
34#include <asm/mach/map.h> 33#include <asm/mach/map.h>
35#include <asm/mach/irq.h> 34#include <asm/mach/irq.h>
36 35
36#include <mach/hardware.h>
37#include <mach/board.h> 37#include <mach/board.h>
38#include <mach/gpio.h> 38#include <mach/gpio.h>
39 39
@@ -72,7 +72,7 @@ static struct at91_udc_data __initdata csb637_udc_data = {
72}; 72};
73 73
74#define CSB_FLASH_BASE AT91_CHIPSELECT_0 74#define CSB_FLASH_BASE AT91_CHIPSELECT_0
75#define CSB_FLASH_SIZE 0x1000000 75#define CSB_FLASH_SIZE SZ_16M
76 76
77static struct mtd_partition csb_flash_partitions[] = { 77static struct mtd_partition csb_flash_partitions[] = {
78 { 78 {
diff --git a/arch/arm/mach-at91/board-dk.c b/arch/arm/mach-at91/board-dk.c
index 43e1aa7ecef7..0fd0f5bc77ea 100644
--- a/arch/arm/mach-at91/board-dk.c
+++ b/arch/arm/mach-at91/board-dk.c
@@ -29,7 +29,6 @@
29#include <linux/spi/spi.h> 29#include <linux/spi/spi.h>
30#include <linux/mtd/physmap.h> 30#include <linux/mtd/physmap.h>
31 31
32#include <mach/hardware.h>
33#include <asm/setup.h> 32#include <asm/setup.h>
34#include <asm/mach-types.h> 33#include <asm/mach-types.h>
35#include <asm/irq.h> 34#include <asm/irq.h>
@@ -38,6 +37,7 @@
38#include <asm/mach/map.h> 37#include <asm/mach/map.h>
39#include <asm/mach/irq.h> 38#include <asm/mach/irq.h>
40 39
40#include <mach/hardware.h>
41#include <mach/board.h> 41#include <mach/board.h>
42#include <mach/gpio.h> 42#include <mach/gpio.h>
43#include <mach/at91rm9200_mc.h> 43#include <mach/at91rm9200_mc.h>
@@ -157,7 +157,7 @@ static struct atmel_nand_data __initdata dk_nand_data = {
157}; 157};
158 158
159#define DK_FLASH_BASE AT91_CHIPSELECT_0 159#define DK_FLASH_BASE AT91_CHIPSELECT_0
160#define DK_FLASH_SIZE 0x200000 160#define DK_FLASH_SIZE SZ_2M
161 161
162static struct physmap_flash_data dk_flash_data = { 162static struct physmap_flash_data dk_flash_data = {
163 .width = 2, 163 .width = 2,
diff --git a/arch/arm/mach-at91/board-ecbat91.c b/arch/arm/mach-at91/board-ecbat91.c
index bfeee8a2af28..1d69908617f0 100644
--- a/arch/arm/mach-at91/board-ecbat91.c
+++ b/arch/arm/mach-at91/board-ecbat91.c
@@ -86,7 +86,7 @@ static struct mtd_partition __initdata my_flash0_partitions[] =
86 { /* 0x8400 */ 86 { /* 0x8400 */
87 .name = "Darrell-loader", 87 .name = "Darrell-loader",
88 .offset = 0, 88 .offset = 0,
89 .size = 12* 1056, 89 .size = 12 * 1056,
90 }, 90 },
91 { 91 {
92 .name = "U-boot", 92 .name = "U-boot",
diff --git a/arch/arm/mach-at91/board-ek.c b/arch/arm/mach-at91/board-ek.c
index 60626e7a3490..4cdfaac8e590 100644
--- a/arch/arm/mach-at91/board-ek.c
+++ b/arch/arm/mach-at91/board-ek.c
@@ -29,7 +29,6 @@
29#include <linux/spi/spi.h> 29#include <linux/spi/spi.h>
30#include <linux/mtd/physmap.h> 30#include <linux/mtd/physmap.h>
31 31
32#include <mach/hardware.h>
33#include <asm/setup.h> 32#include <asm/setup.h>
34#include <asm/mach-types.h> 33#include <asm/mach-types.h>
35#include <asm/irq.h> 34#include <asm/irq.h>
@@ -38,6 +37,7 @@
38#include <asm/mach/map.h> 37#include <asm/mach/map.h>
39#include <asm/mach/irq.h> 38#include <asm/mach/irq.h>
40 39
40#include <mach/hardware.h>
41#include <mach/board.h> 41#include <mach/board.h>
42#include <mach/gpio.h> 42#include <mach/gpio.h>
43#include <mach/at91rm9200_mc.h> 43#include <mach/at91rm9200_mc.h>
@@ -116,7 +116,7 @@ static struct i2c_board_info __initdata ek_i2c_devices[] = {
116}; 116};
117 117
118#define EK_FLASH_BASE AT91_CHIPSELECT_0 118#define EK_FLASH_BASE AT91_CHIPSELECT_0
119#define EK_FLASH_SIZE 0x200000 119#define EK_FLASH_SIZE SZ_2M
120 120
121static struct physmap_flash_data ek_flash_data = { 121static struct physmap_flash_data ek_flash_data = {
122 .width = 2, 122 .width = 2,
diff --git a/arch/arm/mach-at91/board-picotux200.c b/arch/arm/mach-at91/board-picotux200.c
index dbc912d633c7..859727e7ea30 100644
--- a/arch/arm/mach-at91/board-picotux200.c
+++ b/arch/arm/mach-at91/board-picotux200.c
@@ -105,7 +105,7 @@ static struct at91_mmc_data __initdata picotux200_mmc_data = {
105// }; 105// };
106 106
107#define PICOTUX200_FLASH_BASE AT91_CHIPSELECT_0 107#define PICOTUX200_FLASH_BASE AT91_CHIPSELECT_0
108#define PICOTUX200_FLASH_SIZE 0x400000 108#define PICOTUX200_FLASH_SIZE SZ_4M
109 109
110static struct physmap_flash_data picotux200_flash_data = { 110static struct physmap_flash_data picotux200_flash_data = {
111 .width = 2, 111 .width = 2,
diff --git a/arch/arm/mach-at91/board-qil-a9260.c b/arch/arm/mach-at91/board-qil-a9260.c
index 4c28413426c2..cfb4571a2e27 100644
--- a/arch/arm/mach-at91/board-qil-a9260.c
+++ b/arch/arm/mach-at91/board-qil-a9260.c
@@ -30,7 +30,6 @@
30#include <linux/input.h> 30#include <linux/input.h>
31#include <linux/clk.h> 31#include <linux/clk.h>
32 32
33#include <mach/hardware.h>
34#include <asm/setup.h> 33#include <asm/setup.h>
35#include <asm/mach-types.h> 34#include <asm/mach-types.h>
36#include <asm/irq.h> 35#include <asm/irq.h>
@@ -39,6 +38,7 @@
39#include <asm/mach/map.h> 38#include <asm/mach/map.h>
40#include <asm/mach/irq.h> 39#include <asm/mach/irq.h>
41 40
41#include <mach/hardware.h>
42#include <mach/board.h> 42#include <mach/board.h>
43#include <mach/gpio.h> 43#include <mach/gpio.h>
44#include <mach/at91_shdwc.h> 44#include <mach/at91_shdwc.h>
@@ -119,18 +119,18 @@ static struct at91_eth_data __initdata ek_macb_data = {
119static struct mtd_partition __initdata ek_nand_partition[] = { 119static struct mtd_partition __initdata ek_nand_partition[] = {
120 { 120 {
121 .name = "Uboot & Kernel", 121 .name = "Uboot & Kernel",
122 .offset = 0x00000000, 122 .offset = 0,
123 .size = 16 * 1024 * 1024, 123 .size = SZ_16M,
124 }, 124 },
125 { 125 {
126 .name = "Root FS", 126 .name = "Root FS",
127 .offset = 0x01000000, 127 .offset = MTDPART_OFS_NXTBLK,
128 .size = 120 * 1024 * 1024, 128 .size = 120 * SZ_1M,
129 }, 129 },
130 { 130 {
131 .name = "FS", 131 .name = "FS",
132 .offset = 0x08800000, 132 .offset = MTDPART_OFS_NXTBLK,
133 .size = 120 * 1024 * 1024, 133 .size = 120 * SZ_1M,
134 }, 134 },
135}; 135};
136 136
diff --git a/arch/arm/mach-at91/board-sam9-l9260.c b/arch/arm/mach-at91/board-sam9-l9260.c
index e4910cb26c16..99bb4cc23a09 100644
--- a/arch/arm/mach-at91/board-sam9-l9260.c
+++ b/arch/arm/mach-at91/board-sam9-l9260.c
@@ -126,11 +126,11 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
126 { 126 {
127 .name = "Bootloader Area", 127 .name = "Bootloader Area",
128 .offset = 0, 128 .offset = 0,
129 .size = 10 * 1024 * 1024, 129 .size = 10 * SZ_1M,
130 }, 130 },
131 { 131 {
132 .name = "User Area", 132 .name = "User Area",
133 .offset = 10 * 1024 * 1024, 133 .offset = MTDPART_OFS_NXTBLK,
134 .size = MTDPART_SIZ_FULL, 134 .size = MTDPART_SIZ_FULL,
135 }, 135 },
136}; 136};
diff --git a/arch/arm/mach-at91/board-sam9260ek.c b/arch/arm/mach-at91/board-sam9260ek.c
index cb20e70b3b06..b49eb6e4918a 100644
--- a/arch/arm/mach-at91/board-sam9260ek.c
+++ b/arch/arm/mach-at91/board-sam9260ek.c
@@ -27,8 +27,10 @@
27#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
28#include <linux/spi/at73c213.h> 28#include <linux/spi/at73c213.h>
29#include <linux/clk.h> 29#include <linux/clk.h>
30#include <linux/i2c/at24.h>
31#include <linux/gpio_keys.h>
32#include <linux/input.h>
30 33
31#include <mach/hardware.h>
32#include <asm/setup.h> 34#include <asm/setup.h>
33#include <asm/mach-types.h> 35#include <asm/mach-types.h>
34#include <asm/irq.h> 36#include <asm/irq.h>
@@ -37,6 +39,7 @@
37#include <asm/mach/map.h> 39#include <asm/mach/map.h>
38#include <asm/mach/irq.h> 40#include <asm/mach/irq.h>
39 41
42#include <mach/hardware.h>
40#include <mach/board.h> 43#include <mach/board.h>
41#include <mach/gpio.h> 44#include <mach/gpio.h>
42 45
@@ -163,11 +166,11 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
163 { 166 {
164 .name = "Partition 1", 167 .name = "Partition 1",
165 .offset = 0, 168 .offset = 0,
166 .size = 256 * 1024, 169 .size = SZ_256K,
167 }, 170 },
168 { 171 {
169 .name = "Partition 2", 172 .name = "Partition 2",
170 .offset = 256 * 1024, 173 .offset = MTDPART_OFS_NXTBLK,
171 .size = MTDPART_SIZ_FULL, 174 .size = MTDPART_SIZ_FULL,
172 }, 175 },
173}; 176};
@@ -222,6 +225,73 @@ static struct gpio_led ek_leds[] = {
222 } 225 }
223}; 226};
224 227
228/*
229 * I2C devices
230 */
231static struct at24_platform_data at24c512 = {
232 .byte_len = SZ_512K / 8,
233 .page_size = 128,
234 .flags = AT24_FLAG_ADDR16,
235};
236
237static struct i2c_board_info __initdata ek_i2c_devices[] = {
238 {
239 I2C_BOARD_INFO("24c512", 0x50),
240 .platform_data = &at24c512,
241 },
242 /* more devices can be added using expansion connectors */
243};
244
245
246/*
247 * GPIO Buttons
248 */
249#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
250static struct gpio_keys_button ek_buttons[] = {
251 {
252 .gpio = AT91_PIN_PA30,
253 .code = BTN_3,
254 .desc = "Button 3",
255 .active_low = 1,
256 .wakeup = 1,
257 },
258 {
259 .gpio = AT91_PIN_PA31,
260 .code = BTN_4,
261 .desc = "Button 4",
262 .active_low = 1,
263 .wakeup = 1,
264 }
265};
266
267static struct gpio_keys_platform_data ek_button_data = {
268 .buttons = ek_buttons,
269 .nbuttons = ARRAY_SIZE(ek_buttons),
270};
271
272static struct platform_device ek_button_device = {
273 .name = "gpio-keys",
274 .id = -1,
275 .num_resources = 0,
276 .dev = {
277 .platform_data = &ek_button_data,
278 }
279};
280
281static void __init ek_add_device_buttons(void)
282{
283 at91_set_gpio_input(AT91_PIN_PA30, 1); /* btn3 */
284 at91_set_deglitch(AT91_PIN_PA30, 1);
285 at91_set_gpio_input(AT91_PIN_PA31, 1); /* btn4 */
286 at91_set_deglitch(AT91_PIN_PA31, 1);
287
288 platform_device_register(&ek_button_device);
289}
290#else
291static void __init ek_add_device_buttons(void) {}
292#endif
293
294
225static void __init ek_board_init(void) 295static void __init ek_board_init(void)
226{ 296{
227 /* Serial */ 297 /* Serial */
@@ -239,12 +309,14 @@ static void __init ek_board_init(void)
239 /* MMC */ 309 /* MMC */
240 at91_add_device_mmc(0, &ek_mmc_data); 310 at91_add_device_mmc(0, &ek_mmc_data);
241 /* I2C */ 311 /* I2C */
242 at91_add_device_i2c(NULL, 0); 312 at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
243 /* SSC (to AT73C213) */ 313 /* SSC (to AT73C213) */
244 at73c213_set_clk(&at73c213_data); 314 at73c213_set_clk(&at73c213_data);
245 at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX); 315 at91_add_device_ssc(AT91SAM9260_ID_SSC, ATMEL_SSC_TX);
246 /* LEDs */ 316 /* LEDs */
247 at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds)); 317 at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
318 /* Push Buttons */
319 ek_add_device_buttons();
248} 320}
249 321
250MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK") 322MACHINE_START(AT91SAM9260EK, "Atmel AT91SAM9260-EK")
diff --git a/arch/arm/mach-at91/board-sam9261ek.c b/arch/arm/mach-at91/board-sam9261ek.c
index 1a9963b811c7..4977409d4fc6 100644
--- a/arch/arm/mach-at91/board-sam9261ek.c
+++ b/arch/arm/mach-at91/board-sam9261ek.c
@@ -35,7 +35,6 @@
35 35
36#include <video/atmel_lcdc.h> 36#include <video/atmel_lcdc.h>
37 37
38#include <mach/hardware.h>
39#include <asm/setup.h> 38#include <asm/setup.h>
40#include <asm/mach-types.h> 39#include <asm/mach-types.h>
41#include <asm/irq.h> 40#include <asm/irq.h>
@@ -44,6 +43,7 @@
44#include <asm/mach/map.h> 43#include <asm/mach/map.h>
45#include <asm/mach/irq.h> 44#include <asm/mach/irq.h>
46 45
46#include <mach/hardware.h>
47#include <mach/board.h> 47#include <mach/board.h>
48#include <mach/gpio.h> 48#include <mach/gpio.h>
49#include <mach/at91sam9_smc.h> 49#include <mach/at91sam9_smc.h>
@@ -168,11 +168,11 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
168 { 168 {
169 .name = "Partition 1", 169 .name = "Partition 1",
170 .offset = 0, 170 .offset = 0,
171 .size = 256 * 1024, 171 .size = SZ_256K,
172 }, 172 },
173 { 173 {
174 .name = "Partition 2", 174 .name = "Partition 2",
175 .offset = 256 * 1024 , 175 .offset = MTDPART_OFS_NXTBLK,
176 .size = MTDPART_SIZ_FULL, 176 .size = MTDPART_SIZ_FULL,
177 }, 177 },
178}; 178};
@@ -435,24 +435,28 @@ static struct gpio_keys_button ek_buttons[] = {
435 .code = BTN_0, 435 .code = BTN_0,
436 .desc = "Button 0", 436 .desc = "Button 0",
437 .active_low = 1, 437 .active_low = 1,
438 .wakeup = 1,
438 }, 439 },
439 { 440 {
440 .gpio = AT91_PIN_PA26, 441 .gpio = AT91_PIN_PA26,
441 .code = BTN_1, 442 .code = BTN_1,
442 .desc = "Button 1", 443 .desc = "Button 1",
443 .active_low = 1, 444 .active_low = 1,
445 .wakeup = 1,
444 }, 446 },
445 { 447 {
446 .gpio = AT91_PIN_PA25, 448 .gpio = AT91_PIN_PA25,
447 .code = BTN_2, 449 .code = BTN_2,
448 .desc = "Button 2", 450 .desc = "Button 2",
449 .active_low = 1, 451 .active_low = 1,
452 .wakeup = 1,
450 }, 453 },
451 { 454 {
452 .gpio = AT91_PIN_PA24, 455 .gpio = AT91_PIN_PA24,
453 .code = BTN_3, 456 .code = BTN_3,
454 .desc = "Button 3", 457 .desc = "Button 3",
455 .active_low = 1, 458 .active_low = 1,
459 .wakeup = 1,
456 } 460 }
457}; 461};
458 462
@@ -472,13 +476,13 @@ static struct platform_device ek_button_device = {
472 476
473static void __init ek_add_device_buttons(void) 477static void __init ek_add_device_buttons(void)
474{ 478{
475 at91_set_gpio_input(AT91_PIN_PA27, 0); /* btn0 */ 479 at91_set_gpio_input(AT91_PIN_PA27, 1); /* btn0 */
476 at91_set_deglitch(AT91_PIN_PA27, 1); 480 at91_set_deglitch(AT91_PIN_PA27, 1);
477 at91_set_gpio_input(AT91_PIN_PA26, 0); /* btn1 */ 481 at91_set_gpio_input(AT91_PIN_PA26, 1); /* btn1 */
478 at91_set_deglitch(AT91_PIN_PA26, 1); 482 at91_set_deglitch(AT91_PIN_PA26, 1);
479 at91_set_gpio_input(AT91_PIN_PA25, 0); /* btn2 */ 483 at91_set_gpio_input(AT91_PIN_PA25, 1); /* btn2 */
480 at91_set_deglitch(AT91_PIN_PA25, 1); 484 at91_set_deglitch(AT91_PIN_PA25, 1);
481 at91_set_gpio_input(AT91_PIN_PA24, 0); /* btn3 */ 485 at91_set_gpio_input(AT91_PIN_PA24, 1); /* btn3 */
482 at91_set_deglitch(AT91_PIN_PA24, 1); 486 at91_set_deglitch(AT91_PIN_PA24, 1);
483 487
484 platform_device_register(&ek_button_device); 488 platform_device_register(&ek_button_device);
diff --git a/arch/arm/mach-at91/board-sam9263ek.c b/arch/arm/mach-at91/board-sam9263ek.c
index b1d11960a735..8354015c6a23 100644
--- a/arch/arm/mach-at91/board-sam9263ek.c
+++ b/arch/arm/mach-at91/board-sam9263ek.c
@@ -26,13 +26,14 @@
26#include <linux/platform_device.h> 26#include <linux/platform_device.h>
27#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
28#include <linux/spi/ads7846.h> 28#include <linux/spi/ads7846.h>
29#include <linux/i2c/at24.h>
29#include <linux/fb.h> 30#include <linux/fb.h>
30#include <linux/gpio_keys.h> 31#include <linux/gpio_keys.h>
31#include <linux/input.h> 32#include <linux/input.h>
33#include <linux/leds.h>
32 34
33#include <video/atmel_lcdc.h> 35#include <video/atmel_lcdc.h>
34 36
35#include <mach/hardware.h>
36#include <asm/setup.h> 37#include <asm/setup.h>
37#include <asm/mach-types.h> 38#include <asm/mach-types.h>
38#include <asm/irq.h> 39#include <asm/irq.h>
@@ -41,6 +42,7 @@
41#include <asm/mach/map.h> 42#include <asm/mach/map.h>
42#include <asm/mach/irq.h> 43#include <asm/mach/irq.h>
43 44
45#include <mach/hardware.h>
44#include <mach/board.h> 46#include <mach/board.h>
45#include <mach/gpio.h> 47#include <mach/gpio.h>
46#include <mach/at91sam9_smc.h> 48#include <mach/at91sam9_smc.h>
@@ -172,11 +174,11 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
172 { 174 {
173 .name = "Partition 1", 175 .name = "Partition 1",
174 .offset = 0, 176 .offset = 0,
175 .size = 64 * 1024 * 1024, 177 .size = SZ_64M,
176 }, 178 },
177 { 179 {
178 .name = "Partition 2", 180 .name = "Partition 2",
179 .offset = 64 * 1024 * 1024, 181 .offset = MTDPART_OFS_NXTBLK,
180 .size = MTDPART_SIZ_FULL, 182 .size = MTDPART_SIZ_FULL,
181 }, 183 },
182}; 184};
@@ -203,12 +205,30 @@ static struct atmel_nand_data __initdata ek_nand_data = {
203 205
204 206
205/* 207/*
208 * I2C devices
209 */
210static struct at24_platform_data at24c512 = {
211 .byte_len = SZ_512K / 8,
212 .page_size = 128,
213 .flags = AT24_FLAG_ADDR16,
214};
215
216
217static struct i2c_board_info __initdata ek_i2c_devices[] = {
218 {
219 I2C_BOARD_INFO("24c512", 0x50),
220 .platform_data = &at24c512,
221 },
222 /* more devices can be added using expansion connectors */
223};
224
225/*
206 * LCD Controller 226 * LCD Controller
207 */ 227 */
208#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE) 228#if defined(CONFIG_FB_ATMEL) || defined(CONFIG_FB_ATMEL_MODULE)
209static struct fb_videomode at91_tft_vga_modes[] = { 229static struct fb_videomode at91_tft_vga_modes[] = {
210 { 230 {
211 .name = "TX09D50VM1CCA @ 60", 231 .name = "TX09D50VM1CCA @ 60",
212 .refresh = 60, 232 .refresh = 60,
213 .xres = 240, .yres = 320, 233 .xres = 240, .yres = 320,
214 .pixclock = KHZ2PICOS(4965), 234 .pixclock = KHZ2PICOS(4965),
@@ -224,7 +244,7 @@ static struct fb_videomode at91_tft_vga_modes[] = {
224 244
225static struct fb_monspecs at91fb_default_monspecs = { 245static struct fb_monspecs at91fb_default_monspecs = {
226 .manufacturer = "HIT", 246 .manufacturer = "HIT",
227 .monitor = "TX09D70VM1CCA", 247 .monitor = "TX09D70VM1CCA",
228 248
229 .modedb = at91_tft_vga_modes, 249 .modedb = at91_tft_vga_modes,
230 .modedb_len = ARRAY_SIZE(at91_tft_vga_modes), 250 .modedb_len = ARRAY_SIZE(at91_tft_vga_modes),
@@ -235,7 +255,7 @@ static struct fb_monspecs at91fb_default_monspecs = {
235}; 255};
236 256
237#define AT91SAM9263_DEFAULT_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \ 257#define AT91SAM9263_DEFAULT_LCDCON2 (ATMEL_LCDC_MEMOR_LITTLE \
238 | ATMEL_LCDC_DISTYPE_TFT \ 258 | ATMEL_LCDC_DISTYPE_TFT \
239 | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE) 259 | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE)
240 260
241static void at91_lcdc_power_control(int on) 261static void at91_lcdc_power_control(int on)
@@ -277,7 +297,7 @@ static struct gpio_keys_button ek_buttons[] = {
277 .active_low = 1, 297 .active_low = 1,
278 .desc = "right_click", 298 .desc = "right_click",
279 .wakeup = 1, 299 .wakeup = 1,
280 }, 300 }
281}; 301};
282 302
283static struct gpio_keys_platform_data ek_button_data = { 303static struct gpio_keys_platform_data ek_button_data = {
@@ -296,9 +316,9 @@ static struct platform_device ek_button_device = {
296 316
297static void __init ek_add_device_buttons(void) 317static void __init ek_add_device_buttons(void)
298{ 318{
299 at91_set_GPIO_periph(AT91_PIN_PC5, 0); /* left button */ 319 at91_set_GPIO_periph(AT91_PIN_PC5, 1); /* left button */
300 at91_set_deglitch(AT91_PIN_PC5, 1); 320 at91_set_deglitch(AT91_PIN_PC5, 1);
301 at91_set_GPIO_periph(AT91_PIN_PC4, 0); /* right button */ 321 at91_set_GPIO_periph(AT91_PIN_PC4, 1); /* right button */
302 at91_set_deglitch(AT91_PIN_PC4, 1); 322 at91_set_deglitch(AT91_PIN_PC4, 1);
303 323
304 platform_device_register(&ek_button_device); 324 platform_device_register(&ek_button_device);
@@ -320,25 +340,32 @@ static struct atmel_ac97_data ek_ac97_data = {
320 * LEDs ... these could all be PWM-driven, for variable brightness 340 * LEDs ... these could all be PWM-driven, for variable brightness
321 */ 341 */
322static struct gpio_led ek_leds[] = { 342static struct gpio_led ek_leds[] = {
323 { /* "left" led, green, userled1, pwm1 */ 343 { /* "right" led, green, userled2 (could be driven by pwm2) */
324 .name = "ds1",
325 .gpio = AT91_PIN_PB8,
326 .active_low = 1,
327 .default_trigger = "mmc0",
328 },
329 { /* "right" led, green, userled2, pwm2 */
330 .name = "ds2", 344 .name = "ds2",
331 .gpio = AT91_PIN_PC29, 345 .gpio = AT91_PIN_PC29,
332 .active_low = 1, 346 .active_low = 1,
333 .default_trigger = "nand-disk", 347 .default_trigger = "nand-disk",
334 }, 348 },
335 { /* "power" led, yellow, pwm0 */ 349 { /* "power" led, yellow (could be driven by pwm0) */
336 .name = "ds3", 350 .name = "ds3",
337 .gpio = AT91_PIN_PB7, 351 .gpio = AT91_PIN_PB7,
338 .default_trigger = "heartbeat", 352 .default_trigger = "heartbeat",
339 } 353 }
340}; 354};
341 355
356/*
357 * PWM Leds
358 */
359static struct gpio_led ek_pwm_led[] = {
360 /* For now only DS1 is PWM-driven (by pwm1) */
361 {
362 .name = "ds1",
363 .gpio = 1, /* is PWM channel number */
364 .active_low = 1,
365 .default_trigger = "none",
366 }
367};
368
342 369
343static void __init ek_board_init(void) 370static void __init ek_board_init(void)
344{ 371{
@@ -360,7 +387,7 @@ static void __init ek_board_init(void)
360 /* NAND */ 387 /* NAND */
361 at91_add_device_nand(&ek_nand_data); 388 at91_add_device_nand(&ek_nand_data);
362 /* I2C */ 389 /* I2C */
363 at91_add_device_i2c(NULL, 0); 390 at91_add_device_i2c(ek_i2c_devices, ARRAY_SIZE(ek_i2c_devices));
364 /* LCD Controller */ 391 /* LCD Controller */
365 at91_add_device_lcdc(&ek_lcdc_data); 392 at91_add_device_lcdc(&ek_lcdc_data);
366 /* Push Buttons */ 393 /* Push Buttons */
@@ -369,6 +396,7 @@ static void __init ek_board_init(void)
369 at91_add_device_ac97(&ek_ac97_data); 396 at91_add_device_ac97(&ek_ac97_data);
370 /* LEDs */ 397 /* LEDs */
371 at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds)); 398 at91_gpio_leds(ek_leds, ARRAY_SIZE(ek_leds));
399 at91_pwm_leds(ek_pwm_led, ARRAY_SIZE(ek_pwm_led));
372} 400}
373 401
374MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK") 402MACHINE_START(AT91SAM9263EK, "Atmel AT91SAM9263-EK")
diff --git a/arch/arm/mach-at91/board-sam9g20ek.c b/arch/arm/mach-at91/board-sam9g20ek.c
index d4eba5c0ce02..b588ead14d68 100644
--- a/arch/arm/mach-at91/board-sam9g20ek.c
+++ b/arch/arm/mach-at91/board-sam9g20ek.c
@@ -122,16 +122,16 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
122 { 122 {
123 .name = "Bootstrap", 123 .name = "Bootstrap",
124 .offset = 0, 124 .offset = 0,
125 .size = 4 * 1024 * 1024, 125 .size = 4 * SZ_1M,
126 }, 126 },
127 { 127 {
128 .name = "Partition 1", 128 .name = "Partition 1",
129 .offset = 4 * 1024 * 1024, 129 .offset = MTDPART_OFS_NXTBLK,
130 .size = 60 * 1024 * 1024, 130 .size = 60 * SZ_1M,
131 }, 131 },
132 { 132 {
133 .name = "Partition 2", 133 .name = "Partition 2",
134 .offset = 64 * 1024 * 1024, 134 .offset = MTDPART_OFS_NXTBLK,
135 .size = MTDPART_SIZ_FULL, 135 .size = MTDPART_SIZ_FULL,
136 }, 136 },
137}; 137};
diff --git a/arch/arm/mach-at91/board-sam9rlek.c b/arch/arm/mach-at91/board-sam9rlek.c
index c6dce49c388c..270851864308 100644
--- a/arch/arm/mach-at91/board-sam9rlek.c
+++ b/arch/arm/mach-at91/board-sam9rlek.c
@@ -18,7 +18,6 @@
18 18
19#include <video/atmel_lcdc.h> 19#include <video/atmel_lcdc.h>
20 20
21#include <mach/hardware.h>
22#include <asm/setup.h> 21#include <asm/setup.h>
23#include <asm/mach-types.h> 22#include <asm/mach-types.h>
24#include <asm/irq.h> 23#include <asm/irq.h>
@@ -27,6 +26,7 @@
27#include <asm/mach/map.h> 26#include <asm/mach/map.h>
28#include <asm/mach/irq.h> 27#include <asm/mach/irq.h>
29 28
29#include <mach/hardware.h>
30#include <mach/board.h> 30#include <mach/board.h>
31#include <mach/gpio.h> 31#include <mach/gpio.h>
32#include <mach/at91sam9_smc.h> 32#include <mach/at91sam9_smc.h>
@@ -81,11 +81,11 @@ static struct mtd_partition __initdata ek_nand_partition[] = {
81 { 81 {
82 .name = "Partition 1", 82 .name = "Partition 1",
83 .offset = 0, 83 .offset = 0,
84 .size = 256 * 1024, 84 .size = SZ_256K,
85 }, 85 },
86 { 86 {
87 .name = "Partition 2", 87 .name = "Partition 2",
88 .offset = 256 * 1024 , 88 .offset = MTDPART_OFS_NXTBLK,
89 .size = MTDPART_SIZ_FULL, 89 .size = MTDPART_SIZ_FULL,
90 }, 90 },
91}; 91};
@@ -195,6 +195,8 @@ static void __init ek_board_init(void)
195 at91_add_device_mmc(0, &ek_mmc_data); 195 at91_add_device_mmc(0, &ek_mmc_data);
196 /* LCD Controller */ 196 /* LCD Controller */
197 at91_add_device_lcdc(&ek_lcdc_data); 197 at91_add_device_lcdc(&ek_lcdc_data);
198 /* Touch Screen Controller */
199 at91_add_device_tsadcc();
198} 200}
199 201
200MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK") 202MACHINE_START(AT91SAM9RLEK, "Atmel AT91SAM9RL-EK")
diff --git a/arch/arm/mach-at91/board-usb-a9260.c b/arch/arm/mach-at91/board-usb-a9260.c
index f9d0b65da40b..7c350357333a 100644
--- a/arch/arm/mach-at91/board-usb-a9260.c
+++ b/arch/arm/mach-at91/board-usb-a9260.c
@@ -30,7 +30,6 @@
30#include <linux/input.h> 30#include <linux/input.h>
31#include <linux/clk.h> 31#include <linux/clk.h>
32 32
33#include <mach/hardware.h>
34#include <asm/setup.h> 33#include <asm/setup.h>
35#include <asm/mach-types.h> 34#include <asm/mach-types.h>
36#include <asm/irq.h> 35#include <asm/irq.h>
@@ -39,6 +38,7 @@
39#include <asm/mach/map.h> 38#include <asm/mach/map.h>
40#include <asm/mach/irq.h> 39#include <asm/mach/irq.h>
41 40
41#include <mach/hardware.h>
42#include <mach/board.h> 42#include <mach/board.h>
43#include <mach/gpio.h> 43#include <mach/gpio.h>
44#include <mach/at91_shdwc.h> 44#include <mach/at91_shdwc.h>
@@ -93,18 +93,18 @@ static struct at91_eth_data __initdata ek_macb_data = {
93static struct mtd_partition __initdata ek_nand_partition[] = { 93static struct mtd_partition __initdata ek_nand_partition[] = {
94 { 94 {
95 .name = "Uboot & Kernel", 95 .name = "Uboot & Kernel",
96 .offset = 0x00000000, 96 .offset = 0,
97 .size = 16 * 1024 * 1024, 97 .size = SZ_16M,
98 }, 98 },
99 { 99 {
100 .name = "Root FS", 100 .name = "Root FS",
101 .offset = 0x01000000, 101 .offset = MTDPART_OFS_NXTBLK,
102 .size = 120 * 1024 * 1024, 102 .size = 120 * SZ_1M,
103 }, 103 },
104 { 104 {
105 .name = "FS", 105 .name = "FS",
106 .offset = 0x08800000, 106 .offset = MTDPART_OFS_NXTBLK,
107 .size = 120 * 1024 * 1024, 107 .size = 120 * SZ_1M,
108 } 108 }
109}; 109};
110 110
diff --git a/arch/arm/mach-at91/board-usb-a9263.c b/arch/arm/mach-at91/board-usb-a9263.c
index 673e5c27214d..391b566c4571 100644
--- a/arch/arm/mach-at91/board-usb-a9263.c
+++ b/arch/arm/mach-at91/board-usb-a9263.c
@@ -29,7 +29,6 @@
29#include <linux/gpio_keys.h> 29#include <linux/gpio_keys.h>
30#include <linux/input.h> 30#include <linux/input.h>
31 31
32#include <mach/hardware.h>
33#include <asm/setup.h> 32#include <asm/setup.h>
34#include <asm/mach-types.h> 33#include <asm/mach-types.h>
35#include <asm/irq.h> 34#include <asm/irq.h>
@@ -38,6 +37,7 @@
38#include <asm/mach/map.h> 37#include <asm/mach/map.h>
39#include <asm/mach/irq.h> 38#include <asm/mach/irq.h>
40 39
40#include <mach/hardware.h>
41#include <mach/board.h> 41#include <mach/board.h>
42#include <mach/gpio.h> 42#include <mach/gpio.h>
43#include <mach/at91_shdwc.h> 43#include <mach/at91_shdwc.h>
@@ -106,18 +106,18 @@ static struct at91_eth_data __initdata ek_macb_data = {
106static struct mtd_partition __initdata ek_nand_partition[] = { 106static struct mtd_partition __initdata ek_nand_partition[] = {
107 { 107 {
108 .name = "Linux Kernel", 108 .name = "Linux Kernel",
109 .offset = 0x00000000, 109 .offset = 0,
110 .size = 16 * 1024 * 1024, 110 .size = SZ_16M,
111 }, 111 },
112 { 112 {
113 .name = "Root FS", 113 .name = "Root FS",
114 .offset = 0x01000000, 114 .offset = MTDPART_OFS_NXTBLK,
115 .size = 120 * 1024 * 1024, 115 .size = 120 * SZ_1M,
116 }, 116 },
117 { 117 {
118 .name = "FS", 118 .name = "FS",
119 .offset = 0x08800000, 119 .offset = MTDPART_OFS_NXTBLK,
120 .size = 120 * 1024 * 1024, 120 .size = 120 * SZ_1M,
121 } 121 }
122}; 122};
123 123
diff --git a/arch/arm/mach-at91/board-yl-9200.c b/arch/arm/mach-at91/board-yl-9200.c
index 36b380aad006..e22bf051f835 100644
--- a/arch/arm/mach-at91/board-yl-9200.c
+++ b/arch/arm/mach-at91/board-yl-9200.c
@@ -33,7 +33,6 @@
33#include <linux/gpio_keys.h> 33#include <linux/gpio_keys.h>
34#include <linux/input.h> 34#include <linux/input.h>
35 35
36#include <mach/hardware.h>
37#include <asm/setup.h> 36#include <asm/setup.h>
38#include <asm/mach-types.h> 37#include <asm/mach-types.h>
39#include <asm/irq.h> 38#include <asm/irq.h>
@@ -42,6 +41,7 @@
42#include <asm/mach/map.h> 41#include <asm/mach/map.h>
43#include <asm/mach/irq.h> 42#include <asm/mach/irq.h>
44 43
44#include <mach/hardware.h>
45#include <mach/board.h> 45#include <mach/board.h>
46#include <mach/gpio.h> 46#include <mach/gpio.h>
47#include <mach/at91rm9200_mc.h> 47#include <mach/at91rm9200_mc.h>
@@ -150,27 +150,27 @@ static struct mtd_partition __initdata yl9200_nand_partition[] = {
150 { 150 {
151 .name = "AT91 NAND partition 1, boot", 151 .name = "AT91 NAND partition 1, boot",
152 .offset = 0, 152 .offset = 0,
153 .size = 1 * SZ_256K 153 .size = SZ_256K
154 }, 154 },
155 { 155 {
156 .name = "AT91 NAND partition 2, kernel", 156 .name = "AT91 NAND partition 2, kernel",
157 .offset = 1 * SZ_256K, 157 .offset = MTDPART_OFS_NXTBLK,
158 .size = 2 * SZ_1M - 1 * SZ_256K 158 .size = (2 * SZ_1M) - SZ_256K
159 }, 159 },
160 { 160 {
161 .name = "AT91 NAND partition 3, filesystem", 161 .name = "AT91 NAND partition 3, filesystem",
162 .offset = 2 * SZ_1M, 162 .offset = MTDPART_OFS_NXTBLK,
163 .size = 14 * SZ_1M 163 .size = 14 * SZ_1M
164 }, 164 },
165 { 165 {
166 .name = "AT91 NAND partition 4, storage", 166 .name = "AT91 NAND partition 4, storage",
167 .offset = 16 * SZ_1M, 167 .offset = MTDPART_OFS_NXTBLK,
168 .size = 16 * SZ_1M 168 .size = SZ_16M
169 }, 169 },
170 { 170 {
171 .name = "AT91 NAND partition 5, ext-fs", 171 .name = "AT91 NAND partition 5, ext-fs",
172 .offset = 32 * SZ_1M, 172 .offset = MTDPART_OFS_NXTBLK,
173 .size = 32 * SZ_1M 173 .size = SZ_32M
174 } 174 }
175}; 175};
176 176
@@ -193,24 +193,24 @@ static struct atmel_nand_data __initdata yl9200_nand_data = {
193 * NOR Flash 193 * NOR Flash
194 */ 194 */
195#define YL9200_FLASH_BASE AT91_CHIPSELECT_0 195#define YL9200_FLASH_BASE AT91_CHIPSELECT_0
196#define YL9200_FLASH_SIZE 0x1000000 196#define YL9200_FLASH_SIZE SZ_16M
197 197
198static struct mtd_partition yl9200_flash_partitions[] = { 198static struct mtd_partition yl9200_flash_partitions[] = {
199 { 199 {
200 .name = "Bootloader", 200 .name = "Bootloader",
201 .size = 0x00040000,
202 .offset = 0, 201 .offset = 0,
202 .size = SZ_256K,
203 .mask_flags = MTD_WRITEABLE, /* force read-only */ 203 .mask_flags = MTD_WRITEABLE, /* force read-only */
204 }, 204 },
205 { 205 {
206 .name = "Kernel", 206 .name = "Kernel",
207 .size = 0x001C0000, 207 .offset = MTDPART_OFS_NXTBLK,
208 .offset = 0x00040000, 208 .size = (2 * SZ_1M) - SZ_256K
209 }, 209 },
210 { 210 {
211 .name = "Filesystem", 211 .name = "Filesystem",
212 .size = MTDPART_SIZ_FULL, 212 .offset = MTDPART_OFS_NXTBLK,
213 .offset = 0x00200000 213 .size = MTDPART_SIZ_FULL
214 } 214 }
215}; 215};
216 216
@@ -390,10 +390,6 @@ static struct spi_board_info yl9200_spi_devices[] = {
390#if defined(CONFIG_FB_S1D135XX) || defined(CONFIG_FB_S1D13XXX_MODULE) 390#if defined(CONFIG_FB_S1D135XX) || defined(CONFIG_FB_S1D13XXX_MODULE)
391#include <video/s1d13xxxfb.h> 391#include <video/s1d13xxxfb.h>
392 392
393#define AT91_FB_REG_BASE 0x80000000L
394#define AT91_FB_REG_SIZE 0x200
395#define AT91_FB_VMEM_BASE 0x80200000L
396#define AT91_FB_VMEM_SIZE 0x200000L
397 393
398static void __init yl9200_init_video(void) 394static void __init yl9200_init_video(void)
399{ 395{
@@ -516,29 +512,33 @@ static struct s1d13xxxfb_regval yl9200_s1dfb_initregs[] =
516 {S1DREG_COM_DISP_MODE, 0x01}, /* Display Mode Register, LCD only*/ 512 {S1DREG_COM_DISP_MODE, 0x01}, /* Display Mode Register, LCD only*/
517}; 513};
518 514
519static u64 s1dfb_dmamask = DMA_BIT_MASK(32);
520
521static struct s1d13xxxfb_pdata yl9200_s1dfb_pdata = { 515static struct s1d13xxxfb_pdata yl9200_s1dfb_pdata = {
522 .initregs = yl9200_s1dfb_initregs, 516 .initregs = yl9200_s1dfb_initregs,
523 .initregssize = ARRAY_SIZE(yl9200_s1dfb_initregs), 517 .initregssize = ARRAY_SIZE(yl9200_s1dfb_initregs),
524 .platform_init_video = yl9200_init_video, 518 .platform_init_video = yl9200_init_video,
525}; 519};
526 520
521#define YL9200_FB_REG_BASE AT91_CHIPSELECT_7
522#define YL9200_FB_VMEM_BASE YL9200_FB_REG_BASE + SZ_2M
523#define YL9200_FB_VMEM_SIZE SZ_2M
524
527static struct resource yl9200_s1dfb_resource[] = { 525static struct resource yl9200_s1dfb_resource[] = {
528 [0] = { /* video mem */ 526 [0] = { /* video mem */
529 .name = "s1d13xxxfb memory", 527 .name = "s1d13xxxfb memory",
530 .start = AT91_FB_VMEM_BASE, 528 .start = YL9200_FB_VMEM_BASE,
531 .end = AT91_FB_VMEM_BASE + AT91_FB_VMEM_SIZE -1, 529 .end = YL9200_FB_VMEM_BASE + YL9200_FB_VMEM_SIZE -1,
532 .flags = IORESOURCE_MEM, 530 .flags = IORESOURCE_MEM,
533 }, 531 },
534 [1] = { /* video registers */ 532 [1] = { /* video registers */
535 .name = "s1d13xxxfb registers", 533 .name = "s1d13xxxfb registers",
536 .start = AT91_FB_REG_BASE, 534 .start = YL9200_FB_REG_BASE,
537 .end = AT91_FB_REG_BASE + AT91_FB_REG_SIZE -1, 535 .end = YL9200_FB_REG_BASE + SZ_512 -1,
538 .flags = IORESOURCE_MEM, 536 .flags = IORESOURCE_MEM,
539 }, 537 },
540}; 538};
541 539
540static u64 s1dfb_dmamask = DMA_BIT_MASK(32);
541
542static struct platform_device yl9200_s1dfb_device = { 542static struct platform_device yl9200_s1dfb_device = {
543 .name = "s1d13806fb", 543 .name = "s1d13806fb",
544 .id = -1, 544 .id = -1,
diff --git a/arch/arm/mach-at91/clock.c b/arch/arm/mach-at91/clock.c
index f5c2847161f5..e4345106ee57 100644
--- a/arch/arm/mach-at91/clock.c
+++ b/arch/arm/mach-at91/clock.c
@@ -22,8 +22,7 @@
22#include <linux/spinlock.h> 22#include <linux/spinlock.h>
23#include <linux/delay.h> 23#include <linux/delay.h>
24#include <linux/clk.h> 24#include <linux/clk.h>
25 25#include <linux/io.h>
26#include <asm/io.h>
27 26
28#include <mach/hardware.h> 27#include <mach/hardware.h>
29#include <mach/at91_pmc.h> 28#include <mach/at91_pmc.h>
diff --git a/arch/arm/mach-at91/gpio.c b/arch/arm/mach-at91/gpio.c
index 8392d5b517f1..7e5ebb5bdd17 100644
--- a/arch/arm/mach-at91/gpio.c
+++ b/arch/arm/mach-at91/gpio.c
@@ -18,8 +18,8 @@
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/list.h> 19#include <linux/list.h>
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/io.h>
21 22
22#include <asm/io.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <mach/at91_pio.h> 24#include <mach/at91_pio.h>
25#include <mach/gpio.h> 25#include <mach/gpio.h>
@@ -404,7 +404,6 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
404 } 404 }
405 405
406 pin = bank->chipbase; 406 pin = bank->chipbase;
407 gpio = &irq_desc[pin];
408 407
409 while (isr) { 408 while (isr) {
410 if (isr & 1) { 409 if (isr & 1) {
@@ -417,7 +416,7 @@ static void gpio_irq_handler(unsigned irq, struct irq_desc *desc)
417 gpio_irq_mask(pin); 416 gpio_irq_mask(pin);
418 } 417 }
419 else 418 else
420 desc_handle_irq(pin, gpio); 419 generic_handle_irq(pin);
421 } 420 }
422 pin++; 421 pin++;
423 gpio++; 422 gpio++;
diff --git a/arch/arm/mach-at91/include/mach/at91_pit.h b/arch/arm/mach-at91/include/mach/at91_pit.h
index 0448ac36eadb..974d0bd05b5b 100644
--- a/arch/arm/mach-at91/include/mach/at91_pit.h
+++ b/arch/arm/mach-at91/include/mach/at91_pit.h
@@ -1,6 +1,9 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91_pit.h 2 * arch/arm/mach-at91/include/mach/at91_pit.h
3 * 3 *
4 * Copyright (C) 2007 Andrew Victor
5 * Copyright (C) 2007 Atmel Corporation.
6 *
4 * Periodic Interval Timer (PIT) - System peripherals regsters. 7 * Periodic Interval Timer (PIT) - System peripherals regsters.
5 * Based on AT91SAM9261 datasheet revision D. 8 * Based on AT91SAM9261 datasheet revision D.
6 * 9 *
diff --git a/arch/arm/mach-at91/include/mach/at91_rstc.h b/arch/arm/mach-at91/include/mach/at91_rstc.h
index 7cd1b39aaa43..cbd2bf052c1f 100644
--- a/arch/arm/mach-at91/include/mach/at91_rstc.h
+++ b/arch/arm/mach-at91/include/mach/at91_rstc.h
@@ -1,6 +1,9 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91_rstc.h 2 * arch/arm/mach-at91/include/mach/at91_rstc.h
3 * 3 *
4 * Copyright (C) 2007 Andrew Victor
5 * Copyright (C) 2007 Atmel Corporation.
6 *
4 * Reset Controller (RSTC) - System peripherals regsters. 7 * Reset Controller (RSTC) - System peripherals regsters.
5 * Based on AT91SAM9261 datasheet revision D. 8 * Based on AT91SAM9261 datasheet revision D.
6 * 9 *
diff --git a/arch/arm/mach-at91/include/mach/at91_rtt.h b/arch/arm/mach-at91/include/mach/at91_rtt.h
index 71782e5d2159..7ec75de8bbb6 100644
--- a/arch/arm/mach-at91/include/mach/at91_rtt.h
+++ b/arch/arm/mach-at91/include/mach/at91_rtt.h
@@ -1,6 +1,9 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91_rtt.h 2 * arch/arm/mach-at91/include/mach/at91_rtt.h
3 * 3 *
4 * Copyright (C) 2007 Andrew Victor
5 * Copyright (C) 2007 Atmel Corporation.
6 *
4 * Real-time Timer (RTT) - System peripherals regsters. 7 * Real-time Timer (RTT) - System peripherals regsters.
5 * Based on AT91SAM9261 datasheet revision D. 8 * Based on AT91SAM9261 datasheet revision D.
6 * 9 *
diff --git a/arch/arm/mach-at91/include/mach/at91_shdwc.h b/arch/arm/mach-at91/include/mach/at91_shdwc.h
index 60be5ae624f1..c4ce07e8a8fa 100644
--- a/arch/arm/mach-at91/include/mach/at91_shdwc.h
+++ b/arch/arm/mach-at91/include/mach/at91_shdwc.h
@@ -1,6 +1,9 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91_shdwc.h 2 * arch/arm/mach-at91/include/mach/at91_shdwc.h
3 * 3 *
4 * Copyright (C) 2007 Andrew Victor
5 * Copyright (C) 2007 Atmel Corporation.
6 *
4 * Shutdown Controller (SHDWC) - System peripherals regsters. 7 * Shutdown Controller (SHDWC) - System peripherals regsters.
5 * Based on AT91SAM9261 datasheet revision D. 8 * Based on AT91SAM9261 datasheet revision D.
6 * 9 *
diff --git a/arch/arm/mach-at91/include/mach/at91_wdt.h b/arch/arm/mach-at91/include/mach/at91_wdt.h
index 973b4526a98e..fecc2e9f0ca8 100644
--- a/arch/arm/mach-at91/include/mach/at91_wdt.h
+++ b/arch/arm/mach-at91/include/mach/at91_wdt.h
@@ -1,6 +1,9 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91_wdt.h 2 * arch/arm/mach-at91/include/mach/at91_wdt.h
3 * 3 *
4 * Copyright (C) 2007 Andrew Victor
5 * Copyright (C) 2007 Atmel Corporation.
6 *
4 * Watchdog Timer (WDT) - System peripherals regsters. 7 * Watchdog Timer (WDT) - System peripherals regsters.
5 * Based on AT91SAM9261 datasheet revision D. 8 * Based on AT91SAM9261 datasheet revision D.
6 * 9 *
diff --git a/arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h b/arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h
index bca878f3bd87..1499b1cbffdd 100644
--- a/arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h
+++ b/arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h
@@ -1,6 +1,8 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h 2 * arch/arm/mach-at91/include/mach/at91cap9_ddrsdr.h
3 * 3 *
4 * (C) 2008 Andrew Victor
5 *
4 * DDR/SDR Controller (DDRSDRC) - System peripherals registers. 6 * DDR/SDR Controller (DDRSDRC) - System peripherals registers.
5 * Based on AT91CAP9 datasheet revision B. 7 * Based on AT91CAP9 datasheet revision B.
6 * 8 *
diff --git a/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h
index f027de5df956..020f02ed921a 100644
--- a/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h
+++ b/arch/arm/mach-at91/include/mach/at91sam9260_matrix.h
@@ -1,6 +1,8 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91sam9260_matrix.h 2 * arch/arm/mach-at91/include/mach/at91sam9260_matrix.h
3 * 3 *
4 * Copyright (C) 2007 Atmel Corporation.
5 *
4 * Memory Controllers (MATRIX, EBI) - System peripherals registers. 6 * Memory Controllers (MATRIX, EBI) - System peripherals registers.
5 * Based on AT91SAM9260 datasheet revision B. 7 * Based on AT91SAM9260 datasheet revision B.
6 * 8 *
diff --git a/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h b/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h
index db62b1f18300..69c6501915d9 100644
--- a/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h
+++ b/arch/arm/mach-at91/include/mach/at91sam9261_matrix.h
@@ -1,6 +1,8 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91sam9261_matrix.h 2 * arch/arm/mach-at91/include/mach/at91sam9261_matrix.h
3 * 3 *
4 * Copyright (C) 2007 Atmel Corporation.
5 *
4 * Memory Controllers (MATRIX, EBI) - System peripherals registers. 6 * Memory Controllers (MATRIX, EBI) - System peripherals registers.
5 * Based on AT91SAM9261 datasheet revision D. 7 * Based on AT91SAM9261 datasheet revision D.
6 * 8 *
diff --git a/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h b/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h
index 1921181c63ca..b7260389f7ca 100644
--- a/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h
+++ b/arch/arm/mach-at91/include/mach/at91sam9_sdramc.h
@@ -1,6 +1,9 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91sam9_sdramc.h 2 * arch/arm/mach-at91/include/mach/at91sam9_sdramc.h
3 * 3 *
4 * Copyright (C) 2007 Andrew Victor
5 * Copyright (C) 2007 Atmel Corporation.
6 *
4 * SDRAM Controllers (SDRAMC) - System peripherals registers. 7 * SDRAM Controllers (SDRAMC) - System peripherals registers.
5 * Based on AT91SAM9261 datasheet revision D. 8 * Based on AT91SAM9261 datasheet revision D.
6 * 9 *
diff --git a/arch/arm/mach-at91/include/mach/at91sam9_smc.h b/arch/arm/mach-at91/include/mach/at91sam9_smc.h
index ec6ad1338b5a..57de6207e57e 100644
--- a/arch/arm/mach-at91/include/mach/at91sam9_smc.h
+++ b/arch/arm/mach-at91/include/mach/at91sam9_smc.h
@@ -1,6 +1,9 @@
1/* 1/*
2 * arch/arm/mach-at91/include/mach/at91sam9_smc.h 2 * arch/arm/mach-at91/include/mach/at91sam9_smc.h
3 * 3 *
4 * Copyright (C) 2007 Andrew Victor
5 * Copyright (C) 2007 Atmel Corporation.
6 *
4 * Static Memory Controllers (SMC) - System peripherals registers. 7 * Static Memory Controllers (SMC) - System peripherals registers.
5 * Based on AT91SAM9261 datasheet revision D. 8 * Based on AT91SAM9261 datasheet revision D.
6 * 9 *
diff --git a/arch/arm/mach-at91/include/mach/board.h b/arch/arm/mach-at91/include/mach/board.h
index acd60f2a0724..fb51f0e0a83f 100644
--- a/arch/arm/mach-at91/include/mach/board.h
+++ b/arch/arm/mach-at91/include/mach/board.h
@@ -133,6 +133,16 @@ struct atmel_uart_data {
133extern void __init at91_add_device_serial(void); 133extern void __init at91_add_device_serial(void);
134 134
135/* 135/*
136 * PWM
137 */
138#define AT91_PWM0 0
139#define AT91_PWM1 1
140#define AT91_PWM2 2
141#define AT91_PWM3 3
142
143extern void __init at91_add_device_pwm(u32 mask);
144
145/*
136 * SSC -- accessed through ssc_request(id). Drivers don't bind to SSC 146 * SSC -- accessed through ssc_request(id). Drivers don't bind to SSC
137 * platform devices. Their SSC ID is part of their configuration data, 147 * platform devices. Their SSC ID is part of their configuration data,
138 * along with information about which SSC signals they should use. 148 * along with information about which SSC signals they should use.
@@ -162,9 +172,13 @@ extern void __init at91_add_device_ac97(struct atmel_ac97_data *data);
162 /* ISI */ 172 /* ISI */
163extern void __init at91_add_device_isi(void); 173extern void __init at91_add_device_isi(void);
164 174
175 /* Touchscreen Controller */
176extern void __init at91_add_device_tsadcc(void);
177
165 /* LEDs */ 178 /* LEDs */
166extern void __init at91_init_leds(u8 cpu_led, u8 timer_led); 179extern void __init at91_init_leds(u8 cpu_led, u8 timer_led);
167extern void __init at91_gpio_leds(struct gpio_led *leds, int nr); 180extern void __init at91_gpio_leds(struct gpio_led *leds, int nr);
181extern void __init at91_pwm_leds(struct gpio_led *leds, int nr);
168 182
169/* FIXME: this needs a better location, but gets stuff building again */ 183/* FIXME: this needs a better location, but gets stuff building again */
170extern int at91_suspend_entering_slow_clock(void); 184extern int at91_suspend_entering_slow_clock(void);
diff --git a/arch/arm/mach-at91/include/mach/irqs.h b/arch/arm/mach-at91/include/mach/irqs.h
index bda29ccbcd94..36bd55f3fc6e 100644
--- a/arch/arm/mach-at91/include/mach/irqs.h
+++ b/arch/arm/mach-at91/include/mach/irqs.h
@@ -21,7 +21,7 @@
21#ifndef __ASM_ARCH_IRQS_H 21#ifndef __ASM_ARCH_IRQS_H
22#define __ASM_ARCH_IRQS_H 22#define __ASM_ARCH_IRQS_H
23 23
24#include <asm/io.h> 24#include <linux/io.h>
25#include <mach/at91_aic.h> 25#include <mach/at91_aic.h>
26 26
27#define NR_AIC_IRQS 32 27#define NR_AIC_IRQS 32
diff --git a/arch/arm/mach-at91/include/mach/uncompress.h b/arch/arm/mach-at91/include/mach/uncompress.h
index 0410d548e9b1..18bdcdeb474f 100644
--- a/arch/arm/mach-at91/include/mach/uncompress.h
+++ b/arch/arm/mach-at91/include/mach/uncompress.h
@@ -21,7 +21,7 @@
21#ifndef __ASM_ARCH_UNCOMPRESS_H 21#ifndef __ASM_ARCH_UNCOMPRESS_H
22#define __ASM_ARCH_UNCOMPRESS_H 22#define __ASM_ARCH_UNCOMPRESS_H
23 23
24#include <asm/io.h> 24#include <linux/io.h>
25#include <linux/atmel_serial.h> 25#include <linux/atmel_serial.h>
26 26
27#if defined(CONFIG_AT91_EARLY_DBGU) 27#if defined(CONFIG_AT91_EARLY_DBGU)
diff --git a/arch/arm/mach-at91/leds.c b/arch/arm/mach-at91/leds.c
index fec03c59ff94..0415a839e1ad 100644
--- a/arch/arm/mach-at91/leds.c
+++ b/arch/arm/mach-at91/leds.c
@@ -12,6 +12,7 @@
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h>
15 16
16#include <mach/board.h> 17#include <mach/board.h>
17#include <mach/gpio.h> 18#include <mach/gpio.h>
@@ -21,15 +22,13 @@
21 22
22#if defined(CONFIG_NEW_LEDS) 23#if defined(CONFIG_NEW_LEDS)
23 24
24#include <linux/platform_device.h>
25
26/* 25/*
27 * New cross-platform LED support. 26 * New cross-platform LED support.
28 */ 27 */
29 28
30static struct gpio_led_platform_data led_data; 29static struct gpio_led_platform_data led_data;
31 30
32static struct platform_device at91_leds = { 31static struct platform_device at91_gpio_leds_device = {
33 .name = "leds-gpio", 32 .name = "leds-gpio",
34 .id = -1, 33 .id = -1,
35 .dev.platform_data = &led_data, 34 .dev.platform_data = &led_data,
@@ -47,7 +46,7 @@ void __init at91_gpio_leds(struct gpio_led *leds, int nr)
47 46
48 led_data.leds = leds; 47 led_data.leds = leds;
49 led_data.num_leds = nr; 48 led_data.num_leds = nr;
50 platform_device_register(&at91_leds); 49 platform_device_register(&at91_gpio_leds_device);
51} 50}
52 51
53#else 52#else
@@ -57,6 +56,44 @@ void __init at91_gpio_leds(struct gpio_led *leds, int nr) {}
57 56
58/* ------------------------------------------------------------------------- */ 57/* ------------------------------------------------------------------------- */
59 58
59#if defined (CONFIG_LEDS_ATMEL_PWM)
60
61/*
62 * PWM Leds
63 */
64
65static struct gpio_led_platform_data pwm_led_data;
66
67static struct platform_device at91_pwm_leds_device = {
68 .name = "leds-atmel-pwm",
69 .id = -1,
70 .dev.platform_data = &pwm_led_data,
71};
72
73void __init at91_pwm_leds(struct gpio_led *leds, int nr)
74{
75 int i;
76 u32 pwm_mask = 0;
77
78 if (!nr)
79 return;
80
81 for (i = 0; i < nr; i++)
82 pwm_mask |= (1 << leds[i].gpio);
83
84 pwm_led_data.leds = leds;
85 pwm_led_data.num_leds = nr;
86
87 at91_add_device_pwm(pwm_mask);
88 platform_device_register(&at91_pwm_leds_device);
89}
90#else
91void __init at91_pwm_leds(struct gpio_led *leds, int nr){}
92#endif
93
94
95/* ------------------------------------------------------------------------- */
96
60#if defined(CONFIG_LEDS) 97#if defined(CONFIG_LEDS)
61 98
62#include <asm/leds.h> 99#include <asm/leds.h>
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index ec2fe4ca1e27..9bb4f043aa22 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -17,8 +17,8 @@
17#include <linux/sysfs.h> 17#include <linux/sysfs.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/io.h>
20 21
21#include <asm/io.h>
22#include <asm/irq.h> 22#include <asm/irq.h>
23#include <asm/atomic.h> 23#include <asm/atomic.h>
24#include <asm/mach/time.h> 24#include <asm/mach/time.h>
diff --git a/arch/arm/mach-at91/pm_slowclock.S b/arch/arm/mach-at91/pm_slowclock.S
new file mode 100644
index 000000000000..987fab3d846a
--- /dev/null
+++ b/arch/arm/mach-at91/pm_slowclock.S
@@ -0,0 +1,283 @@
1/*
2 * arch/arm/mach-at91/pm_slow_clock.S
3 *
4 * Copyright (C) 2006 Savin Zlobec
5 *
6 * AT91SAM9 support:
7 * Copyright (C) 2007 Anti Sullin <anti.sullin@artecdesign.ee
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 *
13 */
14
15#include <linux/linkage.h>
16#include <mach/hardware.h>
17#include <mach/at91_pmc.h>
18
19#ifdef CONFIG_ARCH_AT91RM9200
20#include <mach/at91rm9200_mc.h>
21#elif defined(CONFIG_ARCH_AT91CAP9)
22#include <mach/at91cap9_ddrsdr.h>
23#else
24#include <mach/at91sam9_sdramc.h>
25#endif
26
27
28#ifdef CONFIG_ARCH_AT91SAM9263
29/*
30 * FIXME either or both the SDRAM controllers (EB0, EB1) might be in use;
31 * handle those cases both here and in the Suspend-To-RAM support.
32 */
33#define AT91_SDRAMC AT91_SDRAMC0
34#warning Assuming EB1 SDRAM controller is *NOT* used
35#endif
36
37/*
38 * When SLOWDOWN_MASTER_CLOCK is defined we will also slow down the Master
39 * clock during suspend by adjusting its prescalar and divisor.
40 * NOTE: This hasn't been shown to be stable on SAM9s; and on the RM9200 there
41 * are errata regarding adjusting the prescalar and divisor.
42 */
43#undef SLOWDOWN_MASTER_CLOCK
44
45#define MCKRDY_TIMEOUT 1000
46#define MOSCRDY_TIMEOUT 1000
47#define PLLALOCK_TIMEOUT 1000
48#define PLLBLOCK_TIMEOUT 1000
49
50
51/*
52 * Wait until master clock is ready (after switching master clock source)
53 */
54 .macro wait_mckrdy
55 mov r4, #MCKRDY_TIMEOUT
561: sub r4, r4, #1
57 cmp r4, #0
58 beq 2f
59 ldr r3, [r1, #(AT91_PMC_SR - AT91_PMC)]
60 tst r3, #AT91_PMC_MCKRDY
61 beq 1b
622:
63 .endm
64
65/*
66 * Wait until master oscillator has stabilized.
67 */
68 .macro wait_moscrdy
69 mov r4, #MOSCRDY_TIMEOUT
701: sub r4, r4, #1
71 cmp r4, #0
72 beq 2f
73 ldr r3, [r1, #(AT91_PMC_SR - AT91_PMC)]
74 tst r3, #AT91_PMC_MOSCS
75 beq 1b
762:
77 .endm
78
79/*
80 * Wait until PLLA has locked.
81 */
82 .macro wait_pllalock
83 mov r4, #PLLALOCK_TIMEOUT
841: sub r4, r4, #1
85 cmp r4, #0
86 beq 2f
87 ldr r3, [r1, #(AT91_PMC_SR - AT91_PMC)]
88 tst r3, #AT91_PMC_LOCKA
89 beq 1b
902:
91 .endm
92
93/*
94 * Wait until PLLB has locked.
95 */
96 .macro wait_pllblock
97 mov r4, #PLLBLOCK_TIMEOUT
981: sub r4, r4, #1
99 cmp r4, #0
100 beq 2f
101 ldr r3, [r1, #(AT91_PMC_SR - AT91_PMC)]
102 tst r3, #AT91_PMC_LOCKB
103 beq 1b
1042:
105 .endm
106
107 .text
108
109ENTRY(at91_slow_clock)
110 /* Save registers on stack */
111 stmfd sp!, {r0 - r12, lr}
112
113 /*
114 * Register usage:
115 * R1 = Base address of AT91_PMC
116 * R2 = Base address of AT91_SDRAMC (or AT91_SYS on AT91RM9200)
117 * R3 = temporary register
118 * R4 = temporary register
119 */
120 ldr r1, .at91_va_base_pmc
121 ldr r2, .at91_va_base_sdramc
122
123 /* Drain write buffer */
124 mcr p15, 0, r0, c7, c10, 4
125
126#ifdef CONFIG_ARCH_AT91RM9200
127 /* Put SDRAM in self-refresh mode */
128 mov r3, #1
129 str r3, [r2, #AT91_SDRAMC_SRR]
130#elif defined(CONFIG_ARCH_AT91CAP9)
131 /* Enable SDRAM self-refresh mode */
132 ldr r3, [r2, #AT91_DDRSDRC_LPR - AT91_DDRSDRC]
133 str r3, .saved_sam9_lpr
134
135 mov r3, #AT91_DDRSDRC_LPCB_SELF_REFRESH
136 str r3, [r2, #AT91_DDRSDRC_LPR - AT91_DDRSDRC]
137#else
138 /* Enable SDRAM self-refresh mode */
139 ldr r3, [r2, #AT91_SDRAMC_LPR - AT91_SDRAMC]
140 str r3, .saved_sam9_lpr
141
142 mov r3, #AT91_SDRAMC_LPCB_SELF_REFRESH
143 str r3, [r2, #AT91_SDRAMC_LPR - AT91_SDRAMC]
144#endif
145
146 /* Save Master clock setting */
147 ldr r3, [r1, #(AT91_PMC_MCKR - AT91_PMC)]
148 str r3, .saved_mckr
149
150 /*
151 * Set the Master clock source to slow clock
152 */
153 bic r3, r3, #AT91_PMC_CSS
154 str r3, [r1, #(AT91_PMC_MCKR - AT91_PMC)]
155
156 wait_mckrdy
157
158#ifdef SLOWDOWN_MASTER_CLOCK
159 /*
160 * Set the Master Clock PRES and MDIV fields.
161 *
162 * See AT91RM9200 errata #27 and #28 for details.
163 */
164 mov r3, #0
165 str r3, [r1, #(AT91_PMC_MCKR - AT91_PMC)]
166
167 wait_mckrdy
168#endif
169
170 /* Save PLLA setting and disable it */
171 ldr r3, [r1, #(AT91_CKGR_PLLAR - AT91_PMC)]
172 str r3, .saved_pllar
173
174 mov r3, #AT91_PMC_PLLCOUNT
175 orr r3, r3, #(1 << 29) /* bit 29 always set */
176 str r3, [r1, #(AT91_CKGR_PLLAR - AT91_PMC)]
177
178 wait_pllalock
179
180 /* Save PLLB setting and disable it */
181 ldr r3, [r1, #(AT91_CKGR_PLLBR - AT91_PMC)]
182 str r3, .saved_pllbr
183
184 mov r3, #AT91_PMC_PLLCOUNT
185 str r3, [r1, #(AT91_CKGR_PLLBR - AT91_PMC)]
186
187 wait_pllblock
188
189 /* Turn off the main oscillator */
190 ldr r3, [r1, #(AT91_CKGR_MOR - AT91_PMC)]
191 bic r3, r3, #AT91_PMC_MOSCEN
192 str r3, [r1, #(AT91_CKGR_MOR - AT91_PMC)]
193
194 /* Wait for interrupt */
195 mcr p15, 0, r0, c7, c0, 4
196
197 /* Turn on the main oscillator */
198 ldr r3, [r1, #(AT91_CKGR_MOR - AT91_PMC)]
199 orr r3, r3, #AT91_PMC_MOSCEN
200 str r3, [r1, #(AT91_CKGR_MOR - AT91_PMC)]
201
202 wait_moscrdy
203
204 /* Restore PLLB setting */
205 ldr r3, .saved_pllbr
206 str r3, [r1, #(AT91_CKGR_PLLBR - AT91_PMC)]
207
208 wait_pllblock
209
210 /* Restore PLLA setting */
211 ldr r3, .saved_pllar
212 str r3, [r1, #(AT91_CKGR_PLLAR - AT91_PMC)]
213
214 wait_pllalock
215
216#ifdef SLOWDOWN_MASTER_CLOCK
217 /*
218 * First set PRES if it was not 0,
219 * than set CSS and MDIV fields.
220 *
221 * See AT91RM9200 errata #27 and #28 for details.
222 */
223 ldr r3, .saved_mckr
224 tst r3, #AT91_PMC_PRES
225 beq 2f
226 and r3, r3, #AT91_PMC_PRES
227 str r3, [r1, #(AT91_PMC_MCKR - AT91_PMC)]
228
229 wait_mckrdy
230#endif
231
232 /*
233 * Restore master clock setting
234 */
2352: ldr r3, .saved_mckr
236 str r3, [r1, #(AT91_PMC_MCKR - AT91_PMC)]
237
238 wait_mckrdy
239
240#ifdef CONFIG_ARCH_AT91RM9200
241 /* Do nothing - self-refresh is automatically disabled. */
242#elif defined(CONFIG_ARCH_AT91CAP9)
243 /* Restore LPR on AT91CAP9 */
244 ldr r3, .saved_sam9_lpr
245 str r3, [r2, #AT91_DDRSDRC_LPR - AT91_DDRSDRC]
246#else
247 /* Restore LPR on AT91SAM9 */
248 ldr r3, .saved_sam9_lpr
249 str r3, [r2, #AT91_SDRAMC_LPR - AT91_SDRAMC]
250#endif
251
252 /* Restore registers, and return */
253 ldmfd sp!, {r0 - r12, pc}
254
255
256.saved_mckr:
257 .word 0
258
259.saved_pllar:
260 .word 0
261
262.saved_pllbr:
263 .word 0
264
265.saved_sam9_lpr:
266 .word 0
267
268.at91_va_base_pmc:
269 .word AT91_VA_BASE_SYS + AT91_PMC
270
271#ifdef CONFIG_ARCH_AT91RM9200
272.at91_va_base_sdramc:
273 .word AT91_VA_BASE_SYS
274#elif defined(CONFIG_ARCH_AT91CAP9)
275.at91_va_base_sdramc:
276 .word AT91_VA_BASE_SYS + AT91_DDRSDRC
277#else
278.at91_va_base_sdramc:
279 .word AT91_VA_BASE_SYS + AT91_SDRAMC
280#endif
281
282ENTRY(at91_slow_clock_sz)
283 .word .-at91_slow_clock
diff --git a/arch/arm/mach-clps711x/autcpu12.c b/arch/arm/mach-clps711x/autcpu12.c
index 474616dcd7a6..5f18eccdc725 100644
--- a/arch/arm/mach-clps711x/autcpu12.c
+++ b/arch/arm/mach-clps711x/autcpu12.c
@@ -22,10 +22,10 @@
22#include <linux/types.h> 22#include <linux/types.h>
23#include <linux/string.h> 23#include <linux/string.h>
24#include <linux/mm.h> 24#include <linux/mm.h>
25#include <linux/io.h>
25 26
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/sizes.h> 28#include <asm/sizes.h>
28#include <asm/io.h>
29#include <asm/setup.h> 29#include <asm/setup.h>
30#include <asm/mach-types.h> 30#include <asm/mach-types.h>
31#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-clps711x/cdb89712.c b/arch/arm/mach-clps711x/cdb89712.c
index aa02aa5a01f4..71a80b5b8ad6 100644
--- a/arch/arm/mach-clps711x/cdb89712.c
+++ b/arch/arm/mach-clps711x/cdb89712.c
@@ -22,9 +22,9 @@
22#include <linux/types.h> 22#include <linux/types.h>
23#include <linux/string.h> 23#include <linux/string.h>
24#include <linux/mm.h> 24#include <linux/mm.h>
25#include <linux/io.h>
25 26
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/io.h>
28#include <asm/pgtable.h> 28#include <asm/pgtable.h>
29#include <asm/page.h> 29#include <asm/page.h>
30#include <asm/setup.h> 30#include <asm/setup.h>
diff --git a/arch/arm/mach-clps711x/include/mach/system.h b/arch/arm/mach-clps711x/include/mach/system.h
index a8eade40317f..24e96159e3e7 100644
--- a/arch/arm/mach-clps711x/include/mach/system.h
+++ b/arch/arm/mach-clps711x/include/mach/system.h
@@ -20,9 +20,9 @@
20#ifndef __ASM_ARCH_SYSTEM_H 20#ifndef __ASM_ARCH_SYSTEM_H
21#define __ASM_ARCH_SYSTEM_H 21#define __ASM_ARCH_SYSTEM_H
22 22
23#include <linux/io.h>
23#include <mach/hardware.h> 24#include <mach/hardware.h>
24#include <asm/hardware/clps7111.h> 25#include <asm/hardware/clps7111.h>
25#include <asm/io.h>
26 26
27static inline void arch_idle(void) 27static inline void arch_idle(void)
28{ 28{
diff --git a/arch/arm/mach-clps711x/irq.c b/arch/arm/mach-clps711x/irq.c
index 38623cfcac5a..9a12d8562284 100644
--- a/arch/arm/mach-clps711x/irq.c
+++ b/arch/arm/mach-clps711x/irq.c
@@ -19,10 +19,10 @@
19 */ 19 */
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/list.h> 21#include <linux/list.h>
22#include <linux/io.h>
22 23
23#include <asm/mach/irq.h> 24#include <asm/mach/irq.h>
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/io.h>
26#include <asm/irq.h> 26#include <asm/irq.h>
27 27
28#include <asm/hardware/clps7111.h> 28#include <asm/hardware/clps7111.h>
diff --git a/arch/arm/mach-clps711x/p720t-leds.c b/arch/arm/mach-clps711x/p720t-leds.c
index 262c3c361453..15121446efc8 100644
--- a/arch/arm/mach-clps711x/p720t-leds.c
+++ b/arch/arm/mach-clps711x/p720t-leds.c
@@ -21,9 +21,9 @@
21 */ 21 */
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/io.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/io.h>
27#include <asm/leds.h> 27#include <asm/leds.h>
28#include <asm/system.h> 28#include <asm/system.h>
29#include <asm/mach-types.h> 29#include <asm/mach-types.h>
diff --git a/arch/arm/mach-clps711x/p720t.c b/arch/arm/mach-clps711x/p720t.c
index f51f97d4f212..0d94a30fd6fc 100644
--- a/arch/arm/mach-clps711x/p720t.c
+++ b/arch/arm/mach-clps711x/p720t.c
@@ -22,9 +22,9 @@
22#include <linux/types.h> 22#include <linux/types.h>
23#include <linux/string.h> 23#include <linux/string.h>
24#include <linux/mm.h> 24#include <linux/mm.h>
25#include <linux/io.h>
25 26
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/io.h>
28#include <asm/pgtable.h> 28#include <asm/pgtable.h>
29#include <asm/page.h> 29#include <asm/page.h>
30#include <asm/setup.h> 30#include <asm/setup.h>
diff --git a/arch/arm/mach-clps711x/time.c b/arch/arm/mach-clps711x/time.c
index ef1fcd17189e..d581ef0bcd24 100644
--- a/arch/arm/mach-clps711x/time.c
+++ b/arch/arm/mach-clps711x/time.c
@@ -21,11 +21,11 @@
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/irq.h> 22#include <linux/irq.h>
23#include <linux/sched.h> 23#include <linux/sched.h>
24#include <linux/io.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/irq.h> 27#include <asm/irq.h>
27#include <asm/leds.h> 28#include <asm/leds.h>
28#include <asm/io.h>
29#include <asm/hardware/clps7111.h> 29#include <asm/hardware/clps7111.h>
30 30
31#include <asm/mach/time.h> 31#include <asm/mach/time.h>
diff --git a/arch/arm/mach-clps7500/core.c b/arch/arm/mach-clps7500/core.c
index cc1b82179e83..c3a33b8a5aac 100644
--- a/arch/arm/mach-clps7500/core.c
+++ b/arch/arm/mach-clps7500/core.c
@@ -15,6 +15,7 @@
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/device.h> 16#include <linux/device.h>
17#include <linux/serial_8250.h> 17#include <linux/serial_8250.h>
18#include <linux/io.h>
18 19
19#include <asm/mach/arch.h> 20#include <asm/mach/arch.h>
20#include <asm/mach/map.h> 21#include <asm/mach/map.h>
@@ -23,7 +24,6 @@
23 24
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/hardware/iomd.h> 26#include <asm/hardware/iomd.h>
26#include <asm/io.h>
27#include <asm/irq.h> 27#include <asm/irq.h>
28#include <asm/mach-types.h> 28#include <asm/mach-types.h>
29 29
diff --git a/arch/arm/mach-clps7500/include/mach/irq.h b/arch/arm/mach-clps7500/include/mach/irq.h
index e8da3c58df76..d02fcf28ee05 100644
--- a/arch/arm/mach-clps7500/include/mach/irq.h
+++ b/arch/arm/mach-clps7500/include/mach/irq.h
@@ -10,8 +10,8 @@
10 * 11-08-1999 PJB Created ARM7500 version, derived from RiscPC code 10 * 11-08-1999 PJB Created ARM7500 version, derived from RiscPC code
11 */ 11 */
12 12
13#include <linux/io.h>
13#include <asm/hardware/iomd.h> 14#include <asm/hardware/iomd.h>
14#include <asm/io.h>
15 15
16static inline int fixup_irq(unsigned int irq) 16static inline int fixup_irq(unsigned int irq)
17{ 17{
diff --git a/arch/arm/mach-clps7500/include/mach/memory.h b/arch/arm/mach-clps7500/include/mach/memory.h
index 3326aa99d3ec..87b32db470c8 100644
--- a/arch/arm/mach-clps7500/include/mach/memory.h
+++ b/arch/arm/mach-clps7500/include/mach/memory.h
@@ -32,4 +32,12 @@
32#define FLUSH_BASE_PHYS 0x00000000 32#define FLUSH_BASE_PHYS 0x00000000
33#define FLUSH_BASE 0xdf000000 33#define FLUSH_BASE 0xdf000000
34 34
35/*
36 * Sparsemem support. Each section is a maximum of 64MB. The sections
37 * are offset by 128MB and can cover 128MB, so that gives us a maximum
38 * of 29 physmem bits.
39 */
40#define MAX_PHYSMEM_BITS 29
41#define SECTION_SIZE_BITS 26
42
35#endif 43#endif
diff --git a/arch/arm/mach-clps7500/include/mach/system.h b/arch/arm/mach-clps7500/include/mach/system.h
index 624fc2830ae0..6d325fbe8b08 100644
--- a/arch/arm/mach-clps7500/include/mach/system.h
+++ b/arch/arm/mach-clps7500/include/mach/system.h
@@ -6,8 +6,8 @@
6#ifndef __ASM_ARCH_SYSTEM_H 6#ifndef __ASM_ARCH_SYSTEM_H
7#define __ASM_ARCH_SYSTEM_H 7#define __ASM_ARCH_SYSTEM_H
8 8
9#include <linux/io.h>
9#include <asm/hardware/iomd.h> 10#include <asm/hardware/iomd.h>
10#include <asm/io.h>
11 11
12static inline void arch_idle(void) 12static inline void arch_idle(void)
13{ 13{
diff --git a/arch/arm/mach-davinci/Makefile b/arch/arm/mach-davinci/Makefile
index 99ac2e55774d..4dc458597f40 100644
--- a/arch/arm/mach-davinci/Makefile
+++ b/arch/arm/mach-davinci/Makefile
@@ -5,7 +5,7 @@
5 5
6# Common objects 6# Common objects
7obj-y := time.o irq.o clock.o serial.o io.o id.o psc.o \ 7obj-y := time.o irq.o clock.o serial.o io.o id.o psc.o \
8 gpio.o mux.o 8 gpio.o mux.o devices.o usb.o
9 9
10# Board specific 10# Board specific
11obj-$(CONFIG_MACH_DAVINCI_EVM) += board-evm.o 11obj-$(CONFIG_MACH_DAVINCI_EVM) += board-evm.o
diff --git a/arch/arm/mach-davinci/board-evm.c b/arch/arm/mach-davinci/board-evm.c
index 134355787814..a957d239a683 100644
--- a/arch/arm/mach-davinci/board-evm.c
+++ b/arch/arm/mach-davinci/board-evm.c
@@ -13,20 +13,28 @@
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/dma-mapping.h> 14#include <linux/dma-mapping.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/gpio.h>
17#include <linux/leds.h>
18
19#include <linux/i2c.h>
20#include <linux/i2c/pcf857x.h>
21#include <linux/i2c/at24.h>
22
16#include <linux/mtd/mtd.h> 23#include <linux/mtd/mtd.h>
17#include <linux/mtd/partitions.h> 24#include <linux/mtd/partitions.h>
18#include <linux/mtd/physmap.h> 25#include <linux/mtd/physmap.h>
26#include <linux/io.h>
19 27
20#include <asm/setup.h> 28#include <asm/setup.h>
21#include <asm/io.h>
22#include <asm/mach-types.h> 29#include <asm/mach-types.h>
23#include <mach/hardware.h>
24 30
25#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
26#include <asm/mach/map.h> 32#include <asm/mach/map.h>
27#include <asm/mach/flash.h> 33#include <asm/mach/flash.h>
28 34
35#include <mach/hardware.h>
29#include <mach/common.h> 36#include <mach/common.h>
37#include <mach/i2c.h>
30 38
31/* other misc. init functions */ 39/* other misc. init functions */
32void __init davinci_psc_init(void); 40void __init davinci_psc_init(void);
@@ -34,10 +42,10 @@ void __init davinci_irq_init(void);
34void __init davinci_map_common_io(void); 42void __init davinci_map_common_io(void);
35void __init davinci_init_common_hw(void); 43void __init davinci_init_common_hw(void);
36 44
37/* NOR Flash base address set to CS0 by default */ 45#if defined(CONFIG_MTD_PHYSMAP) || \
38#define NOR_FLASH_PHYS 0x02000000 46 defined(CONFIG_MTD_PHYSMAP_MODULE)
39 47
40static struct mtd_partition davinci_evm_partitions[] = { 48static struct mtd_partition davinci_evm_norflash_partitions[] = {
41 /* bootloader (U-Boot, etc) in first 4 sectors */ 49 /* bootloader (U-Boot, etc) in first 4 sectors */
42 { 50 {
43 .name = "bootloader", 51 .name = "bootloader",
@@ -68,32 +76,323 @@ static struct mtd_partition davinci_evm_partitions[] = {
68 } 76 }
69}; 77};
70 78
71static struct physmap_flash_data davinci_evm_flash_data = { 79static struct physmap_flash_data davinci_evm_norflash_data = {
72 .width = 2, 80 .width = 2,
73 .parts = davinci_evm_partitions, 81 .parts = davinci_evm_norflash_partitions,
74 .nr_parts = ARRAY_SIZE(davinci_evm_partitions), 82 .nr_parts = ARRAY_SIZE(davinci_evm_norflash_partitions),
75}; 83};
76 84
77/* NOTE: CFI probe will correctly detect flash part as 32M, but EMIF 85/* NOTE: CFI probe will correctly detect flash part as 32M, but EMIF
78 * limits addresses to 16M, so using addresses past 16M will wrap */ 86 * limits addresses to 16M, so using addresses past 16M will wrap */
79static struct resource davinci_evm_flash_resource = { 87static struct resource davinci_evm_norflash_resource = {
80 .start = NOR_FLASH_PHYS, 88 .start = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE,
81 .end = NOR_FLASH_PHYS + SZ_16M - 1, 89 .end = DAVINCI_ASYNC_EMIF_DATA_CE0_BASE + SZ_16M - 1,
82 .flags = IORESOURCE_MEM, 90 .flags = IORESOURCE_MEM,
83}; 91};
84 92
85static struct platform_device davinci_evm_flash_device = { 93static struct platform_device davinci_evm_norflash_device = {
86 .name = "physmap-flash", 94 .name = "physmap-flash",
87 .id = 0, 95 .id = 0,
88 .dev = { 96 .dev = {
89 .platform_data = &davinci_evm_flash_data, 97 .platform_data = &davinci_evm_norflash_data,
90 }, 98 },
91 .num_resources = 1, 99 .num_resources = 1,
92 .resource = &davinci_evm_flash_resource, 100 .resource = &davinci_evm_norflash_resource,
101};
102
103#endif
104
105#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
106 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
107
108static struct resource ide_resources[] = {
109 {
110 .start = DAVINCI_CFC_ATA_BASE,
111 .end = DAVINCI_CFC_ATA_BASE + 0x7ff,
112 .flags = IORESOURCE_MEM,
113 },
114 {
115 .start = IRQ_IDE,
116 .end = IRQ_IDE,
117 .flags = IORESOURCE_IRQ,
118 },
119};
120
121static u64 ide_dma_mask = DMA_32BIT_MASK;
122
123static struct platform_device ide_dev = {
124 .name = "palm_bk3710",
125 .id = -1,
126 .resource = ide_resources,
127 .num_resources = ARRAY_SIZE(ide_resources),
128 .dev = {
129 .dma_mask = &ide_dma_mask,
130 .coherent_dma_mask = DMA_32BIT_MASK,
131 },
132};
133
134#endif
135
136/*----------------------------------------------------------------------*/
137
138/*
139 * I2C GPIO expanders
140 */
141
142#define PCF_Uxx_BASE(x) (DAVINCI_N_GPIO + ((x) * 8))
143
144
145/* U2 -- LEDs */
146
147static struct gpio_led evm_leds[] = {
148 { .name = "DS8", .active_low = 1,
149 .default_trigger = "heartbeat", },
150 { .name = "DS7", .active_low = 1, },
151 { .name = "DS6", .active_low = 1, },
152 { .name = "DS5", .active_low = 1, },
153 { .name = "DS4", .active_low = 1, },
154 { .name = "DS3", .active_low = 1, },
155 { .name = "DS2", .active_low = 1,
156 .default_trigger = "mmc0", },
157 { .name = "DS1", .active_low = 1,
158 .default_trigger = "ide-disk", },
159};
160
161static const struct gpio_led_platform_data evm_led_data = {
162 .num_leds = ARRAY_SIZE(evm_leds),
163 .leds = evm_leds,
164};
165
166static struct platform_device *evm_led_dev;
167
168static int
169evm_led_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
170{
171 struct gpio_led *leds = evm_leds;
172 int status;
173
174 while (ngpio--) {
175 leds->gpio = gpio++;
176 leds++;
177 }
178
179 /* what an extremely annoying way to be forced to handle
180 * device unregistration ...
181 */
182 evm_led_dev = platform_device_alloc("leds-gpio", 0);
183 platform_device_add_data(evm_led_dev,
184 &evm_led_data, sizeof evm_led_data);
185
186 evm_led_dev->dev.parent = &client->dev;
187 status = platform_device_add(evm_led_dev);
188 if (status < 0) {
189 platform_device_put(evm_led_dev);
190 evm_led_dev = NULL;
191 }
192 return status;
193}
194
195static int
196evm_led_teardown(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
197{
198 if (evm_led_dev) {
199 platform_device_unregister(evm_led_dev);
200 evm_led_dev = NULL;
201 }
202 return 0;
203}
204
205static struct pcf857x_platform_data pcf_data_u2 = {
206 .gpio_base = PCF_Uxx_BASE(0),
207 .setup = evm_led_setup,
208 .teardown = evm_led_teardown,
209};
210
211
212/* U18 - A/V clock generator and user switch */
213
214static int sw_gpio;
215
216static ssize_t
217sw_show(struct device *d, struct device_attribute *a, char *buf)
218{
219 char *s = gpio_get_value_cansleep(sw_gpio) ? "on\n" : "off\n";
220
221 strcpy(buf, s);
222 return strlen(s);
223}
224
225static DEVICE_ATTR(user_sw, S_IRUGO, sw_show, NULL);
226
227static int
228evm_u18_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
229{
230 int status;
231
232 /* export dip switch option */
233 sw_gpio = gpio + 7;
234 status = gpio_request(sw_gpio, "user_sw");
235 if (status == 0)
236 status = gpio_direction_input(sw_gpio);
237 if (status == 0)
238 status = device_create_file(&client->dev, &dev_attr_user_sw);
239 else
240 gpio_free(sw_gpio);
241 if (status != 0)
242 sw_gpio = -EINVAL;
243
244 /* audio PLL: 48 kHz (vs 44.1 or 32), single rate (vs double) */
245 gpio_request(gpio + 3, "pll_fs2");
246 gpio_direction_output(gpio + 3, 0);
247
248 gpio_request(gpio + 2, "pll_fs1");
249 gpio_direction_output(gpio + 2, 0);
250
251 gpio_request(gpio + 1, "pll_sr");
252 gpio_direction_output(gpio + 1, 0);
253
254 return 0;
255}
256
257static int
258evm_u18_teardown(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
259{
260 gpio_free(gpio + 1);
261 gpio_free(gpio + 2);
262 gpio_free(gpio + 3);
263
264 if (sw_gpio > 0) {
265 device_remove_file(&client->dev, &dev_attr_user_sw);
266 gpio_free(sw_gpio);
267 }
268 return 0;
269}
270
271static struct pcf857x_platform_data pcf_data_u18 = {
272 .gpio_base = PCF_Uxx_BASE(1),
273 .n_latch = (1 << 3) | (1 << 2) | (1 << 1),
274 .setup = evm_u18_setup,
275 .teardown = evm_u18_teardown,
93}; 276};
94 277
278
279/* U35 - various I/O signals used to manage USB, CF, ATA, etc */
280
281static int
282evm_u35_setup(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
283{
284 /* p0 = nDRV_VBUS (initial: don't supply it) */
285 gpio_request(gpio + 0, "nDRV_VBUS");
286 gpio_direction_output(gpio + 0, 1);
287
288 /* p1 = VDDIMX_EN */
289 gpio_request(gpio + 1, "VDDIMX_EN");
290 gpio_direction_output(gpio + 1, 1);
291
292 /* p2 = VLYNQ_EN */
293 gpio_request(gpio + 2, "VLYNQ_EN");
294 gpio_direction_output(gpio + 2, 1);
295
296 /* p3 = n3V3_CF_RESET (initial: stay in reset) */
297 gpio_request(gpio + 3, "nCF_RESET");
298 gpio_direction_output(gpio + 3, 0);
299
300 /* (p4 unused) */
301
302 /* p5 = 1V8_WLAN_RESET (initial: stay in reset) */
303 gpio_request(gpio + 5, "WLAN_RESET");
304 gpio_direction_output(gpio + 5, 1);
305
306 /* p6 = nATA_SEL (initial: select) */
307 gpio_request(gpio + 6, "nATA_SEL");
308 gpio_direction_output(gpio + 6, 0);
309
310 /* p7 = nCF_SEL (initial: deselect) */
311 gpio_request(gpio + 7, "nCF_SEL");
312 gpio_direction_output(gpio + 7, 1);
313
314 return 0;
315}
316
317static int
318evm_u35_teardown(struct i2c_client *client, int gpio, unsigned ngpio, void *c)
319{
320 gpio_free(gpio + 7);
321 gpio_free(gpio + 6);
322 gpio_free(gpio + 5);
323 gpio_free(gpio + 3);
324 gpio_free(gpio + 2);
325 gpio_free(gpio + 1);
326 gpio_free(gpio + 0);
327 return 0;
328}
329
330static struct pcf857x_platform_data pcf_data_u35 = {
331 .gpio_base = PCF_Uxx_BASE(2),
332 .setup = evm_u35_setup,
333 .teardown = evm_u35_teardown,
334};
335
336/*----------------------------------------------------------------------*/
337
338/* Most of this EEPROM is unused, but U-Boot uses some data:
339 * - 0x7f00, 6 bytes Ethernet Address
340 * - 0x0039, 1 byte NTSC vs PAL (bit 0x80 == PAL)
341 * - ... newer boards may have more
342 */
343static struct at24_platform_data eeprom_info = {
344 .byte_len = (256*1024) / 8,
345 .page_size = 64,
346 .flags = AT24_FLAG_ADDR16,
347};
348
349static struct i2c_board_info __initdata i2c_info[] = {
350 {
351 I2C_BOARD_INFO("pcf8574", 0x38),
352 .platform_data = &pcf_data_u2,
353 },
354 {
355 I2C_BOARD_INFO("pcf8574", 0x39),
356 .platform_data = &pcf_data_u18,
357 },
358 {
359 I2C_BOARD_INFO("pcf8574", 0x3a),
360 .platform_data = &pcf_data_u35,
361 },
362 {
363 I2C_BOARD_INFO("24c256", 0x50),
364 .platform_data = &eeprom_info,
365 },
366 /* ALSO:
367 * - tvl320aic33 audio codec (0x1b)
368 * - msp430 microcontroller (0x23)
369 * - tvp5146 video decoder (0x5d)
370 */
371};
372
373/* The msp430 uses a slow bitbanged I2C implementation (ergo 20 KHz),
374 * which requires 100 usec of idle bus after i2c writes sent to it.
375 */
376static struct davinci_i2c_platform_data i2c_pdata = {
377 .bus_freq = 20 /* kHz */,
378 .bus_delay = 100 /* usec */,
379};
380
381static void __init evm_init_i2c(void)
382{
383 davinci_init_i2c(&i2c_pdata);
384 i2c_register_board_info(1, i2c_info, ARRAY_SIZE(i2c_info));
385}
386
95static struct platform_device *davinci_evm_devices[] __initdata = { 387static struct platform_device *davinci_evm_devices[] __initdata = {
96 &davinci_evm_flash_device, 388#if defined(CONFIG_MTD_PHYSMAP) || \
389 defined(CONFIG_MTD_PHYSMAP_MODULE)
390 &davinci_evm_norflash_device,
391#endif
392#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
393 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
394 &ide_dev,
395#endif
97}; 396};
98 397
99static void __init 398static void __init
@@ -106,13 +405,21 @@ static __init void davinci_evm_init(void)
106{ 405{
107 davinci_psc_init(); 406 davinci_psc_init();
108 407
109#if defined(CONFIG_BLK_DEV_DAVINCI) || defined(CONFIG_BLK_DEV_DAVINCI_MODULE) 408#if defined(CONFIG_BLK_DEV_PALMCHIP_BK3710) || \
409 defined(CONFIG_BLK_DEV_PALMCHIP_BK3710_MODULE)
410#if defined(CONFIG_MTD_PHYSMAP) || \
411 defined(CONFIG_MTD_PHYSMAP_MODULE)
110 printk(KERN_WARNING "WARNING: both IDE and NOR flash are enabled, " 412 printk(KERN_WARNING "WARNING: both IDE and NOR flash are enabled, "
111 "but share pins.\n\t Disable IDE for NOR support.\n"); 413 "but share pins.\n\t Disable IDE for NOR support.\n");
112#endif 414#endif
415#endif
113 416
114 platform_add_devices(davinci_evm_devices, 417 platform_add_devices(davinci_evm_devices,
115 ARRAY_SIZE(davinci_evm_devices)); 418 ARRAY_SIZE(davinci_evm_devices));
419 evm_init_i2c();
420
421 /* irlml6401 sustains over 3A, switches 5V in under 8 msec */
422 setup_usb(500, 8);
116} 423}
117 424
118static __init void davinci_evm_irq_init(void) 425static __init void davinci_evm_irq_init(void)
@@ -124,7 +431,7 @@ static __init void davinci_evm_irq_init(void)
124MACHINE_START(DAVINCI_EVM, "DaVinci EVM") 431MACHINE_START(DAVINCI_EVM, "DaVinci EVM")
125 /* Maintainer: MontaVista Software <source@mvista.com> */ 432 /* Maintainer: MontaVista Software <source@mvista.com> */
126 .phys_io = IO_PHYS, 433 .phys_io = IO_PHYS,
127 .io_pg_offst = (io_p2v(IO_PHYS) >> 18) & 0xfffc, 434 .io_pg_offst = (__IO_ADDRESS(IO_PHYS) >> 18) & 0xfffc,
128 .boot_params = (DAVINCI_DDR_BASE + 0x100), 435 .boot_params = (DAVINCI_DDR_BASE + 0x100),
129 .map_io = davinci_evm_map_io, 436 .map_io = davinci_evm_map_io,
130 .init_irq = davinci_evm_irq_init, 437 .init_irq = davinci_evm_irq_init,
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c
index d46c69b55aaa..28f6dbc95bd7 100644
--- a/arch/arm/mach-davinci/clock.c
+++ b/arch/arm/mach-davinci/clock.c
@@ -16,9 +16,9 @@
16#include <linux/err.h> 16#include <linux/err.h>
17#include <linux/mutex.h> 17#include <linux/mutex.h>
18#include <linux/platform_device.h> 18#include <linux/platform_device.h>
19#include <linux/io.h>
19 20
20#include <mach/hardware.h> 21#include <mach/hardware.h>
21#include <asm/io.h>
22 22
23#include <mach/psc.h> 23#include <mach/psc.h>
24#include "clock.h" 24#include "clock.h"
diff --git a/arch/arm/mach-davinci/devices.c b/arch/arm/mach-davinci/devices.c
new file mode 100644
index 000000000000..3d4b1de8f898
--- /dev/null
+++ b/arch/arm/mach-davinci/devices.c
@@ -0,0 +1,48 @@
1/*
2 * mach-davinci/devices.c
3 *
4 * DaVinci platform device setup/initialization
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 */
11
12#include <linux/module.h>
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/platform_device.h>
16#include <linux/dma-mapping.h>
17#include <linux/io.h>
18
19#include <asm/mach/map.h>
20
21#include <mach/hardware.h>
22#include <mach/i2c.h>
23
24static struct resource i2c_resources[] = {
25 {
26 .start = DAVINCI_I2C_BASE,
27 .end = DAVINCI_I2C_BASE + 0x40,
28 .flags = IORESOURCE_MEM,
29 },
30 {
31 .start = IRQ_I2C,
32 .flags = IORESOURCE_IRQ,
33 },
34};
35
36static struct platform_device davinci_i2c_device = {
37 .name = "i2c_davinci",
38 .id = 1,
39 .num_resources = ARRAY_SIZE(i2c_resources),
40 .resource = i2c_resources,
41};
42
43void __init davinci_init_i2c(struct davinci_i2c_platform_data *pdata)
44{
45 davinci_i2c_device.dev.platform_data = pdata;
46 (void) platform_device_register(&davinci_i2c_device);
47}
48
diff --git a/arch/arm/mach-davinci/gpio.c b/arch/arm/mach-davinci/gpio.c
index c9cb4f09b18f..b49e9d092aab 100644
--- a/arch/arm/mach-davinci/gpio.c
+++ b/arch/arm/mach-davinci/gpio.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * TI DaVinci GPIO Support 2 * TI DaVinci GPIO Support
3 * 3 *
4 * Copyright (c) 2006 David Brownell 4 * Copyright (c) 2006-2007 David Brownell
5 * Copyright (c) 2007, MontaVista Software, Inc. <source@mvista.com> 5 * Copyright (c) 2007, MontaVista Software, Inc. <source@mvista.com>
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
@@ -26,47 +26,45 @@
26 26
27#include <asm/mach/irq.h> 27#include <asm/mach/irq.h>
28 28
29static DEFINE_SPINLOCK(gpio_lock);
30static DECLARE_BITMAP(gpio_in_use, DAVINCI_N_GPIO);
31 29
32int gpio_request(unsigned gpio, const char *tag) 30static DEFINE_SPINLOCK(gpio_lock);
33{
34 if (gpio >= DAVINCI_N_GPIO)
35 return -EINVAL;
36 31
37 if (test_and_set_bit(gpio, gpio_in_use)) 32struct davinci_gpio {
38 return -EBUSY; 33 struct gpio_chip chip;
34 struct gpio_controller *__iomem regs;
35};
39 36
40 return 0; 37static struct davinci_gpio chips[DIV_ROUND_UP(DAVINCI_N_GPIO, 32)];
41}
42EXPORT_SYMBOL(gpio_request);
43 38
44void gpio_free(unsigned gpio)
45{
46 if (gpio >= DAVINCI_N_GPIO)
47 return;
48
49 clear_bit(gpio, gpio_in_use);
50}
51EXPORT_SYMBOL(gpio_free);
52 39
53/* create a non-inlined version */ 40/* create a non-inlined version */
54static struct gpio_controller *__iomem gpio2controller(unsigned gpio) 41static struct gpio_controller *__iomem __init gpio2controller(unsigned gpio)
55{ 42{
56 return __gpio_to_controller(gpio); 43 return __gpio_to_controller(gpio);
57} 44}
58 45
46
47/*--------------------------------------------------------------------------*/
48
59/* 49/*
60 * Assuming the pin is muxed as a gpio output, set its output value. 50 * board setup code *MUST* set PINMUX0 and PINMUX1 as
51 * needed, and enable the GPIO clock.
61 */ 52 */
62void __gpio_set(unsigned gpio, int value) 53
54static int davinci_direction_in(struct gpio_chip *chip, unsigned offset)
63{ 55{
64 struct gpio_controller *__iomem g = gpio2controller(gpio); 56 struct davinci_gpio *d = container_of(chip, struct davinci_gpio, chip);
57 struct gpio_controller *__iomem g = d->regs;
58 u32 temp;
65 59
66 __raw_writel(__gpio_mask(gpio), value ? &g->set_data : &g->clr_data); 60 spin_lock(&gpio_lock);
67} 61 temp = __raw_readl(&g->dir);
68EXPORT_SYMBOL(__gpio_set); 62 temp |= (1 << offset);
63 __raw_writel(temp, &g->dir);
64 spin_unlock(&gpio_lock);
69 65
66 return 0;
67}
70 68
71/* 69/*
72 * Read the pin's value (works even if it's set up as output); 70 * Read the pin's value (works even if it's set up as output);
@@ -75,61 +73,72 @@ EXPORT_SYMBOL(__gpio_set);
75 * Note that changes are synched to the GPIO clock, so reading values back 73 * Note that changes are synched to the GPIO clock, so reading values back
76 * right after you've set them may give old values. 74 * right after you've set them may give old values.
77 */ 75 */
78int __gpio_get(unsigned gpio) 76static int davinci_gpio_get(struct gpio_chip *chip, unsigned offset)
79{ 77{
80 struct gpio_controller *__iomem g = gpio2controller(gpio); 78 struct davinci_gpio *d = container_of(chip, struct davinci_gpio, chip);
79 struct gpio_controller *__iomem g = d->regs;
81 80
82 return !!(__gpio_mask(gpio) & __raw_readl(&g->in_data)); 81 return (1 << offset) & __raw_readl(&g->in_data);
83} 82}
84EXPORT_SYMBOL(__gpio_get);
85 83
86 84static int
87/*--------------------------------------------------------------------------*/ 85davinci_direction_out(struct gpio_chip *chip, unsigned offset, int value)
88
89/*
90 * board setup code *MUST* set PINMUX0 and PINMUX1 as
91 * needed, and enable the GPIO clock.
92 */
93
94int gpio_direction_input(unsigned gpio)
95{ 86{
96 struct gpio_controller *__iomem g = gpio2controller(gpio); 87 struct davinci_gpio *d = container_of(chip, struct davinci_gpio, chip);
88 struct gpio_controller *__iomem g = d->regs;
97 u32 temp; 89 u32 temp;
98 u32 mask; 90 u32 mask = 1 << offset;
99
100 if (!g)
101 return -EINVAL;
102 91
103 spin_lock(&gpio_lock); 92 spin_lock(&gpio_lock);
104 mask = __gpio_mask(gpio);
105 temp = __raw_readl(&g->dir); 93 temp = __raw_readl(&g->dir);
106 temp |= mask; 94 temp &= ~mask;
95 __raw_writel(mask, value ? &g->set_data : &g->clr_data);
107 __raw_writel(temp, &g->dir); 96 __raw_writel(temp, &g->dir);
108 spin_unlock(&gpio_lock); 97 spin_unlock(&gpio_lock);
109 return 0; 98 return 0;
110} 99}
111EXPORT_SYMBOL(gpio_direction_input);
112 100
113int gpio_direction_output(unsigned gpio, int value) 101/*
102 * Assuming the pin is muxed as a gpio output, set its output value.
103 */
104static void
105davinci_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
114{ 106{
115 struct gpio_controller *__iomem g = gpio2controller(gpio); 107 struct davinci_gpio *d = container_of(chip, struct davinci_gpio, chip);
116 u32 temp; 108 struct gpio_controller *__iomem g = d->regs;
117 u32 mask;
118 109
119 if (!g) 110 __raw_writel((1 << offset), value ? &g->set_data : &g->clr_data);
120 return -EINVAL; 111}
112
113static int __init davinci_gpio_setup(void)
114{
115 int i, base;
116
117 for (i = 0, base = 0;
118 i < ARRAY_SIZE(chips);
119 i++, base += 32) {
120 chips[i].chip.label = "DaVinci";
121
122 chips[i].chip.direction_input = davinci_direction_in;
123 chips[i].chip.get = davinci_gpio_get;
124 chips[i].chip.direction_output = davinci_direction_out;
125 chips[i].chip.set = davinci_gpio_set;
126
127 chips[i].chip.base = base;
128 chips[i].chip.ngpio = DAVINCI_N_GPIO - base;
129 if (chips[i].chip.ngpio > 32)
130 chips[i].chip.ngpio = 32;
131
132 chips[i].regs = gpio2controller(base);
133
134 gpiochip_add(&chips[i].chip);
135 }
121 136
122 spin_lock(&gpio_lock);
123 mask = __gpio_mask(gpio);
124 temp = __raw_readl(&g->dir);
125 temp &= ~mask;
126 __raw_writel(mask, value ? &g->set_data : &g->clr_data);
127 __raw_writel(temp, &g->dir);
128 spin_unlock(&gpio_lock);
129 return 0; 137 return 0;
130} 138}
131EXPORT_SYMBOL(gpio_direction_output); 139pure_initcall(davinci_gpio_setup);
132 140
141/*--------------------------------------------------------------------------*/
133/* 142/*
134 * We expect irqs will normally be set up as input pins, but they can also be 143 * We expect irqs will normally be set up as input pins, but they can also be
135 * used as output pins ... which is convenient for testing. 144 * used as output pins ... which is convenient for testing.
@@ -201,7 +210,6 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
201 desc->chip->ack(irq); 210 desc->chip->ack(irq);
202 while (1) { 211 while (1) {
203 u32 status; 212 u32 status;
204 struct irq_desc *gpio;
205 int n; 213 int n;
206 int res; 214 int res;
207 215
@@ -215,12 +223,10 @@ gpio_irq_handler(unsigned irq, struct irq_desc *desc)
215 223
216 /* now demux them to the right lowlevel handler */ 224 /* now demux them to the right lowlevel handler */
217 n = (int)get_irq_data(irq); 225 n = (int)get_irq_data(irq);
218 gpio = &irq_desc[n];
219 while (status) { 226 while (status) {
220 res = ffs(status); 227 res = ffs(status);
221 n += res; 228 n += res;
222 gpio += res; 229 generic_handle_irq(n - 1);
223 desc_handle_irq(n - 1, gpio - 1);
224 status >>= res; 230 status >>= res;
225 } 231 }
226 } 232 }
diff --git a/arch/arm/mach-davinci/id.c b/arch/arm/mach-davinci/id.c
index 70608f76aed8..bf067d604918 100644
--- a/arch/arm/mach-davinci/id.c
+++ b/arch/arm/mach-davinci/id.c
@@ -13,8 +13,7 @@
13#include <linux/module.h> 13#include <linux/module.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/init.h> 15#include <linux/init.h>
16 16#include <linux/io.h>
17#include <asm/io.h>
18 17
19#define JTAG_ID_BASE 0x01c40028 18#define JTAG_ID_BASE 0x01c40028
20 19
diff --git a/arch/arm/mach-davinci/include/mach/common.h b/arch/arm/mach-davinci/include/mach/common.h
index a97dfbb15e57..4b522e5c70ec 100644
--- a/arch/arm/mach-davinci/include/mach/common.h
+++ b/arch/arm/mach-davinci/include/mach/common.h
@@ -16,4 +16,7 @@ struct sys_timer;
16 16
17extern struct sys_timer davinci_timer; 17extern struct sys_timer davinci_timer;
18 18
19/* parameters describe VBUS sourcing for host mode */
20extern void setup_usb(unsigned mA, unsigned potpgt_msec);
21
19#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */ 22#endif /* __ARCH_ARM_MACH_DAVINCI_COMMON_H */
diff --git a/arch/arm/mach-davinci/include/mach/gpio.h b/arch/arm/mach-davinci/include/mach/gpio.h
index ec151ccf1e8f..b3a2961f0f46 100644
--- a/arch/arm/mach-davinci/include/mach/gpio.h
+++ b/arch/arm/mach-davinci/include/mach/gpio.h
@@ -14,6 +14,7 @@
14#define __DAVINCI_GPIO_H 14#define __DAVINCI_GPIO_H
15 15
16#include <linux/io.h> 16#include <linux/io.h>
17#include <asm-generic/gpio.h>
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18 19
19/* 20/*
@@ -27,13 +28,16 @@
27 * need to pay attention to PINMUX0 and PINMUX1 to be sure those pins are 28 * need to pay attention to PINMUX0 and PINMUX1 to be sure those pins are
28 * used as gpios, not with other peripherals. 29 * used as gpios, not with other peripherals.
29 * 30 *
30 * GPIOs are numbered 0..(DAVINCI_N_GPIO-1). For documentation, and maybe 31 * On-chip GPIOs are numbered 0..(DAVINCI_N_GPIO-1). For documentation,
31 * for later updates, code should write GPIO(N) or: 32 * and maybe for later updates, code should write GPIO(N) or:
32 * - GPIOV18(N) for 1.8V pins, N in 0..53; same as GPIO(0)..GPIO(53) 33 * - GPIOV18(N) for 1.8V pins, N in 0..53; same as GPIO(0)..GPIO(53)
33 * - GPIOV33(N) for 3.3V pins, N in 0..17; same as GPIO(54)..GPIO(70) 34 * - GPIOV33(N) for 3.3V pins, N in 0..17; same as GPIO(54)..GPIO(70)
34 * 35 *
35 * For GPIO IRQs use gpio_to_irq(GPIO(N)) or gpio_to_irq(GPIOV33(N)) etc 36 * For GPIO IRQs use gpio_to_irq(GPIO(N)) or gpio_to_irq(GPIOV33(N)) etc
36 * for now, that's != GPIO(N) 37 * for now, that's != GPIO(N)
38 *
39 * GPIOs can also be on external chips, numbered after the ones built-in
40 * to the DaVinci chip. For now, they won't be usable as IRQ sources.
37 */ 41 */
38#define GPIO(X) (X) /* 0 <= X <= 70 */ 42#define GPIO(X) (X) /* 0 <= X <= 70 */
39#define GPIOV18(X) (X) /* 1.8V i/o; 0 <= X <= 53 */ 43#define GPIOV18(X) (X) /* 1.8V i/o; 0 <= X <= 53 */
@@ -67,11 +71,11 @@ __gpio_to_controller(unsigned gpio)
67 void *__iomem ptr; 71 void *__iomem ptr;
68 72
69 if (gpio < 32) 73 if (gpio < 32)
70 ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x10); 74 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x10);
71 else if (gpio < 64) 75 else if (gpio < 64)
72 ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x38); 76 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x38);
73 else if (gpio < DAVINCI_N_GPIO) 77 else if (gpio < DAVINCI_N_GPIO)
74 ptr = (void *__iomem)IO_ADDRESS(DAVINCI_GPIO_BASE + 0x60); 78 ptr = IO_ADDRESS(DAVINCI_GPIO_BASE + 0x60);
75 else 79 else
76 ptr = NULL; 80 ptr = NULL;
77 return ptr; 81 return ptr;
@@ -83,25 +87,17 @@ static inline u32 __gpio_mask(unsigned gpio)
83} 87}
84 88
85/* The get/set/clear functions will inline when called with constant 89/* The get/set/clear functions will inline when called with constant
86 * parameters, for low-overhead bitbanging. Illegal constant parameters 90 * parameters referencing built-in GPIOs, for low-overhead bitbanging.
87 * cause link-time errors.
88 * 91 *
89 * Otherwise, calls with variable parameters use outlined functions. 92 * Otherwise, calls with variable parameters or referencing external
93 * GPIOs (e.g. on GPIO expander chips) use outlined functions.
90 */ 94 */
91extern int __error_inval_gpio(void);
92
93extern void __gpio_set(unsigned gpio, int value);
94extern int __gpio_get(unsigned gpio);
95
96static inline void gpio_set_value(unsigned gpio, int value) 95static inline void gpio_set_value(unsigned gpio, int value)
97{ 96{
98 if (__builtin_constant_p(value)) { 97 if (__builtin_constant_p(value) && gpio < DAVINCI_N_GPIO) {
99 struct gpio_controller *__iomem g; 98 struct gpio_controller *__iomem g;
100 u32 mask; 99 u32 mask;
101 100
102 if (gpio >= DAVINCI_N_GPIO)
103 __error_inval_gpio();
104
105 g = __gpio_to_controller(gpio); 101 g = __gpio_to_controller(gpio);
106 mask = __gpio_mask(gpio); 102 mask = __gpio_mask(gpio);
107 if (value) 103 if (value)
@@ -111,48 +107,47 @@ static inline void gpio_set_value(unsigned gpio, int value)
111 return; 107 return;
112 } 108 }
113 109
114 __gpio_set(gpio, value); 110 __gpio_set_value(gpio, value);
115} 111}
116 112
117/* Returns zero or nonzero; works for gpios configured as inputs OR 113/* Returns zero or nonzero; works for gpios configured as inputs OR
118 * as outputs. 114 * as outputs, at least for built-in GPIOs.
119 * 115 *
120 * NOTE: changes in reported values are synchronized to the GPIO clock. 116 * NOTE: for built-in GPIOs, changes in reported values are synchronized
121 * This is most easily seen after calling gpio_set_value() and then immediatly 117 * to the GPIO clock. This is easily seen after calling gpio_set_value()
122 * gpio_get_value(), where the gpio_get_value() would return the old value 118 * and then immediately gpio_get_value(), where the gpio_get_value() will
123 * until the GPIO clock ticks and the new value gets latched. 119 * return the old value until the GPIO clock ticks and the new value gets
120 * latched.
124 */ 121 */
125
126static inline int gpio_get_value(unsigned gpio) 122static inline int gpio_get_value(unsigned gpio)
127{ 123{
128 struct gpio_controller *__iomem g; 124 struct gpio_controller *__iomem g;
129
130 if (!__builtin_constant_p(gpio))
131 return __gpio_get(gpio);
132 125
133 if (gpio >= DAVINCI_N_GPIO) 126 if (!__builtin_constant_p(gpio) || gpio >= DAVINCI_N_GPIO)
134 return __error_inval_gpio(); 127 return __gpio_get_value(gpio);
135 128
136 g = __gpio_to_controller(gpio); 129 g = __gpio_to_controller(gpio);
137 return !!(__gpio_mask(gpio) & __raw_readl(&g->in_data)); 130 return __gpio_mask(gpio) & __raw_readl(&g->in_data);
138} 131}
139 132
140/* powerup default direction is IN */ 133static inline int gpio_cansleep(unsigned gpio)
141extern int gpio_direction_input(unsigned gpio); 134{
142extern int gpio_direction_output(unsigned gpio, int value); 135 if (__builtin_constant_p(gpio) && gpio < DAVINCI_N_GPIO)
143 136 return 0;
144#include <asm-generic/gpio.h> /* cansleep wrappers */ 137 else
145 138 return __gpio_cansleep(gpio);
146extern int gpio_request(unsigned gpio, const char *tag); 139}
147extern void gpio_free(unsigned gpio);
148 140
149static inline int gpio_to_irq(unsigned gpio) 141static inline int gpio_to_irq(unsigned gpio)
150{ 142{
143 if (gpio >= DAVINCI_N_GPIO)
144 return -EINVAL;
151 return DAVINCI_N_AINTC_IRQ + gpio; 145 return DAVINCI_N_AINTC_IRQ + gpio;
152} 146}
153 147
154static inline int irq_to_gpio(unsigned irq) 148static inline int irq_to_gpio(unsigned irq)
155{ 149{
150 /* caller guarantees gpio_to_irq() succeeded */
156 return irq - DAVINCI_N_AINTC_IRQ; 151 return irq - DAVINCI_N_AINTC_IRQ;
157} 152}
158 153
diff --git a/arch/arm/mach-davinci/include/mach/i2c.h b/arch/arm/mach-davinci/include/mach/i2c.h
index e2f54168abd1..c248e9b7e825 100644
--- a/arch/arm/mach-davinci/include/mach/i2c.h
+++ b/arch/arm/mach-davinci/include/mach/i2c.h
@@ -14,8 +14,11 @@
14 14
15/* All frequencies are expressed in kHz */ 15/* All frequencies are expressed in kHz */
16struct davinci_i2c_platform_data { 16struct davinci_i2c_platform_data {
17 unsigned int bus_freq; /* standard bus frequency */ 17 unsigned int bus_freq; /* standard bus frequency (kHz) */
18 unsigned int bus_delay; /* transaction delay */ 18 unsigned int bus_delay; /* post-transaction delay (usec) */
19}; 19};
20 20
21/* for board setup code */
22void davinci_init_i2c(struct davinci_i2c_platform_data *);
23
21#endif /* __ASM_ARCH_I2C_H */ 24#endif /* __ASM_ARCH_I2C_H */
diff --git a/arch/arm/mach-davinci/include/mach/io.h b/arch/arm/mach-davinci/include/mach/io.h
index e7accb910864..b78ee9140496 100644
--- a/arch/arm/mach-davinci/include/mach/io.h
+++ b/arch/arm/mach-davinci/include/mach/io.h
@@ -22,9 +22,8 @@
22#define IO_OFFSET 0xfd000000 /* Virtual IO = 0xfec00000 */ 22#define IO_OFFSET 0xfd000000 /* Virtual IO = 0xfec00000 */
23#define IO_SIZE 0x00400000 23#define IO_SIZE 0x00400000
24#define IO_VIRT (IO_PHYS + IO_OFFSET) 24#define IO_VIRT (IO_PHYS + IO_OFFSET)
25#define io_p2v(pa) ((pa) + IO_OFFSET)
26#define io_v2p(va) ((va) - IO_OFFSET) 25#define io_v2p(va) ((va) - IO_OFFSET)
27#define IO_ADDRESS(x) io_p2v(x) 26#define __IO_ADDRESS(x) ((x) + IO_OFFSET)
28 27
29/* 28/*
30 * We don't actually have real ISA nor PCI buses, but there is so many 29 * We don't actually have real ISA nor PCI buses, but there is so many
@@ -35,7 +34,12 @@
35#define __mem_pci(a) (a) 34#define __mem_pci(a) (a)
36#define __mem_isa(a) (a) 35#define __mem_isa(a) (a)
37 36
38#ifndef __ASSEMBLER__ 37#define IO_ADDRESS(pa) IOMEM(__IO_ADDRESS(pa))
38
39#ifdef __ASSEMBLER__
40#define IOMEM(x) x
41#else
42#define IOMEM(x) ((void __force __iomem *)(x))
39 43
40/* 44/*
41 * Functions to access the DaVinci IO region 45 * Functions to access the DaVinci IO region
@@ -46,34 +50,13 @@
46 * - DO NOT use hardcoded virtual addresses to allow changing the 50 * - DO NOT use hardcoded virtual addresses to allow changing the
47 * IO address space again if needed 51 * IO address space again if needed
48 */ 52 */
49#define davinci_readb(a) (*(volatile unsigned char *)IO_ADDRESS(a)) 53#define davinci_readb(a) __raw_readb(IO_ADDRESS(a))
50#define davinci_readw(a) (*(volatile unsigned short *)IO_ADDRESS(a)) 54#define davinci_readw(a) __raw_readw(IO_ADDRESS(a))
51#define davinci_readl(a) (*(volatile unsigned int *)IO_ADDRESS(a)) 55#define davinci_readl(a) __raw_readl(IO_ADDRESS(a))
52
53#define davinci_writeb(v,a) (*(volatile unsigned char *)IO_ADDRESS(a) = (v))
54#define davinci_writew(v,a) (*(volatile unsigned short *)IO_ADDRESS(a) = (v))
55#define davinci_writel(v,a) (*(volatile unsigned int *)IO_ADDRESS(a) = (v))
56
57/* 16 bit uses LDRH/STRH, base +/- offset_8 */
58typedef struct { volatile u16 offset[256]; } __regbase16;
59#define __REGV16(vaddr) ((__regbase16 *)((vaddr)&~0xff)) \
60 ->offset[((vaddr)&0xff)>>1]
61#define __REG16(paddr) __REGV16(io_p2v(paddr))
62
63/* 8/32 bit uses LDR/STR, base +/- offset_12 */
64typedef struct { volatile u8 offset[4096]; } __regbase8;
65#define __REGV8(vaddr) ((__regbase8 *)((vaddr)&~4095)) \
66 ->offset[((vaddr)&4095)>>0]
67#define __REG8(paddr) __REGV8(io_p2v(paddr))
68
69typedef struct { volatile u32 offset[4096]; } __regbase32;
70#define __REGV32(vaddr) ((__regbase32 *)((vaddr)&~4095)) \
71 ->offset[((vaddr)&4095)>>2]
72
73#define __REG(paddr) __REGV32(io_p2v(paddr))
74#else
75 56
76#define __REG(x) (*((volatile unsigned long *)io_p2v(x))) 57#define davinci_writeb(v, a) __raw_writeb(v, IO_ADDRESS(a))
58#define davinci_writew(v, a) __raw_writew(v, IO_ADDRESS(a))
59#define davinci_writel(v, a) __raw_writel(v, IO_ADDRESS(a))
77 60
78#endif /* __ASSEMBLER__ */ 61#endif /* __ASSEMBLER__ */
79#endif /* __ASM_ARCH_IO_H */ 62#endif /* __ASM_ARCH_IO_H */
diff --git a/arch/arm/mach-davinci/include/mach/system.h b/arch/arm/mach-davinci/include/mach/system.h
index 84ff77aeb738..17ca41dc2c53 100644
--- a/arch/arm/mach-davinci/include/mach/system.h
+++ b/arch/arm/mach-davinci/include/mach/system.h
@@ -11,7 +11,7 @@
11#ifndef __ASM_ARCH_SYSTEM_H 11#ifndef __ASM_ARCH_SYSTEM_H
12#define __ASM_ARCH_SYSTEM_H 12#define __ASM_ARCH_SYSTEM_H
13 13
14#include <asm/io.h> 14#include <linux/io.h>
15#include <mach/hardware.h> 15#include <mach/hardware.h>
16 16
17extern void davinci_watchdog_reset(void); 17extern void davinci_watchdog_reset(void);
diff --git a/arch/arm/mach-davinci/io.c b/arch/arm/mach-davinci/io.c
index 5bb66b61c1a3..299515f70b8b 100644
--- a/arch/arm/mach-davinci/io.c
+++ b/arch/arm/mach-davinci/io.c
@@ -11,9 +11,9 @@
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/io.h>
14 15
15#include <asm/tlb.h> 16#include <asm/tlb.h>
16#include <asm/io.h>
17#include <asm/memory.h> 17#include <asm/memory.h>
18 18
19#include <asm/mach/map.h> 19#include <asm/mach/map.h>
diff --git a/arch/arm/mach-davinci/irq.c b/arch/arm/mach-davinci/irq.c
index 12ca9f29f847..38021af8359a 100644
--- a/arch/arm/mach-davinci/irq.c
+++ b/arch/arm/mach-davinci/irq.c
@@ -22,9 +22,9 @@
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/interrupt.h> 23#include <linux/interrupt.h>
24#include <linux/irq.h> 24#include <linux/irq.h>
25#include <linux/io.h>
25 26
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/io.h>
28#include <asm/mach/irq.h> 28#include <asm/mach/irq.h>
29 29
30#define IRQ_BIT(irq) ((irq) & 0x1f) 30#define IRQ_BIT(irq) ((irq) & 0x1f)
diff --git a/arch/arm/mach-davinci/psc.c b/arch/arm/mach-davinci/psc.c
index 720c48b9ee04..42b976e8a7e9 100644
--- a/arch/arm/mach-davinci/psc.c
+++ b/arch/arm/mach-davinci/psc.c
@@ -21,8 +21,8 @@
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/io.h>
24 25
25#include <asm/io.h>
26#include <mach/hardware.h> 26#include <mach/hardware.h>
27#include <mach/psc.h> 27#include <mach/psc.h>
28#include <mach/mux.h> 28#include <mach/mux.h>
diff --git a/arch/arm/mach-davinci/serial.c b/arch/arm/mach-davinci/serial.c
index caf101e2cc62..3010f9971255 100644
--- a/arch/arm/mach-davinci/serial.c
+++ b/arch/arm/mach-davinci/serial.c
@@ -26,8 +26,8 @@
26#include <linux/platform_device.h> 26#include <linux/platform_device.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/clk.h> 28#include <linux/clk.h>
29#include <linux/io.h>
29 30
30#include <asm/io.h>
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <mach/hardware.h> 32#include <mach/hardware.h>
33#include <mach/serial.h> 33#include <mach/serial.h>
diff --git a/arch/arm/mach-davinci/time.c b/arch/arm/mach-davinci/time.c
index 206e80d41717..3b9a296b5c4b 100644
--- a/arch/arm/mach-davinci/time.c
+++ b/arch/arm/mach-davinci/time.c
@@ -15,8 +15,8 @@
15#include <linux/clocksource.h> 15#include <linux/clocksource.h>
16#include <linux/clockchips.h> 16#include <linux/clockchips.h>
17#include <linux/spinlock.h> 17#include <linux/spinlock.h>
18#include <linux/io.h>
18 19
19#include <asm/io.h>
20#include <mach/hardware.h> 20#include <mach/hardware.h>
21#include <asm/system.h> 21#include <asm/system.h>
22#include <asm/irq.h> 22#include <asm/irq.h>
diff --git a/arch/arm/mach-davinci/usb.c b/arch/arm/mach-davinci/usb.c
new file mode 100644
index 000000000000..fe182a85159c
--- /dev/null
+++ b/arch/arm/mach-davinci/usb.c
@@ -0,0 +1,116 @@
1/*
2 * USB
3 */
4#include <linux/kernel.h>
5#include <linux/module.h>
6#include <linux/init.h>
7#include <linux/platform_device.h>
8#include <linux/dma-mapping.h>
9
10#include <linux/usb/musb.h>
11#include <linux/usb/otg.h>
12
13#include <mach/common.h>
14#include <mach/hardware.h>
15
16#if defined(CONFIG_USB_MUSB_HDRC) || defined(CONFIG_USB_MUSB_HDRC_MODULE)
17static struct musb_hdrc_eps_bits musb_eps[] = {
18 { "ep1_tx", 8, },
19 { "ep1_rx", 8, },
20 { "ep2_tx", 8, },
21 { "ep2_rx", 8, },
22 { "ep3_tx", 5, },
23 { "ep3_rx", 5, },
24 { "ep4_tx", 5, },
25 { "ep4_rx", 5, },
26};
27
28static struct musb_hdrc_config musb_config = {
29 .multipoint = true,
30 .dyn_fifo = true,
31 .soft_con = true,
32 .dma = true,
33
34 .num_eps = 5,
35 .dma_channels = 8,
36 .ram_bits = 10,
37 .eps_bits = musb_eps,
38};
39
40static struct musb_hdrc_platform_data usb_data = {
41#if defined(CONFIG_USB_MUSB_OTG)
42 /* OTG requires a Mini-AB connector */
43 .mode = MUSB_OTG,
44#elif defined(CONFIG_USB_MUSB_PERIPHERAL)
45 .mode = MUSB_PERIPHERAL,
46#elif defined(CONFIG_USB_MUSB_HOST)
47 .mode = MUSB_HOST,
48#endif
49 .config = &musb_config,
50};
51
52static struct resource usb_resources[] = {
53 {
54 /* physical address */
55 .start = DAVINCI_USB_OTG_BASE,
56 .end = DAVINCI_USB_OTG_BASE + 0x5ff,
57 .flags = IORESOURCE_MEM,
58 },
59 {
60 .start = IRQ_USBINT,
61 .flags = IORESOURCE_IRQ,
62 },
63};
64
65static u64 usb_dmamask = DMA_32BIT_MASK;
66
67static struct platform_device usb_dev = {
68 .name = "musb_hdrc",
69 .id = -1,
70 .dev = {
71 .platform_data = &usb_data,
72 .dma_mask = &usb_dmamask,
73 .coherent_dma_mask = DMA_32BIT_MASK,
74 },
75 .resource = usb_resources,
76 .num_resources = ARRAY_SIZE(usb_resources),
77};
78
79#ifdef CONFIG_USB_MUSB_OTG
80
81static struct otg_transceiver *xceiv;
82
83struct otg_transceiver *otg_get_transceiver(void)
84{
85 if (xceiv)
86 get_device(xceiv->dev);
87 return xceiv;
88}
89EXPORT_SYMBOL(otg_get_transceiver);
90
91int otg_set_transceiver(struct otg_transceiver *x)
92{
93 if (xceiv && x)
94 return -EBUSY;
95 xceiv = x;
96 return 0;
97}
98EXPORT_SYMBOL(otg_set_transceiver);
99
100#endif
101
102void __init setup_usb(unsigned mA, unsigned potpgt_msec)
103{
104 usb_data.power = mA / 2;
105 usb_data.potpgt = potpgt_msec / 2;
106 platform_device_register(&usb_dev);
107}
108
109#else
110
111void __init setup_usb(unsigned mA, unsigned potpgt_msec)
112{
113}
114
115#endif /* CONFIG_USB_MUSB_HDRC */
116
diff --git a/arch/arm/mach-ebsa110/core.c b/arch/arm/mach-ebsa110/core.c
index 65cc7c271917..c7bc7fbb11a6 100644
--- a/arch/arm/mach-ebsa110/core.c
+++ b/arch/arm/mach-ebsa110/core.c
@@ -14,10 +14,10 @@
14#include <linux/interrupt.h> 14#include <linux/interrupt.h>
15#include <linux/serial_8250.h> 15#include <linux/serial_8250.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/io.h>
17 18
18#include <mach/hardware.h> 19#include <mach/hardware.h>
19#include <asm/irq.h> 20#include <asm/irq.h>
20#include <asm/io.h>
21#include <asm/setup.h> 21#include <asm/setup.h>
22#include <asm/mach-types.h> 22#include <asm/mach-types.h>
23#include <asm/pgtable.h> 23#include <asm/pgtable.h>
diff --git a/arch/arm/mach-ebsa110/io.c b/arch/arm/mach-ebsa110/io.c
index 53748f5462e9..c52e3047a7eb 100644
--- a/arch/arm/mach-ebsa110/io.c
+++ b/arch/arm/mach-ebsa110/io.c
@@ -23,9 +23,9 @@
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/kernel.h> 24#include <linux/kernel.h>
25#include <linux/types.h> 25#include <linux/types.h>
26#include <linux/io.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/page.h> 29#include <asm/page.h>
30 30
31static void __iomem *__isamem_convert_addr(const volatile void __iomem *addr) 31static void __iomem *__isamem_convert_addr(const volatile void __iomem *addr)
diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig
index ea8549bfbef2..5a1b8c05c958 100644
--- a/arch/arm/mach-ep93xx/Kconfig
+++ b/arch/arm/mach-ep93xx/Kconfig
@@ -88,6 +88,20 @@ config MACH_TS72XX
88 Say 'Y' here if you want your kernel to support the 88 Say 'Y' here if you want your kernel to support the
89 Technologic Systems TS-72xx board. 89 Technologic Systems TS-72xx board.
90 90
91choice
92 prompt "Select a UART for early kernel messages"
93
94config EP93XX_EARLY_UART1
95 bool "UART1"
96
97config EP93XX_EARLY_UART2
98 bool "UART2"
99
100config EP93XX_EARLY_UART3
101 bool "UART3"
102
103endchoice
104
91endmenu 105endmenu
92 106
93endif 107endif
diff --git a/arch/arm/mach-ep93xx/adssphere.c b/arch/arm/mach-ep93xx/adssphere.c
index aa1fb352fb8f..561db73ec1ae 100644
--- a/arch/arm/mach-ep93xx/adssphere.c
+++ b/arch/arm/mach-ep93xx/adssphere.c
@@ -18,7 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data adssphere_eth_data = {
47 .phy_id = 1, 47 .phy_id = 1,
48}; 48};
49 49
50static struct resource adssphere_eth_resource[] = {
51 {
52 .start = EP93XX_ETHERNET_PHYS_BASE,
53 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
54 .flags = IORESOURCE_MEM,
55 }, {
56 .start = IRQ_EP93XX_ETHERNET,
57 .end = IRQ_EP93XX_ETHERNET,
58 .flags = IORESOURCE_IRQ,
59 }
60};
61
62static struct platform_device adssphere_eth_device = {
63 .name = "ep93xx-eth",
64 .id = -1,
65 .dev = {
66 .platform_data = &adssphere_eth_data,
67 },
68 .num_resources = 2,
69 .resource = adssphere_eth_resource,
70};
71
72static void __init adssphere_init_machine(void) 50static void __init adssphere_init_machine(void)
73{ 51{
74 ep93xx_init_devices(); 52 ep93xx_init_devices();
75 platform_device_register(&adssphere_flash); 53 platform_device_register(&adssphere_flash);
76 54
77 memcpy(adssphere_eth_data.dev_addr, 55 ep93xx_register_eth(&adssphere_eth_data, 1);
78 (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
79 platform_device_register(&adssphere_eth_device);
80} 56}
81 57
82MACHINE_START(ADSSPHERE, "ADS Sphere board") 58MACHINE_START(ADSSPHERE, "ADS Sphere board")
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c
index 6062e47f2043..8c9f2491dccc 100644
--- a/arch/arm/mach-ep93xx/clock.c
+++ b/arch/arm/mach-ep93xx/clock.c
@@ -15,9 +15,9 @@
15#include <linux/err.h> 15#include <linux/err.h>
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/string.h> 17#include <linux/string.h>
18#include <linux/io.h>
18#include <asm/div64.h> 19#include <asm/div64.h>
19#include <mach/hardware.h> 20#include <mach/hardware.h>
20#include <asm/io.h>
21 21
22struct clk { 22struct clk {
23 char *name; 23 char *name;
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index f99f43669392..de53f0be71b9 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -32,6 +32,7 @@
32#include <linux/termios.h> 32#include <linux/termios.h>
33#include <linux/amba/bus.h> 33#include <linux/amba/bus.h>
34#include <linux/amba/serial.h> 34#include <linux/amba/serial.h>
35#include <linux/io.h>
35 36
36#include <asm/types.h> 37#include <asm/types.h>
37#include <asm/setup.h> 38#include <asm/setup.h>
@@ -41,7 +42,6 @@
41#include <asm/system.h> 42#include <asm/system.h>
42#include <asm/tlbflush.h> 43#include <asm/tlbflush.h>
43#include <asm/pgtable.h> 44#include <asm/pgtable.h>
44#include <asm/io.h>
45 45
46#include <asm/mach/map.h> 46#include <asm/mach/map.h>
47#include <asm/mach/time.h> 47#include <asm/mach/time.h>
@@ -157,7 +157,7 @@ static unsigned char gpio_int_type2[3];
157static const u8 int_type1_register_offset[3] = { 0x90, 0xac, 0x4c }; 157static const u8 int_type1_register_offset[3] = { 0x90, 0xac, 0x4c };
158static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 }; 158static const u8 int_type2_register_offset[3] = { 0x94, 0xb0, 0x50 };
159static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 }; 159static const u8 eoi_register_offset[3] = { 0x98, 0xb4, 0x54 };
160static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x5c }; 160static const u8 int_en_register_offset[3] = { 0x9c, 0xb8, 0x58 };
161 161
162void ep93xx_gpio_update_int_params(unsigned port) 162void ep93xx_gpio_update_int_params(unsigned port)
163{ 163{
@@ -192,8 +192,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
192 for (i = 0; i < 8; i++) { 192 for (i = 0; i < 8; i++) {
193 if (status & (1 << i)) { 193 if (status & (1 << i)) {
194 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i; 194 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_A(0)) + i;
195 desc = irq_desc + gpio_irq; 195 generic_handle_irq(gpio_irq);
196 desc_handle_irq(gpio_irq, desc);
197 } 196 }
198 } 197 }
199 198
@@ -202,7 +201,7 @@ static void ep93xx_gpio_ab_irq_handler(unsigned int irq, struct irq_desc *desc)
202 if (status & (1 << i)) { 201 if (status & (1 << i)) {
203 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i; 202 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_B(0)) + i;
204 desc = irq_desc + gpio_irq; 203 desc = irq_desc + gpio_irq;
205 desc_handle_irq(gpio_irq, desc); 204 generic_handle_irq(gpio_irq);
206 } 205 }
207 } 206 }
208} 207}
@@ -217,7 +216,7 @@ static void ep93xx_gpio_f_irq_handler(unsigned int irq, struct irq_desc *desc)
217 int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */ 216 int port_f_idx = ((irq + 1) & 7) ^ 4; /* {19..22,47..50} -> {0..7} */
218 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx; 217 int gpio_irq = gpio_to_irq(EP93XX_GPIO_LINE_F(0)) + port_f_idx;
219 218
220 desc_handle_irq(gpio_irq, irq_desc + gpio_irq); 219 generic_handle_irq(gpio_irq);
221} 220}
222 221
223static void ep93xx_gpio_irq_ack(unsigned int irq) 222static void ep93xx_gpio_irq_ack(unsigned int irq)
@@ -461,6 +460,41 @@ static struct platform_device ep93xx_ohci_device = {
461 .resource = ep93xx_ohci_resources, 460 .resource = ep93xx_ohci_resources,
462}; 461};
463 462
463static struct ep93xx_eth_data ep93xx_eth_data;
464
465static struct resource ep93xx_eth_resource[] = {
466 {
467 .start = EP93XX_ETHERNET_PHYS_BASE,
468 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
469 .flags = IORESOURCE_MEM,
470 }, {
471 .start = IRQ_EP93XX_ETHERNET,
472 .end = IRQ_EP93XX_ETHERNET,
473 .flags = IORESOURCE_IRQ,
474 }
475};
476
477static struct platform_device ep93xx_eth_device = {
478 .name = "ep93xx-eth",
479 .id = -1,
480 .dev = {
481 .platform_data = &ep93xx_eth_data,
482 },
483 .num_resources = ARRAY_SIZE(ep93xx_eth_resource),
484 .resource = ep93xx_eth_resource,
485};
486
487void __init ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr)
488{
489 if (copy_addr) {
490 memcpy(data->dev_addr,
491 (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
492 }
493
494 ep93xx_eth_data = *data;
495 platform_device_register(&ep93xx_eth_device);
496}
497
464extern void ep93xx_gpio_init(void); 498extern void ep93xx_gpio_init(void);
465 499
466void __init ep93xx_init_devices(void) 500void __init ep93xx_init_devices(void)
diff --git a/arch/arm/mach-ep93xx/edb9302.c b/arch/arm/mach-ep93xx/edb9302.c
index 97550c0ad7b0..e4add5bdccfd 100644
--- a/arch/arm/mach-ep93xx/edb9302.c
+++ b/arch/arm/mach-ep93xx/edb9302.c
@@ -18,7 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -43,10 +43,16 @@ static struct platform_device edb9302_flash = {
43 .resource = &edb9302_flash_resource, 43 .resource = &edb9302_flash_resource,
44}; 44};
45 45
46static struct ep93xx_eth_data edb9302_eth_data = {
47 .phy_id = 1,
48};
49
46static void __init edb9302_init_machine(void) 50static void __init edb9302_init_machine(void)
47{ 51{
48 ep93xx_init_devices(); 52 ep93xx_init_devices();
49 platform_device_register(&edb9302_flash); 53 platform_device_register(&edb9302_flash);
54
55 ep93xx_register_eth(&edb9302_eth_data, 1);
50} 56}
51 57
52MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board") 58MACHINE_START(EDB9302, "Cirrus Logic EDB9302 Evaluation Board")
diff --git a/arch/arm/mach-ep93xx/edb9302a.c b/arch/arm/mach-ep93xx/edb9302a.c
index 99b01d44bf1c..02c4405afed7 100644
--- a/arch/arm/mach-ep93xx/edb9302a.c
+++ b/arch/arm/mach-ep93xx/edb9302a.c
@@ -18,7 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data edb9302a_eth_data = {
47 .phy_id = 1, 47 .phy_id = 1,
48}; 48};
49 49
50static struct resource edb9302a_eth_resource[] = {
51 {
52 .start = EP93XX_ETHERNET_PHYS_BASE,
53 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
54 .flags = IORESOURCE_MEM,
55 }, {
56 .start = IRQ_EP93XX_ETHERNET,
57 .end = IRQ_EP93XX_ETHERNET,
58 .flags = IORESOURCE_IRQ,
59 }
60};
61
62static struct platform_device edb9302a_eth_device = {
63 .name = "ep93xx-eth",
64 .id = -1,
65 .dev = {
66 .platform_data = &edb9302a_eth_data,
67 },
68 .num_resources = 2,
69 .resource = edb9302a_eth_resource,
70};
71
72static void __init edb9302a_init_machine(void) 50static void __init edb9302a_init_machine(void)
73{ 51{
74 ep93xx_init_devices(); 52 ep93xx_init_devices();
75 platform_device_register(&edb9302a_flash); 53 platform_device_register(&edb9302a_flash);
76 54
77 memcpy(edb9302a_eth_data.dev_addr, 55 ep93xx_register_eth(&edb9302a_eth_data, 1);
78 (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
79 platform_device_register(&edb9302a_eth_device);
80} 56}
81 57
82MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board") 58MACHINE_START(EDB9302A, "Cirrus Logic EDB9302A Evaluation Board")
diff --git a/arch/arm/mach-ep93xx/edb9307.c b/arch/arm/mach-ep93xx/edb9307.c
index 9fb72d01a36c..040edbd2ea05 100644
--- a/arch/arm/mach-ep93xx/edb9307.c
+++ b/arch/arm/mach-ep93xx/edb9307.c
@@ -18,7 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data edb9307_eth_data = {
47 .phy_id = 1, 47 .phy_id = 1,
48}; 48};
49 49
50static struct resource edb9307_eth_resource[] = {
51 {
52 .start = EP93XX_ETHERNET_PHYS_BASE,
53 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
54 .flags = IORESOURCE_MEM,
55 }, {
56 .start = IRQ_EP93XX_ETHERNET,
57 .end = IRQ_EP93XX_ETHERNET,
58 .flags = IORESOURCE_IRQ,
59 }
60};
61
62static struct platform_device edb9307_eth_device = {
63 .name = "ep93xx-eth",
64 .id = -1,
65 .dev = {
66 .platform_data = &edb9307_eth_data,
67 },
68 .num_resources = 2,
69 .resource = edb9307_eth_resource,
70};
71
72static void __init edb9307_init_machine(void) 50static void __init edb9307_init_machine(void)
73{ 51{
74 ep93xx_init_devices(); 52 ep93xx_init_devices();
75 platform_device_register(&edb9307_flash); 53 platform_device_register(&edb9307_flash);
76 54
77 memcpy(edb9307_eth_data.dev_addr, 55 ep93xx_register_eth(&edb9307_eth_data, 1);
78 (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
79 platform_device_register(&edb9307_eth_device);
80} 56}
81 57
82MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board") 58MACHINE_START(EDB9307, "Cirrus Logic EDB9307 Evaluation Board")
diff --git a/arch/arm/mach-ep93xx/edb9312.c b/arch/arm/mach-ep93xx/edb9312.c
index 87267a574f5e..6853e302bc3a 100644
--- a/arch/arm/mach-ep93xx/edb9312.c
+++ b/arch/arm/mach-ep93xx/edb9312.c
@@ -19,7 +19,7 @@
19#include <linux/ioport.h> 19#include <linux/ioport.h>
20#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <asm/io.h> 22#include <linux/io.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/mach-types.h> 24#include <asm/mach-types.h>
25#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
@@ -44,10 +44,16 @@ static struct platform_device edb9312_flash = {
44 .resource = &edb9312_flash_resource, 44 .resource = &edb9312_flash_resource,
45}; 45};
46 46
47static struct ep93xx_eth_data edb9312_eth_data = {
48 .phy_id = 1,
49};
50
47static void __init edb9312_init_machine(void) 51static void __init edb9312_init_machine(void)
48{ 52{
49 ep93xx_init_devices(); 53 ep93xx_init_devices();
50 platform_device_register(&edb9312_flash); 54 platform_device_register(&edb9312_flash);
55
56 ep93xx_register_eth(&edb9312_eth_data, 1);
51} 57}
52 58
53MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board") 59MACHINE_START(EDB9312, "Cirrus Logic EDB9312 Evaluation Board")
diff --git a/arch/arm/mach-ep93xx/edb9315.c b/arch/arm/mach-ep93xx/edb9315.c
index 7e373950be4d..9469b350d253 100644
--- a/arch/arm/mach-ep93xx/edb9315.c
+++ b/arch/arm/mach-ep93xx/edb9315.c
@@ -18,7 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -43,10 +43,16 @@ static struct platform_device edb9315_flash = {
43 .resource = &edb9315_flash_resource, 43 .resource = &edb9315_flash_resource,
44}; 44};
45 45
46static struct ep93xx_eth_data edb9315_eth_data = {
47 .phy_id = 1,
48};
49
46static void __init edb9315_init_machine(void) 50static void __init edb9315_init_machine(void)
47{ 51{
48 ep93xx_init_devices(); 52 ep93xx_init_devices();
49 platform_device_register(&edb9315_flash); 53 platform_device_register(&edb9315_flash);
54
55 ep93xx_register_eth(&edb9315_eth_data, 1);
50} 56}
51 57
52MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board") 58MACHINE_START(EDB9315, "Cirrus Logic EDB9315 Evaluation Board")
diff --git a/arch/arm/mach-ep93xx/edb9315a.c b/arch/arm/mach-ep93xx/edb9315a.c
index 08a7c9bfb689..584457ce7c80 100644
--- a/arch/arm/mach-ep93xx/edb9315a.c
+++ b/arch/arm/mach-ep93xx/edb9315a.c
@@ -18,7 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -47,36 +47,12 @@ static struct ep93xx_eth_data edb9315a_eth_data = {
47 .phy_id = 1, 47 .phy_id = 1,
48}; 48};
49 49
50static struct resource edb9315a_eth_resource[] = {
51 {
52 .start = EP93XX_ETHERNET_PHYS_BASE,
53 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
54 .flags = IORESOURCE_MEM,
55 }, {
56 .start = IRQ_EP93XX_ETHERNET,
57 .end = IRQ_EP93XX_ETHERNET,
58 .flags = IORESOURCE_IRQ,
59 }
60};
61
62static struct platform_device edb9315a_eth_device = {
63 .name = "ep93xx-eth",
64 .id = -1,
65 .dev = {
66 .platform_data = &edb9315a_eth_data,
67 },
68 .num_resources = 2,
69 .resource = edb9315a_eth_resource,
70};
71
72static void __init edb9315a_init_machine(void) 50static void __init edb9315a_init_machine(void)
73{ 51{
74 ep93xx_init_devices(); 52 ep93xx_init_devices();
75 platform_device_register(&edb9315a_flash); 53 platform_device_register(&edb9315a_flash);
76 54
77 memcpy(edb9315a_eth_data.dev_addr, 55 ep93xx_register_eth(&edb9315a_eth_data, 1);
78 (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
79 platform_device_register(&edb9315a_eth_device);
80} 56}
81 57
82MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board") 58MACHINE_START(EDB9315A, "Cirrus Logic EDB9315A Evaluation Board")
diff --git a/arch/arm/mach-ep93xx/gesbc9312.c b/arch/arm/mach-ep93xx/gesbc9312.c
index 9b41ec1f089e..035b24e31b64 100644
--- a/arch/arm/mach-ep93xx/gesbc9312.c
+++ b/arch/arm/mach-ep93xx/gesbc9312.c
@@ -18,7 +18,7 @@
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/hardware.h> 22#include <mach/hardware.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -44,36 +44,15 @@ static struct platform_device gesbc9312_flash = {
44}; 44};
45 45
46static struct ep93xx_eth_data gesbc9312_eth_data = { 46static struct ep93xx_eth_data gesbc9312_eth_data = {
47 .phy_id = 1, 47 .phy_id = 1,
48};
49
50static struct resource gesbc9312_eth_resource[] = {
51 {
52 .start = EP93XX_ETHERNET_PHYS_BASE,
53 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
54 .flags = IORESOURCE_MEM,
55 }, {
56 .start = IRQ_EP93XX_ETHERNET,
57 .end = IRQ_EP93XX_ETHERNET,
58 .flags = IORESOURCE_IRQ,
59 }
60};
61
62static struct platform_device gesbc9312_eth_device = {
63 .name = "ep93xx-eth",
64 .id = -1,
65 .dev = {
66 .platform_data = &gesbc9312_eth_data,
67 },
68 .num_resources = 2,
69 .resource = gesbc9312_eth_resource,
70}; 48};
71 49
72static void __init gesbc9312_init_machine(void) 50static void __init gesbc9312_init_machine(void)
73{ 51{
74 ep93xx_init_devices(); 52 ep93xx_init_devices();
75 platform_device_register(&gesbc9312_flash); 53 platform_device_register(&gesbc9312_flash);
76 platform_device_register(&gesbc9312_eth_device); 54
55 ep93xx_register_eth(&gesbc9312_eth_data, 0);
77} 56}
78 57
79MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx") 58MACHINE_START(GESBC9312, "Glomation GESBC-9312-sx")
diff --git a/arch/arm/mach-ep93xx/gpio.c b/arch/arm/mach-ep93xx/gpio.c
index 0f3fb87ca4be..482cf3d2fbcd 100644
--- a/arch/arm/mach-ep93xx/gpio.c
+++ b/arch/arm/mach-ep93xx/gpio.c
@@ -16,9 +16,9 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/seq_file.h> 18#include <linux/seq_file.h>
19#include <linux/io.h>
19 20
20#include <mach/ep93xx-regs.h> 21#include <mach/ep93xx-regs.h>
21#include <asm/io.h>
22#include <asm/gpio.h> 22#include <asm/gpio.h>
23 23
24struct ep93xx_gpio_chip { 24struct ep93xx_gpio_chip {
@@ -141,10 +141,10 @@ static void ep93xx_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
141static struct ep93xx_gpio_chip ep93xx_gpio_banks[] = { 141static struct ep93xx_gpio_chip ep93xx_gpio_banks[] = {
142 EP93XX_GPIO_BANK("A", 0x00, 0x10, 0), 142 EP93XX_GPIO_BANK("A", 0x00, 0x10, 0),
143 EP93XX_GPIO_BANK("B", 0x04, 0x14, 8), 143 EP93XX_GPIO_BANK("B", 0x04, 0x14, 8),
144 EP93XX_GPIO_BANK("C", 0x30, 0x34, 40), 144 EP93XX_GPIO_BANK("C", 0x08, 0x18, 40),
145 EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24), 145 EP93XX_GPIO_BANK("D", 0x0c, 0x1c, 24),
146 EP93XX_GPIO_BANK("E", 0x20, 0x24, 32), 146 EP93XX_GPIO_BANK("E", 0x20, 0x24, 32),
147 EP93XX_GPIO_BANK("F", 0x08, 0x18, 16), 147 EP93XX_GPIO_BANK("F", 0x30, 0x34, 16),
148 EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48), 148 EP93XX_GPIO_BANK("G", 0x38, 0x3c, 48),
149 EP93XX_GPIO_BANK("H", 0x40, 0x44, 56), 149 EP93XX_GPIO_BANK("H", 0x40, 0x44, 56),
150}; 150};
diff --git a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
index 9f4458c8e070..22d6c9a6e4ca 100644
--- a/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
+++ b/arch/arm/mach-ep93xx/include/mach/ep93xx-regs.h
@@ -6,6 +6,40 @@
6#define __ASM_ARCH_EP93XX_REGS_H 6#define __ASM_ARCH_EP93XX_REGS_H
7 7
8/* 8/*
9 * EP93xx Physical Memory Map:
10 *
11 * The ASDO pin is sampled at system reset to select a synchronous or
12 * asynchronous boot configuration. When ASDO is "1" (i.e. pulled-up)
13 * the synchronous boot mode is selected. When ASDO is "0" (i.e
14 * pulled-down) the asynchronous boot mode is selected.
15 *
16 * In synchronous boot mode nSDCE3 is decoded starting at physical address
17 * 0x00000000 and nCS0 is decoded starting at 0xf0000000. For asynchronous
18 * boot mode they are swapped with nCS0 decoded at 0x00000000 ann nSDCE3
19 * decoded at 0xf0000000.
20 *
21 * There is known errata for the EP93xx dealing with External Memory
22 * Configurations. Please refer to "AN273: EP93xx Silicon Rev E Design
23 * Guidelines" for more information. This document can be found at:
24 *
25 * http://www.cirrus.com/en/pubs/appNote/AN273REV4.pdf
26 */
27
28#define EP93XX_CS0_PHYS_BASE_ASYNC 0x00000000 /* ASDO Pin = 0 */
29#define EP93XX_SDCE3_PHYS_BASE_SYNC 0x00000000 /* ASDO Pin = 1 */
30#define EP93XX_CS1_PHYS_BASE 0x10000000
31#define EP93XX_CS2_PHYS_BASE 0x20000000
32#define EP93XX_CS3_PHYS_BASE 0x30000000
33#define EP93XX_PCMCIA_PHYS_BASE 0x40000000
34#define EP93XX_CS6_PHYS_BASE 0x60000000
35#define EP93XX_CS7_PHYS_BASE 0x70000000
36#define EP93XX_SDCE0_PHYS_BASE 0xc0000000
37#define EP93XX_SDCE1_PHYS_BASE 0xd0000000
38#define EP93XX_SDCE2_PHYS_BASE 0xe0000000
39#define EP93XX_SDCE3_PHYS_BASE_ASYNC 0xf0000000 /* ASDO Pin = 0 */
40#define EP93XX_CS0_PHYS_BASE_SYNC 0xf0000000 /* ASDO Pin = 1 */
41
42/*
9 * EP93xx linux memory map: 43 * EP93xx linux memory map:
10 * 44 *
11 * virt phys size 45 * virt phys size
diff --git a/arch/arm/mach-ep93xx/include/mach/platform.h b/arch/arm/mach-ep93xx/include/mach/platform.h
index b5c182473f5d..db2489d3bda7 100644
--- a/arch/arm/mach-ep93xx/include/mach/platform.h
+++ b/arch/arm/mach-ep93xx/include/mach/platform.h
@@ -4,17 +4,17 @@
4 4
5#ifndef __ASSEMBLY__ 5#ifndef __ASSEMBLY__
6 6
7void ep93xx_map_io(void);
8void ep93xx_init_irq(void);
9void ep93xx_init_time(unsigned long);
10void ep93xx_init_devices(void);
11extern struct sys_timer ep93xx_timer;
12
13struct ep93xx_eth_data 7struct ep93xx_eth_data
14{ 8{
15 unsigned char dev_addr[6]; 9 unsigned char dev_addr[6];
16 unsigned char phy_id; 10 unsigned char phy_id;
17}; 11};
18 12
13void ep93xx_map_io(void);
14void ep93xx_init_irq(void);
15void ep93xx_init_time(unsigned long);
16void ep93xx_register_eth(struct ep93xx_eth_data *data, int copy_addr);
17void ep93xx_init_devices(void);
18extern struct sys_timer ep93xx_timer;
19 19
20#endif 20#endif
diff --git a/arch/arm/mach-ep93xx/include/mach/ts72xx.h b/arch/arm/mach-ep93xx/include/mach/ts72xx.h
index 30b318aa1a1f..34ddec081c40 100644
--- a/arch/arm/mach-ep93xx/include/mach/ts72xx.h
+++ b/arch/arm/mach-ep93xx/include/mach/ts72xx.h
@@ -70,7 +70,7 @@
70 70
71 71
72#ifndef __ASSEMBLY__ 72#ifndef __ASSEMBLY__
73#include <asm/io.h> 73#include <linux/io.h>
74 74
75static inline int board_is_ts7200(void) 75static inline int board_is_ts7200(void)
76{ 76{
diff --git a/arch/arm/mach-ep93xx/include/mach/uncompress.h b/arch/arm/mach-ep93xx/include/mach/uncompress.h
index 1fd2f17de325..16026c2b1c8c 100644
--- a/arch/arm/mach-ep93xx/include/mach/uncompress.h
+++ b/arch/arm/mach-ep93xx/include/mach/uncompress.h
@@ -31,10 +31,19 @@ static void __raw_writel(unsigned int value, unsigned int ptr)
31 *((volatile unsigned int *)ptr) = value; 31 *((volatile unsigned int *)ptr) = value;
32} 32}
33 33
34 34#if defined(CONFIG_EP93XX_EARLY_UART1)
35#define PHYS_UART1_DATA 0x808c0000 35#define UART_BASE EP93XX_UART1_PHYS_BASE
36#define PHYS_UART1_FLAG 0x808c0018 36#elif defined(CONFIG_EP93XX_EARLY_UART2)
37#define UART1_FLAG_TXFF 0x20 37#define UART_BASE EP93XX_UART2_PHYS_BASE
38#elif defined(CONFIG_EP93XX_EARLY_UART3)
39#define UART_BASE EP93XX_UART3_PHYS_BASE
40#else
41#define UART_BASE EP93XX_UART1_PHYS_BASE
42#endif
43
44#define PHYS_UART_DATA (UART_BASE + 0x00)
45#define PHYS_UART_FLAG (UART_BASE + 0x18)
46#define UART_FLAG_TXFF 0x20
38 47
39static inline void putc(int c) 48static inline void putc(int c)
40{ 49{
@@ -42,11 +51,11 @@ static inline void putc(int c)
42 51
43 for (i = 0; i < 1000; i++) { 52 for (i = 0; i < 1000; i++) {
44 /* Transmit fifo not full? */ 53 /* Transmit fifo not full? */
45 if (!(__raw_readb(PHYS_UART1_FLAG) & UART1_FLAG_TXFF)) 54 if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF))
46 break; 55 break;
47 } 56 }
48 57
49 __raw_writeb(c, PHYS_UART1_DATA); 58 __raw_writeb(c, PHYS_UART_DATA);
50} 59}
51 60
52static inline void flush(void) 61static inline void flush(void)
diff --git a/arch/arm/mach-ep93xx/micro9.c b/arch/arm/mach-ep93xx/micro9.c
index de047a5c8112..c2197236b632 100644
--- a/arch/arm/mach-ep93xx/micro9.c
+++ b/arch/arm/mach-ep93xx/micro9.c
@@ -16,10 +16,9 @@
16#include <linux/mm.h> 16#include <linux/mm.h>
17#include <linux/platform_device.h> 17#include <linux/platform_device.h>
18#include <linux/sched.h> 18#include <linux/sched.h>
19 19#include <linux/io.h>
20#include <linux/mtd/physmap.h> 20#include <linux/mtd/physmap.h>
21 21
22#include <asm/io.h>
23#include <mach/hardware.h> 22#include <mach/hardware.h>
24 23
25#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
@@ -29,38 +28,9 @@ static struct ep93xx_eth_data micro9_eth_data = {
29 .phy_id = 0x1f, 28 .phy_id = 0x1f,
30}; 29};
31 30
32static struct resource micro9_eth_resource[] = {
33 {
34 .start = EP93XX_ETHERNET_PHYS_BASE,
35 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
36 .flags = IORESOURCE_MEM,
37 }, {
38 .start = IRQ_EP93XX_ETHERNET,
39 .end = IRQ_EP93XX_ETHERNET,
40 .flags = IORESOURCE_IRQ,
41 }
42};
43
44static struct platform_device micro9_eth_device = {
45 .name = "ep93xx-eth",
46 .id = -1,
47 .dev = {
48 .platform_data = &micro9_eth_data,
49 },
50 .num_resources = ARRAY_SIZE(micro9_eth_resource),
51 .resource = micro9_eth_resource,
52};
53
54static void __init micro9_eth_init(void)
55{
56 memcpy(micro9_eth_data.dev_addr,
57 (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
58 platform_device_register(&micro9_eth_device);
59}
60
61static void __init micro9_init(void) 31static void __init micro9_init(void)
62{ 32{
63 micro9_eth_init(); 33 ep93xx_register_eth(&micro9_eth_data, 1);
64} 34}
65 35
66/* 36/*
diff --git a/arch/arm/mach-ep93xx/ts72xx.c b/arch/arm/mach-ep93xx/ts72xx.c
index c3cbff126d0c..b4aa4c054276 100644
--- a/arch/arm/mach-ep93xx/ts72xx.c
+++ b/arch/arm/mach-ep93xx/ts72xx.c
@@ -19,7 +19,7 @@
19#include <linux/mtd/physmap.h> 19#include <linux/mtd/physmap.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <linux/m48t86.h> 21#include <linux/m48t86.h>
22#include <asm/io.h> 22#include <linux/io.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/mach-types.h> 24#include <asm/mach-types.h>
25#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
@@ -161,28 +161,6 @@ static struct ep93xx_eth_data ts72xx_eth_data = {
161 .phy_id = 1, 161 .phy_id = 1,
162}; 162};
163 163
164static struct resource ts72xx_eth_resource[] = {
165 {
166 .start = EP93XX_ETHERNET_PHYS_BASE,
167 .end = EP93XX_ETHERNET_PHYS_BASE + 0xffff,
168 .flags = IORESOURCE_MEM,
169 }, {
170 .start = IRQ_EP93XX_ETHERNET,
171 .end = IRQ_EP93XX_ETHERNET,
172 .flags = IORESOURCE_IRQ,
173 }
174};
175
176static struct platform_device ts72xx_eth_device = {
177 .name = "ep93xx-eth",
178 .id = -1,
179 .dev = {
180 .platform_data = &ts72xx_eth_data,
181 },
182 .num_resources = 2,
183 .resource = ts72xx_eth_resource,
184};
185
186static void __init ts72xx_init_machine(void) 164static void __init ts72xx_init_machine(void)
187{ 165{
188 ep93xx_init_devices(); 166 ep93xx_init_devices();
@@ -190,9 +168,7 @@ static void __init ts72xx_init_machine(void)
190 platform_device_register(&ts72xx_flash); 168 platform_device_register(&ts72xx_flash);
191 platform_device_register(&ts72xx_rtc_device); 169 platform_device_register(&ts72xx_rtc_device);
192 170
193 memcpy(ts72xx_eth_data.dev_addr, 171 ep93xx_register_eth(&ts72xx_eth_data, 1);
194 (void *)(EP93XX_ETHERNET_BASE + 0x50), 6);
195 platform_device_register(&ts72xx_eth_device);
196} 172}
197 173
198MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC") 174MACHINE_START(TS72XX, "Technologic Systems TS-72xx SBC")
diff --git a/arch/arm/mach-footbridge/cats-hw.c b/arch/arm/mach-footbridge/cats-hw.c
index c261472208cb..6a5b437ab86f 100644
--- a/arch/arm/mach-footbridge/cats-hw.c
+++ b/arch/arm/mach-footbridge/cats-hw.c
@@ -9,9 +9,9 @@
9#include <linux/kernel.h> 9#include <linux/kernel.h>
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/screen_info.h> 11#include <linux/screen_info.h>
12#include <linux/io.h>
12 13
13#include <asm/hardware/dec21285.h> 14#include <asm/hardware/dec21285.h>
14#include <asm/io.h>
15#include <asm/mach-types.h> 15#include <asm/mach-types.h>
16#include <asm/setup.h> 16#include <asm/setup.h>
17 17
diff --git a/arch/arm/mach-footbridge/common.c b/arch/arm/mach-footbridge/common.c
index b08ab507c052..818014e09f4a 100644
--- a/arch/arm/mach-footbridge/common.c
+++ b/arch/arm/mach-footbridge/common.c
@@ -13,11 +13,11 @@
13#include <linux/ioport.h> 13#include <linux/ioport.h>
14#include <linux/list.h> 14#include <linux/list.h>
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/io.h>
16 17
17#include <asm/pgtable.h> 18#include <asm/pgtable.h>
18#include <asm/page.h> 19#include <asm/page.h>
19#include <asm/irq.h> 20#include <asm/irq.h>
20#include <asm/io.h>
21#include <asm/mach-types.h> 21#include <asm/mach-types.h>
22#include <asm/setup.h> 22#include <asm/setup.h>
23#include <asm/hardware/dec21285.h> 23#include <asm/hardware/dec21285.h>
diff --git a/arch/arm/mach-footbridge/dc21285.c b/arch/arm/mach-footbridge/dc21285.c
index d0dc51e81338..d4c1e526f59c 100644
--- a/arch/arm/mach-footbridge/dc21285.c
+++ b/arch/arm/mach-footbridge/dc21285.c
@@ -16,8 +16,8 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/ioport.h> 17#include <linux/ioport.h>
18#include <linux/irq.h> 18#include <linux/irq.h>
19#include <linux/io.h>
19 20
20#include <asm/io.h>
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/system.h> 22#include <asm/system.h>
23#include <asm/mach/pci.h> 23#include <asm/mach/pci.h>
diff --git a/arch/arm/mach-footbridge/dma.c b/arch/arm/mach-footbridge/dma.c
index 1f9b09b8ed88..b653e9cfa3f7 100644
--- a/arch/arm/mach-footbridge/dma.c
+++ b/arch/arm/mach-footbridge/dma.c
@@ -11,9 +11,9 @@
11 * ISA DMA controllers. 11 * ISA DMA controllers.
12 */ 12 */
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/io.h>
14 15
15#include <asm/dma.h> 16#include <asm/dma.h>
16#include <asm/io.h>
17#include <asm/scatterlist.h> 17#include <asm/scatterlist.h>
18 18
19#include <asm/mach/dma.h> 19#include <asm/mach/dma.h>
diff --git a/arch/arm/mach-footbridge/include/mach/memory.h b/arch/arm/mach-footbridge/include/mach/memory.h
index e9cae99dd1f9..6ae2f1a07ab9 100644
--- a/arch/arm/mach-footbridge/include/mach/memory.h
+++ b/arch/arm/mach-footbridge/include/mach/memory.h
@@ -42,10 +42,6 @@ extern unsigned long __bus_to_virt(unsigned long);
42 42
43#endif 43#endif
44 44
45/* Task size and page offset at 3GB */
46#define TASK_SIZE UL(0xbf000000)
47#define PAGE_OFFSET UL(0xc0000000)
48
49/* 45/*
50 * Cache flushing area. 46 * Cache flushing area.
51 */ 47 */
@@ -56,12 +52,6 @@ extern unsigned long __bus_to_virt(unsigned long);
56 */ 52 */
57#define PHYS_OFFSET UL(0x00000000) 53#define PHYS_OFFSET UL(0x00000000)
58 54
59/*
60 * This decides where the kernel will search for a free chunk of vm
61 * space during mmap's.
62 */
63#define TASK_UNMAPPED_BASE ((TASK_SIZE + 0x01000000) / 3)
64
65#define FLUSH_BASE_PHYS 0x50000000 55#define FLUSH_BASE_PHYS 0x50000000
66 56
67#endif 57#endif
diff --git a/arch/arm/mach-footbridge/include/mach/system.h b/arch/arm/mach-footbridge/include/mach/system.h
index 01c9f407f498..2db7f36bd6ca 100644
--- a/arch/arm/mach-footbridge/include/mach/system.h
+++ b/arch/arm/mach-footbridge/include/mach/system.h
@@ -7,8 +7,8 @@
7 * it under the terms of the GNU General Public License version 2 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10#include <linux/io.h>
10#include <asm/hardware/dec21285.h> 11#include <asm/hardware/dec21285.h>
11#include <asm/io.h>
12#include <mach/hardware.h> 12#include <mach/hardware.h>
13#include <asm/leds.h> 13#include <asm/leds.h>
14#include <asm/mach-types.h> 14#include <asm/mach-types.h>
diff --git a/arch/arm/mach-footbridge/isa-irq.c b/arch/arm/mach-footbridge/isa-irq.c
index 7132e522c366..54fec9ae28b9 100644
--- a/arch/arm/mach-footbridge/isa-irq.c
+++ b/arch/arm/mach-footbridge/isa-irq.c
@@ -18,13 +18,13 @@
18#include <linux/interrupt.h> 18#include <linux/interrupt.h>
19#include <linux/list.h> 19#include <linux/list.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/io.h>
21 22
22#include <asm/mach/irq.h> 23#include <asm/mach/irq.h>
23 24
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/hardware/dec21285.h> 26#include <asm/hardware/dec21285.h>
26#include <asm/irq.h> 27#include <asm/irq.h>
27#include <asm/io.h>
28#include <asm/mach-types.h> 28#include <asm/mach-types.h>
29 29
30static void isa_mask_pic_lo_irq(unsigned int irq) 30static void isa_mask_pic_lo_irq(unsigned int irq)
@@ -94,8 +94,7 @@ isa_irq_handler(unsigned int irq, struct irq_desc *desc)
94 return; 94 return;
95 } 95 }
96 96
97 desc = irq_desc + isa_irq; 97 generic_handle_irq(isa_irq);
98 desc_handle_irq(isa_irq, desc);
99} 98}
100 99
101static struct irqaction irq_cascade = { 100static struct irqaction irq_cascade = {
diff --git a/arch/arm/mach-footbridge/isa-timer.c b/arch/arm/mach-footbridge/isa-timer.c
index a764e01d3573..0c8390082fa8 100644
--- a/arch/arm/mach-footbridge/isa-timer.c
+++ b/arch/arm/mach-footbridge/isa-timer.c
@@ -7,8 +7,8 @@
7#include <linux/init.h> 7#include <linux/init.h>
8#include <linux/interrupt.h> 8#include <linux/interrupt.h>
9#include <linux/irq.h> 9#include <linux/irq.h>
10#include <linux/io.h>
10 11
11#include <asm/io.h>
12#include <asm/irq.h> 12#include <asm/irq.h>
13 13
14#include <asm/mach/time.h> 14#include <asm/mach/time.h>
diff --git a/arch/arm/mach-footbridge/netwinder-hw.c b/arch/arm/mach-footbridge/netwinder-hw.c
index a1f381c64a30..00b0ddcac283 100644
--- a/arch/arm/mach-footbridge/netwinder-hw.c
+++ b/arch/arm/mach-footbridge/netwinder-hw.c
@@ -10,9 +10,9 @@
10#include <linux/kernel.h> 10#include <linux/kernel.h>
11#include <linux/delay.h> 11#include <linux/delay.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/io.h>
13 14
14#include <asm/hardware/dec21285.h> 15#include <asm/hardware/dec21285.h>
15#include <asm/io.h>
16#include <asm/leds.h> 16#include <asm/leds.h>
17#include <asm/mach-types.h> 17#include <asm/mach-types.h>
18#include <asm/setup.h> 18#include <asm/setup.h>
diff --git a/arch/arm/mach-footbridge/time.c b/arch/arm/mach-footbridge/time.c
index fd9a7c11d62d..cd1b54ff9fe2 100644
--- a/arch/arm/mach-footbridge/time.c
+++ b/arch/arm/mach-footbridge/time.c
@@ -22,9 +22,9 @@
22#include <linux/sched.h> 22#include <linux/sched.h>
23#include <linux/mc146818rtc.h> 23#include <linux/mc146818rtc.h>
24#include <linux/bcd.h> 24#include <linux/bcd.h>
25#include <linux/io.h>
25 26
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/io.h>
28 28
29#include <asm/mach/time.h> 29#include <asm/mach/time.h>
30#include "common.h" 30#include "common.h"
@@ -49,12 +49,12 @@ static unsigned long __init get_isa_cmos_time(void)
49 } while (sec != CMOS_READ(RTC_SECONDS)); 49 } while (sec != CMOS_READ(RTC_SECONDS));
50 50
51 if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { 51 if (!(CMOS_READ(RTC_CONTROL) & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
52 BCD_TO_BIN(sec); 52 sec = bcd2bin(sec);
53 BCD_TO_BIN(min); 53 min = bcd2bin(min);
54 BCD_TO_BIN(hour); 54 hour = bcd2bin(hour);
55 BCD_TO_BIN(day); 55 day = bcd2bin(day);
56 BCD_TO_BIN(mon); 56 mon = bcd2bin(mon);
57 BCD_TO_BIN(year); 57 year = bcd2bin(year);
58 } 58 }
59 if ((year += 1900) < 1970) 59 if ((year += 1900) < 1970)
60 year += 100; 60 year += 100;
@@ -76,7 +76,7 @@ static int set_isa_cmos_time(void)
76 76
77 cmos_minutes = CMOS_READ(RTC_MINUTES); 77 cmos_minutes = CMOS_READ(RTC_MINUTES);
78 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) 78 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
79 BCD_TO_BIN(cmos_minutes); 79 cmos_minutes = bcd2bin(cmos_minutes);
80 80
81 /* 81 /*
82 * since we're only adjusting minutes and seconds, 82 * since we're only adjusting minutes and seconds,
@@ -92,8 +92,8 @@ static int set_isa_cmos_time(void)
92 92
93 if (abs(real_minutes - cmos_minutes) < 30) { 93 if (abs(real_minutes - cmos_minutes) < 30) {
94 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) { 94 if (!(save_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
95 BIN_TO_BCD(real_seconds); 95 real_seconds = bin2bcd(real_seconds);
96 BIN_TO_BCD(real_minutes); 96 real_minutes = bin2bcd(real_minutes);
97 } 97 }
98 CMOS_WRITE(real_seconds,RTC_SECONDS); 98 CMOS_WRITE(real_seconds,RTC_SECONDS);
99 CMOS_WRITE(real_minutes,RTC_MINUTES); 99 CMOS_WRITE(real_minutes,RTC_MINUTES);
diff --git a/arch/arm/mach-h720x/common.c b/arch/arm/mach-h720x/common.c
index b5f9741ae13c..7a2614828217 100644
--- a/arch/arm/mach-h720x/common.c
+++ b/arch/arm/mach-h720x/common.c
@@ -18,11 +18,11 @@
18#include <linux/mman.h> 18#include <linux/mman.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/interrupt.h> 20#include <linux/interrupt.h>
21#include <linux/io.h>
21 22
22#include <asm/page.h> 23#include <asm/page.h>
23#include <asm/pgtable.h> 24#include <asm/pgtable.h>
24#include <asm/dma.h> 25#include <asm/dma.h>
25#include <asm/io.h>
26#include <mach/hardware.h> 26#include <mach/hardware.h>
27#include <asm/irq.h> 27#include <asm/irq.h>
28#include <asm/mach/irq.h> 28#include <asm/mach/irq.h>
@@ -104,14 +104,12 @@ h720x_gpio_handler(unsigned int mask, unsigned int irq,
104 struct irq_desc *desc) 104 struct irq_desc *desc)
105{ 105{
106 IRQDBG("%s irq: %d\n", __func__, irq); 106 IRQDBG("%s irq: %d\n", __func__, irq);
107 desc = irq_desc + irq;
108 while (mask) { 107 while (mask) {
109 if (mask & 1) { 108 if (mask & 1) {
110 IRQDBG("handling irq %d\n", irq); 109 IRQDBG("handling irq %d\n", irq);
111 desc_handle_irq(irq, desc); 110 generic_handle_irq(irq);
112 } 111 }
113 irq++; 112 irq++;
114 desc++;
115 mask >>= 1; 113 mask >>= 1;
116 } 114 }
117} 115}
diff --git a/arch/arm/mach-h720x/cpu-h7202.c b/arch/arm/mach-h720x/cpu-h7202.c
index 53e1f62f2e79..fd33a19c813a 100644
--- a/arch/arm/mach-h720x/cpu-h7202.c
+++ b/arch/arm/mach-h720x/cpu-h7202.c
@@ -120,12 +120,10 @@ h7202_timerx_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
120 120
121 mask >>= 1; 121 mask >>= 1;
122 irq = IRQ_TIMER1; 122 irq = IRQ_TIMER1;
123 desc = irq_desc + irq;
124 while (mask) { 123 while (mask) {
125 if (mask & 1) 124 if (mask & 1)
126 desc_handle_irq(irq, desc); 125 generic_handle_irq(irq);
127 irq++; 126 irq++;
128 desc++;
129 mask >>= 1; 127 mask >>= 1;
130 } 128 }
131} 129}
diff --git a/arch/arm/mach-imx/clock.c b/arch/arm/mach-imx/clock.c
index 4b4230db3765..7ec60fc91565 100644
--- a/arch/arm/mach-imx/clock.c
+++ b/arch/arm/mach-imx/clock.c
@@ -21,8 +21,8 @@
21#include <linux/list.h> 21#include <linux/list.h>
22#include <linux/math64.h> 22#include <linux/math64.h>
23#include <linux/err.h> 23#include <linux/err.h>
24#include <linux/io.h>
24 25
25#include <asm/io.h>
26#include <mach/imx-regs.h> 26#include <mach/imx-regs.h>
27 27
28/* 28/*
diff --git a/arch/arm/mach-imx/include/mach/irqs.h b/arch/arm/mach-imx/include/mach/irqs.h
index eb8d5bd05d56..67812c5ac1f9 100644
--- a/arch/arm/mach-imx/include/mach/irqs.h
+++ b/arch/arm/mach-imx/include/mach/irqs.h
@@ -111,6 +111,11 @@
111/* decode irq number to use with IMR(x), ISR(x) and friends */ 111/* decode irq number to use with IMR(x), ISR(x) and friends */
112#define IRQ_TO_REG(irq) ((irq - IMX_IRQS) >> 5) 112#define IRQ_TO_REG(irq) ((irq - IMX_IRQS) >> 5)
113 113
114/* all normal IRQs can be FIQs */
115#define FIQ_START 0
116/* switch betwean IRQ and FIQ */
117extern int imx_set_irq_fiq(unsigned int irq, unsigned int type);
118
114#define NR_IRQS (IRQ_GPIOD(32) + 1) 119#define NR_IRQS (IRQ_GPIOD(32) + 1)
115#define IRQ_GPIO(x) 120#define IRQ_GPIO(x)
116#endif 121#endif
diff --git a/arch/arm/mach-imx/irq.c b/arch/arm/mach-imx/irq.c
index 798f221eb3b7..531b95deadc0 100644
--- a/arch/arm/mach-imx/irq.c
+++ b/arch/arm/mach-imx/irq.c
@@ -26,20 +26,17 @@
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/list.h> 27#include <linux/list.h>
28#include <linux/timer.h> 28#include <linux/timer.h>
29#include <linux/io.h>
29 30
30#include <mach/hardware.h> 31#include <mach/hardware.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
32#include <asm/io.h>
33 33
34#include <asm/mach/irq.h> 34#include <asm/mach/irq.h>
35 35
36/* 36/*
37 * 37 *
38 * We simply use the ENABLE DISABLE registers inside of the IMX 38 * We simply use the ENABLE DISABLE registers inside of the IMX
39 * to turn on/off specific interrupts. FIXME- We should 39 * to turn on/off specific interrupts.
40 * also add support for the accelerated interrupt controller
41 * by putting offets to irq jump code in the appropriate
42 * places.
43 * 40 *
44 */ 41 */
45 42
@@ -102,6 +99,28 @@ imx_unmask_irq(unsigned int irq)
102 __raw_writel(irq, IMX_AITC_INTENNUM); 99 __raw_writel(irq, IMX_AITC_INTENNUM);
103} 100}
104 101
102#ifdef CONFIG_FIQ
103int imx_set_irq_fiq(unsigned int irq, unsigned int type)
104{
105 unsigned int irqt;
106
107 if (irq >= IMX_IRQS)
108 return -EINVAL;
109
110 if (irq < IMX_IRQS / 2) {
111 irqt = __raw_readl(IMX_AITC_INTTYPEL) & ~(1 << irq);
112 __raw_writel(irqt | (!!type << irq), IMX_AITC_INTTYPEL);
113 } else {
114 irq -= IMX_IRQS / 2;
115 irqt = __raw_readl(IMX_AITC_INTTYPEH) & ~(1 << irq);
116 __raw_writel(irqt | (!!type << irq), IMX_AITC_INTTYPEH);
117 }
118
119 return 0;
120}
121EXPORT_SYMBOL(imx_set_irq_fiq);
122#endif /* CONFIG_FIQ */
123
105static int 124static int
106imx_gpio_irq_type(unsigned int _irq, unsigned int type) 125imx_gpio_irq_type(unsigned int _irq, unsigned int type)
107{ 126{
@@ -182,14 +201,12 @@ static void
182imx_gpio_handler(unsigned int mask, unsigned int irq, 201imx_gpio_handler(unsigned int mask, unsigned int irq,
183 struct irq_desc *desc) 202 struct irq_desc *desc)
184{ 203{
185 desc = irq_desc + irq;
186 while (mask) { 204 while (mask) {
187 if (mask & 1) { 205 if (mask & 1) {
188 DEBUG_IRQ("handling irq %d\n", irq); 206 DEBUG_IRQ("handling irq %d\n", irq);
189 desc_handle_irq(irq, desc); 207 generic_handle_irq(irq);
190 } 208 }
191 irq++; 209 irq++;
192 desc++;
193 mask >>= 1; 210 mask >>= 1;
194 } 211 }
195} 212}
@@ -286,4 +303,9 @@ imx_init_irq(void)
286 303
287 /* Release masking of interrupts according to priority */ 304 /* Release masking of interrupts according to priority */
288 __raw_writel(-1, IMX_AITC_NIMASK); 305 __raw_writel(-1, IMX_AITC_NIMASK);
306
307#ifdef CONFIG_FIQ
308 /* Initialize FIQ */
309 init_FIQ();
310#endif
289} 311}
diff --git a/arch/arm/mach-imx/leds-mx1ads.c b/arch/arm/mach-imx/leds-mx1ads.c
index af81621f689b..1d48f2762cbc 100644
--- a/arch/arm/mach-imx/leds-mx1ads.c
+++ b/arch/arm/mach-imx/leds-mx1ads.c
@@ -13,9 +13,9 @@
13 13
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15#include <linux/init.h> 15#include <linux/init.h>
16#include <linux/io.h>
16#include <mach/hardware.h> 17#include <mach/hardware.h>
17#include <asm/system.h> 18#include <asm/system.h>
18#include <asm/io.h>
19#include <asm/leds.h> 19#include <asm/leds.h>
20#include "leds.h" 20#include "leds.h"
21 21
diff --git a/arch/arm/mach-imx/time.c b/arch/arm/mach-imx/time.c
index 08be3875c59e..a11765f5f23b 100644
--- a/arch/arm/mach-imx/time.c
+++ b/arch/arm/mach-imx/time.c
@@ -18,9 +18,9 @@
18#include <linux/clocksource.h> 18#include <linux/clocksource.h>
19#include <linux/clockchips.h> 19#include <linux/clockchips.h>
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/io.h>
21 22
22#include <mach/hardware.h> 23#include <mach/hardware.h>
23#include <asm/io.h>
24#include <asm/leds.h> 24#include <asm/leds.h>
25#include <asm/irq.h> 25#include <asm/irq.h>
26#include <asm/mach/time.h> 26#include <asm/mach/time.h>
diff --git a/arch/arm/mach-integrator/core.c b/arch/arm/mach-integrator/core.c
index 8bacf6d4d097..595b7392ee4e 100644
--- a/arch/arm/mach-integrator/core.c
+++ b/arch/arm/mach-integrator/core.c
@@ -19,10 +19,10 @@
19#include <linux/termios.h> 19#include <linux/termios.h>
20#include <linux/amba/bus.h> 20#include <linux/amba/bus.h>
21#include <linux/amba/serial.h> 21#include <linux/amba/serial.h>
22#include <linux/io.h>
22 23
23#include <mach/hardware.h> 24#include <mach/hardware.h>
24#include <asm/irq.h> 25#include <asm/irq.h>
25#include <asm/io.h>
26#include <asm/hardware/arm_timer.h> 26#include <asm/hardware/arm_timer.h>
27#include <mach/cm.h> 27#include <mach/cm.h>
28#include <asm/system.h> 28#include <asm/system.h>
diff --git a/arch/arm/mach-integrator/cpu.c b/arch/arm/mach-integrator/cpu.c
index 7c49d55e6b27..e4f72d202cc0 100644
--- a/arch/arm/mach-integrator/cpu.c
+++ b/arch/arm/mach-integrator/cpu.c
@@ -17,9 +17,9 @@
17#include <linux/sched.h> 17#include <linux/sched.h>
18#include <linux/smp.h> 18#include <linux/smp.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/io.h>
20 21
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/io.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24#include <asm/hardware/icst525.h> 24#include <asm/hardware/icst525.h>
25 25
diff --git a/arch/arm/mach-integrator/impd1.c b/arch/arm/mach-integrator/impd1.c
index 3c8383dbe9e6..172299a78302 100644
--- a/arch/arm/mach-integrator/impd1.c
+++ b/arch/arm/mach-integrator/impd1.c
@@ -20,8 +20,8 @@
20#include <linux/mm.h> 20#include <linux/mm.h>
21#include <linux/amba/bus.h> 21#include <linux/amba/bus.h>
22#include <linux/amba/clcd.h> 22#include <linux/amba/clcd.h>
23#include <linux/io.h>
23 24
24#include <asm/io.h>
25#include <asm/hardware/icst525.h> 25#include <asm/hardware/icst525.h>
26#include <mach/lm.h> 26#include <mach/lm.h>
27#include <mach/impd1.h> 27#include <mach/impd1.h>
diff --git a/arch/arm/mach-integrator/integrator_ap.c b/arch/arm/mach-integrator/integrator_ap.c
index 6e472b5f8f26..8138a7e24562 100644
--- a/arch/arm/mach-integrator/integrator_ap.c
+++ b/arch/arm/mach-integrator/integrator_ap.c
@@ -27,9 +27,9 @@
27#include <linux/sysdev.h> 27#include <linux/sysdev.h>
28#include <linux/amba/bus.h> 28#include <linux/amba/bus.h>
29#include <linux/amba/kmi.h> 29#include <linux/amba/kmi.h>
30#include <linux/io.h>
30 31
31#include <mach/hardware.h> 32#include <mach/hardware.h>
32#include <asm/io.h>
33#include <asm/irq.h> 33#include <asm/irq.h>
34#include <asm/setup.h> 34#include <asm/setup.h>
35#include <asm/param.h> /* HZ */ 35#include <asm/param.h> /* HZ */
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 6b99e9c258bd..88026ccd5ac9 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -19,9 +19,9 @@
19#include <linux/amba/bus.h> 19#include <linux/amba/bus.h>
20#include <linux/amba/kmi.h> 20#include <linux/amba/kmi.h>
21#include <linux/amba/clcd.h> 21#include <linux/amba/clcd.h>
22#include <linux/io.h>
22 23
23#include <mach/hardware.h> 24#include <mach/hardware.h>
24#include <asm/io.h>
25#include <asm/irq.h> 25#include <asm/irq.h>
26#include <asm/setup.h> 26#include <asm/setup.h>
27#include <asm/mach-types.h> 27#include <asm/mach-types.h>
@@ -217,8 +217,7 @@ sic_handle_irq(unsigned int irq, struct irq_desc *desc)
217 217
218 irq += IRQ_SIC_START; 218 irq += IRQ_SIC_START;
219 219
220 desc = irq_desc + irq; 220 generic_handle_irq(irq);
221 desc_handle_irq(irq, desc);
222 } while (status); 221 } while (status);
223} 222}
224 223
diff --git a/arch/arm/mach-integrator/leds.c b/arch/arm/mach-integrator/leds.c
index 7bc6881434ec..8dcc823f4135 100644
--- a/arch/arm/mach-integrator/leds.c
+++ b/arch/arm/mach-integrator/leds.c
@@ -24,9 +24,9 @@
24#include <linux/init.h> 24#include <linux/init.h>
25#include <linux/smp.h> 25#include <linux/smp.h>
26#include <linux/spinlock.h> 26#include <linux/spinlock.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/leds.h> 30#include <asm/leds.h>
31#include <asm/system.h> 31#include <asm/system.h>
32#include <asm/mach-types.h> 32#include <asm/mach-types.h>
diff --git a/arch/arm/mach-integrator/pci_v3.c b/arch/arm/mach-integrator/pci_v3.c
index 9f2b1ea8fb20..f1d72b225450 100644
--- a/arch/arm/mach-integrator/pci_v3.c
+++ b/arch/arm/mach-integrator/pci_v3.c
@@ -27,9 +27,9 @@
27#include <linux/interrupt.h> 27#include <linux/interrupt.h>
28#include <linux/spinlock.h> 28#include <linux/spinlock.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/io.h>
30 31
31#include <mach/hardware.h> 32#include <mach/hardware.h>
32#include <asm/io.h>
33#include <asm/irq.h> 33#include <asm/irq.h>
34#include <asm/system.h> 34#include <asm/system.h>
35#include <asm/mach/pci.h> 35#include <asm/mach/pci.h>
diff --git a/arch/arm/mach-iop13xx/include/mach/memory.h b/arch/arm/mach-iop13xx/include/mach/memory.h
index e8b59d8f1bb9..b82602d529bf 100644
--- a/arch/arm/mach-iop13xx/include/mach/memory.h
+++ b/arch/arm/mach-iop13xx/include/mach/memory.h
@@ -7,9 +7,6 @@
7 * Physical DRAM offset. 7 * Physical DRAM offset.
8 */ 8 */
9#define PHYS_OFFSET UL(0x00000000) 9#define PHYS_OFFSET UL(0x00000000)
10#define TASK_SIZE UL(0x3f000000)
11#define PAGE_OFFSET UL(0x40000000)
12#define TASK_UNMAPPED_BASE ((TASK_SIZE + 0x01000000) / 3)
13 10
14#ifndef __ASSEMBLY__ 11#ifndef __ASSEMBLY__
15 12
@@ -29,32 +26,52 @@
29 26
30/* RAM has 1:1 mapping on the PCIe/x Busses */ 27/* RAM has 1:1 mapping on the PCIe/x Busses */
31#define __virt_to_bus(x) (__virt_to_phys(x)) 28#define __virt_to_bus(x) (__virt_to_phys(x))
32#define __bus_to_virt(x) (__phys_to_virt(x)) 29#define __bus_to_virt(x) (__phys_to_virt(x))
33 30
34#define virt_to_lbus(x) \ 31static inline dma_addr_t __virt_to_lbus(unsigned long x)
35(( ((void*)(x) >= (void*)IOP13XX_PMMR_V_START) && \ 32{
36((void*)(x) < (void*)IOP13XX_PMMR_V_END) ) ? \ 33 return x + IOP13XX_PMMR_PHYS_MEM_BASE - IOP13XX_PMMR_VIRT_MEM_BASE;
37((x) - IOP13XX_PMMR_VIRT_MEM_BASE + IOP13XX_PMMR_PHYS_MEM_BASE) : \ 34}
38((x) - PAGE_OFFSET + PHYS_OFFSET))
39 35
40#define lbus_to_virt(x) \ 36static inline unsigned long __lbus_to_virt(dma_addr_t x)
41(( ((x) >= IOP13XX_PMMR_P_START) && ((x) < IOP13XX_PMMR_P_END) ) ? \ 37{
42((x) - IOP13XX_PMMR_PHYS_MEM_BASE + IOP13XX_PMMR_VIRT_MEM_BASE ) : \ 38 return x + IOP13XX_PMMR_VIRT_MEM_BASE - IOP13XX_PMMR_PHYS_MEM_BASE;
43((x) - PHYS_OFFSET + PAGE_OFFSET)) 39}
40
41#define __is_lbus_dma(a) \
42 ((a) >= IOP13XX_PMMR_P_START && (a) < IOP13XX_PMMR_P_END)
43
44#define __is_lbus_virt(a) \
45 ((a) >= IOP13XX_PMMR_V_START && (a) < IOP13XX_PMMR_V_END)
44 46
45/* Device is an lbus device if it is on the platform bus of the IOP13XX */ 47/* Device is an lbus device if it is on the platform bus of the IOP13XX */
46#define is_lbus_device(dev) (dev &&\ 48#define is_lbus_device(dev) \
47 (strncmp(dev->bus->name, "platform", 8) == 0)) 49 (dev && strncmp(dev->bus->name, "platform", 8) == 0)
48 50
49#define __arch_page_to_dma(dev, page) \ 51#define __arch_dma_to_virt(dev, addr) \
50({is_lbus_device(dev) ? (dma_addr_t)virt_to_lbus(page_address(page)) : \ 52 ({ \
51(dma_addr_t)__virt_to_bus(page_address(page));}) 53 unsigned long __virt; \
54 dma_addr_t __dma = addr; \
55 if (is_lbus_device(dev) && __is_lbus_dma(__dma)) \
56 __virt = __lbus_to_virt(__dma); \
57 else \
58 __virt = __bus_to_virt(__dma); \
59 (void *)__virt; \
60 })
52 61
53#define __arch_dma_to_virt(dev, addr) \ 62#define __arch_virt_to_dma(dev, addr) \
54({is_lbus_device(dev) ? lbus_to_virt(addr) : __bus_to_virt(addr);}) 63 ({ \
64 unsigned long __virt = (unsigned long)addr; \
65 dma_addr_t __dma; \
66 if (is_lbus_device(dev) && __is_lbus_virt(__virt)) \
67 __dma = __virt_to_lbus(__virt); \
68 else \
69 __dma = __virt_to_bus(__virt); \
70 __dma; \
71 })
55 72
56#define __arch_virt_to_dma(dev, addr) \ 73#define __arch_page_to_dma(dev, page) \
57({is_lbus_device(dev) ? virt_to_lbus(addr) : __virt_to_bus(addr);}) 74 __arch_virt_to_dma(dev, page_address(page))
58 75
59#endif /* CONFIG_ARCH_IOP13XX */ 76#endif /* CONFIG_ARCH_IOP13XX */
60#endif /* !ASSEMBLY */ 77#endif /* !ASSEMBLY */
diff --git a/arch/arm/mach-iop13xx/include/mach/pci.h b/arch/arm/mach-iop13xx/include/mach/pci.h
index 17b5515af8b1..59f42b535572 100644
--- a/arch/arm/mach-iop13xx/include/mach/pci.h
+++ b/arch/arm/mach-iop13xx/include/mach/pci.h
@@ -1,7 +1,7 @@
1#ifndef _IOP13XX_PCI_H_ 1#ifndef _IOP13XX_PCI_H_
2#define _IOP13XX_PCI_H_ 2#define _IOP13XX_PCI_H_
3#include <linux/io.h>
3#include <mach/irqs.h> 4#include <mach/irqs.h>
4#include <asm/io.h>
5 5
6struct pci_sys_data; 6struct pci_sys_data;
7struct hw_pci; 7struct hw_pci;
diff --git a/arch/arm/mach-iop13xx/io.c b/arch/arm/mach-iop13xx/io.c
index 26cfa318142c..529580997814 100644
--- a/arch/arm/mach-iop13xx/io.c
+++ b/arch/arm/mach-iop13xx/io.c
@@ -18,8 +18,8 @@
18 */ 18 */
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/io.h>
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/io.h>
23 23
24void * __iomem __iop13xx_io(unsigned long io_addr) 24void * __iomem __iop13xx_io(unsigned long io_addr)
25{ 25{
diff --git a/arch/arm/mach-iop13xx/msi.c b/arch/arm/mach-iop13xx/msi.c
index 63ef1124ca5c..f34b0ed80630 100644
--- a/arch/arm/mach-iop13xx/msi.c
+++ b/arch/arm/mach-iop13xx/msi.c
@@ -110,8 +110,7 @@ static void iop13xx_msi_handler(unsigned int irq, struct irq_desc *desc)
110 do { 110 do {
111 j = find_first_bit(&status, 32); 111 j = find_first_bit(&status, 32);
112 (write_imipr[i])(1 << j); /* write back to clear bit */ 112 (write_imipr[i])(1 << j); /* write back to clear bit */
113 desc = irq_desc + IRQ_IOP13XX_MSI_0 + j + (32*i); 113 generic_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i));
114 desc_handle_irq(IRQ_IOP13XX_MSI_0 + j + (32*i), desc);
115 status = (read_imipr[i])(); 114 status = (read_imipr[i])();
116 } while (status); 115 } while (status);
117 } 116 }
diff --git a/arch/arm/mach-iop13xx/setup.c b/arch/arm/mach-iop13xx/setup.c
index b17ccc8cb471..cfd4d2e6dacd 100644
--- a/arch/arm/mach-iop13xx/setup.c
+++ b/arch/arm/mach-iop13xx/setup.c
@@ -18,13 +18,13 @@
18 */ 18 */
19 19
20#include <linux/serial_8250.h> 20#include <linux/serial_8250.h>
21#include <linux/io.h>
21#ifdef CONFIG_MTD_PHYSMAP 22#ifdef CONFIG_MTD_PHYSMAP
22#include <linux/mtd/physmap.h> 23#include <linux/mtd/physmap.h>
23#endif 24#endif
24#include <asm/mach/map.h> 25#include <asm/mach/map.h>
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/irq.h> 27#include <asm/irq.h>
27#include <asm/io.h>
28#include <asm/hardware/iop_adma.h> 28#include <asm/hardware/iop_adma.h>
29 29
30#define IOP13XX_UART_XTAL 33334000 30#define IOP13XX_UART_XTAL 33334000
diff --git a/arch/arm/mach-iop13xx/tpmi.c b/arch/arm/mach-iop13xx/tpmi.c
index 2476347ea62f..c6af1e1bee32 100644
--- a/arch/arm/mach-iop13xx/tpmi.c
+++ b/arch/arm/mach-iop13xx/tpmi.c
@@ -21,7 +21,7 @@
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/dma-mapping.h> 23#include <linux/dma-mapping.h>
24#include <asm/io.h> 24#include <linux/io.h>
25#include <asm/irq.h> 25#include <asm/irq.h>
26#include <asm/sizes.h> 26#include <asm/sizes.h>
27 27
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c
index 45d61276d233..a9c2dfdb2507 100644
--- a/arch/arm/mach-iop32x/glantank.c
+++ b/arch/arm/mach-iop32x/glantank.c
@@ -25,8 +25,8 @@
25#include <linux/mtd/physmap.h> 25#include <linux/mtd/physmap.h>
26#include <linux/i2c.h> 26#include <linux/i2c.h>
27#include <linux/platform_device.h> 27#include <linux/platform_device.h>
28#include <linux/io.h>
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
diff --git a/arch/arm/mach-iop32x/iq31244.c b/arch/arm/mach-iop32x/iq31244.c
index 082818aaa205..dd1cd9904518 100644
--- a/arch/arm/mach-iop32x/iq31244.c
+++ b/arch/arm/mach-iop32x/iq31244.c
@@ -26,8 +26,9 @@
26#include <linux/serial_8250.h> 26#include <linux/serial_8250.h>
27#include <linux/mtd/physmap.h> 27#include <linux/mtd/physmap.h>
28#include <linux/platform_device.h> 28#include <linux/platform_device.h>
29#include <linux/io.h>
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/io.h> 31#include <asm/cputype.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
32#include <asm/mach/arch.h> 33#include <asm/mach/arch.h>
33#include <asm/mach/map.h> 34#include <asm/mach/map.h>
@@ -49,8 +50,7 @@ static int force_ep80219;
49 50
50static int is_80219(void) 51static int is_80219(void)
51{ 52{
52 extern int processor_id; 53 return !!((read_cpuid_id() & 0xffffffe0) == 0x69052e20);
53 return !!((processor_id & 0xffffffe0) == 0x69052e20);
54} 54}
55 55
56static int is_ep80219(void) 56static int is_ep80219(void)
diff --git a/arch/arm/mach-iop32x/iq80321.c b/arch/arm/mach-iop32x/iq80321.c
index d735539808b4..fbe27798759d 100644
--- a/arch/arm/mach-iop32x/iq80321.c
+++ b/arch/arm/mach-iop32x/iq80321.c
@@ -23,8 +23,8 @@
23#include <linux/serial_8250.h> 23#include <linux/serial_8250.h>
24#include <linux/mtd/physmap.h> 24#include <linux/mtd/physmap.h>
25#include <linux/platform_device.h> 25#include <linux/platform_device.h>
26#include <linux/io.h>
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/io.h>
28#include <asm/irq.h> 28#include <asm/irq.h>
29#include <asm/mach/arch.h> 29#include <asm/mach/arch.h>
30#include <asm/mach/map.h> 30#include <asm/mach/map.h>
diff --git a/arch/arm/mach-iop32x/n2100.c b/arch/arm/mach-iop32x/n2100.c
index 3173f9c5835d..d2e427899729 100644
--- a/arch/arm/mach-iop32x/n2100.c
+++ b/arch/arm/mach-iop32x/n2100.c
@@ -30,8 +30,8 @@
30#include <linux/i2c.h> 30#include <linux/i2c.h>
31#include <linux/platform_device.h> 31#include <linux/platform_device.h>
32#include <linux/reboot.h> 32#include <linux/reboot.h>
33#include <linux/io.h>
33#include <mach/hardware.h> 34#include <mach/hardware.h>
34#include <asm/io.h>
35#include <asm/irq.h> 35#include <asm/irq.h>
36#include <asm/mach/arch.h> 36#include <asm/mach/arch.h>
37#include <asm/mach/map.h> 37#include <asm/mach/map.h>
diff --git a/arch/arm/mach-iop33x/iq80331.c b/arch/arm/mach-iop33x/iq80331.c
index c7d99f9fafed..d51e10cddf20 100644
--- a/arch/arm/mach-iop33x/iq80331.c
+++ b/arch/arm/mach-iop33x/iq80331.c
@@ -22,8 +22,8 @@
22#include <linux/serial_8250.h> 22#include <linux/serial_8250.h>
23#include <linux/mtd/physmap.h> 23#include <linux/mtd/physmap.h>
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/io.h>
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/io.h>
27#include <asm/irq.h> 27#include <asm/irq.h>
28#include <asm/mach/arch.h> 28#include <asm/mach/arch.h>
29#include <asm/mach/map.h> 29#include <asm/mach/map.h>
diff --git a/arch/arm/mach-iop33x/iq80332.c b/arch/arm/mach-iop33x/iq80332.c
index af616c5f4fb2..92fb44cdbcad 100644
--- a/arch/arm/mach-iop33x/iq80332.c
+++ b/arch/arm/mach-iop33x/iq80332.c
@@ -22,8 +22,8 @@
22#include <linux/serial_8250.h> 22#include <linux/serial_8250.h>
23#include <linux/mtd/physmap.h> 23#include <linux/mtd/physmap.h>
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/io.h>
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/io.h>
27#include <asm/irq.h> 27#include <asm/irq.h>
28#include <asm/mach/arch.h> 28#include <asm/mach/arch.h>
29#include <asm/mach/map.h> 29#include <asm/mach/map.h>
diff --git a/arch/arm/mach-iop33x/uart.c b/arch/arm/mach-iop33x/uart.c
index 8c21870fa808..cdae24e46eea 100644
--- a/arch/arm/mach-iop33x/uart.c
+++ b/arch/arm/mach-iop33x/uart.c
@@ -17,7 +17,7 @@
17#include <linux/serial.h> 17#include <linux/serial.h>
18#include <linux/tty.h> 18#include <linux/tty.h>
19#include <linux/serial_8250.h> 19#include <linux/serial_8250.h>
20#include <asm/io.h> 20#include <linux/io.h>
21#include <asm/pgtable.h> 21#include <asm/pgtable.h>
22#include <asm/page.h> 22#include <asm/page.h>
23#include <asm/mach/map.h> 23#include <asm/mach/map.h>
diff --git a/arch/arm/mach-ixp2000/core.c b/arch/arm/mach-ixp2000/core.c
index a6a4f93085fd..babb22597163 100644
--- a/arch/arm/mach-ixp2000/core.c
+++ b/arch/arm/mach-ixp2000/core.c
@@ -84,64 +84,57 @@ static struct map_desc ixp2000_io_desc[] __initdata = {
84 .virtual = IXP2000_CAP_VIRT_BASE, 84 .virtual = IXP2000_CAP_VIRT_BASE,
85 .pfn = __phys_to_pfn(IXP2000_CAP_PHYS_BASE), 85 .pfn = __phys_to_pfn(IXP2000_CAP_PHYS_BASE),
86 .length = IXP2000_CAP_SIZE, 86 .length = IXP2000_CAP_SIZE,
87 .type = MT_DEVICE_IXP2000, 87 .type = MT_DEVICE,
88 }, { 88 }, {
89 .virtual = IXP2000_INTCTL_VIRT_BASE, 89 .virtual = IXP2000_INTCTL_VIRT_BASE,
90 .pfn = __phys_to_pfn(IXP2000_INTCTL_PHYS_BASE), 90 .pfn = __phys_to_pfn(IXP2000_INTCTL_PHYS_BASE),
91 .length = IXP2000_INTCTL_SIZE, 91 .length = IXP2000_INTCTL_SIZE,
92 .type = MT_DEVICE_IXP2000, 92 .type = MT_DEVICE,
93 }, { 93 }, {
94 .virtual = IXP2000_PCI_CREG_VIRT_BASE, 94 .virtual = IXP2000_PCI_CREG_VIRT_BASE,
95 .pfn = __phys_to_pfn(IXP2000_PCI_CREG_PHYS_BASE), 95 .pfn = __phys_to_pfn(IXP2000_PCI_CREG_PHYS_BASE),
96 .length = IXP2000_PCI_CREG_SIZE, 96 .length = IXP2000_PCI_CREG_SIZE,
97 .type = MT_DEVICE_IXP2000, 97 .type = MT_DEVICE,
98 }, { 98 }, {
99 .virtual = IXP2000_PCI_CSR_VIRT_BASE, 99 .virtual = IXP2000_PCI_CSR_VIRT_BASE,
100 .pfn = __phys_to_pfn(IXP2000_PCI_CSR_PHYS_BASE), 100 .pfn = __phys_to_pfn(IXP2000_PCI_CSR_PHYS_BASE),
101 .length = IXP2000_PCI_CSR_SIZE, 101 .length = IXP2000_PCI_CSR_SIZE,
102 .type = MT_DEVICE_IXP2000, 102 .type = MT_DEVICE,
103 }, { 103 }, {
104 .virtual = IXP2000_MSF_VIRT_BASE, 104 .virtual = IXP2000_MSF_VIRT_BASE,
105 .pfn = __phys_to_pfn(IXP2000_MSF_PHYS_BASE), 105 .pfn = __phys_to_pfn(IXP2000_MSF_PHYS_BASE),
106 .length = IXP2000_MSF_SIZE, 106 .length = IXP2000_MSF_SIZE,
107 .type = MT_DEVICE_IXP2000, 107 .type = MT_DEVICE,
108 }, { 108 }, {
109 .virtual = IXP2000_SCRATCH_RING_VIRT_BASE, 109 .virtual = IXP2000_SCRATCH_RING_VIRT_BASE,
110 .pfn = __phys_to_pfn(IXP2000_SCRATCH_RING_PHYS_BASE), 110 .pfn = __phys_to_pfn(IXP2000_SCRATCH_RING_PHYS_BASE),
111 .length = IXP2000_SCRATCH_RING_SIZE, 111 .length = IXP2000_SCRATCH_RING_SIZE,
112 .type = MT_DEVICE_IXP2000, 112 .type = MT_DEVICE,
113 }, { 113 }, {
114 .virtual = IXP2000_SRAM0_VIRT_BASE, 114 .virtual = IXP2000_SRAM0_VIRT_BASE,
115 .pfn = __phys_to_pfn(IXP2000_SRAM0_PHYS_BASE), 115 .pfn = __phys_to_pfn(IXP2000_SRAM0_PHYS_BASE),
116 .length = IXP2000_SRAM0_SIZE, 116 .length = IXP2000_SRAM0_SIZE,
117 .type = MT_DEVICE_IXP2000, 117 .type = MT_DEVICE,
118 }, { 118 }, {
119 .virtual = IXP2000_PCI_IO_VIRT_BASE, 119 .virtual = IXP2000_PCI_IO_VIRT_BASE,
120 .pfn = __phys_to_pfn(IXP2000_PCI_IO_PHYS_BASE), 120 .pfn = __phys_to_pfn(IXP2000_PCI_IO_PHYS_BASE),
121 .length = IXP2000_PCI_IO_SIZE, 121 .length = IXP2000_PCI_IO_SIZE,
122 .type = MT_DEVICE_IXP2000, 122 .type = MT_DEVICE,
123 }, { 123 }, {
124 .virtual = IXP2000_PCI_CFG0_VIRT_BASE, 124 .virtual = IXP2000_PCI_CFG0_VIRT_BASE,
125 .pfn = __phys_to_pfn(IXP2000_PCI_CFG0_PHYS_BASE), 125 .pfn = __phys_to_pfn(IXP2000_PCI_CFG0_PHYS_BASE),
126 .length = IXP2000_PCI_CFG0_SIZE, 126 .length = IXP2000_PCI_CFG0_SIZE,
127 .type = MT_DEVICE_IXP2000, 127 .type = MT_DEVICE,
128 }, { 128 }, {
129 .virtual = IXP2000_PCI_CFG1_VIRT_BASE, 129 .virtual = IXP2000_PCI_CFG1_VIRT_BASE,
130 .pfn = __phys_to_pfn(IXP2000_PCI_CFG1_PHYS_BASE), 130 .pfn = __phys_to_pfn(IXP2000_PCI_CFG1_PHYS_BASE),
131 .length = IXP2000_PCI_CFG1_SIZE, 131 .length = IXP2000_PCI_CFG1_SIZE,
132 .type = MT_DEVICE_IXP2000, 132 .type = MT_DEVICE,
133 } 133 }
134}; 134};
135 135
136void __init ixp2000_map_io(void) 136void __init ixp2000_map_io(void)
137{ 137{
138 /*
139 * On IXP2400 CPUs we need to use MT_DEVICE_IXP2000 so that
140 * XCB=101 (to avoid triggering erratum #66), and given that
141 * this mode speeds up I/O accesses and we have write buffer
142 * flushes in the right places anyway, it doesn't hurt to use
143 * XCB=101 for all IXP2000s.
144 */
145 iotable_init(ixp2000_io_desc, ARRAY_SIZE(ixp2000_io_desc)); 138 iotable_init(ixp2000_io_desc, ARRAY_SIZE(ixp2000_io_desc));
146 139
147 /* Set slowport to 8-bit mode. */ 140 /* Set slowport to 8-bit mode. */
@@ -311,8 +304,7 @@ static void ixp2000_GPIO_irq_handler(unsigned int irq, struct irq_desc *desc)
311 304
312 for (i = 0; i <= 7; i++) { 305 for (i = 0; i <= 7; i++) {
313 if (status & (1<<i)) { 306 if (status & (1<<i)) {
314 desc = irq_desc + i + IRQ_IXP2000_GPIO0; 307 generic_handle_irq(i + IRQ_IXP2000_GPIO0);
315 desc_handle_irq(i + IRQ_IXP2000_GPIO0, desc);
316 } 308 }
317 } 309 }
318} 310}
@@ -404,8 +396,7 @@ static void ixp2000_err_irq_handler(unsigned int irq, struct irq_desc *desc)
404 396
405 for(i = 31; i >= 0; i--) { 397 for(i = 31; i >= 0; i--) {
406 if(status & (1 << i)) { 398 if(status & (1 << i)) {
407 desc = irq_desc + IRQ_IXP2000_DRAM0_MIN_ERR + i; 399 generic_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i);
408 desc_handle_irq(IRQ_IXP2000_DRAM0_MIN_ERR + i, desc);
409 } 400 }
410 } 401 }
411} 402}
diff --git a/arch/arm/mach-ixp2000/enp2611.c b/arch/arm/mach-ixp2000/enp2611.c
index c62ed655c1a7..c84dfac13882 100644
--- a/arch/arm/mach-ixp2000/enp2611.c
+++ b/arch/arm/mach-ixp2000/enp2611.c
@@ -32,8 +32,8 @@
32#include <linux/tty.h> 32#include <linux/tty.h>
33#include <linux/serial_core.h> 33#include <linux/serial_core.h>
34#include <linux/platform_device.h> 34#include <linux/platform_device.h>
35#include <linux/io.h>
35 36
36#include <asm/io.h>
37#include <asm/irq.h> 37#include <asm/irq.h>
38#include <asm/pgtable.h> 38#include <asm/pgtable.h>
39#include <asm/page.h> 39#include <asm/page.h>
@@ -70,17 +70,17 @@ static struct map_desc enp2611_io_desc[] __initdata = {
70 .virtual = ENP2611_CALEB_VIRT_BASE, 70 .virtual = ENP2611_CALEB_VIRT_BASE,
71 .pfn = __phys_to_pfn(ENP2611_CALEB_PHYS_BASE), 71 .pfn = __phys_to_pfn(ENP2611_CALEB_PHYS_BASE),
72 .length = ENP2611_CALEB_SIZE, 72 .length = ENP2611_CALEB_SIZE,
73 .type = MT_DEVICE_IXP2000, 73 .type = MT_DEVICE,
74 }, { 74 }, {
75 .virtual = ENP2611_PM3386_0_VIRT_BASE, 75 .virtual = ENP2611_PM3386_0_VIRT_BASE,
76 .pfn = __phys_to_pfn(ENP2611_PM3386_0_PHYS_BASE), 76 .pfn = __phys_to_pfn(ENP2611_PM3386_0_PHYS_BASE),
77 .length = ENP2611_PM3386_0_SIZE, 77 .length = ENP2611_PM3386_0_SIZE,
78 .type = MT_DEVICE_IXP2000, 78 .type = MT_DEVICE,
79 }, { 79 }, {
80 .virtual = ENP2611_PM3386_1_VIRT_BASE, 80 .virtual = ENP2611_PM3386_1_VIRT_BASE,
81 .pfn = __phys_to_pfn(ENP2611_PM3386_1_PHYS_BASE), 81 .pfn = __phys_to_pfn(ENP2611_PM3386_1_PHYS_BASE),
82 .length = ENP2611_PM3386_1_SIZE, 82 .length = ENP2611_PM3386_1_SIZE,
83 .type = MT_DEVICE_IXP2000, 83 .type = MT_DEVICE,
84 } 84 }
85}; 85};
86 86
diff --git a/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h b/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h
index 19d80379a3e3..822f63f2f4a2 100644
--- a/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h
+++ b/arch/arm/mach-ixp2000/include/mach/ixp2000-regs.h
@@ -41,13 +41,7 @@
41 * Most of the registers are clumped in 4K regions spread throughout 41 * Most of the registers are clumped in 4K regions spread throughout
42 * the 0xc0000000 -> 0xc0100000 address range, but we just map in 42 * the 0xc0000000 -> 0xc0100000 address range, but we just map in
43 * the whole range using a single 1 MB section instead of small 43 * the whole range using a single 1 MB section instead of small
44 * 4K pages. This has two advantages for us: 44 * 4K pages.
45 *
46 * 1) We use only one TLB entry for large number of on-chip I/O devices.
47 *
48 * 2) We can easily set the Section attributes to XCB=101 on the IXP2400
49 * as required per erratum #66. We accomplish this by using a
50 * new MT_IXP2000_DEVICE memory type with the bits set as required.
51 * 45 *
52 * CAP stands for CSR Access Proxy. 46 * CAP stands for CSR Access Proxy.
53 * 47 *
diff --git a/arch/arm/mach-ixp2000/ixdp2400.c b/arch/arm/mach-ixp2000/ixdp2400.c
index c673b9ef9f69..4467c4224d73 100644
--- a/arch/arm/mach-ixp2000/ixdp2400.c
+++ b/arch/arm/mach-ixp2000/ixdp2400.c
@@ -25,8 +25,8 @@
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/io.h>
28 29
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31#include <asm/pgtable.h> 31#include <asm/pgtable.h>
32#include <asm/page.h> 32#include <asm/page.h>
diff --git a/arch/arm/mach-ixp2000/ixdp2800.c b/arch/arm/mach-ixp2000/ixdp2800.c
index 6715b50829a6..94f68ba9ea50 100644
--- a/arch/arm/mach-ixp2000/ixdp2800.c
+++ b/arch/arm/mach-ixp2000/ixdp2800.c
@@ -25,8 +25,8 @@
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/io.h>
28 29
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31#include <asm/pgtable.h> 31#include <asm/pgtable.h>
32#include <asm/page.h> 32#include <asm/page.h>
diff --git a/arch/arm/mach-ixp2000/ixdp2x00.c b/arch/arm/mach-ixp2000/ixdp2x00.c
index 5a781fd9757a..b0653a87159a 100644
--- a/arch/arm/mach-ixp2000/ixdp2x00.c
+++ b/arch/arm/mach-ixp2000/ixdp2x00.c
@@ -25,8 +25,8 @@
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/io.h>
28 29
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31#include <asm/pgtable.h> 31#include <asm/pgtable.h>
32#include <asm/page.h> 32#include <asm/page.h>
@@ -129,10 +129,8 @@ static void ixdp2x00_irq_handler(unsigned int irq, struct irq_desc *desc)
129 129
130 for(i = 0; i < board_irq_count; i++) { 130 for(i = 0; i < board_irq_count; i++) {
131 if(ex_interrupt & (1 << i)) { 131 if(ex_interrupt & (1 << i)) {
132 struct irq_desc *cpld_desc;
133 int cpld_irq = IXP2000_BOARD_IRQ(0) + i; 132 int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
134 cpld_desc = irq_desc + cpld_irq; 133 generic_handle_irq(cpld_irq);
135 desc_handle_irq(cpld_irq, cpld_desc);
136 } 134 }
137 } 135 }
138 136
diff --git a/arch/arm/mach-ixp2000/ixdp2x01.c b/arch/arm/mach-ixp2000/ixdp2x01.c
index 78a2341dee2c..4a12327a09a3 100644
--- a/arch/arm/mach-ixp2000/ixdp2x01.c
+++ b/arch/arm/mach-ixp2000/ixdp2x01.c
@@ -30,8 +30,8 @@
30#include <linux/serial_core.h> 30#include <linux/serial_core.h>
31#include <linux/platform_device.h> 31#include <linux/platform_device.h>
32#include <linux/serial_8250.h> 32#include <linux/serial_8250.h>
33#include <linux/io.h>
33 34
34#include <asm/io.h>
35#include <asm/irq.h> 35#include <asm/irq.h>
36#include <asm/pgtable.h> 36#include <asm/pgtable.h>
37#include <asm/page.h> 37#include <asm/page.h>
@@ -79,10 +79,8 @@ static void ixdp2x01_irq_handler(unsigned int irq, struct irq_desc *desc)
79 79
80 for (i = 0; i < IXP2000_BOARD_IRQS; i++) { 80 for (i = 0; i < IXP2000_BOARD_IRQS; i++) {
81 if (ex_interrupt & (1 << i)) { 81 if (ex_interrupt & (1 << i)) {
82 struct irq_desc *cpld_desc;
83 int cpld_irq = IXP2000_BOARD_IRQ(0) + i; 82 int cpld_irq = IXP2000_BOARD_IRQ(0) + i;
84 cpld_desc = irq_desc + cpld_irq; 83 generic_handle_irq(cpld_irq);
85 desc_handle_irq(cpld_irq, cpld_desc);
86 } 84 }
87 } 85 }
88 86
diff --git a/arch/arm/mach-ixp2000/pci.c b/arch/arm/mach-ixp2000/pci.c
index 03d916fbe531..60e9fd08ab80 100644
--- a/arch/arm/mach-ixp2000/pci.c
+++ b/arch/arm/mach-ixp2000/pci.c
@@ -24,8 +24,8 @@
24#include <linux/ioport.h> 24#include <linux/ioport.h>
25#include <linux/slab.h> 25#include <linux/slab.h>
26#include <linux/delay.h> 26#include <linux/delay.h>
27#include <linux/io.h>
27 28
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/system.h> 30#include <asm/system.h>
31#include <mach/hardware.h> 31#include <mach/hardware.h>
diff --git a/arch/arm/mach-ixp23xx/core.c b/arch/arm/mach-ixp23xx/core.c
index 68b4ac5b2481..aa4c4420ff3d 100644
--- a/arch/arm/mach-ixp23xx/core.c
+++ b/arch/arm/mach-ixp23xx/core.c
@@ -253,7 +253,6 @@ static void pci_handler(unsigned int irq, struct irq_desc *desc)
253{ 253{
254 u32 pci_interrupt; 254 u32 pci_interrupt;
255 unsigned int irqno; 255 unsigned int irqno;
256 struct irq_desc *int_desc;
257 256
258 pci_interrupt = *IXP23XX_PCI_XSCALE_INT_STATUS; 257 pci_interrupt = *IXP23XX_PCI_XSCALE_INT_STATUS;
259 258
@@ -268,8 +267,7 @@ static void pci_handler(unsigned int irq, struct irq_desc *desc)
268 BUG(); 267 BUG();
269 } 268 }
270 269
271 int_desc = irq_desc + irqno; 270 generic_handle_irq(irqno);
272 desc_handle_irq(irqno, int_desc);
273 271
274 desc->chip->unmask(irq); 272 desc->chip->unmask(irq);
275} 273}
diff --git a/arch/arm/mach-ixp23xx/ixdp2351.c b/arch/arm/mach-ixp23xx/ixdp2351.c
index b6e0bfa44df9..f1b124a709ab 100644
--- a/arch/arm/mach-ixp23xx/ixdp2351.c
+++ b/arch/arm/mach-ixp23xx/ixdp2351.c
@@ -68,11 +68,9 @@ static void ixdp2351_inta_handler(unsigned int irq, struct irq_desc *desc)
68 68
69 for (i = 0; i < IXDP2351_INTA_IRQ_NUM; i++) { 69 for (i = 0; i < IXDP2351_INTA_IRQ_NUM; i++) {
70 if (ex_interrupt & (1 << i)) { 70 if (ex_interrupt & (1 << i)) {
71 struct irq_desc *cpld_desc;
72 int cpld_irq = 71 int cpld_irq =
73 IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i); 72 IXP23XX_MACH_IRQ(IXDP2351_INTA_IRQ_BASE + i);
74 cpld_desc = irq_desc + cpld_irq; 73 generic_handle_irq(cpld_irq);
75 desc_handle_irq(cpld_irq, cpld_desc);
76 } 74 }
77 } 75 }
78 76
@@ -105,11 +103,9 @@ static void ixdp2351_intb_handler(unsigned int irq, struct irq_desc *desc)
105 103
106 for (i = 0; i < IXDP2351_INTB_IRQ_NUM; i++) { 104 for (i = 0; i < IXDP2351_INTB_IRQ_NUM; i++) {
107 if (ex_interrupt & (1 << i)) { 105 if (ex_interrupt & (1 << i)) {
108 struct irq_desc *cpld_desc;
109 int cpld_irq = 106 int cpld_irq =
110 IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i); 107 IXP23XX_MACH_IRQ(IXDP2351_INTB_IRQ_BASE + i);
111 cpld_desc = irq_desc + cpld_irq; 108 generic_handle_irq(cpld_irq);
112 desc_handle_irq(cpld_irq, cpld_desc);
113 } 109 }
114 } 110 }
115 111
diff --git a/arch/arm/mach-ixp23xx/pci.c b/arch/arm/mach-ixp23xx/pci.c
index 701d60aa0efd..59022becb134 100644
--- a/arch/arm/mach-ixp23xx/pci.c
+++ b/arch/arm/mach-ixp23xx/pci.c
@@ -25,8 +25,8 @@
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/delay.h> 27#include <linux/delay.h>
28#include <linux/io.h>
28 29
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31#include <asm/sizes.h> 31#include <asm/sizes.h>
32#include <asm/system.h> 32#include <asm/system.h>
diff --git a/arch/arm/mach-ixp4xx/common-pci.c b/arch/arm/mach-ixp4xx/common-pci.c
index 192538a04575..d816c51320c7 100644
--- a/arch/arm/mach-ixp4xx/common-pci.c
+++ b/arch/arm/mach-ixp4xx/common-pci.c
@@ -25,9 +25,10 @@
25#include <linux/slab.h> 25#include <linux/slab.h>
26#include <linux/delay.h> 26#include <linux/delay.h>
27#include <linux/device.h> 27#include <linux/device.h>
28#include <linux/io.h>
28#include <asm/dma-mapping.h> 29#include <asm/dma-mapping.h>
29 30
30#include <asm/io.h> 31#include <asm/cputype.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
32#include <asm/sizes.h> 33#include <asm/sizes.h>
33#include <asm/system.h> 34#include <asm/system.h>
@@ -366,15 +367,13 @@ void __init ixp4xx_adjust_zones(int node, unsigned long *zone_size,
366 367
367void __init ixp4xx_pci_preinit(void) 368void __init ixp4xx_pci_preinit(void)
368{ 369{
369 unsigned long processor_id; 370 unsigned long cpuid = read_cpuid_id();
370
371 asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :);
372 371
373 /* 372 /*
374 * Determine which PCI read method to use. 373 * Determine which PCI read method to use.
375 * Rev 0 IXP425 requires workaround. 374 * Rev 0 IXP425 requires workaround.
376 */ 375 */
377 if (!(processor_id & 0xf) && cpu_is_ixp42x()) { 376 if (!(cpuid & 0xf) && cpu_is_ixp42x()) {
378 printk("PCI: IXP42x A0 silicon detected - " 377 printk("PCI: IXP42x A0 silicon detected - "
379 "PCI Non-Prefetch Workaround Enabled\n"); 378 "PCI Non-Prefetch Workaround Enabled\n");
380 ixp4xx_pci_read = ixp4xx_pci_read_errata; 379 ixp4xx_pci_read = ixp4xx_pci_read_errata;
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
index 58bd2842a6f1..7766f469456b 100644
--- a/arch/arm/mach-ixp4xx/common.c
+++ b/arch/arm/mach-ixp4xx/common.c
@@ -28,11 +28,11 @@
28#include <linux/timex.h> 28#include <linux/timex.h>
29#include <linux/clocksource.h> 29#include <linux/clocksource.h>
30#include <linux/clockchips.h> 30#include <linux/clockchips.h>
31#include <linux/io.h>
31 32
32#include <mach/udc.h> 33#include <mach/udc.h>
33#include <mach/hardware.h> 34#include <mach/hardware.h>
34#include <asm/uaccess.h> 35#include <asm/uaccess.h>
35#include <asm/io.h>
36#include <asm/pgtable.h> 36#include <asm/pgtable.h>
37#include <asm/page.h> 37#include <asm/page.h>
38#include <asm/irq.h> 38#include <asm/irq.h>
diff --git a/arch/arm/mach-ixp4xx/fsg-setup.c b/arch/arm/mach-ixp4xx/fsg-setup.c
index 501dfdcc39fe..e7c6386782ed 100644
--- a/arch/arm/mach-ixp4xx/fsg-setup.c
+++ b/arch/arm/mach-ixp4xx/fsg-setup.c
@@ -23,11 +23,11 @@
23#include <linux/reboot.h> 23#include <linux/reboot.h>
24#include <linux/i2c.h> 24#include <linux/i2c.h>
25#include <linux/i2c-gpio.h> 25#include <linux/i2c-gpio.h>
26#include <linux/io.h>
26 27
27#include <asm/mach-types.h> 28#include <asm/mach-types.h>
28#include <asm/mach/arch.h> 29#include <asm/mach/arch.h>
29#include <asm/mach/flash.h> 30#include <asm/mach/flash.h>
30#include <asm/io.h>
31#include <asm/gpio.h> 31#include <asm/gpio.h>
32 32
33static struct flash_platform_data fsg_flash_data = { 33static struct flash_platform_data fsg_flash_data = {
diff --git a/arch/arm/mach-ixp4xx/include/mach/cpu.h b/arch/arm/mach-ixp4xx/include/mach/cpu.h
index ff8aa2393bf9..51bd69c46d94 100644
--- a/arch/arm/mach-ixp4xx/include/mach/cpu.h
+++ b/arch/arm/mach-ixp4xx/include/mach/cpu.h
@@ -14,18 +14,19 @@
14#ifndef __ASM_ARCH_CPU_H__ 14#ifndef __ASM_ARCH_CPU_H__
15#define __ASM_ARCH_CPU_H__ 15#define __ASM_ARCH_CPU_H__
16 16
17extern unsigned int processor_id; 17#include <asm/cputype.h>
18
18/* Processor id value in CP15 Register 0 */ 19/* Processor id value in CP15 Register 0 */
19#define IXP425_PROCESSOR_ID_VALUE 0x690541c0 20#define IXP425_PROCESSOR_ID_VALUE 0x690541c0
20#define IXP435_PROCESSOR_ID_VALUE 0x69054040 21#define IXP435_PROCESSOR_ID_VALUE 0x69054040
21#define IXP465_PROCESSOR_ID_VALUE 0x69054200 22#define IXP465_PROCESSOR_ID_VALUE 0x69054200
22#define IXP4XX_PROCESSOR_ID_MASK 0xfffffff0 23#define IXP4XX_PROCESSOR_ID_MASK 0xfffffff0
23 24
24#define cpu_is_ixp42x() ((processor_id & IXP4XX_PROCESSOR_ID_MASK) == \ 25#define cpu_is_ixp42x() ((read_cpuid_id() & IXP4XX_PROCESSOR_ID_MASK) == \
25 IXP425_PROCESSOR_ID_VALUE) 26 IXP425_PROCESSOR_ID_VALUE)
26#define cpu_is_ixp43x() ((processor_id & IXP4XX_PROCESSOR_ID_MASK) == \ 27#define cpu_is_ixp43x() ((read_cpuid_id() & IXP4XX_PROCESSOR_ID_MASK) == \
27 IXP435_PROCESSOR_ID_VALUE) 28 IXP435_PROCESSOR_ID_VALUE)
28#define cpu_is_ixp46x() ((processor_id & IXP4XX_PROCESSOR_ID_MASK) == \ 29#define cpu_is_ixp46x() ((read_cpuid_id() & IXP4XX_PROCESSOR_ID_MASK) == \
29 IXP465_PROCESSOR_ID_VALUE) 30 IXP465_PROCESSOR_ID_VALUE)
30 31
31static inline u32 ixp4xx_read_feature_bits(void) 32static inline u32 ixp4xx_read_feature_bits(void)
diff --git a/arch/arm/mach-ixp4xx/ixdp425-setup.c b/arch/arm/mach-ixp4xx/ixdp425-setup.c
index 9b2d2ec14c80..f4a0c1bc1331 100644
--- a/arch/arm/mach-ixp4xx/ixdp425-setup.c
+++ b/arch/arm/mach-ixp4xx/ixdp425-setup.c
@@ -20,6 +20,7 @@
20#include <linux/mtd/mtd.h> 20#include <linux/mtd/mtd.h>
21#include <linux/mtd/nand.h> 21#include <linux/mtd/nand.h>
22#include <linux/mtd/partitions.h> 22#include <linux/mtd/partitions.h>
23#include <linux/delay.h>
23 24
24#include <asm/types.h> 25#include <asm/types.h>
25#include <asm/setup.h> 26#include <asm/setup.h>
@@ -29,7 +30,6 @@
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
31#include <asm/mach/flash.h> 32#include <asm/mach/flash.h>
32#include <asm/delay.h>
33 33
34static struct flash_platform_data ixdp425_flash_data = { 34static struct flash_platform_data ixdp425_flash_data = {
35 .map_name = "cfi_probe", 35 .map_name = "cfi_probe",
diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c
index 84b5e62a9c0a..0acd95ecf27e 100644
--- a/arch/arm/mach-ixp4xx/nas100d-setup.c
+++ b/arch/arm/mach-ixp4xx/nas100d-setup.c
@@ -28,11 +28,11 @@
28#include <linux/reboot.h> 28#include <linux/reboot.h>
29#include <linux/i2c.h> 29#include <linux/i2c.h>
30#include <linux/i2c-gpio.h> 30#include <linux/i2c-gpio.h>
31#include <linux/io.h>
31 32
32#include <asm/mach-types.h> 33#include <asm/mach-types.h>
33#include <asm/mach/arch.h> 34#include <asm/mach/arch.h>
34#include <asm/mach/flash.h> 35#include <asm/mach/flash.h>
35#include <asm/io.h>
36#include <asm/gpio.h> 36#include <asm/gpio.h>
37 37
38static struct flash_platform_data nas100d_flash_data = { 38static struct flash_platform_data nas100d_flash_data = {
diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c
index a48a6655b887..bc9d920ae54f 100644
--- a/arch/arm/mach-ixp4xx/nslu2-setup.c
+++ b/arch/arm/mach-ixp4xx/nslu2-setup.c
@@ -25,12 +25,12 @@
25#include <linux/reboot.h> 25#include <linux/reboot.h>
26#include <linux/i2c.h> 26#include <linux/i2c.h>
27#include <linux/i2c-gpio.h> 27#include <linux/i2c-gpio.h>
28#include <linux/io.h>
28 29
29#include <asm/mach-types.h> 30#include <asm/mach-types.h>
30#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
31#include <asm/mach/flash.h> 32#include <asm/mach/flash.h>
32#include <asm/mach/time.h> 33#include <asm/mach/time.h>
33#include <asm/io.h>
34#include <asm/gpio.h> 34#include <asm/gpio.h>
35 35
36static struct flash_platform_data nslu2_flash_data = { 36static struct flash_platform_data nslu2_flash_data = {
diff --git a/arch/arm/mach-ks8695/cpu.c b/arch/arm/mach-ks8695/cpu.c
index c6c08e800233..7f3f24053a00 100644
--- a/arch/arm/mach-ks8695/cpu.c
+++ b/arch/arm/mach-ks8695/cpu.c
@@ -24,9 +24,9 @@
24#include <linux/kernel.h> 24#include <linux/kernel.h>
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/mach/arch.h> 30#include <asm/mach/arch.h>
31#include <asm/mach/map.h> 31#include <asm/mach/map.h>
32 32
diff --git a/arch/arm/mach-ks8695/gpio.c b/arch/arm/mach-ks8695/gpio.c
index 3624e65cd89b..9aecf0c4b8b1 100644
--- a/arch/arm/mach-ks8695/gpio.c
+++ b/arch/arm/mach-ks8695/gpio.c
@@ -23,8 +23,8 @@
23#include <linux/debugfs.h> 23#include <linux/debugfs.h>
24#include <linux/seq_file.h> 24#include <linux/seq_file.h>
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/io.h>
26 27
27#include <asm/io.h>
28#include <mach/hardware.h> 28#include <mach/hardware.h>
29#include <asm/mach/irq.h> 29#include <asm/mach/irq.h>
30 30
@@ -72,7 +72,7 @@ int __init_or_module ks8695_gpio_interrupt(unsigned int pin, unsigned int type)
72 72
73 /* set pin as input */ 73 /* set pin as input */
74 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); 74 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM);
75 x &= ~IOPM_(pin); 75 x &= ~IOPM(pin);
76 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); 76 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM);
77 77
78 local_irq_restore(flags); 78 local_irq_restore(flags);
@@ -108,7 +108,7 @@ int __init_or_module gpio_direction_input(unsigned int pin)
108 108
109 /* set pin as input */ 109 /* set pin as input */
110 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); 110 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM);
111 x &= ~IOPM_(pin); 111 x &= ~IOPM(pin);
112 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); 112 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM);
113 113
114 local_irq_restore(flags); 114 local_irq_restore(flags);
@@ -136,14 +136,14 @@ int __init_or_module gpio_direction_output(unsigned int pin, unsigned int state)
136 /* set line state */ 136 /* set line state */
137 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); 137 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
138 if (state) 138 if (state)
139 x |= (1 << pin); 139 x |= IOPD(pin);
140 else 140 else
141 x &= ~(1 << pin); 141 x &= ~IOPD(pin);
142 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD); 142 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
143 143
144 /* set pin as output */ 144 /* set pin as output */
145 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM); 145 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPM);
146 x |= IOPM_(pin); 146 x |= IOPM(pin);
147 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM); 147 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPM);
148 148
149 local_irq_restore(flags); 149 local_irq_restore(flags);
@@ -168,9 +168,9 @@ void gpio_set_value(unsigned int pin, unsigned int state)
168 /* set output line state */ 168 /* set output line state */
169 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); 169 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
170 if (state) 170 if (state)
171 x |= (1 << pin); 171 x |= IOPD(pin);
172 else 172 else
173 x &= ~(1 << pin); 173 x &= ~IOPD(pin);
174 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD); 174 __raw_writel(x, KS8695_GPIO_VA + KS8695_IOPD);
175 175
176 local_irq_restore(flags); 176 local_irq_restore(flags);
@@ -189,7 +189,7 @@ int gpio_get_value(unsigned int pin)
189 return -EINVAL; 189 return -EINVAL;
190 190
191 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD); 191 x = __raw_readl(KS8695_GPIO_VA + KS8695_IOPD);
192 return (x & (1 << pin)) != 0; 192 return (x & IOPD(pin)) != 0;
193} 193}
194EXPORT_SYMBOL(gpio_get_value); 194EXPORT_SYMBOL(gpio_get_value);
195 195
@@ -240,7 +240,7 @@ static int ks8695_gpio_show(struct seq_file *s, void *unused)
240 for (i = KS8695_GPIO_0; i <= KS8695_GPIO_15 ; i++) { 240 for (i = KS8695_GPIO_0; i <= KS8695_GPIO_15 ; i++) {
241 seq_printf(s, "%i:\t", i); 241 seq_printf(s, "%i:\t", i);
242 242
243 seq_printf(s, "%s\t", (mode & IOPM_(i)) ? "Output" : "Input"); 243 seq_printf(s, "%s\t", (mode & IOPM(i)) ? "Output" : "Input");
244 244
245 if (i <= KS8695_GPIO_3) { 245 if (i <= KS8695_GPIO_3) {
246 if (ctrl & enable[i]) { 246 if (ctrl & enable[i]) {
@@ -273,7 +273,7 @@ static int ks8695_gpio_show(struct seq_file *s, void *unused)
273 273
274 seq_printf(s, "\t"); 274 seq_printf(s, "\t");
275 275
276 seq_printf(s, "%i\n", (data & IOPD_(i)) ? 1 : 0); 276 seq_printf(s, "%i\n", (data & IOPD(i)) ? 1 : 0);
277 } 277 }
278 return 0; 278 return 0;
279} 279}
diff --git a/arch/arm/mach-ks8695/include/mach/memory.h b/arch/arm/mach-ks8695/include/mach/memory.h
index dadbe66cb75c..8fbc4c76c38b 100644
--- a/arch/arm/mach-ks8695/include/mach/memory.h
+++ b/arch/arm/mach-ks8695/include/mach/memory.h
@@ -31,8 +31,8 @@
31/* Platform-bus mapping */ 31/* Platform-bus mapping */
32extern struct bus_type platform_bus_type; 32extern struct bus_type platform_bus_type;
33#define is_lbus_device(dev) (dev && dev->bus == &platform_bus_type) 33#define is_lbus_device(dev) (dev && dev->bus == &platform_bus_type)
34#define __arch_dma_to_virt(dev, x) ({ is_lbus_device(dev) ? \ 34#define __arch_dma_to_virt(dev, x) ({ (void *) (is_lbus_device(dev) ? \
35 __phys_to_virt(x) : __bus_to_virt(x); }) 35 __phys_to_virt(x) : __bus_to_virt(x)); })
36#define __arch_virt_to_dma(dev, x) ({ is_lbus_device(dev) ? \ 36#define __arch_virt_to_dma(dev, x) ({ is_lbus_device(dev) ? \
37 (dma_addr_t)__virt_to_phys(x) : (dma_addr_t)__virt_to_bus(x); }) 37 (dma_addr_t)__virt_to_phys(x) : (dma_addr_t)__virt_to_bus(x); })
38#define __arch_page_to_dma(dev, x) __arch_virt_to_dma(dev, page_address(x)) 38#define __arch_page_to_dma(dev, x) __arch_virt_to_dma(dev, page_address(x))
diff --git a/arch/arm/mach-ks8695/include/mach/regs-gpio.h b/arch/arm/mach-ks8695/include/mach/regs-gpio.h
index 0df6fe61d1ce..90614a7d0548 100644
--- a/arch/arm/mach-ks8695/include/mach/regs-gpio.h
+++ b/arch/arm/mach-ks8695/include/mach/regs-gpio.h
@@ -24,7 +24,7 @@
24 24
25 25
26/* Port Mode Register */ 26/* Port Mode Register */
27#define IOPM_(x) (1 << (x)) /* Mode for GPIO Pin x */ 27#define IOPM(x) (1 << (x)) /* Mode for GPIO Pin x */
28 28
29/* Port Control Register */ 29/* Port Control Register */
30#define IOPC_IOTIM1EN (1 << 17) /* GPIO Pin for Timer1 Enable */ 30#define IOPC_IOTIM1EN (1 << 17) /* GPIO Pin for Timer1 Enable */
@@ -50,6 +50,6 @@
50#define IOPC_TM_EDGE (6) /* Both Edge Detection */ 50#define IOPC_TM_EDGE (6) /* Both Edge Detection */
51 51
52/* Port Data Register */ 52/* Port Data Register */
53#define IOPD_(x) (1 << (x)) /* Signal Level of GPIO Pin x */ 53#define IOPD(x) (1 << (x)) /* Signal Level of GPIO Pin x */
54 54
55#endif 55#endif
diff --git a/arch/arm/mach-ks8695/include/mach/regs-lan.h b/arch/arm/mach-ks8695/include/mach/regs-lan.h
index 9ef409901e76..82c5f3791afb 100644
--- a/arch/arm/mach-ks8695/include/mach/regs-lan.h
+++ b/arch/arm/mach-ks8695/include/mach/regs-lan.h
@@ -29,8 +29,8 @@
29#define KS8695_LRDLB (0x14) /* Receive Descriptor List Base Address */ 29#define KS8695_LRDLB (0x14) /* Receive Descriptor List Base Address */
30#define KS8695_LMAL (0x18) /* MAC Station Address Low */ 30#define KS8695_LMAL (0x18) /* MAC Station Address Low */
31#define KS8695_LMAH (0x1c) /* MAC Station Address High */ 31#define KS8695_LMAH (0x1c) /* MAC Station Address High */
32#define KS8695_LMAAL_(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */ 32#define KS8695_LMAAL(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */
33#define KS8695_LMAAH_(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */ 33#define KS8695_LMAAH(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */
34 34
35 35
36/* DMA Transmit Control Register */ 36/* DMA Transmit Control Register */
diff --git a/arch/arm/mach-ks8695/include/mach/regs-wan.h b/arch/arm/mach-ks8695/include/mach/regs-wan.h
index eb494ec6e956..c475bed22b8e 100644
--- a/arch/arm/mach-ks8695/include/mach/regs-wan.h
+++ b/arch/arm/mach-ks8695/include/mach/regs-wan.h
@@ -29,8 +29,8 @@
29#define KS8695_WRDLB (0x14) /* Receive Descriptor List Base Address */ 29#define KS8695_WRDLB (0x14) /* Receive Descriptor List Base Address */
30#define KS8695_WMAL (0x18) /* MAC Station Address Low */ 30#define KS8695_WMAL (0x18) /* MAC Station Address Low */
31#define KS8695_WMAH (0x1c) /* MAC Station Address High */ 31#define KS8695_WMAH (0x1c) /* MAC Station Address High */
32#define KS8695_WMAAL_(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */ 32#define KS8695_WMAAL(n) (0x80 + ((n)*8)) /* MAC Additional Station Address (0..15) Low */
33#define KS8695_WMAAH_(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */ 33#define KS8695_WMAAH(n) (0x84 + ((n)*8)) /* MAC Additional Station Address (0..15) High */
34 34
35 35
36/* DMA Transmit Control Register */ 36/* DMA Transmit Control Register */
diff --git a/arch/arm/mach-ks8695/include/mach/system.h b/arch/arm/mach-ks8695/include/mach/system.h
index 2a6f91869056..5a9b032bdbeb 100644
--- a/arch/arm/mach-ks8695/include/mach/system.h
+++ b/arch/arm/mach-ks8695/include/mach/system.h
@@ -14,7 +14,7 @@
14#ifndef __ASM_ARCH_SYSTEM_H 14#ifndef __ASM_ARCH_SYSTEM_H
15#define __ASM_ARCH_SYSTEM_H 15#define __ASM_ARCH_SYSTEM_H
16 16
17#include <asm/io.h> 17#include <linux/io.h>
18#include <mach/regs-timer.h> 18#include <mach/regs-timer.h>
19 19
20static void arch_idle(void) 20static void arch_idle(void)
diff --git a/arch/arm/mach-ks8695/include/mach/uncompress.h b/arch/arm/mach-ks8695/include/mach/uncompress.h
index 0eee37a69075..9495cb4d701a 100644
--- a/arch/arm/mach-ks8695/include/mach/uncompress.h
+++ b/arch/arm/mach-ks8695/include/mach/uncompress.h
@@ -14,7 +14,7 @@
14#ifndef __ASM_ARCH_UNCOMPRESS_H 14#ifndef __ASM_ARCH_UNCOMPRESS_H
15#define __ASM_ARCH_UNCOMPRESS_H 15#define __ASM_ARCH_UNCOMPRESS_H
16 16
17#include <asm/io.h> 17#include <linux/io.h>
18#include <mach/regs-uart.h> 18#include <mach/regs-uart.h>
19 19
20static void putc(char c) 20static void putc(char c)
diff --git a/arch/arm/mach-ks8695/irq.c b/arch/arm/mach-ks8695/irq.c
index e5e71f4dbb84..e375c1d53f81 100644
--- a/arch/arm/mach-ks8695/irq.c
+++ b/arch/arm/mach-ks8695/irq.c
@@ -24,10 +24,10 @@
24#include <linux/interrupt.h> 24#include <linux/interrupt.h>
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/sysdev.h> 26#include <linux/sysdev.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/io.h>
31 31
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
diff --git a/arch/arm/mach-ks8695/pci.c b/arch/arm/mach-ks8695/pci.c
index 1746c67af176..f5ebcc0fcab9 100644
--- a/arch/arm/mach-ks8695/pci.c
+++ b/arch/arm/mach-ks8695/pci.c
@@ -27,8 +27,8 @@
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/irq.h> 28#include <linux/irq.h>
29#include <linux/delay.h> 29#include <linux/delay.h>
30#include <linux/io.h>
30 31
31#include <asm/io.h>
32#include <asm/signal.h> 32#include <asm/signal.h>
33#include <asm/mach/pci.h> 33#include <asm/mach/pci.h>
34#include <mach/hardware.h> 34#include <mach/hardware.h>
@@ -141,7 +141,7 @@ static struct pci_ops ks8695_pci_ops = {
141 .write = ks8695_pci_writeconfig, 141 .write = ks8695_pci_writeconfig,
142}; 142};
143 143
144static struct pci_bus *ks8695_pci_scan_bus(int nr, struct pci_sys_data *sys) 144static struct pci_bus* __init ks8695_pci_scan_bus(int nr, struct pci_sys_data *sys)
145{ 145{
146 return pci_scan_bus(sys->busnr, &ks8695_pci_ops, sys); 146 return pci_scan_bus(sys->busnr, &ks8695_pci_ops, sys);
147} 147}
diff --git a/arch/arm/mach-ks8695/time.c b/arch/arm/mach-ks8695/time.c
index 940888dffc16..69c072c2c0f9 100644
--- a/arch/arm/mach-ks8695/time.c
+++ b/arch/arm/mach-ks8695/time.c
@@ -24,8 +24,8 @@
24#include <linux/irq.h> 24#include <linux/irq.h>
25#include <linux/kernel.h> 25#include <linux/kernel.h>
26#include <linux/sched.h> 26#include <linux/sched.h>
27#include <linux/io.h>
27 28
28#include <asm/io.h>
29#include <asm/mach/time.h> 29#include <asm/mach/time.h>
30 30
31#include <mach/regs-timer.h> 31#include <mach/regs-timer.h>
diff --git a/arch/arm/mach-lh7a40x/Kconfig b/arch/arm/mach-lh7a40x/Kconfig
index 6f4c6a1798c1..9be7466e346c 100644
--- a/arch/arm/mach-lh7a40x/Kconfig
+++ b/arch/arm/mach-lh7a40x/Kconfig
@@ -40,23 +40,22 @@ config LPD7A40X_CPLD_SSP
40 bool 40 bool
41 41
42config LH7A40X_CONTIGMEM 42config LH7A40X_CONTIGMEM
43 bool "Disable NUMA Support" 43 bool "Disable NUMA/SparseMEM Support"
44 depends on ARCH_LH7A40X
45 help 44 help
46 Say Y here if your bootloader sets the SROMLL bit(s) in 45 Say Y here if your bootloader sets the SROMLL bit(s) in
47 the SDRAM controller, organizing memory as a contiguous 46 the SDRAM controller, organizing memory as a contiguous
48 array. This option will disable CONFIG_DISCONTIGMEM and 47 array. This option will disable sparse memory support
49 force the kernel to manage all memory in one node. 48 and force the kernel to manage all memory in one node.
50 49
51 Setting this option incorrectly may prevent the kernel from 50 Setting this option incorrectly may prevent the kernel
52 booting. It is OK to leave it N. 51 from booting. It is OK to leave it N.
53 52
54 For more information, consult 53 For more information, consult
55 <file:Documentation/arm/Sharp-LH/SDRAM>. 54 <file:Documentation/arm/Sharp-LH/SDRAM>.
56 55
57config LH7A40X_ONE_BANK_PER_NODE 56config LH7A40X_ONE_BANK_PER_NODE
58 bool "Optimize NUMA Node Tables for Size" 57 bool "Optimize NUMA Node Tables for Size"
59 depends on ARCH_LH7A40X && !LH7A40X_CONTIGMEM 58 depends on !LH7A40X_CONTIGMEM
60 help 59 help
61 Say Y here to produce compact memory node tables. By 60 Say Y here to produce compact memory node tables. By
62 default pairs of adjacent physical RAM banks are managed 61 default pairs of adjacent physical RAM banks are managed
diff --git a/arch/arm/mach-lh7a40x/arch-kev7a400.c b/arch/arm/mach-lh7a40x/arch-kev7a400.c
index 551b97261826..3d7bd50b9095 100644
--- a/arch/arm/mach-lh7a40x/arch-kev7a400.c
+++ b/arch/arm/mach-lh7a40x/arch-kev7a400.c
@@ -77,7 +77,7 @@ static void kev7a400_cpld_handler (unsigned int irq, struct irq_desc *desc)
77 irq = IRQ_KEV7A400_CPLD; 77 irq = IRQ_KEV7A400_CPLD;
78 for (; mask; mask >>= 1, ++irq) 78 for (; mask; mask >>= 1, ++irq)
79 if (mask & 1) 79 if (mask & 1)
80 desc_handle_irq(irq, desc); 80 generic_handle_irq(irq);
81} 81}
82 82
83void __init lh7a40x_init_board_irq (void) 83void __init lh7a40x_init_board_irq (void)
diff --git a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c
index e373fb8e2699..cb15e5d32120 100644
--- a/arch/arm/mach-lh7a40x/arch-lpd7a40x.c
+++ b/arch/arm/mach-lh7a40x/arch-lpd7a40x.c
@@ -214,11 +214,11 @@ static void lpd7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc)
214 desc->chip->ack (irq); 214 desc->chip->ack (irq);
215 215
216 if ((mask & (1<<0)) == 0) /* WLAN */ 216 if ((mask & (1<<0)) == 0) /* WLAN */
217 IRQ_DISPATCH (IRQ_LPD7A40X_ETH_INT); 217 generic_handle_irq(IRQ_LPD7A40X_ETH_INT);
218 218
219#if defined (IRQ_TOUCH) 219#if defined (IRQ_TOUCH)
220 if ((mask & (1<<1)) == 0) /* Touch */ 220 if ((mask & (1<<1)) == 0) /* Touch */
221 IRQ_DISPATCH (IRQ_TOUCH); 221 generic_handle_irq(IRQ_TOUCH);
222#endif 222#endif
223 223
224 desc->chip->unmask (irq); /* Level-triggered need this */ 224 desc->chip->unmask (irq); /* Level-triggered need this */
diff --git a/arch/arm/mach-lh7a40x/common.h b/arch/arm/mach-lh7a40x/common.h
index 0ca20c6c83b7..6ed3f6b6db76 100644
--- a/arch/arm/mach-lh7a40x/common.h
+++ b/arch/arm/mach-lh7a40x/common.h
@@ -15,4 +15,3 @@ extern void lh7a404_init_irq (void);
15extern void lh7a40x_clcd_init (void); 15extern void lh7a40x_clcd_init (void);
16extern void lh7a40x_init_board_irq (void); 16extern void lh7a40x_init_board_irq (void);
17 17
18#define IRQ_DISPATCH(irq) desc_handle_irq((irq),(irq_desc + irq))
diff --git a/arch/arm/mach-lh7a40x/include/mach/memory.h b/arch/arm/mach-lh7a40x/include/mach/memory.h
index f7107b4c197a..1da14ff66c93 100644
--- a/arch/arm/mach-lh7a40x/include/mach/memory.h
+++ b/arch/arm/mach-lh7a40x/include/mach/memory.h
@@ -73,4 +73,10 @@
73 73
74#endif 74#endif
75 75
76/*
77 * Sparsemem version of the above
78 */
79#define MAX_PHYSMEM_BITS 32
80#define SECTION_SIZE_BITS 24
81
76#endif 82#endif
diff --git a/arch/arm/mach-lh7a40x/irq-lpd7a40x.c b/arch/arm/mach-lh7a40x/irq-lpd7a40x.c
index 0d5063ebda10..fd033bb4342f 100644
--- a/arch/arm/mach-lh7a40x/irq-lpd7a40x.c
+++ b/arch/arm/mach-lh7a40x/irq-lpd7a40x.c
@@ -63,10 +63,10 @@ static void lh7a40x_cpld_handler (unsigned int irq, struct irq_desc *desc)
63 desc->chip->ack (irq); 63 desc->chip->ack (irq);
64 64
65 if ((mask & 0x1) == 0) /* WLAN */ 65 if ((mask & 0x1) == 0) /* WLAN */
66 IRQ_DISPATCH (IRQ_LPD7A40X_ETH_INT); 66 generic_handle_irq(IRQ_LPD7A40X_ETH_INT);
67 67
68 if ((mask & 0x2) == 0) /* Touch */ 68 if ((mask & 0x2) == 0) /* Touch */
69 IRQ_DISPATCH (IRQ_LPD7A400_TS); 69 generic_handle_irq(IRQ_LPD7A400_TS);
70 70
71 desc->chip->unmask (irq); /* Level-triggered need this */ 71 desc->chip->unmask (irq); /* Level-triggered need this */
72} 72}
diff --git a/arch/arm/mach-lh7a40x/ssp-cpld.c b/arch/arm/mach-lh7a40x/ssp-cpld.c
index 51fbef9601b9..2901d49d1484 100644
--- a/arch/arm/mach-lh7a40x/ssp-cpld.c
+++ b/arch/arm/mach-lh7a40x/ssp-cpld.c
@@ -43,8 +43,8 @@
43#include <linux/init.h> 43#include <linux/init.h>
44#include <linux/delay.h> 44#include <linux/delay.h>
45#include <linux/spinlock.h> 45#include <linux/spinlock.h>
46#include <linux/io.h>
46 47
47#include <asm/io.h>
48#include <asm/irq.h> 48#include <asm/irq.h>
49#include <mach/hardware.h> 49#include <mach/hardware.h>
50 50
diff --git a/arch/arm/mach-lh7a40x/time.c b/arch/arm/mach-lh7a40x/time.c
index 7fe9e06cf662..4601e425bae3 100644
--- a/arch/arm/mach-lh7a40x/time.c
+++ b/arch/arm/mach-lh7a40x/time.c
@@ -13,9 +13,9 @@
13#include <linux/interrupt.h> 13#include <linux/interrupt.h>
14#include <linux/irq.h> 14#include <linux/irq.h>
15#include <linux/time.h> 15#include <linux/time.h>
16#include <linux/io.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18#include <asm/io.h>
19#include <asm/irq.h> 19#include <asm/irq.h>
20#include <asm/leds.h> 20#include <asm/leds.h>
21 21
diff --git a/arch/arm/mach-loki/addr-map.c b/arch/arm/mach-loki/addr-map.c
index 70ca56bb6f33..0332d8f5c18c 100644
--- a/arch/arm/mach-loki/addr-map.c
+++ b/arch/arm/mach-loki/addr-map.c
@@ -11,8 +11,8 @@
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/mbus.h> 13#include <linux/mbus.h>
14#include <linux/io.h>
14#include <mach/hardware.h> 15#include <mach/hardware.h>
15#include <asm/io.h>
16#include "common.h" 16#include "common.h"
17 17
18/* 18/*
diff --git a/arch/arm/mach-loki/irq.c b/arch/arm/mach-loki/irq.c
index 5a487930cb2f..e1f97338d5b7 100644
--- a/arch/arm/mach-loki/irq.c
+++ b/arch/arm/mach-loki/irq.c
@@ -11,7 +11,7 @@
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/irq.h> 13#include <linux/irq.h>
14#include <asm/io.h> 14#include <linux/io.h>
15#include <plat/irq.h> 15#include <plat/irq.h>
16#include "common.h" 16#include "common.h"
17 17
diff --git a/arch/arm/mach-msm/board-halibut.c b/arch/arm/mach-msm/board-halibut.c
index 995afc4ade4b..a24259133e07 100644
--- a/arch/arm/mach-msm/board-halibut.c
+++ b/arch/arm/mach-msm/board-halibut.c
@@ -18,6 +18,8 @@
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/input.h> 20#include <linux/input.h>
21#include <linux/io.h>
22#include <linux/delay.h>
21 23
22#include <mach/hardware.h> 24#include <mach/hardware.h>
23#include <asm/mach-types.h> 25#include <asm/mach-types.h>
@@ -28,9 +30,6 @@
28#include <mach/board.h> 30#include <mach/board.h>
29#include <mach/msm_iomap.h> 31#include <mach/msm_iomap.h>
30 32
31#include <asm/io.h>
32#include <asm/delay.h>
33
34#include <linux/mtd/nand.h> 33#include <linux/mtd/nand.h>
35#include <linux/mtd/partitions.h> 34#include <linux/mtd/partitions.h>
36 35
diff --git a/arch/arm/mach-msm/common.c b/arch/arm/mach-msm/common.c
index 3a511368a5d8..604f8ade9587 100644
--- a/arch/arm/mach-msm/common.c
+++ b/arch/arm/mach-msm/common.c
@@ -19,9 +19,9 @@
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/io.h>
22 23
23#include <asm/mach/flash.h> 24#include <asm/mach/flash.h>
24#include <asm/io.h>
25 25
26#include <asm/setup.h> 26#include <asm/setup.h>
27 27
diff --git a/arch/arm/mach-msm/dma.c b/arch/arm/mach-msm/dma.c
index 9de08265d974..0c8f252637e1 100644
--- a/arch/arm/mach-msm/dma.c
+++ b/arch/arm/mach-msm/dma.c
@@ -13,7 +13,7 @@
13 * 13 *
14 */ 14 */
15 15
16#include <asm/io.h> 16#include <linux/io.h>
17#include <linux/interrupt.h> 17#include <linux/interrupt.h>
18#include <mach/dma.h> 18#include <mach/dma.h>
19 19
diff --git a/arch/arm/mach-msm/io.c b/arch/arm/mach-msm/io.c
index 5976200de99b..7999e4ba8e20 100644
--- a/arch/arm/mach-msm/io.c
+++ b/arch/arm/mach-msm/io.c
@@ -18,9 +18,9 @@
18 18
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/io.h>
21 22
22#include <mach/hardware.h> 23#include <mach/hardware.h>
23#include <asm/io.h>
24#include <asm/page.h> 24#include <asm/page.h>
25#include <mach/msm_iomap.h> 25#include <mach/msm_iomap.h>
26#include <asm/mach/map.h> 26#include <asm/mach/map.h>
diff --git a/arch/arm/mach-msm/irq.c b/arch/arm/mach-msm/irq.c
index 66901baf8c8e..04b8d182ff8a 100644
--- a/arch/arm/mach-msm/irq.c
+++ b/arch/arm/mach-msm/irq.c
@@ -19,11 +19,10 @@
19#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/ptrace.h> 20#include <linux/ptrace.h>
21#include <linux/timer.h> 21#include <linux/timer.h>
22
23#include <linux/irq.h> 22#include <linux/irq.h>
24#include <mach/hardware.h> 23#include <linux/io.h>
25 24
26#include <asm/io.h> 25#include <mach/hardware.h>
27 26
28#include <mach/msm_iomap.h> 27#include <mach/msm_iomap.h>
29 28
diff --git a/arch/arm/mach-msm/timer.c b/arch/arm/mach-msm/timer.c
index 9f02d7dca985..2bffe9b7e9fe 100644
--- a/arch/arm/mach-msm/timer.c
+++ b/arch/arm/mach-msm/timer.c
@@ -20,12 +20,11 @@
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/clockchips.h> 21#include <linux/clockchips.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/time.h> 25#include <asm/mach/time.h>
25#include <mach/msm_iomap.h> 26#include <mach/msm_iomap.h>
26 27
27#include <asm/io.h>
28
29#define MSM_DGT_BASE (MSM_GPT_BASE + 0x10) 28#define MSM_DGT_BASE (MSM_GPT_BASE + 0x10)
30#define MSM_DGT_SHIFT (5) 29#define MSM_DGT_SHIFT (5)
31 30
diff --git a/arch/arm/mach-mv78xx0/addr-map.c b/arch/arm/mach-mv78xx0/addr-map.c
index 4004b672a2eb..311d5b0e9bc7 100644
--- a/arch/arm/mach-mv78xx0/addr-map.c
+++ b/arch/arm/mach-mv78xx0/addr-map.c
@@ -11,7 +11,7 @@
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/mbus.h> 13#include <linux/mbus.h>
14#include <asm/io.h> 14#include <linux/io.h>
15#include "common.h" 15#include "common.h"
16 16
17/* 17/*
diff --git a/arch/arm/mach-mx2/devices.h b/arch/arm/mach-mx2/devices.h
new file mode 100644
index 000000000000..c77a4b8f73b4
--- /dev/null
+++ b/arch/arm/mach-mx2/devices.h
@@ -0,0 +1,15 @@
1
2extern struct platform_device mxc_gpt1;
3extern struct platform_device mxc_gpt2;
4extern struct platform_device mxc_gpt3;
5extern struct platform_device mxc_gpt4;
6extern struct platform_device mxc_gpt5;
7extern struct platform_device mxc_wdt;
8extern struct platform_device mxc_irda_device;
9extern struct platform_device mxc_uart_device0;
10extern struct platform_device mxc_uart_device1;
11extern struct platform_device mxc_uart_device2;
12extern struct platform_device mxc_uart_device3;
13extern struct platform_device mxc_uart_device4;
14extern struct platform_device mxc_uart_device5;
15
diff --git a/arch/arm/mach-mx2/mx27ads.c b/arch/arm/mach-mx2/mx27ads.c
index 4ce56ef4d8d3..56e22d3ca075 100644
--- a/arch/arm/mach-mx2/mx27ads.c
+++ b/arch/arm/mach-mx2/mx27ads.c
@@ -34,6 +34,8 @@
34#include <mach/iomux-mx1-mx2.h> 34#include <mach/iomux-mx1-mx2.h>
35#include <mach/board-mx27ads.h> 35#include <mach/board-mx27ads.h>
36 36
37#include "devices.h"
38
37/* ADS's NOR flash */ 39/* ADS's NOR flash */
38static struct physmap_flash_data mx27ads_flash_data = { 40static struct physmap_flash_data mx27ads_flash_data = {
39 .width = 2, 41 .width = 2,
@@ -251,12 +253,14 @@ static struct imxuart_platform_data uart_pdata[] = {
251 253
252static void __init mx27ads_board_init(void) 254static void __init mx27ads_board_init(void)
253{ 255{
254 int i;
255
256 gpio_fec_active(); 256 gpio_fec_active();
257 257
258 for (i = 0; i < 6; i++) 258 mxc_register_device(&mxc_uart_device0, &uart_pdata[0]);
259 imx_init_uart(i, &uart_pdata[i]); 259 mxc_register_device(&mxc_uart_device1, &uart_pdata[1]);
260 mxc_register_device(&mxc_uart_device2, &uart_pdata[2]);
261 mxc_register_device(&mxc_uart_device3, &uart_pdata[3]);
262 mxc_register_device(&mxc_uart_device4, &uart_pdata[4]);
263 mxc_register_device(&mxc_uart_device5, &uart_pdata[5]);
260 264
261 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); 265 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
262} 266}
diff --git a/arch/arm/mach-mx2/pcm038.c b/arch/arm/mach-mx2/pcm038.c
index 1028f453cfc8..7f55746e2591 100644
--- a/arch/arm/mach-mx2/pcm038.c
+++ b/arch/arm/mach-mx2/pcm038.c
@@ -28,6 +28,8 @@
28#include <mach/imx-uart.h> 28#include <mach/imx-uart.h>
29#include <mach/board-pcm038.h> 29#include <mach/board-pcm038.h>
30 30
31#include "devices.h"
32
31/* 33/*
32 * Phytec's phyCORE-i.MX27 comes with 32MiB flash, 34 * Phytec's phyCORE-i.MX27 comes with 32MiB flash,
33 * 16 bit width 35 * 16 bit width
@@ -170,11 +172,11 @@ static struct platform_device *platform_devices[] __initdata = {
170 172
171static void __init pcm038_init(void) 173static void __init pcm038_init(void)
172{ 174{
173 int i;
174 gpio_fec_active(); 175 gpio_fec_active();
175 176
176 for (i = 0; i < 3; i++) 177 mxc_register_device(&mxc_uart_device0, &uart_pdata[0]);
177 imx_init_uart(i, &uart_pdata[i]); 178 mxc_register_device(&mxc_uart_device1, &uart_pdata[1]);
179 mxc_register_device(&mxc_uart_device2, &uart_pdata[2]);
178 180
179 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); 181 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
180 182
diff --git a/arch/arm/mach-mx2/serial.c b/arch/arm/mach-mx2/serial.c
index e31fd44f7941..16debc296dad 100644
--- a/arch/arm/mach-mx2/serial.c
+++ b/arch/arm/mach-mx2/serial.c
@@ -35,7 +35,7 @@ static struct resource uart0[] = {
35 }, 35 },
36}; 36};
37 37
38static struct platform_device mxc_uart_device0 = { 38struct platform_device mxc_uart_device0 = {
39 .name = "imx-uart", 39 .name = "imx-uart",
40 .id = 0, 40 .id = 0,
41 .resource = uart0, 41 .resource = uart0,
@@ -54,7 +54,7 @@ static struct resource uart1[] = {
54 }, 54 },
55}; 55};
56 56
57static struct platform_device mxc_uart_device1 = { 57struct platform_device mxc_uart_device1 = {
58 .name = "imx-uart", 58 .name = "imx-uart",
59 .id = 1, 59 .id = 1,
60 .resource = uart1, 60 .resource = uart1,
@@ -73,7 +73,7 @@ static struct resource uart2[] = {
73 }, 73 },
74}; 74};
75 75
76static struct platform_device mxc_uart_device2 = { 76struct platform_device mxc_uart_device2 = {
77 .name = "imx-uart", 77 .name = "imx-uart",
78 .id = 2, 78 .id = 2,
79 .resource = uart2, 79 .resource = uart2,
@@ -92,7 +92,7 @@ static struct resource uart3[] = {
92 }, 92 },
93}; 93};
94 94
95static struct platform_device mxc_uart_device3 = { 95struct platform_device mxc_uart_device3 = {
96 .name = "imx-uart", 96 .name = "imx-uart",
97 .id = 3, 97 .id = 3,
98 .resource = uart3, 98 .resource = uart3,
@@ -111,7 +111,7 @@ static struct resource uart4[] = {
111 }, 111 },
112}; 112};
113 113
114static struct platform_device mxc_uart_device4 = { 114struct platform_device mxc_uart_device4 = {
115 .name = "imx-uart", 115 .name = "imx-uart",
116 .id = 4, 116 .id = 4,
117 .resource = uart4, 117 .resource = uart4,
@@ -130,48 +130,9 @@ static struct resource uart5[] = {
130 }, 130 },
131}; 131};
132 132
133static struct platform_device mxc_uart_device5 = { 133struct platform_device mxc_uart_device5 = {
134 .name = "imx-uart", 134 .name = "imx-uart",
135 .id = 5, 135 .id = 5,
136 .resource = uart5, 136 .resource = uart5,
137 .num_resources = ARRAY_SIZE(uart5), 137 .num_resources = ARRAY_SIZE(uart5),
138}; 138};
139
140/*
141 * Register only those UARTs that physically exists
142 */
143int __init imx_init_uart(int uart_no, struct imxuart_platform_data *pdata)
144{
145 switch (uart_no) {
146 case 0:
147 mxc_uart_device0.dev.platform_data = pdata;
148 platform_device_register(&mxc_uart_device0);
149 break;
150 case 1:
151 mxc_uart_device1.dev.platform_data = pdata;
152 platform_device_register(&mxc_uart_device1);
153 break;
154#ifndef CONFIG_MXC_IRDA
155 case 2:
156 mxc_uart_device2.dev.platform_data = pdata;
157 platform_device_register(&mxc_uart_device2);
158 break;
159#endif
160 case 3:
161 mxc_uart_device3.dev.platform_data = pdata;
162 platform_device_register(&mxc_uart_device3);
163 break;
164 case 4:
165 mxc_uart_device4.dev.platform_data = pdata;
166 platform_device_register(&mxc_uart_device4);
167 break;
168 case 5:
169 mxc_uart_device5.dev.platform_data = pdata;
170 platform_device_register(&mxc_uart_device5);
171 break;
172 default:
173 return -ENODEV;
174 }
175
176 return 0;
177}
diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c
index e08c6a8ac56b..a6bdcc07f3c9 100644
--- a/arch/arm/mach-mx3/devices.c
+++ b/arch/arm/mach-mx3/devices.c
@@ -36,7 +36,7 @@ static struct resource uart0[] = {
36 }, 36 },
37}; 37};
38 38
39static struct platform_device mxc_uart_device0 = { 39struct platform_device mxc_uart_device0 = {
40 .name = "imx-uart", 40 .name = "imx-uart",
41 .id = 0, 41 .id = 0,
42 .resource = uart0, 42 .resource = uart0,
@@ -55,7 +55,7 @@ static struct resource uart1[] = {
55 }, 55 },
56}; 56};
57 57
58static struct platform_device mxc_uart_device1 = { 58struct platform_device mxc_uart_device1 = {
59 .name = "imx-uart", 59 .name = "imx-uart",
60 .id = 1, 60 .id = 1,
61 .resource = uart1, 61 .resource = uart1,
@@ -74,7 +74,7 @@ static struct resource uart2[] = {
74 }, 74 },
75}; 75};
76 76
77static struct platform_device mxc_uart_device2 = { 77struct platform_device mxc_uart_device2 = {
78 .name = "imx-uart", 78 .name = "imx-uart",
79 .id = 2, 79 .id = 2,
80 .resource = uart2, 80 .resource = uart2,
@@ -93,7 +93,7 @@ static struct resource uart3[] = {
93 }, 93 },
94}; 94};
95 95
96static struct platform_device mxc_uart_device3 = { 96struct platform_device mxc_uart_device3 = {
97 .name = "imx-uart", 97 .name = "imx-uart",
98 .id = 3, 98 .id = 3,
99 .resource = uart3, 99 .resource = uart3,
@@ -112,46 +112,13 @@ static struct resource uart4[] = {
112 }, 112 },
113}; 113};
114 114
115static struct platform_device mxc_uart_device4 = { 115struct platform_device mxc_uart_device4 = {
116 .name = "imx-uart", 116 .name = "imx-uart",
117 .id = 4, 117 .id = 4,
118 .resource = uart4, 118 .resource = uart4,
119 .num_resources = ARRAY_SIZE(uart4), 119 .num_resources = ARRAY_SIZE(uart4),
120}; 120};
121 121
122/*
123 * Register only those UARTs that physically exist
124 */
125int __init imx_init_uart(int uart_no, struct imxuart_platform_data *pdata)
126{
127 switch (uart_no) {
128 case 0:
129 mxc_uart_device0.dev.platform_data = pdata;
130 platform_device_register(&mxc_uart_device0);
131 break;
132 case 1:
133 mxc_uart_device1.dev.platform_data = pdata;
134 platform_device_register(&mxc_uart_device1);
135 break;
136 case 2:
137 mxc_uart_device2.dev.platform_data = pdata;
138 platform_device_register(&mxc_uart_device2);
139 break;
140 case 3:
141 mxc_uart_device3.dev.platform_data = pdata;
142 platform_device_register(&mxc_uart_device3);
143 break;
144 case 4:
145 mxc_uart_device4.dev.platform_data = pdata;
146 platform_device_register(&mxc_uart_device4);
147 break;
148 default:
149 return -ENODEV;
150 }
151
152 return 0;
153}
154
155/* GPIO port description */ 122/* GPIO port description */
156static struct mxc_gpio_port imx_gpio_ports[] = { 123static struct mxc_gpio_port imx_gpio_ports[] = {
157 [0] = { 124 [0] = {
diff --git a/arch/arm/mach-mx3/devices.h b/arch/arm/mach-mx3/devices.h
new file mode 100644
index 000000000000..4dc03f9e6001
--- /dev/null
+++ b/arch/arm/mach-mx3/devices.h
@@ -0,0 +1,6 @@
1
2extern struct platform_device mxc_uart_device0;
3extern struct platform_device mxc_uart_device1;
4extern struct platform_device mxc_uart_device2;
5extern struct platform_device mxc_uart_device3;
6extern struct platform_device mxc_uart_device4;
diff --git a/arch/arm/mach-mx3/iomux.c b/arch/arm/mach-mx3/iomux.c
index 3dda1fe23cbf..6e664be8cc13 100644
--- a/arch/arm/mach-mx3/iomux.c
+++ b/arch/arm/mach-mx3/iomux.c
@@ -43,7 +43,8 @@ static DEFINE_SPINLOCK(gpio_mux_lock);
43 */ 43 */
44int mxc_iomux_mode(unsigned int pin_mode) 44int mxc_iomux_mode(unsigned int pin_mode)
45{ 45{
46 u32 reg, field, l, mode, ret = 0; 46 u32 field, l, mode, ret = 0;
47 void __iomem *reg;
47 48
48 reg = IOMUXSW_MUX_CTL + (pin_mode & IOMUX_REG_MASK); 49 reg = IOMUXSW_MUX_CTL + (pin_mode & IOMUX_REG_MASK);
49 field = pin_mode & 0x3; 50 field = pin_mode & 0x3;
@@ -70,7 +71,8 @@ EXPORT_SYMBOL(mxc_iomux_mode);
70 */ 71 */
71void mxc_iomux_set_pad(enum iomux_pins pin, u32 config) 72void mxc_iomux_set_pad(enum iomux_pins pin, u32 config)
72{ 73{
73 u32 reg, field, l; 74 u32 field, l;
75 void __iomem *reg;
74 76
75 reg = IOMUXSW_PAD_CTL + (pin + 2) / 3; 77 reg = IOMUXSW_PAD_CTL + (pin + 2) / 3;
76 field = (pin + 2) % 3; 78 field = (pin + 2) % 3;
diff --git a/arch/arm/mach-mx3/mm.c b/arch/arm/mach-mx3/mm.c
index 30d842bd4d64..0589b5cd33c7 100644
--- a/arch/arm/mach-mx3/mm.c
+++ b/arch/arm/mach-mx3/mm.c
@@ -49,7 +49,7 @@ static struct map_desc mxc_io_desc[] __initdata = {
49 .virtual = AVIC_BASE_ADDR_VIRT, 49 .virtual = AVIC_BASE_ADDR_VIRT,
50 .pfn = __phys_to_pfn(AVIC_BASE_ADDR), 50 .pfn = __phys_to_pfn(AVIC_BASE_ADDR),
51 .length = AVIC_SIZE, 51 .length = AVIC_SIZE,
52 .type = MT_NONSHARED_DEVICE 52 .type = MT_DEVICE_NONSHARED
53 }, 53 },
54}; 54};
55 55
diff --git a/arch/arm/mach-mx3/mx31ads.c b/arch/arm/mach-mx3/mx31ads.c
index 60fb4e0d5acd..1be4a390c63f 100644
--- a/arch/arm/mach-mx3/mx31ads.c
+++ b/arch/arm/mach-mx3/mx31ads.c
@@ -22,6 +22,7 @@
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <linux/serial_8250.h> 24#include <linux/serial_8250.h>
25#include <linux/irq.h>
25 26
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/mach-types.h> 28#include <asm/mach-types.h>
@@ -31,6 +32,8 @@
31#include <asm/mach/map.h> 32#include <asm/mach/map.h>
32#include <mach/common.h> 33#include <mach/common.h>
33#include <mach/board-mx31ads.h> 34#include <mach/board-mx31ads.h>
35#include <mach/imx-uart.h>
36#include <mach/iomux-mx3.h>
34 37
35/*! 38/*!
36 * @file mx31ads.c 39 * @file mx31ads.c
@@ -84,6 +87,108 @@ static inline int mxc_init_extuart(void)
84} 87}
85#endif 88#endif
86 89
90#if defined(CONFIG_SERIAL_IMX) || defined(CONFIG_SERIAL_IMX_MODULE)
91static struct imxuart_platform_data uart_pdata = {
92 .flags = IMXUART_HAVE_RTSCTS,
93};
94
95static inline void mxc_init_imx_uart(void)
96{
97 mxc_iomux_mode(MX31_PIN_CTS1__CTS1);
98 mxc_iomux_mode(MX31_PIN_RTS1__RTS1);
99 mxc_iomux_mode(MX31_PIN_TXD1__TXD1);
100 mxc_iomux_mode(MX31_PIN_RXD1__RXD1);
101
102 mxc_register_device(&mxc_uart_device0, &uart_pdata);
103}
104#else /* !SERIAL_IMX */
105static inline void mxc_init_imx_uart(void)
106{
107}
108#endif /* !SERIAL_IMX */
109
110static void mx31ads_expio_irq_handler(u32 irq, struct irq_desc *desc)
111{
112 u32 imr_val;
113 u32 int_valid;
114 u32 expio_irq;
115
116 imr_val = __raw_readw(PBC_INTMASK_SET_REG);
117 int_valid = __raw_readw(PBC_INTSTATUS_REG) & imr_val;
118
119 expio_irq = MXC_EXP_IO_BASE;
120 for (; int_valid != 0; int_valid >>= 1, expio_irq++) {
121 if ((int_valid & 1) == 0)
122 continue;
123
124 generic_handle_irq(expio_irq);
125 }
126}
127
128/*
129 * Disable an expio pin's interrupt by setting the bit in the imr.
130 * @param irq an expio virtual irq number
131 */
132static void expio_mask_irq(u32 irq)
133{
134 u32 expio = MXC_IRQ_TO_EXPIO(irq);
135 /* mask the interrupt */
136 __raw_writew(1 << expio, PBC_INTMASK_CLEAR_REG);
137 __raw_readw(PBC_INTMASK_CLEAR_REG);
138}
139
140/*
141 * Acknowledge an expanded io pin's interrupt by clearing the bit in the isr.
142 * @param irq an expanded io virtual irq number
143 */
144static void expio_ack_irq(u32 irq)
145{
146 u32 expio = MXC_IRQ_TO_EXPIO(irq);
147 /* clear the interrupt status */
148 __raw_writew(1 << expio, PBC_INTSTATUS_REG);
149}
150
151/*
152 * Enable a expio pin's interrupt by clearing the bit in the imr.
153 * @param irq a expio virtual irq number
154 */
155static void expio_unmask_irq(u32 irq)
156{
157 u32 expio = MXC_IRQ_TO_EXPIO(irq);
158 /* unmask the interrupt */
159 __raw_writew(1 << expio, PBC_INTMASK_SET_REG);
160}
161
162static struct irq_chip expio_irq_chip = {
163 .ack = expio_ack_irq,
164 .mask = expio_mask_irq,
165 .unmask = expio_unmask_irq,
166};
167
168static void __init mx31ads_init_expio(void)
169{
170 int i;
171
172 printk(KERN_INFO "MX31ADS EXPIO(CPLD) hardware\n");
173
174 /*
175 * Configure INT line as GPIO input
176 */
177 mxc_iomux_mode(IOMUX_MODE(MX31_PIN_GPIO1_4, IOMUX_CONFIG_GPIO));
178
179 /* disable the interrupt and clear the status */
180 __raw_writew(0xFFFF, PBC_INTMASK_CLEAR_REG);
181 __raw_writew(0xFFFF, PBC_INTSTATUS_REG);
182 for (i = MXC_EXP_IO_BASE; i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES);
183 i++) {
184 set_irq_chip(i, &expio_irq_chip);
185 set_irq_handler(i, handle_level_irq);
186 set_irq_flags(i, IRQF_VALID);
187 }
188 set_irq_type(EXPIO_PARENT_INT, IRQ_TYPE_LEVEL_HIGH);
189 set_irq_chained_handler(EXPIO_PARENT_INT, mx31ads_expio_irq_handler);
190}
191
87/*! 192/*!
88 * This structure defines static mappings for the i.MX31ADS board. 193 * This structure defines static mappings for the i.MX31ADS board.
89 */ 194 */
@@ -92,17 +197,17 @@ static struct map_desc mx31ads_io_desc[] __initdata = {
92 .virtual = AIPS1_BASE_ADDR_VIRT, 197 .virtual = AIPS1_BASE_ADDR_VIRT,
93 .pfn = __phys_to_pfn(AIPS1_BASE_ADDR), 198 .pfn = __phys_to_pfn(AIPS1_BASE_ADDR),
94 .length = AIPS1_SIZE, 199 .length = AIPS1_SIZE,
95 .type = MT_NONSHARED_DEVICE 200 .type = MT_DEVICE_NONSHARED
96 }, { 201 }, {
97 .virtual = SPBA0_BASE_ADDR_VIRT, 202 .virtual = SPBA0_BASE_ADDR_VIRT,
98 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), 203 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
99 .length = SPBA0_SIZE, 204 .length = SPBA0_SIZE,
100 .type = MT_NONSHARED_DEVICE 205 .type = MT_DEVICE_NONSHARED
101 }, { 206 }, {
102 .virtual = AIPS2_BASE_ADDR_VIRT, 207 .virtual = AIPS2_BASE_ADDR_VIRT,
103 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), 208 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR),
104 .length = AIPS2_SIZE, 209 .length = AIPS2_SIZE,
105 .type = MT_NONSHARED_DEVICE 210 .type = MT_DEVICE_NONSHARED
106 }, { 211 }, {
107 .virtual = CS4_BASE_ADDR_VIRT, 212 .virtual = CS4_BASE_ADDR_VIRT,
108 .pfn = __phys_to_pfn(CS4_BASE_ADDR), 213 .pfn = __phys_to_pfn(CS4_BASE_ADDR),
@@ -120,12 +225,19 @@ void __init mx31ads_map_io(void)
120 iotable_init(mx31ads_io_desc, ARRAY_SIZE(mx31ads_io_desc)); 225 iotable_init(mx31ads_io_desc, ARRAY_SIZE(mx31ads_io_desc));
121} 226}
122 227
228void __init mx31ads_init_irq(void)
229{
230 mxc_init_irq();
231 mx31ads_init_expio();
232}
233
123/*! 234/*!
124 * Board specific initialization. 235 * Board specific initialization.
125 */ 236 */
126static void __init mxc_board_init(void) 237static void __init mxc_board_init(void)
127{ 238{
128 mxc_init_extuart(); 239 mxc_init_extuart();
240 mxc_init_imx_uart();
129} 241}
130 242
131static void __init mx31ads_timer_init(void) 243static void __init mx31ads_timer_init(void)
@@ -148,7 +260,7 @@ MACHINE_START(MX31ADS, "Freescale MX31ADS")
148 .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc, 260 .io_pg_offst = ((AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc,
149 .boot_params = PHYS_OFFSET + 0x100, 261 .boot_params = PHYS_OFFSET + 0x100,
150 .map_io = mx31ads_map_io, 262 .map_io = mx31ads_map_io,
151 .init_irq = mxc_init_irq, 263 .init_irq = mx31ads_init_irq,
152 .init_machine = mxc_board_init, 264 .init_machine = mxc_board_init,
153 .timer = &mx31ads_timer, 265 .timer = &mx31ads_timer,
154MACHINE_END 266MACHINE_END
diff --git a/arch/arm/mach-mx3/mx31lite.c b/arch/arm/mach-mx3/mx31lite.c
index d363a6e79f80..c43440070143 100644
--- a/arch/arm/mach-mx3/mx31lite.c
+++ b/arch/arm/mach-mx3/mx31lite.c
@@ -45,17 +45,17 @@ static struct map_desc mx31lite_io_desc[] __initdata = {
45 .virtual = AIPS1_BASE_ADDR_VIRT, 45 .virtual = AIPS1_BASE_ADDR_VIRT,
46 .pfn = __phys_to_pfn(AIPS1_BASE_ADDR), 46 .pfn = __phys_to_pfn(AIPS1_BASE_ADDR),
47 .length = AIPS1_SIZE, 47 .length = AIPS1_SIZE,
48 .type = MT_NONSHARED_DEVICE 48 .type = MT_DEVICE_NONSHARED
49 }, { 49 }, {
50 .virtual = SPBA0_BASE_ADDR_VIRT, 50 .virtual = SPBA0_BASE_ADDR_VIRT,
51 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR), 51 .pfn = __phys_to_pfn(SPBA0_BASE_ADDR),
52 .length = SPBA0_SIZE, 52 .length = SPBA0_SIZE,
53 .type = MT_NONSHARED_DEVICE 53 .type = MT_DEVICE_NONSHARED
54 }, { 54 }, {
55 .virtual = AIPS2_BASE_ADDR_VIRT, 55 .virtual = AIPS2_BASE_ADDR_VIRT,
56 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR), 56 .pfn = __phys_to_pfn(AIPS2_BASE_ADDR),
57 .length = AIPS2_SIZE, 57 .length = AIPS2_SIZE,
58 .type = MT_NONSHARED_DEVICE 58 .type = MT_DEVICE_NONSHARED
59 }, { 59 }, {
60 .virtual = CS4_BASE_ADDR_VIRT, 60 .virtual = CS4_BASE_ADDR_VIRT,
61 .pfn = __phys_to_pfn(CS4_BASE_ADDR), 61 .pfn = __phys_to_pfn(CS4_BASE_ADDR),
diff --git a/arch/arm/mach-mx3/pcm037.c b/arch/arm/mach-mx3/pcm037.c
index 0a152ed15a85..11fda95c86a5 100644
--- a/arch/arm/mach-mx3/pcm037.c
+++ b/arch/arm/mach-mx3/pcm037.c
@@ -33,6 +33,8 @@
33#include <mach/iomux-mx3.h> 33#include <mach/iomux-mx3.h>
34#include <mach/board-pcm037.h> 34#include <mach/board-pcm037.h>
35 35
36#include "devices.h"
37
36static struct physmap_flash_data pcm037_flash_data = { 38static struct physmap_flash_data pcm037_flash_data = {
37 .width = 2, 39 .width = 2,
38}; 40};
@@ -54,7 +56,7 @@ static struct platform_device pcm037_flash = {
54}; 56};
55 57
56static struct imxuart_platform_data uart_pdata = { 58static struct imxuart_platform_data uart_pdata = {
57 .flags = 0, 59 .flags = IMXUART_HAVE_RTSCTS,
58}; 60};
59 61
60static struct platform_device *devices[] __initdata = { 62static struct platform_device *devices[] __initdata = {
@@ -73,12 +75,12 @@ static void __init mxc_board_init(void)
73 mxc_iomux_mode(MX31_PIN_TXD1__TXD1); 75 mxc_iomux_mode(MX31_PIN_TXD1__TXD1);
74 mxc_iomux_mode(MX31_PIN_RXD1__RXD1); 76 mxc_iomux_mode(MX31_PIN_RXD1__RXD1);
75 77
76 imx_init_uart(0, &uart_pdata); 78 mxc_register_device(&mxc_uart_device0, &uart_pdata);
77 79
78 mxc_iomux_mode(MX31_PIN_CSPI3_MOSI__RXD3); 80 mxc_iomux_mode(MX31_PIN_CSPI3_MOSI__RXD3);
79 mxc_iomux_mode(MX31_PIN_CSPI3_MISO__TXD3); 81 mxc_iomux_mode(MX31_PIN_CSPI3_MISO__TXD3);
80 82
81 imx_init_uart(2, &uart_pdata); 83 mxc_register_device(&mxc_uart_device2, &uart_pdata);
82} 84}
83 85
84/* 86/*
diff --git a/arch/arm/mach-netx/generic.c b/arch/arm/mach-netx/generic.c
index 1b40483ea753..79df60c20e70 100644
--- a/arch/arm/mach-netx/generic.c
+++ b/arch/arm/mach-netx/generic.c
@@ -22,10 +22,10 @@
22#include <linux/kernel.h> 22#include <linux/kernel.h>
23#include <linux/module.h> 23#include <linux/module.h>
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/io.h>
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/mach/map.h> 27#include <asm/mach/map.h>
27#include <asm/hardware/vic.h> 28#include <asm/hardware/vic.h>
28#include <asm/io.h>
29#include <mach/netx-regs.h> 29#include <mach/netx-regs.h>
30#include <asm/mach/irq.h> 30#include <asm/mach/irq.h>
31 31
@@ -77,15 +77,12 @@ netx_hif_demux_handler(unsigned int irq_unused, struct irq_desc *desc)
77 stat = ((readl(NETX_DPMAS_INT_EN) & 77 stat = ((readl(NETX_DPMAS_INT_EN) &
78 readl(NETX_DPMAS_INT_STAT)) >> 24) & 0x1f; 78 readl(NETX_DPMAS_INT_STAT)) >> 24) & 0x1f;
79 79
80 desc = irq_desc + NETX_IRQ_HIF_CHAINED(0);
81
82 while (stat) { 80 while (stat) {
83 if (stat & 1) { 81 if (stat & 1) {
84 DEBUG_IRQ("handling irq %d\n", irq); 82 DEBUG_IRQ("handling irq %d\n", irq);
85 desc_handle_irq(irq, desc); 83 generic_handle_irq(irq);
86 } 84 }
87 irq++; 85 irq++;
88 desc++;
89 stat >>= 1; 86 stat >>= 1;
90 } 87 }
91} 88}
diff --git a/arch/arm/mach-netx/include/mach/system.h b/arch/arm/mach-netx/include/mach/system.h
index 27d8ef8e8e29..6c1023b8a9ab 100644
--- a/arch/arm/mach-netx/include/mach/system.h
+++ b/arch/arm/mach-netx/include/mach/system.h
@@ -19,7 +19,7 @@
19#ifndef __ASM_ARCH_SYSTEM_H 19#ifndef __ASM_ARCH_SYSTEM_H
20#define __ASM_ARCH_SYSTEM_H 20#define __ASM_ARCH_SYSTEM_H
21 21
22#include <asm/io.h> 22#include <linux/io.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include "netx-regs.h" 24#include "netx-regs.h"
25 25
diff --git a/arch/arm/mach-netx/pfifo.c b/arch/arm/mach-netx/pfifo.c
index 19ae0a72bea3..03984943e16d 100644
--- a/arch/arm/mach-netx/pfifo.c
+++ b/arch/arm/mach-netx/pfifo.c
@@ -20,8 +20,8 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/mutex.h> 22#include <linux/mutex.h>
23#include <linux/io.h>
23 24
24#include <asm/io.h>
25#include <mach/hardware.h> 25#include <mach/hardware.h>
26#include <mach/netx-regs.h> 26#include <mach/netx-regs.h>
27#include <mach/pfifo.h> 27#include <mach/pfifo.h>
diff --git a/arch/arm/mach-netx/time.c b/arch/arm/mach-netx/time.c
index ac8e5bfed691..7c540c1f01fa 100644
--- a/arch/arm/mach-netx/time.c
+++ b/arch/arm/mach-netx/time.c
@@ -21,9 +21,9 @@
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/irq.h> 22#include <linux/irq.h>
23#include <linux/clocksource.h> 23#include <linux/clocksource.h>
24#include <linux/io.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/io.h>
27#include <asm/mach/time.h> 27#include <asm/mach/time.h>
28#include <mach/netx-regs.h> 28#include <mach/netx-regs.h>
29 29
diff --git a/arch/arm/mach-netx/xc.c b/arch/arm/mach-netx/xc.c
index 04c34e82fe6d..32eabf5dfa4f 100644
--- a/arch/arm/mach-netx/xc.c
+++ b/arch/arm/mach-netx/xc.c
@@ -21,8 +21,8 @@
21#include <linux/device.h> 21#include <linux/device.h>
22#include <linux/firmware.h> 22#include <linux/firmware.h>
23#include <linux/mutex.h> 23#include <linux/mutex.h>
24#include <linux/io.h>
24 25
25#include <asm/io.h>
26#include <mach/hardware.h> 26#include <mach/hardware.h>
27#include <mach/netx-regs.h> 27#include <mach/netx-regs.h>
28 28
diff --git a/arch/arm/mach-ns9xxx/board-a9m9750dev.c b/arch/arm/mach-ns9xxx/board-a9m9750dev.c
index a22a608a7aba..b45bb3b802f1 100644
--- a/arch/arm/mach-ns9xxx/board-a9m9750dev.c
+++ b/arch/arm/mach-ns9xxx/board-a9m9750dev.c
@@ -86,13 +86,10 @@ static void a9m9750dev_fpga_demux_handler(unsigned int irq,
86 86
87 while (stat != 0) { 87 while (stat != 0) {
88 int irqno = fls(stat) - 1; 88 int irqno = fls(stat) - 1;
89 struct irq_desc *fpgadesc;
90 89
91 stat &= ~(1 << irqno); 90 stat &= ~(1 << irqno);
92 91
93 fpgadesc = irq_desc + FPGA_IRQ(irqno); 92 generic_handle_irq(FPGA_IRQ(irqno));
94
95 desc_handle_irq(FPGA_IRQ(irqno), fpgadesc);
96 } 93 }
97 94
98 desc->chip->unmask(irq); 95 desc->chip->unmask(irq);
diff --git a/arch/arm/mach-ns9xxx/gpio.c b/arch/arm/mach-ns9xxx/gpio.c
index 804c30075960..5241e6a286cc 100644
--- a/arch/arm/mach-ns9xxx/gpio.c
+++ b/arch/arm/mach-ns9xxx/gpio.c
@@ -12,13 +12,13 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/spinlock.h> 13#include <linux/spinlock.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/bitops.h>
15 16
16#include <mach/gpio.h> 17#include <mach/gpio.h>
17#include <mach/processor.h> 18#include <mach/processor.h>
18#include <mach/processor-ns9360.h> 19#include <mach/processor-ns9360.h>
19#include <asm/bug.h> 20#include <asm/bug.h>
20#include <asm/types.h> 21#include <asm/types.h>
21#include <asm/bitops.h>
22 22
23#include "gpio-ns9360.h" 23#include "gpio-ns9360.h"
24 24
diff --git a/arch/arm/mach-ns9xxx/include/mach/uncompress.h b/arch/arm/mach-ns9xxx/include/mach/uncompress.h
index 5dbc3c5167c8..1b12d324b087 100644
--- a/arch/arm/mach-ns9xxx/include/mach/uncompress.h
+++ b/arch/arm/mach-ns9xxx/include/mach/uncompress.h
@@ -11,7 +11,7 @@
11#ifndef __ASM_ARCH_UNCOMPRESS_H 11#ifndef __ASM_ARCH_UNCOMPRESS_H
12#define __ASM_ARCH_UNCOMPRESS_H 12#define __ASM_ARCH_UNCOMPRESS_H
13 13
14#include <asm/io.h> 14#include <linux/io.h>
15 15
16#define __REG(x) ((void __iomem __force *)(x)) 16#define __REG(x) ((void __iomem __force *)(x))
17 17
diff --git a/arch/arm/mach-ns9xxx/irq.c b/arch/arm/mach-ns9xxx/irq.c
index 38260d5f849b..22e0eb6e9ec4 100644
--- a/arch/arm/mach-ns9xxx/irq.c
+++ b/arch/arm/mach-ns9xxx/irq.c
@@ -10,7 +10,7 @@
10 */ 10 */
11#include <linux/interrupt.h> 11#include <linux/interrupt.h>
12#include <linux/kernel_stat.h> 12#include <linux/kernel_stat.h>
13#include <asm/io.h> 13#include <linux/io.h>
14#include <asm/mach/irq.h> 14#include <asm/mach/irq.h>
15#include <mach/regs-sys-common.h> 15#include <mach/regs-sys-common.h>
16#include <mach/irqs.h> 16#include <mach/irqs.h>
diff --git a/arch/arm/mach-omap1/board-voiceblue.c b/arch/arm/mach-omap1/board-voiceblue.c
index 213b48787102..45a01311669a 100644
--- a/arch/arm/mach-omap1/board-voiceblue.c
+++ b/arch/arm/mach-omap1/board-voiceblue.c
@@ -21,6 +21,7 @@
21#include <linux/reboot.h> 21#include <linux/reboot.h>
22#include <linux/serial_8250.h> 22#include <linux/serial_8250.h>
23#include <linux/serial_reg.h> 23#include <linux/serial_reg.h>
24#include <linux/irq.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/mach-types.h> 27#include <asm/mach-types.h>
diff --git a/arch/arm/mach-omap1/clock.c b/arch/arm/mach-omap1/clock.c
index 5965cf09f8c4..478c2c9a22cb 100644
--- a/arch/arm/mach-omap1/clock.c
+++ b/arch/arm/mach-omap1/clock.c
@@ -17,8 +17,8 @@
17#include <linux/errno.h> 17#include <linux/errno.h>
18#include <linux/err.h> 18#include <linux/err.h>
19#include <linux/clk.h> 19#include <linux/clk.h>
20#include <linux/io.h>
20 21
21#include <asm/io.h>
22#include <asm/mach-types.h> 22#include <asm/mach-types.h>
23 23
24#include <mach/cpu.h> 24#include <mach/cpu.h>
diff --git a/arch/arm/mach-omap1/devices.c b/arch/arm/mach-omap1/devices.c
index ab708d4c597e..99982d3380c9 100644
--- a/arch/arm/mach-omap1/devices.c
+++ b/arch/arm/mach-omap1/devices.c
@@ -13,9 +13,9 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/io.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18#include <asm/io.h>
19#include <asm/mach/map.h> 19#include <asm/mach/map.h>
20 20
21#include <mach/tc.h> 21#include <mach/tc.h>
diff --git a/arch/arm/mach-omap1/fpga.c b/arch/arm/mach-omap1/fpga.c
index 4449d86095f6..04995381aa5c 100644
--- a/arch/arm/mach-omap1/fpga.c
+++ b/arch/arm/mach-omap1/fpga.c
@@ -21,9 +21,9 @@
21#include <linux/kernel.h> 21#include <linux/kernel.h>
22#include <linux/device.h> 22#include <linux/device.h>
23#include <linux/errno.h> 23#include <linux/errno.h>
24#include <linux/io.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/io.h>
27#include <asm/irq.h> 27#include <asm/irq.h>
28#include <asm/mach/irq.h> 28#include <asm/mach/irq.h>
29 29
@@ -86,7 +86,6 @@ static void fpga_mask_ack_irq(unsigned int irq)
86 86
87void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc) 87void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
88{ 88{
89 struct irq_desc *d;
90 u32 stat; 89 u32 stat;
91 int fpga_irq; 90 int fpga_irq;
92 91
@@ -99,8 +98,7 @@ void innovator_fpga_IRQ_demux(unsigned int irq, struct irq_desc *desc)
99 (fpga_irq < OMAP_FPGA_IRQ_END) && stat; 98 (fpga_irq < OMAP_FPGA_IRQ_END) && stat;
100 fpga_irq++, stat >>= 1) { 99 fpga_irq++, stat >>= 1) {
101 if (stat & 1) { 100 if (stat & 1) {
102 d = irq_desc + fpga_irq; 101 generic_handle_irq(fpga_irq);
103 desc_handle_irq(fpga_irq, d);
104 } 102 }
105 } 103 }
106} 104}
diff --git a/arch/arm/mach-omap1/id.c b/arch/arm/mach-omap1/id.c
index da13c3e82850..13083d7e692d 100644
--- a/arch/arm/mach-omap1/id.c
+++ b/arch/arm/mach-omap1/id.c
@@ -14,8 +14,7 @@
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/init.h> 16#include <linux/init.h>
17 17#include <linux/io.h>
18#include <asm/io.h>
19 18
20#define OMAP_DIE_ID_0 0xfffe1800 19#define OMAP_DIE_ID_0 0xfffe1800
21#define OMAP_DIE_ID_1 0xfffe1804 20#define OMAP_DIE_ID_1 0xfffe1804
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c
index 2b9750b200ce..b3bd8ca85118 100644
--- a/arch/arm/mach-omap1/io.c
+++ b/arch/arm/mach-omap1/io.c
@@ -11,10 +11,10 @@
11#include <linux/module.h> 11#include <linux/module.h>
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/io.h>
14 15
15#include <asm/tlb.h> 16#include <asm/tlb.h>
16#include <asm/mach/map.h> 17#include <asm/mach/map.h>
17#include <asm/io.h>
18#include <mach/mux.h> 18#include <mach/mux.h>
19#include <mach/tc.h> 19#include <mach/tc.h>
20 20
diff --git a/arch/arm/mach-omap1/irq.c b/arch/arm/mach-omap1/irq.c
index 0ec6c1ec4250..9ad5197075ff 100644
--- a/arch/arm/mach-omap1/irq.c
+++ b/arch/arm/mach-omap1/irq.c
@@ -40,6 +40,7 @@
40#include <linux/module.h> 40#include <linux/module.h>
41#include <linux/sched.h> 41#include <linux/sched.h>
42#include <linux/interrupt.h> 42#include <linux/interrupt.h>
43#include <linux/io.h>
43 44
44#include <mach/hardware.h> 45#include <mach/hardware.h>
45#include <asm/irq.h> 46#include <asm/irq.h>
@@ -47,8 +48,6 @@
47#include <mach/gpio.h> 48#include <mach/gpio.h>
48#include <mach/cpu.h> 49#include <mach/cpu.h>
49 50
50#include <asm/io.h>
51
52#define IRQ_BANK(irq) ((irq) >> 5) 51#define IRQ_BANK(irq) ((irq) >> 5)
53#define IRQ_BIT(irq) ((irq) & 0x1f) 52#define IRQ_BIT(irq) ((irq) & 0x1f)
54 53
diff --git a/arch/arm/mach-omap1/leds-h2p2-debug.c b/arch/arm/mach-omap1/leds-h2p2-debug.c
index 610f51f18741..71fe2cc7f7cf 100644
--- a/arch/arm/mach-omap1/leds-h2p2-debug.c
+++ b/arch/arm/mach-omap1/leds-h2p2-debug.c
@@ -12,8 +12,8 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/kernel_stat.h> 13#include <linux/kernel_stat.h>
14#include <linux/sched.h> 14#include <linux/sched.h>
15#include <linux/io.h>
15 16
16#include <asm/io.h>
17#include <mach/hardware.h> 17#include <mach/hardware.h>
18#include <asm/leds.h> 18#include <asm/leds.h>
19#include <asm/system.h> 19#include <asm/system.h>
diff --git a/arch/arm/mach-omap1/mailbox.c b/arch/arm/mach-omap1/mailbox.c
index af44eab1ed24..59abbf331a96 100644
--- a/arch/arm/mach-omap1/mailbox.c
+++ b/arch/arm/mach-omap1/mailbox.c
@@ -13,9 +13,9 @@
13#include <linux/resource.h> 13#include <linux/resource.h>
14#include <linux/interrupt.h> 14#include <linux/interrupt.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/io.h>
16#include <mach/mailbox.h> 17#include <mach/mailbox.h>
17#include <mach/irqs.h> 18#include <mach/irqs.h>
18#include <asm/io.h>
19 19
20#define MAILBOX_ARM2DSP1 0x00 20#define MAILBOX_ARM2DSP1 0x00
21#define MAILBOX_ARM2DSP1b 0x04 21#define MAILBOX_ARM2DSP1b 0x04
diff --git a/arch/arm/mach-omap1/mcbsp.c b/arch/arm/mach-omap1/mcbsp.c
index 826010d5d014..2baeaeb0c900 100644
--- a/arch/arm/mach-omap1/mcbsp.c
+++ b/arch/arm/mach-omap1/mcbsp.c
@@ -159,6 +159,7 @@ static struct omap_mcbsp_ops omap1_mcbsp_ops = {
159#ifdef CONFIG_ARCH_OMAP730 159#ifdef CONFIG_ARCH_OMAP730
160static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = { 160static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
161 { 161 {
162 .phys_base = OMAP730_MCBSP1_BASE,
162 .virt_base = io_p2v(OMAP730_MCBSP1_BASE), 163 .virt_base = io_p2v(OMAP730_MCBSP1_BASE),
163 .dma_rx_sync = OMAP_DMA_MCBSP1_RX, 164 .dma_rx_sync = OMAP_DMA_MCBSP1_RX,
164 .dma_tx_sync = OMAP_DMA_MCBSP1_TX, 165 .dma_tx_sync = OMAP_DMA_MCBSP1_TX,
@@ -167,6 +168,7 @@ static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
167 .ops = &omap1_mcbsp_ops, 168 .ops = &omap1_mcbsp_ops,
168 }, 169 },
169 { 170 {
171 .phys_base = OMAP730_MCBSP2_BASE,
170 .virt_base = io_p2v(OMAP730_MCBSP2_BASE), 172 .virt_base = io_p2v(OMAP730_MCBSP2_BASE),
171 .dma_rx_sync = OMAP_DMA_MCBSP3_RX, 173 .dma_rx_sync = OMAP_DMA_MCBSP3_RX,
172 .dma_tx_sync = OMAP_DMA_MCBSP3_TX, 174 .dma_tx_sync = OMAP_DMA_MCBSP3_TX,
@@ -184,6 +186,7 @@ static struct omap_mcbsp_platform_data omap730_mcbsp_pdata[] = {
184#ifdef CONFIG_ARCH_OMAP15XX 186#ifdef CONFIG_ARCH_OMAP15XX
185static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = { 187static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
186 { 188 {
189 .phys_base = OMAP1510_MCBSP1_BASE,
187 .virt_base = OMAP1510_MCBSP1_BASE, 190 .virt_base = OMAP1510_MCBSP1_BASE,
188 .dma_rx_sync = OMAP_DMA_MCBSP1_RX, 191 .dma_rx_sync = OMAP_DMA_MCBSP1_RX,
189 .dma_tx_sync = OMAP_DMA_MCBSP1_TX, 192 .dma_tx_sync = OMAP_DMA_MCBSP1_TX,
@@ -193,6 +196,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
193 .clk_name = "mcbsp_clk", 196 .clk_name = "mcbsp_clk",
194 }, 197 },
195 { 198 {
199 .phys_base = OMAP1510_MCBSP2_BASE,
196 .virt_base = io_p2v(OMAP1510_MCBSP2_BASE), 200 .virt_base = io_p2v(OMAP1510_MCBSP2_BASE),
197 .dma_rx_sync = OMAP_DMA_MCBSP2_RX, 201 .dma_rx_sync = OMAP_DMA_MCBSP2_RX,
198 .dma_tx_sync = OMAP_DMA_MCBSP2_TX, 202 .dma_tx_sync = OMAP_DMA_MCBSP2_TX,
@@ -201,6 +205,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
201 .ops = &omap1_mcbsp_ops, 205 .ops = &omap1_mcbsp_ops,
202 }, 206 },
203 { 207 {
208 .phys_base = OMAP1510_MCBSP3_BASE,
204 .virt_base = OMAP1510_MCBSP3_BASE, 209 .virt_base = OMAP1510_MCBSP3_BASE,
205 .dma_rx_sync = OMAP_DMA_MCBSP3_RX, 210 .dma_rx_sync = OMAP_DMA_MCBSP3_RX,
206 .dma_tx_sync = OMAP_DMA_MCBSP3_TX, 211 .dma_tx_sync = OMAP_DMA_MCBSP3_TX,
@@ -219,6 +224,7 @@ static struct omap_mcbsp_platform_data omap15xx_mcbsp_pdata[] = {
219#ifdef CONFIG_ARCH_OMAP16XX 224#ifdef CONFIG_ARCH_OMAP16XX
220static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = { 225static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
221 { 226 {
227 .phys_base = OMAP1610_MCBSP1_BASE,
222 .virt_base = OMAP1610_MCBSP1_BASE, 228 .virt_base = OMAP1610_MCBSP1_BASE,
223 .dma_rx_sync = OMAP_DMA_MCBSP1_RX, 229 .dma_rx_sync = OMAP_DMA_MCBSP1_RX,
224 .dma_tx_sync = OMAP_DMA_MCBSP1_TX, 230 .dma_tx_sync = OMAP_DMA_MCBSP1_TX,
@@ -228,6 +234,7 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
228 .clk_name = "mcbsp_clk", 234 .clk_name = "mcbsp_clk",
229 }, 235 },
230 { 236 {
237 .phys_base = OMAP1610_MCBSP2_BASE,
231 .virt_base = io_p2v(OMAP1610_MCBSP2_BASE), 238 .virt_base = io_p2v(OMAP1610_MCBSP2_BASE),
232 .dma_rx_sync = OMAP_DMA_MCBSP2_RX, 239 .dma_rx_sync = OMAP_DMA_MCBSP2_RX,
233 .dma_tx_sync = OMAP_DMA_MCBSP2_TX, 240 .dma_tx_sync = OMAP_DMA_MCBSP2_TX,
@@ -236,6 +243,7 @@ static struct omap_mcbsp_platform_data omap16xx_mcbsp_pdata[] = {
236 .ops = &omap1_mcbsp_ops, 243 .ops = &omap1_mcbsp_ops,
237 }, 244 },
238 { 245 {
246 .phys_base = OMAP1610_MCBSP3_BASE,
239 .virt_base = OMAP1610_MCBSP3_BASE, 247 .virt_base = OMAP1610_MCBSP3_BASE,
240 .dma_rx_sync = OMAP_DMA_MCBSP3_RX, 248 .dma_rx_sync = OMAP_DMA_MCBSP3_RX,
241 .dma_tx_sync = OMAP_DMA_MCBSP3_TX, 249 .dma_tx_sync = OMAP_DMA_MCBSP3_TX,
diff --git a/arch/arm/mach-omap1/mux.c b/arch/arm/mach-omap1/mux.c
index 898516e362e7..062c905c2ba6 100644
--- a/arch/arm/mach-omap1/mux.c
+++ b/arch/arm/mach-omap1/mux.c
@@ -24,10 +24,11 @@
24 */ 24 */
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/init.h> 26#include <linux/init.h>
27#include <asm/system.h> 27#include <linux/io.h>
28#include <asm/io.h>
29#include <linux/spinlock.h> 28#include <linux/spinlock.h>
30 29
30#include <asm/system.h>
31
31#include <mach/mux.h> 32#include <mach/mux.h>
32 33
33#ifdef CONFIG_OMAP_MUX 34#ifdef CONFIG_OMAP_MUX
diff --git a/arch/arm/mach-omap1/pm.c b/arch/arm/mach-omap1/pm.c
index 63c4ea18b1ca..770d256c790b 100644
--- a/arch/arm/mach-omap1/pm.c
+++ b/arch/arm/mach-omap1/pm.c
@@ -41,8 +41,8 @@
41#include <linux/interrupt.h> 41#include <linux/interrupt.h>
42#include <linux/sysfs.h> 42#include <linux/sysfs.h>
43#include <linux/module.h> 43#include <linux/module.h>
44#include <linux/io.h>
44 45
45#include <asm/io.h>
46#include <asm/irq.h> 46#include <asm/irq.h>
47#include <asm/atomic.h> 47#include <asm/atomic.h>
48#include <asm/mach/time.h> 48#include <asm/mach/time.h>
diff --git a/arch/arm/mach-omap1/serial.c b/arch/arm/mach-omap1/serial.c
index 0e25a996bb4c..aefc967fc003 100644
--- a/arch/arm/mach-omap1/serial.c
+++ b/arch/arm/mach-omap1/serial.c
@@ -18,8 +18,8 @@
18#include <linux/serial_8250.h> 18#include <linux/serial_8250.h>
19#include <linux/serial_reg.h> 19#include <linux/serial_reg.h>
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/io.h>
21 22
22#include <asm/io.h>
23#include <asm/mach-types.h> 23#include <asm/mach-types.h>
24 24
25#include <mach/board.h> 25#include <mach/board.h>
diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c
index e54708595ecf..2cf7e32bd293 100644
--- a/arch/arm/mach-omap1/time.c
+++ b/arch/arm/mach-omap1/time.c
@@ -43,10 +43,10 @@
43#include <linux/err.h> 43#include <linux/err.h>
44#include <linux/clocksource.h> 44#include <linux/clocksource.h>
45#include <linux/clockchips.h> 45#include <linux/clockchips.h>
46#include <linux/io.h>
46 47
47#include <asm/system.h> 48#include <asm/system.h>
48#include <mach/hardware.h> 49#include <mach/hardware.h>
49#include <asm/io.h>
50#include <asm/leds.h> 50#include <asm/leds.h>
51#include <asm/irq.h> 51#include <asm/irq.h>
52#include <asm/mach/irq.h> 52#include <asm/mach/irq.h>
diff --git a/arch/arm/mach-omap1/timer32k.c b/arch/arm/mach-omap1/timer32k.c
index e67760189d14..705367ece174 100644
--- a/arch/arm/mach-omap1/timer32k.c
+++ b/arch/arm/mach-omap1/timer32k.c
@@ -44,10 +44,10 @@
44#include <linux/clk.h> 44#include <linux/clk.h>
45#include <linux/clocksource.h> 45#include <linux/clocksource.h>
46#include <linux/clockchips.h> 46#include <linux/clockchips.h>
47#include <linux/io.h>
47 48
48#include <asm/system.h> 49#include <asm/system.h>
49#include <mach/hardware.h> 50#include <mach/hardware.h>
50#include <asm/io.h>
51#include <asm/leds.h> 51#include <asm/leds.h>
52#include <asm/irq.h> 52#include <asm/irq.h>
53#include <asm/mach/irq.h> 53#include <asm/mach/irq.h>
diff --git a/arch/arm/mach-omap2/board-2430sdp.c b/arch/arm/mach-omap2/board-2430sdp.c
index d4d6385cad7c..24688efaa445 100644
--- a/arch/arm/mach-omap2/board-2430sdp.c
+++ b/arch/arm/mach-omap2/board-2430sdp.c
@@ -21,6 +21,7 @@
21#include <linux/delay.h> 21#include <linux/delay.h>
22#include <linux/err.h> 22#include <linux/err.h>
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <linux/io.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/mach-types.h> 27#include <asm/mach-types.h>
@@ -34,8 +35,6 @@
34#include <mach/common.h> 35#include <mach/common.h>
35#include <mach/gpmc.h> 36#include <mach/gpmc.h>
36 37
37#include <asm/io.h>
38
39 38
40#define SDP2430_FLASH_CS 0 39#define SDP2430_FLASH_CS 0
41#define SDP2430_SMC91X_CS 5 40#define SDP2430_SMC91X_CS 5
@@ -103,7 +102,7 @@ static struct resource sdp2430_smc91x_resources[] = {
103 [1] = { 102 [1] = {
104 .start = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ), 103 .start = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
105 .end = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ), 104 .end = OMAP_GPIO_IRQ(OMAP24XX_ETHR_GPIO_IRQ),
106 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, 105 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
107 }, 106 },
108}; 107};
109 108
diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c
index 9e2624ca70a2..d4e3b6fc4705 100644
--- a/arch/arm/mach-omap2/board-h4.c
+++ b/arch/arm/mach-omap2/board-h4.c
@@ -21,6 +21,7 @@
21#include <linux/input.h> 21#include <linux/input.h>
22#include <linux/err.h> 22#include <linux/err.h>
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <linux/io.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/mach-types.h> 27#include <asm/mach-types.h>
@@ -41,8 +42,6 @@
41#include <mach/dma.h> 42#include <mach/dma.h>
42#include <mach/gpmc.h> 43#include <mach/gpmc.h>
43 44
44#include <asm/io.h>
45
46#define H4_FLASH_CS 0 45#define H4_FLASH_CS 0
47#define H4_SMC91X_CS 1 46#define H4_SMC91X_CS 1
48 47
diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index 1d891e4a6933..97cde3d3611d 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -21,9 +21,8 @@
21#include <linux/errno.h> 21#include <linux/errno.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <asm/bitops.h> 24#include <linux/io.h>
25 25#include <linux/bitops.h>
26#include <asm/io.h>
27 26
28#include <mach/clock.h> 27#include <mach/clock.h>
29#include <mach/sram.h> 28#include <mach/sram.h>
diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
index 295e671e9cfd..d382eb0184ac 100644
--- a/arch/arm/mach-omap2/clock24xx.c
+++ b/arch/arm/mach-omap2/clock24xx.c
@@ -24,14 +24,13 @@
24#include <linux/errno.h> 24#include <linux/errno.h>
25#include <linux/delay.h> 25#include <linux/delay.h>
26#include <linux/clk.h> 26#include <linux/clk.h>
27
28#include <linux/io.h> 27#include <linux/io.h>
29#include <linux/cpufreq.h> 28#include <linux/cpufreq.h>
29#include <linux/bitops.h>
30 30
31#include <mach/clock.h> 31#include <mach/clock.h>
32#include <mach/sram.h> 32#include <mach/sram.h>
33#include <asm/div64.h> 33#include <asm/div64.h>
34#include <asm/bitops.h>
35 34
36#include "memory.h" 35#include "memory.h"
37#include "clock.h" 36#include "clock.h"
diff --git a/arch/arm/mach-omap2/clock34xx.c b/arch/arm/mach-omap2/clock34xx.c
index 3ff74952f835..e5b475f21081 100644
--- a/arch/arm/mach-omap2/clock34xx.c
+++ b/arch/arm/mach-omap2/clock34xx.c
@@ -25,11 +25,11 @@
25#include <linux/clk.h> 25#include <linux/clk.h>
26#include <linux/io.h> 26#include <linux/io.h>
27#include <linux/limits.h> 27#include <linux/limits.h>
28#include <linux/bitops.h>
28 29
29#include <mach/clock.h> 30#include <mach/clock.h>
30#include <mach/sram.h> 31#include <mach/sram.h>
31#include <asm/div64.h> 32#include <asm/div64.h>
32#include <asm/bitops.h>
33 33
34#include "memory.h" 34#include "memory.h"
35#include "clock.h" 35#include "clock.h"
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 7a7f02559075..2ee954a0bc7c 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -13,9 +13,9 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/io.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18#include <asm/io.h>
19#include <asm/mach-types.h> 19#include <asm/mach-types.h>
20#include <asm/mach/map.h> 20#include <asm/mach/map.h>
21 21
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
index f51d69bc457d..af1081a0b27c 100644
--- a/arch/arm/mach-omap2/gpmc.c
+++ b/arch/arm/mach-omap2/gpmc.c
@@ -15,8 +15,8 @@
15#include <linux/clk.h> 15#include <linux/clk.h>
16#include <linux/ioport.h> 16#include <linux/ioport.h>
17#include <linux/spinlock.h> 17#include <linux/spinlock.h>
18#include <linux/io.h>
18 19
19#include <asm/io.h>
20#include <asm/mach-types.h> 20#include <asm/mach-types.h>
21#include <mach/gpmc.h> 21#include <mach/gpmc.h>
22 22
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
index a5d4526ac4d6..209177c7f22f 100644
--- a/arch/arm/mach-omap2/id.c
+++ b/arch/arm/mach-omap2/id.c
@@ -14,8 +14,9 @@
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/io.h>
17 18
18#include <asm/io.h> 19#include <asm/cputype.h>
19 20
20#include <mach/control.h> 21#include <mach/control.h>
21#include <mach/cpu.h> 22#include <mach/cpu.h>
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 987351f07d7b..7c3d6289c05f 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -15,9 +15,9 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/io.h>
18 19
19#include <asm/tlb.h> 20#include <asm/tlb.h>
20#include <asm/io.h>
21 21
22#include <asm/mach/map.h> 22#include <asm/mach/map.h>
23 23
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 9ef15b31d8fc..196a9565a8dc 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -13,10 +13,10 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16#include <linux/io.h>
16#include <mach/hardware.h> 17#include <mach/hardware.h>
17#include <asm/mach/irq.h> 18#include <asm/mach/irq.h>
18#include <asm/irq.h> 19#include <asm/irq.h>
19#include <asm/io.h>
20 20
21#define INTC_REVISION 0x0000 21#define INTC_REVISION 0x0000
22#define INTC_SYSCONFIG 0x0010 22#define INTC_SYSCONFIG 0x0010
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c
index a480b96948e4..32b7af3c610b 100644
--- a/arch/arm/mach-omap2/mailbox.c
+++ b/arch/arm/mach-omap2/mailbox.c
@@ -14,9 +14,9 @@
14#include <linux/clk.h> 14#include <linux/clk.h>
15#include <linux/err.h> 15#include <linux/err.h>
16#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/io.h>
17#include <mach/mailbox.h> 18#include <mach/mailbox.h>
18#include <mach/irqs.h> 19#include <mach/irqs.h>
19#include <asm/io.h>
20 20
21#define MAILBOX_REVISION 0x00 21#define MAILBOX_REVISION 0x00
22#define MAILBOX_SYSCONFIG 0x10 22#define MAILBOX_SYSCONFIG 0x10
diff --git a/arch/arm/mach-omap2/mcbsp.c b/arch/arm/mach-omap2/mcbsp.c
index 27eb6e3ca926..b261f1f80b5e 100644
--- a/arch/arm/mach-omap2/mcbsp.c
+++ b/arch/arm/mach-omap2/mcbsp.c
@@ -134,6 +134,7 @@ static struct omap_mcbsp_ops omap2_mcbsp_ops = {
134#ifdef CONFIG_ARCH_OMAP24XX 134#ifdef CONFIG_ARCH_OMAP24XX
135static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = { 135static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = {
136 { 136 {
137 .phys_base = OMAP24XX_MCBSP1_BASE,
137 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP1_BASE), 138 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP1_BASE),
138 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX, 139 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX,
139 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX, 140 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX,
@@ -143,6 +144,7 @@ static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = {
143 .clk_name = "mcbsp_clk", 144 .clk_name = "mcbsp_clk",
144 }, 145 },
145 { 146 {
147 .phys_base = OMAP24XX_MCBSP2_BASE,
146 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP2_BASE), 148 .virt_base = IO_ADDRESS(OMAP24XX_MCBSP2_BASE),
147 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX, 149 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX,
148 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX, 150 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX,
@@ -161,6 +163,7 @@ static struct omap_mcbsp_platform_data omap24xx_mcbsp_pdata[] = {
161#ifdef CONFIG_ARCH_OMAP34XX 163#ifdef CONFIG_ARCH_OMAP34XX
162static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = { 164static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
163 { 165 {
166 .phys_base = OMAP34XX_MCBSP1_BASE,
164 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP1_BASE), 167 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP1_BASE),
165 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX, 168 .dma_rx_sync = OMAP24XX_DMA_MCBSP1_RX,
166 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX, 169 .dma_tx_sync = OMAP24XX_DMA_MCBSP1_TX,
@@ -170,6 +173,7 @@ static struct omap_mcbsp_platform_data omap34xx_mcbsp_pdata[] = {
170 .clk_name = "mcbsp_clk", 173 .clk_name = "mcbsp_clk",
171 }, 174 },
172 { 175 {
176 .phys_base = OMAP34XX_MCBSP2_BASE,
173 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP2_BASE), 177 .virt_base = IO_ADDRESS(OMAP34XX_MCBSP2_BASE),
174 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX, 178 .dma_rx_sync = OMAP24XX_DMA_MCBSP2_RX,
175 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX, 179 .dma_tx_sync = OMAP24XX_DMA_MCBSP2_TX,
diff --git a/arch/arm/mach-omap2/memory.c b/arch/arm/mach-omap2/memory.c
index 6b49cc9cbdcb..ab1462b02e6e 100644
--- a/arch/arm/mach-omap2/memory.c
+++ b/arch/arm/mach-omap2/memory.c
@@ -21,8 +21,7 @@
21#include <linux/errno.h> 21#include <linux/errno.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/clk.h> 23#include <linux/clk.h>
24 24#include <linux/io.h>
25#include <asm/io.h>
26 25
27#include <mach/common.h> 26#include <mach/common.h>
28#include <mach/clock.h> 27#include <mach/clock.h>
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
index 443d07fef7f3..6b7d672058b9 100644
--- a/arch/arm/mach-omap2/mux.c
+++ b/arch/arm/mach-omap2/mux.c
@@ -25,10 +25,11 @@
25 */ 25 */
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <asm/system.h> 28#include <linux/io.h>
29#include <asm/io.h>
30#include <linux/spinlock.h> 29#include <linux/spinlock.h>
31 30
31#include <asm/system.h>
32
32#include <mach/control.h> 33#include <mach/control.h>
33#include <mach/mux.h> 34#include <mach/mux.h>
34 35
diff --git a/arch/arm/mach-omap2/pm.c b/arch/arm/mach-omap2/pm.c
index 8671e1079ab5..55361c16c9d9 100644
--- a/arch/arm/mach-omap2/pm.c
+++ b/arch/arm/mach-omap2/pm.c
@@ -24,8 +24,8 @@
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/delay.h> 25#include <linux/delay.h>
26#include <linux/clk.h> 26#include <linux/clk.h>
27#include <linux/io.h>
27 28
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/atomic.h> 30#include <asm/atomic.h>
31#include <asm/mach/time.h> 31#include <asm/mach/time.h>
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
index adc8a26a8fb0..7d9444adc5df 100644
--- a/arch/arm/mach-omap2/serial.c
+++ b/arch/arm/mach-omap2/serial.c
@@ -17,8 +17,7 @@
17#include <linux/serial_8250.h> 17#include <linux/serial_8250.h>
18#include <linux/serial_reg.h> 18#include <linux/serial_reg.h>
19#include <linux/clk.h> 19#include <linux/clk.h>
20 20#include <linux/io.h>
21#include <asm/io.h>
22 21
23#include <mach/common.h> 22#include <mach/common.h>
24#include <mach/board.h> 23#include <mach/board.h>
diff --git a/arch/arm/mach-orion5x/addr-map.c b/arch/arm/mach-orion5x/addr-map.c
index bea37972120a..719957e05d9e 100644
--- a/arch/arm/mach-orion5x/addr-map.c
+++ b/arch/arm/mach-orion5x/addr-map.c
@@ -13,8 +13,8 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/mbus.h> 15#include <linux/mbus.h>
16#include <linux/io.h>
16#include <mach/hardware.h> 17#include <mach/hardware.h>
17#include <asm/io.h>
18#include "common.h" 18#include "common.h"
19 19
20/* 20/*
diff --git a/arch/arm/mach-orion5x/common.h b/arch/arm/mach-orion5x/common.h
index af9588d23f29..1f8b2da676a5 100644
--- a/arch/arm/mach-orion5x/common.h
+++ b/arch/arm/mach-orion5x/common.h
@@ -43,6 +43,7 @@ struct pci_bus;
43struct pci_sys_data; 43struct pci_sys_data;
44 44
45void orion5x_pcie_id(u32 *dev, u32 *rev); 45void orion5x_pcie_id(u32 *dev, u32 *rev);
46void orion5x_pci_disable(void);
46void orion5x_pci_set_cardbus_mode(void); 47void orion5x_pci_set_cardbus_mode(void);
47int orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys); 48int orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys);
48struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys); 49struct pci_bus *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys);
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c
index 1a1d84b80a65..b38c65ccfb15 100644
--- a/arch/arm/mach-orion5x/dns323-setup.c
+++ b/arch/arm/mach-orion5x/dns323-setup.c
@@ -245,12 +245,8 @@ static struct orion5x_mpp_mode dns323_mpp_modes[] __initdata = {
245static struct i2c_board_info __initdata dns323_i2c_devices[] = { 245static struct i2c_board_info __initdata dns323_i2c_devices[] = {
246 { 246 {
247 I2C_BOARD_INFO("g760a", 0x3e), 247 I2C_BOARD_INFO("g760a", 0x3e),
248#if 0
249 /* this entry requires the new-style driver model lm75 driver,
250 * for the meantime "insmod lm75.ko force_lm75=0,0x48" is needed */
251 }, { 248 }, {
252 I2C_BOARD_INFO("g751", 0x48), 249 I2C_BOARD_INFO("lm75", 0x48),
253#endif
254 }, { 250 }, {
255 I2C_BOARD_INFO("m41t80", 0x68), 251 I2C_BOARD_INFO("m41t80", 0x68),
256 }, 252 },
diff --git a/arch/arm/mach-orion5x/gpio.c b/arch/arm/mach-orion5x/gpio.c
index cd8a16f67d2b..fc419868e39f 100644
--- a/arch/arm/mach-orion5x/gpio.c
+++ b/arch/arm/mach-orion5x/gpio.c
@@ -15,8 +15,8 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/spinlock.h> 16#include <linux/spinlock.h>
17#include <linux/bitops.h> 17#include <linux/bitops.h>
18#include <linux/io.h>
18#include <asm/gpio.h> 19#include <asm/gpio.h>
19#include <asm/io.h>
20#include <mach/orion5x.h> 20#include <mach/orion5x.h>
21#include "common.h" 21#include "common.h"
22 22
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c
index 2545ff9e5830..632a36f5cf14 100644
--- a/arch/arm/mach-orion5x/irq.c
+++ b/arch/arm/mach-orion5x/irq.c
@@ -13,8 +13,8 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/irq.h> 15#include <linux/irq.h>
16#include <linux/io.h>
16#include <asm/gpio.h> 17#include <asm/gpio.h>
17#include <asm/io.h>
18#include <mach/orion5x.h> 18#include <mach/orion5x.h>
19#include <plat/irq.h> 19#include <plat/irq.h>
20#include "common.h" 20#include "common.h"
@@ -162,7 +162,7 @@ static void orion5x_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
162 polarity ^= 1 << pin; 162 polarity ^= 1 << pin;
163 writel(polarity, GPIO_IN_POL); 163 writel(polarity, GPIO_IN_POL);
164 } 164 }
165 desc_handle_irq(irq, desc); 165 generic_handle_irq(irq);
166 } 166 }
167 } 167 }
168} 168}
diff --git a/arch/arm/mach-orion5x/kurobox_pro-setup.c b/arch/arm/mach-orion5x/kurobox_pro-setup.c
index 171ffaf98ddf..c5bd54d8aa0c 100644
--- a/arch/arm/mach-orion5x/kurobox_pro-setup.c
+++ b/arch/arm/mach-orion5x/kurobox_pro-setup.c
@@ -146,8 +146,10 @@ static struct hw_pci kurobox_pro_pci __initdata = {
146 146
147static int __init kurobox_pro_pci_init(void) 147static int __init kurobox_pro_pci_init(void)
148{ 148{
149 if (machine_is_kurobox_pro()) 149 if (machine_is_kurobox_pro()) {
150 orion5x_pci_disable();
150 pci_common_init(&kurobox_pro_pci); 151 pci_common_init(&kurobox_pro_pci);
152 }
151 153
152 return 0; 154 return 0;
153} 155}
diff --git a/arch/arm/mach-orion5x/mpp.c b/arch/arm/mach-orion5x/mpp.c
index c04ab0e16ea1..640ea2a3fc6c 100644
--- a/arch/arm/mach-orion5x/mpp.c
+++ b/arch/arm/mach-orion5x/mpp.c
@@ -11,8 +11,8 @@
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/mbus.h> 13#include <linux/mbus.h>
14#include <linux/io.h>
14#include <mach/hardware.h> 15#include <mach/hardware.h>
15#include <asm/io.h>
16#include "common.h" 16#include "common.h"
17#include "mpp.h" 17#include "mpp.h"
18 18
diff --git a/arch/arm/mach-orion5x/pci.c b/arch/arm/mach-orion5x/pci.c
index fbceecc4b7ec..a7b7d77b1b09 100644
--- a/arch/arm/mach-orion5x/pci.c
+++ b/arch/arm/mach-orion5x/pci.c
@@ -541,6 +541,13 @@ static void __devinit rc_pci_fixup(struct pci_dev *dev)
541} 541}
542DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup); 542DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL, PCI_ANY_ID, rc_pci_fixup);
543 543
544static int orion5x_pci_disabled __initdata;
545
546void __init orion5x_pci_disable(void)
547{
548 orion5x_pci_disabled = 1;
549}
550
544void __init orion5x_pci_set_cardbus_mode(void) 551void __init orion5x_pci_set_cardbus_mode(void)
545{ 552{
546 orion5x_pci_cardbus_mode = 1; 553 orion5x_pci_cardbus_mode = 1;
@@ -553,7 +560,7 @@ int __init orion5x_pci_sys_setup(int nr, struct pci_sys_data *sys)
553 if (nr == 0) { 560 if (nr == 0) {
554 orion_pcie_set_local_bus_nr(PCIE_BASE, sys->busnr); 561 orion_pcie_set_local_bus_nr(PCIE_BASE, sys->busnr);
555 ret = pcie_setup(sys); 562 ret = pcie_setup(sys);
556 } else if (nr == 1) { 563 } else if (nr == 1 && !orion5x_pci_disabled) {
557 orion5x_pci_set_bus_nr(sys->busnr); 564 orion5x_pci_set_bus_nr(sys->busnr);
558 ret = pci_setup(sys); 565 ret = pci_setup(sys);
559 } 566 }
@@ -567,7 +574,7 @@ struct pci_bus __init *orion5x_pci_sys_scan_bus(int nr, struct pci_sys_data *sys
567 574
568 if (nr == 0) { 575 if (nr == 0) {
569 bus = pci_scan_bus(sys->busnr, &pcie_ops, sys); 576 bus = pci_scan_bus(sys->busnr, &pcie_ops, sys);
570 } else if (nr == 1) { 577 } else if (nr == 1 && !orion5x_pci_disabled) {
571 bus = pci_scan_bus(sys->busnr, &pci_ops, sys); 578 bus = pci_scan_bus(sys->busnr, &pci_ops, sys);
572 } else { 579 } else {
573 bus = NULL; 580 bus = NULL;
@@ -584,7 +591,7 @@ int __init orion5x_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
584 /* 591 /*
585 * PCIe endpoint? 592 * PCIe endpoint?
586 */ 593 */
587 if (bus < orion5x_pci_local_bus_nr()) 594 if (orion5x_pci_disabled || bus < orion5x_pci_local_bus_nr())
588 return IRQ_ORION5X_PCIE0_INT; 595 return IRQ_ORION5X_PCIE0_INT;
589 596
590 return -1; 597 return -1;
diff --git a/arch/arm/mach-orion5x/ts209-setup.c b/arch/arm/mach-orion5x/ts209-setup.c
index dd657163cd8d..9d6890514199 100644
--- a/arch/arm/mach-orion5x/ts209-setup.c
+++ b/arch/arm/mach-orion5x/ts209-setup.c
@@ -287,6 +287,10 @@ static void __init qnap_ts209_init(void)
287 /* 287 /*
288 * Configure peripherals. 288 * Configure peripherals.
289 */ 289 */
290 orion5x_setup_dev_boot_win(QNAP_TS209_NOR_BOOT_BASE,
291 QNAP_TS209_NOR_BOOT_SIZE);
292 platform_device_register(&qnap_ts209_nor_flash);
293
290 orion5x_ehci0_init(); 294 orion5x_ehci0_init();
291 orion5x_ehci1_init(); 295 orion5x_ehci1_init();
292 qnap_tsx09_find_mac_addr(QNAP_TS209_NOR_BOOT_BASE + 296 qnap_tsx09_find_mac_addr(QNAP_TS209_NOR_BOOT_BASE +
@@ -296,12 +300,9 @@ static void __init qnap_ts209_init(void)
296 orion5x_i2c_init(); 300 orion5x_i2c_init();
297 orion5x_sata_init(&qnap_ts209_sata_data); 301 orion5x_sata_init(&qnap_ts209_sata_data);
298 orion5x_uart0_init(); 302 orion5x_uart0_init();
303 orion5x_uart1_init();
299 orion5x_xor_init(); 304 orion5x_xor_init();
300 305
301 orion5x_setup_dev_boot_win(QNAP_TS209_NOR_BOOT_BASE,
302 QNAP_TS209_NOR_BOOT_SIZE);
303 platform_device_register(&qnap_ts209_nor_flash);
304
305 platform_device_register(&qnap_ts209_button_device); 306 platform_device_register(&qnap_ts209_button_device);
306 307
307 /* Get RTC IRQ and register the chip */ 308 /* Get RTC IRQ and register the chip */
diff --git a/arch/arm/mach-orion5x/ts409-setup.c b/arch/arm/mach-orion5x/ts409-setup.c
index b27d2b762081..d85588ac7ef8 100644
--- a/arch/arm/mach-orion5x/ts409-setup.c
+++ b/arch/arm/mach-orion5x/ts409-setup.c
@@ -278,6 +278,10 @@ static void __init qnap_ts409_init(void)
278 /* 278 /*
279 * Configure peripherals. 279 * Configure peripherals.
280 */ 280 */
281 orion5x_setup_dev_boot_win(QNAP_TS409_NOR_BOOT_BASE,
282 QNAP_TS409_NOR_BOOT_SIZE);
283 platform_device_register(&qnap_ts409_nor_flash);
284
281 orion5x_ehci0_init(); 285 orion5x_ehci0_init();
282 qnap_tsx09_find_mac_addr(QNAP_TS409_NOR_BOOT_BASE + 286 qnap_tsx09_find_mac_addr(QNAP_TS409_NOR_BOOT_BASE +
283 qnap_ts409_partitions[5].offset, 287 qnap_ts409_partitions[5].offset,
@@ -285,10 +289,7 @@ static void __init qnap_ts409_init(void)
285 orion5x_eth_init(&qnap_tsx09_eth_data); 289 orion5x_eth_init(&qnap_tsx09_eth_data);
286 orion5x_i2c_init(); 290 orion5x_i2c_init();
287 orion5x_uart0_init(); 291 orion5x_uart0_init();
288 292 orion5x_uart1_init();
289 orion5x_setup_dev_boot_win(QNAP_TS409_NOR_BOOT_BASE,
290 QNAP_TS409_NOR_BOOT_SIZE);
291 platform_device_register(&qnap_ts409_nor_flash);
292 293
293 platform_device_register(&qnap_ts409_button_device); 294 platform_device_register(&qnap_ts409_button_device);
294 295
diff --git a/arch/arm/mach-pnx4008/clock.c b/arch/arm/mach-pnx4008/clock.c
index 24d036a24a72..898c0e88acbc 100644
--- a/arch/arm/mach-pnx4008/clock.c
+++ b/arch/arm/mach-pnx4008/clock.c
@@ -20,9 +20,9 @@
20#include <linux/device.h> 20#include <linux/device.h>
21#include <linux/err.h> 21#include <linux/err.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/io.h>
23 24
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/io.h>
26 26
27#include <mach/clock.h> 27#include <mach/clock.h>
28#include "clock.h" 28#include "clock.h"
diff --git a/arch/arm/mach-pnx4008/core.c b/arch/arm/mach-pnx4008/core.c
index 3ba46ede9bbd..45734bb880a8 100644
--- a/arch/arm/mach-pnx4008/core.c
+++ b/arch/arm/mach-pnx4008/core.c
@@ -25,9 +25,9 @@
25#include <linux/serial_8250.h> 25#include <linux/serial_8250.h>
26#include <linux/device.h> 26#include <linux/device.h>
27#include <linux/spi/spi.h> 27#include <linux/spi/spi.h>
28#include <linux/io.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/io.h>
31#include <asm/setup.h> 31#include <asm/setup.h>
32#include <asm/mach-types.h> 32#include <asm/mach-types.h>
33#include <asm/pgtable.h> 33#include <asm/pgtable.h>
diff --git a/arch/arm/mach-pnx4008/dma.c b/arch/arm/mach-pnx4008/dma.c
index 833c56be7344..ac2f70eddb9e 100644
--- a/arch/arm/mach-pnx4008/dma.c
+++ b/arch/arm/mach-pnx4008/dma.c
@@ -21,12 +21,12 @@
21#include <linux/err.h> 21#include <linux/err.h>
22#include <linux/dma-mapping.h> 22#include <linux/dma-mapping.h>
23#include <linux/clk.h> 23#include <linux/clk.h>
24#include <linux/io.h>
24 25
25#include <asm/system.h> 26#include <asm/system.h>
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/dma.h> 28#include <asm/dma.h>
28#include <asm/dma-mapping.h> 29#include <asm/dma-mapping.h>
29#include <asm/io.h>
30#include <asm/mach/dma.h> 30#include <asm/mach/dma.h>
31#include <mach/clock.h> 31#include <mach/clock.h>
32 32
diff --git a/arch/arm/mach-pnx4008/gpio.c b/arch/arm/mach-pnx4008/gpio.c
index fb51f7279e95..015cc21d5f55 100644
--- a/arch/arm/mach-pnx4008/gpio.c
+++ b/arch/arm/mach-pnx4008/gpio.c
@@ -17,7 +17,7 @@
17#include <linux/types.h> 17#include <linux/types.h>
18#include <linux/kernel.h> 18#include <linux/kernel.h>
19#include <linux/module.h> 19#include <linux/module.h>
20#include <asm/io.h> 20#include <linux/io.h>
21#include <mach/platform.h> 21#include <mach/platform.h>
22#include <mach/gpio.h> 22#include <mach/gpio.h>
23 23
diff --git a/arch/arm/mach-pnx4008/include/mach/system.h b/arch/arm/mach-pnx4008/include/mach/system.h
index 8985a4622b8c..e12e7abfcbcf 100644
--- a/arch/arm/mach-pnx4008/include/mach/system.h
+++ b/arch/arm/mach-pnx4008/include/mach/system.h
@@ -21,8 +21,8 @@
21#ifndef __ASM_ARCH_SYSTEM_H 21#ifndef __ASM_ARCH_SYSTEM_H
22#define __ASM_ARCH_SYSTEM_H 22#define __ASM_ARCH_SYSTEM_H
23 23
24#include <linux/io.h>
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/io.h>
26#include <mach/platform.h> 26#include <mach/platform.h>
27 27
28static void arch_idle(void) 28static void arch_idle(void)
diff --git a/arch/arm/mach-pnx4008/include/mach/timex.h b/arch/arm/mach-pnx4008/include/mach/timex.h
index 956fbd8e977c..5ff0196c0f16 100644
--- a/arch/arm/mach-pnx4008/include/mach/timex.h
+++ b/arch/arm/mach-pnx4008/include/mach/timex.h
@@ -14,8 +14,8 @@
14#ifndef __PNX4008_TIMEX_H 14#ifndef __PNX4008_TIMEX_H
15#define __PNX4008_TIMEX_H 15#define __PNX4008_TIMEX_H
16 16
17#include <linux/io.h>
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18#include <asm/io.h>
19 19
20#define CLOCK_TICK_RATE 1000000 20#define CLOCK_TICK_RATE 1000000
21 21
diff --git a/arch/arm/mach-pnx4008/irq.c b/arch/arm/mach-pnx4008/irq.c
index 5c4f55af5d4b..a9ce02b4bf17 100644
--- a/arch/arm/mach-pnx4008/irq.c
+++ b/arch/arm/mach-pnx4008/irq.c
@@ -23,8 +23,8 @@
23#include <linux/ioport.h> 23#include <linux/ioport.h>
24#include <linux/device.h> 24#include <linux/device.h>
25#include <linux/irq.h> 25#include <linux/irq.h>
26#include <linux/io.h>
26#include <mach/hardware.h> 27#include <mach/hardware.h>
27#include <asm/io.h>
28#include <asm/setup.h> 28#include <asm/setup.h>
29#include <asm/pgtable.h> 29#include <asm/pgtable.h>
30#include <asm/page.h> 30#include <asm/page.h>
diff --git a/arch/arm/mach-pnx4008/pm.c b/arch/arm/mach-pnx4008/pm.c
index f970906d8848..b3d8d53e32ef 100644
--- a/arch/arm/mach-pnx4008/pm.c
+++ b/arch/arm/mach-pnx4008/pm.c
@@ -18,8 +18,8 @@
18#include <linux/suspend.h> 18#include <linux/suspend.h>
19#include <linux/delay.h> 19#include <linux/delay.h>
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/io.h>
21 22
22#include <asm/io.h>
23#include <asm/cacheflush.h> 23#include <asm/cacheflush.h>
24#include <mach/pm.h> 24#include <mach/pm.h>
25#include <mach/clock.h> 25#include <mach/clock.h>
diff --git a/arch/arm/mach-pnx4008/serial.c b/arch/arm/mach-pnx4008/serial.c
index 9be84bbb30e8..f40961e51914 100644
--- a/arch/arm/mach-pnx4008/serial.c
+++ b/arch/arm/mach-pnx4008/serial.c
@@ -12,8 +12,7 @@
12 12
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/types.h> 14#include <linux/types.h>
15 15#include <linux/io.h>
16#include <asm/io.h>
17 16
18#include <mach/platform.h> 17#include <mach/platform.h>
19#include <mach/hardware.h> 18#include <mach/hardware.h>
diff --git a/arch/arm/mach-pnx4008/time.c b/arch/arm/mach-pnx4008/time.c
index 180975244f96..fc0ba183fe12 100644
--- a/arch/arm/mach-pnx4008/time.c
+++ b/arch/arm/mach-pnx4008/time.c
@@ -22,10 +22,10 @@
22#include <linux/time.h> 22#include <linux/time.h>
23#include <linux/timex.h> 23#include <linux/timex.h>
24#include <linux/irq.h> 24#include <linux/irq.h>
25#include <linux/io.h>
25 26
26#include <asm/system.h> 27#include <asm/system.h>
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/leds.h> 29#include <asm/leds.h>
30#include <asm/mach/time.h> 30#include <asm/mach/time.h>
31#include <asm/errno.h> 31#include <asm/errno.h>
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index e8ee7ec9ff6d..f27f6b3d6e6f 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -38,16 +38,23 @@ config ARCH_LUBBOCK
38 bool "Intel DBPXA250 Development Platform" 38 bool "Intel DBPXA250 Development Platform"
39 select PXA25x 39 select PXA25x
40 select SA1111 40 select SA1111
41 select PXA_HAVE_BOARD_IRQS
41 42
42config MACH_LOGICPD_PXA270 43config MACH_LOGICPD_PXA270
43 bool "LogicPD PXA270 Card Engine Development Platform" 44 bool "LogicPD PXA270 Card Engine Development Platform"
44 select PXA27x 45 select PXA27x
45 select HAVE_PWM 46 select HAVE_PWM
47 select PXA_HAVE_BOARD_IRQS
46 48
47config MACH_MAINSTONE 49config MACH_MAINSTONE
48 bool "Intel HCDDBBVA0 Development Platform" 50 bool "Intel HCDDBBVA0 Development Platform"
49 select PXA27x 51 select PXA27x
50 select HAVE_PWM 52 select HAVE_PWM
53 select PXA_HAVE_BOARD_IRQS
54
55config MACH_MP900C
56 bool "Nec Mobilepro 900/c"
57 select PXA25x
51 58
52config ARCH_PXA_IDP 59config ARCH_PXA_IDP
53 bool "Accelent Xscale IDP" 60 bool "Accelent Xscale IDP"
@@ -114,10 +121,21 @@ config MACH_TOSA
114 bool "Enable Sharp SL-6000x (Tosa) Support" 121 bool "Enable Sharp SL-6000x (Tosa) Support"
115 depends on PXA_SHARPSL 122 depends on PXA_SHARPSL
116 select PXA25x 123 select PXA25x
124 select PXA_HAVE_BOARD_IRQS
125
126config ARCH_VIPER
127 bool "Arcom/Eurotech VIPER SBC"
128 select PXA25x
129 select ISA
130 select I2C_GPIO
131 select HAVE_PWM
132 select PXA_HAVE_BOARD_IRQS
133 select PXA_HAVE_ISA_IRQS
117 134
118config ARCH_PXA_ESERIES 135config ARCH_PXA_ESERIES
119 bool "PXA based Toshiba e-series PDAs" 136 bool "PXA based Toshiba e-series PDAs"
120 select PXA25x 137 select PXA25x
138 select PXA_HAVE_BOARD_IRQS
121 139
122config MACH_E330 140config MACH_E330
123 bool "Toshiba e330" 141 bool "Toshiba e330"
@@ -170,13 +188,41 @@ config MACH_E800
170 Say Y here if you intend to run this kernel on a Toshiba 188 Say Y here if you intend to run this kernel on a Toshiba
171 e800 family PDA. 189 e800 family PDA.
172 190
191config TRIZEPS_PXA
192 bool "PXA based Keith und Koep Trizeps DIMM-Modules"
193
173config MACH_TRIZEPS4 194config MACH_TRIZEPS4
174 bool "Keith und Koep Trizeps4 DIMM-Module" 195 bool "Keith und Koep Trizeps4 DIMM-Module"
196 depends on TRIZEPS_PXA
197 select TRIZEPS_PCMCIA
175 select PXA27x 198 select PXA27x
176 199
177config MACH_TRIZEPS4_CONXS 200config MACH_TRIZEPS4WL
201 bool "Keith und Koep Trizeps4-WL DIMM-Module"
202 depends on TRIZEPS_PXA
203 select TRIZEPS_PCMCIA
204 select PXA27x
205 select PXA_SSP
206
207choice
208 prompt "Select base board for Trizeps module"
209 depends on TRIZEPS_PXA
210
211config MACH_TRIZEPS_CONXS
178 bool "ConXS Eval Board" 212 bool "ConXS Eval Board"
179 depends on MACH_TRIZEPS4 213
214config MACH_TRIZEPS_UCONXS
215 bool "uConXS Eval Board"
216
217config MACH_TRIZEPS_ANY
218 bool "another Board"
219
220endchoice
221
222config TRIZEPS_PCMCIA
223 bool
224 help
225 Enable PCMCIA support for Trizeps modules
180 226
181config MACH_EM_X270 227config MACH_EM_X270
182 bool "CompuLab EM-x270 platform" 228 bool "CompuLab EM-x270 platform"
@@ -189,6 +235,7 @@ config MACH_COLIBRI
189config MACH_ZYLONITE 235config MACH_ZYLONITE
190 bool "PXA3xx Development Platform (aka Zylonite)" 236 bool "PXA3xx Development Platform (aka Zylonite)"
191 select PXA3xx 237 select PXA3xx
238 select PXA_SSP
192 select HAVE_PWM 239 select HAVE_PWM
193 240
194config MACH_LITTLETON 241config MACH_LITTLETON
@@ -207,20 +254,42 @@ config MACH_SAAR
207 select PXA930 254 select PXA930
208 255
209config MACH_ARMCORE 256config MACH_ARMCORE
210 bool "CompuLab CM-X270 modules" 257 bool "CompuLab CM-X255/CM-X270 modules"
211 select PXA27x 258 select PXA27x
212 select IWMMXT 259 select IWMMXT
260 select ZONE_DMA if PCI
261 select PXA25x
262 select PXA_SSP
263
264config MACH_CM_X300
265 bool "CompuLab CM-X300 modules"
266 select PXA3xx
267 select CPU_PXA300
213 268
214config MACH_MAGICIAN 269config MACH_MAGICIAN
215 bool "Enable HTC Magician Support" 270 bool "Enable HTC Magician Support"
216 select PXA27x 271 select PXA27x
217 select IWMMXT 272 select IWMMXT
273 select PXA_HAVE_BOARD_IRQS
274
275config MACH_MIOA701
276 bool "Mitac Mio A701 Support"
277 select PXA27x
278 select IWMMXT
279 select LEDS_GPIO
280 select HAVE_PWM
281 select GPIO_SYSFS
282 help
283 Say Y here if you intend to run this kernel on a
284 MIO A701. Currently there is only basic support
285 for this PDA.
218 286
219config MACH_PCM027 287config MACH_PCM027
220 bool "Phytec phyCORE-PXA270 CPU module (PCM-027)" 288 bool "Phytec phyCORE-PXA270 CPU module (PCM-027)"
221 select PXA27x 289 select PXA27x
222 select IWMMXT 290 select IWMMXT
223 select PXA_SSP 291 select PXA_SSP
292 select PXA_HAVE_BOARD_IRQS
224 293
225config ARCH_PXA_PALM 294config ARCH_PXA_PALM
226 bool "PXA based Palm PDAs" 295 bool "PXA based Palm PDAs"
@@ -236,6 +305,16 @@ config MACH_PALMTX
236 Say Y here if you intend to run this kernel on a Palm T|X 305 Say Y here if you intend to run this kernel on a Palm T|X
237 handheld computer. 306 handheld computer.
238 307
308config MACH_PALMZ72
309 bool "Palm Zire 72"
310 default y
311 depends on ARCH_PXA_PALM
312 select PXA27x
313 select IWMMXT
314 help
315 Say Y here if you intend to run this kernel on Palm Zire 72
316 handheld computer.
317
239config MACH_PCM990_BASEBOARD 318config MACH_PCM990_BASEBOARD
240 bool "PHYTEC PCM-990 development board" 319 bool "PHYTEC PCM-990 development board"
241 select HAVE_PWM 320 select HAVE_PWM
@@ -256,6 +335,9 @@ config PCM990_DISPLAY_NONE
256 335
257endchoice 336endchoice
258 337
338config MACH_AM200EPD
339 depends on MACH_GUMSTIX_F
340 bool "Enable AM200EPD board support"
259 341
260config PXA_EZX 342config PXA_EZX
261 bool "Motorola EZX Platform" 343 bool "Motorola EZX Platform"
@@ -343,4 +425,10 @@ config TOSA_BT
343 This is a simple driver that is able to control 425 This is a simple driver that is able to control
344 the state of built in bluetooth chip on tosa. 426 the state of built in bluetooth chip on tosa.
345 427
428config PXA_HAVE_BOARD_IRQS
429 bool
430
431config PXA_HAVE_ISA_IRQS
432 bool
433
346endif 434endif
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index 99ecbe7f8506..d31c9979cfa3 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -6,7 +6,12 @@
6obj-y += clock.o devices.o generic.o irq.o dma.o \ 6obj-y += clock.o devices.o generic.o irq.o dma.o \
7 time.o gpio.o reset.o 7 time.o gpio.o reset.o
8obj-$(CONFIG_PM) += pm.o sleep.o standby.o 8obj-$(CONFIG_PM) += pm.o sleep.o standby.o
9obj-$(CONFIG_CPU_FREQ) += cpu-pxa.o 9
10ifeq ($(CONFIG_CPU_FREQ),y)
11obj-$(CONFIG_PXA25x) += cpufreq-pxa2xx.o
12obj-$(CONFIG_PXA27x) += cpufreq-pxa2xx.o
13obj-$(CONFIG_PXA3xx) += cpufreq-pxa3xx.o
14endif
10 15
11# Generic drivers that other drivers may depend upon 16# Generic drivers that other drivers may depend upon
12obj-$(CONFIG_PXA_SSP) += ssp.o 17obj-$(CONFIG_PXA_SSP) += ssp.o
@@ -22,27 +27,33 @@ obj-$(CONFIG_CPU_PXA930) += pxa930.o
22 27
23# Specific board support 28# Specific board support
24obj-$(CONFIG_ARCH_GUMSTIX) += gumstix.o 29obj-$(CONFIG_ARCH_GUMSTIX) += gumstix.o
30obj-$(CONFIG_MACH_AM200EPD) += am200epd.o
25obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o 31obj-$(CONFIG_ARCH_LUBBOCK) += lubbock.o
26obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o 32obj-$(CONFIG_MACH_LOGICPD_PXA270) += lpd270.o
27obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o 33obj-$(CONFIG_MACH_MAINSTONE) += mainstone.o
34obj-$(CONFIG_MACH_MP900C) += mp900.o
28obj-$(CONFIG_ARCH_PXA_IDP) += idp.o 35obj-$(CONFIG_ARCH_PXA_IDP) += idp.o
29obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o 36obj-$(CONFIG_MACH_TRIZEPS4) += trizeps4.o
30obj-$(CONFIG_MACH_COLIBRI) += colibri.o 37obj-$(CONFIG_MACH_COLIBRI) += colibri.o
31obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o corgi_ssp.o corgi_lcd.o sharpsl_pm.o corgi_pm.o 38obj-$(CONFIG_PXA_SHARP_C7xx) += corgi.o sharpsl_pm.o corgi_pm.o
32obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o corgi_ssp.o corgi_lcd.o sharpsl_pm.o spitz_pm.o 39obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o sharpsl_pm.o spitz_pm.o
33obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o 40obj-$(CONFIG_MACH_POODLE) += poodle.o
34obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o
35obj-$(CONFIG_MACH_PCM027) += pcm027.o 41obj-$(CONFIG_MACH_PCM027) += pcm027.o
36obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o 42obj-$(CONFIG_MACH_PCM990_BASEBOARD) += pcm990-baseboard.o
37obj-$(CONFIG_MACH_TOSA) += tosa.o 43obj-$(CONFIG_MACH_TOSA) += tosa.o
38obj-$(CONFIG_MACH_EM_X270) += em-x270.o 44obj-$(CONFIG_MACH_EM_X270) += em-x270.o
39obj-$(CONFIG_MACH_MAGICIAN) += magician.o 45obj-$(CONFIG_MACH_MAGICIAN) += magician.o
40obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o eseries_udc.o 46obj-$(CONFIG_MACH_MIOA701) += mioa701.o mioa701_bootresume.o
41obj-$(CONFIG_MACH_E740) += e740_lcd.o 47obj-$(CONFIG_ARCH_PXA_ESERIES) += eseries.o
42obj-$(CONFIG_MACH_E750) += e750_lcd.o 48obj-$(CONFIG_MACH_E330) += e330.o
43obj-$(CONFIG_MACH_E400) += e400_lcd.o 49obj-$(CONFIG_MACH_E350) += e350.o
44obj-$(CONFIG_MACH_E800) += e800_lcd.o 50obj-$(CONFIG_MACH_E740) += e740.o
51obj-$(CONFIG_MACH_E750) += e750.o
52obj-$(CONFIG_MACH_E400) += e400.o
53obj-$(CONFIG_MACH_E800) += e800.o
45obj-$(CONFIG_MACH_PALMTX) += palmtx.o 54obj-$(CONFIG_MACH_PALMTX) += palmtx.o
55obj-$(CONFIG_MACH_PALMZ72) += palmz72.o
56obj-$(CONFIG_ARCH_VIPER) += viper.o
46 57
47ifeq ($(CONFIG_MACH_ZYLONITE),y) 58ifeq ($(CONFIG_MACH_ZYLONITE),y)
48 obj-y += zylonite.o 59 obj-y += zylonite.o
@@ -53,7 +64,8 @@ obj-$(CONFIG_MACH_LITTLETON) += littleton.o
53obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o 64obj-$(CONFIG_MACH_TAVOREVB) += tavorevb.o
54obj-$(CONFIG_MACH_SAAR) += saar.o 65obj-$(CONFIG_MACH_SAAR) += saar.o
55 66
56obj-$(CONFIG_MACH_ARMCORE) += cm-x270.o 67obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx.o cm-x255.o cm-x270.o
68obj-$(CONFIG_MACH_CM_X300) += cm-x300.o
57obj-$(CONFIG_PXA_EZX) += ezx.o 69obj-$(CONFIG_PXA_EZX) += ezx.o
58 70
59# Support for blinky lights 71# Support for blinky lights
@@ -61,12 +73,11 @@ led-y := leds.o
61led-$(CONFIG_ARCH_LUBBOCK) += leds-lubbock.o 73led-$(CONFIG_ARCH_LUBBOCK) += leds-lubbock.o
62led-$(CONFIG_MACH_MAINSTONE) += leds-mainstone.o 74led-$(CONFIG_MACH_MAINSTONE) += leds-mainstone.o
63led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o 75led-$(CONFIG_ARCH_PXA_IDP) += leds-idp.o
64led-$(CONFIG_MACH_TRIZEPS4) += leds-trizeps4.o
65 76
66obj-$(CONFIG_LEDS) += $(led-y) 77obj-$(CONFIG_LEDS) += $(led-y)
67 78
68ifeq ($(CONFIG_PCI),y) 79ifeq ($(CONFIG_PCI),y)
69obj-$(CONFIG_MACH_ARMCORE) += cm-x270-pci.o 80obj-$(CONFIG_MACH_ARMCORE) += cm-x2xx-pci.o
70endif 81endif
71 82
72obj-$(CONFIG_TOSA_BT) += tosa-bt.o 83obj-$(CONFIG_TOSA_BT) += tosa-bt.o
diff --git a/arch/arm/mach-pxa/akita-ioexp.c b/arch/arm/mach-pxa/akita-ioexp.c
deleted file mode 100644
index 5c67b188a3ba..000000000000
--- a/arch/arm/mach-pxa/akita-ioexp.c
+++ /dev/null
@@ -1,222 +0,0 @@
1/*
2 * Support for the Extra GPIOs on the Sharp SL-C1000 (Akita)
3 * (uses a Maxim MAX7310 8 Port IO Expander)
4 *
5 * Copyright 2005 Openedhand Ltd.
6 *
7 * Author: Richard Purdie <richard@openedhand.com>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 *
13 */
14
15#include <linux/kernel.h>
16#include <linux/init.h>
17#include <linux/platform_device.h>
18#include <linux/module.h>
19#include <linux/i2c.h>
20#include <linux/slab.h>
21#include <linux/workqueue.h>
22#include <mach/akita.h>
23
24/* MAX7310 Regiser Map */
25#define MAX7310_INPUT 0x00
26#define MAX7310_OUTPUT 0x01
27#define MAX7310_POLINV 0x02
28#define MAX7310_IODIR 0x03 /* 1 = Input, 0 = Output */
29#define MAX7310_TIMEOUT 0x04
30
31/* Addresses to scan */
32static const unsigned short normal_i2c[] = { 0x18, I2C_CLIENT_END };
33
34/* I2C Magic */
35I2C_CLIENT_INSMOD;
36
37static int max7310_write(struct i2c_client *client, int address, int data);
38static struct i2c_client max7310_template;
39static void akita_ioexp_work(struct work_struct *private_);
40
41static struct device *akita_ioexp_device;
42static unsigned char ioexp_output_value = AKITA_IOEXP_IO_OUT;
43DECLARE_WORK(akita_ioexp, akita_ioexp_work);
44
45
46/*
47 * MAX7310 Access
48 */
49static int max7310_config(struct device *dev, int iomode, int polarity)
50{
51 int ret;
52 struct i2c_client *client = to_i2c_client(dev);
53
54 ret = max7310_write(client, MAX7310_POLINV, polarity);
55 if (ret < 0)
56 return ret;
57 ret = max7310_write(client, MAX7310_IODIR, iomode);
58 return ret;
59}
60
61static int max7310_set_ouputs(struct device *dev, int outputs)
62{
63 struct i2c_client *client = to_i2c_client(dev);
64
65 return max7310_write(client, MAX7310_OUTPUT, outputs);
66}
67
68/*
69 * I2C Functions
70 */
71static int max7310_write(struct i2c_client *client, int address, int value)
72{
73 u8 data[2];
74
75 data[0] = address & 0xff;
76 data[1] = value & 0xff;
77
78 if (i2c_master_send(client, data, 2) == 2)
79 return 0;
80 return -1;
81}
82
83static int max7310_detect(struct i2c_adapter *adapter, int address, int kind)
84{
85 struct i2c_client *new_client;
86 int err;
87
88 if (!(new_client = kmalloc(sizeof(struct i2c_client), GFP_KERNEL)))
89 return -ENOMEM;
90
91 max7310_template.adapter = adapter;
92 max7310_template.addr = address;
93
94 memcpy(new_client, &max7310_template, sizeof(struct i2c_client));
95
96 if ((err = i2c_attach_client(new_client))) {
97 kfree(new_client);
98 return err;
99 }
100
101 max7310_config(&new_client->dev, AKITA_IOEXP_IO_DIR, 0);
102 akita_ioexp_device = &new_client->dev;
103 schedule_work(&akita_ioexp);
104
105 return 0;
106}
107
108static int max7310_attach_adapter(struct i2c_adapter *adapter)
109{
110 return i2c_probe(adapter, &addr_data, max7310_detect);
111}
112
113static int max7310_detach_client(struct i2c_client *client)
114{
115 int err;
116
117 akita_ioexp_device = NULL;
118
119 if ((err = i2c_detach_client(client)))
120 return err;
121
122 kfree(client);
123 return 0;
124}
125
126static struct i2c_driver max7310_i2c_driver = {
127 .driver = {
128 .name = "akita-max7310",
129 },
130 .id = I2C_DRIVERID_AKITAIOEXP,
131 .attach_adapter = max7310_attach_adapter,
132 .detach_client = max7310_detach_client,
133};
134
135static struct i2c_client max7310_template = {
136 name: "akita-max7310",
137 driver: &max7310_i2c_driver,
138};
139
140void akita_set_ioexp(struct device *dev, unsigned char bit)
141{
142 ioexp_output_value |= bit;
143
144 if (akita_ioexp_device)
145 schedule_work(&akita_ioexp);
146 return;
147}
148
149void akita_reset_ioexp(struct device *dev, unsigned char bit)
150{
151 ioexp_output_value &= ~bit;
152
153 if (akita_ioexp_device)
154 schedule_work(&akita_ioexp);
155 return;
156}
157
158EXPORT_SYMBOL(akita_set_ioexp);
159EXPORT_SYMBOL(akita_reset_ioexp);
160
161static void akita_ioexp_work(struct work_struct *private_)
162{
163 if (akita_ioexp_device)
164 max7310_set_ouputs(akita_ioexp_device, ioexp_output_value);
165}
166
167
168#ifdef CONFIG_PM
169static int akita_ioexp_suspend(struct platform_device *pdev, pm_message_t state)
170{
171 flush_scheduled_work();
172 return 0;
173}
174
175static int akita_ioexp_resume(struct platform_device *pdev)
176{
177 schedule_work(&akita_ioexp);
178 return 0;
179}
180#else
181#define akita_ioexp_suspend NULL
182#define akita_ioexp_resume NULL
183#endif
184
185static int __init akita_ioexp_probe(struct platform_device *pdev)
186{
187 return i2c_add_driver(&max7310_i2c_driver);
188}
189
190static int akita_ioexp_remove(struct platform_device *pdev)
191{
192 i2c_del_driver(&max7310_i2c_driver);
193 return 0;
194}
195
196static struct platform_driver akita_ioexp_driver = {
197 .probe = akita_ioexp_probe,
198 .remove = akita_ioexp_remove,
199 .suspend = akita_ioexp_suspend,
200 .resume = akita_ioexp_resume,
201 .driver = {
202 .name = "akita-ioexp",
203 },
204};
205
206static int __init akita_ioexp_init(void)
207{
208 return platform_driver_register(&akita_ioexp_driver);
209}
210
211static void __exit akita_ioexp_exit(void)
212{
213 platform_driver_unregister(&akita_ioexp_driver);
214}
215
216MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
217MODULE_DESCRIPTION("Akita IO-Expander driver");
218MODULE_LICENSE("GPL");
219
220fs_initcall(akita_ioexp_init);
221module_exit(akita_ioexp_exit);
222
diff --git a/arch/arm/mach-pxa/am200epd.c b/arch/arm/mach-pxa/am200epd.c
new file mode 100644
index 000000000000..b965085a37b9
--- /dev/null
+++ b/arch/arm/mach-pxa/am200epd.c
@@ -0,0 +1,374 @@
1/*
2 * am200epd.c -- Platform device for AM200 EPD kit
3 *
4 * Copyright (C) 2008, Jaya Kumar
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive for
8 * more details.
9 *
10 * Layout is based on skeletonfb.c by James Simmons and Geert Uytterhoeven.
11 *
12 * This work was made possible by help and equipment support from E-Ink
13 * Corporation. http://support.eink.com/community
14 *
15 * This driver is written to be used with the Metronome display controller.
16 * on the AM200 EPD prototype kit/development kit with an E-Ink 800x600
17 * Vizplex EPD on a Gumstix board using the Lyre interface board.
18 *
19 */
20
21#include <linux/module.h>
22#include <linux/kernel.h>
23#include <linux/errno.h>
24#include <linux/string.h>
25#include <linux/delay.h>
26#include <linux/interrupt.h>
27#include <linux/fb.h>
28#include <linux/init.h>
29#include <linux/platform_device.h>
30#include <linux/irq.h>
31#include <linux/gpio.h>
32
33#include <mach/pxafb.h>
34
35#include <video/metronomefb.h>
36
37static unsigned int panel_type = 6;
38static struct platform_device *am200_device;
39static struct metronome_board am200_board;
40
41static struct pxafb_mode_info am200_fb_mode_9inch7 = {
42 .pixclock = 40000,
43 .xres = 1200,
44 .yres = 842,
45 .bpp = 16,
46 .hsync_len = 2,
47 .left_margin = 2,
48 .right_margin = 2,
49 .vsync_len = 1,
50 .upper_margin = 2,
51 .lower_margin = 25,
52 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
53};
54
55static struct pxafb_mode_info am200_fb_mode_8inch = {
56 .pixclock = 40000,
57 .xres = 1088,
58 .yres = 791,
59 .bpp = 16,
60 .hsync_len = 28,
61 .left_margin = 8,
62 .right_margin = 30,
63 .vsync_len = 8,
64 .upper_margin = 10,
65 .lower_margin = 8,
66 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
67};
68
69static struct pxafb_mode_info am200_fb_mode_6inch = {
70 .pixclock = 40189,
71 .xres = 832,
72 .yres = 622,
73 .bpp = 16,
74 .hsync_len = 28,
75 .left_margin = 34,
76 .right_margin = 34,
77 .vsync_len = 25,
78 .upper_margin = 0,
79 .lower_margin = 2,
80 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
81};
82
83static struct pxafb_mach_info am200_fb_info = {
84 .modes = &am200_fb_mode_6inch,
85 .num_modes = 1,
86 .lcd_conn = LCD_TYPE_COLOR_TFT | LCD_PCLK_EDGE_FALL |
87 LCD_AC_BIAS_FREQ(24),
88};
89
90/* register offsets for gpio control */
91#define LED_GPIO_PIN 51
92#define STDBY_GPIO_PIN 48
93#define RST_GPIO_PIN 49
94#define RDY_GPIO_PIN 32
95#define ERR_GPIO_PIN 17
96#define PCBPWR_GPIO_PIN 16
97static int gpios[] = { LED_GPIO_PIN , STDBY_GPIO_PIN , RST_GPIO_PIN,
98 RDY_GPIO_PIN, ERR_GPIO_PIN, PCBPWR_GPIO_PIN };
99static char *gpio_names[] = { "LED" , "STDBY" , "RST", "RDY", "ERR", "PCBPWR" };
100
101static int am200_init_gpio_regs(struct metronomefb_par *par)
102{
103 int i;
104 int err;
105
106 for (i = 0; i < ARRAY_SIZE(gpios); i++) {
107 err = gpio_request(gpios[i], gpio_names[i]);
108 if (err) {
109 dev_err(&am200_device->dev, "failed requesting "
110 "gpio %s, err=%d\n", gpio_names[i], err);
111 goto err_req_gpio;
112 }
113 }
114
115 gpio_direction_output(LED_GPIO_PIN, 0);
116 gpio_direction_output(STDBY_GPIO_PIN, 0);
117 gpio_direction_output(RST_GPIO_PIN, 0);
118
119 gpio_direction_input(RDY_GPIO_PIN);
120 gpio_direction_input(ERR_GPIO_PIN);
121
122 gpio_direction_output(PCBPWR_GPIO_PIN, 0);
123
124 return 0;
125
126err_req_gpio:
127 while (i > 0)
128 gpio_free(gpios[i--]);
129
130 return err;
131}
132
133static void am200_cleanup(struct metronomefb_par *par)
134{
135 int i;
136
137 free_irq(IRQ_GPIO(RDY_GPIO_PIN), par);
138
139 for (i = 0; i < ARRAY_SIZE(gpios); i++)
140 gpio_free(gpios[i]);
141}
142
143static int am200_share_video_mem(struct fb_info *info)
144{
145 /* rough check if this is our desired fb and not something else */
146 if ((info->var.xres != am200_fb_info.modes->xres)
147 || (info->var.yres != am200_fb_info.modes->yres))
148 return 0;
149
150 /* we've now been notified that we have our new fb */
151 am200_board.metromem = info->screen_base;
152 am200_board.host_fbinfo = info;
153
154 /* try to refcount host drv since we are the consumer after this */
155 if (!try_module_get(info->fbops->owner))
156 return -ENODEV;
157
158 return 0;
159}
160
161static int am200_unshare_video_mem(struct fb_info *info)
162{
163 dev_dbg(&am200_device->dev, "ENTER %s\n", __func__);
164
165 if (info != am200_board.host_fbinfo)
166 return 0;
167
168 module_put(am200_board.host_fbinfo->fbops->owner);
169 return 0;
170}
171
172static int am200_fb_notifier_callback(struct notifier_block *self,
173 unsigned long event, void *data)
174{
175 struct fb_event *evdata = data;
176 struct fb_info *info = evdata->info;
177
178 dev_dbg(&am200_device->dev, "ENTER %s\n", __func__);
179
180 if (event == FB_EVENT_FB_REGISTERED)
181 return am200_share_video_mem(info);
182 else if (event == FB_EVENT_FB_UNREGISTERED)
183 return am200_unshare_video_mem(info);
184
185 return 0;
186}
187
188static struct notifier_block am200_fb_notif = {
189 .notifier_call = am200_fb_notifier_callback,
190};
191
192/* this gets called as part of our init. these steps must be done now so
193 * that we can use set_pxa_fb_info */
194static void __init am200_presetup_fb(void)
195{
196 int fw;
197 int fh;
198 int padding_size;
199 int totalsize;
200
201 switch (panel_type) {
202 case 6:
203 am200_fb_info.modes = &am200_fb_mode_6inch;
204 break;
205 case 8:
206 am200_fb_info.modes = &am200_fb_mode_8inch;
207 break;
208 case 97:
209 am200_fb_info.modes = &am200_fb_mode_9inch7;
210 break;
211 default:
212 dev_err(&am200_device->dev, "invalid panel_type selection,"
213 " setting to 6\n");
214 am200_fb_info.modes = &am200_fb_mode_6inch;
215 break;
216 }
217
218 /* the frame buffer is divided as follows:
219 command | CRC | padding
220 16kb waveform data | CRC | padding
221 image data | CRC
222 */
223
224 fw = am200_fb_info.modes->xres;
225 fh = am200_fb_info.modes->yres;
226
227 /* waveform must be 16k + 2 for checksum */
228 am200_board.wfm_size = roundup(16*1024 + 2, fw);
229
230 padding_size = PAGE_SIZE + (4 * fw);
231
232 /* total is 1 cmd , 1 wfm, padding and image */
233 totalsize = fw + am200_board.wfm_size + padding_size + (fw*fh);
234
235 /* save this off because we're manipulating fw after this and
236 * we'll need it when we're ready to setup the framebuffer */
237 am200_board.fw = fw;
238 am200_board.fh = fh;
239
240 /* the reason we do this adjustment is because we want to acquire
241 * more framebuffer memory without imposing custom awareness on the
242 * underlying pxafb driver */
243 am200_fb_info.modes->yres = DIV_ROUND_UP(totalsize, fw);
244
245 /* we divide since we told the LCD controller we're 16bpp */
246 am200_fb_info.modes->xres /= 2;
247
248 set_pxa_fb_info(&am200_fb_info);
249
250}
251
252/* this gets called by metronomefb as part of its init, in our case, we
253 * have already completed initial framebuffer init in presetup_fb so we
254 * can just setup the fb access pointers */
255static int am200_setup_fb(struct metronomefb_par *par)
256{
257 int fw;
258 int fh;
259
260 fw = am200_board.fw;
261 fh = am200_board.fh;
262
263 /* metromem was set up by the notifier in share_video_mem so now
264 * we can use its value to calculate the other entries */
265 par->metromem_cmd = (struct metromem_cmd *) am200_board.metromem;
266 par->metromem_wfm = am200_board.metromem + fw;
267 par->metromem_img = par->metromem_wfm + am200_board.wfm_size;
268 par->metromem_img_csum = (u16 *) (par->metromem_img + (fw * fh));
269 par->metromem_dma = am200_board.host_fbinfo->fix.smem_start;
270
271 return 0;
272}
273
274static int am200_get_panel_type(void)
275{
276 return panel_type;
277}
278
279static irqreturn_t am200_handle_irq(int irq, void *dev_id)
280{
281 struct metronomefb_par *par = dev_id;
282
283 wake_up_interruptible(&par->waitq);
284 return IRQ_HANDLED;
285}
286
287static int am200_setup_irq(struct fb_info *info)
288{
289 int ret;
290
291 ret = request_irq(IRQ_GPIO(RDY_GPIO_PIN), am200_handle_irq,
292 IRQF_DISABLED|IRQF_TRIGGER_FALLING,
293 "AM200", info->par);
294 if (ret)
295 dev_err(&am200_device->dev, "request_irq failed: %d\n", ret);
296
297 return ret;
298}
299
300static void am200_set_rst(struct metronomefb_par *par, int state)
301{
302 gpio_set_value(RST_GPIO_PIN, state);
303}
304
305static void am200_set_stdby(struct metronomefb_par *par, int state)
306{
307 gpio_set_value(STDBY_GPIO_PIN, state);
308}
309
310static int am200_wait_event(struct metronomefb_par *par)
311{
312 return wait_event_timeout(par->waitq, gpio_get_value(RDY_GPIO_PIN), HZ);
313}
314
315static int am200_wait_event_intr(struct metronomefb_par *par)
316{
317 return wait_event_interruptible_timeout(par->waitq,
318 gpio_get_value(RDY_GPIO_PIN), HZ);
319}
320
321static struct metronome_board am200_board = {
322 .owner = THIS_MODULE,
323 .setup_irq = am200_setup_irq,
324 .setup_io = am200_init_gpio_regs,
325 .setup_fb = am200_setup_fb,
326 .set_rst = am200_set_rst,
327 .set_stdby = am200_set_stdby,
328 .met_wait_event = am200_wait_event,
329 .met_wait_event_intr = am200_wait_event_intr,
330 .get_panel_type = am200_get_panel_type,
331 .cleanup = am200_cleanup,
332};
333
334static int __init am200_init(void)
335{
336 int ret;
337
338 /* before anything else, we request notification for any fb
339 * creation events */
340 fb_register_client(&am200_fb_notif);
341
342 /* request our platform independent driver */
343 request_module("metronomefb");
344
345 am200_device = platform_device_alloc("metronomefb", -1);
346 if (!am200_device)
347 return -ENOMEM;
348
349 /* the am200_board that will be seen by metronomefb is a copy */
350 platform_device_add_data(am200_device, &am200_board,
351 sizeof(am200_board));
352
353 /* this _add binds metronomefb to am200. metronomefb refcounts am200 */
354 ret = platform_device_add(am200_device);
355
356 if (ret) {
357 platform_device_put(am200_device);
358 fb_unregister_client(&am200_fb_notif);
359 return ret;
360 }
361
362 am200_presetup_fb();
363
364 return 0;
365}
366
367module_param(panel_type, uint, 0);
368MODULE_PARM_DESC(panel_type, "Select the panel type: 6, 8, 97");
369
370module_init(am200_init);
371
372MODULE_DESCRIPTION("board driver for am200 metronome epd kit");
373MODULE_AUTHOR("Jaya Kumar");
374MODULE_LICENSE("GPL");
diff --git a/arch/arm/mach-pxa/cm-x255.c b/arch/arm/mach-pxa/cm-x255.c
new file mode 100644
index 000000000000..83a4cdf08176
--- /dev/null
+++ b/arch/arm/mach-pxa/cm-x255.c
@@ -0,0 +1,258 @@
1/*
2 * linux/arch/arm/mach-pxa/cm-x255.c
3 *
4 * Copyright (C) 2007, 2008 CompuLab, Ltd.
5 * Mike Rapoport <mike@compulab.co.il>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/platform_device.h>
13#include <linux/irq.h>
14#include <linux/gpio.h>
15#include <linux/mtd/partitions.h>
16#include <linux/mtd/physmap.h>
17#include <linux/mtd/nand-gpio.h>
18
19#include <linux/spi/spi.h>
20
21#include <asm/mach/arch.h>
22#include <asm/mach-types.h>
23#include <asm/mach/map.h>
24
25#include <mach/pxa2xx-regs.h>
26#include <mach/mfp-pxa25x.h>
27#include <mach/pxa2xx_spi.h>
28#include <mach/bitfield.h>
29
30#include "generic.h"
31
32#define GPIO_NAND_CS (5)
33#define GPIO_NAND_ALE (4)
34#define GPIO_NAND_CLE (3)
35#define GPIO_NAND_RB (10)
36
37static unsigned long cmx255_pin_config[] = {
38 /* AC'97 */
39 GPIO28_AC97_BITCLK,
40 GPIO29_AC97_SDATA_IN_0,
41 GPIO30_AC97_SDATA_OUT,
42 GPIO31_AC97_SYNC,
43
44 /* BTUART */
45 GPIO42_BTUART_RXD,
46 GPIO43_BTUART_TXD,
47 GPIO44_BTUART_CTS,
48 GPIO45_BTUART_RTS,
49
50 /* STUART */
51 GPIO46_STUART_RXD,
52 GPIO47_STUART_TXD,
53
54 /* LCD */
55 GPIO58_LCD_LDD_0,
56 GPIO59_LCD_LDD_1,
57 GPIO60_LCD_LDD_2,
58 GPIO61_LCD_LDD_3,
59 GPIO62_LCD_LDD_4,
60 GPIO63_LCD_LDD_5,
61 GPIO64_LCD_LDD_6,
62 GPIO65_LCD_LDD_7,
63 GPIO66_LCD_LDD_8,
64 GPIO67_LCD_LDD_9,
65 GPIO68_LCD_LDD_10,
66 GPIO69_LCD_LDD_11,
67 GPIO70_LCD_LDD_12,
68 GPIO71_LCD_LDD_13,
69 GPIO72_LCD_LDD_14,
70 GPIO73_LCD_LDD_15,
71 GPIO74_LCD_FCLK,
72 GPIO75_LCD_LCLK,
73 GPIO76_LCD_PCLK,
74 GPIO77_LCD_BIAS,
75
76 /* SSP1 */
77 GPIO23_SSP1_SCLK,
78 GPIO24_SSP1_SFRM,
79 GPIO25_SSP1_TXD,
80 GPIO26_SSP1_RXD,
81
82 /* SSP2 */
83 GPIO81_SSP2_CLK_OUT,
84 GPIO82_SSP2_FRM_OUT,
85 GPIO83_SSP2_TXD,
86 GPIO84_SSP2_RXD,
87
88 /* PC Card */
89 GPIO48_nPOE,
90 GPIO49_nPWE,
91 GPIO50_nPIOR,
92 GPIO51_nPIOW,
93 GPIO52_nPCE_1,
94 GPIO53_nPCE_2,
95 GPIO54_nPSKTSEL,
96 GPIO55_nPREG,
97 GPIO56_nPWAIT,
98 GPIO57_nIOIS16,
99
100 /* SDRAM and local bus */
101 GPIO15_nCS_1,
102 GPIO78_nCS_2,
103 GPIO79_nCS_3,
104 GPIO80_nCS_4,
105 GPIO33_nCS_5,
106 GPIO18_RDY,
107
108 /* GPIO */
109 GPIO0_GPIO | WAKEUP_ON_EDGE_BOTH,
110 GPIO9_GPIO, /* PC card reset */
111
112 /* NAND controls */
113 GPIO5_GPIO | MFP_LPM_DRIVE_HIGH, /* NAND CE# */
114 GPIO4_GPIO | MFP_LPM_DRIVE_LOW, /* NAND ALE */
115 GPIO3_GPIO | MFP_LPM_DRIVE_LOW, /* NAND CLE */
116 GPIO10_GPIO, /* NAND Ready/Busy */
117
118 /* interrupts */
119 GPIO22_GPIO, /* DM9000 interrupt */
120};
121
122#if defined(CONFIG_SPI_PXA2XX)
123static struct pxa2xx_spi_master pxa_ssp_master_info = {
124 .num_chipselect = 1,
125};
126
127static struct spi_board_info spi_board_info[] __initdata = {
128 [0] = {
129 .modalias = "rtc-max6902",
130 .max_speed_hz = 1000000,
131 .bus_num = 1,
132 .chip_select = 0,
133 },
134};
135
136static void __init cmx255_init_rtc(void)
137{
138 pxa2xx_set_spi_info(1, &pxa_ssp_master_info);
139 spi_register_board_info(ARRAY_AND_SIZE(spi_board_info));
140}
141#else
142static inline void cmx255_init_rtc(void) {}
143#endif
144
145#if defined(CONFIG_MTD_PHYSMAP) || defined(CONFIG_MTD_PHYSMAP_MODULE)
146static struct mtd_partition cmx255_nor_partitions[] = {
147 {
148 .name = "ARMmon",
149 .size = 0x00030000,
150 .offset = 0,
151 .mask_flags = MTD_WRITEABLE /* force read-only */
152 } , {
153 .name = "ARMmon setup block",
154 .size = 0x00010000,
155 .offset = MTDPART_OFS_APPEND,
156 .mask_flags = MTD_WRITEABLE /* force read-only */
157 } , {
158 .name = "kernel",
159 .size = 0x00160000,
160 .offset = MTDPART_OFS_APPEND,
161 } , {
162 .name = "ramdisk",
163 .size = MTDPART_SIZ_FULL,
164 .offset = MTDPART_OFS_APPEND
165 }
166};
167
168static struct physmap_flash_data cmx255_nor_flash_data[] = {
169 {
170 .width = 2, /* bankwidth in bytes */
171 .parts = cmx255_nor_partitions,
172 .nr_parts = ARRAY_SIZE(cmx255_nor_partitions)
173 }
174};
175
176static struct resource cmx255_nor_resource = {
177 .start = PXA_CS0_PHYS,
178 .end = PXA_CS0_PHYS + SZ_8M - 1,
179 .flags = IORESOURCE_MEM,
180};
181
182static struct platform_device cmx255_nor = {
183 .name = "physmap-flash",
184 .id = -1,
185 .dev = {
186 .platform_data = cmx255_nor_flash_data,
187 },
188 .resource = &cmx255_nor_resource,
189 .num_resources = 1,
190};
191
192static void __init cmx255_init_nor(void)
193{
194 platform_device_register(&cmx255_nor);
195}
196#else
197static inline void cmx255_init_nor(void) {}
198#endif
199
200#if defined(CONFIG_MTD_NAND_GPIO) || defined(CONFIG_MTD_NAND_GPIO_MODULE)
201static struct resource cmx255_nand_resource[] = {
202 [0] = {
203 .start = PXA_CS1_PHYS,
204 .end = PXA_CS1_PHYS + 11,
205 .flags = IORESOURCE_MEM,
206 },
207 [1] = {
208 .start = PXA_CS5_PHYS,
209 .end = PXA_CS5_PHYS + 3,
210 .flags = IORESOURCE_MEM,
211 },
212};
213
214static struct mtd_partition cmx255_nand_parts[] = {
215 [0] = {
216 .name = "cmx255-nand",
217 .size = MTDPART_SIZ_FULL,
218 .offset = 0,
219 },
220};
221
222static struct gpio_nand_platdata cmx255_nand_platdata = {
223 .gpio_nce = GPIO_NAND_CS,
224 .gpio_cle = GPIO_NAND_CLE,
225 .gpio_ale = GPIO_NAND_ALE,
226 .gpio_rdy = GPIO_NAND_RB,
227 .gpio_nwp = -1,
228 .parts = cmx255_nand_parts,
229 .num_parts = ARRAY_SIZE(cmx255_nand_parts),
230 .chip_delay = 25,
231};
232
233static struct platform_device cmx255_nand = {
234 .name = "gpio-nand",
235 .num_resources = ARRAY_SIZE(cmx255_nand_resource),
236 .resource = cmx255_nand_resource,
237 .id = -1,
238 .dev = {
239 .platform_data = &cmx255_nand_platdata,
240 }
241};
242
243static void __init cmx255_init_nand(void)
244{
245 platform_device_register(&cmx255_nand);
246}
247#else
248static inline void cmx255_init_nand(void) {}
249#endif
250
251void __init cmx255_init(void)
252{
253 pxa2xx_mfp_config(ARRAY_AND_SIZE(cmx255_pin_config));
254
255 cmx255_init_rtc();
256 cmx255_init_nor();
257 cmx255_init_nand();
258}
diff --git a/arch/arm/mach-pxa/cm-x270-pci.h b/arch/arm/mach-pxa/cm-x270-pci.h
deleted file mode 100644
index 48f532f4cb51..000000000000
--- a/arch/arm/mach-pxa/cm-x270-pci.h
+++ /dev/null
@@ -1,13 +0,0 @@
1extern void __cmx270_pci_init_irq(int irq_gpio);
2extern void __cmx270_pci_suspend(void);
3extern void __cmx270_pci_resume(void);
4
5#ifdef CONFIG_PCI
6#define cmx270_pci_init_irq(x) __cmx270_pci_init_irq(x)
7#define cmx270_pci_suspend(x) __cmx270_pci_suspend(x)
8#define cmx270_pci_resume(x) __cmx270_pci_resume(x)
9#else
10#define cmx270_pci_init_irq(x) do {} while (0)
11#define cmx270_pci_suspend(x) do {} while (0)
12#define cmx270_pci_resume(x) do {} while (0)
13#endif
diff --git a/arch/arm/mach-pxa/cm-x270.c b/arch/arm/mach-pxa/cm-x270.c
index af003a269534..a82dad1a8cc8 100644
--- a/arch/arm/mach-pxa/cm-x270.c
+++ b/arch/arm/mach-pxa/cm-x270.c
@@ -14,46 +14,22 @@
14#include <linux/irq.h> 14#include <linux/irq.h>
15#include <linux/gpio.h> 15#include <linux/gpio.h>
16 16
17#include <linux/dm9000.h>
18#include <linux/rtc-v3020.h> 17#include <linux/rtc-v3020.h>
19#include <video/mbxfb.h> 18#include <video/mbxfb.h>
20#include <linux/leds.h>
21 19
22#include <asm/mach/arch.h>
23#include <asm/mach-types.h>
24#include <asm/mach/map.h>
25
26#include <mach/pxa2xx-regs.h>
27#include <mach/mfp-pxa27x.h> 20#include <mach/mfp-pxa27x.h>
28#include <mach/pxa-regs.h>
29#include <mach/audio.h>
30#include <mach/pxafb.h>
31#include <mach/ohci.h> 21#include <mach/ohci.h>
32#include <mach/mmc.h> 22#include <mach/mmc.h>
33#include <mach/bitfield.h>
34
35#include <asm/hardware/it8152.h>
36 23
37#include "generic.h" 24#include "generic.h"
38#include "cm-x270-pci.h"
39
40/* virtual addresses for statically mapped regions */
41#define CMX270_VIRT_BASE (0xe8000000)
42#define CMX270_IT8152_VIRT (CMX270_VIRT_BASE)
43 25
26/* physical address if local-bus attached devices */
44#define RTC_PHYS_BASE (PXA_CS1_PHYS + (5 << 22)) 27#define RTC_PHYS_BASE (PXA_CS1_PHYS + (5 << 22))
45#define DM9000_PHYS_BASE (PXA_CS1_PHYS + (6 << 22))
46 28
47/* GPIO IRQ usage */ 29/* GPIO IRQ usage */
48#define GPIO10_ETHIRQ (10)
49#define GPIO22_IT8152_IRQ (22)
50#define GPIO83_MMC_IRQ (83) 30#define GPIO83_MMC_IRQ (83)
51#define GPIO95_GFXIRQ (95)
52 31
53#define CMX270_ETHIRQ IRQ_GPIO(GPIO10_ETHIRQ)
54#define CMX270_IT8152_IRQ IRQ_GPIO(GPIO22_IT8152_IRQ)
55#define CMX270_MMC_IRQ IRQ_GPIO(GPIO83_MMC_IRQ) 32#define CMX270_MMC_IRQ IRQ_GPIO(GPIO83_MMC_IRQ)
56#define CMX270_GFXIRQ IRQ_GPIO(GPIO95_GFXIRQ)
57 33
58/* MMC power enable */ 34/* MMC power enable */
59#define GPIO105_MMC_POWER (105) 35#define GPIO105_MMC_POWER (105)
@@ -157,62 +133,6 @@ static unsigned long cmx270_pin_config[] = {
157 GPIO83_GPIO, /* MMC card detect */ 133 GPIO83_GPIO, /* MMC card detect */
158}; 134};
159 135
160#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
161static struct resource cmx270_dm9000_resource[] = {
162 [0] = {
163 .start = DM9000_PHYS_BASE,
164 .end = DM9000_PHYS_BASE + 4,
165 .flags = IORESOURCE_MEM,
166 },
167 [1] = {
168 .start = DM9000_PHYS_BASE + 8,
169 .end = DM9000_PHYS_BASE + 8 + 500,
170 .flags = IORESOURCE_MEM,
171 },
172 [2] = {
173 .start = CMX270_ETHIRQ,
174 .end = CMX270_ETHIRQ,
175 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
176 }
177};
178
179static struct dm9000_plat_data cmx270_dm9000_platdata = {
180 .flags = DM9000_PLATF_32BITONLY,
181};
182
183static struct platform_device cmx270_dm9000_device = {
184 .name = "dm9000",
185 .id = 0,
186 .num_resources = ARRAY_SIZE(cmx270_dm9000_resource),
187 .resource = cmx270_dm9000_resource,
188 .dev = {
189 .platform_data = &cmx270_dm9000_platdata,
190 }
191};
192
193static void __init cmx270_init_dm9000(void)
194{
195 platform_device_register(&cmx270_dm9000_device);
196}
197#else
198static inline void cmx270_init_dm9000(void) {}
199#endif
200
201/* UCB1400 touchscreen controller */
202#if defined(CONFIG_TOUCHSCREEN_UCB1400) || defined(CONFIG_TOUCHSCREEN_UCB1400_MODULE)
203static struct platform_device cmx270_ts_device = {
204 .name = "ucb1400_ts",
205 .id = -1,
206};
207
208static void __init cmx270_init_touchscreen(void)
209{
210 platform_device_register(&cmx270_ts_device);
211}
212#else
213static inline void cmx270_init_touchscreen(void) {}
214#endif
215
216/* V3020 RTC */ 136/* V3020 RTC */
217#if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE) 137#if defined(CONFIG_RTC_DRV_V3020) || defined(CONFIG_RTC_DRV_V3020_MODULE)
218static struct resource cmx270_v3020_resource[] = { 138static struct resource cmx270_v3020_resource[] = {
@@ -242,45 +162,7 @@ static void __init cmx270_init_rtc(void)
242 platform_device_register(&cmx270_rtc_device); 162 platform_device_register(&cmx270_rtc_device);
243} 163}
244#else 164#else
245static inline void cmx270_init_rtc(void) {} 165static inline void cmx2xx_init_rtc(void) {}
246#endif
247
248/* CM-X270 LEDs */
249#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
250static struct gpio_led cmx270_leds[] = {
251 [0] = {
252 .name = "cm-x270:red",
253 .default_trigger = "nand-disk",
254 .gpio = 93,
255 .active_low = 1,
256 },
257 [1] = {
258 .name = "cm-x270:green",
259 .default_trigger = "heartbeat",
260 .gpio = 94,
261 .active_low = 1,
262 },
263};
264
265static struct gpio_led_platform_data cmx270_gpio_led_pdata = {
266 .num_leds = ARRAY_SIZE(cmx270_leds),
267 .leds = cmx270_leds,
268};
269
270static struct platform_device cmx270_led_device = {
271 .name = "leds-gpio",
272 .id = -1,
273 .dev = {
274 .platform_data = &cmx270_gpio_led_pdata,
275 },
276};
277
278static void __init cmx270_init_leds(void)
279{
280 platform_device_register(&cmx270_led_device);
281}
282#else
283static inline void cmx270_init_leds(void) {}
284#endif 166#endif
285 167
286/* 2700G graphics */ 168/* 2700G graphics */
@@ -373,238 +255,11 @@ static void __init cmx270_init_2700G(void)
373static inline void cmx270_init_2700G(void) {} 255static inline void cmx270_init_2700G(void) {}
374#endif 256#endif
375 257
376#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
377/*
378 Display definitions
379 keep these for backwards compatibility, although symbolic names (as
380 e.g. in lpd270.c) looks better
381*/
382#define MTYPE_STN320x240 0
383#define MTYPE_TFT640x480 1
384#define MTYPE_CRT640x480 2
385#define MTYPE_CRT800x600 3
386#define MTYPE_TFT320x240 6
387#define MTYPE_STN640x480 7
388
389static struct pxafb_mode_info generic_stn_320x240_mode = {
390 .pixclock = 76923,
391 .bpp = 8,
392 .xres = 320,
393 .yres = 240,
394 .hsync_len = 3,
395 .vsync_len = 2,
396 .left_margin = 3,
397 .upper_margin = 0,
398 .right_margin = 3,
399 .lower_margin = 0,
400 .sync = (FB_SYNC_HOR_HIGH_ACT |
401 FB_SYNC_VERT_HIGH_ACT),
402 .cmap_greyscale = 0,
403};
404
405static struct pxafb_mach_info generic_stn_320x240 = {
406 .modes = &generic_stn_320x240_mode,
407 .num_modes = 1,
408 .lccr0 = 0,
409 .lccr3 = (LCCR3_PixClkDiv(0x03) |
410 LCCR3_Acb(0xff) |
411 LCCR3_PCP),
412 .cmap_inverse = 0,
413 .cmap_static = 0,
414};
415
416static struct pxafb_mode_info generic_tft_640x480_mode = {
417 .pixclock = 38461,
418 .bpp = 8,
419 .xres = 640,
420 .yres = 480,
421 .hsync_len = 60,
422 .vsync_len = 2,
423 .left_margin = 70,
424 .upper_margin = 10,
425 .right_margin = 70,
426 .lower_margin = 5,
427 .sync = 0,
428 .cmap_greyscale = 0,
429};
430
431static struct pxafb_mach_info generic_tft_640x480 = {
432 .modes = &generic_tft_640x480_mode,
433 .num_modes = 1,
434 .lccr0 = (LCCR0_PAS),
435 .lccr3 = (LCCR3_PixClkDiv(0x01) |
436 LCCR3_Acb(0xff) |
437 LCCR3_PCP),
438 .cmap_inverse = 0,
439 .cmap_static = 0,
440};
441
442static struct pxafb_mode_info generic_crt_640x480_mode = {
443 .pixclock = 38461,
444 .bpp = 8,
445 .xres = 640,
446 .yres = 480,
447 .hsync_len = 63,
448 .vsync_len = 2,
449 .left_margin = 81,
450 .upper_margin = 33,
451 .right_margin = 16,
452 .lower_margin = 10,
453 .sync = (FB_SYNC_HOR_HIGH_ACT |
454 FB_SYNC_VERT_HIGH_ACT),
455 .cmap_greyscale = 0,
456};
457
458static struct pxafb_mach_info generic_crt_640x480 = {
459 .modes = &generic_crt_640x480_mode,
460 .num_modes = 1,
461 .lccr0 = (LCCR0_PAS),
462 .lccr3 = (LCCR3_PixClkDiv(0x01) |
463 LCCR3_Acb(0xff)),
464 .cmap_inverse = 0,
465 .cmap_static = 0,
466};
467
468static struct pxafb_mode_info generic_crt_800x600_mode = {
469 .pixclock = 28846,
470 .bpp = 8,
471 .xres = 800,
472 .yres = 600,
473 .hsync_len = 63,
474 .vsync_len = 2,
475 .left_margin = 26,
476 .upper_margin = 21,
477 .right_margin = 26,
478 .lower_margin = 11,
479 .sync = (FB_SYNC_HOR_HIGH_ACT |
480 FB_SYNC_VERT_HIGH_ACT),
481 .cmap_greyscale = 0,
482};
483
484static struct pxafb_mach_info generic_crt_800x600 = {
485 .modes = &generic_crt_800x600_mode,
486 .num_modes = 1,
487 .lccr0 = (LCCR0_PAS),
488 .lccr3 = (LCCR3_PixClkDiv(0x02) |
489 LCCR3_Acb(0xff)),
490 .cmap_inverse = 0,
491 .cmap_static = 0,
492};
493
494static struct pxafb_mode_info generic_tft_320x240_mode = {
495 .pixclock = 134615,
496 .bpp = 16,
497 .xres = 320,
498 .yres = 240,
499 .hsync_len = 63,
500 .vsync_len = 7,
501 .left_margin = 75,
502 .upper_margin = 0,
503 .right_margin = 15,
504 .lower_margin = 15,
505 .sync = 0,
506 .cmap_greyscale = 0,
507};
508
509static struct pxafb_mach_info generic_tft_320x240 = {
510 .modes = &generic_tft_320x240_mode,
511 .num_modes = 1,
512 .lccr0 = (LCCR0_PAS),
513 .lccr3 = (LCCR3_PixClkDiv(0x06) |
514 LCCR3_Acb(0xff) |
515 LCCR3_PCP),
516 .cmap_inverse = 0,
517 .cmap_static = 0,
518};
519
520static struct pxafb_mode_info generic_stn_640x480_mode = {
521 .pixclock = 57692,
522 .bpp = 8,
523 .xres = 640,
524 .yres = 480,
525 .hsync_len = 4,
526 .vsync_len = 2,
527 .left_margin = 10,
528 .upper_margin = 5,
529 .right_margin = 10,
530 .lower_margin = 5,
531 .sync = (FB_SYNC_HOR_HIGH_ACT |
532 FB_SYNC_VERT_HIGH_ACT),
533 .cmap_greyscale = 0,
534};
535
536static struct pxafb_mach_info generic_stn_640x480 = {
537 .modes = &generic_stn_640x480_mode,
538 .num_modes = 1,
539 .lccr0 = 0,
540 .lccr3 = (LCCR3_PixClkDiv(0x02) |
541 LCCR3_Acb(0xff)),
542 .cmap_inverse = 0,
543 .cmap_static = 0,
544};
545
546static struct pxafb_mach_info *cmx270_display = &generic_crt_640x480;
547
548static int __init cmx270_set_display(char *str)
549{
550 int disp_type = simple_strtol(str, NULL, 0);
551 switch (disp_type) {
552 case MTYPE_STN320x240:
553 cmx270_display = &generic_stn_320x240;
554 break;
555 case MTYPE_TFT640x480:
556 cmx270_display = &generic_tft_640x480;
557 break;
558 case MTYPE_CRT640x480:
559 cmx270_display = &generic_crt_640x480;
560 break;
561 case MTYPE_CRT800x600:
562 cmx270_display = &generic_crt_800x600;
563 break;
564 case MTYPE_TFT320x240:
565 cmx270_display = &generic_tft_320x240;
566 break;
567 case MTYPE_STN640x480:
568 cmx270_display = &generic_stn_640x480;
569 break;
570 default: /* fallback to CRT 640x480 */
571 cmx270_display = &generic_crt_640x480;
572 break;
573 }
574 return 1;
575}
576
577/*
578 This should be done really early to get proper configuration for
579 frame buffer.
580 Indeed, pxafb parameters can be used istead, but CM-X270 bootloader
581 has limitied line length for kernel command line, and also it will
582 break compatibitlty with proprietary releases already in field.
583*/
584__setup("monitor=", cmx270_set_display);
585
586static void __init cmx270_init_display(void)
587{
588 set_pxa_fb_info(cmx270_display);
589}
590#else
591static inline void cmx270_init_display(void) {}
592#endif
593
594/* PXA27x OHCI controller setup */ 258/* PXA27x OHCI controller setup */
595#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 259#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
596static int cmx270_ohci_init(struct device *dev)
597{
598 /* Set the Power Control Polarity Low */
599 UHCHR = (UHCHR | UHCHR_PCPL) &
600 ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE);
601
602 return 0;
603}
604
605static struct pxaohci_platform_data cmx270_ohci_platform_data = { 260static struct pxaohci_platform_data cmx270_ohci_platform_data = {
606 .port_mode = PMM_PERPORT_MODE, 261 .port_mode = PMM_PERPORT_MODE,
607 .init = cmx270_ohci_init, 262 .flags = ENABLE_PORT1 | ENABLE_PORT2 | POWER_CONTROL_LOW,
608}; 263};
609 264
610static void __init cmx270_init_ohci(void) 265static void __init cmx270_init_ohci(void)
@@ -676,131 +331,12 @@ static void __init cmx270_init_mmc(void)
676static inline void cmx270_init_mmc(void) {} 331static inline void cmx270_init_mmc(void) {}
677#endif 332#endif
678 333
679#ifdef CONFIG_PM 334void __init cmx270_init(void)
680static unsigned long sleep_save_msc[10];
681
682static int cmx270_suspend(struct sys_device *dev, pm_message_t state)
683{
684 cmx270_pci_suspend();
685
686 /* save MSC registers */
687 sleep_save_msc[0] = MSC0;
688 sleep_save_msc[1] = MSC1;
689 sleep_save_msc[2] = MSC2;
690
691 /* setup power saving mode registers */
692 PCFR = 0x0;
693 PSLR = 0xff400000;
694 PMCR = 0x00000005;
695 PWER = 0x80000000;
696 PFER = 0x00000000;
697 PRER = 0x00000000;
698 PGSR0 = 0xC0018800;
699 PGSR1 = 0x004F0002;
700 PGSR2 = 0x6021C000;
701 PGSR3 = 0x00020000;
702
703 return 0;
704}
705
706static int cmx270_resume(struct sys_device *dev)
707{
708 cmx270_pci_resume();
709
710 /* restore MSC registers */
711 MSC0 = sleep_save_msc[0];
712 MSC1 = sleep_save_msc[1];
713 MSC2 = sleep_save_msc[2];
714
715 return 0;
716}
717
718static struct sysdev_class cmx270_pm_sysclass = {
719 .name = "pm",
720 .resume = cmx270_resume,
721 .suspend = cmx270_suspend,
722};
723
724static struct sys_device cmx270_pm_device = {
725 .cls = &cmx270_pm_sysclass,
726};
727
728static int __init cmx270_pm_init(void)
729{
730 int error;
731 error = sysdev_class_register(&cmx270_pm_sysclass);
732 if (error == 0)
733 error = sysdev_register(&cmx270_pm_device);
734 return error;
735}
736#else
737static int __init cmx270_pm_init(void) { return 0; }
738#endif
739
740#if defined(CONFIG_SND_PXA2XX_AC97) || defined(CONFIG_SND_PXA2XX_AC97_MODULE)
741static void __init cmx270_init_ac97(void)
742{
743 pxa_set_ac97_info(NULL);
744}
745#else
746static inline void cmx270_init_ac97(void) {}
747#endif
748
749static void __init cmx270_init(void)
750{ 335{
751 cmx270_pm_init();
752
753 pxa2xx_mfp_config(ARRAY_AND_SIZE(cmx270_pin_config)); 336 pxa2xx_mfp_config(ARRAY_AND_SIZE(cmx270_pin_config));
754 337
755 cmx270_init_dm9000();
756 cmx270_init_rtc(); 338 cmx270_init_rtc();
757 cmx270_init_display();
758 cmx270_init_mmc(); 339 cmx270_init_mmc();
759 cmx270_init_ohci(); 340 cmx270_init_ohci();
760 cmx270_init_ac97();
761 cmx270_init_touchscreen();
762 cmx270_init_leds();
763 cmx270_init_2700G(); 341 cmx270_init_2700G();
764} 342}
765
766static void __init cmx270_init_irq(void)
767{
768 pxa27x_init_irq();
769
770 cmx270_pci_init_irq(GPIO22_IT8152_IRQ);
771}
772
773#ifdef CONFIG_PCI
774/* Map PCI companion statically */
775static struct map_desc cmx270_io_desc[] __initdata = {
776 [0] = { /* PCI bridge */
777 .virtual = CMX270_IT8152_VIRT,
778 .pfn = __phys_to_pfn(PXA_CS4_PHYS),
779 .length = SZ_64M,
780 .type = MT_DEVICE
781 },
782};
783
784static void __init cmx270_map_io(void)
785{
786 pxa_map_io();
787 iotable_init(cmx270_io_desc, ARRAY_SIZE(cmx270_io_desc));
788
789 it8152_base_address = CMX270_IT8152_VIRT;
790}
791#else
792static void __init cmx270_map_io(void)
793{
794 pxa_map_io();
795}
796#endif
797
798MACHINE_START(ARMCORE, "Compulab CM-x270")
799 .boot_params = 0xa0000100,
800 .phys_io = 0x40000000,
801 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
802 .map_io = cmx270_map_io,
803 .init_irq = cmx270_init_irq,
804 .timer = &pxa_timer,
805 .init_machine = cmx270_init,
806MACHINE_END
diff --git a/arch/arm/mach-pxa/cm-x270-pci.c b/arch/arm/mach-pxa/cm-x2xx-pci.c
index 2d5bcea1e520..3156b25f6e9d 100644
--- a/arch/arm/mach-pxa/cm-x270-pci.c
+++ b/arch/arm/mach-pxa/cm-x2xx-pci.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-pxa/cm-x270-pci.c 2 * linux/arch/arm/mach-pxa/cm-x2xx-pci.c
3 * 3 *
4 * PCI bios-type initialisation for PCI machines 4 * PCI bios-type initialisation for PCI machines
5 * 5 *
@@ -28,7 +28,7 @@
28#include <asm/hardware/it8152.h> 28#include <asm/hardware/it8152.h>
29 29
30unsigned long it8152_base_address; 30unsigned long it8152_base_address;
31static int cmx270_it8152_irq_gpio; 31static int cmx2xx_it8152_irq_gpio;
32 32
33/* 33/*
34 * Only first 64MB of memory can be accessed via PCI. 34 * Only first 64MB of memory can be accessed via PCI.
@@ -36,13 +36,13 @@ static int cmx270_it8152_irq_gpio;
36 * This is really ugly and we need a better way of specifying 36 * This is really ugly and we need a better way of specifying
37 * DMA-capable regions of memory. 37 * DMA-capable regions of memory.
38 */ 38 */
39void __init cmx270_pci_adjust_zones(int node, unsigned long *zone_size, 39void __init cmx2xx_pci_adjust_zones(int node, unsigned long *zone_size,
40 unsigned long *zhole_size) 40 unsigned long *zhole_size)
41{ 41{
42 unsigned int sz = SZ_64M >> PAGE_SHIFT; 42 unsigned int sz = SZ_64M >> PAGE_SHIFT;
43 43
44 if (machine_is_armcore()) { 44 if (machine_is_armcore()) {
45 pr_info("Adjusting zones for CM-X270\n"); 45 pr_info("Adjusting zones for CM-X2XX\n");
46 46
47 /* 47 /*
48 * Only adjust if > 64M on current system 48 * Only adjust if > 64M on current system
@@ -57,29 +57,29 @@ void __init cmx270_pci_adjust_zones(int node, unsigned long *zone_size,
57 } 57 }
58} 58}
59 59
60static void cmx270_it8152_irq_demux(unsigned int irq, struct irq_desc *desc) 60static void cmx2xx_it8152_irq_demux(unsigned int irq, struct irq_desc *desc)
61{ 61{
62 /* clear our parent irq */ 62 /* clear our parent irq */
63 GEDR(cmx270_it8152_irq_gpio) = GPIO_bit(cmx270_it8152_irq_gpio); 63 GEDR(cmx2xx_it8152_irq_gpio) = GPIO_bit(cmx2xx_it8152_irq_gpio);
64 64
65 it8152_irq_demux(irq, desc); 65 it8152_irq_demux(irq, desc);
66} 66}
67 67
68void __cmx270_pci_init_irq(int irq_gpio) 68void __cmx2xx_pci_init_irq(int irq_gpio)
69{ 69{
70 it8152_init_irq(); 70 it8152_init_irq();
71 71
72 cmx270_it8152_irq_gpio = irq_gpio; 72 cmx2xx_it8152_irq_gpio = irq_gpio;
73 73
74 set_irq_type(gpio_to_irq(irq_gpio), IRQ_TYPE_EDGE_RISING); 74 set_irq_type(gpio_to_irq(irq_gpio), IRQ_TYPE_EDGE_RISING);
75 75
76 set_irq_chained_handler(gpio_to_irq(irq_gpio), cmx270_it8152_irq_demux); 76 set_irq_chained_handler(gpio_to_irq(irq_gpio), cmx2xx_it8152_irq_demux);
77} 77}
78 78
79#ifdef CONFIG_PM 79#ifdef CONFIG_PM
80static unsigned long sleep_save_ite[10]; 80static unsigned long sleep_save_ite[10];
81 81
82void __cmx270_pci_suspend(void) 82void __cmx2xx_pci_suspend(void)
83{ 83{
84 /* save ITE state */ 84 /* save ITE state */
85 sleep_save_ite[0] = __raw_readl(IT8152_INTC_PDCNIMR); 85 sleep_save_ite[0] = __raw_readl(IT8152_INTC_PDCNIMR);
@@ -91,7 +91,7 @@ void __cmx270_pci_suspend(void)
91 __raw_writel((0), IT8152_INTC_LPCNIRR); 91 __raw_writel((0), IT8152_INTC_LPCNIRR);
92} 92}
93 93
94void __cmx270_pci_resume(void) 94void __cmx2xx_pci_resume(void)
95{ 95{
96 /* restore IT8152 state */ 96 /* restore IT8152 state */
97 __raw_writel((sleep_save_ite[0]), IT8152_INTC_PDCNIMR); 97 __raw_writel((sleep_save_ite[0]), IT8152_INTC_PDCNIMR);
@@ -99,12 +99,12 @@ void __cmx270_pci_resume(void)
99 __raw_writel((sleep_save_ite[2]), IT8152_INTC_LPNIAR); 99 __raw_writel((sleep_save_ite[2]), IT8152_INTC_LPNIAR);
100} 100}
101#else 101#else
102void cmx270_pci_suspend(void) {} 102void cmx2xx_pci_suspend(void) {}
103void cmx270_pci_resume(void) {} 103void cmx2xx_pci_resume(void) {}
104#endif 104#endif
105 105
106/* PCI IRQ mapping*/ 106/* PCI IRQ mapping*/
107static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) 107static int __init cmx2xx_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
108{ 108{
109 int irq; 109 int irq;
110 110
@@ -116,14 +116,14 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
116 116
117 /* 117 /*
118 Here comes the ugly part. The routing is baseboard specific, 118 Here comes the ugly part. The routing is baseboard specific,
119 but defining a platform for each possible base of CM-X270 is 119 but defining a platform for each possible base of CM-X2XX is
120 unrealistic. Here we keep mapping for ATXBase and SB-X270. 120 unrealistic. Here we keep mapping for ATXBase and SB-X2XX.
121 */ 121 */
122 /* ATXBASE PCI slot */ 122 /* ATXBASE PCI slot */
123 if (slot == 7) 123 if (slot == 7)
124 return IT8152_PCI_INTA; 124 return IT8152_PCI_INTA;
125 125
126 /* ATXBase/SB-x270 CardBus */ 126 /* ATXBase/SB-X2XX CardBus */
127 if (slot == 8 || slot == 0) 127 if (slot == 8 || slot == 0)
128 return IT8152_PCI_INTB; 128 return IT8152_PCI_INTB;
129 129
@@ -131,7 +131,11 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
131 if (slot == 9) 131 if (slot == 9)
132 return IT8152_PCI_INTA; 132 return IT8152_PCI_INTA;
133 133
134 /* SB-x270 Ethernet */ 134 /* CM-x255 Onboard Ethernet */
135 if (slot == 15)
136 return IT8152_PCI_INTC;
137
138 /* SB-x2xx Ethernet */
135 if (slot == 16) 139 if (slot == 16)
136 return IT8152_PCI_INTA; 140 return IT8152_PCI_INTA;
137 141
@@ -144,9 +148,9 @@ static int __init cmx270_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
144 return(0); 148 return(0);
145} 149}
146 150
147static void cmx270_pci_preinit(void) 151static void cmx2xx_pci_preinit(void)
148{ 152{
149 pr_info("Initializing CM-X270 PCI subsystem\n"); 153 pr_info("Initializing CM-X2XX PCI subsystem\n");
150 154
151 __raw_writel(0x800, IT8152_PCI_CFG_ADDR); 155 __raw_writel(0x800, IT8152_PCI_CFG_ADDR);
152 if (__raw_readl(IT8152_PCI_CFG_DATA) == 0x81521283) { 156 if (__raw_readl(IT8152_PCI_CFG_DATA) == 0x81521283) {
@@ -200,21 +204,21 @@ static void cmx270_pci_preinit(void)
200 } 204 }
201} 205}
202 206
203static struct hw_pci cmx270_pci __initdata = { 207static struct hw_pci cmx2xx_pci __initdata = {
204 .swizzle = pci_std_swizzle, 208 .swizzle = pci_std_swizzle,
205 .map_irq = cmx270_pci_map_irq, 209 .map_irq = cmx2xx_pci_map_irq,
206 .nr_controllers = 1, 210 .nr_controllers = 1,
207 .setup = it8152_pci_setup, 211 .setup = it8152_pci_setup,
208 .scan = it8152_pci_scan_bus, 212 .scan = it8152_pci_scan_bus,
209 .preinit = cmx270_pci_preinit, 213 .preinit = cmx2xx_pci_preinit,
210}; 214};
211 215
212static int __init cmx270_init_pci(void) 216static int __init cmx2xx_init_pci(void)
213{ 217{
214 if (machine_is_armcore()) 218 if (machine_is_armcore())
215 pci_common_init(&cmx270_pci); 219 pci_common_init(&cmx2xx_pci);
216 220
217 return 0; 221 return 0;
218} 222}
219 223
220subsys_initcall(cmx270_init_pci); 224subsys_initcall(cmx2xx_init_pci);
diff --git a/arch/arm/mach-pxa/cm-x2xx-pci.h b/arch/arm/mach-pxa/cm-x2xx-pci.h
new file mode 100644
index 000000000000..e24aad2e3ad7
--- /dev/null
+++ b/arch/arm/mach-pxa/cm-x2xx-pci.h
@@ -0,0 +1,13 @@
1extern void __cmx2xx_pci_init_irq(int irq_gpio);
2extern void __cmx2xx_pci_suspend(void);
3extern void __cmx2xx_pci_resume(void);
4
5#ifdef CONFIG_PCI
6#define cmx2xx_pci_init_irq(x) __cmx2xx_pci_init_irq(x)
7#define cmx2xx_pci_suspend(x) __cmx2xx_pci_suspend(x)
8#define cmx2xx_pci_resume(x) __cmx2xx_pci_resume(x)
9#else
10#define cmx2xx_pci_init_irq(x) do {} while (0)
11#define cmx2xx_pci_suspend(x) do {} while (0)
12#define cmx2xx_pci_resume(x) do {} while (0)
13#endif
diff --git a/arch/arm/mach-pxa/cm-x2xx.c b/arch/arm/mach-pxa/cm-x2xx.c
new file mode 100644
index 000000000000..0b3ce3b6d896
--- /dev/null
+++ b/arch/arm/mach-pxa/cm-x2xx.c
@@ -0,0 +1,531 @@
1/*
2 * linux/arch/arm/mach-pxa/cm-x2xx.c
3 *
4 * Copyright (C) 2008 CompuLab, Ltd.
5 * Mike Rapoport <mike@compulab.co.il>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11
12#include <linux/platform_device.h>
13#include <linux/sysdev.h>
14#include <linux/irq.h>
15#include <linux/gpio.h>
16
17#include <linux/dm9000.h>
18#include <linux/leds.h>
19
20#include <asm/mach/arch.h>
21#include <asm/mach-types.h>
22#include <asm/mach/map.h>
23
24#include <mach/pxa2xx-regs.h>
25#include <mach/mfp-pxa27x.h>
26#include <mach/pxa-regs.h>
27#include <mach/audio.h>
28#include <mach/pxafb.h>
29
30#include <asm/hardware/it8152.h>
31
32#include "generic.h"
33#include "cm-x2xx-pci.h"
34
35extern void cmx255_init(void);
36extern void cmx270_init(void);
37
38/* virtual addresses for statically mapped regions */
39#define CMX2XX_VIRT_BASE (0xe8000000)
40#define CMX2XX_IT8152_VIRT (CMX2XX_VIRT_BASE)
41
42/* physical address if local-bus attached devices */
43#define CMX255_DM9000_PHYS_BASE (PXA_CS1_PHYS + (8 << 22))
44#define CMX270_DM9000_PHYS_BASE (PXA_CS1_PHYS + (6 << 22))
45
46/* leds */
47#define CMX255_GPIO_RED (27)
48#define CMX255_GPIO_GREEN (32)
49#define CMX270_GPIO_RED (93)
50#define CMX270_GPIO_GREEN (94)
51
52/* GPIO IRQ usage */
53#define GPIO22_ETHIRQ (22)
54#define GPIO10_ETHIRQ (10)
55#define CMX255_GPIO_IT8152_IRQ (0)
56#define CMX270_GPIO_IT8152_IRQ (22)
57
58#define CMX255_ETHIRQ IRQ_GPIO(GPIO22_ETHIRQ)
59#define CMX270_ETHIRQ IRQ_GPIO(GPIO10_ETHIRQ)
60
61#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
62static struct resource cmx255_dm9000_resource[] = {
63 [0] = {
64 .start = CMX255_DM9000_PHYS_BASE,
65 .end = CMX255_DM9000_PHYS_BASE + 3,
66 .flags = IORESOURCE_MEM,
67 },
68 [1] = {
69 .start = CMX255_DM9000_PHYS_BASE + 4,
70 .end = CMX255_DM9000_PHYS_BASE + 4 + 500,
71 .flags = IORESOURCE_MEM,
72 },
73 [2] = {
74 .start = CMX255_ETHIRQ,
75 .end = CMX255_ETHIRQ,
76 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
77 }
78};
79
80static struct resource cmx270_dm9000_resource[] = {
81 [0] = {
82 .start = CMX270_DM9000_PHYS_BASE,
83 .end = CMX270_DM9000_PHYS_BASE + 3,
84 .flags = IORESOURCE_MEM,
85 },
86 [1] = {
87 .start = CMX270_DM9000_PHYS_BASE + 8,
88 .end = CMX270_DM9000_PHYS_BASE + 8 + 500,
89 .flags = IORESOURCE_MEM,
90 },
91 [2] = {
92 .start = CMX270_ETHIRQ,
93 .end = CMX270_ETHIRQ,
94 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
95 }
96};
97
98static struct dm9000_plat_data cmx270_dm9000_platdata = {
99 .flags = DM9000_PLATF_32BITONLY,
100};
101
102static struct platform_device cmx2xx_dm9000_device = {
103 .name = "dm9000",
104 .id = 0,
105 .num_resources = ARRAY_SIZE(cmx270_dm9000_resource),
106 .dev = {
107 .platform_data = &cmx270_dm9000_platdata,
108 }
109};
110
111static void __init cmx2xx_init_dm9000(void)
112{
113 if (cpu_is_pxa25x())
114 cmx2xx_dm9000_device.resource = cmx255_dm9000_resource;
115 else
116 cmx2xx_dm9000_device.resource = cmx270_dm9000_resource;
117 platform_device_register(&cmx2xx_dm9000_device);
118}
119#else
120static inline void cmx2xx_init_dm9000(void) {}
121#endif
122
123/* UCB1400 touchscreen controller */
124#if defined(CONFIG_TOUCHSCREEN_UCB1400) || defined(CONFIG_TOUCHSCREEN_UCB1400_MODULE)
125static struct platform_device cmx2xx_ts_device = {
126 .name = "ucb1400_ts",
127 .id = -1,
128};
129
130static void __init cmx2xx_init_touchscreen(void)
131{
132 platform_device_register(&cmx2xx_ts_device);
133}
134#else
135static inline void cmx2xx_init_touchscreen(void) {}
136#endif
137
138/* CM-X270 LEDs */
139#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
140static struct gpio_led cmx2xx_leds[] = {
141 [0] = {
142 .name = "cm-x2xx:red",
143 .default_trigger = "nand-disk",
144 .active_low = 1,
145 },
146 [1] = {
147 .name = "cm-x2xx:green",
148 .default_trigger = "heartbeat",
149 .active_low = 1,
150 },
151};
152
153static struct gpio_led_platform_data cmx2xx_gpio_led_pdata = {
154 .num_leds = ARRAY_SIZE(cmx2xx_leds),
155 .leds = cmx2xx_leds,
156};
157
158static struct platform_device cmx2xx_led_device = {
159 .name = "leds-gpio",
160 .id = -1,
161 .dev = {
162 .platform_data = &cmx2xx_gpio_led_pdata,
163 },
164};
165
166static void __init cmx2xx_init_leds(void)
167{
168 if (cpu_is_pxa25x()) {
169 cmx2xx_leds[0].gpio = CMX255_GPIO_RED;
170 cmx2xx_leds[1].gpio = CMX255_GPIO_GREEN;
171 } else {
172 cmx2xx_leds[0].gpio = CMX270_GPIO_RED;
173 cmx2xx_leds[1].gpio = CMX270_GPIO_GREEN;
174 }
175 platform_device_register(&cmx2xx_led_device);
176}
177#else
178static inline void cmx2xx_init_leds(void) {}
179#endif
180
181#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
182/*
183 Display definitions
184 keep these for backwards compatibility, although symbolic names (as
185 e.g. in lpd270.c) looks better
186*/
187#define MTYPE_STN320x240 0
188#define MTYPE_TFT640x480 1
189#define MTYPE_CRT640x480 2
190#define MTYPE_CRT800x600 3
191#define MTYPE_TFT320x240 6
192#define MTYPE_STN640x480 7
193
194static struct pxafb_mode_info generic_stn_320x240_mode = {
195 .pixclock = 76923,
196 .bpp = 8,
197 .xres = 320,
198 .yres = 240,
199 .hsync_len = 3,
200 .vsync_len = 2,
201 .left_margin = 3,
202 .upper_margin = 0,
203 .right_margin = 3,
204 .lower_margin = 0,
205 .sync = (FB_SYNC_HOR_HIGH_ACT |
206 FB_SYNC_VERT_HIGH_ACT),
207 .cmap_greyscale = 0,
208};
209
210static struct pxafb_mach_info generic_stn_320x240 = {
211 .modes = &generic_stn_320x240_mode,
212 .num_modes = 1,
213 .lccr0 = 0,
214 .lccr3 = (LCCR3_PixClkDiv(0x03) |
215 LCCR3_Acb(0xff) |
216 LCCR3_PCP),
217 .cmap_inverse = 0,
218 .cmap_static = 0,
219};
220
221static struct pxafb_mode_info generic_tft_640x480_mode = {
222 .pixclock = 38461,
223 .bpp = 8,
224 .xres = 640,
225 .yres = 480,
226 .hsync_len = 60,
227 .vsync_len = 2,
228 .left_margin = 70,
229 .upper_margin = 10,
230 .right_margin = 70,
231 .lower_margin = 5,
232 .sync = 0,
233 .cmap_greyscale = 0,
234};
235
236static struct pxafb_mach_info generic_tft_640x480 = {
237 .modes = &generic_tft_640x480_mode,
238 .num_modes = 1,
239 .lccr0 = (LCCR0_PAS),
240 .lccr3 = (LCCR3_PixClkDiv(0x01) |
241 LCCR3_Acb(0xff) |
242 LCCR3_PCP),
243 .cmap_inverse = 0,
244 .cmap_static = 0,
245};
246
247static struct pxafb_mode_info generic_crt_640x480_mode = {
248 .pixclock = 38461,
249 .bpp = 8,
250 .xres = 640,
251 .yres = 480,
252 .hsync_len = 63,
253 .vsync_len = 2,
254 .left_margin = 81,
255 .upper_margin = 33,
256 .right_margin = 16,
257 .lower_margin = 10,
258 .sync = (FB_SYNC_HOR_HIGH_ACT |
259 FB_SYNC_VERT_HIGH_ACT),
260 .cmap_greyscale = 0,
261};
262
263static struct pxafb_mach_info generic_crt_640x480 = {
264 .modes = &generic_crt_640x480_mode,
265 .num_modes = 1,
266 .lccr0 = (LCCR0_PAS),
267 .lccr3 = (LCCR3_PixClkDiv(0x01) |
268 LCCR3_Acb(0xff)),
269 .cmap_inverse = 0,
270 .cmap_static = 0,
271};
272
273static struct pxafb_mode_info generic_crt_800x600_mode = {
274 .pixclock = 28846,
275 .bpp = 8,
276 .xres = 800,
277 .yres = 600,
278 .hsync_len = 63,
279 .vsync_len = 2,
280 .left_margin = 26,
281 .upper_margin = 21,
282 .right_margin = 26,
283 .lower_margin = 11,
284 .sync = (FB_SYNC_HOR_HIGH_ACT |
285 FB_SYNC_VERT_HIGH_ACT),
286 .cmap_greyscale = 0,
287};
288
289static struct pxafb_mach_info generic_crt_800x600 = {
290 .modes = &generic_crt_800x600_mode,
291 .num_modes = 1,
292 .lccr0 = (LCCR0_PAS),
293 .lccr3 = (LCCR3_PixClkDiv(0x02) |
294 LCCR3_Acb(0xff)),
295 .cmap_inverse = 0,
296 .cmap_static = 0,
297};
298
299static struct pxafb_mode_info generic_tft_320x240_mode = {
300 .pixclock = 134615,
301 .bpp = 16,
302 .xres = 320,
303 .yres = 240,
304 .hsync_len = 63,
305 .vsync_len = 7,
306 .left_margin = 75,
307 .upper_margin = 0,
308 .right_margin = 15,
309 .lower_margin = 15,
310 .sync = 0,
311 .cmap_greyscale = 0,
312};
313
314static struct pxafb_mach_info generic_tft_320x240 = {
315 .modes = &generic_tft_320x240_mode,
316 .num_modes = 1,
317 .lccr0 = (LCCR0_PAS),
318 .lccr3 = (LCCR3_PixClkDiv(0x06) |
319 LCCR3_Acb(0xff) |
320 LCCR3_PCP),
321 .cmap_inverse = 0,
322 .cmap_static = 0,
323};
324
325static struct pxafb_mode_info generic_stn_640x480_mode = {
326 .pixclock = 57692,
327 .bpp = 8,
328 .xres = 640,
329 .yres = 480,
330 .hsync_len = 4,
331 .vsync_len = 2,
332 .left_margin = 10,
333 .upper_margin = 5,
334 .right_margin = 10,
335 .lower_margin = 5,
336 .sync = (FB_SYNC_HOR_HIGH_ACT |
337 FB_SYNC_VERT_HIGH_ACT),
338 .cmap_greyscale = 0,
339};
340
341static struct pxafb_mach_info generic_stn_640x480 = {
342 .modes = &generic_stn_640x480_mode,
343 .num_modes = 1,
344 .lccr0 = 0,
345 .lccr3 = (LCCR3_PixClkDiv(0x02) |
346 LCCR3_Acb(0xff)),
347 .cmap_inverse = 0,
348 .cmap_static = 0,
349};
350
351static struct pxafb_mach_info *cmx2xx_display = &generic_crt_640x480;
352
353static int __init cmx2xx_set_display(char *str)
354{
355 int disp_type = simple_strtol(str, NULL, 0);
356 switch (disp_type) {
357 case MTYPE_STN320x240:
358 cmx2xx_display = &generic_stn_320x240;
359 break;
360 case MTYPE_TFT640x480:
361 cmx2xx_display = &generic_tft_640x480;
362 break;
363 case MTYPE_CRT640x480:
364 cmx2xx_display = &generic_crt_640x480;
365 break;
366 case MTYPE_CRT800x600:
367 cmx2xx_display = &generic_crt_800x600;
368 break;
369 case MTYPE_TFT320x240:
370 cmx2xx_display = &generic_tft_320x240;
371 break;
372 case MTYPE_STN640x480:
373 cmx2xx_display = &generic_stn_640x480;
374 break;
375 default: /* fallback to CRT 640x480 */
376 cmx2xx_display = &generic_crt_640x480;
377 break;
378 }
379 return 1;
380}
381
382/*
383 This should be done really early to get proper configuration for
384 frame buffer.
385 Indeed, pxafb parameters can be used istead, but CM-X2XX bootloader
386 has limitied line length for kernel command line, and also it will
387 break compatibitlty with proprietary releases already in field.
388*/
389__setup("monitor=", cmx2xx_set_display);
390
391static void __init cmx2xx_init_display(void)
392{
393 set_pxa_fb_info(cmx2xx_display);
394}
395#else
396static inline void cmx2xx_init_display(void) {}
397#endif
398
399#ifdef CONFIG_PM
400static unsigned long sleep_save_msc[10];
401
402static int cmx2xx_suspend(struct sys_device *dev, pm_message_t state)
403{
404 cmx2xx_pci_suspend();
405
406 /* save MSC registers */
407 sleep_save_msc[0] = MSC0;
408 sleep_save_msc[1] = MSC1;
409 sleep_save_msc[2] = MSC2;
410
411 /* setup power saving mode registers */
412 PCFR = 0x0;
413 PSLR = 0xff400000;
414 PMCR = 0x00000005;
415 PWER = 0x80000000;
416 PFER = 0x00000000;
417 PRER = 0x00000000;
418 PGSR0 = 0xC0018800;
419 PGSR1 = 0x004F0002;
420 PGSR2 = 0x6021C000;
421 PGSR3 = 0x00020000;
422
423 return 0;
424}
425
426static int cmx2xx_resume(struct sys_device *dev)
427{
428 cmx2xx_pci_resume();
429
430 /* restore MSC registers */
431 MSC0 = sleep_save_msc[0];
432 MSC1 = sleep_save_msc[1];
433 MSC2 = sleep_save_msc[2];
434
435 return 0;
436}
437
438static struct sysdev_class cmx2xx_pm_sysclass = {
439 .name = "pm",
440 .resume = cmx2xx_resume,
441 .suspend = cmx2xx_suspend,
442};
443
444static struct sys_device cmx2xx_pm_device = {
445 .cls = &cmx2xx_pm_sysclass,
446};
447
448static int __init cmx2xx_pm_init(void)
449{
450 int error;
451 error = sysdev_class_register(&cmx2xx_pm_sysclass);
452 if (error == 0)
453 error = sysdev_register(&cmx2xx_pm_device);
454 return error;
455}
456#else
457static int __init cmx2xx_pm_init(void) { return 0; }
458#endif
459
460#if defined(CONFIG_SND_PXA2XX_AC97) || defined(CONFIG_SND_PXA2XX_AC97_MODULE)
461static void __init cmx2xx_init_ac97(void)
462{
463 pxa_set_ac97_info(NULL);
464}
465#else
466static inline void cmx2xx_init_ac97(void) {}
467#endif
468
469static void __init cmx2xx_init(void)
470{
471 cmx2xx_pm_init();
472
473 if (cpu_is_pxa25x())
474 cmx255_init();
475 else
476 cmx270_init();
477
478 cmx2xx_init_dm9000();
479 cmx2xx_init_display();
480 cmx2xx_init_ac97();
481 cmx2xx_init_touchscreen();
482 cmx2xx_init_leds();
483}
484
485static void __init cmx2xx_init_irq(void)
486{
487 pxa27x_init_irq();
488
489 if (cpu_is_pxa25x()) {
490 pxa25x_init_irq();
491 cmx2xx_pci_init_irq(CMX255_GPIO_IT8152_IRQ);
492 } else {
493 pxa27x_init_irq();
494 cmx2xx_pci_init_irq(CMX270_GPIO_IT8152_IRQ);
495 }
496}
497
498#ifdef CONFIG_PCI
499/* Map PCI companion statically */
500static struct map_desc cmx2xx_io_desc[] __initdata = {
501 [0] = { /* PCI bridge */
502 .virtual = CMX2XX_IT8152_VIRT,
503 .pfn = __phys_to_pfn(PXA_CS4_PHYS),
504 .length = SZ_64M,
505 .type = MT_DEVICE
506 },
507};
508
509static void __init cmx2xx_map_io(void)
510{
511 pxa_map_io();
512 iotable_init(cmx2xx_io_desc, ARRAY_SIZE(cmx2xx_io_desc));
513
514 it8152_base_address = CMX2XX_IT8152_VIRT;
515}
516#else
517static void __init cmx2xx_map_io(void)
518{
519 pxa_map_io();
520}
521#endif
522
523MACHINE_START(ARMCORE, "Compulab CM-X2XX")
524 .boot_params = 0xa0000100,
525 .phys_io = 0x40000000,
526 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
527 .map_io = cmx2xx_map_io,
528 .init_irq = cmx2xx_init_irq,
529 .timer = &pxa_timer,
530 .init_machine = cmx2xx_init,
531MACHINE_END
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
new file mode 100644
index 000000000000..deb46cd144bf
--- /dev/null
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -0,0 +1,465 @@
1/*
2 * linux/arch/arm/mach-pxa/cm-x300.c
3 *
4 * Support for the CompuLab CM-X300 modules
5 *
6 * Copyright (C) 2008 CompuLab Ltd.
7 *
8 * Mike Rapoport <mike@compulab.co.il>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 */
14
15#include <linux/module.h>
16#include <linux/kernel.h>
17#include <linux/interrupt.h>
18#include <linux/init.h>
19#include <linux/platform_device.h>
20
21#include <linux/gpio.h>
22#include <linux/dm9000.h>
23#include <linux/leds.h>
24
25#include <linux/i2c.h>
26#include <linux/i2c/pca953x.h>
27
28#include <asm/mach-types.h>
29#include <asm/mach/arch.h>
30
31#include <mach/mfp-pxa300.h>
32
33#include <mach/hardware.h>
34#include <mach/gpio.h>
35#include <mach/pxafb.h>
36#include <mach/mmc.h>
37#include <mach/ohci.h>
38#include <mach/i2c.h>
39#include <mach/pxa3xx_nand.h>
40
41#include <asm/mach/map.h>
42
43#include "generic.h"
44
45#define CM_X300_ETH_PHYS 0x08000010
46
47#define GPIO82_MMC2_IRQ (82)
48#define GPIO85_MMC2_WP (85)
49
50#define CM_X300_MMC2_IRQ IRQ_GPIO(GPIO82_MMC2_IRQ)
51
52static mfp_cfg_t cm_x300_mfp_cfg[] __initdata = {
53 /* LCD */
54 GPIO54_LCD_LDD_0,
55 GPIO55_LCD_LDD_1,
56 GPIO56_LCD_LDD_2,
57 GPIO57_LCD_LDD_3,
58 GPIO58_LCD_LDD_4,
59 GPIO59_LCD_LDD_5,
60 GPIO60_LCD_LDD_6,
61 GPIO61_LCD_LDD_7,
62 GPIO62_LCD_LDD_8,
63 GPIO63_LCD_LDD_9,
64 GPIO64_LCD_LDD_10,
65 GPIO65_LCD_LDD_11,
66 GPIO66_LCD_LDD_12,
67 GPIO67_LCD_LDD_13,
68 GPIO68_LCD_LDD_14,
69 GPIO69_LCD_LDD_15,
70 GPIO72_LCD_FCLK,
71 GPIO73_LCD_LCLK,
72 GPIO74_LCD_PCLK,
73 GPIO75_LCD_BIAS,
74
75 /* BTUART */
76 GPIO111_UART2_RTS,
77 GPIO112_UART2_RXD | MFP_LPM_EDGE_FALL,
78 GPIO113_UART2_TXD,
79 GPIO114_UART2_CTS | MFP_LPM_EDGE_BOTH,
80
81 /* STUART */
82 GPIO109_UART3_TXD,
83 GPIO110_UART3_RXD | MFP_LPM_EDGE_FALL,
84
85 /* AC97 */
86 GPIO23_AC97_nACRESET,
87 GPIO24_AC97_SYSCLK,
88 GPIO29_AC97_BITCLK,
89 GPIO25_AC97_SDATA_IN_0,
90 GPIO27_AC97_SDATA_OUT,
91 GPIO28_AC97_SYNC,
92
93 /* Keypad */
94 GPIO115_KP_MKIN_0 | MFP_LPM_EDGE_BOTH,
95 GPIO116_KP_MKIN_1 | MFP_LPM_EDGE_BOTH,
96 GPIO117_KP_MKIN_2 | MFP_LPM_EDGE_BOTH,
97 GPIO118_KP_MKIN_3 | MFP_LPM_EDGE_BOTH,
98 GPIO119_KP_MKIN_4 | MFP_LPM_EDGE_BOTH,
99 GPIO120_KP_MKIN_5 | MFP_LPM_EDGE_BOTH,
100 GPIO2_2_KP_MKIN_6 | MFP_LPM_EDGE_BOTH,
101 GPIO3_2_KP_MKIN_7 | MFP_LPM_EDGE_BOTH,
102 GPIO121_KP_MKOUT_0,
103 GPIO122_KP_MKOUT_1,
104 GPIO123_KP_MKOUT_2,
105 GPIO124_KP_MKOUT_3,
106 GPIO125_KP_MKOUT_4,
107 GPIO4_2_KP_MKOUT_5,
108
109 /* MMC1 */
110 GPIO3_MMC1_DAT0,
111 GPIO4_MMC1_DAT1 | MFP_LPM_EDGE_BOTH,
112 GPIO5_MMC1_DAT2,
113 GPIO6_MMC1_DAT3,
114 GPIO7_MMC1_CLK,
115 GPIO8_MMC1_CMD, /* CMD0 for slot 0 */
116
117 /* MMC2 */
118 GPIO9_MMC2_DAT0,
119 GPIO10_MMC2_DAT1 | MFP_LPM_EDGE_BOTH,
120 GPIO11_MMC2_DAT2,
121 GPIO12_MMC2_DAT3,
122 GPIO13_MMC2_CLK,
123 GPIO14_MMC2_CMD,
124
125 /* FFUART */
126 GPIO30_UART1_RXD | MFP_LPM_EDGE_FALL,
127 GPIO31_UART1_TXD,
128 GPIO32_UART1_CTS,
129 GPIO37_UART1_RTS,
130 GPIO33_UART1_DCD,
131 GPIO34_UART1_DSR | MFP_LPM_EDGE_FALL,
132 GPIO35_UART1_RI,
133 GPIO36_UART1_DTR,
134
135 /* GPIOs */
136 GPIO79_GPIO, /* LED */
137 GPIO82_GPIO | MFP_PULL_HIGH, /* MMC CD */
138 GPIO85_GPIO, /* MMC WP */
139 GPIO99_GPIO, /* Ethernet IRQ */
140};
141
142#if defined(CONFIG_DM9000) || defined(CONFIG_DM9000_MODULE)
143static struct resource dm9000_resources[] = {
144 [0] = {
145 .start = CM_X300_ETH_PHYS,
146 .end = CM_X300_ETH_PHYS + 0x3,
147 .flags = IORESOURCE_MEM,
148 },
149 [1] = {
150 .start = CM_X300_ETH_PHYS + 0x4,
151 .end = CM_X300_ETH_PHYS + 0x4 + 500,
152 .flags = IORESOURCE_MEM,
153 },
154 [2] = {
155 .start = IRQ_GPIO(mfp_to_gpio(MFP_PIN_GPIO99)),
156 .end = IRQ_GPIO(mfp_to_gpio(MFP_PIN_GPIO99)),
157 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
158 }
159};
160
161static struct dm9000_plat_data cm_x300_dm9000_platdata = {
162 .flags = DM9000_PLATF_16BITONLY,
163};
164
165static struct platform_device dm9000_device = {
166 .name = "dm9000",
167 .id = 0,
168 .num_resources = ARRAY_SIZE(dm9000_resources),
169 .resource = dm9000_resources,
170 .dev = {
171 .platform_data = &cm_x300_dm9000_platdata,
172 }
173
174};
175
176static void __init cm_x300_init_dm9000(void)
177{
178 platform_device_register(&dm9000_device);
179}
180#else
181static inline void cm_x300_init_dm9000(void) {}
182#endif
183
184#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
185static struct pxafb_mode_info cm_x300_lcd_modes[] = {
186 [0] = {
187 .pixclock = 38000,
188 .bpp = 16,
189 .xres = 480,
190 .yres = 640,
191 .hsync_len = 8,
192 .vsync_len = 2,
193 .left_margin = 8,
194 .upper_margin = 0,
195 .right_margin = 24,
196 .lower_margin = 4,
197 .cmap_greyscale = 0,
198 },
199 [1] = {
200 .pixclock = 153800,
201 .bpp = 16,
202 .xres = 240,
203 .yres = 320,
204 .hsync_len = 8,
205 .vsync_len = 2,
206 .left_margin = 8,
207 .upper_margin = 2,
208 .right_margin = 88,
209 .lower_margin = 2,
210 .cmap_greyscale = 0,
211 },
212};
213
214static struct pxafb_mach_info cm_x300_lcd = {
215 .modes = cm_x300_lcd_modes,
216 .num_modes = 2,
217 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
218};
219
220static void __init cm_x300_init_lcd(void)
221{
222 set_pxa_fb_info(&cm_x300_lcd);
223}
224#else
225static inline void cm_x300_init_lcd(void) {}
226#endif
227
228#if defined(CONFIG_MTD_NAND_PXA3xx) || defined(CONFIG_MTD_NAND_PXA3xx_MODULE)
229static struct mtd_partition cm_x300_nand_partitions[] = {
230 [0] = {
231 .name = "OBM",
232 .offset = 0,
233 .size = SZ_256K,
234 .mask_flags = MTD_WRITEABLE, /* force read-only */
235 },
236 [1] = {
237 .name = "U-Boot",
238 .offset = MTDPART_OFS_APPEND,
239 .size = SZ_256K,
240 .mask_flags = MTD_WRITEABLE, /* force read-only */
241 },
242 [2] = {
243 .name = "Environment",
244 .offset = MTDPART_OFS_APPEND,
245 .size = SZ_256K,
246 },
247 [3] = {
248 .name = "reserved",
249 .offset = MTDPART_OFS_APPEND,
250 .size = SZ_256K + SZ_1M,
251 .mask_flags = MTD_WRITEABLE, /* force read-only */
252 },
253 [4] = {
254 .name = "kernel",
255 .offset = MTDPART_OFS_APPEND,
256 .size = SZ_4M,
257 },
258 [5] = {
259 .name = "fs",
260 .offset = MTDPART_OFS_APPEND,
261 .size = MTDPART_SIZ_FULL,
262 },
263};
264
265static struct pxa3xx_nand_platform_data cm_x300_nand_info = {
266 .enable_arbiter = 1,
267 .parts = cm_x300_nand_partitions,
268 .nr_parts = ARRAY_SIZE(cm_x300_nand_partitions),
269};
270
271static void __init cm_x300_init_nand(void)
272{
273 pxa3xx_set_nand_info(&cm_x300_nand_info);
274}
275#else
276static inline void cm_x300_init_nand(void) {}
277#endif
278
279#if defined(CONFIG_MMC) || defined(CONFIG_MMC_MODULE)
280/* The first MMC slot of CM-X300 is hardwired to Libertas card and has
281 no detection/ro pins */
282static int cm_x300_mci_init(struct device *dev,
283 irq_handler_t cm_x300_detect_int,
284 void *data)
285{
286 return 0;
287}
288
289static void cm_x300_mci_exit(struct device *dev, void *data)
290{
291}
292
293static struct pxamci_platform_data cm_x300_mci_platform_data = {
294 .detect_delay = 20,
295 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
296 .init = cm_x300_mci_init,
297 .exit = cm_x300_mci_exit,
298};
299
300static int cm_x300_mci2_ro(struct device *dev)
301{
302 return gpio_get_value(GPIO85_MMC2_WP);
303}
304
305static int cm_x300_mci2_init(struct device *dev,
306 irq_handler_t cm_x300_detect_int,
307 void *data)
308{
309 int err;
310
311 /*
312 * setup GPIO for CM-X300 MMC controller
313 */
314 err = gpio_request(GPIO82_MMC2_IRQ, "mmc card detect");
315 if (err)
316 goto err_request_cd;
317 gpio_direction_input(GPIO82_MMC2_IRQ);
318
319 err = gpio_request(GPIO85_MMC2_WP, "mmc write protect");
320 if (err)
321 goto err_request_wp;
322 gpio_direction_input(GPIO85_MMC2_WP);
323
324 err = request_irq(CM_X300_MMC2_IRQ, cm_x300_detect_int,
325 IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
326 "MMC card detect", data);
327 if (err) {
328 printk(KERN_ERR "%s: MMC/SD/SDIO: "
329 "can't request card detect IRQ\n", __func__);
330 goto err_request_irq;
331 }
332
333 return 0;
334
335err_request_irq:
336 gpio_free(GPIO85_MMC2_WP);
337err_request_wp:
338 gpio_free(GPIO82_MMC2_IRQ);
339err_request_cd:
340 return err;
341}
342
343static void cm_x300_mci2_exit(struct device *dev, void *data)
344{
345 free_irq(CM_X300_MMC2_IRQ, data);
346 gpio_free(GPIO82_MMC2_IRQ);
347 gpio_free(GPIO85_MMC2_WP);
348}
349
350static struct pxamci_platform_data cm_x300_mci2_platform_data = {
351 .detect_delay = 20,
352 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
353 .init = cm_x300_mci2_init,
354 .exit = cm_x300_mci2_exit,
355 .get_ro = cm_x300_mci2_ro,
356};
357
358static void __init cm_x300_init_mmc(void)
359{
360 pxa_set_mci_info(&cm_x300_mci_platform_data);
361 pxa3xx_set_mci2_info(&cm_x300_mci2_platform_data);
362}
363#else
364static inline void cm_x300_init_mmc(void) {}
365#endif
366
367#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
368static struct pxaohci_platform_data cm_x300_ohci_platform_data = {
369 .port_mode = PMM_PERPORT_MODE,
370 .flags = ENABLE_PORT1 | ENABLE_PORT2 | POWER_CONTROL_LOW,
371};
372
373static void __init cm_x300_init_ohci(void)
374{
375 pxa_set_ohci_info(&cm_x300_ohci_platform_data);
376}
377#else
378static inline void cm_x300_init_ohci(void) {}
379#endif
380
381#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
382static struct gpio_led cm_x300_leds[] = {
383 [0] = {
384 .name = "cm-x300:green",
385 .default_trigger = "heartbeat",
386 .gpio = 79,
387 .active_low = 1,
388 },
389};
390
391static struct gpio_led_platform_data cm_x300_gpio_led_pdata = {
392 .num_leds = ARRAY_SIZE(cm_x300_leds),
393 .leds = cm_x300_leds,
394};
395
396static struct platform_device cm_x300_led_device = {
397 .name = "leds-gpio",
398 .id = -1,
399 .dev = {
400 .platform_data = &cm_x300_gpio_led_pdata,
401 },
402};
403
404static void __init cm_x300_init_leds(void)
405{
406 platform_device_register(&cm_x300_led_device);
407}
408#else
409static inline void cm_x300_init_leds(void) {}
410#endif
411
412#if defined(CONFIG_I2C) || defined(CONFIG_I2C_MODULE)
413/* PCA9555 */
414static struct pca953x_platform_data cm_x300_gpio_ext_pdata_0 = {
415 .gpio_base = 128,
416};
417
418static struct pca953x_platform_data cm_x300_gpio_ext_pdata_1 = {
419 .gpio_base = 144,
420};
421
422static struct i2c_board_info cm_x300_gpio_ext_info[] = {
423 [0] = {
424 I2C_BOARD_INFO("pca9555", 0x24),
425 .platform_data = &cm_x300_gpio_ext_pdata_0,
426 },
427 [1] = {
428 I2C_BOARD_INFO("pca9555", 0x25),
429 .platform_data = &cm_x300_gpio_ext_pdata_1,
430 },
431};
432
433static void __init cm_x300_init_i2c(void)
434{
435 pxa_set_i2c_info(NULL);
436 i2c_register_board_info(0, cm_x300_gpio_ext_info,
437 ARRAY_SIZE(cm_x300_gpio_ext_info));
438}
439#else
440static inline void cm_x300_init_i2c(void) {}
441#endif
442
443static void __init cm_x300_init(void)
444{
445 /* board-processor specific GPIO initialization */
446 pxa3xx_mfp_config(ARRAY_AND_SIZE(cm_x300_mfp_cfg));
447
448 cm_x300_init_dm9000();
449 cm_x300_init_lcd();
450 cm_x300_init_ohci();
451 cm_x300_init_mmc();
452 cm_x300_init_nand();
453 cm_x300_init_leds();
454 cm_x300_init_i2c();
455}
456
457MACHINE_START(CM_X300, "CM-X300 module")
458 .phys_io = 0x40000000,
459 .boot_params = 0xa0000100,
460 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
461 .map_io = pxa_map_io,
462 .init_irq = pxa3xx_init_irq,
463 .timer = &pxa_timer,
464 .init_machine = cm_x300_init,
465MACHINE_END
diff --git a/arch/arm/mach-pxa/colibri.c b/arch/arm/mach-pxa/colibri.c
index abce13c846c5..e8473624427e 100644
--- a/arch/arm/mach-pxa/colibri.c
+++ b/arch/arm/mach-pxa/colibri.c
@@ -29,12 +29,17 @@
29#include <asm/mach/irq.h> 29#include <asm/mach/irq.h>
30#include <asm/mach/flash.h> 30#include <asm/mach/flash.h>
31#include <mach/pxa-regs.h> 31#include <mach/pxa-regs.h>
32#include <mach/pxa2xx-gpio.h> 32#include <mach/mfp-pxa27x.h>
33#include <mach/colibri.h> 33#include <mach/colibri.h>
34 34
35#include "generic.h" 35#include "generic.h"
36#include "devices.h" 36#include "devices.h"
37 37
38static unsigned long colibri_pin_config[] __initdata = {
39 GPIO78_nCS_2, /* Ethernet CS */
40 GPIO114_GPIO, /* Ethernet IRQ */
41};
42
38/* 43/*
39 * Flash 44 * Flash
40 */ 45 */
@@ -116,9 +121,7 @@ static struct platform_device *colibri_devices[] __initdata = {
116 121
117static void __init colibri_init(void) 122static void __init colibri_init(void)
118{ 123{
119 /* DM9000 LAN */ 124 pxa2xx_mfp_config(ARRAY_AND_SIZE(colibri_pin_config));
120 pxa_gpio_mode(GPIO78_nCS_2_MD);
121 pxa_gpio_mode(GPIO_DM9000 | GPIO_IN);
122 125
123 platform_add_devices(colibri_devices, ARRAY_SIZE(colibri_devices)); 126 platform_add_devices(colibri_devices, ARRAY_SIZE(colibri_devices));
124} 127}
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c
index 123a950db466..65558d6aa220 100644
--- a/arch/arm/mach-pxa/corgi.c
+++ b/arch/arm/mach-pxa/corgi.c
@@ -20,7 +20,12 @@
20#include <linux/interrupt.h> 20#include <linux/interrupt.h>
21#include <linux/mmc/host.h> 21#include <linux/mmc/host.h>
22#include <linux/pm.h> 22#include <linux/pm.h>
23#include <linux/gpio.h>
23#include <linux/backlight.h> 24#include <linux/backlight.h>
25#include <linux/io.h>
26#include <linux/spi/spi.h>
27#include <linux/spi/ads7846.h>
28#include <linux/spi/corgi_lcd.h>
24#include <video/w100fb.h> 29#include <video/w100fb.h>
25 30
26#include <asm/setup.h> 31#include <asm/setup.h>
@@ -28,7 +33,6 @@
28#include <asm/mach-types.h> 33#include <asm/mach-types.h>
29#include <mach/hardware.h> 34#include <mach/hardware.h>
30#include <asm/irq.h> 35#include <asm/irq.h>
31#include <asm/io.h>
32#include <asm/system.h> 36#include <asm/system.h>
33 37
34#include <asm/mach/arch.h> 38#include <asm/mach/arch.h>
@@ -37,10 +41,12 @@
37 41
38#include <mach/pxa-regs.h> 42#include <mach/pxa-regs.h>
39#include <mach/pxa2xx-regs.h> 43#include <mach/pxa2xx-regs.h>
40#include <mach/pxa2xx-gpio.h> 44#include <mach/mfp-pxa25x.h>
45#include <mach/i2c.h>
41#include <mach/irda.h> 46#include <mach/irda.h>
42#include <mach/mmc.h> 47#include <mach/mmc.h>
43#include <mach/udc.h> 48#include <mach/udc.h>
49#include <mach/pxa2xx_spi.h>
44#include <mach/corgi.h> 50#include <mach/corgi.h>
45#include <mach/sharpsl.h> 51#include <mach/sharpsl.h>
46 52
@@ -51,6 +57,61 @@
51#include "devices.h" 57#include "devices.h"
52#include "sharpsl.h" 58#include "sharpsl.h"
53 59
60static unsigned long corgi_pin_config[] __initdata = {
61 /* Static Memory I/O */
62 GPIO78_nCS_2, /* w100fb */
63 GPIO80_nCS_4, /* scoop */
64
65 /* SSP1 */
66 GPIO23_SSP1_SCLK,
67 GPIO25_SSP1_TXD,
68 GPIO26_SSP1_RXD,
69 GPIO24_GPIO, /* CORGI_GPIO_ADS7846_CS - SFRM as chip select */
70
71 /* I2S */
72 GPIO28_I2S_BITCLK_OUT,
73 GPIO29_I2S_SDATA_IN,
74 GPIO30_I2S_SDATA_OUT,
75 GPIO31_I2S_SYNC,
76 GPIO32_I2S_SYSCLK,
77
78 /* Infra-Red */
79 GPIO47_FICP_TXD,
80 GPIO46_FICP_RXD,
81
82 /* FFUART */
83 GPIO40_FFUART_DTR,
84 GPIO41_FFUART_RTS,
85 GPIO39_FFUART_TXD,
86 GPIO37_FFUART_DSR,
87 GPIO34_FFUART_RXD,
88 GPIO35_FFUART_CTS,
89
90 /* PC Card */
91 GPIO48_nPOE,
92 GPIO49_nPWE,
93 GPIO50_nPIOR,
94 GPIO51_nPIOW,
95 GPIO52_nPCE_1,
96 GPIO53_nPCE_2,
97 GPIO54_nPSKTSEL,
98 GPIO55_nPREG,
99 GPIO56_nPWAIT,
100 GPIO57_nIOIS16,
101
102 /* MMC */
103 GPIO6_MMC_CLK,
104 GPIO8_MMC_CS0,
105
106 /* GPIO */
107 GPIO9_GPIO, /* CORGI_GPIO_nSD_DETECT */
108 GPIO7_GPIO, /* CORGI_GPIO_nSD_WP */
109 GPIO33_GPIO, /* CORGI_GPIO_SD_PWR */
110 GPIO22_GPIO, /* CORGI_GPIO_IR_ON */
111 GPIO44_GPIO, /* CORGI_GPIO_HSYNC */
112
113 GPIO1_GPIO | WAKEUP_ON_EDGE_RISE,
114};
54 115
55/* 116/*
56 * Corgi SCOOP Device 117 * Corgi SCOOP Device
@@ -66,6 +127,7 @@ static struct resource corgi_scoop_resources[] = {
66static struct scoop_config corgi_scoop_setup = { 127static struct scoop_config corgi_scoop_setup = {
67 .io_dir = CORGI_SCOOP_IO_DIR, 128 .io_dir = CORGI_SCOOP_IO_DIR,
68 .io_out = CORGI_SCOOP_IO_OUT, 129 .io_out = CORGI_SCOOP_IO_OUT,
130 .gpio_base = CORGI_SCOOP_GPIO_BASE,
69}; 131};
70 132
71struct platform_device corgiscoop_device = { 133struct platform_device corgiscoop_device = {
@@ -78,27 +140,6 @@ struct platform_device corgiscoop_device = {
78 .resource = corgi_scoop_resources, 140 .resource = corgi_scoop_resources,
79}; 141};
80 142
81static void corgi_pcmcia_init(void)
82{
83 /* Setup default state of GPIO outputs
84 before we enable them as outputs. */
85 GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
86 GPIO_bit(GPIO49_nPWE) | GPIO_bit(GPIO50_nPIOR) |
87 GPIO_bit(GPIO51_nPIOW) | GPIO_bit(GPIO52_nPCE_1) |
88 GPIO_bit(GPIO53_nPCE_2);
89
90 pxa_gpio_mode(GPIO48_nPOE_MD);
91 pxa_gpio_mode(GPIO49_nPWE_MD);
92 pxa_gpio_mode(GPIO50_nPIOR_MD);
93 pxa_gpio_mode(GPIO51_nPIOW_MD);
94 pxa_gpio_mode(GPIO55_nPREG_MD);
95 pxa_gpio_mode(GPIO56_nPWAIT_MD);
96 pxa_gpio_mode(GPIO57_nIOIS16_MD);
97 pxa_gpio_mode(GPIO52_nPCE_1_MD);
98 pxa_gpio_mode(GPIO53_nPCE_2_MD);
99 pxa_gpio_mode(GPIO54_pSKTSEL_MD);
100}
101
102static struct scoop_pcmcia_dev corgi_pcmcia_scoop[] = { 143static struct scoop_pcmcia_dev corgi_pcmcia_scoop[] = {
103{ 144{
104 .dev = &corgiscoop_device.dev, 145 .dev = &corgiscoop_device.dev,
@@ -111,58 +152,10 @@ static struct scoop_pcmcia_dev corgi_pcmcia_scoop[] = {
111static struct scoop_pcmcia_config corgi_pcmcia_config = { 152static struct scoop_pcmcia_config corgi_pcmcia_config = {
112 .devs = &corgi_pcmcia_scoop[0], 153 .devs = &corgi_pcmcia_scoop[0],
113 .num_devs = 1, 154 .num_devs = 1,
114 .pcmcia_init = corgi_pcmcia_init,
115}; 155};
116 156
117EXPORT_SYMBOL(corgiscoop_device); 157EXPORT_SYMBOL(corgiscoop_device);
118 158
119
120/*
121 * Corgi SSP Device
122 *
123 * Set the parent as the scoop device because a lot of SSP devices
124 * also use scoop functions and this makes the power up/down order
125 * work correctly.
126 */
127struct platform_device corgissp_device = {
128 .name = "corgi-ssp",
129 .dev = {
130 .parent = &corgiscoop_device.dev,
131 },
132 .id = -1,
133};
134
135struct corgissp_machinfo corgi_ssp_machinfo = {
136 .port = 1,
137 .cs_lcdcon = CORGI_GPIO_LCDCON_CS,
138 .cs_ads7846 = CORGI_GPIO_ADS7846_CS,
139 .cs_max1111 = CORGI_GPIO_MAX1111_CS,
140 .clk_lcdcon = 76,
141 .clk_ads7846 = 2,
142 .clk_max1111 = 8,
143};
144
145
146/*
147 * LCD/Framebuffer
148 */
149static void w100_lcdtg_suspend(struct w100fb_par *par)
150{
151 corgi_lcdtg_suspend();
152}
153
154static void w100_lcdtg_init(struct w100fb_par *par)
155{
156 corgi_lcdtg_hw_init(par->xres);
157}
158
159
160static struct w100_tg_info corgi_lcdtg_info = {
161 .change = w100_lcdtg_init,
162 .suspend = w100_lcdtg_suspend,
163 .resume = w100_lcdtg_init,
164};
165
166static struct w100_mem_info corgi_fb_mem = { 159static struct w100_mem_info corgi_fb_mem = {
167 .ext_cntl = 0x00040003, 160 .ext_cntl = 0x00040003,
168 .sdram_mode_reg = 0x00650021, 161 .sdram_mode_reg = 0x00650021,
@@ -241,7 +234,6 @@ static struct w100_mode corgi_fb_modes[] = {
241}; 234};
242 235
243static struct w100fb_mach_info corgi_fb_info = { 236static struct w100fb_mach_info corgi_fb_info = {
244 .tg = &corgi_lcdtg_info,
245 .init_mode = INIT_MODE_ROTATED, 237 .init_mode = INIT_MODE_ROTATED,
246 .mem = &corgi_fb_mem, 238 .mem = &corgi_fb_mem,
247 .regs = &corgi_fb_regs, 239 .regs = &corgi_fb_regs,
@@ -267,60 +259,10 @@ static struct platform_device corgifb_device = {
267 .resource = corgi_fb_resources, 259 .resource = corgi_fb_resources,
268 .dev = { 260 .dev = {
269 .platform_data = &corgi_fb_info, 261 .platform_data = &corgi_fb_info,
270 .parent = &corgissp_device.dev,
271 }, 262 },
272 263
273}; 264};
274 265
275
276/*
277 * Corgi Backlight Device
278 */
279static void corgi_bl_kick_battery(void)
280{
281 void (*kick_batt)(void);
282
283 kick_batt = symbol_get(sharpsl_battery_kick);
284 if (kick_batt) {
285 kick_batt();
286 symbol_put(sharpsl_battery_kick);
287 }
288}
289
290static void corgi_bl_set_intensity(int intensity)
291{
292 if (intensity > 0x10)
293 intensity += 0x10;
294
295 /* Bits 0-4 are accessed via the SSP interface */
296 corgi_ssp_blduty_set(intensity & 0x1f);
297
298 /* Bit 5 is via SCOOP */
299 if (intensity & 0x0020)
300 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT);
301 else
302 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT);
303}
304
305static struct generic_bl_info corgi_bl_machinfo = {
306 .name = "corgi-bl",
307 .max_intensity = 0x2f,
308 .default_intensity = 0x1f,
309 .limit_mask = 0x0b,
310 .set_bl_intensity = corgi_bl_set_intensity,
311 .kick_battery = corgi_bl_kick_battery,
312};
313
314static struct platform_device corgibl_device = {
315 .name = "generic-bl",
316 .dev = {
317 .parent = &corgifb_device.dev,
318 .platform_data = &corgi_bl_machinfo,
319 },
320 .id = -1,
321};
322
323
324/* 266/*
325 * Corgi Keyboard Device 267 * Corgi Keyboard Device
326 */ 268 */
@@ -329,75 +271,35 @@ static struct platform_device corgikbd_device = {
329 .id = -1, 271 .id = -1,
330}; 272};
331 273
332
333/* 274/*
334 * Corgi LEDs 275 * Corgi LEDs
335 */ 276 */
336static struct platform_device corgiled_device = { 277static struct gpio_led corgi_gpio_leds[] = {
337 .name = "corgi-led", 278 {
338 .id = -1, 279 .name = "corgi:amber:charge",
339}; 280 .default_trigger = "sharpsl-charge",
340 281 .gpio = CORGI_GPIO_LED_ORANGE,
341 282 },
342/* 283 {
343 * Corgi Touch Screen Device 284 .name = "corgi:green:mail",
344 */ 285 .default_trigger = "nand-disk",
345static unsigned long (*get_hsync_invperiod)(struct device *dev); 286 .gpio = CORGI_GPIO_LED_GREEN,
346
347static void inline sharpsl_wait_sync(int gpio)
348{
349 while((GPLR(gpio) & GPIO_bit(gpio)) == 0);
350 while((GPLR(gpio) & GPIO_bit(gpio)) != 0);
351}
352
353static unsigned long corgi_get_hsync_invperiod(void)
354{
355 if (!get_hsync_invperiod)
356 get_hsync_invperiod = symbol_get(w100fb_get_hsynclen);
357 if (!get_hsync_invperiod)
358 return 0;
359
360 return get_hsync_invperiod(&corgifb_device.dev);
361}
362
363static void corgi_put_hsync(void)
364{
365 if (get_hsync_invperiod)
366 symbol_put(w100fb_get_hsynclen);
367 get_hsync_invperiod = NULL;
368}
369
370static void corgi_wait_hsync(void)
371{
372 sharpsl_wait_sync(CORGI_GPIO_HSYNC);
373}
374
375static struct resource corgits_resources[] = {
376 [0] = {
377 .start = CORGI_IRQ_GPIO_TP_INT,
378 .end = CORGI_IRQ_GPIO_TP_INT,
379 .flags = IORESOURCE_IRQ,
380 }, 287 },
381}; 288};
382 289
383static struct corgits_machinfo corgi_ts_machinfo = { 290static struct gpio_led_platform_data corgi_gpio_leds_info = {
384 .get_hsync_invperiod = corgi_get_hsync_invperiod, 291 .leds = corgi_gpio_leds,
385 .put_hsync = corgi_put_hsync, 292 .num_leds = ARRAY_SIZE(corgi_gpio_leds),
386 .wait_hsync = corgi_wait_hsync,
387}; 293};
388 294
389static struct platform_device corgits_device = { 295static struct platform_device corgiled_device = {
390 .name = "corgi-ts", 296 .name = "leds-gpio",
297 .id = -1,
391 .dev = { 298 .dev = {
392 .parent = &corgissp_device.dev, 299 .platform_data = &corgi_gpio_leds_info,
393 .platform_data = &corgi_ts_machinfo,
394 }, 300 },
395 .id = -1,
396 .num_resources = ARRAY_SIZE(corgits_resources),
397 .resource = corgits_resources,
398}; 301};
399 302
400
401/* 303/*
402 * MMC/SD Device 304 * MMC/SD Device
403 * 305 *
@@ -410,20 +312,42 @@ static int corgi_mci_init(struct device *dev, irq_handler_t corgi_detect_int, vo
410{ 312{
411 int err; 313 int err;
412 314
413 /* setup GPIO for PXA25x MMC controller */ 315 err = gpio_request(CORGI_GPIO_nSD_DETECT, "nSD_DETECT");
414 pxa_gpio_mode(GPIO6_MMCCLK_MD); 316 if (err)
415 pxa_gpio_mode(GPIO8_MMCCS0_MD); 317 goto err_out;
416 pxa_gpio_mode(CORGI_GPIO_nSD_DETECT | GPIO_IN);
417 pxa_gpio_mode(CORGI_GPIO_SD_PWR | GPIO_OUT);
418 318
419 corgi_mci_platform_data.detect_delay = msecs_to_jiffies(250); 319 err = gpio_request(CORGI_GPIO_nSD_WP, "nSD_WP");
320 if (err)
321 goto err_free_1;
420 322
421 err = request_irq(CORGI_IRQ_GPIO_nSD_DETECT, corgi_detect_int, 323 err = gpio_request(CORGI_GPIO_SD_PWR, "SD_PWR");
422 IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
423 "MMC card detect", data);
424 if (err) 324 if (err)
425 printk(KERN_ERR "corgi_mci_init: MMC/SD: can't request MMC card detect IRQ\n"); 325 goto err_free_2;
426 326
327 gpio_direction_input(CORGI_GPIO_nSD_DETECT);
328 gpio_direction_input(CORGI_GPIO_nSD_WP);
329 gpio_direction_output(CORGI_GPIO_SD_PWR, 0);
330
331 corgi_mci_platform_data.detect_delay = msecs_to_jiffies(250);
332
333 err = request_irq(CORGI_IRQ_GPIO_nSD_DETECT, corgi_detect_int,
334 IRQF_DISABLED | IRQF_TRIGGER_RISING |
335 IRQF_TRIGGER_FALLING,
336 "MMC card detect", data);
337 if (err) {
338 pr_err("%s: MMC/SD: can't request MMC card detect IRQ\n",
339 __func__);
340 goto err_free_3;
341 }
342 return 0;
343
344err_free_3:
345 gpio_free(CORGI_GPIO_SD_PWR);
346err_free_2:
347 gpio_free(CORGI_GPIO_nSD_WP);
348err_free_1:
349 gpio_free(CORGI_GPIO_nSD_DETECT);
350err_out:
427 return err; 351 return err;
428} 352}
429 353
@@ -431,20 +355,20 @@ static void corgi_mci_setpower(struct device *dev, unsigned int vdd)
431{ 355{
432 struct pxamci_platform_data* p_d = dev->platform_data; 356 struct pxamci_platform_data* p_d = dev->platform_data;
433 357
434 if (( 1 << vdd) & p_d->ocr_mask) 358 gpio_set_value(CORGI_GPIO_SD_PWR, ((1 << vdd) & p_d->ocr_mask));
435 GPSR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
436 else
437 GPCR1 = GPIO_bit(CORGI_GPIO_SD_PWR);
438} 359}
439 360
440static int corgi_mci_get_ro(struct device *dev) 361static int corgi_mci_get_ro(struct device *dev)
441{ 362{
442 return GPLR(CORGI_GPIO_nSD_WP) & GPIO_bit(CORGI_GPIO_nSD_WP); 363 return gpio_get_value(CORGI_GPIO_nSD_WP);
443} 364}
444 365
445static void corgi_mci_exit(struct device *dev, void *data) 366static void corgi_mci_exit(struct device *dev, void *data)
446{ 367{
447 free_irq(CORGI_IRQ_GPIO_nSD_DETECT, data); 368 free_irq(CORGI_IRQ_GPIO_nSD_DETECT, data);
369 gpio_free(CORGI_GPIO_SD_PWR);
370 gpio_free(CORGI_GPIO_nSD_WP);
371 gpio_free(CORGI_GPIO_nSD_DETECT);
448} 372}
449 373
450static struct pxamci_platform_data corgi_mci_platform_data = { 374static struct pxamci_platform_data corgi_mci_platform_data = {
@@ -461,16 +385,32 @@ static struct pxamci_platform_data corgi_mci_platform_data = {
461 */ 385 */
462static void corgi_irda_transceiver_mode(struct device *dev, int mode) 386static void corgi_irda_transceiver_mode(struct device *dev, int mode)
463{ 387{
464 if (mode & IR_OFF) 388 gpio_set_value(CORGI_GPIO_IR_ON, mode & IR_OFF);
465 GPSR(CORGI_GPIO_IR_ON) = GPIO_bit(CORGI_GPIO_IR_ON);
466 else
467 GPCR(CORGI_GPIO_IR_ON) = GPIO_bit(CORGI_GPIO_IR_ON);
468 pxa2xx_transceiver_mode(dev, mode); 389 pxa2xx_transceiver_mode(dev, mode);
469} 390}
470 391
392static int corgi_irda_startup(struct device *dev)
393{
394 int err;
395
396 err = gpio_request(CORGI_GPIO_IR_ON, "IR_ON");
397 if (err)
398 return err;
399
400 gpio_direction_output(CORGI_GPIO_IR_ON, 1);
401 return 0;
402}
403
404static void corgi_irda_shutdown(struct device *dev)
405{
406 gpio_free(CORGI_GPIO_IR_ON);
407}
408
471static struct pxaficp_platform_data corgi_ficp_platform_data = { 409static struct pxaficp_platform_data corgi_ficp_platform_data = {
472 .transceiver_cap = IR_SIRMODE | IR_OFF, 410 .transceiver_cap = IR_SIRMODE | IR_OFF,
473 .transceiver_mode = corgi_irda_transceiver_mode, 411 .transceiver_mode = corgi_irda_transceiver_mode,
412 .startup = corgi_irda_startup,
413 .shutdown = corgi_irda_shutdown,
474}; 414};
475 415
476 416
@@ -482,14 +422,129 @@ static struct pxa2xx_udc_mach_info udc_info __initdata = {
482 .gpio_pullup = CORGI_GPIO_USB_PULLUP, 422 .gpio_pullup = CORGI_GPIO_USB_PULLUP,
483}; 423};
484 424
425#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MASTER)
426static struct pxa2xx_spi_master corgi_spi_info = {
427 .num_chipselect = 3,
428};
429
430static struct ads7846_platform_data corgi_ads7846_info = {
431 .model = 7846,
432 .vref_delay_usecs = 100,
433 .x_plate_ohms = 419,
434 .y_plate_ohms = 486,
435 .gpio_pendown = CORGI_GPIO_TP_INT,
436};
437
438static void corgi_ads7846_cs(u32 command)
439{
440 gpio_set_value(CORGI_GPIO_ADS7846_CS, !(command == PXA2XX_CS_ASSERT));
441}
442
443static struct pxa2xx_spi_chip corgi_ads7846_chip = {
444 .cs_control = corgi_ads7846_cs,
445};
446
447static void corgi_bl_kick_battery(void)
448{
449 void (*kick_batt)(void);
450
451 kick_batt = symbol_get(sharpsl_battery_kick);
452 if (kick_batt) {
453 kick_batt();
454 symbol_put(sharpsl_battery_kick);
455 }
456}
457
458static struct corgi_lcd_platform_data corgi_lcdcon_info = {
459 .init_mode = CORGI_LCD_MODE_VGA,
460 .max_intensity = 0x2f,
461 .default_intensity = 0x1f,
462 .limit_mask = 0x0b,
463 .gpio_backlight_cont = CORGI_GPIO_BACKLIGHT_CONT,
464 .gpio_backlight_on = -1,
465 .kick_battery = corgi_bl_kick_battery,
466};
467
468static void corgi_lcdcon_cs(u32 command)
469{
470 gpio_set_value(CORGI_GPIO_LCDCON_CS, !(command == PXA2XX_CS_ASSERT));
471}
472
473static struct pxa2xx_spi_chip corgi_lcdcon_chip = {
474 .cs_control = corgi_lcdcon_cs,
475};
476
477static void corgi_max1111_cs(u32 command)
478{
479 gpio_set_value(CORGI_GPIO_MAX1111_CS, !(command == PXA2XX_CS_ASSERT));
480}
481
482static struct pxa2xx_spi_chip corgi_max1111_chip = {
483 .cs_control = corgi_max1111_cs,
484};
485
486static struct spi_board_info corgi_spi_devices[] = {
487 {
488 .modalias = "ads7846",
489 .max_speed_hz = 1200000,
490 .bus_num = 1,
491 .chip_select = 0,
492 .platform_data = &corgi_ads7846_info,
493 .controller_data= &corgi_ads7846_chip,
494 .irq = gpio_to_irq(CORGI_GPIO_TP_INT),
495 }, {
496 .modalias = "corgi-lcd",
497 .max_speed_hz = 50000,
498 .bus_num = 1,
499 .chip_select = 1,
500 .platform_data = &corgi_lcdcon_info,
501 .controller_data= &corgi_lcdcon_chip,
502 }, {
503 .modalias = "max1111",
504 .max_speed_hz = 450000,
505 .bus_num = 1,
506 .chip_select = 2,
507 .controller_data= &corgi_max1111_chip,
508 },
509};
510
511static void __init corgi_init_spi(void)
512{
513 int err;
514
515 err = gpio_request(CORGI_GPIO_ADS7846_CS, "ADS7846_CS");
516 if (err)
517 return;
518
519 err = gpio_request(CORGI_GPIO_LCDCON_CS, "LCDCON_CS");
520 if (err)
521 goto err_free_1;
522
523 err = gpio_request(CORGI_GPIO_MAX1111_CS, "MAX1111_CS");
524 if (err)
525 goto err_free_2;
526
527 gpio_direction_output(CORGI_GPIO_ADS7846_CS, 1);
528 gpio_direction_output(CORGI_GPIO_LCDCON_CS, 1);
529 gpio_direction_output(CORGI_GPIO_MAX1111_CS, 1);
530
531 pxa2xx_set_spi_info(1, &corgi_spi_info);
532 spi_register_board_info(ARRAY_AND_SIZE(corgi_spi_devices));
533 return;
534
535err_free_2:
536 gpio_free(CORGI_GPIO_LCDCON_CS);
537err_free_1:
538 gpio_free(CORGI_GPIO_ADS7846_CS);
539}
540#else
541static inline void corgi_init_spi(void) {}
542#endif
485 543
486static struct platform_device *devices[] __initdata = { 544static struct platform_device *devices[] __initdata = {
487 &corgiscoop_device, 545 &corgiscoop_device,
488 &corgissp_device,
489 &corgifb_device, 546 &corgifb_device,
490 &corgikbd_device, 547 &corgikbd_device,
491 &corgibl_device,
492 &corgits_device,
493 &corgiled_device, 548 &corgiled_device,
494}; 549};
495 550
@@ -497,7 +552,8 @@ static void corgi_poweroff(void)
497{ 552{
498 if (!machine_is_corgi()) 553 if (!machine_is_corgi())
499 /* Green LED off tells the bootloader to halt */ 554 /* Green LED off tells the bootloader to halt */
500 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_LED_GREEN); 555 gpio_set_value(CORGI_GPIO_LED_GREEN, 0);
556
501 arm_machine_restart('h'); 557 arm_machine_restart('h');
502} 558}
503 559
@@ -505,7 +561,8 @@ static void corgi_restart(char mode)
505{ 561{
506 if (!machine_is_corgi()) 562 if (!machine_is_corgi())
507 /* Green LED on tells the bootloader to reboot */ 563 /* Green LED on tells the bootloader to reboot */
508 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_LED_GREEN); 564 gpio_set_value(CORGI_GPIO_LED_GREEN, 1);
565
509 arm_machine_restart('h'); 566 arm_machine_restart('h');
510} 567}
511 568
@@ -514,24 +571,17 @@ static void __init corgi_init(void)
514 pm_power_off = corgi_poweroff; 571 pm_power_off = corgi_poweroff;
515 arm_pm_restart = corgi_restart; 572 arm_pm_restart = corgi_restart;
516 573
517 /* setup sleep mode values */
518 PWER = 0x00000002;
519 PFER = 0x00000000;
520 PRER = 0x00000002;
521 PGSR0 = 0x0158C000;
522 PGSR1 = 0x00FF0080;
523 PGSR2 = 0x0001C004;
524 /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */ 574 /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */
525 PCFR |= PCFR_OPDE; 575 PCFR |= PCFR_OPDE;
526 576
527 corgi_ssp_set_machinfo(&corgi_ssp_machinfo); 577 pxa2xx_mfp_config(ARRAY_AND_SIZE(corgi_pin_config));
528 578
529 pxa_gpio_mode(CORGI_GPIO_IR_ON | GPIO_OUT); 579 corgi_init_spi();
530 pxa_gpio_mode(CORGI_GPIO_HSYNC | GPIO_IN);
531 580
532 pxa_set_udc_info(&udc_info); 581 pxa_set_udc_info(&udc_info);
533 pxa_set_mci_info(&corgi_mci_platform_data); 582 pxa_set_mci_info(&corgi_mci_platform_data);
534 pxa_set_ficp_info(&corgi_ficp_platform_data); 583 pxa_set_ficp_info(&corgi_ficp_platform_data);
584 pxa_set_i2c_info(NULL);
535 585
536 platform_scoop_config = &corgi_pcmcia_config; 586 platform_scoop_config = &corgi_pcmcia_config;
537 587
diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c
deleted file mode 100644
index 311baf149b07..000000000000
--- a/arch/arm/mach-pxa/corgi_lcd.c
+++ /dev/null
@@ -1,290 +0,0 @@
1/*
2 * linux/arch/arm/mach-pxa/corgi_lcd.c
3 *
4 * Corgi/Spitz LCD Specific Code
5 *
6 * Copyright (C) 2005 Richard Purdie
7 *
8 * Connectivity:
9 * Corgi - LCD to ATI Imageon w100 (Wallaby)
10 * Spitz - LCD to PXA Framebuffer
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
15 *
16 */
17
18#include <linux/delay.h>
19#include <linux/kernel.h>
20#include <linux/platform_device.h>
21#include <linux/module.h>
22#include <linux/string.h>
23#include <mach/akita.h>
24#include <mach/corgi.h>
25#include <mach/hardware.h>
26#include <mach/pxa-regs.h>
27#include <mach/sharpsl.h>
28#include <mach/spitz.h>
29#include <asm/hardware/scoop.h>
30#include <asm/mach/sharpsl_param.h>
31#include "generic.h"
32
33/* Register Addresses */
34#define RESCTL_ADRS 0x00
35#define PHACTRL_ADRS 0x01
36#define DUTYCTRL_ADRS 0x02
37#define POWERREG0_ADRS 0x03
38#define POWERREG1_ADRS 0x04
39#define GPOR3_ADRS 0x05
40#define PICTRL_ADRS 0x06
41#define POLCTRL_ADRS 0x07
42
43/* Register Bit Definitions */
44#define RESCTL_QVGA 0x01
45#define RESCTL_VGA 0x00
46
47#define POWER1_VW_ON 0x01 /* VW Supply FET ON */
48#define POWER1_GVSS_ON 0x02 /* GVSS(-8V) Power Supply ON */
49#define POWER1_VDD_ON 0x04 /* VDD(8V),SVSS(-4V) Power Supply ON */
50
51#define POWER1_VW_OFF 0x00 /* VW Supply FET OFF */
52#define POWER1_GVSS_OFF 0x00 /* GVSS(-8V) Power Supply OFF */
53#define POWER1_VDD_OFF 0x00 /* VDD(8V),SVSS(-4V) Power Supply OFF */
54
55#define POWER0_COM_DCLK 0x01 /* COM Voltage DC Bias DAC Serial Data Clock */
56#define POWER0_COM_DOUT 0x02 /* COM Voltage DC Bias DAC Serial Data Out */
57#define POWER0_DAC_ON 0x04 /* DAC Power Supply ON */
58#define POWER0_COM_ON 0x08 /* COM Power Supply ON */
59#define POWER0_VCC5_ON 0x10 /* VCC5 Power Supply ON */
60
61#define POWER0_DAC_OFF 0x00 /* DAC Power Supply OFF */
62#define POWER0_COM_OFF 0x00 /* COM Power Supply OFF */
63#define POWER0_VCC5_OFF 0x00 /* VCC5 Power Supply OFF */
64
65#define PICTRL_INIT_STATE 0x01
66#define PICTRL_INIOFF 0x02
67#define PICTRL_POWER_DOWN 0x04
68#define PICTRL_COM_SIGNAL_OFF 0x08
69#define PICTRL_DAC_SIGNAL_OFF 0x10
70
71#define POLCTRL_SYNC_POL_FALL 0x01
72#define POLCTRL_EN_POL_FALL 0x02
73#define POLCTRL_DATA_POL_FALL 0x04
74#define POLCTRL_SYNC_ACT_H 0x08
75#define POLCTRL_EN_ACT_L 0x10
76
77#define POLCTRL_SYNC_POL_RISE 0x00
78#define POLCTRL_EN_POL_RISE 0x00
79#define POLCTRL_DATA_POL_RISE 0x00
80#define POLCTRL_SYNC_ACT_L 0x00
81#define POLCTRL_EN_ACT_H 0x00
82
83#define PHACTRL_PHASE_MANUAL 0x01
84#define DEFAULT_PHAD_QVGA (9)
85#define DEFAULT_COMADJ (125)
86
87/*
88 * This is only a psuedo I2C interface. We can't use the standard kernel
89 * routines as the interface is write only. We just assume the data is acked...
90 */
91static void lcdtg_ssp_i2c_send(u8 data)
92{
93 corgi_ssp_lcdtg_send(POWERREG0_ADRS, data);
94 udelay(10);
95}
96
97static void lcdtg_i2c_send_bit(u8 data)
98{
99 lcdtg_ssp_i2c_send(data);
100 lcdtg_ssp_i2c_send(data | POWER0_COM_DCLK);
101 lcdtg_ssp_i2c_send(data);
102}
103
104static void lcdtg_i2c_send_start(u8 base)
105{
106 lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK | POWER0_COM_DOUT);
107 lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK);
108 lcdtg_ssp_i2c_send(base);
109}
110
111static void lcdtg_i2c_send_stop(u8 base)
112{
113 lcdtg_ssp_i2c_send(base);
114 lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK);
115 lcdtg_ssp_i2c_send(base | POWER0_COM_DCLK | POWER0_COM_DOUT);
116}
117
118static void lcdtg_i2c_send_byte(u8 base, u8 data)
119{
120 int i;
121 for (i = 0; i < 8; i++) {
122 if (data & 0x80)
123 lcdtg_i2c_send_bit(base | POWER0_COM_DOUT);
124 else
125 lcdtg_i2c_send_bit(base);
126 data <<= 1;
127 }
128}
129
130static void lcdtg_i2c_wait_ack(u8 base)
131{
132 lcdtg_i2c_send_bit(base);
133}
134
135static void lcdtg_set_common_voltage(u8 base_data, u8 data)
136{
137 /* Set Common Voltage to M62332FP via I2C */
138 lcdtg_i2c_send_start(base_data);
139 lcdtg_i2c_send_byte(base_data, 0x9c);
140 lcdtg_i2c_wait_ack(base_data);
141 lcdtg_i2c_send_byte(base_data, 0x00);
142 lcdtg_i2c_wait_ack(base_data);
143 lcdtg_i2c_send_byte(base_data, data);
144 lcdtg_i2c_wait_ack(base_data);
145 lcdtg_i2c_send_stop(base_data);
146}
147
148/* Set Phase Adjust */
149static void lcdtg_set_phadadj(int mode)
150{
151 int adj;
152 switch(mode) {
153 case 480:
154 case 640:
155 /* Setting for VGA */
156 adj = sharpsl_param.phadadj;
157 if (adj < 0) {
158 adj = PHACTRL_PHASE_MANUAL;
159 } else {
160 adj = ((adj & 0x0f) << 1) | PHACTRL_PHASE_MANUAL;
161 }
162 break;
163 case 240:
164 case 320:
165 default:
166 /* Setting for QVGA */
167 adj = (DEFAULT_PHAD_QVGA << 1) | PHACTRL_PHASE_MANUAL;
168 break;
169 }
170
171 corgi_ssp_lcdtg_send(PHACTRL_ADRS, adj);
172}
173
174static int lcd_inited;
175
176void corgi_lcdtg_hw_init(int mode)
177{
178 if (!lcd_inited) {
179 int comadj;
180
181 /* Initialize Internal Logic & Port */
182 corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_POWER_DOWN | PICTRL_INIOFF | PICTRL_INIT_STATE
183 | PICTRL_COM_SIGNAL_OFF | PICTRL_DAC_SIGNAL_OFF);
184
185 corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_OFF
186 | POWER0_COM_OFF | POWER0_VCC5_OFF);
187
188 corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_OFF);
189
190 /* VDD(+8V), SVSS(-4V) ON */
191 corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_ON);
192 mdelay(3);
193
194 /* DAC ON */
195 corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON
196 | POWER0_COM_OFF | POWER0_VCC5_OFF);
197
198 /* INIB = H, INI = L */
199 /* PICTL[0] = H , PICTL[1] = PICTL[2] = PICTL[4] = L */
200 corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_INIT_STATE | PICTRL_COM_SIGNAL_OFF);
201
202 /* Set Common Voltage */
203 comadj = sharpsl_param.comadj;
204 if (comadj < 0)
205 comadj = DEFAULT_COMADJ;
206 lcdtg_set_common_voltage((POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_OFF), comadj);
207
208 /* VCC5 ON, DAC ON */
209 corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON |
210 POWER0_COM_OFF | POWER0_VCC5_ON);
211
212 /* GVSS(-8V) ON, VDD ON */
213 corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_ON | POWER1_VDD_ON);
214 mdelay(2);
215
216 /* COM SIGNAL ON (PICTL[3] = L) */
217 corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_INIT_STATE);
218
219 /* COM ON, DAC ON, VCC5_ON */
220 corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON
221 | POWER0_COM_ON | POWER0_VCC5_ON);
222
223 /* VW ON, GVSS ON, VDD ON */
224 corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_ON | POWER1_GVSS_ON | POWER1_VDD_ON);
225
226 /* Signals output enable */
227 corgi_ssp_lcdtg_send(PICTRL_ADRS, 0);
228
229 /* Set Phase Adjust */
230 lcdtg_set_phadadj(mode);
231
232 /* Initialize for Input Signals from ATI */
233 corgi_ssp_lcdtg_send(POLCTRL_ADRS, POLCTRL_SYNC_POL_RISE | POLCTRL_EN_POL_RISE
234 | POLCTRL_DATA_POL_RISE | POLCTRL_SYNC_ACT_L | POLCTRL_EN_ACT_H);
235 udelay(1000);
236
237 lcd_inited=1;
238 } else {
239 lcdtg_set_phadadj(mode);
240 }
241
242 switch(mode) {
243 case 480:
244 case 640:
245 /* Set Lcd Resolution (VGA) */
246 corgi_ssp_lcdtg_send(RESCTL_ADRS, RESCTL_VGA);
247 break;
248 case 240:
249 case 320:
250 default:
251 /* Set Lcd Resolution (QVGA) */
252 corgi_ssp_lcdtg_send(RESCTL_ADRS, RESCTL_QVGA);
253 break;
254 }
255}
256
257void corgi_lcdtg_suspend(void)
258{
259 /* 60Hz x 2 frame = 16.7msec x 2 = 33.4 msec */
260 mdelay(34);
261
262 /* (1)VW OFF */
263 corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_ON | POWER1_VDD_ON);
264
265 /* (2)COM OFF */
266 corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_COM_SIGNAL_OFF);
267 corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_ON);
268
269 /* (3)Set Common Voltage Bias 0V */
270 lcdtg_set_common_voltage(POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_ON, 0);
271
272 /* (4)GVSS OFF */
273 corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_ON);
274
275 /* (5)VCC5 OFF */
276 corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_OFF);
277
278 /* (6)Set PDWN, INIOFF, DACOFF */
279 corgi_ssp_lcdtg_send(PICTRL_ADRS, PICTRL_INIOFF | PICTRL_DAC_SIGNAL_OFF |
280 PICTRL_POWER_DOWN | PICTRL_COM_SIGNAL_OFF);
281
282 /* (7)DAC OFF */
283 corgi_ssp_lcdtg_send(POWERREG0_ADRS, POWER0_DAC_OFF | POWER0_COM_OFF | POWER0_VCC5_OFF);
284
285 /* (8)VDD OFF */
286 corgi_ssp_lcdtg_send(POWERREG1_ADRS, POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_OFF);
287
288 lcd_inited = 0;
289}
290
diff --git a/arch/arm/mach-pxa/corgi_pm.c b/arch/arm/mach-pxa/corgi_pm.c
index 35bbfccd2df3..eb7d6c94aa42 100644
--- a/arch/arm/mach-pxa/corgi_pm.c
+++ b/arch/arm/mach-pxa/corgi_pm.c
@@ -21,7 +21,6 @@
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/mach-types.h> 22#include <asm/mach-types.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/hardware/scoop.h>
25 24
26#include <mach/sharpsl.h> 25#include <mach/sharpsl.h>
27#include <mach/corgi.h> 26#include <mach/corgi.h>
diff --git a/arch/arm/mach-pxa/corgi_ssp.c b/arch/arm/mach-pxa/corgi_ssp.c
deleted file mode 100644
index 8e2f2215c4ba..000000000000
--- a/arch/arm/mach-pxa/corgi_ssp.c
+++ /dev/null
@@ -1,276 +0,0 @@
1/*
2 * SSP control code for Sharp Corgi devices
3 *
4 * Copyright (c) 2004-2005 Richard Purdie
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 */
11
12#include <linux/module.h>
13#include <linux/init.h>
14#include <linux/kernel.h>
15#include <linux/sched.h>
16#include <linux/slab.h>
17#include <linux/delay.h>
18#include <linux/platform_device.h>
19#include <mach/hardware.h>
20#include <asm/mach-types.h>
21
22#include <mach/ssp.h>
23#include <mach/pxa-regs.h>
24#include <mach/pxa2xx-gpio.h>
25#include <mach/regs-ssp.h>
26#include "sharpsl.h"
27
28static DEFINE_SPINLOCK(corgi_ssp_lock);
29static struct ssp_dev corgi_ssp_dev;
30static struct ssp_state corgi_ssp_state;
31static struct corgissp_machinfo *ssp_machinfo;
32
33/*
34 * There are three devices connected to the SSP interface:
35 * 1. A touchscreen controller (TI ADS7846 compatible)
36 * 2. An LCD controller (with some Backlight functionality)
37 * 3. A battery monitoring IC (Maxim MAX1111)
38 *
39 * Each device uses a different speed/mode of communication.
40 *
41 * The touchscreen is very sensitive and the most frequently used
42 * so the port is left configured for this.
43 *
44 * Devices are selected using Chip Selects on GPIOs.
45 */
46
47/*
48 * ADS7846 Routines
49 */
50unsigned long corgi_ssp_ads7846_putget(ulong data)
51{
52 unsigned long flag;
53 u32 ret = 0;
54
55 spin_lock_irqsave(&corgi_ssp_lock, flag);
56 if (ssp_machinfo->cs_ads7846 >= 0)
57 GPCR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
58
59 ssp_write_word(&corgi_ssp_dev,data);
60 ssp_read_word(&corgi_ssp_dev, &ret);
61
62 if (ssp_machinfo->cs_ads7846 >= 0)
63 GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
64 spin_unlock_irqrestore(&corgi_ssp_lock, flag);
65
66 return ret;
67}
68
69/*
70 * NOTE: These functions should always be called in interrupt context
71 * and use the _lock and _unlock functions. They are very time sensitive.
72 */
73void corgi_ssp_ads7846_lock(void)
74{
75 spin_lock(&corgi_ssp_lock);
76 if (ssp_machinfo->cs_ads7846 >= 0)
77 GPCR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
78}
79
80void corgi_ssp_ads7846_unlock(void)
81{
82 if (ssp_machinfo->cs_ads7846 >= 0)
83 GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846);
84 spin_unlock(&corgi_ssp_lock);
85}
86
87void corgi_ssp_ads7846_put(ulong data)
88{
89 ssp_write_word(&corgi_ssp_dev,data);
90}
91
92unsigned long corgi_ssp_ads7846_get(void)
93{
94 u32 ret = 0;
95 ssp_read_word(&corgi_ssp_dev, &ret);
96 return ret;
97}
98
99EXPORT_SYMBOL(corgi_ssp_ads7846_putget);
100EXPORT_SYMBOL(corgi_ssp_ads7846_lock);
101EXPORT_SYMBOL(corgi_ssp_ads7846_unlock);
102EXPORT_SYMBOL(corgi_ssp_ads7846_put);
103EXPORT_SYMBOL(corgi_ssp_ads7846_get);
104
105
106/*
107 * LCD/Backlight Routines
108 */
109unsigned long corgi_ssp_dac_put(ulong data)
110{
111 unsigned long flag, sscr1 = SSCR1_SPH;
112 u32 tmp;
113
114 spin_lock_irqsave(&corgi_ssp_lock, flag);
115
116 if (machine_is_spitz() || machine_is_akita() || machine_is_borzoi())
117 sscr1 = 0;
118
119 ssp_disable(&corgi_ssp_dev);
120 ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), sscr1, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_lcdcon));
121 ssp_enable(&corgi_ssp_dev);
122
123 if (ssp_machinfo->cs_lcdcon >= 0)
124 GPCR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon);
125 ssp_write_word(&corgi_ssp_dev,data);
126 /* Read null data back from device to prevent SSP overflow */
127 ssp_read_word(&corgi_ssp_dev, &tmp);
128 if (ssp_machinfo->cs_lcdcon >= 0)
129 GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon);
130
131 ssp_disable(&corgi_ssp_dev);
132 ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846));
133 ssp_enable(&corgi_ssp_dev);
134
135 spin_unlock_irqrestore(&corgi_ssp_lock, flag);
136
137 return 0;
138}
139
140void corgi_ssp_lcdtg_send(u8 adrs, u8 data)
141{
142 corgi_ssp_dac_put(((adrs & 0x07) << 5) | (data & 0x1f));
143}
144
145void corgi_ssp_blduty_set(int duty)
146{
147 corgi_ssp_lcdtg_send(0x02,duty);
148}
149
150EXPORT_SYMBOL(corgi_ssp_lcdtg_send);
151EXPORT_SYMBOL(corgi_ssp_blduty_set);
152
153/*
154 * Max1111 Routines
155 */
156int corgi_ssp_max1111_get(ulong data)
157{
158 unsigned long flag;
159 long voltage = 0, voltage1 = 0, voltage2 = 0;
160
161 spin_lock_irqsave(&corgi_ssp_lock, flag);
162 if (ssp_machinfo->cs_max1111 >= 0)
163 GPCR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111);
164 ssp_disable(&corgi_ssp_dev);
165 ssp_config(&corgi_ssp_dev, (SSCR0_Motorola | (SSCR0_DSS & 0x07 )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_max1111));
166 ssp_enable(&corgi_ssp_dev);
167
168 udelay(1);
169
170 /* TB1/RB1 */
171 ssp_write_word(&corgi_ssp_dev,data);
172 ssp_read_word(&corgi_ssp_dev, (u32*)&voltage1); /* null read */
173
174 /* TB12/RB2 */
175 ssp_write_word(&corgi_ssp_dev,0);
176 ssp_read_word(&corgi_ssp_dev, (u32*)&voltage1);
177
178 /* TB13/RB3*/
179 ssp_write_word(&corgi_ssp_dev,0);
180 ssp_read_word(&corgi_ssp_dev, (u32*)&voltage2);
181
182 ssp_disable(&corgi_ssp_dev);
183 ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846));
184 ssp_enable(&corgi_ssp_dev);
185 if (ssp_machinfo->cs_max1111 >= 0)
186 GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111);
187 spin_unlock_irqrestore(&corgi_ssp_lock, flag);
188
189 if (voltage1 & 0xc0 || voltage2 & 0x3f)
190 voltage = -1;
191 else
192 voltage = ((voltage1 << 2) & 0xfc) | ((voltage2 >> 6) & 0x03);
193
194 return voltage;
195}
196
197EXPORT_SYMBOL(corgi_ssp_max1111_get);
198
199/*
200 * Support Routines
201 */
202
203void __init corgi_ssp_set_machinfo(struct corgissp_machinfo *machinfo)
204{
205 ssp_machinfo = machinfo;
206}
207
208static int __init corgi_ssp_probe(struct platform_device *dev)
209{
210 int ret;
211
212 /* Chip Select - Disable All */
213 if (ssp_machinfo->cs_lcdcon >= 0)
214 pxa_gpio_mode(ssp_machinfo->cs_lcdcon | GPIO_OUT | GPIO_DFLT_HIGH);
215 if (ssp_machinfo->cs_max1111 >= 0)
216 pxa_gpio_mode(ssp_machinfo->cs_max1111 | GPIO_OUT | GPIO_DFLT_HIGH);
217 if (ssp_machinfo->cs_ads7846 >= 0)
218 pxa_gpio_mode(ssp_machinfo->cs_ads7846 | GPIO_OUT | GPIO_DFLT_HIGH);
219
220 ret = ssp_init(&corgi_ssp_dev, ssp_machinfo->port, 0);
221
222 if (ret)
223 printk(KERN_ERR "Unable to register SSP handler!\n");
224 else {
225 ssp_disable(&corgi_ssp_dev);
226 ssp_config(&corgi_ssp_dev, (SSCR0_National | (SSCR0_DSS & 0x0b )), 0, 0, SSCR0_SerClkDiv(ssp_machinfo->clk_ads7846));
227 ssp_enable(&corgi_ssp_dev);
228 }
229
230 return ret;
231}
232
233static int corgi_ssp_remove(struct platform_device *dev)
234{
235 ssp_exit(&corgi_ssp_dev);
236 return 0;
237}
238
239static int corgi_ssp_suspend(struct platform_device *dev, pm_message_t state)
240{
241 ssp_flush(&corgi_ssp_dev);
242 ssp_save_state(&corgi_ssp_dev,&corgi_ssp_state);
243
244 return 0;
245}
246
247static int corgi_ssp_resume(struct platform_device *dev)
248{
249 if (ssp_machinfo->cs_lcdcon >= 0)
250 GPSR(ssp_machinfo->cs_lcdcon) = GPIO_bit(ssp_machinfo->cs_lcdcon); /* High - Disable LCD Control/Timing Gen */
251 if (ssp_machinfo->cs_max1111 >= 0)
252 GPSR(ssp_machinfo->cs_max1111) = GPIO_bit(ssp_machinfo->cs_max1111); /* High - Disable MAX1111*/
253 if (ssp_machinfo->cs_ads7846 >= 0)
254 GPSR(ssp_machinfo->cs_ads7846) = GPIO_bit(ssp_machinfo->cs_ads7846); /* High - Disable ADS7846*/
255 ssp_restore_state(&corgi_ssp_dev,&corgi_ssp_state);
256 ssp_enable(&corgi_ssp_dev);
257
258 return 0;
259}
260
261static struct platform_driver corgissp_driver = {
262 .probe = corgi_ssp_probe,
263 .remove = corgi_ssp_remove,
264 .suspend = corgi_ssp_suspend,
265 .resume = corgi_ssp_resume,
266 .driver = {
267 .name = "corgi-ssp",
268 },
269};
270
271int __init corgi_ssp_init(void)
272{
273 return platform_driver_register(&corgissp_driver);
274}
275
276arch_initcall(corgi_ssp_init);
diff --git a/arch/arm/mach-pxa/cpu-pxa.c b/arch/arm/mach-pxa/cpufreq-pxa2xx.c
index 6f5569bac131..d82528e74bd0 100644
--- a/arch/arm/mach-pxa/cpu-pxa.c
+++ b/arch/arm/mach-pxa/cpufreq-pxa2xx.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mach-pxa/cpu-pxa.c 2 * linux/arch/arm/mach-pxa/cpufreq-pxa2xx.c
3 * 3 *
4 * Copyright (C) 2002,2003 Intrinsyc Software 4 * Copyright (C) 2002,2003 Intrinsyc Software
5 * 5 *
diff --git a/arch/arm/mach-pxa/cpufreq-pxa3xx.c b/arch/arm/mach-pxa/cpufreq-pxa3xx.c
new file mode 100644
index 000000000000..1ea0c9c0adaf
--- /dev/null
+++ b/arch/arm/mach-pxa/cpufreq-pxa3xx.c
@@ -0,0 +1,258 @@
1/*
2 * linux/arch/arm/mach-pxa/cpufreq-pxa3xx.c
3 *
4 * Copyright (C) 2008 Marvell International Ltd.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 */
11
12#include <linux/kernel.h>
13#include <linux/module.h>
14#include <linux/sched.h>
15#include <linux/init.h>
16#include <linux/cpufreq.h>
17
18#include <mach/hardware.h>
19#include <mach/pxa-regs.h>
20#include <mach/pxa3xx-regs.h>
21
22#include "generic.h"
23
24#define HSS_104M (0)
25#define HSS_156M (1)
26#define HSS_208M (2)
27#define HSS_312M (3)
28
29#define SMCFS_78M (0)
30#define SMCFS_104M (2)
31#define SMCFS_208M (5)
32
33#define SFLFS_104M (0)
34#define SFLFS_156M (1)
35#define SFLFS_208M (2)
36#define SFLFS_312M (3)
37
38#define XSPCLK_156M (0)
39#define XSPCLK_NONE (3)
40
41#define DMCFS_26M (0)
42#define DMCFS_260M (3)
43
44struct pxa3xx_freq_info {
45 unsigned int cpufreq_mhz;
46 unsigned int core_xl : 5;
47 unsigned int core_xn : 3;
48 unsigned int hss : 2;
49 unsigned int dmcfs : 2;
50 unsigned int smcfs : 3;
51 unsigned int sflfs : 2;
52 unsigned int df_clkdiv : 3;
53
54 int vcc_core; /* in mV */
55 int vcc_sram; /* in mV */
56};
57
58#define OP(cpufreq, _xl, _xn, _hss, _dmc, _smc, _sfl, _dfi, vcore, vsram) \
59{ \
60 .cpufreq_mhz = cpufreq, \
61 .core_xl = _xl, \
62 .core_xn = _xn, \
63 .hss = HSS_##_hss##M, \
64 .dmcfs = DMCFS_##_dmc##M, \
65 .smcfs = SMCFS_##_smc##M, \
66 .sflfs = SFLFS_##_sfl##M, \
67 .df_clkdiv = _dfi, \
68 .vcc_core = vcore, \
69 .vcc_sram = vsram, \
70}
71
72static struct pxa3xx_freq_info pxa300_freqs[] = {
73 /* CPU XL XN HSS DMEM SMEM SRAM DFI VCC_CORE VCC_SRAM */
74 OP(104, 8, 1, 104, 260, 78, 104, 3, 1000, 1100), /* 104MHz */
75 OP(208, 16, 1, 104, 260, 104, 156, 2, 1000, 1100), /* 208MHz */
76 OP(416, 16, 2, 156, 260, 104, 208, 2, 1100, 1200), /* 416MHz */
77 OP(624, 24, 2, 208, 260, 208, 312, 3, 1375, 1400), /* 624MHz */
78};
79
80static struct pxa3xx_freq_info pxa320_freqs[] = {
81 /* CPU XL XN HSS DMEM SMEM SRAM DFI VCC_CORE VCC_SRAM */
82 OP(104, 8, 1, 104, 260, 78, 104, 3, 1000, 1100), /* 104MHz */
83 OP(208, 16, 1, 104, 260, 104, 156, 2, 1000, 1100), /* 208MHz */
84 OP(416, 16, 2, 156, 260, 104, 208, 2, 1100, 1200), /* 416MHz */
85 OP(624, 24, 2, 208, 260, 208, 312, 3, 1375, 1400), /* 624MHz */
86 OP(806, 31, 2, 208, 260, 208, 312, 3, 1400, 1400), /* 806MHz */
87};
88
89static unsigned int pxa3xx_freqs_num;
90static struct pxa3xx_freq_info *pxa3xx_freqs;
91static struct cpufreq_frequency_table *pxa3xx_freqs_table;
92
93static int setup_freqs_table(struct cpufreq_policy *policy,
94 struct pxa3xx_freq_info *freqs, int num)
95{
96 struct cpufreq_frequency_table *table;
97 int i;
98
99 table = kzalloc((num + 1) * sizeof(*table), GFP_KERNEL);
100 if (table == NULL)
101 return -ENOMEM;
102
103 for (i = 0; i < num; i++) {
104 table[i].index = i;
105 table[i].frequency = freqs[i].cpufreq_mhz * 1000;
106 }
107 table[num].frequency = i;
108 table[num].frequency = CPUFREQ_TABLE_END;
109
110 pxa3xx_freqs = freqs;
111 pxa3xx_freqs_num = num;
112 pxa3xx_freqs_table = table;
113
114 return cpufreq_frequency_table_cpuinfo(policy, table);
115}
116
117static void __update_core_freq(struct pxa3xx_freq_info *info)
118{
119 uint32_t mask = ACCR_XN_MASK | ACCR_XL_MASK;
120 uint32_t accr = ACCR;
121 uint32_t xclkcfg;
122
123 accr &= ~(ACCR_XN_MASK | ACCR_XL_MASK | ACCR_XSPCLK_MASK);
124 accr |= ACCR_XN(info->core_xn) | ACCR_XL(info->core_xl);
125
126 /* No clock until core PLL is re-locked */
127 accr |= ACCR_XSPCLK(XSPCLK_NONE);
128
129 xclkcfg = (info->core_xn == 2) ? 0x3 : 0x2; /* turbo bit */
130
131 ACCR = accr;
132 __asm__("mcr p14, 0, %0, c6, c0, 0\n" : : "r"(xclkcfg));
133
134 while ((ACSR & mask) != (accr & mask))
135 cpu_relax();
136}
137
138static void __update_bus_freq(struct pxa3xx_freq_info *info)
139{
140 uint32_t mask;
141 uint32_t accr = ACCR;
142
143 mask = ACCR_SMCFS_MASK | ACCR_SFLFS_MASK | ACCR_HSS_MASK |
144 ACCR_DMCFS_MASK;
145
146 accr &= ~mask;
147 accr |= ACCR_SMCFS(info->smcfs) | ACCR_SFLFS(info->sflfs) |
148 ACCR_HSS(info->hss) | ACCR_DMCFS(info->dmcfs);
149
150 ACCR = accr;
151
152 while ((ACSR & mask) != (accr & mask))
153 cpu_relax();
154}
155
156static int pxa3xx_cpufreq_verify(struct cpufreq_policy *policy)
157{
158 return cpufreq_frequency_table_verify(policy, pxa3xx_freqs_table);
159}
160
161static unsigned int pxa3xx_cpufreq_get(unsigned int cpu)
162{
163 return get_clk_frequency_khz(0);
164}
165
166static int pxa3xx_cpufreq_set(struct cpufreq_policy *policy,
167 unsigned int target_freq,
168 unsigned int relation)
169{
170 struct pxa3xx_freq_info *next;
171 struct cpufreq_freqs freqs;
172 unsigned long flags;
173 int idx;
174
175 if (policy->cpu != 0)
176 return -EINVAL;
177
178 /* Lookup the next frequency */
179 if (cpufreq_frequency_table_target(policy, pxa3xx_freqs_table,
180 target_freq, relation, &idx))
181 return -EINVAL;
182
183 next = &pxa3xx_freqs[idx];
184
185 freqs.old = policy->cur;
186 freqs.new = next->cpufreq_mhz * 1000;
187 freqs.cpu = policy->cpu;
188
189 pr_debug("CPU frequency from %d MHz to %d MHz%s\n",
190 freqs.old / 1000, freqs.new / 1000,
191 (freqs.old == freqs.new) ? " (skipped)" : "");
192
193 if (freqs.old == target_freq)
194 return 0;
195
196 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
197
198 local_irq_save(flags);
199 __update_core_freq(next);
200 __update_bus_freq(next);
201 local_irq_restore(flags);
202
203 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
204
205 return 0;
206}
207
208static __init int pxa3xx_cpufreq_init(struct cpufreq_policy *policy)
209{
210 int ret = -EINVAL;
211
212 /* set default policy and cpuinfo */
213 policy->governor = CPUFREQ_DEFAULT_GOVERNOR;
214 policy->cpuinfo.min_freq = 104000;
215 policy->cpuinfo.max_freq = (cpu_is_pxa320()) ? 806000 : 624000;
216 policy->cpuinfo.transition_latency = 1000; /* FIXME: 1 ms, assumed */
217 policy->cur = policy->min = policy->max = get_clk_frequency_khz(0);
218
219 if (cpu_is_pxa300() || cpu_is_pxa310())
220 ret = setup_freqs_table(policy, ARRAY_AND_SIZE(pxa300_freqs));
221
222 if (cpu_is_pxa320())
223 ret = setup_freqs_table(policy, ARRAY_AND_SIZE(pxa320_freqs));
224
225 if (ret) {
226 pr_err("failed to setup frequency table\n");
227 return ret;
228 }
229
230 pr_info("CPUFREQ support for PXA3xx initialized\n");
231 return 0;
232}
233
234static struct cpufreq_driver pxa3xx_cpufreq_driver = {
235 .verify = pxa3xx_cpufreq_verify,
236 .target = pxa3xx_cpufreq_set,
237 .init = pxa3xx_cpufreq_init,
238 .get = pxa3xx_cpufreq_get,
239 .name = "pxa3xx-cpufreq",
240};
241
242static int __init cpufreq_init(void)
243{
244 if (cpu_is_pxa3xx())
245 return cpufreq_register_driver(&pxa3xx_cpufreq_driver);
246
247 return 0;
248}
249module_init(cpufreq_init);
250
251static void __exit cpufreq_exit(void)
252{
253 cpufreq_unregister_driver(&pxa3xx_cpufreq_driver);
254}
255module_exit(cpufreq_exit);
256
257MODULE_DESCRIPTION("CPU frequency scaling driver for PXA3xx");
258MODULE_LICENSE("GPL");
diff --git a/arch/arm/mach-pxa/devices.h b/arch/arm/mach-pxa/devices.h
index 887c738f5911..bb04af4b0aa3 100644
--- a/arch/arm/mach-pxa/devices.h
+++ b/arch/arm/mach-pxa/devices.h
@@ -32,5 +32,6 @@ extern struct platform_device pxa27x_device_pwm0;
32extern struct platform_device pxa27x_device_pwm1; 32extern struct platform_device pxa27x_device_pwm1;
33 33
34extern struct platform_device pxa3xx_device_nand; 34extern struct platform_device pxa3xx_device_nand;
35extern struct platform_device pxa3xx_device_i2c_power;
35 36
36void __init pxa_register_device(struct platform_device *dev, void *data); 37void __init pxa_register_device(struct platform_device *dev, void *data);
diff --git a/arch/arm/mach-pxa/e330.c b/arch/arm/mach-pxa/e330.c
new file mode 100644
index 000000000000..d488eded2058
--- /dev/null
+++ b/arch/arm/mach-pxa/e330.c
@@ -0,0 +1,43 @@
1/*
2 * Hardware definitions for the Toshiba eseries PDAs
3 *
4 * Copyright (c) 2003 Ian Molton <spyro@f2s.com>
5 *
6 * This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 *
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15
16#include <asm/setup.h>
17#include <asm/mach/arch.h>
18#include <asm/mach-types.h>
19
20#include <mach/mfp-pxa25x.h>
21#include <mach/hardware.h>
22#include <mach/udc.h>
23
24#include "generic.h"
25#include "eseries.h"
26
27static void __init e330_init(void)
28{
29 pxa_set_udc_info(&e7xx_udc_mach_info);
30}
31
32MACHINE_START(E330, "Toshiba e330")
33 /* Maintainer: Ian Molton (spyro@f2s.com) */
34 .phys_io = 0x40000000,
35 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
36 .boot_params = 0xa0000100,
37 .map_io = pxa_map_io,
38 .init_irq = pxa25x_init_irq,
39 .fixup = eseries_fixup,
40 .init_machine = e330_init,
41 .timer = &pxa_timer,
42MACHINE_END
43
diff --git a/arch/arm/mach-pxa/e350.c b/arch/arm/mach-pxa/e350.c
new file mode 100644
index 000000000000..8ecbc5479828
--- /dev/null
+++ b/arch/arm/mach-pxa/e350.c
@@ -0,0 +1,43 @@
1/*
2 * Hardware definitions for the Toshiba eseries PDAs
3 *
4 * Copyright (c) 2003 Ian Molton <spyro@f2s.com>
5 *
6 * This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 *
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15
16#include <asm/setup.h>
17#include <asm/mach/arch.h>
18#include <asm/mach-types.h>
19
20#include <mach/mfp-pxa25x.h>
21#include <mach/hardware.h>
22#include <mach/udc.h>
23
24#include "generic.h"
25#include "eseries.h"
26
27static void __init e350_init(void)
28{
29 pxa_set_udc_info(&e7xx_udc_mach_info);
30}
31
32MACHINE_START(E350, "Toshiba e350")
33 /* Maintainer: Ian Molton (spyro@f2s.com) */
34 .phys_io = 0x40000000,
35 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
36 .boot_params = 0xa0000100,
37 .map_io = pxa_map_io,
38 .init_irq = pxa25x_init_irq,
39 .fixup = eseries_fixup,
40 .init_machine = e350_init,
41 .timer = &pxa_timer,
42MACHINE_END
43
diff --git a/arch/arm/mach-pxa/e400.c b/arch/arm/mach-pxa/e400.c
new file mode 100644
index 000000000000..544bbaa20621
--- /dev/null
+++ b/arch/arm/mach-pxa/e400.c
@@ -0,0 +1,94 @@
1/*
2 * Hardware definitions for the Toshiba eseries PDAs
3 *
4 * Copyright (c) 2003 Ian Molton <spyro@f2s.com>
5 *
6 * This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 *
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15
16#include <asm/setup.h>
17#include <asm/mach/arch.h>
18#include <asm/mach-types.h>
19
20#include <mach/pxa-regs.h>
21#include <mach/mfp-pxa25x.h>
22#include <mach/hardware.h>
23
24#include <mach/pxafb.h>
25#include <mach/udc.h>
26
27#include "generic.h"
28#include "eseries.h"
29
30/* ------------------------ E400 LCD definitions ------------------------ */
31
32static struct pxafb_mode_info e400_pxafb_mode_info = {
33 .pixclock = 140703,
34 .xres = 240,
35 .yres = 320,
36 .bpp = 16,
37 .hsync_len = 4,
38 .left_margin = 28,
39 .right_margin = 8,
40 .vsync_len = 3,
41 .upper_margin = 5,
42 .lower_margin = 6,
43 .sync = 0,
44};
45
46static struct pxafb_mach_info e400_pxafb_mach_info = {
47 .modes = &e400_pxafb_mode_info,
48 .num_modes = 1,
49 .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act,
50 .lccr3 = 0,
51 .pxafb_backlight_power = NULL,
52};
53
54/* ------------------------ E400 MFP config ----------------------------- */
55
56static unsigned long e400_pin_config[] __initdata = {
57 /* Chip selects */
58 GPIO15_nCS_1, /* CS1 - Flash */
59 GPIO80_nCS_4, /* CS4 - TMIO */
60
61 /* Clocks */
62 GPIO12_32KHz,
63
64 /* BTUART */
65 GPIO42_BTUART_RXD,
66 GPIO43_BTUART_TXD,
67 GPIO44_BTUART_CTS,
68 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
69
70 /* wakeup */
71 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
72};
73
74/* ---------------------------------------------------------------------- */
75
76static void __init e400_init(void)
77{
78 pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
79 set_pxa_fb_info(&e400_pxafb_mach_info);
80 pxa_set_udc_info(&e7xx_udc_mach_info);
81}
82
83MACHINE_START(E400, "Toshiba e400")
84 /* Maintainer: Ian Molton (spyro@f2s.com) */
85 .phys_io = 0x40000000,
86 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
87 .boot_params = 0xa0000100,
88 .map_io = pxa_map_io,
89 .init_irq = pxa25x_init_irq,
90 .fixup = eseries_fixup,
91 .init_machine = e400_init,
92 .timer = &pxa_timer,
93MACHINE_END
94
diff --git a/arch/arm/mach-pxa/e400_lcd.c b/arch/arm/mach-pxa/e400_lcd.c
deleted file mode 100644
index 263884165f57..000000000000
--- a/arch/arm/mach-pxa/e400_lcd.c
+++ /dev/null
@@ -1,56 +0,0 @@
1/*
2 * e400_lcd.c
3 *
4 * (c) 2005 Ian Molton <spyro@f2s.com>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 */
11
12#include <linux/kernel.h>
13#include <linux/init.h>
14#include <linux/module.h>
15
16#include <asm/mach-types.h>
17#include <mach/pxa-regs.h>
18#include <mach/pxafb.h>
19
20static struct pxafb_mode_info e400_pxafb_mode_info = {
21 .pixclock = 140703,
22 .xres = 240,
23 .yres = 320,
24 .bpp = 16,
25 .hsync_len = 4,
26 .left_margin = 28,
27 .right_margin = 8,
28 .vsync_len = 3,
29 .upper_margin = 5,
30 .lower_margin = 6,
31 .sync = 0,
32};
33
34static struct pxafb_mach_info e400_pxafb_mach_info = {
35 .modes = &e400_pxafb_mode_info,
36 .num_modes = 1,
37 .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act,
38 .lccr3 = 0,
39 .pxafb_backlight_power = NULL,
40};
41
42static int __init e400_lcd_init(void)
43{
44 if (!machine_is_e400())
45 return -ENODEV;
46
47 set_pxa_fb_info(&e400_pxafb_mach_info);
48 return 0;
49}
50
51module_init(e400_lcd_init);
52
53MODULE_AUTHOR("Ian Molton <spyro@f2s.com>");
54MODULE_DESCRIPTION("e400 lcd driver");
55MODULE_LICENSE("GPLv2");
56
diff --git a/arch/arm/mach-pxa/e740.c b/arch/arm/mach-pxa/e740.c
new file mode 100644
index 000000000000..c57a15b37f0d
--- /dev/null
+++ b/arch/arm/mach-pxa/e740.c
@@ -0,0 +1,169 @@
1/*
2 * Hardware definitions for the Toshiba eseries PDAs
3 *
4 * Copyright (c) 2003 Ian Molton <spyro@f2s.com>
5 *
6 * This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 *
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/device.h>
16#include <linux/platform_device.h>
17#include <linux/fb.h>
18
19#include <video/w100fb.h>
20
21#include <asm/setup.h>
22#include <asm/mach/arch.h>
23#include <asm/mach-types.h>
24
25#include <mach/mfp-pxa25x.h>
26#include <mach/hardware.h>
27#include <mach/udc.h>
28
29#include "generic.h"
30#include "eseries.h"
31
32
33/* ------------------------ e740 video support --------------------------- */
34
35static struct w100_gen_regs e740_lcd_regs = {
36 .lcd_format = 0x00008023,
37 .lcdd_cntl1 = 0x0f000000,
38 .lcdd_cntl2 = 0x0003ffff,
39 .genlcd_cntl1 = 0x00ffff03,
40 .genlcd_cntl2 = 0x003c0f03,
41 .genlcd_cntl3 = 0x000143aa,
42};
43
44static struct w100_mode e740_lcd_mode = {
45 .xres = 240,
46 .yres = 320,
47 .left_margin = 20,
48 .right_margin = 28,
49 .upper_margin = 9,
50 .lower_margin = 8,
51 .crtc_ss = 0x80140013,
52 .crtc_ls = 0x81150110,
53 .crtc_gs = 0x80050005,
54 .crtc_vpos_gs = 0x000a0009,
55 .crtc_rev = 0x0040010a,
56 .crtc_dclk = 0xa906000a,
57 .crtc_gclk = 0x80050108,
58 .crtc_goe = 0x80050108,
59 .pll_freq = 57,
60 .pixclk_divider = 4,
61 .pixclk_divider_rotated = 4,
62 .pixclk_src = CLK_SRC_XTAL,
63 .sysclk_divider = 1,
64 .sysclk_src = CLK_SRC_PLL,
65 .crtc_ps1_active = 0x41060010,
66};
67
68static struct w100_gpio_regs e740_w100_gpio_info = {
69 .init_data1 = 0x21002103,
70 .gpio_dir1 = 0xffffdeff,
71 .gpio_oe1 = 0x03c00643,
72 .init_data2 = 0x003f003f,
73 .gpio_dir2 = 0xffffffff,
74 .gpio_oe2 = 0x000000ff,
75};
76
77static struct w100fb_mach_info e740_fb_info = {
78 .modelist = &e740_lcd_mode,
79 .num_modes = 1,
80 .regs = &e740_lcd_regs,
81 .gpio = &e740_w100_gpio_info,
82 .xtal_freq = 14318000,
83 .xtal_dbl = 1,
84};
85
86static struct resource e740_fb_resources[] = {
87 [0] = {
88 .start = 0x0c000000,
89 .end = 0x0cffffff,
90 .flags = IORESOURCE_MEM,
91 },
92};
93
94static struct platform_device e740_fb_device = {
95 .name = "w100fb",
96 .id = -1,
97 .dev = {
98 .platform_data = &e740_fb_info,
99 },
100 .num_resources = ARRAY_SIZE(e740_fb_resources),
101 .resource = e740_fb_resources,
102};
103
104/* --------------------------- MFP Pin config -------------------------- */
105
106static unsigned long e740_pin_config[] __initdata = {
107 /* Chip selects */
108 GPIO15_nCS_1, /* CS1 - Flash */
109 GPIO79_nCS_3, /* CS3 - IMAGEON */
110 GPIO80_nCS_4, /* CS4 - TMIO */
111
112 /* Clocks */
113 GPIO12_32KHz,
114
115 /* BTUART */
116 GPIO42_BTUART_RXD,
117 GPIO43_BTUART_TXD,
118 GPIO44_BTUART_CTS,
119 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
120
121 /* PC Card */
122 GPIO8_GPIO, /* CD0 */
123 GPIO44_GPIO, /* CD1 */
124 GPIO11_GPIO, /* IRQ0 */
125 GPIO6_GPIO, /* IRQ1 */
126 GPIO27_GPIO, /* RST0 */
127 GPIO24_GPIO, /* RST1 */
128 GPIO20_GPIO, /* PWR0 */
129 GPIO23_GPIO, /* PWR1 */
130 GPIO48_nPOE,
131 GPIO49_nPWE,
132 GPIO50_nPIOR,
133 GPIO51_nPIOW,
134 GPIO52_nPCE_1,
135 GPIO53_nPCE_2,
136 GPIO54_nPSKTSEL,
137 GPIO55_nPREG,
138 GPIO56_nPWAIT,
139 GPIO57_nIOIS16,
140
141 /* wakeup */
142 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
143};
144
145/* ----------------------------------------------------------------------- */
146
147static struct platform_device *devices[] __initdata = {
148 &e740_fb_device,
149};
150
151static void __init e740_init(void)
152{
153 pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config));
154 platform_add_devices(devices, ARRAY_SIZE(devices));
155 pxa_set_udc_info(&e7xx_udc_mach_info);
156}
157
158MACHINE_START(E740, "Toshiba e740")
159 /* Maintainer: Ian Molton (spyro@f2s.com) */
160 .phys_io = 0x40000000,
161 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
162 .boot_params = 0xa0000100,
163 .map_io = pxa_map_io,
164 .init_irq = pxa25x_init_irq,
165 .fixup = eseries_fixup,
166 .init_machine = e740_init,
167 .timer = &pxa_timer,
168MACHINE_END
169
diff --git a/arch/arm/mach-pxa/e740_lcd.c b/arch/arm/mach-pxa/e740_lcd.c
deleted file mode 100644
index 26bd599af178..000000000000
--- a/arch/arm/mach-pxa/e740_lcd.c
+++ /dev/null
@@ -1,123 +0,0 @@
1/* e740_lcd.c
2 *
3 * This file contains the definitions for the LCD timings and functions
4 * to control the LCD power / frontlighting via the w100fb driver.
5 *
6 * (c) 2005 Ian Molton <spyro@f2s.com>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12 */
13
14#include <linux/module.h>
15#include <linux/device.h>
16#include <linux/fb.h>
17#include <linux/err.h>
18#include <linux/platform_device.h>
19
20#include <asm/mach-types.h>
21
22#include <video/w100fb.h>
23
24/*
25**potential** shutdown routine - to be investigated
26devmem2 0x0c010528 w 0xff3fff00
27devmem2 0x0c010190 w 0x7FFF8000
28devmem2 0x0c0101b0 w 0x00FF0000
29devmem2 0x0c01008c w 0x00000000
30devmem2 0x0c010080 w 0x000000bf
31devmem2 0x0c010098 w 0x00000015
32devmem2 0x0c010088 w 0x4b000204
33devmem2 0x0c010098 w 0x0000001d
34*/
35
36static struct w100_gen_regs e740_lcd_regs = {
37 .lcd_format = 0x00008023,
38 .lcdd_cntl1 = 0x0f000000,
39 .lcdd_cntl2 = 0x0003ffff,
40 .genlcd_cntl1 = 0x00ffff03,
41 .genlcd_cntl2 = 0x003c0f03,
42 .genlcd_cntl3 = 0x000143aa,
43};
44
45static struct w100_mode e740_lcd_mode = {
46 .xres = 240,
47 .yres = 320,
48 .left_margin = 20,
49 .right_margin = 28,
50 .upper_margin = 9,
51 .lower_margin = 8,
52 .crtc_ss = 0x80140013,
53 .crtc_ls = 0x81150110,
54 .crtc_gs = 0x80050005,
55 .crtc_vpos_gs = 0x000a0009,
56 .crtc_rev = 0x0040010a,
57 .crtc_dclk = 0xa906000a,
58 .crtc_gclk = 0x80050108,
59 .crtc_goe = 0x80050108,
60 .pll_freq = 57,
61 .pixclk_divider = 4,
62 .pixclk_divider_rotated = 4,
63 .pixclk_src = CLK_SRC_XTAL,
64 .sysclk_divider = 1,
65 .sysclk_src = CLK_SRC_PLL,
66 .crtc_ps1_active = 0x41060010,
67};
68
69
70static struct w100_gpio_regs e740_w100_gpio_info = {
71 .init_data1 = 0x21002103,
72 .gpio_dir1 = 0xffffdeff,
73 .gpio_oe1 = 0x03c00643,
74 .init_data2 = 0x003f003f,
75 .gpio_dir2 = 0xffffffff,
76 .gpio_oe2 = 0x000000ff,
77};
78
79static struct w100fb_mach_info e740_fb_info = {
80 .modelist = &e740_lcd_mode,
81 .num_modes = 1,
82 .regs = &e740_lcd_regs,
83 .gpio = &e740_w100_gpio_info,
84 .xtal_freq = 14318000,
85 .xtal_dbl = 1,
86};
87
88static struct resource e740_fb_resources[] = {
89 [0] = {
90 .start = 0x0c000000,
91 .end = 0x0cffffff,
92 .flags = IORESOURCE_MEM,
93 },
94};
95
96/* ----------------------- device declarations -------------------------- */
97
98
99static struct platform_device e740_fb_device = {
100 .name = "w100fb",
101 .id = -1,
102 .dev = {
103 .platform_data = &e740_fb_info,
104 },
105 .num_resources = ARRAY_SIZE(e740_fb_resources),
106 .resource = e740_fb_resources,
107};
108
109static int e740_lcd_init(void)
110{
111 int ret;
112
113 if (!machine_is_e740())
114 return -ENODEV;
115
116 return platform_device_register(&e740_fb_device);
117}
118
119module_init(e740_lcd_init);
120
121MODULE_AUTHOR("Ian Molton <spyro@f2s.com>");
122MODULE_DESCRIPTION("e740 lcd driver");
123MODULE_LICENSE("GPLv2");
diff --git a/arch/arm/mach-pxa/e750_lcd.c b/arch/arm/mach-pxa/e750.c
index 75edc3b5390f..640e738b85df 100644
--- a/arch/arm/mach-pxa/e750_lcd.c
+++ b/arch/arm/mach-pxa/e750.c
@@ -1,25 +1,35 @@
1/* e750_lcd.c 1/*
2 * Hardware definitions for the Toshiba eseries PDAs
2 * 3 *
3 * This file contains the definitions for the LCD timings and functions 4 * Copyright (c) 2003 Ian Molton <spyro@f2s.com>
4 * to control the LCD power / frontlighting via the w100fb driver.
5 * 5 *
6 * (c) 2005 Ian Molton <spyro@f2s.com> 6 * This file is licensed under
7 * 7 * the terms of the GNU General Public License version 2. This program
8 * This program is free software; you can redistribute it and/or modify 8 * is licensed "as is" without any warranty of any kind, whether express
9 * it under the terms of the GNU General Public License version 2 as 9 * or implied.
10 * published by the Free Software Foundation.
11 * 10 *
12 */ 11 */
13 12
14#include <linux/module.h> 13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/device.h> 15#include <linux/device.h>
16#include <linux/fb.h>
17#include <linux/err.h>
18#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/fb.h>
18
19#include <video/w100fb.h>
19 20
21#include <asm/setup.h>
22#include <asm/mach/arch.h>
20#include <asm/mach-types.h> 23#include <asm/mach-types.h>
21 24
22#include <video/w100fb.h> 25#include <mach/mfp-pxa25x.h>
26#include <mach/hardware.h>
27#include <mach/udc.h>
28
29#include "generic.h"
30#include "eseries.h"
31
32/* ---------------------- E750 LCD definitions -------------------- */
23 33
24static struct w100_gen_regs e750_lcd_regs = { 34static struct w100_gen_regs e750_lcd_regs = {
25 .lcd_format = 0x00008003, 35 .lcd_format = 0x00008003,
@@ -54,7 +64,6 @@ static struct w100_mode e750_lcd_mode = {
54 .sysclk_src = CLK_SRC_PLL, 64 .sysclk_src = CLK_SRC_PLL,
55}; 65};
56 66
57
58static struct w100_gpio_regs e750_w100_gpio_info = { 67static struct w100_gpio_regs e750_w100_gpio_info = {
59 .init_data1 = 0x01192f1b, 68 .init_data1 = 0x01192f1b,
60 .gpio_dir1 = 0xd5ffdeff, 69 .gpio_dir1 = 0xd5ffdeff,
@@ -81,9 +90,6 @@ static struct resource e750_fb_resources[] = {
81 }, 90 },
82}; 91};
83 92
84/* ----------------------- device declarations -------------------------- */
85
86
87static struct platform_device e750_fb_device = { 93static struct platform_device e750_fb_device = {
88 .name = "w100fb", 94 .name = "w100fb",
89 .id = -1, 95 .id = -1,
@@ -94,16 +100,27 @@ static struct platform_device e750_fb_device = {
94 .resource = e750_fb_resources, 100 .resource = e750_fb_resources,
95}; 101};
96 102
97static int e750_lcd_init(void) 103/* ----------------------------------------------------------------------- */
98{
99 if (!machine_is_e750())
100 return -ENODEV;
101 104
102 return platform_device_register(&e750_fb_device); 105static struct platform_device *devices[] __initdata = {
106 &e750_fb_device,
107};
108
109static void __init e750_init(void)
110{
111 platform_add_devices(devices, ARRAY_SIZE(devices));
112 pxa_set_udc_info(&e7xx_udc_mach_info);
103} 113}
104 114
105module_init(e750_lcd_init); 115MACHINE_START(E750, "Toshiba e750")
116 /* Maintainer: Ian Molton (spyro@f2s.com) */
117 .phys_io = 0x40000000,
118 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
119 .boot_params = 0xa0000100,
120 .map_io = pxa_map_io,
121 .init_irq = pxa25x_init_irq,
122 .fixup = eseries_fixup,
123 .init_machine = e750_init,
124 .timer = &pxa_timer,
125MACHINE_END
106 126
107MODULE_AUTHOR("Ian Molton <spyro@f2s.com>");
108MODULE_DESCRIPTION("e750 lcd driver");
109MODULE_LICENSE("GPLv2");
diff --git a/arch/arm/mach-pxa/e800_lcd.c b/arch/arm/mach-pxa/e800.c
index e6aeab0ebc22..a293e09bfe25 100644
--- a/arch/arm/mach-pxa/e800_lcd.c
+++ b/arch/arm/mach-pxa/e800.c
@@ -1,25 +1,36 @@
1/* e800_lcd.c 1/*
2 * Hardware definitions for the Toshiba eseries PDAs
2 * 3 *
3 * This file contains the definitions for the LCD timings and functions 4 * Copyright (c) 2003 Ian Molton <spyro@f2s.com>
4 * to control the LCD power / frontlighting via the w100fb driver.
5 * 5 *
6 * (c) 2005 Ian Molton <spyro@f2s.com> 6 * This file is licensed under
7 * 7 * the terms of the GNU General Public License version 2. This program
8 * This program is free software; you can redistribute it and/or modify 8 * is licensed "as is" without any warranty of any kind, whether express
9 * it under the terms of the GNU General Public License version 2 as 9 * or implied.
10 * published by the Free Software Foundation.
11 * 10 *
12 */ 11 */
13 12
14#include <linux/module.h> 13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/device.h> 15#include <linux/device.h>
16#include <linux/fb.h>
17#include <linux/err.h>
18#include <linux/platform_device.h> 16#include <linux/platform_device.h>
17#include <linux/fb.h>
18
19#include <video/w100fb.h>
19 20
21#include <asm/setup.h>
22#include <asm/mach/arch.h>
20#include <asm/mach-types.h> 23#include <asm/mach-types.h>
21 24
22#include <video/w100fb.h> 25#include <mach/mfp-pxa25x.h>
26#include <mach/hardware.h>
27#include <mach/eseries-gpio.h>
28#include <mach/udc.h>
29
30#include "generic.h"
31#include "eseries.h"
32
33/* ------------------------ e800 LCD definitions ------------------------- */
23 34
24static struct w100_gen_regs e800_lcd_regs = { 35static struct w100_gen_regs e800_lcd_regs = {
25 .lcd_format = 0x00008003, 36 .lcd_format = 0x00008003,
@@ -71,8 +82,8 @@ static struct w100_mode e800_lcd_mode[2] = {
71 .crtc_goe = 0x80cc0015, 82 .crtc_goe = 0x80cc0015,
72 .crtc_ps1_active = 0x00000000, 83 .crtc_ps1_active = 0x00000000,
73 .pll_freq = 100, 84 .pll_freq = 100,
74 .pixclk_divider = 6, /* Wince uses 14 which gives a 7MHz pclk. */ 85 .pixclk_divider = 6, /* Wince uses 14 which gives a */
75 .pixclk_divider_rotated = 6, /* we want a 14MHz one (much nicer to look at) */ 86 .pixclk_divider_rotated = 6, /* 7MHz Pclk. We use a 14MHz one */
76 .pixclk_src = CLK_SRC_PLL, 87 .pixclk_src = CLK_SRC_PLL,
77 .sysclk_divider = 0, 88 .sysclk_divider = 0,
78 .sysclk_src = CLK_SRC_PLL, 89 .sysclk_src = CLK_SRC_PLL,
@@ -131,9 +142,6 @@ static struct resource e800_fb_resources[] = {
131 }, 142 },
132}; 143};
133 144
134/* ----------------------- device declarations -------------------------- */
135
136
137static struct platform_device e800_fb_device = { 145static struct platform_device e800_fb_device = {
138 .name = "w100fb", 146 .name = "w100fb",
139 .id = -1, 147 .id = -1,
@@ -144,16 +152,35 @@ static struct platform_device e800_fb_device = {
144 .resource = e800_fb_resources, 152 .resource = e800_fb_resources,
145}; 153};
146 154
147static int e800_lcd_init(void) 155/* --------------------------- UDC definitions --------------------------- */
148{ 156
149 if (!machine_is_e800()) 157static struct pxa2xx_udc_mach_info e800_udc_mach_info = {
150 return -ENODEV; 158 .gpio_vbus = GPIO_E800_USB_DISC,
159 .gpio_pullup = GPIO_E800_USB_PULLUP,
160 .gpio_pullup_inverted = 1
161};
151 162
152 return platform_device_register(&e800_fb_device); 163/* ----------------------------------------------------------------------- */
164
165static struct platform_device *devices[] __initdata = {
166 &e800_fb_device,
167};
168
169static void __init e800_init(void)
170{
171 platform_add_devices(devices, ARRAY_SIZE(devices));
172 pxa_set_udc_info(&e800_udc_mach_info);
153} 173}
154 174
155module_init(e800_lcd_init); 175MACHINE_START(E800, "Toshiba e800")
176 /* Maintainer: Ian Molton (spyro@f2s.com) */
177 .phys_io = 0x40000000,
178 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
179 .boot_params = 0xa0000100,
180 .map_io = pxa_map_io,
181 .init_irq = pxa25x_init_irq,
182 .fixup = eseries_fixup,
183 .init_machine = e800_init,
184 .timer = &pxa_timer,
185MACHINE_END
156 186
157MODULE_AUTHOR("Ian Molton <spyro@f2s.com>");
158MODULE_DESCRIPTION("e800 lcd driver");
159MODULE_LICENSE("GPLv2");
diff --git a/arch/arm/mach-pxa/em-x270.c b/arch/arm/mach-pxa/em-x270.c
index 7a0a681a5847..f5ed8038ede5 100644
--- a/arch/arm/mach-pxa/em-x270.c
+++ b/arch/arm/mach-pxa/em-x270.c
@@ -373,10 +373,6 @@ static inline void em_x270_init_nand(void) {}
373#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 373#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
374static int em_x270_ohci_init(struct device *dev) 374static int em_x270_ohci_init(struct device *dev)
375{ 375{
376 /* Set the Power Control Polarity Low */
377 UHCHR = (UHCHR | UHCHR_PCPL) &
378 ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSE);
379
380 /* enable port 2 transiever */ 376 /* enable port 2 transiever */
381 UP2OCR = UP2OCR_HXS | UP2OCR_HXOE; 377 UP2OCR = UP2OCR_HXS | UP2OCR_HXOE;
382 378
@@ -385,6 +381,7 @@ static int em_x270_ohci_init(struct device *dev)
385 381
386static struct pxaohci_platform_data em_x270_ohci_platform_data = { 382static struct pxaohci_platform_data em_x270_ohci_platform_data = {
387 .port_mode = PMM_PERPORT_MODE, 383 .port_mode = PMM_PERPORT_MODE,
384 .flags = ENABLE_PORT1 | ENABLE_PORT2 | POWER_CONTROL_LOW,
388 .init = em_x270_ohci_init, 385 .init = em_x270_ohci_init,
389}; 386};
390 387
diff --git a/arch/arm/mach-pxa/eseries.c b/arch/arm/mach-pxa/eseries.c
index 001a252bd514..d28849b50a14 100644
--- a/arch/arm/mach-pxa/eseries.c
+++ b/arch/arm/mach-pxa/eseries.c
@@ -19,68 +19,13 @@
19 19
20#include <mach/mfp-pxa25x.h> 20#include <mach/mfp-pxa25x.h>
21#include <mach/hardware.h> 21#include <mach/hardware.h>
22#include <mach/eseries-gpio.h>
23#include <mach/udc.h>
22 24
23#include "generic.h" 25#include "generic.h"
24 26
25static unsigned long e740_pin_config[] __initdata = {
26 /* Chip selects */
27 GPIO15_nCS_1, /* CS1 - Flash */
28 GPIO79_nCS_3, /* CS3 - IMAGEON */
29 GPIO80_nCS_4, /* CS4 - TMIO */
30
31 /* Clocks */
32 GPIO12_32KHz,
33
34 /* BTUART */
35 GPIO42_BTUART_RXD,
36 GPIO43_BTUART_TXD,
37 GPIO44_BTUART_CTS,
38 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
39
40 /* PC Card */
41 GPIO8_GPIO, /* CD0 */
42 GPIO44_GPIO, /* CD1 */
43 GPIO11_GPIO, /* IRQ0 */
44 GPIO6_GPIO, /* IRQ1 */
45 GPIO27_GPIO, /* RST0 */
46 GPIO24_GPIO, /* RST1 */
47 GPIO20_GPIO, /* PWR0 */
48 GPIO23_GPIO, /* PWR1 */
49 GPIO48_nPOE,
50 GPIO49_nPWE,
51 GPIO50_nPIOR,
52 GPIO51_nPIOW,
53 GPIO52_nPCE_1,
54 GPIO53_nPCE_2,
55 GPIO54_nPSKTSEL,
56 GPIO55_nPREG,
57 GPIO56_nPWAIT,
58 GPIO57_nIOIS16,
59
60 /* wakeup */
61 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
62};
63
64static unsigned long e400_pin_config[] __initdata = {
65 /* Chip selects */
66 GPIO15_nCS_1, /* CS1 - Flash */
67 GPIO80_nCS_4, /* CS4 - TMIO */
68
69 /* Clocks */
70 GPIO12_32KHz,
71
72 /* BTUART */
73 GPIO42_BTUART_RXD,
74 GPIO43_BTUART_TXD,
75 GPIO44_BTUART_CTS,
76 GPIO45_GPIO, /* Used by TMIO for #SUSPEND */
77
78 /* wakeup */
79 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE,
80};
81
82/* Only e800 has 128MB RAM */ 27/* Only e800 has 128MB RAM */
83static void __init eseries_fixup(struct machine_desc *desc, 28void __init eseries_fixup(struct machine_desc *desc,
84 struct tag *tags, char **cmdline, struct meminfo *mi) 29 struct tag *tags, char **cmdline, struct meminfo *mi)
85{ 30{
86 mi->nr_banks=1; 31 mi->nr_banks=1;
@@ -92,95 +37,9 @@ static void __init eseries_fixup(struct machine_desc *desc,
92 mi->bank[0].size = (64*1024*1024); 37 mi->bank[0].size = (64*1024*1024);
93} 38}
94 39
95static void __init e740_init(void) 40struct pxa2xx_udc_mach_info e7xx_udc_mach_info = {
96{ 41 .gpio_vbus = GPIO_E7XX_USB_DISC,
97 pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config)); 42 .gpio_pullup = GPIO_E7XX_USB_PULLUP,
98} 43 .gpio_pullup_inverted = 1
99 44};
100static void __init e400_init(void)
101{
102 pxa2xx_mfp_config(ARRAY_AND_SIZE(e400_pin_config));
103}
104
105/* e-series machine definitions */
106
107#ifdef CONFIG_MACH_E330
108MACHINE_START(E330, "Toshiba e330")
109 /* Maintainer: Ian Molton (spyro@f2s.com) */
110 .phys_io = 0x40000000,
111 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
112 .boot_params = 0xa0000100,
113 .map_io = pxa_map_io,
114 .init_irq = pxa25x_init_irq,
115 .fixup = eseries_fixup,
116 .timer = &pxa_timer,
117MACHINE_END
118#endif
119
120#ifdef CONFIG_MACH_E350
121MACHINE_START(E350, "Toshiba e350")
122 /* Maintainer: Ian Molton (spyro@f2s.com) */
123 .phys_io = 0x40000000,
124 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
125 .boot_params = 0xa0000100,
126 .map_io = pxa_map_io,
127 .init_irq = pxa25x_init_irq,
128 .fixup = eseries_fixup,
129 .timer = &pxa_timer,
130MACHINE_END
131#endif
132
133#ifdef CONFIG_MACH_E740
134MACHINE_START(E740, "Toshiba e740")
135 /* Maintainer: Ian Molton (spyro@f2s.com) */
136 .phys_io = 0x40000000,
137 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
138 .boot_params = 0xa0000100,
139 .map_io = pxa_map_io,
140 .init_irq = pxa25x_init_irq,
141 .fixup = eseries_fixup,
142 .init_machine = e740_init,
143 .timer = &pxa_timer,
144MACHINE_END
145#endif
146
147#ifdef CONFIG_MACH_E750
148MACHINE_START(E750, "Toshiba e750")
149 /* Maintainer: Ian Molton (spyro@f2s.com) */
150 .phys_io = 0x40000000,
151 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
152 .boot_params = 0xa0000100,
153 .map_io = pxa_map_io,
154 .init_irq = pxa25x_init_irq,
155 .fixup = eseries_fixup,
156 .timer = &pxa_timer,
157MACHINE_END
158#endif
159
160#ifdef CONFIG_MACH_E400
161MACHINE_START(E400, "Toshiba e400")
162 /* Maintainer: Ian Molton (spyro@f2s.com) */
163 .phys_io = 0x40000000,
164 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
165 .boot_params = 0xa0000100,
166 .map_io = pxa_map_io,
167 .init_irq = pxa25x_init_irq,
168 .fixup = eseries_fixup,
169 .init_machine = e400_init,
170 .timer = &pxa_timer,
171MACHINE_END
172#endif
173
174#ifdef CONFIG_MACH_E800
175MACHINE_START(E800, "Toshiba e800")
176 /* Maintainer: Ian Molton (spyro@f2s.com) */
177 .phys_io = 0x40000000,
178 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
179 .boot_params = 0xa0000100,
180 .map_io = pxa_map_io,
181 .init_irq = pxa25x_init_irq,
182 .fixup = eseries_fixup,
183 .timer = &pxa_timer,
184MACHINE_END
185#endif
186 45
diff --git a/arch/arm/mach-pxa/eseries.h b/arch/arm/mach-pxa/eseries.h
new file mode 100644
index 000000000000..a83f88d4b6ad
--- /dev/null
+++ b/arch/arm/mach-pxa/eseries.h
@@ -0,0 +1,4 @@
1void __init eseries_fixup(struct machine_desc *desc,
2 struct tag *tags, char **cmdline, struct meminfo *mi);
3
4extern struct pxa2xx_udc_mach_info e7xx_udc_mach_info;
diff --git a/arch/arm/mach-pxa/eseries_udc.c b/arch/arm/mach-pxa/eseries_udc.c
deleted file mode 100644
index d622c04c0d44..000000000000
--- a/arch/arm/mach-pxa/eseries_udc.c
+++ /dev/null
@@ -1,57 +0,0 @@
1/*
2 * UDC functions for the Toshiba e-series PDAs
3 *
4 * Copyright (c) Ian Molton 2003
5 *
6 * This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 *
11 */
12
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/device.h>
16
17#include <mach/udc.h>
18#include <mach/eseries-gpio.h>
19#include <mach/hardware.h>
20#include <mach/pxa-regs.h>
21#include <asm/mach/arch.h>
22#include <asm/mach-types.h>
23#include <asm/mach/map.h>
24#include <asm/domain.h>
25
26/* local PXA generic code */
27#include "generic.h"
28
29static struct pxa2xx_udc_mach_info e7xx_udc_mach_info = {
30 .gpio_vbus = GPIO_E7XX_USB_DISC,
31 .gpio_pullup = GPIO_E7XX_USB_PULLUP,
32 .gpio_pullup_inverted = 1
33};
34
35static struct pxa2xx_udc_mach_info e800_udc_mach_info = {
36 .gpio_vbus = GPIO_E800_USB_DISC,
37 .gpio_pullup = GPIO_E800_USB_PULLUP,
38 .gpio_pullup_inverted = 1
39};
40
41static int __init eseries_udc_init(void)
42{
43 if (machine_is_e330() || machine_is_e350() ||
44 machine_is_e740() || machine_is_e750() ||
45 machine_is_e400())
46 pxa_set_udc_info(&e7xx_udc_mach_info);
47 else if (machine_is_e800())
48 pxa_set_udc_info(&e800_udc_mach_info);
49
50 return 0;
51}
52
53module_init(eseries_udc_init);
54
55MODULE_AUTHOR("Ian Molton <spyro@f2s.com>");
56MODULE_DESCRIPTION("eseries UDC support");
57MODULE_LICENSE("GPLv2");
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
index ceaed0076366..85ed0b33331f 100644
--- a/arch/arm/mach-pxa/generic.c
+++ b/arch/arm/mach-pxa/generic.c
@@ -46,7 +46,7 @@ void clear_reset_status(unsigned int mask)
46 */ 46 */
47unsigned int get_clk_frequency_khz(int info) 47unsigned int get_clk_frequency_khz(int info)
48{ 48{
49 if (cpu_is_pxa21x() || cpu_is_pxa25x()) 49 if (cpu_is_pxa25x())
50 return pxa25x_get_clk_frequency_khz(info); 50 return pxa25x_get_clk_frequency_khz(info);
51 else if (cpu_is_pxa27x()) 51 else if (cpu_is_pxa27x())
52 return pxa27x_get_clk_frequency_khz(info); 52 return pxa27x_get_clk_frequency_khz(info);
@@ -60,7 +60,7 @@ EXPORT_SYMBOL(get_clk_frequency_khz);
60 */ 60 */
61unsigned int get_memclk_frequency_10khz(void) 61unsigned int get_memclk_frequency_10khz(void)
62{ 62{
63 if (cpu_is_pxa21x() || cpu_is_pxa25x()) 63 if (cpu_is_pxa25x())
64 return pxa25x_get_memclk_frequency_10khz(); 64 return pxa25x_get_memclk_frequency_10khz();
65 else if (cpu_is_pxa27x()) 65 else if (cpu_is_pxa27x())
66 return pxa27x_get_memclk_frequency_10khz(); 66 return pxa27x_get_memclk_frequency_10khz();
@@ -88,11 +88,6 @@ static struct map_desc standard_io_desc[] __initdata = {
88 .pfn = __phys_to_pfn(0x48000000), 88 .pfn = __phys_to_pfn(0x48000000),
89 .length = 0x00200000, 89 .length = 0x00200000,
90 .type = MT_DEVICE 90 .type = MT_DEVICE
91 }, { /* USB host */
92 .virtual = 0xf8000000,
93 .pfn = __phys_to_pfn(0x4c000000),
94 .length = 0x00100000,
95 .type = MT_DEVICE
96 }, { /* Camera */ 91 }, { /* Camera */
97 .virtual = 0xfa000000, 92 .virtual = 0xfa000000,
98 .pfn = __phys_to_pfn(0x50000000), 93 .pfn = __phys_to_pfn(0x50000000),
diff --git a/arch/arm/mach-pxa/generic.h b/arch/arm/mach-pxa/generic.h
index 041c048320e4..dc876a8e6668 100644
--- a/arch/arm/mach-pxa/generic.h
+++ b/arch/arm/mach-pxa/generic.h
@@ -65,4 +65,5 @@ static inline void pxa3xx_clear_reset_status(unsigned int mask) {}
65 65
66extern struct sysdev_class pxa_irq_sysclass; 66extern struct sysdev_class pxa_irq_sysclass;
67extern struct sysdev_class pxa_gpio_sysclass; 67extern struct sysdev_class pxa_gpio_sysclass;
68extern struct sysdev_class pxa2xx_mfp_sysclass;
68extern struct sysdev_class pxa3xx_mfp_sysclass; 69extern struct sysdev_class pxa3xx_mfp_sysclass;
diff --git a/arch/arm/mach-pxa/gpio.c b/arch/arm/mach-pxa/gpio.c
index 07acc1b23857..14930cf8be7b 100644
--- a/arch/arm/mach-pxa/gpio.c
+++ b/arch/arm/mach-pxa/gpio.c
@@ -16,10 +16,10 @@
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/irq.h> 17#include <linux/irq.h>
18#include <linux/sysdev.h> 18#include <linux/sysdev.h>
19#include <linux/io.h>
19 20
20#include <asm/gpio.h> 21#include <asm/gpio.h>
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/io.h>
23#include <mach/pxa-regs.h> 23#include <mach/pxa-regs.h>
24#include <mach/pxa2xx-gpio.h> 24#include <mach/pxa2xx-gpio.h>
25 25
@@ -275,7 +275,7 @@ static void pxa_gpio_demux_handler(unsigned int irq, struct irq_desc *desc)
275 loop = 1; 275 loop = 1;
276 276
277 n = PXA_GPIO_IRQ_BASE + bit; 277 n = PXA_GPIO_IRQ_BASE + bit;
278 desc_handle_irq(n, irq_desc + n); 278 generic_handle_irq(n);
279 279
280 bit = find_next_bit(gedr, GEDR_BITS, bit + 1); 280 bit = find_next_bit(gedr, GEDR_BITS, bit + 1);
281 } 281 }
diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c
index c0092472fa58..d8962a0fb98d 100644
--- a/arch/arm/mach-pxa/gumstix.c
+++ b/arch/arm/mach-pxa/gumstix.c
@@ -20,8 +20,12 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/interrupt.h> 22#include <linux/interrupt.h>
23#include <linux/delay.h>
23#include <linux/mtd/mtd.h> 24#include <linux/mtd/mtd.h>
24#include <linux/mtd/partitions.h> 25#include <linux/mtd/partitions.h>
26#include <linux/gpio.h>
27#include <linux/err.h>
28#include <linux/clk.h>
25 29
26#include <asm/setup.h> 30#include <asm/setup.h>
27#include <asm/memory.h> 31#include <asm/memory.h>
@@ -40,7 +44,7 @@
40 44
41#include <mach/pxa-regs.h> 45#include <mach/pxa-regs.h>
42#include <mach/pxa2xx-regs.h> 46#include <mach/pxa2xx-regs.h>
43#include <mach/pxa2xx-gpio.h> 47#include <mach/mfp-pxa25x.h>
44 48
45#include "generic.h" 49#include "generic.h"
46 50
@@ -85,21 +89,8 @@ static struct platform_device *devices[] __initdata = {
85}; 89};
86 90
87#ifdef CONFIG_MMC_PXA 91#ifdef CONFIG_MMC_PXA
88static struct pxamci_platform_data gumstix_mci_platform_data;
89
90static int gumstix_mci_init(struct device *dev, irq_handler_t detect_int,
91 void *data)
92{
93 pxa_gpio_mode(GPIO6_MMCCLK_MD);
94 pxa_gpio_mode(GPIO53_MMCCLK_MD);
95 pxa_gpio_mode(GPIO8_MMCCS0_MD);
96
97 return 0;
98}
99
100static struct pxamci_platform_data gumstix_mci_platform_data = { 92static struct pxamci_platform_data gumstix_mci_platform_data = {
101 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 93 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
102 .init = gumstix_mci_init,
103}; 94};
104 95
105static void __init gumstix_mmc_init(void) 96static void __init gumstix_mmc_init(void)
@@ -109,11 +100,11 @@ static void __init gumstix_mmc_init(void)
109#else 100#else
110static void __init gumstix_mmc_init(void) 101static void __init gumstix_mmc_init(void)
111{ 102{
112 printk(KERN_INFO "Gumstix mmc disabled\n"); 103 pr_debug("Gumstix mmc disabled\n");
113} 104}
114#endif 105#endif
115 106
116#ifdef CONFIG_USB_GADGET_PXA2XX 107#ifdef CONFIG_USB_GADGET_PXA25X
117static struct pxa2xx_udc_mach_info gumstix_udc_info __initdata = { 108static struct pxa2xx_udc_mach_info gumstix_udc_info __initdata = {
118 .gpio_vbus = GPIO_GUMSTIX_USB_GPIOn, 109 .gpio_vbus = GPIO_GUMSTIX_USB_GPIOn,
119 .gpio_pullup = GPIO_GUMSTIX_USB_GPIOx, 110 .gpio_pullup = GPIO_GUMSTIX_USB_GPIOx,
@@ -126,12 +117,87 @@ static void __init gumstix_udc_init(void)
126#else 117#else
127static void gumstix_udc_init(void) 118static void gumstix_udc_init(void)
128{ 119{
129 printk(KERN_INFO "Gumstix udc is disabled\n"); 120 pr_debug("Gumstix udc is disabled\n");
130} 121}
131#endif 122#endif
132 123
124#ifdef CONFIG_BT
125/* Normally, the bootloader would have enabled this 32kHz clock but many
126** boards still have u-boot 1.1.4 so we check if it has been turned on and
127** if not, we turn it on with a warning message. */
128static void gumstix_setup_bt_clock(void)
129{
130 int timeout = 500;
131
132 if (!(OSCC & OSCC_OOK))
133 pr_warning("32kHz clock was not on. Bootloader may need to "
134 "be updated\n");
135 else
136 return;
137
138 OSCC |= OSCC_OON;
139 do {
140 if (OSCC & OSCC_OOK)
141 break;
142 udelay(1);
143 } while (--timeout);
144 if (!timeout)
145 pr_err("Failed to start 32kHz clock\n");
146}
147
148static void __init gumstix_bluetooth_init(void)
149{
150 int err;
151
152 gumstix_setup_bt_clock();
153
154 err = gpio_request(GPIO_GUMSTIX_BTRESET, "BTRST");
155 if (err) {
156 pr_err("gumstix: failed request gpio for bluetooth reset\n");
157 return;
158 }
159
160 err = gpio_direction_output(GPIO_GUMSTIX_BTRESET, 1);
161 if (err) {
162 pr_err("gumstix: can't reset bluetooth\n");
163 return;
164 }
165 gpio_set_value(GPIO_GUMSTIX_BTRESET, 0);
166 udelay(100);
167 gpio_set_value(GPIO_GUMSTIX_BTRESET, 1);
168}
169#else
170static void gumstix_bluetooth_init(void)
171{
172 pr_debug("Gumstix Bluetooth is disabled\n");
173}
174#endif
175
176static unsigned long gumstix_pin_config[] __initdata = {
177 GPIO12_32KHz,
178 /* BTUART */
179 GPIO42_HWUART_RXD,
180 GPIO43_HWUART_TXD,
181 GPIO44_HWUART_CTS,
182 GPIO45_HWUART_RTS,
183 /* MMC */
184 GPIO6_MMC_CLK,
185 GPIO53_MMC_CLK,
186 GPIO8_MMC_CS0,
187 /* these are used by AM200EPD */
188 GPIO51_GPIO,
189 GPIO49_GPIO,
190 GPIO48_GPIO,
191 GPIO32_GPIO,
192 GPIO17_GPIO,
193 GPIO16_GPIO,
194};
195
133static void __init gumstix_init(void) 196static void __init gumstix_init(void)
134{ 197{
198 pxa2xx_mfp_config(ARRAY_AND_SIZE(gumstix_pin_config));
199
200 gumstix_bluetooth_init();
135 gumstix_udc_init(); 201 gumstix_udc_init();
136 gumstix_mmc_init(); 202 gumstix_mmc_init();
137 (void) platform_add_devices(devices, ARRAY_SIZE(devices)); 203 (void) platform_add_devices(devices, ARRAY_SIZE(devices));
diff --git a/arch/arm/mach-pxa/idp.c b/arch/arm/mach-pxa/idp.c
index 5aa0270d5605..013b15baa034 100644
--- a/arch/arm/mach-pxa/idp.c
+++ b/arch/arm/mach-pxa/idp.c
@@ -32,7 +32,7 @@
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
33 33
34#include <mach/pxa-regs.h> 34#include <mach/pxa-regs.h>
35#include <mach/pxa2xx-gpio.h> 35#include <mach/mfp-pxa25x.h>
36#include <mach/idp.h> 36#include <mach/idp.h>
37#include <mach/pxafb.h> 37#include <mach/pxafb.h>
38#include <mach/bitfield.h> 38#include <mach/bitfield.h>
@@ -46,6 +46,47 @@
46 * - Ethernet interrupt 46 * - Ethernet interrupt
47 */ 47 */
48 48
49static unsigned long idp_pin_config[] __initdata = {
50 /* LCD */
51 GPIO58_LCD_LDD_0,
52 GPIO59_LCD_LDD_1,
53 GPIO60_LCD_LDD_2,
54 GPIO61_LCD_LDD_3,
55 GPIO62_LCD_LDD_4,
56 GPIO63_LCD_LDD_5,
57 GPIO64_LCD_LDD_6,
58 GPIO65_LCD_LDD_7,
59 GPIO66_LCD_LDD_8,
60 GPIO67_LCD_LDD_9,
61 GPIO68_LCD_LDD_10,
62 GPIO69_LCD_LDD_11,
63 GPIO70_LCD_LDD_12,
64 GPIO71_LCD_LDD_13,
65 GPIO72_LCD_LDD_14,
66 GPIO73_LCD_LDD_15,
67 GPIO74_LCD_FCLK,
68 GPIO75_LCD_LCLK,
69 GPIO76_LCD_PCLK,
70
71 /* BTUART */
72 GPIO42_BTUART_RXD,
73 GPIO43_BTUART_TXD,
74 GPIO44_BTUART_CTS,
75 GPIO45_BTUART_RTS,
76
77 /* STUART */
78 GPIO46_STUART_RXD,
79 GPIO47_STUART_TXD,
80
81 /* MMC */
82 GPIO6_MMC_CLK,
83 GPIO8_MMC_CS0,
84
85 /* Ethernet */
86 GPIO33_nCS_5, /* Ethernet CS */
87 GPIO4_GPIO, /* Ethernet IRQ */
88};
89
49static struct resource smc91x_resources[] = { 90static struct resource smc91x_resources[] = {
50 [0] = { 91 [0] = {
51 .start = (IDP_ETH_PHYS + 0x300), 92 .start = (IDP_ETH_PHYS + 0x300),
@@ -121,44 +162,28 @@ static struct pxafb_mach_info sharp_lm8v31 = {
121 .num_modes = 1, 162 .num_modes = 1,
122 .cmap_inverse = 0, 163 .cmap_inverse = 0,
123 .cmap_static = 0, 164 .cmap_static = 0,
124 .lccr0 = LCCR0_SDS, 165 .lcd_conn = LCD_COLOR_DSTN_16BPP | LCD_PCLK_EDGE_FALL |
125 .lccr3 = LCCR3_PCP | LCCR3_Acb(255), 166 LCD_AC_BIAS_FREQ(255),
126 .pxafb_backlight_power = &idp_backlight_power, 167 .pxafb_backlight_power = &idp_backlight_power,
127 .pxafb_lcd_power = &idp_lcd_power 168 .pxafb_lcd_power = &idp_lcd_power
128}; 169};
129 170
130static int idp_mci_init(struct device *dev, irq_handler_t idp_detect_int, void *data)
131{
132 /* setup GPIO for PXA25x MMC controller */
133 pxa_gpio_mode(GPIO6_MMCCLK_MD);
134 pxa_gpio_mode(GPIO8_MMCCS0_MD);
135
136 return 0;
137}
138
139static struct pxamci_platform_data idp_mci_platform_data = { 171static struct pxamci_platform_data idp_mci_platform_data = {
140 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 172 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
141 .init = idp_mci_init,
142}; 173};
143 174
144static void __init idp_init(void) 175static void __init idp_init(void)
145{ 176{
146 printk("idp_init()\n"); 177 printk("idp_init()\n");
147 178
179 pxa2xx_mfp_config(ARRAY_AND_SIZE(idp_pin_config));
180
148 platform_device_register(&smc91x_device); 181 platform_device_register(&smc91x_device);
149 //platform_device_register(&mst_audio_device); 182 //platform_device_register(&mst_audio_device);
150 set_pxa_fb_info(&sharp_lm8v31); 183 set_pxa_fb_info(&sharp_lm8v31);
151 pxa_set_mci_info(&idp_mci_platform_data); 184 pxa_set_mci_info(&idp_mci_platform_data);
152} 185}
153 186
154static void __init idp_init_irq(void)
155{
156
157 pxa25x_init_irq();
158
159 set_irq_type(TOUCH_PANEL_IRQ, TOUCH_PANEL_IRQ_EDGE);
160}
161
162static struct map_desc idp_io_desc[] __initdata = { 187static struct map_desc idp_io_desc[] __initdata = {
163 { 188 {
164 .virtual = IDP_COREVOLT_VIRT, 189 .virtual = IDP_COREVOLT_VIRT,
@@ -177,15 +202,6 @@ static void __init idp_map_io(void)
177{ 202{
178 pxa_map_io(); 203 pxa_map_io();
179 iotable_init(idp_io_desc, ARRAY_SIZE(idp_io_desc)); 204 iotable_init(idp_io_desc, ARRAY_SIZE(idp_io_desc));
180
181 // serial ports 2 & 3
182 pxa_gpio_mode(GPIO42_BTRXD_MD);
183 pxa_gpio_mode(GPIO43_BTTXD_MD);
184 pxa_gpio_mode(GPIO44_BTCTS_MD);
185 pxa_gpio_mode(GPIO45_BTRTS_MD);
186 pxa_gpio_mode(GPIO46_STRXD_MD);
187 pxa_gpio_mode(GPIO47_STTXD_MD);
188
189} 205}
190 206
191 207
@@ -194,7 +210,7 @@ MACHINE_START(PXA_IDP, "Vibren PXA255 IDP")
194 .phys_io = 0x40000000, 210 .phys_io = 0x40000000,
195 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc, 211 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
196 .map_io = idp_map_io, 212 .map_io = idp_map_io,
197 .init_irq = idp_init_irq, 213 .init_irq = pxa25x_init_irq,
198 .timer = &pxa_timer, 214 .timer = &pxa_timer,
199 .init_machine = idp_init, 215 .init_machine = idp_init,
200MACHINE_END 216MACHINE_END
diff --git a/arch/arm/mach-pxa/include/mach/akita.h b/arch/arm/mach-pxa/include/mach/akita.h
deleted file mode 100644
index 5d8cc1d9cb10..000000000000
--- a/arch/arm/mach-pxa/include/mach/akita.h
+++ /dev/null
@@ -1,32 +0,0 @@
1/*
2 * Hardware specific definitions for SL-C1000 (Akita)
3 *
4 * Copyright (c) 2005 Richard Purdie
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation.
9 *
10 */
11
12/* Akita IO Expander GPIOs */
13
14#define AKITA_IOEXP_RESERVED_7 (1 << 7)
15#define AKITA_IOEXP_IR_ON (1 << 6)
16#define AKITA_IOEXP_AKIN_PULLUP (1 << 5)
17#define AKITA_IOEXP_BACKLIGHT_CONT (1 << 4)
18#define AKITA_IOEXP_BACKLIGHT_ON (1 << 3)
19#define AKITA_IOEXP_MIC_BIAS (1 << 2)
20#define AKITA_IOEXP_RESERVED_1 (1 << 1)
21#define AKITA_IOEXP_RESERVED_0 (1 << 0)
22
23/* Direction Bitfield 0=output 1=input */
24#define AKITA_IOEXP_IO_DIR 0
25/* Default Values */
26#define AKITA_IOEXP_IO_OUT (AKITA_IOEXP_IR_ON | AKITA_IOEXP_AKIN_PULLUP)
27
28extern struct platform_device akitaioexp_device;
29
30void akita_set_ioexp(struct device *dev, unsigned char bitmask);
31void akita_reset_ioexp(struct device *dev, unsigned char bitmask);
32
diff --git a/arch/arm/mach-pxa/include/mach/corgi.h b/arch/arm/mach-pxa/include/mach/corgi.h
index bf856503baf6..585970ef08ce 100644
--- a/arch/arm/mach-pxa/include/mach/corgi.h
+++ b/arch/arm/mach-pxa/include/mach/corgi.h
@@ -98,12 +98,21 @@
98 CORGI_SCP_MIC_BIAS ) 98 CORGI_SCP_MIC_BIAS )
99#define CORGI_SCOOP_IO_OUT ( CORGI_SCP_MUTE_L | CORGI_SCP_MUTE_R ) 99#define CORGI_SCOOP_IO_OUT ( CORGI_SCP_MUTE_L | CORGI_SCP_MUTE_R )
100 100
101#define CORGI_SCOOP_GPIO_BASE (NR_BUILTIN_GPIO)
102#define CORGI_GPIO_LED_GREEN (CORGI_SCOOP_GPIO_BASE + 0)
103#define CORGI_GPIO_SWA (CORGI_SCOOP_GPIO_BASE + 1) /* Hinge Switch A */
104#define CORGI_GPIO_SWB (CORGI_SCOOP_GPIO_BASE + 2) /* Hinge Switch B */
105#define CORGI_GPIO_MUTE_L (CORGI_SCOOP_GPIO_BASE + 3)
106#define CORGI_GPIO_MUTE_R (CORGI_SCOOP_GPIO_BASE + 4)
107#define CORGI_GPIO_AKIN_PULLUP (CORGI_SCOOP_GPIO_BASE + 5)
108#define CORGI_GPIO_APM_ON (CORGI_SCOOP_GPIO_BASE + 6)
109#define CORGI_GPIO_BACKLIGHT_CONT (CORGI_SCOOP_GPIO_BASE + 7)
110#define CORGI_GPIO_MIC_BIAS (CORGI_SCOOP_GPIO_BASE + 8)
101 111
102/* 112/*
103 * Shared data structures 113 * Shared data structures
104 */ 114 */
105extern struct platform_device corgiscoop_device; 115extern struct platform_device corgiscoop_device;
106extern struct platform_device corgissp_device;
107 116
108#endif /* __ASM_ARCH_CORGI_H */ 117#endif /* __ASM_ARCH_CORGI_H */
109 118
diff --git a/arch/arm/mach-pxa/include/mach/entry-macro.S b/arch/arm/mach-pxa/include/mach/entry-macro.S
index de16c12d5232..f6b4bf3e73d2 100644
--- a/arch/arm/mach-pxa/include/mach/entry-macro.S
+++ b/arch/arm/mach-pxa/include/mach/entry-macro.S
@@ -41,7 +41,7 @@
41 and \irqstat, \irqstat, \irqnr 41 and \irqstat, \irqstat, \irqnr
42 clz \irqnr, \irqstat 42 clz \irqnr, \irqstat
43 rsb \irqnr, \irqnr, #31 43 rsb \irqnr, \irqnr, #31
44 add \irqnr, \irqnr, #32 44 add \irqnr, \irqnr, #(32 + PXA_IRQ(0))
45 b 1001f 45 b 1001f
461003: 461003:
47 mrc p6, 0, \irqstat, c0, c0, 0 @ ICIP 47 mrc p6, 0, \irqstat, c0, c0, 0 @ ICIP
@@ -52,6 +52,6 @@
52 rsb \irqstat, \irqnr, #0 52 rsb \irqstat, \irqnr, #0
53 and \irqstat, \irqstat, \irqnr 53 and \irqstat, \irqstat, \irqnr
54 clz \irqnr, \irqstat 54 clz \irqnr, \irqstat
55 rsb \irqnr, \irqnr, #31 55 rsb \irqnr, \irqnr, #(31 + PXA_IRQ(0))
561001: 561001:
57 .endm 57 .endm
diff --git a/arch/arm/mach-pxa/include/mach/hardware.h b/arch/arm/mach-pxa/include/mach/hardware.h
index e89df4d0d239..a582a6d9b92b 100644
--- a/arch/arm/mach-pxa/include/mach/hardware.h
+++ b/arch/arm/mach-pxa/include/mach/hardware.h
@@ -62,26 +62,74 @@
62 62
63#ifndef __ASSEMBLY__ 63#ifndef __ASSEMBLY__
64 64
65#include <asm/cputype.h>
66
67/*
68 * CPU Stepping CPU_ID JTAG_ID
69 *
70 * PXA210 B0 0x69052922 0x2926C013
71 * PXA210 B1 0x69052923 0x3926C013
72 * PXA210 B2 0x69052924 0x4926C013
73 * PXA210 C0 0x69052D25 0x5926C013
74 *
75 * PXA250 A0 0x69052100 0x09264013
76 * PXA250 A1 0x69052101 0x19264013
77 * PXA250 B0 0x69052902 0x29264013
78 * PXA250 B1 0x69052903 0x39264013
79 * PXA250 B2 0x69052904 0x49264013
80 * PXA250 C0 0x69052D05 0x59264013
81 *
82 * PXA255 A0 0x69052D06 0x69264013
83 *
84 * PXA26x A0 0x69052903 0x39264013
85 * PXA26x B0 0x69052D05 0x59264013
86 *
87 * PXA27x A0 0x69054110 0x09265013
88 * PXA27x A1 0x69054111 0x19265013
89 * PXA27x B0 0x69054112 0x29265013
90 * PXA27x B1 0x69054113 0x39265013
91 * PXA27x C0 0x69054114 0x49265013
92 * PXA27x C5 0x69054117 0x79265013
93 *
94 * PXA30x A0 0x69056880 0x0E648013
95 * PXA30x A1 0x69056881 0x1E648013
96 * PXA31x A0 0x69056890 0x0E649013
97 * PXA31x A1 0x69056891 0x1E649013
98 * PXA31x A2 0x69056892 0x2E649013
99 * PXA32x B1 0x69056825 0x5E642013
100 * PXA32x B2 0x69056826 0x6E642013
101 *
102 * PXA930 B0 0x69056835 0x5E643013
103 * PXA930 B1 0x69056837 0x7E643013
104 * PXA930 B2 0x69056838 0x8E643013
105 */
65#ifdef CONFIG_PXA25x 106#ifdef CONFIG_PXA25x
66#define __cpu_is_pxa21x(id) \ 107#define __cpu_is_pxa210(id) \
67 ({ \ 108 ({ \
68 unsigned int _id = (id) >> 4 & 0xf3f; \ 109 unsigned int _id = (id) & 0xf3f0; \
69 _id == 0x212; \ 110 _id == 0x2120; \
70 }) 111 })
71 112
72#define __cpu_is_pxa255(id) \ 113#define __cpu_is_pxa250(id) \
73 ({ \ 114 ({ \
74 unsigned int _id = (id) >> 4 & 0xfff; \ 115 unsigned int _id = (id) & 0xf3ff; \
75 _id == 0x2d0; \ 116 _id <= 0x2105; \
76 }) 117 })
118
119#define __cpu_is_pxa255(id) \
120 ({ \
121 unsigned int _id = (id) & 0xffff; \
122 _id == 0x2d06; \
123 })
77 124
78#define __cpu_is_pxa25x(id) \ 125#define __cpu_is_pxa25x(id) \
79 ({ \ 126 ({ \
80 unsigned int _id = (id) >> 4 & 0xfff; \ 127 unsigned int _id = (id) & 0xf300; \
81 _id == 0x2d0 || _id == 0x290; \ 128 _id == 0x2100; \
82 }) 129 })
83#else 130#else
84#define __cpu_is_pxa21x(id) (0) 131#define __cpu_is_pxa210(id) (0)
132#define __cpu_is_pxa250(id) (0)
85#define __cpu_is_pxa255(id) (0) 133#define __cpu_is_pxa255(id) (0)
86#define __cpu_is_pxa25x(id) (0) 134#define __cpu_is_pxa25x(id) (0)
87#endif 135#endif
@@ -136,9 +184,14 @@
136#define __cpu_is_pxa930(id) (0) 184#define __cpu_is_pxa930(id) (0)
137#endif 185#endif
138 186
139#define cpu_is_pxa21x() \ 187#define cpu_is_pxa210() \
140 ({ \ 188 ({ \
141 __cpu_is_pxa21x(read_cpuid_id()); \ 189 __cpu_is_pxa210(read_cpuid_id()); \
190 })
191
192#define cpu_is_pxa250() \
193 ({ \
194 __cpu_is_pxa250(read_cpuid_id()); \
142 }) 195 })
143 196
144#define cpu_is_pxa255() \ 197#define cpu_is_pxa255() \
@@ -151,6 +204,8 @@
151 __cpu_is_pxa25x(read_cpuid_id()); \ 204 __cpu_is_pxa25x(read_cpuid_id()); \
152 }) 205 })
153 206
207extern int cpu_is_pxa26x(void);
208
154#define cpu_is_pxa27x() \ 209#define cpu_is_pxa27x() \
155 ({ \ 210 ({ \
156 __cpu_is_pxa27x(read_cpuid_id()); \ 211 __cpu_is_pxa27x(read_cpuid_id()); \
diff --git a/arch/arm/mach-pxa/include/mach/i2c.h b/arch/arm/mach-pxa/include/mach/i2c.h
index 80596b013443..1a9f65e6ec0f 100644
--- a/arch/arm/mach-pxa/include/mach/i2c.h
+++ b/arch/arm/mach-pxa/include/mach/i2c.h
@@ -65,13 +65,18 @@ struct i2c_pxa_platform_data {
65 unsigned int slave_addr; 65 unsigned int slave_addr;
66 struct i2c_slave_client *slave; 66 struct i2c_slave_client *slave;
67 unsigned int class; 67 unsigned int class;
68 int use_pio; 68 unsigned int use_pio :1;
69 unsigned int fast_mode :1;
69}; 70};
70 71
71extern void pxa_set_i2c_info(struct i2c_pxa_platform_data *info); 72extern void pxa_set_i2c_info(struct i2c_pxa_platform_data *info);
72 73
73#ifdef CONFIG_PXA27x 74#ifdef CONFIG_PXA27x
74extern void pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info); 75extern void pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info);
76#endif
77
78#ifdef CONFIG_PXA3xx
79extern void pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info);
75#endif 80#endif
76 81
77#endif 82#endif
diff --git a/arch/arm/mach-pxa/include/mach/irqs.h b/arch/arm/mach-pxa/include/mach/irqs.h
index 108b5db9b2af..9c163e19ada9 100644
--- a/arch/arm/mach-pxa/include/mach/irqs.h
+++ b/arch/arm/mach-pxa/include/mach/irqs.h
@@ -11,7 +11,14 @@
11 */ 11 */
12 12
13 13
14#define PXA_IRQ(x) (x) 14#ifdef CONFIG_PXA_HAVE_ISA_IRQS
15#define PXA_ISA_IRQ(x) (x)
16#define PXA_ISA_IRQ_NUM (16)
17#else
18#define PXA_ISA_IRQ_NUM (0)
19#endif
20
21#define PXA_IRQ(x) (PXA_ISA_IRQ_NUM + (x))
15 22
16#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx) 23#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
17#define IRQ_SSP3 PXA_IRQ(0) /* SSP3 service request */ 24#define IRQ_SSP3 PXA_IRQ(0) /* SSP3 service request */
@@ -73,7 +80,7 @@
73#define IRQ_MMC3 PXA_IRQ(55) /* MMC3 Controller (PXA310) */ 80#define IRQ_MMC3 PXA_IRQ(55) /* MMC3 Controller (PXA310) */
74#endif 81#endif
75 82
76#define PXA_GPIO_IRQ_BASE (64) 83#define PXA_GPIO_IRQ_BASE PXA_IRQ(64)
77#define PXA_GPIO_IRQ_NUM (128) 84#define PXA_GPIO_IRQ_NUM (128)
78 85
79#define GPIO_2_x_TO_IRQ(x) (PXA_GPIO_IRQ_BASE + (x)) 86#define GPIO_2_x_TO_IRQ(x) (PXA_GPIO_IRQ_BASE + (x))
@@ -178,13 +185,7 @@
178#define NR_IRQS (IRQ_S1_BVD1_STSCHG + 1) 185#define NR_IRQS (IRQ_S1_BVD1_STSCHG + 1)
179#elif defined(CONFIG_SHARP_LOCOMO) 186#elif defined(CONFIG_SHARP_LOCOMO)
180#define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1) 187#define NR_IRQS (IRQ_LOCOMO_SPI_TEND + 1)
181#elif defined(CONFIG_ARCH_LUBBOCK) || \ 188#elif defined(CONFIG_PXA_HAVE_BOARD_IRQS)
182 defined(CONFIG_MACH_LOGICPD_PXA270) || \
183 defined(CONFIG_MACH_TOSA) || \
184 defined(CONFIG_MACH_MAINSTONE) || \
185 defined(CONFIG_MACH_PCM027) || \
186 defined(CONFIG_ARCH_PXA_ESERIES) || \
187 defined(CONFIG_MACH_MAGICIAN)
188#define NR_IRQS (IRQ_BOARD_END) 189#define NR_IRQS (IRQ_BOARD_END)
189#elif defined(CONFIG_MACH_ZYLONITE) 190#elif defined(CONFIG_MACH_ZYLONITE)
190#define NR_IRQS (IRQ_BOARD_START + 32) 191#define NR_IRQS (IRQ_BOARD_START + 32)
diff --git a/arch/arm/mach-pxa/include/mach/littleton.h b/arch/arm/mach-pxa/include/mach/littleton.h
index 79d209b826f4..5c4e320c1437 100644
--- a/arch/arm/mach-pxa/include/mach/littleton.h
+++ b/arch/arm/mach-pxa/include/mach/littleton.h
@@ -3,4 +3,6 @@
3 3
4#define LITTLETON_ETH_PHYS 0x30000000 4#define LITTLETON_ETH_PHYS 0x30000000
5 5
6#define LITTLETON_GPIO_LCD_CS (17)
7
6#endif /* __ASM_ARCH_ZYLONITE_H */ 8#endif /* __ASM_ARCH_ZYLONITE_H */
diff --git a/arch/arm/mach-pxa/include/mach/memory.h b/arch/arm/mach-pxa/include/mach/memory.h
index 552eb7fa6579..59aef89808d6 100644
--- a/arch/arm/mach-pxa/include/mach/memory.h
+++ b/arch/arm/mach-pxa/include/mach/memory.h
@@ -40,11 +40,11 @@
40#define NODE_MEM_SIZE_BITS 26 40#define NODE_MEM_SIZE_BITS 26
41 41
42#if !defined(__ASSEMBLY__) && defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI) 42#if !defined(__ASSEMBLY__) && defined(CONFIG_MACH_ARMCORE) && defined(CONFIG_PCI)
43void cmx270_pci_adjust_zones(int node, unsigned long *size, 43void cmx2xx_pci_adjust_zones(int node, unsigned long *size,
44 unsigned long *holes); 44 unsigned long *holes);
45 45
46#define arch_adjust_zones(node, size, holes) \ 46#define arch_adjust_zones(node, size, holes) \
47 cmx270_pci_adjust_zones(node, size, holes) 47 cmx2xx_pci_adjust_zones(node, size, holes)
48 48
49#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_64M - 1) 49#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_64M - 1)
50#endif 50#endif
diff --git a/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h b/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h
index 6c8e72238bfd..617cab2cc8d0 100644
--- a/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h
+++ b/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h
@@ -17,7 +17,7 @@
17 17
18/* Crystal and Clock Signals */ 18/* Crystal and Clock Signals */
19#define GPIO10_RTCCLK MFP_CFG_OUT(GPIO10, AF1, DRIVE_LOW) 19#define GPIO10_RTCCLK MFP_CFG_OUT(GPIO10, AF1, DRIVE_LOW)
20#define GPIO70_RTC_CLK MFP_CFG_OUT(GPIO70, AF1, DRIVE_LOW) 20#define GPIO70_RTCCLK MFP_CFG_OUT(GPIO70, AF1, DRIVE_LOW)
21#define GPIO7_48MHz MFP_CFG_OUT(GPIO7, AF1, DRIVE_LOW) 21#define GPIO7_48MHz MFP_CFG_OUT(GPIO7, AF1, DRIVE_LOW)
22#define GPIO11_3_6MHz MFP_CFG_OUT(GPIO11, AF1, DRIVE_LOW) 22#define GPIO11_3_6MHz MFP_CFG_OUT(GPIO11, AF1, DRIVE_LOW)
23#define GPIO71_3_6MHz MFP_CFG_OUT(GPIO71, AF1, DRIVE_LOW) 23#define GPIO71_3_6MHz MFP_CFG_OUT(GPIO71, AF1, DRIVE_LOW)
@@ -156,6 +156,6 @@
156#define GPIO74_LCD_FCLK MFP_CFG_OUT(GPIO74, AF2, DRIVE_LOW) 156#define GPIO74_LCD_FCLK MFP_CFG_OUT(GPIO74, AF2, DRIVE_LOW)
157#define GPIO75_LCD_LCLK MFP_CFG_OUT(GPIO75, AF2, DRIVE_LOW) 157#define GPIO75_LCD_LCLK MFP_CFG_OUT(GPIO75, AF2, DRIVE_LOW)
158#define GPIO76_LCD_PCLK MFP_CFG_OUT(GPIO76, AF2, DRIVE_LOW) 158#define GPIO76_LCD_PCLK MFP_CFG_OUT(GPIO76, AF2, DRIVE_LOW)
159#define GPIO77_LCD_ACBIAS MFP_CFG_OUT(GPIO77, AF2, DRIVE_LOW) 159#define GPIO77_LCD_BIAS MFP_CFG_OUT(GPIO77, AF2, DRIVE_LOW)
160 160
161#endif /* __ASM_ARCH_MFP_PXA25X_H */ 161#endif /* __ASM_ARCH_MFP_PXA25X_H */
diff --git a/arch/arm/mach-pxa/include/mach/mfp-pxa320.h b/arch/arm/mach-pxa/include/mach/mfp-pxa320.h
index 74990510cf34..67f8385ea548 100644
--- a/arch/arm/mach-pxa/include/mach/mfp-pxa320.h
+++ b/arch/arm/mach-pxa/include/mach/mfp-pxa320.h
@@ -257,10 +257,10 @@
257#define GPIO38_SSP2_RXD MFP_CFG(GPIO38, AF2) 257#define GPIO38_SSP2_RXD MFP_CFG(GPIO38, AF2)
258#define GPIO38_SSP2_TXD MFP_CFG(GPIO38, AF5) 258#define GPIO38_SSP2_TXD MFP_CFG(GPIO38, AF5)
259 259
260#define GPIO69_SSP3_SCLK MFP_CFG(GPIO69, AF2, DS08X, FLOAT) 260#define GPIO69_SSP3_SCLK MFP_CFG_X(GPIO69, AF2, DS08X, FLOAT)
261#define GPIO70_SSP3_FRM MFP_CFG(GPIO70, AF2, DS08X, DRIVE_LOW) 261#define GPIO70_SSP3_FRM MFP_CFG_X(GPIO70, AF2, DS08X, DRIVE_LOW)
262#define GPIO89_SSP3_SCLK MFP_CFG(GPIO89, AF1, DS08X, FLOAT) 262#define GPIO89_SSP3_SCLK MFP_CFG_X(GPIO89, AF1, DS08X, FLOAT)
263#define GPIO90_SSP3_FRM MFP_CFG(GPIO90, AF1, DS08X, DRIVE_LOW) 263#define GPIO90_SSP3_FRM MFP_CFG_X(GPIO90, AF1, DS08X, DRIVE_LOW)
264#define GPIO71_SSP3_RXD MFP_CFG_X(GPIO71, AF5, DS08X, FLOAT) 264#define GPIO71_SSP3_RXD MFP_CFG_X(GPIO71, AF5, DS08X, FLOAT)
265#define GPIO71_SSP3_TXD MFP_CFG_X(GPIO71, AF2, DS08X, DRIVE_LOW) 265#define GPIO71_SSP3_TXD MFP_CFG_X(GPIO71, AF2, DS08X, DRIVE_LOW)
266#define GPIO72_SSP3_RXD MFP_CFG_X(GPIO72, AF2, DS08X, FLOAT) 266#define GPIO72_SSP3_RXD MFP_CFG_X(GPIO72, AF2, DS08X, FLOAT)
diff --git a/arch/arm/mach-pxa/include/mach/mfp.h b/arch/arm/mach-pxa/include/mach/mfp.h
index 8769567b389b..482185053a92 100644
--- a/arch/arm/mach-pxa/include/mach/mfp.h
+++ b/arch/arm/mach-pxa/include/mach/mfp.h
@@ -274,12 +274,13 @@ typedef unsigned long mfp_cfg_t;
274#define MFP_DS_MASK (0x7 << 13) 274#define MFP_DS_MASK (0x7 << 13)
275#define MFP_DS(x) (((x) >> 13) & 0x7) 275#define MFP_DS(x) (((x) >> 13) & 0x7)
276 276
277#define MFP_LPM_INPUT (0x0 << 16) 277#define MFP_LPM_DEFAULT (0x0 << 16)
278#define MFP_LPM_DRIVE_LOW (0x1 << 16) 278#define MFP_LPM_DRIVE_LOW (0x1 << 16)
279#define MFP_LPM_DRIVE_HIGH (0x2 << 16) 279#define MFP_LPM_DRIVE_HIGH (0x2 << 16)
280#define MFP_LPM_PULL_LOW (0x3 << 16) 280#define MFP_LPM_PULL_LOW (0x3 << 16)
281#define MFP_LPM_PULL_HIGH (0x4 << 16) 281#define MFP_LPM_PULL_HIGH (0x4 << 16)
282#define MFP_LPM_FLOAT (0x5 << 16) 282#define MFP_LPM_FLOAT (0x5 << 16)
283#define MFP_LPM_INPUT (0x6 << 16)
283#define MFP_LPM_STATE_MASK (0x7 << 16) 284#define MFP_LPM_STATE_MASK (0x7 << 16)
284#define MFP_LPM_STATE(x) (((x) >> 16) & 0x7) 285#define MFP_LPM_STATE(x) (((x) >> 16) & 0x7)
285 286
@@ -297,7 +298,7 @@ typedef unsigned long mfp_cfg_t;
297#define MFP_PULL_MASK (0x3 << 21) 298#define MFP_PULL_MASK (0x3 << 21)
298#define MFP_PULL(x) (((x) >> 21) & 0x3) 299#define MFP_PULL(x) (((x) >> 21) & 0x3)
299 300
300#define MFP_CFG_DEFAULT (MFP_AF0 | MFP_DS03X | MFP_LPM_INPUT |\ 301#define MFP_CFG_DEFAULT (MFP_AF0 | MFP_DS03X | MFP_LPM_DEFAULT |\
301 MFP_LPM_EDGE_NONE | MFP_PULL_NONE) 302 MFP_LPM_EDGE_NONE | MFP_PULL_NONE)
302 303
303#define MFP_CFG(pin, af) \ 304#define MFP_CFG(pin, af) \
diff --git a/arch/arm/mach-pxa/include/mach/mioa701.h b/arch/arm/mach-pxa/include/mach/mioa701.h
new file mode 100644
index 000000000000..8483cb511831
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/mioa701.h
@@ -0,0 +1,67 @@
1#ifndef _MIOA701_H_
2#define _MIOA701_H_
3
4#define MIO_CFG_IN(pin, af) \
5 ((MFP_CFG_DEFAULT & ~(MFP_AF_MASK | MFP_DIR_MASK)) |\
6 (MFP_PIN(pin) | MFP_##af | MFP_DIR_IN))
7
8#define MIO_CFG_OUT(pin, af, state) \
9 ((MFP_CFG_DEFAULT & ~(MFP_AF_MASK | MFP_DIR_MASK | MFP_LPM_STATE_MASK)) |\
10 (MFP_PIN(pin) | MFP_##af | MFP_DIR_OUT | MFP_LPM_##state))
11
12/* Global GPIOs */
13#define GPIO9_CHARGE_nEN 9
14#define GPIO18_POWEROFF 18
15#define GPIO87_LCD_POWER 87
16
17/* USB */
18#define GPIO13_USB_DETECT 13
19#define GPIO22_USB_ENABLE 22
20
21/* SDIO bits */
22#define GPIO78_SDIO_RO 78
23#define GPIO15_SDIO_INSERT 15
24#define GPIO91_SDIO_EN 91
25
26/* Bluetooth */
27#define GPIO83_BT_ON 83
28
29/* GPS */
30#define GPIO23_GPS_UNKNOWN1 23
31#define GPIO26_GPS_ON 26
32#define GPIO27_GPS_RESET 27
33#define GPIO106_GPS_UNKNOWN2 106
34#define GPIO107_GPS_UNKNOWN3 107
35
36/* GSM */
37#define GPIO24_GSM_MOD_RESET_CMD 24
38#define GPIO88_GSM_nMOD_ON_CMD 88
39#define GPIO90_GSM_nMOD_OFF_CMD 90
40#define GPIO114_GSM_nMOD_DTE_UART_STATE 114
41#define GPIO25_GSM_MOD_ON_STATE 25
42#define GPIO113_GSM_EVENT 113
43
44/* SOUND */
45#define GPIO12_HPJACK_INSERT 12
46
47/* LEDS */
48#define GPIO10_LED_nCharging 10
49#define GPIO97_LED_nBlue 97
50#define GPIO98_LED_nOrange 98
51#define GPIO82_LED_nVibra 82
52#define GPIO115_LED_nKeyboard 115
53
54/* Keyboard */
55#define GPIO0_KEY_POWER 0
56#define GPIO93_KEY_VOLUME_UP 93
57#define GPIO94_KEY_VOLUME_DOWN 94
58
59extern struct input_dev *mioa701_evdev;
60extern void mioa701_gpio_lpm_set(unsigned long mfp_pin);
61
62/* Assembler externals mioa701_bootresume.S */
63extern u32 mioa701_bootstrap;
64extern u32 mioa701_jumpaddr;
65extern u32 mioa701_bootstrap_lg;
66
67#endif /* _MIOA701_H */
diff --git a/arch/arm/mach-pxa/include/mach/ohci.h b/arch/arm/mach-pxa/include/mach/ohci.h
index e848a47128cd..95b6e2a6e514 100644
--- a/arch/arm/mach-pxa/include/mach/ohci.h
+++ b/arch/arm/mach-pxa/include/mach/ohci.h
@@ -7,6 +7,22 @@ struct pxaohci_platform_data {
7 int (*init)(struct device *); 7 int (*init)(struct device *);
8 void (*exit)(struct device *); 8 void (*exit)(struct device *);
9 9
10 unsigned long flags;
11#define ENABLE_PORT1 (1 << 0)
12#define ENABLE_PORT2 (1 << 1)
13#define ENABLE_PORT3 (1 << 2)
14#define ENABLE_PORT_ALL (ENABLE_PORT1 | ENABLE_PORT2 | ENABLE_PORT3)
15
16#define POWER_SENSE_LOW (1 << 3)
17#define POWER_CONTROL_LOW (1 << 4)
18#define NO_OC_PROTECTION (1 << 5)
19#define OC_MODE_GLOBAL (0 << 6)
20#define OC_MODE_PERPORT (1 << 6)
21
22 int power_on_delay; /* Power On to Power Good time - in ms
23 * HCD must wait for this duration before
24 * accessing a powered on port
25 */
10 int port_mode; 26 int port_mode;
11#define PMM_NPS_MODE 1 27#define PMM_NPS_MODE 1
12#define PMM_GLOBAL_MODE 2 28#define PMM_GLOBAL_MODE 2
diff --git a/arch/arm/mach-pxa/include/mach/palmz72.h b/arch/arm/mach-pxa/include/mach/palmz72.h
new file mode 100644
index 000000000000..5032307ebf7d
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/palmz72.h
@@ -0,0 +1,80 @@
1/*
2 * GPIOs and interrupts for Palm Zire72 Handheld Computer
3 *
4 * Authors: Alex Osborne <bobofdoom@gmail.com>
5 * Jan Herman <2hp@seznam.cz>
6 * Sergey Lapin <slapin@ossfans.org>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12 */
13
14#ifndef _INCLUDE_PALMZ72_H_
15#define _INCLUDE_PALMZ72_H_
16
17/* Power and control */
18#define GPIO_NR_PALMZ72_GPIO_RESET 1
19#define GPIO_NR_PALMZ72_POWER_DETECT 0
20
21/* SD/MMC */
22#define GPIO_NR_PALMZ72_SD_DETECT_N 14
23#define GPIO_NR_PALMZ72_SD_POWER_N 98
24#define GPIO_NR_PALMZ72_SD_RO 115
25
26/* Touchscreen */
27#define GPIO_NR_PALMZ72_WM9712_IRQ 27
28
29/* IRDA - disable GPIO connected to SD pin of tranceiver (TFBS4710?) ? */
30#define GPIO_NR_PALMZ72_IR_DISABLE 49
31
32/* USB */
33#define GPIO_NR_PALMZ72_USB_DETECT_N 15
34#define GPIO_NR_PALMZ72_USB_POWER 95
35#define GPIO_NR_PALMZ72_USB_PULLUP 12
36
37/* LCD/Backlight */
38#define GPIO_NR_PALMZ72_BL_POWER 20
39#define GPIO_NR_PALMZ72_LCD_POWER 96
40
41/* LED */
42#define GPIO_NR_PALMZ72_LED_GREEN 88
43
44/* Bluetooth */
45#define GPIO_NR_PALMZ72_BT_POWER 17
46#define GPIO_NR_PALMZ72_BT_RESET 83
47
48/** Initial values **/
49
50/* Battery */
51#define PALMZ72_BAT_MAX_VOLTAGE 4000 /* 4.00v current voltage */
52#define PALMZ72_BAT_MIN_VOLTAGE 3550 /* 3.55v critical voltage */
53#define PALMZ72_BAT_MAX_CURRENT 0 /* unknokn */
54#define PALMZ72_BAT_MIN_CURRENT 0 /* unknown */
55#define PALMZ72_BAT_MAX_CHARGE 1 /* unknown */
56#define PALMZ72_BAT_MIN_CHARGE 1 /* unknown */
57#define PALMZ72_MAX_LIFE_MINS 360 /* on-life in minutes */
58
59/* Backlight */
60#define PALMZ72_MAX_INTENSITY 0xFE
61#define PALMZ72_DEFAULT_INTENSITY 0x7E
62#define PALMZ72_LIMIT_MASK 0x7F
63#define PALMZ72_PRESCALER 0x3F
64#define PALMZ72_PERIOD_NS 3500
65
66#ifdef CONFIG_PM
67struct palmz72_resume_info {
68 u32 magic0; /* 0x0 */
69 u32 magic1; /* 0x4 */
70 u32 resume_addr; /* 0x8 */
71 u32 pad[11]; /* 0xc..0x37 */
72 u32 arm_control; /* 0x38 */
73 u32 aux_control; /* 0x3c */
74 u32 ttb; /* 0x40 */
75 u32 domain_access; /* 0x44 */
76 u32 process_id; /* 0x48 */
77};
78#endif
79#endif
80
diff --git a/arch/arm/mach-pxa/include/mach/pm.h b/arch/arm/mach-pxa/include/mach/pm.h
index 261e5bc958db..83342469acac 100644
--- a/arch/arm/mach-pxa/include/mach/pm.h
+++ b/arch/arm/mach-pxa/include/mach/pm.h
@@ -15,6 +15,8 @@ struct pxa_cpu_pm_fns {
15 void (*restore)(unsigned long *); 15 void (*restore)(unsigned long *);
16 int (*valid)(suspend_state_t state); 16 int (*valid)(suspend_state_t state);
17 void (*enter)(suspend_state_t state); 17 void (*enter)(suspend_state_t state);
18 int (*prepare)(void);
19 void (*finish)(void);
18}; 20};
19 21
20extern struct pxa_cpu_pm_fns *pxa_cpu_pm_fns; 22extern struct pxa_cpu_pm_fns *pxa_cpu_pm_fns;
diff --git a/arch/arm/mach-pxa/include/mach/poodle.h b/arch/arm/mach-pxa/include/mach/poodle.h
index 67debc47e8c6..0b3e6d051c64 100644
--- a/arch/arm/mach-pxa/include/mach/poodle.h
+++ b/arch/arm/mach-pxa/include/mach/poodle.h
@@ -23,6 +23,7 @@
23#define POODLE_GPIO_AC_IN (1) 23#define POODLE_GPIO_AC_IN (1)
24#define POODLE_GPIO_CO 16 24#define POODLE_GPIO_CO 16
25#define POODLE_GPIO_TP_INT (5) 25#define POODLE_GPIO_TP_INT (5)
26#define POODLE_GPIO_TP_CS (24)
26#define POODLE_GPIO_WAKEUP (11) /* change battery */ 27#define POODLE_GPIO_WAKEUP (11) /* change battery */
27#define POODLE_GPIO_GA_INT (10) 28#define POODLE_GPIO_GA_INT (10)
28#define POODLE_GPIO_IR_ON (22) 29#define POODLE_GPIO_IR_ON (22)
@@ -70,6 +71,14 @@
70#define POODLE_SCOOP_IO_DIR ( POODLE_SCOOP_VPEN | POODLE_SCOOP_HS_OUT ) 71#define POODLE_SCOOP_IO_DIR ( POODLE_SCOOP_VPEN | POODLE_SCOOP_HS_OUT )
71#define POODLE_SCOOP_IO_OUT ( 0 ) 72#define POODLE_SCOOP_IO_OUT ( 0 )
72 73
74#define POODLE_SCOOP_GPIO_BASE (NR_BUILTIN_GPIO)
75#define POODLE_GPIO_CHARGE_ON (POODLE_SCOOP_GPIO_BASE + 0)
76#define POODLE_GPIO_CP401 (POODLE_SCOOP_GPIO_BASE + 2)
77#define POODLE_GPIO_VPEN (POODLE_SCOOP_GPIO_BASE + 7)
78#define POODLE_GPIO_L_PCLK (POODLE_SCOOP_GPIO_BASE + 9)
79#define POODLE_GPIO_L_LCLK (POODLE_SCOOP_GPIO_BASE + 10)
80#define POODLE_GPIO_HS_OUT (POODLE_SCOOP_GPIO_BASE + 11)
81
73#define POODLE_LOCOMO_GPIO_AMP_ON LOCOMO_GPIO(8) 82#define POODLE_LOCOMO_GPIO_AMP_ON LOCOMO_GPIO(8)
74#define POODLE_LOCOMO_GPIO_MUTE_L LOCOMO_GPIO(10) 83#define POODLE_LOCOMO_GPIO_MUTE_L LOCOMO_GPIO(10)
75#define POODLE_LOCOMO_GPIO_MUTE_R LOCOMO_GPIO(11) 84#define POODLE_LOCOMO_GPIO_MUTE_R LOCOMO_GPIO(11)
diff --git a/arch/arm/mach-pxa/include/mach/pxa-regs.h b/arch/arm/mach-pxa/include/mach/pxa-regs.h
index 12288ca3cbb2..15295d960000 100644
--- a/arch/arm/mach-pxa/include/mach/pxa-regs.h
+++ b/arch/arm/mach-pxa/include/mach/pxa-regs.h
@@ -69,30 +69,18 @@
69/* 69/*
70 * DMA Controller 70 * DMA Controller
71 */ 71 */
72
73#define DCSR0 __REG(0x40000000) /* DMA Control / Status Register for Channel 0 */
74#define DCSR1 __REG(0x40000004) /* DMA Control / Status Register for Channel 1 */
75#define DCSR2 __REG(0x40000008) /* DMA Control / Status Register for Channel 2 */
76#define DCSR3 __REG(0x4000000c) /* DMA Control / Status Register for Channel 3 */
77#define DCSR4 __REG(0x40000010) /* DMA Control / Status Register for Channel 4 */
78#define DCSR5 __REG(0x40000014) /* DMA Control / Status Register for Channel 5 */
79#define DCSR6 __REG(0x40000018) /* DMA Control / Status Register for Channel 6 */
80#define DCSR7 __REG(0x4000001c) /* DMA Control / Status Register for Channel 7 */
81#define DCSR8 __REG(0x40000020) /* DMA Control / Status Register for Channel 8 */
82#define DCSR9 __REG(0x40000024) /* DMA Control / Status Register for Channel 9 */
83#define DCSR10 __REG(0x40000028) /* DMA Control / Status Register for Channel 10 */
84#define DCSR11 __REG(0x4000002c) /* DMA Control / Status Register for Channel 11 */
85#define DCSR12 __REG(0x40000030) /* DMA Control / Status Register for Channel 12 */
86#define DCSR13 __REG(0x40000034) /* DMA Control / Status Register for Channel 13 */
87#define DCSR14 __REG(0x40000038) /* DMA Control / Status Register for Channel 14 */
88#define DCSR15 __REG(0x4000003c) /* DMA Control / Status Register for Channel 15 */
89
90#define DCSR(x) __REG2(0x40000000, (x) << 2) 72#define DCSR(x) __REG2(0x40000000, (x) << 2)
91 73
92#define DCSR_RUN (1 << 31) /* Run Bit (read / write) */ 74#define DCSR_RUN (1 << 31) /* Run Bit (read / write) */
93#define DCSR_NODESC (1 << 30) /* No-Descriptor Fetch (read / write) */ 75#define DCSR_NODESC (1 << 30) /* No-Descriptor Fetch (read / write) */
94#define DCSR_STOPIRQEN (1 << 29) /* Stop Interrupt Enable (read / write) */ 76#define DCSR_STOPIRQEN (1 << 29) /* Stop Interrupt Enable (read / write) */
95#ifdef CONFIG_PXA27x 77#define DCSR_REQPEND (1 << 8) /* Request Pending (read-only) */
78#define DCSR_STOPSTATE (1 << 3) /* Stop State (read-only) */
79#define DCSR_ENDINTR (1 << 2) /* End Interrupt (read / write) */
80#define DCSR_STARTINTR (1 << 1) /* Start Interrupt (read / write) */
81#define DCSR_BUSERR (1 << 0) /* Bus Error Interrupt (read / write) */
82
83#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
96#define DCSR_EORIRQEN (1 << 28) /* End of Receive Interrupt Enable (R/W) */ 84#define DCSR_EORIRQEN (1 << 28) /* End of Receive Interrupt Enable (R/W) */
97#define DCSR_EORJMPEN (1 << 27) /* Jump to next descriptor on EOR */ 85#define DCSR_EORJMPEN (1 << 27) /* Jump to next descriptor on EOR */
98#define DCSR_EORSTOPEN (1 << 26) /* STOP on an EOR */ 86#define DCSR_EORSTOPEN (1 << 26) /* STOP on an EOR */
@@ -101,11 +89,6 @@
101#define DCSR_CMPST (1 << 10) /* The Descriptor Compare Status */ 89#define DCSR_CMPST (1 << 10) /* The Descriptor Compare Status */
102#define DCSR_EORINTR (1 << 9) /* The end of Receive */ 90#define DCSR_EORINTR (1 << 9) /* The end of Receive */
103#endif 91#endif
104#define DCSR_REQPEND (1 << 8) /* Request Pending (read-only) */
105#define DCSR_STOPSTATE (1 << 3) /* Stop State (read-only) */
106#define DCSR_ENDINTR (1 << 2) /* End Interrupt (read / write) */
107#define DCSR_STARTINTR (1 << 1) /* Start Interrupt (read / write) */
108#define DCSR_BUSERR (1 << 0) /* Bus Error Interrupt (read / write) */
109 92
110#define DALGN __REG(0x400000a0) /* DMA Alignment Register */ 93#define DALGN __REG(0x400000a0) /* DMA Alignment Register */
111#define DINT __REG(0x400000f0) /* DMA Interrupt Register */ 94#define DINT __REG(0x400000f0) /* DMA Interrupt Register */
@@ -114,145 +97,9 @@
114 &__REG2(0x40000100, ((n) & 0x3f) << 2) : \ 97 &__REG2(0x40000100, ((n) & 0x3f) << 2) : \
115 &__REG2(0x40001100, ((n) & 0x3f) << 2))) 98 &__REG2(0x40001100, ((n) & 0x3f) << 2)))
116 99
117#define DRCMR0 __REG(0x40000100) /* Request to Channel Map Register for DREQ 0 */
118#define DRCMR1 __REG(0x40000104) /* Request to Channel Map Register for DREQ 1 */
119#define DRCMR2 __REG(0x40000108) /* Request to Channel Map Register for I2S receive Request */
120#define DRCMR3 __REG(0x4000010c) /* Request to Channel Map Register for I2S transmit Request */
121#define DRCMR4 __REG(0x40000110) /* Request to Channel Map Register for BTUART receive Request */
122#define DRCMR5 __REG(0x40000114) /* Request to Channel Map Register for BTUART transmit Request. */
123#define DRCMR6 __REG(0x40000118) /* Request to Channel Map Register for FFUART receive Request */
124#define DRCMR7 __REG(0x4000011c) /* Request to Channel Map Register for FFUART transmit Request */
125#define DRCMR8 __REG(0x40000120) /* Request to Channel Map Register for AC97 microphone Request */
126#define DRCMR9 __REG(0x40000124) /* Request to Channel Map Register for AC97 modem receive Request */
127#define DRCMR10 __REG(0x40000128) /* Request to Channel Map Register for AC97 modem transmit Request */
128#define DRCMR11 __REG(0x4000012c) /* Request to Channel Map Register for AC97 audio receive Request */
129#define DRCMR12 __REG(0x40000130) /* Request to Channel Map Register for AC97 audio transmit Request */
130#define DRCMR13 __REG(0x40000134) /* Request to Channel Map Register for SSP receive Request */
131#define DRCMR14 __REG(0x40000138) /* Request to Channel Map Register for SSP transmit Request */
132#define DRCMR15 __REG(0x4000013c) /* Request to Channel Map Register for SSP2 receive Request */
133#define DRCMR16 __REG(0x40000140) /* Request to Channel Map Register for SSP2 transmit Request */
134#define DRCMR17 __REG(0x40000144) /* Request to Channel Map Register for ICP receive Request */
135#define DRCMR18 __REG(0x40000148) /* Request to Channel Map Register for ICP transmit Request */
136#define DRCMR19 __REG(0x4000014c) /* Request to Channel Map Register for STUART receive Request */
137#define DRCMR20 __REG(0x40000150) /* Request to Channel Map Register for STUART transmit Request */
138#define DRCMR21 __REG(0x40000154) /* Request to Channel Map Register for MMC receive Request */
139#define DRCMR22 __REG(0x40000158) /* Request to Channel Map Register for MMC transmit Request */
140#define DRCMR23 __REG(0x4000015c) /* Reserved */
141#define DRCMR24 __REG(0x40000160) /* Reserved */
142#define DRCMR25 __REG(0x40000164) /* Request to Channel Map Register for USB endpoint 1 Request */
143#define DRCMR26 __REG(0x40000168) /* Request to Channel Map Register for USB endpoint 2 Request */
144#define DRCMR27 __REG(0x4000016C) /* Request to Channel Map Register for USB endpoint 3 Request */
145#define DRCMR28 __REG(0x40000170) /* Request to Channel Map Register for USB endpoint 4 Request */
146#define DRCMR29 __REG(0x40000174) /* Reserved */
147#define DRCMR30 __REG(0x40000178) /* Request to Channel Map Register for USB endpoint 6 Request */
148#define DRCMR31 __REG(0x4000017C) /* Request to Channel Map Register for USB endpoint 7 Request */
149#define DRCMR32 __REG(0x40000180) /* Request to Channel Map Register for USB endpoint 8 Request */
150#define DRCMR33 __REG(0x40000184) /* Request to Channel Map Register for USB endpoint 9 Request */
151#define DRCMR34 __REG(0x40000188) /* Reserved */
152#define DRCMR35 __REG(0x4000018C) /* Request to Channel Map Register for USB endpoint 11 Request */
153#define DRCMR36 __REG(0x40000190) /* Request to Channel Map Register for USB endpoint 12 Request */
154#define DRCMR37 __REG(0x40000194) /* Request to Channel Map Register for USB endpoint 13 Request */
155#define DRCMR38 __REG(0x40000198) /* Request to Channel Map Register for USB endpoint 14 Request */
156#define DRCMR39 __REG(0x4000019C) /* Reserved */
157#define DRCMR66 __REG(0x40001108) /* Request to Channel Map Register for SSP3 receive Request */
158#define DRCMR67 __REG(0x4000110C) /* Request to Channel Map Register for SSP3 transmit Request */
159#define DRCMR68 __REG(0x40001110) /* Request to Channel Map Register for Camera FIFO 0 Request */
160#define DRCMR69 __REG(0x40001114) /* Request to Channel Map Register for Camera FIFO 1 Request */
161#define DRCMR70 __REG(0x40001118) /* Request to Channel Map Register for Camera FIFO 2 Request */
162
163#define DRCMRRXSADR DRCMR2
164#define DRCMRTXSADR DRCMR3
165#define DRCMRRXBTRBR DRCMR4
166#define DRCMRTXBTTHR DRCMR5
167#define DRCMRRXFFRBR DRCMR6
168#define DRCMRTXFFTHR DRCMR7
169#define DRCMRRXMCDR DRCMR8
170#define DRCMRRXMODR DRCMR9
171#define DRCMRTXMODR DRCMR10
172#define DRCMRRXPCDR DRCMR11
173#define DRCMRTXPCDR DRCMR12
174#define DRCMRRXSSDR DRCMR13
175#define DRCMRTXSSDR DRCMR14
176#define DRCMRRXSS2DR DRCMR15
177#define DRCMRTXSS2DR DRCMR16
178#define DRCMRRXICDR DRCMR17
179#define DRCMRTXICDR DRCMR18
180#define DRCMRRXSTRBR DRCMR19
181#define DRCMRTXSTTHR DRCMR20
182#define DRCMRRXMMC DRCMR21
183#define DRCMRTXMMC DRCMR22
184#define DRCMRRXSS3DR DRCMR66
185#define DRCMRTXSS3DR DRCMR67
186#define DRCMRUDC(x) DRCMR((x) + 24)
187
188#define DRCMR_MAPVLD (1 << 7) /* Map Valid (read / write) */ 100#define DRCMR_MAPVLD (1 << 7) /* Map Valid (read / write) */
189#define DRCMR_CHLNUM 0x1f /* mask for Channel Number (read / write) */ 101#define DRCMR_CHLNUM 0x1f /* mask for Channel Number (read / write) */
190 102
191#define DDADR0 __REG(0x40000200) /* DMA Descriptor Address Register Channel 0 */
192#define DSADR0 __REG(0x40000204) /* DMA Source Address Register Channel 0 */
193#define DTADR0 __REG(0x40000208) /* DMA Target Address Register Channel 0 */
194#define DCMD0 __REG(0x4000020c) /* DMA Command Address Register Channel 0 */
195#define DDADR1 __REG(0x40000210) /* DMA Descriptor Address Register Channel 1 */
196#define DSADR1 __REG(0x40000214) /* DMA Source Address Register Channel 1 */
197#define DTADR1 __REG(0x40000218) /* DMA Target Address Register Channel 1 */
198#define DCMD1 __REG(0x4000021c) /* DMA Command Address Register Channel 1 */
199#define DDADR2 __REG(0x40000220) /* DMA Descriptor Address Register Channel 2 */
200#define DSADR2 __REG(0x40000224) /* DMA Source Address Register Channel 2 */
201#define DTADR2 __REG(0x40000228) /* DMA Target Address Register Channel 2 */
202#define DCMD2 __REG(0x4000022c) /* DMA Command Address Register Channel 2 */
203#define DDADR3 __REG(0x40000230) /* DMA Descriptor Address Register Channel 3 */
204#define DSADR3 __REG(0x40000234) /* DMA Source Address Register Channel 3 */
205#define DTADR3 __REG(0x40000238) /* DMA Target Address Register Channel 3 */
206#define DCMD3 __REG(0x4000023c) /* DMA Command Address Register Channel 3 */
207#define DDADR4 __REG(0x40000240) /* DMA Descriptor Address Register Channel 4 */
208#define DSADR4 __REG(0x40000244) /* DMA Source Address Register Channel 4 */
209#define DTADR4 __REG(0x40000248) /* DMA Target Address Register Channel 4 */
210#define DCMD4 __REG(0x4000024c) /* DMA Command Address Register Channel 4 */
211#define DDADR5 __REG(0x40000250) /* DMA Descriptor Address Register Channel 5 */
212#define DSADR5 __REG(0x40000254) /* DMA Source Address Register Channel 5 */
213#define DTADR5 __REG(0x40000258) /* DMA Target Address Register Channel 5 */
214#define DCMD5 __REG(0x4000025c) /* DMA Command Address Register Channel 5 */
215#define DDADR6 __REG(0x40000260) /* DMA Descriptor Address Register Channel 6 */
216#define DSADR6 __REG(0x40000264) /* DMA Source Address Register Channel 6 */
217#define DTADR6 __REG(0x40000268) /* DMA Target Address Register Channel 6 */
218#define DCMD6 __REG(0x4000026c) /* DMA Command Address Register Channel 6 */
219#define DDADR7 __REG(0x40000270) /* DMA Descriptor Address Register Channel 7 */
220#define DSADR7 __REG(0x40000274) /* DMA Source Address Register Channel 7 */
221#define DTADR7 __REG(0x40000278) /* DMA Target Address Register Channel 7 */
222#define DCMD7 __REG(0x4000027c) /* DMA Command Address Register Channel 7 */
223#define DDADR8 __REG(0x40000280) /* DMA Descriptor Address Register Channel 8 */
224#define DSADR8 __REG(0x40000284) /* DMA Source Address Register Channel 8 */
225#define DTADR8 __REG(0x40000288) /* DMA Target Address Register Channel 8 */
226#define DCMD8 __REG(0x4000028c) /* DMA Command Address Register Channel 8 */
227#define DDADR9 __REG(0x40000290) /* DMA Descriptor Address Register Channel 9 */
228#define DSADR9 __REG(0x40000294) /* DMA Source Address Register Channel 9 */
229#define DTADR9 __REG(0x40000298) /* DMA Target Address Register Channel 9 */
230#define DCMD9 __REG(0x4000029c) /* DMA Command Address Register Channel 9 */
231#define DDADR10 __REG(0x400002a0) /* DMA Descriptor Address Register Channel 10 */
232#define DSADR10 __REG(0x400002a4) /* DMA Source Address Register Channel 10 */
233#define DTADR10 __REG(0x400002a8) /* DMA Target Address Register Channel 10 */
234#define DCMD10 __REG(0x400002ac) /* DMA Command Address Register Channel 10 */
235#define DDADR11 __REG(0x400002b0) /* DMA Descriptor Address Register Channel 11 */
236#define DSADR11 __REG(0x400002b4) /* DMA Source Address Register Channel 11 */
237#define DTADR11 __REG(0x400002b8) /* DMA Target Address Register Channel 11 */
238#define DCMD11 __REG(0x400002bc) /* DMA Command Address Register Channel 11 */
239#define DDADR12 __REG(0x400002c0) /* DMA Descriptor Address Register Channel 12 */
240#define DSADR12 __REG(0x400002c4) /* DMA Source Address Register Channel 12 */
241#define DTADR12 __REG(0x400002c8) /* DMA Target Address Register Channel 12 */
242#define DCMD12 __REG(0x400002cc) /* DMA Command Address Register Channel 12 */
243#define DDADR13 __REG(0x400002d0) /* DMA Descriptor Address Register Channel 13 */
244#define DSADR13 __REG(0x400002d4) /* DMA Source Address Register Channel 13 */
245#define DTADR13 __REG(0x400002d8) /* DMA Target Address Register Channel 13 */
246#define DCMD13 __REG(0x400002dc) /* DMA Command Address Register Channel 13 */
247#define DDADR14 __REG(0x400002e0) /* DMA Descriptor Address Register Channel 14 */
248#define DSADR14 __REG(0x400002e4) /* DMA Source Address Register Channel 14 */
249#define DTADR14 __REG(0x400002e8) /* DMA Target Address Register Channel 14 */
250#define DCMD14 __REG(0x400002ec) /* DMA Command Address Register Channel 14 */
251#define DDADR15 __REG(0x400002f0) /* DMA Descriptor Address Register Channel 15 */
252#define DSADR15 __REG(0x400002f4) /* DMA Source Address Register Channel 15 */
253#define DTADR15 __REG(0x400002f8) /* DMA Target Address Register Channel 15 */
254#define DCMD15 __REG(0x400002fc) /* DMA Command Address Register Channel 15 */
255
256#define DDADR(x) __REG2(0x40000200, (x) << 4) 103#define DDADR(x) __REG2(0x40000200, (x) << 4)
257#define DSADR(x) __REG2(0x40000204, (x) << 4) 104#define DSADR(x) __REG2(0x40000204, (x) << 4)
258#define DTADR(x) __REG2(0x40000208, (x) << 4) 105#define DTADR(x) __REG2(0x40000208, (x) << 4)
@@ -418,91 +265,13 @@
418 265
419 266
420/* 267/*
421 * I2C registers 268 * I2C registers - moved into drivers/i2c/busses/i2c-pxa.c
422 */ 269 */
423 270
424#define IBMR __REG(0x40301680) /* I2C Bus Monitor Register - IBMR */
425#define IDBR __REG(0x40301688) /* I2C Data Buffer Register - IDBR */
426#define ICR __REG(0x40301690) /* I2C Control Register - ICR */
427#define ISR __REG(0x40301698) /* I2C Status Register - ISR */
428#define ISAR __REG(0x403016A0) /* I2C Slave Address Register - ISAR */
429
430#define PWRIBMR __REG(0x40f00180) /* Power I2C Bus Monitor Register-IBMR */
431#define PWRIDBR __REG(0x40f00188) /* Power I2C Data Buffer Register-IDBR */
432#define PWRICR __REG(0x40f00190) /* Power I2C Control Register - ICR */
433#define PWRISR __REG(0x40f00198) /* Power I2C Status Register - ISR */
434#define PWRISAR __REG(0x40f001A0) /*Power I2C Slave Address Register-ISAR */
435
436#define ICR_START (1 << 0) /* start bit */
437#define ICR_STOP (1 << 1) /* stop bit */
438#define ICR_ACKNAK (1 << 2) /* send ACK(0) or NAK(1) */
439#define ICR_TB (1 << 3) /* transfer byte bit */
440#define ICR_MA (1 << 4) /* master abort */
441#define ICR_SCLE (1 << 5) /* master clock enable */
442#define ICR_IUE (1 << 6) /* unit enable */
443#define ICR_GCD (1 << 7) /* general call disable */
444#define ICR_ITEIE (1 << 8) /* enable tx interrupts */
445#define ICR_IRFIE (1 << 9) /* enable rx interrupts */
446#define ICR_BEIE (1 << 10) /* enable bus error ints */
447#define ICR_SSDIE (1 << 11) /* slave STOP detected int enable */
448#define ICR_ALDIE (1 << 12) /* enable arbitration interrupt */
449#define ICR_SADIE (1 << 13) /* slave address detected int enable */
450#define ICR_UR (1 << 14) /* unit reset */
451
452#define ISR_RWM (1 << 0) /* read/write mode */
453#define ISR_ACKNAK (1 << 1) /* ack/nak status */
454#define ISR_UB (1 << 2) /* unit busy */
455#define ISR_IBB (1 << 3) /* bus busy */
456#define ISR_SSD (1 << 4) /* slave stop detected */
457#define ISR_ALD (1 << 5) /* arbitration loss detected */
458#define ISR_ITE (1 << 6) /* tx buffer empty */
459#define ISR_IRF (1 << 7) /* rx buffer full */
460#define ISR_GCAD (1 << 8) /* general call address detected */
461#define ISR_SAD (1 << 9) /* slave address detected */
462#define ISR_BED (1 << 10) /* bus error no ACK/NAK */
463
464
465/* 271/*
466 * Serial Audio Controller 272 * Serial Audio Controller - moved into sound/soc/pxa/pxa2xx-i2s.c
467 */ 273 */
468 274
469#define SACR0 __REG(0x40400000) /* Global Control Register */
470#define SACR1 __REG(0x40400004) /* Serial Audio I 2 S/MSB-Justified Control Register */
471#define SASR0 __REG(0x4040000C) /* Serial Audio I 2 S/MSB-Justified Interface and FIFO Status Register */
472#define SAIMR __REG(0x40400014) /* Serial Audio Interrupt Mask Register */
473#define SAICR __REG(0x40400018) /* Serial Audio Interrupt Clear Register */
474#define SADIV __REG(0x40400060) /* Audio Clock Divider Register. */
475#define SADR __REG(0x40400080) /* Serial Audio Data Register (TX and RX FIFO access Register). */
476
477#define SACR0_RFTH(x) ((x) << 12) /* Rx FIFO Interrupt or DMA Trigger Threshold */
478#define SACR0_TFTH(x) ((x) << 8) /* Tx FIFO Interrupt or DMA Trigger Threshold */
479#define SACR0_STRF (1 << 5) /* FIFO Select for EFWR Special Function */
480#define SACR0_EFWR (1 << 4) /* Enable EFWR Function */
481#define SACR0_RST (1 << 3) /* FIFO, i2s Register Reset */
482#define SACR0_BCKD (1 << 2) /* Bit Clock Direction */
483#define SACR0_ENB (1 << 0) /* Enable I2S Link */
484#define SACR1_ENLBF (1 << 5) /* Enable Loopback */
485#define SACR1_DRPL (1 << 4) /* Disable Replaying Function */
486#define SACR1_DREC (1 << 3) /* Disable Recording Function */
487#define SACR1_AMSL (1 << 0) /* Specify Alternate Mode */
488
489#define SASR0_I2SOFF (1 << 7) /* Controller Status */
490#define SASR0_ROR (1 << 6) /* Rx FIFO Overrun */
491#define SASR0_TUR (1 << 5) /* Tx FIFO Underrun */
492#define SASR0_RFS (1 << 4) /* Rx FIFO Service Request */
493#define SASR0_TFS (1 << 3) /* Tx FIFO Service Request */
494#define SASR0_BSY (1 << 2) /* I2S Busy */
495#define SASR0_RNE (1 << 1) /* Rx FIFO Not Empty */
496#define SASR0_TNF (1 << 0) /* Tx FIFO Not Empty */
497
498#define SAICR_ROR (1 << 6) /* Clear Rx FIFO Overrun Interrupt */
499#define SAICR_TUR (1 << 5) /* Clear Tx FIFO Underrun Interrupt */
500
501#define SAIMR_ROR (1 << 6) /* Enable Rx FIFO Overrun Condition Interrupt */
502#define SAIMR_TUR (1 << 5) /* Enable Tx FIFO Underrun Condition Interrupt */
503#define SAIMR_RFS (1 << 4) /* Enable Rx FIFO Service Interrupt */
504#define SAIMR_TFS (1 << 3) /* Enable Tx FIFO Service Interrupt */
505
506/* 275/*
507 * AC97 Controller registers 276 * AC97 Controller registers
508 */ 277 */
@@ -989,77 +758,6 @@
989 758
990#endif 759#endif
991 760
992#if defined(CONFIG_PXA27x) || defined(CONFIG_PXA3xx)
993/*
994 * UHC: USB Host Controller (OHCI-like) register definitions
995 */
996#define UHC_BASE_PHYS (0x4C000000)
997#define UHCREV __REG(0x4C000000) /* UHC HCI Spec Revision */
998#define UHCHCON __REG(0x4C000004) /* UHC Host Control Register */
999#define UHCCOMS __REG(0x4C000008) /* UHC Command Status Register */
1000#define UHCINTS __REG(0x4C00000C) /* UHC Interrupt Status Register */
1001#define UHCINTE __REG(0x4C000010) /* UHC Interrupt Enable */
1002#define UHCINTD __REG(0x4C000014) /* UHC Interrupt Disable */
1003#define UHCHCCA __REG(0x4C000018) /* UHC Host Controller Comm. Area */
1004#define UHCPCED __REG(0x4C00001C) /* UHC Period Current Endpt Descr */
1005#define UHCCHED __REG(0x4C000020) /* UHC Control Head Endpt Descr */
1006#define UHCCCED __REG(0x4C000024) /* UHC Control Current Endpt Descr */
1007#define UHCBHED __REG(0x4C000028) /* UHC Bulk Head Endpt Descr */
1008#define UHCBCED __REG(0x4C00002C) /* UHC Bulk Current Endpt Descr */
1009#define UHCDHEAD __REG(0x4C000030) /* UHC Done Head */
1010#define UHCFMI __REG(0x4C000034) /* UHC Frame Interval */
1011#define UHCFMR __REG(0x4C000038) /* UHC Frame Remaining */
1012#define UHCFMN __REG(0x4C00003C) /* UHC Frame Number */
1013#define UHCPERS __REG(0x4C000040) /* UHC Periodic Start */
1014#define UHCLS __REG(0x4C000044) /* UHC Low Speed Threshold */
1015
1016#define UHCRHDA __REG(0x4C000048) /* UHC Root Hub Descriptor A */
1017#define UHCRHDA_NOCP (1 << 12) /* No over current protection */
1018
1019#define UHCRHDB __REG(0x4C00004C) /* UHC Root Hub Descriptor B */
1020#define UHCRHS __REG(0x4C000050) /* UHC Root Hub Status */
1021#define UHCRHPS1 __REG(0x4C000054) /* UHC Root Hub Port 1 Status */
1022#define UHCRHPS2 __REG(0x4C000058) /* UHC Root Hub Port 2 Status */
1023#define UHCRHPS3 __REG(0x4C00005C) /* UHC Root Hub Port 3 Status */
1024
1025#define UHCSTAT __REG(0x4C000060) /* UHC Status Register */
1026#define UHCSTAT_UPS3 (1 << 16) /* USB Power Sense Port3 */
1027#define UHCSTAT_SBMAI (1 << 15) /* System Bus Master Abort Interrupt*/
1028#define UHCSTAT_SBTAI (1 << 14) /* System Bus Target Abort Interrupt*/
1029#define UHCSTAT_UPRI (1 << 13) /* USB Port Resume Interrupt */
1030#define UHCSTAT_UPS2 (1 << 12) /* USB Power Sense Port 2 */
1031#define UHCSTAT_UPS1 (1 << 11) /* USB Power Sense Port 1 */
1032#define UHCSTAT_HTA (1 << 10) /* HCI Target Abort */
1033#define UHCSTAT_HBA (1 << 8) /* HCI Buffer Active */
1034#define UHCSTAT_RWUE (1 << 7) /* HCI Remote Wake Up Event */
1035
1036#define UHCHR __REG(0x4C000064) /* UHC Reset Register */
1037#define UHCHR_SSEP3 (1 << 11) /* Sleep Standby Enable for Port3 */
1038#define UHCHR_SSEP2 (1 << 10) /* Sleep Standby Enable for Port2 */
1039#define UHCHR_SSEP1 (1 << 9) /* Sleep Standby Enable for Port1 */
1040#define UHCHR_PCPL (1 << 7) /* Power control polarity low */
1041#define UHCHR_PSPL (1 << 6) /* Power sense polarity low */
1042#define UHCHR_SSE (1 << 5) /* Sleep Standby Enable */
1043#define UHCHR_UIT (1 << 4) /* USB Interrupt Test */
1044#define UHCHR_SSDC (1 << 3) /* Simulation Scale Down Clock */
1045#define UHCHR_CGR (1 << 2) /* Clock Generation Reset */
1046#define UHCHR_FHR (1 << 1) /* Force Host Controller Reset */
1047#define UHCHR_FSBIR (1 << 0) /* Force System Bus Iface Reset */
1048
1049#define UHCHIE __REG(0x4C000068) /* UHC Interrupt Enable Register*/
1050#define UHCHIE_UPS3IE (1 << 14) /* Power Sense Port3 IntEn */
1051#define UHCHIE_UPRIE (1 << 13) /* Port Resume IntEn */
1052#define UHCHIE_UPS2IE (1 << 12) /* Power Sense Port2 IntEn */
1053#define UHCHIE_UPS1IE (1 << 11) /* Power Sense Port1 IntEn */
1054#define UHCHIE_TAIE (1 << 10) /* HCI Interface Transfer Abort
1055 Interrupt Enable*/
1056#define UHCHIE_HBAIE (1 << 8) /* HCI Buffer Active IntEn */
1057#define UHCHIE_RWIE (1 << 7) /* Remote Wake-up IntEn */
1058
1059#define UHCHIT __REG(0x4C00006C) /* UHC Interrupt Test register */
1060
1061#endif /* CONFIG_PXA27x || CONFIG_PXA3xx */
1062
1063/* PWRMODE register M field values */ 761/* PWRMODE register M field values */
1064 762
1065#define PWRMODE_IDLE 0x1 763#define PWRMODE_IDLE 0x1
diff --git a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
index 39eb68319e28..b1fcd10ab6c6 100644
--- a/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
+++ b/arch/arm/mach-pxa/include/mach/pxa3xx-regs.h
@@ -131,6 +131,28 @@
131#define CKENB __REG(0x41340010) /* B Clock Enable Register */ 131#define CKENB __REG(0x41340010) /* B Clock Enable Register */
132#define AC97_DIV __REG(0x41340014) /* AC97 clock divisor value register */ 132#define AC97_DIV __REG(0x41340014) /* AC97 clock divisor value register */
133 133
134#define ACCR_XPDIS (1 << 31) /* Core PLL Output Disable */
135#define ACCR_SPDIS (1 << 30) /* System PLL Output Disable */
136#define ACCR_D0CS (1 << 26) /* D0 Mode Clock Select */
137#define ACCR_PCCE (1 << 11) /* Power Mode Change Clock Enable */
138#define ACCR_DDR_D0CS (1 << 7) /* DDR SDRAM clock frequency in D0CS (PXA31x only) */
139
140#define ACCR_SMCFS_MASK (0x7 << 23) /* Static Memory Controller Frequency Select */
141#define ACCR_SFLFS_MASK (0x3 << 18) /* Frequency Select for Internal Memory Controller */
142#define ACCR_XSPCLK_MASK (0x3 << 16) /* Core Frequency during Frequency Change */
143#define ACCR_HSS_MASK (0x3 << 14) /* System Bus-Clock Frequency Select */
144#define ACCR_DMCFS_MASK (0x3 << 12) /* Dynamic Memory Controller Clock Frequency Select */
145#define ACCR_XN_MASK (0x7 << 8) /* Core PLL Turbo-Mode-to-Run-Mode Ratio */
146#define ACCR_XL_MASK (0x1f) /* Core PLL Run-Mode-to-Oscillator Ratio */
147
148#define ACCR_SMCFS(x) (((x) & 0x7) << 23)
149#define ACCR_SFLFS(x) (((x) & 0x3) << 18)
150#define ACCR_XSPCLK(x) (((x) & 0x3) << 16)
151#define ACCR_HSS(x) (((x) & 0x3) << 14)
152#define ACCR_DMCFS(x) (((x) & 0x3) << 12)
153#define ACCR_XN(x) (((x) & 0x7) << 8)
154#define ACCR_XL(x) ((x) & 0x1f)
155
134/* 156/*
135 * Clock Enable Bit 157 * Clock Enable Bit
136 */ 158 */
diff --git a/arch/arm/mach-pxa/include/mach/spitz.h b/arch/arm/mach-pxa/include/mach/spitz.h
index bd14365f7ed5..31ac26b55bc1 100644
--- a/arch/arm/mach-pxa/include/mach/spitz.h
+++ b/arch/arm/mach-pxa/include/mach/spitz.h
@@ -16,6 +16,7 @@
16#endif 16#endif
17 17
18#include <linux/fb.h> 18#include <linux/fb.h>
19#include <linux/gpio.h>
19 20
20/* Spitz/Akita GPIOs */ 21/* Spitz/Akita GPIOs */
21 22
@@ -100,13 +101,24 @@
100#define SPITZ_SCP_JK_A SCOOP_GPCR_PA18 /* Low */ 101#define SPITZ_SCP_JK_A SCOOP_GPCR_PA18 /* Low */
101#define SPITZ_SCP_ADC_TEMP_ON SCOOP_GPCR_PA19 /* Low */ 102#define SPITZ_SCP_ADC_TEMP_ON SCOOP_GPCR_PA19 /* Low */
102 103
103#define SPITZ_SCP_IO_DIR (SPITZ_SCP_LED_GREEN | SPITZ_SCP_JK_B | SPITZ_SCP_CHRG_ON | \ 104#define SPITZ_SCP_IO_DIR (SPITZ_SCP_JK_B | SPITZ_SCP_CHRG_ON | \
104 SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_LED_ORANGE | \ 105 SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | \
105 SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON) 106 SPITZ_SCP_CF_POWER | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
106#define SPITZ_SCP_IO_OUT (SPITZ_SCP_CHRG_ON | SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R) 107#define SPITZ_SCP_IO_OUT (SPITZ_SCP_CHRG_ON | SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R)
107#define SPITZ_SCP_SUS_CLR (SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON) 108#define SPITZ_SCP_SUS_CLR (SPITZ_SCP_MUTE_L | SPITZ_SCP_MUTE_R | SPITZ_SCP_JK_A | SPITZ_SCP_ADC_TEMP_ON)
108#define SPITZ_SCP_SUS_SET 0 109#define SPITZ_SCP_SUS_SET 0
109 110
111#define SPITZ_SCP_GPIO_BASE (NR_BUILTIN_GPIO)
112#define SPITZ_GPIO_LED_GREEN (SPITZ_SCP_GPIO_BASE + 0)
113#define SPITZ_GPIO_JK_B (SPITZ_SCP_GPIO_BASE + 1)
114#define SPITZ_GPIO_CHRG_ON (SPITZ_SCP_GPIO_BASE + 2)
115#define SPITZ_GPIO_MUTE_L (SPITZ_SCP_GPIO_BASE + 3)
116#define SPITZ_GPIO_MUTE_R (SPITZ_SCP_GPIO_BASE + 4)
117#define SPITZ_GPIO_CF_POWER (SPITZ_SCP_GPIO_BASE + 5)
118#define SPITZ_GPIO_LED_ORANGE (SPITZ_SCP_GPIO_BASE + 6)
119#define SPITZ_GPIO_JK_A (SPITZ_SCP_GPIO_BASE + 7)
120#define SPITZ_GPIO_ADC_TEMP_ON (SPITZ_SCP_GPIO_BASE + 8)
121
110/* Spitz Scoop Device (No. 2) GPIOs */ 122/* Spitz Scoop Device (No. 2) GPIOs */
111/* Suspend States in comments */ 123/* Suspend States in comments */
112#define SPITZ_SCP2_IR_ON SCOOP_GPCR_PA11 /* High */ 124#define SPITZ_SCP2_IR_ON SCOOP_GPCR_PA11 /* High */
@@ -119,15 +131,36 @@
119#define SPITZ_SCP2_BACKLIGHT_ON SCOOP_GPCR_PA18 /* Low */ 131#define SPITZ_SCP2_BACKLIGHT_ON SCOOP_GPCR_PA18 /* Low */
120#define SPITZ_SCP2_MIC_BIAS SCOOP_GPCR_PA19 /* Low */ 132#define SPITZ_SCP2_MIC_BIAS SCOOP_GPCR_PA19 /* Low */
121 133
122#define SPITZ_SCP2_IO_DIR (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1 | \ 134#define SPITZ_SCP2_IO_DIR (SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1 | \
123 SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \ 135 SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
124 SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS) 136 SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
125 137
126#define SPITZ_SCP2_IO_OUT (SPITZ_SCP2_IR_ON | SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1) 138#define SPITZ_SCP2_IO_OUT (SPITZ_SCP2_AKIN_PULLUP | SPITZ_SCP2_RESERVED_1)
127#define SPITZ_SCP2_SUS_CLR (SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \ 139#define SPITZ_SCP2_SUS_CLR (SPITZ_SCP2_RESERVED_2 | SPITZ_SCP2_RESERVED_3 | SPITZ_SCP2_RESERVED_4 | \
128 SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS) 140 SPITZ_SCP2_BACKLIGHT_CONT | SPITZ_SCP2_BACKLIGHT_ON | SPITZ_SCP2_MIC_BIAS)
129#define SPITZ_SCP2_SUS_SET (SPITZ_SCP2_IR_ON | SPITZ_SCP2_RESERVED_1) 141#define SPITZ_SCP2_SUS_SET (SPITZ_SCP2_IR_ON | SPITZ_SCP2_RESERVED_1)
130 142
143#define SPITZ_SCP2_GPIO_BASE (NR_BUILTIN_GPIO + 12)
144#define SPITZ_GPIO_IR_ON (SPITZ_SCP2_GPIO_BASE + 0)
145#define SPITZ_GPIO_AKIN_PULLUP (SPITZ_SCP2_GPIO_BASE + 1
146#define SPITZ_GPIO_RESERVED_1 (SPITZ_SCP2_GPIO_BASE + 2)
147#define SPITZ_GPIO_RESERVED_2 (SPITZ_SCP2_GPIO_BASE + 3)
148#define SPITZ_GPIO_RESERVED_3 (SPITZ_SCP2_GPIO_BASE + 4)
149#define SPITZ_GPIO_RESERVED_4 (SPITZ_SCP2_GPIO_BASE + 5)
150#define SPITZ_GPIO_BACKLIGHT_CONT (SPITZ_SCP2_GPIO_BASE + 6)
151#define SPITZ_GPIO_BACKLIGHT_ON (SPITZ_SCP2_GPIO_BASE + 7)
152#define SPITZ_GPIO_MIC_BIAS (SPITZ_SCP2_GPIO_BASE + 8)
153
154/* Akita IO Expander GPIOs */
155#define AKITA_IOEXP_GPIO_BASE (NR_BUILTIN_GPIO + 12)
156#define AKITA_GPIO_RESERVED_0 (AKITA_IOEXP_GPIO_BASE + 0)
157#define AKITA_GPIO_RESERVED_1 (AKITA_IOEXP_GPIO_BASE + 1)
158#define AKITA_GPIO_MIC_BIAS (AKITA_IOEXP_GPIO_BASE + 2)
159#define AKITA_GPIO_BACKLIGHT_ON (AKITA_IOEXP_GPIO_BASE + 3)
160#define AKITA_GPIO_BACKLIGHT_CONT (AKITA_IOEXP_GPIO_BASE + 4)
161#define AKITA_GPIO_AKIN_PULLUP (AKITA_IOEXP_GPIO_BASE + 5)
162#define AKITA_GPIO_IR_ON (AKITA_IOEXP_GPIO_BASE + 6)
163#define AKITA_GPIO_RESERVED_7 (AKITA_IOEXP_GPIO_BASE + 7)
131 164
132/* Spitz IRQ Definitions */ 165/* Spitz IRQ Definitions */
133 166
@@ -154,5 +187,4 @@
154 */ 187 */
155extern struct platform_device spitzscoop_device; 188extern struct platform_device spitzscoop_device;
156extern struct platform_device spitzscoop2_device; 189extern struct platform_device spitzscoop2_device;
157extern struct platform_device spitzssp_device;
158extern struct sharpsl_charger_machinfo spitz_pm_machinfo; 190extern struct sharpsl_charger_machinfo spitz_pm_machinfo;
diff --git a/arch/arm/mach-pxa/include/mach/ssp.h b/arch/arm/mach-pxa/include/mach/ssp.h
index a012882c9ee6..cb5cb766f0f1 100644
--- a/arch/arm/mach-pxa/include/mach/ssp.h
+++ b/arch/arm/mach-pxa/include/mach/ssp.h
@@ -20,6 +20,7 @@
20#define __ASM_ARCH_SSP_H 20#define __ASM_ARCH_SSP_H
21 21
22#include <linux/list.h> 22#include <linux/list.h>
23#include <linux/io.h>
23 24
24enum pxa_ssp_type { 25enum pxa_ssp_type {
25 SSP_UNDEFINED = 0, 26 SSP_UNDEFINED = 0,
@@ -78,6 +79,29 @@ int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags);
78int ssp_config(struct ssp_dev *dev, u32 mode, u32 flags, u32 psp_flags, u32 speed); 79int ssp_config(struct ssp_dev *dev, u32 mode, u32 flags, u32 psp_flags, u32 speed);
79void ssp_exit(struct ssp_dev *dev); 80void ssp_exit(struct ssp_dev *dev);
80 81
82/**
83 * ssp_write_reg - Write to a SSP register
84 *
85 * @dev: SSP device to access
86 * @reg: Register to write to
87 * @val: Value to be written.
88 */
89static inline void ssp_write_reg(struct ssp_device *dev, u32 reg, u32 val)
90{
91 __raw_writel(val, dev->mmio_base + reg);
92}
93
94/**
95 * ssp_read_reg - Read from a SSP register
96 *
97 * @dev: SSP device to access
98 * @reg: Register to read from
99 */
100static inline u32 ssp_read_reg(struct ssp_device *dev, u32 reg)
101{
102 return __raw_readl(dev->mmio_base + reg);
103}
104
81struct ssp_device *ssp_request(int port, const char *label); 105struct ssp_device *ssp_request(int port, const char *label);
82void ssp_free(struct ssp_device *); 106void ssp_free(struct ssp_device *);
83#endif /* __ASM_ARCH_SSP_H */ 107#endif /* __ASM_ARCH_SSP_H */
diff --git a/arch/arm/mach-pxa/include/mach/trizeps4.h b/arch/arm/mach-pxa/include/mach/trizeps4.h
index 641d0ec110bb..903e1a2e6641 100644
--- a/arch/arm/mach-pxa/include/mach/trizeps4.h
+++ b/arch/arm/mach-pxa/include/mach/trizeps4.h
@@ -17,11 +17,16 @@
17#define TRIZEPS4_PIC_PHYS (PXA_CS3_PHYS) /* Logic chip on ConXS-Board */ 17#define TRIZEPS4_PIC_PHYS (PXA_CS3_PHYS) /* Logic chip on ConXS-Board */
18#define TRIZEPS4_SDRAM_BASE 0xa0000000 /* SDRAM region */ 18#define TRIZEPS4_SDRAM_BASE 0xa0000000 /* SDRAM region */
19 19
20#define TRIZEPS4_CFSR_PHYS (PXA_CS3_PHYS) /* Logic chip on ConXS-Board CSFR register */ 20 /* Logic on ConXS-board CSFR register*/
21#define TRIZEPS4_BOCR_PHYS (PXA_CS3_PHYS+0x02000000) /* Logic chip on ConXS-Board BOCR register */ 21#define TRIZEPS4_CFSR_PHYS (PXA_CS3_PHYS)
22#define TRIZEPS4_IRCR_PHYS (PXA_CS3_PHYS+0x02400000) /* Logic chip on ConXS-Board IRCR register*/ 22 /* Logic on ConXS-board BOCR register*/
23#define TRIZEPS4_UPSR_PHYS (PXA_CS3_PHYS+0x02800000) /* Logic chip on ConXS-Board UPSR register*/ 23#define TRIZEPS4_BOCR_PHYS (PXA_CS3_PHYS+0x02000000)
24#define TRIZEPS4_DICR_PHYS (PXA_CS3_PHYS+0x03800000) /* Logic chip on ConXS-Board DICR register*/ 24 /* Logic on ConXS-board IRCR register*/
25#define TRIZEPS4_IRCR_PHYS (PXA_CS3_PHYS+0x02400000)
26 /* Logic on ConXS-board UPSR register*/
27#define TRIZEPS4_UPSR_PHYS (PXA_CS3_PHYS+0x02800000)
28 /* Logic on ConXS-board DICR register*/
29#define TRIZEPS4_DICR_PHYS (PXA_CS3_PHYS+0x03800000)
25 30
26/* virtual memory regions */ 31/* virtual memory regions */
27#define TRIZEPS4_DISK_VIRT 0xF0000000 /* Disk On Chip region */ 32#define TRIZEPS4_DISK_VIRT 0xF0000000 /* Disk On Chip region */
@@ -54,6 +59,15 @@
54#define GPIO_MMC_DET 12 59#define GPIO_MMC_DET 12
55#define TRIZEPS4_MMC_IRQ IRQ_GPIO(GPIO_MMC_DET) 60#define TRIZEPS4_MMC_IRQ IRQ_GPIO(GPIO_MMC_DET)
56 61
62/* DOC NAND chip */
63#define GPIO_DOC_LOCK 94
64#define GPIO_DOC_IRQ 93
65#define TRIZEPS4_DOC_IRQ IRQ_GPIO(GPIO_DOC_IRQ)
66
67/* SPI interface */
68#define GPIO_SPI 53
69#define TRIZEPS4_SPI_IRQ IRQ_GPIO(GPIO_SPI)
70
57/* LEDS using tx2 / rx2 */ 71/* LEDS using tx2 / rx2 */
58#define GPIO_SYS_BUSY_LED 46 72#define GPIO_SYS_BUSY_LED 46
59#define GPIO_HEARTBEAT_LED 47 73#define GPIO_HEARTBEAT_LED 47
@@ -62,24 +76,66 @@
62#define GPIO_PIC 0 76#define GPIO_PIC 0
63#define TRIZEPS4_PIC_IRQ IRQ_GPIO(GPIO_PIC) 77#define TRIZEPS4_PIC_IRQ IRQ_GPIO(GPIO_PIC)
64 78
65#define CFSR_P2V(x) ((x) - TRIZEPS4_CFSR_PHYS + TRIZEPS4_CFSR_VIRT) 79#ifdef CONFIG_MACH_TRIZEPS_CONXS
66#define CFSR_V2P(x) ((x) - TRIZEPS4_CFSR_VIRT + TRIZEPS4_CFSR_PHYS) 80/* for CONXS base board define these registers */
81#define CFSR_P2V(x) ((x) - TRIZEPS4_CFSR_PHYS + TRIZEPS4_CFSR_VIRT)
82#define CFSR_V2P(x) ((x) - TRIZEPS4_CFSR_VIRT + TRIZEPS4_CFSR_PHYS)
67 83
68#define BCR_P2V(x) ((x) - TRIZEPS4_BOCR_PHYS + TRIZEPS4_BOCR_VIRT) 84#define BCR_P2V(x) ((x) - TRIZEPS4_BOCR_PHYS + TRIZEPS4_BOCR_VIRT)
69#define BCR_V2P(x) ((x) - TRIZEPS4_BOCR_VIRT + TRIZEPS4_BOCR_PHYS) 85#define BCR_V2P(x) ((x) - TRIZEPS4_BOCR_VIRT + TRIZEPS4_BOCR_PHYS)
70 86
71#define DCR_P2V(x) ((x) - TRIZEPS4_DICR_PHYS + TRIZEPS4_DICR_VIRT) 87#define DCR_P2V(x) ((x) - TRIZEPS4_DICR_PHYS + TRIZEPS4_DICR_VIRT)
72#define DCR_V2P(x) ((x) - TRIZEPS4_DICR_VIRT + TRIZEPS4_DICR_PHYS) 88#define DCR_V2P(x) ((x) - TRIZEPS4_DICR_VIRT + TRIZEPS4_DICR_PHYS)
89
90#define IRCR_P2V(x) ((x) - TRIZEPS4_IRCR_PHYS + TRIZEPS4_IRCR_VIRT)
91#define IRCR_V2P(x) ((x) - TRIZEPS4_IRCR_VIRT + TRIZEPS4_IRCR_PHYS)
73 92
74#ifndef __ASSEMBLY__ 93#ifndef __ASSEMBLY__
75#define ConXS_CFSR (*((volatile unsigned short *)CFSR_P2V(0x0C000000))) 94static inline unsigned short CFSR_readw(void)
76#define ConXS_BCR (*((volatile unsigned short *)BCR_P2V(0x0E000000))) 95{
77#define ConXS_DCR (*((volatile unsigned short *)DCR_P2V(0x0F800000))) 96 /* [Compact Flash Status Register] is read only */
97 return *((unsigned short *)CFSR_P2V(0x0C000000));
98}
99static inline void BCR_writew(unsigned short value)
100{
101 /* [Board Control Regsiter] is write only */
102 *((unsigned short *)BCR_P2V(0x0E000000)) = value;
103}
104static inline void DCR_writew(unsigned short value)
105{
106 /* [Display Control Register] is write only */
107 *((unsigned short *)DCR_P2V(0x0E000000)) = value;
108}
109static inline void IRCR_writew(unsigned short value)
110{
111 /* [InfraRed data Control Register] is write only */
112 *((unsigned short *)IRCR_P2V(0x0E000000)) = value;
113}
78#else 114#else
79#define ConXS_CFSR CFSR_P2V(0x0C000000) 115#define ConXS_CFSR CFSR_P2V(0x0C000000)
80#define ConXS_BCR BCR_P2V(0x0E000000) 116#define ConXS_BCR BCR_P2V(0x0E000000)
81#define ConXS_DCR DCR_P2V(0x0F800000) 117#define ConXS_DCR DCR_P2V(0x0F800000)
118#define ConXS_IRCR IRCR_P2V(0x0F800000)
82#endif 119#endif
120#else
121/* for whatever baseboard define function registers */
122static inline unsigned short CFSR_readw(void)
123{
124 return 0;
125}
126static inline void BCR_writew(unsigned short value)
127{
128 ;
129}
130static inline void DCR_writew(unsigned short value)
131{
132 ;
133}
134static inline void IRCR_writew(unsigned short value)
135{
136 ;
137}
138#endif /* CONFIG_MACH_TRIZEPS_CONXS */
83 139
84#define ConXS_CFSR_BVD_MASK 0x0003 140#define ConXS_CFSR_BVD_MASK 0x0003
85#define ConXS_CFSR_BVD1 (1 << 0) 141#define ConXS_CFSR_BVD1 (1 << 0)
diff --git a/arch/arm/mach-pxa/include/mach/viper.h b/arch/arm/mach-pxa/include/mach/viper.h
new file mode 100644
index 000000000000..10988c270ca3
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/viper.h
@@ -0,0 +1,96 @@
1/*
2 * arch/arm/mach-pxa/include/mach/viper.h
3 *
4 * Author: Ian Campbell
5 * Created: Feb 03, 2003
6 * Copyright: Arcom Control Systems.
7 *
8 * Maintained by Marc Zyngier <maz@misterjones.org>
9 * <marc.zyngier@altran.com>
10 *
11 * Created based on lubbock.h:
12 * Author: Nicolas Pitre
13 * Created: Jun 15, 2001
14 * Copyright: MontaVista Software Inc.
15 *
16 * This program is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License version 2 as
18 * published by the Free Software Foundation.
19 */
20
21#ifndef ARCH_VIPER_H
22#define ARCH_VIPER_H
23
24#define VIPER_BOOT_PHYS PXA_CS0_PHYS
25#define VIPER_FLASH_PHYS PXA_CS1_PHYS
26#define VIPER_ETH_PHYS PXA_CS2_PHYS
27#define VIPER_USB_PHYS PXA_CS3_PHYS
28#define VIPER_ETH_DATA_PHYS PXA_CS4_PHYS
29#define VIPER_CPLD_PHYS PXA_CS5_PHYS
30
31#define VIPER_CPLD_BASE (0xf0000000)
32#define VIPER_PC104IO_BASE (0xf1000000)
33#define VIPER_USB_BASE (0xf1800000)
34
35#define VIPER_ETH_GPIO (0)
36#define VIPER_CPLD_GPIO (1)
37#define VIPER_USB_GPIO (2)
38#define VIPER_UARTA_GPIO (4)
39#define VIPER_UARTB_GPIO (3)
40#define VIPER_CF_CD_GPIO (32)
41#define VIPER_CF_RDY_GPIO (8)
42#define VIPER_BCKLIGHT_EN_GPIO (9)
43#define VIPER_LCD_EN_GPIO (10)
44#define VIPER_PSU_DATA_GPIO (6)
45#define VIPER_PSU_CLK_GPIO (11)
46#define VIPER_UART_SHDN_GPIO (12)
47#define VIPER_BRIGHTNESS_GPIO (16)
48#define VIPER_PSU_nCS_LD_GPIO (19)
49#define VIPER_UPS_GPIO (20)
50#define VIPER_CF_POWER_GPIO (82)
51#define VIPER_TPM_I2C_SDA_GPIO (26)
52#define VIPER_TPM_I2C_SCL_GPIO (27)
53#define VIPER_RTC_I2C_SDA_GPIO (83)
54#define VIPER_RTC_I2C_SCL_GPIO (84)
55
56#define VIPER_CPLD_P2V(x) ((x) - VIPER_CPLD_PHYS + VIPER_CPLD_BASE)
57#define VIPER_CPLD_V2P(x) ((x) - VIPER_CPLD_BASE + VIPER_CPLD_PHYS)
58
59#ifndef __ASSEMBLY__
60# define __VIPER_CPLD_REG(x) (*((volatile u16 *)VIPER_CPLD_P2V(x)))
61#endif
62
63/* board level registers in the CPLD: (offsets from CPLD_BASE) ... */
64
65/* ... Physical addresses */
66#define _VIPER_LO_IRQ_STATUS (VIPER_CPLD_PHYS + 0x100000)
67#define _VIPER_ICR_PHYS (VIPER_CPLD_PHYS + 0x100002)
68#define _VIPER_HI_IRQ_STATUS (VIPER_CPLD_PHYS + 0x100004)
69#define _VIPER_VERSION_PHYS (VIPER_CPLD_PHYS + 0x100006)
70#define VIPER_UARTA_PHYS (VIPER_CPLD_PHYS + 0x300010)
71#define VIPER_UARTB_PHYS (VIPER_CPLD_PHYS + 0x300000)
72#define _VIPER_SRAM_BASE (VIPER_CPLD_PHYS + 0x800000)
73
74/* ... Virtual addresses */
75#define VIPER_LO_IRQ_STATUS __VIPER_CPLD_REG(_VIPER_LO_IRQ_STATUS)
76#define VIPER_HI_IRQ_STATUS __VIPER_CPLD_REG(_VIPER_HI_IRQ_STATUS)
77#define VIPER_VERSION __VIPER_CPLD_REG(_VIPER_VERSION_PHYS)
78#define VIPER_ICR __VIPER_CPLD_REG(_VIPER_ICR_PHYS)
79
80/* Decode VIPER_VERSION register */
81#define VIPER_CPLD_REVISION(x) (((x) >> 5) & 0x7)
82#define VIPER_BOARD_VERSION(x) (((x) >> 3) & 0x3)
83#define VIPER_BOARD_ISSUE(x) (((x) >> 0) & 0x7)
84
85/* Interrupt and Configuration Register (VIPER_ICR) */
86/* This is a write only register. Only CF_RST is used under Linux */
87
88extern void viper_cf_rst(int state);
89
90#define VIPER_ICR_RETRIG (1 << 0)
91#define VIPER_ICR_AUTO_CLR (1 << 1)
92#define VIPER_ICR_R_DIS (1 << 2)
93#define VIPER_ICR_CF_RST (1 << 3)
94
95#endif
96
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c
index 5e95c5372fec..fa69c3a6a38e 100644
--- a/arch/arm/mach-pxa/irq.c
+++ b/arch/arm/mach-pxa/irq.c
@@ -57,7 +57,7 @@ void __init pxa_init_irq(int irq_nr, set_wake_t fn)
57 57
58 pxa_internal_irq_nr = irq_nr; 58 pxa_internal_irq_nr = irq_nr;
59 59
60 for (irq = 0; irq < irq_nr; irq += 32) { 60 for (irq = PXA_IRQ(0); irq < PXA_IRQ(irq_nr); irq += 32) {
61 _ICMR(irq) = 0; /* disable all IRQs */ 61 _ICMR(irq) = 0; /* disable all IRQs */
62 _ICLR(irq) = 0; /* all IRQs are IRQ, not FIQ */ 62 _ICLR(irq) = 0; /* all IRQs are IRQ, not FIQ */
63 } 63 }
diff --git a/arch/arm/mach-pxa/leds-trizeps4.c b/arch/arm/mach-pxa/leds-trizeps4.c
deleted file mode 100644
index 3bc29007df3a..000000000000
--- a/arch/arm/mach-pxa/leds-trizeps4.c
+++ /dev/null
@@ -1,134 +0,0 @@
1/*
2 * linux/arch/arm/mach-pxa/leds-trizeps4.c
3 *
4 * Author: Jürgen Schindele
5 * Created: 20 02, 2006
6 * Copyright: Jürgen Schindele
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13#include <linux/init.h>
14
15#include <mach/hardware.h>
16#include <asm/system.h>
17#include <asm/types.h>
18#include <asm/leds.h>
19
20#include <mach/pxa-regs.h>
21#include <mach/pxa2xx-gpio.h>
22#include <mach/trizeps4.h>
23
24#include "leds.h"
25
26#define LED_STATE_ENABLED 1
27#define LED_STATE_CLAIMED 2
28
29#define SYS_BUSY 0x01
30#define HEARTBEAT 0x02
31#define BLINK 0x04
32
33static unsigned int led_state;
34static unsigned int hw_led_state;
35
36void trizeps4_leds_event(led_event_t evt)
37{
38 unsigned long flags;
39
40 local_irq_save(flags);
41
42 switch (evt) {
43 case led_start:
44 hw_led_state = 0;
45 pxa_gpio_mode( GPIO_SYS_BUSY_LED | GPIO_OUT); /* LED1 */
46 pxa_gpio_mode( GPIO_HEARTBEAT_LED | GPIO_OUT); /* LED2 */
47 led_state = LED_STATE_ENABLED;
48 break;
49
50 case led_stop:
51 led_state &= ~LED_STATE_ENABLED;
52 break;
53
54 case led_claim:
55 led_state |= LED_STATE_CLAIMED;
56 hw_led_state = 0;
57 break;
58
59 case led_release:
60 led_state &= ~LED_STATE_CLAIMED;
61 hw_led_state = 0;
62 break;
63
64#ifdef CONFIG_LEDS_TIMER
65 case led_timer:
66 hw_led_state ^= HEARTBEAT;
67 break;
68#endif
69
70#ifdef CONFIG_LEDS_CPU
71 case led_idle_start:
72 hw_led_state &= ~SYS_BUSY;
73 break;
74
75 case led_idle_end:
76 hw_led_state |= SYS_BUSY;
77 break;
78#endif
79
80 case led_halted:
81 break;
82
83 case led_green_on:
84 hw_led_state |= BLINK;
85 break;
86
87 case led_green_off:
88 hw_led_state &= ~BLINK;
89 break;
90
91 case led_amber_on:
92 break;
93
94 case led_amber_off:
95 break;
96
97 case led_red_on:
98 break;
99
100 case led_red_off:
101 break;
102
103 default:
104 break;
105 }
106
107 if (led_state & LED_STATE_ENABLED) {
108 switch (hw_led_state) {
109 case 0:
110 GPSR(GPIO_SYS_BUSY_LED) |= GPIO_bit(GPIO_SYS_BUSY_LED);
111 GPSR(GPIO_HEARTBEAT_LED) |= GPIO_bit(GPIO_HEARTBEAT_LED);
112 break;
113 case 1:
114 GPCR(GPIO_SYS_BUSY_LED) |= GPIO_bit(GPIO_SYS_BUSY_LED);
115 GPSR(GPIO_HEARTBEAT_LED) |= GPIO_bit(GPIO_HEARTBEAT_LED);
116 break;
117 case 2:
118 GPSR(GPIO_SYS_BUSY_LED) |= GPIO_bit(GPIO_SYS_BUSY_LED);
119 GPCR(GPIO_HEARTBEAT_LED) |= GPIO_bit(GPIO_HEARTBEAT_LED);
120 break;
121 case 3:
122 GPCR(GPIO_SYS_BUSY_LED) |= GPIO_bit(GPIO_SYS_BUSY_LED);
123 GPCR(GPIO_HEARTBEAT_LED) |= GPIO_bit(GPIO_HEARTBEAT_LED);
124 break;
125 }
126 }
127 else {
128 /* turn all off */
129 GPSR(GPIO_SYS_BUSY_LED) |= GPIO_bit(GPIO_SYS_BUSY_LED);
130 GPSR(GPIO_HEARTBEAT_LED) |= GPIO_bit(GPIO_HEARTBEAT_LED);
131 }
132
133 local_irq_restore(flags);
134}
diff --git a/arch/arm/mach-pxa/leds.c b/arch/arm/mach-pxa/leds.c
index e13eb841e48d..bbe4d5f6afaa 100644
--- a/arch/arm/mach-pxa/leds.c
+++ b/arch/arm/mach-pxa/leds.c
@@ -24,8 +24,6 @@ pxa_leds_init(void)
24 leds_event = mainstone_leds_event; 24 leds_event = mainstone_leds_event;
25 if (machine_is_pxa_idp()) 25 if (machine_is_pxa_idp())
26 leds_event = idp_leds_event; 26 leds_event = idp_leds_event;
27 if (machine_is_trizeps4())
28 leds_event = trizeps4_leds_event;
29 27
30 leds_event(led_start); 28 leds_event(led_start);
31 return 0; 29 return 0;
diff --git a/arch/arm/mach-pxa/littleton.c b/arch/arm/mach-pxa/littleton.c
index 58f3402a0375..b4d00aba0e31 100644
--- a/arch/arm/mach-pxa/littleton.c
+++ b/arch/arm/mach-pxa/littleton.c
@@ -20,6 +20,7 @@
20#include <linux/delay.h> 20#include <linux/delay.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/clk.h> 22#include <linux/clk.h>
23#include <linux/spi/spi.h>
23#include <linux/smc91x.h> 24#include <linux/smc91x.h>
24 25
25#include <asm/types.h> 26#include <asm/types.h>
@@ -38,6 +39,7 @@
38#include <mach/gpio.h> 39#include <mach/gpio.h>
39#include <mach/pxafb.h> 40#include <mach/pxafb.h>
40#include <mach/ssp.h> 41#include <mach/ssp.h>
42#include <mach/pxa2xx_spi.h>
41#include <mach/pxa27x_keypad.h> 43#include <mach/pxa27x_keypad.h>
42#include <mach/pxa3xx_nand.h> 44#include <mach/pxa3xx_nand.h>
43#include <mach/littleton.h> 45#include <mach/littleton.h>
@@ -72,8 +74,8 @@ static mfp_cfg_t littleton_mfp_cfg[] __initdata = {
72 74
73 /* SSP2 */ 75 /* SSP2 */
74 GPIO25_SSP2_SCLK, 76 GPIO25_SSP2_SCLK,
75 GPIO17_SSP2_FRM,
76 GPIO27_SSP2_TXD, 77 GPIO27_SSP2_TXD,
78 GPIO17_GPIO, /* SFRM as chip-select */
77 79
78 /* Debug Ethernet */ 80 /* Debug Ethernet */
79 GPIO90_GPIO, 81 GPIO90_GPIO,
@@ -123,160 +125,6 @@ static struct platform_device smc91x_device = {
123}; 125};
124 126
125#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE) 127#if defined(CONFIG_FB_PXA) || defined(CONFIG_FB_PXA_MODULE)
126/* use bit 30, 31 as the indicator of command parameter number */
127#define CMD0(x) ((0x00000000) | ((x) << 9))
128#define CMD1(x, x1) ((0x40000000) | ((x) << 9) | 0x100 | (x1))
129#define CMD2(x, x1, x2) ((0x80000000) | ((x) << 18) | 0x20000 |\
130 ((x1) << 9) | 0x100 | (x2))
131
132static uint32_t lcd_panel_reset[] = {
133 CMD0(0x1), /* reset */
134 CMD0(0x0), /* nop */
135 CMD0(0x0), /* nop */
136 CMD0(0x0), /* nop */
137};
138
139static uint32_t lcd_panel_on[] = {
140 CMD0(0x29), /* Display ON */
141 CMD2(0xB8, 0xFF, 0xF9), /* Output Control */
142 CMD0(0x11), /* Sleep out */
143 CMD1(0xB0, 0x16), /* Wake */
144};
145
146static uint32_t lcd_panel_off[] = {
147 CMD0(0x28), /* Display OFF */
148 CMD2(0xB8, 0x80, 0x02), /* Output Control */
149 CMD0(0x10), /* Sleep in */
150 CMD1(0xB0, 0x00), /* Deep stand by in */
151};
152
153static uint32_t lcd_vga_pass_through[] = {
154 CMD1(0xB0, 0x16),
155 CMD1(0xBC, 0x80),
156 CMD1(0xE1, 0x00),
157 CMD1(0x36, 0x50),
158 CMD1(0x3B, 0x00),
159};
160
161static uint32_t lcd_qvga_pass_through[] = {
162 CMD1(0xB0, 0x16),
163 CMD1(0xBC, 0x81),
164 CMD1(0xE1, 0x00),
165 CMD1(0x36, 0x50),
166 CMD1(0x3B, 0x22),
167};
168
169static uint32_t lcd_vga_transfer[] = {
170 CMD1(0xcf, 0x02), /* Blanking period control (1) */
171 CMD2(0xd0, 0x08, 0x04), /* Blanking period control (2) */
172 CMD1(0xd1, 0x01), /* CKV timing control on/off */
173 CMD2(0xd2, 0x14, 0x00), /* CKV 1,2 timing control */
174 CMD2(0xd3, 0x1a, 0x0f), /* OEV timing control */
175 CMD2(0xd4, 0x1f, 0xaf), /* ASW timing control (1) */
176 CMD1(0xd5, 0x14), /* ASW timing control (2) */
177 CMD0(0x21), /* Invert for normally black display */
178 CMD0(0x29), /* Display on */
179};
180
181static uint32_t lcd_qvga_transfer[] = {
182 CMD1(0xd6, 0x02), /* Blanking period control (1) */
183 CMD2(0xd7, 0x08, 0x04), /* Blanking period control (2) */
184 CMD1(0xd8, 0x01), /* CKV timing control on/off */
185 CMD2(0xd9, 0x00, 0x08), /* CKV 1,2 timing control */
186 CMD2(0xde, 0x05, 0x0a), /* OEV timing control */
187 CMD2(0xdf, 0x0a, 0x19), /* ASW timing control (1) */
188 CMD1(0xe0, 0x0a), /* ASW timing control (2) */
189 CMD0(0x21), /* Invert for normally black display */
190 CMD0(0x29), /* Display on */
191};
192
193static uint32_t lcd_panel_config[] = {
194 CMD2(0xb8, 0xff, 0xf9), /* Output control */
195 CMD0(0x11), /* sleep out */
196 CMD1(0xba, 0x01), /* Display mode (1) */
197 CMD1(0xbb, 0x00), /* Display mode (2) */
198 CMD1(0x3a, 0x60), /* Display mode 18-bit RGB */
199 CMD1(0xbf, 0x10), /* Drive system change control */
200 CMD1(0xb1, 0x56), /* Booster operation setup */
201 CMD1(0xb2, 0x33), /* Booster mode setup */
202 CMD1(0xb3, 0x11), /* Booster frequency setup */
203 CMD1(0xb4, 0x02), /* Op amp/system clock */
204 CMD1(0xb5, 0x35), /* VCS voltage */
205 CMD1(0xb6, 0x40), /* VCOM voltage */
206 CMD1(0xb7, 0x03), /* External display signal */
207 CMD1(0xbd, 0x00), /* ASW slew rate */
208 CMD1(0xbe, 0x00), /* Dummy data for QuadData operation */
209 CMD1(0xc0, 0x11), /* Sleep out FR count (A) */
210 CMD1(0xc1, 0x11), /* Sleep out FR count (B) */
211 CMD1(0xc2, 0x11), /* Sleep out FR count (C) */
212 CMD2(0xc3, 0x20, 0x40), /* Sleep out FR count (D) */
213 CMD2(0xc4, 0x60, 0xc0), /* Sleep out FR count (E) */
214 CMD2(0xc5, 0x10, 0x20), /* Sleep out FR count (F) */
215 CMD1(0xc6, 0xc0), /* Sleep out FR count (G) */
216 CMD2(0xc7, 0x33, 0x43), /* Gamma 1 fine tuning (1) */
217 CMD1(0xc8, 0x44), /* Gamma 1 fine tuning (2) */
218 CMD1(0xc9, 0x33), /* Gamma 1 inclination adjustment */
219 CMD1(0xca, 0x00), /* Gamma 1 blue offset adjustment */
220 CMD2(0xec, 0x01, 0xf0), /* Horizontal clock cycles */
221};
222
223static void ssp_reconfig(struct ssp_dev *dev, int nparam)
224{
225 static int last_nparam = -1;
226
227 /* check if it is necessary to re-config SSP */
228 if (nparam == last_nparam)
229 return;
230
231 ssp_disable(dev);
232 ssp_config(dev, (nparam == 2) ? 0x0010058a : 0x00100581, 0x18, 0, 0);
233
234 last_nparam = nparam;
235}
236
237static void ssp_send_cmd(uint32_t *cmd, int num)
238{
239 static int ssp_initialized;
240 static struct ssp_dev ssp2;
241
242 int i;
243
244 if (!ssp_initialized) {
245 ssp_init(&ssp2, 2, SSP_NO_IRQ);
246 ssp_initialized = 1;
247 }
248
249 clk_enable(ssp2.ssp->clk);
250 for (i = 0; i < num; i++, cmd++) {
251 ssp_reconfig(&ssp2, (*cmd >> 30) & 0x3);
252 ssp_write_word(&ssp2, *cmd & 0x3fffffff);
253
254 /* FIXME: ssp_flush() is mandatory here to work */
255 ssp_flush(&ssp2);
256 }
257 clk_disable(ssp2.ssp->clk);
258}
259
260static void littleton_lcd_power(int on, struct fb_var_screeninfo *var)
261{
262 if (on) {
263 ssp_send_cmd(ARRAY_AND_SIZE(lcd_panel_on));
264 ssp_send_cmd(ARRAY_AND_SIZE(lcd_panel_reset));
265 if (var->xres > 240) {
266 /* VGA */
267 ssp_send_cmd(ARRAY_AND_SIZE(lcd_vga_pass_through));
268 ssp_send_cmd(ARRAY_AND_SIZE(lcd_panel_config));
269 ssp_send_cmd(ARRAY_AND_SIZE(lcd_vga_transfer));
270 } else {
271 /* QVGA */
272 ssp_send_cmd(ARRAY_AND_SIZE(lcd_qvga_pass_through));
273 ssp_send_cmd(ARRAY_AND_SIZE(lcd_panel_config));
274 ssp_send_cmd(ARRAY_AND_SIZE(lcd_qvga_transfer));
275 }
276 } else
277 ssp_send_cmd(ARRAY_AND_SIZE(lcd_panel_off));
278}
279
280static struct pxafb_mode_info tpo_tdo24mtea1_modes[] = { 128static struct pxafb_mode_info tpo_tdo24mtea1_modes[] = {
281 [0] = { 129 [0] = {
282 /* VGA */ 130 /* VGA */
@@ -312,7 +160,6 @@ static struct pxafb_mach_info littleton_lcd_info = {
312 .modes = tpo_tdo24mtea1_modes, 160 .modes = tpo_tdo24mtea1_modes,
313 .num_modes = 2, 161 .num_modes = 2,
314 .lcd_conn = LCD_COLOR_TFT_16BPP, 162 .lcd_conn = LCD_COLOR_TFT_16BPP,
315 .pxafb_lcd_power = littleton_lcd_power,
316}; 163};
317 164
318static void littleton_init_lcd(void) 165static void littleton_init_lcd(void)
@@ -323,6 +170,51 @@ static void littleton_init_lcd(void)
323static inline void littleton_init_lcd(void) {}; 170static inline void littleton_init_lcd(void) {};
324#endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */ 171#endif /* CONFIG_FB_PXA || CONFIG_FB_PXA_MODULE */
325 172
173#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
174static struct pxa2xx_spi_master littleton_spi_info = {
175 .num_chipselect = 1,
176};
177
178static void littleton_tdo24m_cs(u32 cmd)
179{
180 gpio_set_value(LITTLETON_GPIO_LCD_CS, !(cmd == PXA2XX_CS_ASSERT));
181}
182
183static struct pxa2xx_spi_chip littleton_tdo24m_chip = {
184 .rx_threshold = 1,
185 .tx_threshold = 1,
186 .cs_control = littleton_tdo24m_cs,
187};
188
189static struct spi_board_info littleton_spi_devices[] __initdata = {
190 {
191 .modalias = "tdo24m",
192 .max_speed_hz = 1000000,
193 .bus_num = 2,
194 .chip_select = 0,
195 .controller_data= &littleton_tdo24m_chip,
196 },
197};
198
199static void __init littleton_init_spi(void)
200{
201 int err;
202
203 err = gpio_request(LITTLETON_GPIO_LCD_CS, "LCD_CS");
204 if (err) {
205 pr_warning("failed to request GPIO for LCS CS\n");
206 return;
207 }
208
209 gpio_direction_output(LITTLETON_GPIO_LCD_CS, 1);
210
211 pxa2xx_set_spi_info(2, &littleton_spi_info);
212 spi_register_board_info(ARRAY_AND_SIZE(littleton_spi_devices));
213}
214#else
215static inline void littleton_init_spi(void) {}
216#endif
217
326#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) 218#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE)
327static unsigned int littleton_matrix_key_map[] = { 219static unsigned int littleton_matrix_key_map[] = {
328 /* KEY(row, col, key_code) */ 220 /* KEY(row, col, key_code) */
@@ -433,6 +325,7 @@ static void __init littleton_init(void)
433 */ 325 */
434 platform_device_register(&smc91x_device); 326 platform_device_register(&smc91x_device);
435 327
328 littleton_init_spi();
436 littleton_init_lcd(); 329 littleton_init_lcd();
437 littleton_init_keypad(); 330 littleton_init_keypad();
438 littleton_init_nand(); 331 littleton_init_nand();
diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c
index b7038948d1d4..de3f67daaacf 100644
--- a/arch/arm/mach-pxa/lpd270.c
+++ b/arch/arm/mach-pxa/lpd270.c
@@ -40,7 +40,7 @@
40 40
41#include <mach/pxa-regs.h> 41#include <mach/pxa-regs.h>
42#include <mach/pxa2xx-regs.h> 42#include <mach/pxa2xx-regs.h>
43#include <mach/pxa2xx-gpio.h> 43#include <mach/mfp-pxa27x.h>
44#include <mach/lpd270.h> 44#include <mach/lpd270.h>
45#include <mach/audio.h> 45#include <mach/audio.h>
46#include <mach/pxafb.h> 46#include <mach/pxafb.h>
@@ -51,6 +51,43 @@
51#include "generic.h" 51#include "generic.h"
52#include "devices.h" 52#include "devices.h"
53 53
54static unsigned long lpd270_pin_config[] __initdata = {
55 /* Chip Selects */
56 GPIO15_nCS_1, /* Mainboard Flash */
57 GPIO78_nCS_2, /* CPLD + Ethernet */
58
59 /* LCD - 16bpp Active TFT */
60 GPIO58_LCD_LDD_0,
61 GPIO59_LCD_LDD_1,
62 GPIO60_LCD_LDD_2,
63 GPIO61_LCD_LDD_3,
64 GPIO62_LCD_LDD_4,
65 GPIO63_LCD_LDD_5,
66 GPIO64_LCD_LDD_6,
67 GPIO65_LCD_LDD_7,
68 GPIO66_LCD_LDD_8,
69 GPIO67_LCD_LDD_9,
70 GPIO68_LCD_LDD_10,
71 GPIO69_LCD_LDD_11,
72 GPIO70_LCD_LDD_12,
73 GPIO71_LCD_LDD_13,
74 GPIO72_LCD_LDD_14,
75 GPIO73_LCD_LDD_15,
76 GPIO74_LCD_FCLK,
77 GPIO75_LCD_LCLK,
78 GPIO76_LCD_PCLK,
79 GPIO77_LCD_BIAS,
80 GPIO16_PWM0_OUT, /* Backlight */
81
82 /* USB Host */
83 GPIO88_USBH1_PWR,
84 GPIO89_USBH1_PEN,
85
86 /* AC97 */
87 GPIO45_AC97_SYSCLK,
88
89 GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH,
90};
54 91
55static unsigned int lpd270_irq_enabled; 92static unsigned int lpd270_irq_enabled;
56 93
@@ -88,8 +125,7 @@ static void lpd270_irq_handler(unsigned int irq, struct irq_desc *desc)
88 GEDR(0) = GPIO_bit(0); /* clear useless edge notification */ 125 GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
89 if (likely(pending)) { 126 if (likely(pending)) {
90 irq = LPD270_IRQ(0) + __ffs(pending); 127 irq = LPD270_IRQ(0) + __ffs(pending);
91 desc = irq_desc + irq; 128 generic_handle_irq(irq);
92 desc_handle_irq(irq, desc);
93 129
94 pending = __raw_readw(LPD270_INT_STATUS) & 130 pending = __raw_readw(LPD270_INT_STATUS) &
95 lpd270_irq_enabled; 131 lpd270_irq_enabled;
@@ -265,8 +301,8 @@ static struct pxafb_mode_info sharp_lq057q3dc02_mode = {
265static struct pxafb_mach_info sharp_lq057q3dc02 = { 301static struct pxafb_mach_info sharp_lq057q3dc02 = {
266 .modes = &sharp_lq057q3dc02_mode, 302 .modes = &sharp_lq057q3dc02_mode,
267 .num_modes = 1, 303 .num_modes = 1,
268 .lccr0 = 0x07800080, 304 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL |
269 .lccr3 = 0x00400000, 305 LCD_ALTERNATE_MAPPING,
270}; 306};
271 307
272/* 12.1" TFT SVGA (LoLo display number 2) */ 308/* 12.1" TFT SVGA (LoLo display number 2) */
@@ -287,8 +323,8 @@ static struct pxafb_mode_info sharp_lq121s1dg31_mode = {
287static struct pxafb_mach_info sharp_lq121s1dg31 = { 323static struct pxafb_mach_info sharp_lq121s1dg31 = {
288 .modes = &sharp_lq121s1dg31_mode, 324 .modes = &sharp_lq121s1dg31_mode,
289 .num_modes = 1, 325 .num_modes = 1,
290 .lccr0 = 0x07800080, 326 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL |
291 .lccr3 = 0x00400000, 327 LCD_ALTERNATE_MAPPING,
292}; 328};
293 329
294/* 3.6" TFT QVGA (LoLo display number 3) */ 330/* 3.6" TFT QVGA (LoLo display number 3) */
@@ -309,8 +345,8 @@ static struct pxafb_mode_info sharp_lq036q1da01_mode = {
309static struct pxafb_mach_info sharp_lq036q1da01 = { 345static struct pxafb_mach_info sharp_lq036q1da01 = {
310 .modes = &sharp_lq036q1da01_mode, 346 .modes = &sharp_lq036q1da01_mode,
311 .num_modes = 1, 347 .num_modes = 1,
312 .lccr0 = 0x07800080, 348 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL |
313 .lccr3 = 0x00400000, 349 LCD_ALTERNATE_MAPPING,
314}; 350};
315 351
316/* 6.4" TFT VGA (LoLo display number 5) */ 352/* 6.4" TFT VGA (LoLo display number 5) */
@@ -331,8 +367,8 @@ static struct pxafb_mode_info sharp_lq64d343_mode = {
331static struct pxafb_mach_info sharp_lq64d343 = { 367static struct pxafb_mach_info sharp_lq64d343 = {
332 .modes = &sharp_lq64d343_mode, 368 .modes = &sharp_lq64d343_mode,
333 .num_modes = 1, 369 .num_modes = 1,
334 .lccr0 = 0x07800080, 370 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL |
335 .lccr3 = 0x00400000, 371 LCD_ALTERNATE_MAPPING,
336}; 372};
337 373
338/* 10.4" TFT VGA (LoLo display number 7) */ 374/* 10.4" TFT VGA (LoLo display number 7) */
@@ -353,8 +389,8 @@ static struct pxafb_mode_info sharp_lq10d368_mode = {
353static struct pxafb_mach_info sharp_lq10d368 = { 389static struct pxafb_mach_info sharp_lq10d368 = {
354 .modes = &sharp_lq10d368_mode, 390 .modes = &sharp_lq10d368_mode,
355 .num_modes = 1, 391 .num_modes = 1,
356 .lccr0 = 0x07800080, 392 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL |
357 .lccr3 = 0x00400000, 393 LCD_ALTERNATE_MAPPING,
358}; 394};
359 395
360/* 3.5" TFT QVGA (LoLo display number 8) */ 396/* 3.5" TFT QVGA (LoLo display number 8) */
@@ -375,8 +411,8 @@ static struct pxafb_mode_info sharp_lq035q7db02_20_mode = {
375static struct pxafb_mach_info sharp_lq035q7db02_20 = { 411static struct pxafb_mach_info sharp_lq035q7db02_20 = {
376 .modes = &sharp_lq035q7db02_20_mode, 412 .modes = &sharp_lq035q7db02_20_mode,
377 .num_modes = 1, 413 .num_modes = 1,
378 .lccr0 = 0x07800080, 414 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL |
379 .lccr3 = 0x00400000, 415 LCD_ALTERNATE_MAPPING,
380}; 416};
381 417
382static struct pxafb_mach_info *lpd270_lcd_to_use; 418static struct pxafb_mach_info *lpd270_lcd_to_use;
@@ -411,27 +447,15 @@ static struct platform_device *platform_devices[] __initdata = {
411 &lpd270_flash_device[1], 447 &lpd270_flash_device[1],
412}; 448};
413 449
414static int lpd270_ohci_init(struct device *dev)
415{
416 /* setup Port1 GPIO pin. */
417 pxa_gpio_mode(88 | GPIO_ALT_FN_1_IN); /* USBHPWR1 */
418 pxa_gpio_mode(89 | GPIO_ALT_FN_2_OUT); /* USBHPEN1 */
419
420 /* Set the Power Control Polarity Low and Power Sense
421 Polarity Low to active low. */
422 UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) &
423 ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSEP3 | UHCHR_SSE);
424
425 return 0;
426}
427
428static struct pxaohci_platform_data lpd270_ohci_platform_data = { 450static struct pxaohci_platform_data lpd270_ohci_platform_data = {
429 .port_mode = PMM_PERPORT_MODE, 451 .port_mode = PMM_PERPORT_MODE,
430 .init = lpd270_ohci_init, 452 .flags = ENABLE_PORT_ALL | POWER_CONTROL_LOW | POWER_SENSE_LOW,
431}; 453};
432 454
433static void __init lpd270_init(void) 455static void __init lpd270_init(void)
434{ 456{
457 pxa2xx_mfp_config(ARRAY_AND_SIZE(lpd270_pin_config));
458
435 lpd270_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4; 459 lpd270_flash_data[0].width = (BOOT_DEF & 1) ? 2 : 4;
436 lpd270_flash_data[1].width = 4; 460 lpd270_flash_data[1].width = 4;
437 461
@@ -442,12 +466,6 @@ static void __init lpd270_init(void)
442 */ 466 */
443 ARB_CNTRL = ARB_CORE_PARK | 0x234; 467 ARB_CNTRL = ARB_CORE_PARK | 0x234;
444 468
445 /*
446 * On LogicPD PXA270, we route AC97_SYSCLK via GPIO45.
447 */
448 pxa_gpio_mode(GPIO45_SYSCLK_AC97_MD);
449 pxa_gpio_mode(GPIO16_PWM0_MD);
450
451 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices)); 469 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
452 470
453 pxa_set_ac97_info(NULL); 471 pxa_set_ac97_info(NULL);
@@ -473,15 +491,6 @@ static void __init lpd270_map_io(void)
473 pxa_map_io(); 491 pxa_map_io();
474 iotable_init(lpd270_io_desc, ARRAY_SIZE(lpd270_io_desc)); 492 iotable_init(lpd270_io_desc, ARRAY_SIZE(lpd270_io_desc));
475 493
476 /* initialize sleep mode regs (wake-up sources, etc) */
477 PGSR0 = 0x00008800;
478 PGSR1 = 0x00000002;
479 PGSR2 = 0x0001FC00;
480 PGSR3 = 0x00001F81;
481 PWER = 0xC0000002;
482 PRER = 0x00000002;
483 PFER = 0x00000002;
484
485 /* for use I SRAM as framebuffer. */ 494 /* for use I SRAM as framebuffer. */
486 PSLR |= 0x00000F04; 495 PSLR |= 0x00000F04;
487 PCFR = 0x00000066; 496 PCFR = 0x00000066;
diff --git a/arch/arm/mach-pxa/lubbock.c b/arch/arm/mach-pxa/lubbock.c
index 4ffdff2d9ff1..bff704354c1a 100644
--- a/arch/arm/mach-pxa/lubbock.c
+++ b/arch/arm/mach-pxa/lubbock.c
@@ -57,13 +57,36 @@
57 57
58static unsigned long lubbock_pin_config[] __initdata = { 58static unsigned long lubbock_pin_config[] __initdata = {
59 GPIO15_nCS_1, /* CS1 - Flash */ 59 GPIO15_nCS_1, /* CS1 - Flash */
60 GPIO78_nCS_2, /* CS2 - Baseboard FGPA */
60 GPIO79_nCS_3, /* CS3 - SMC ethernet */ 61 GPIO79_nCS_3, /* CS3 - SMC ethernet */
62 GPIO80_nCS_4, /* CS4 - SA1111 */
61 63
62 /* SSP data pins */ 64 /* SSP data pins */
63 GPIO23_SSP1_SCLK, 65 GPIO23_SSP1_SCLK,
64 GPIO25_SSP1_TXD, 66 GPIO25_SSP1_TXD,
65 GPIO26_SSP1_RXD, 67 GPIO26_SSP1_RXD,
66 68
69 /* LCD - 16bpp DSTN */
70 GPIO58_LCD_LDD_0,
71 GPIO59_LCD_LDD_1,
72 GPIO60_LCD_LDD_2,
73 GPIO61_LCD_LDD_3,
74 GPIO62_LCD_LDD_4,
75 GPIO63_LCD_LDD_5,
76 GPIO64_LCD_LDD_6,
77 GPIO65_LCD_LDD_7,
78 GPIO66_LCD_LDD_8,
79 GPIO67_LCD_LDD_9,
80 GPIO68_LCD_LDD_10,
81 GPIO69_LCD_LDD_11,
82 GPIO70_LCD_LDD_12,
83 GPIO71_LCD_LDD_13,
84 GPIO72_LCD_LDD_14,
85 GPIO73_LCD_LDD_15,
86 GPIO74_LCD_FCLK,
87 GPIO75_LCD_LCLK,
88 GPIO76_LCD_PCLK,
89
67 /* BTUART */ 90 /* BTUART */
68 GPIO42_BTUART_RXD, 91 GPIO42_BTUART_RXD,
69 GPIO43_BTUART_TXD, 92 GPIO43_BTUART_TXD,
@@ -132,8 +155,7 @@ static void lubbock_irq_handler(unsigned int irq, struct irq_desc *desc)
132 GEDR(0) = GPIO_bit(0); /* clear our parent irq */ 155 GEDR(0) = GPIO_bit(0); /* clear our parent irq */
133 if (likely(pending)) { 156 if (likely(pending)) {
134 irq = LUBBOCK_IRQ(0) + __ffs(pending); 157 irq = LUBBOCK_IRQ(0) + __ffs(pending);
135 desc = irq_desc + irq; 158 generic_handle_irq(irq);
136 desc_handle_irq(irq, desc);
137 } 159 }
138 pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled; 160 pending = LUB_IRQ_SET_CLR & lubbock_irq_enabled;
139 } while (pending); 161 } while (pending);
diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c
index 143f28adaf95..519138bc5f85 100644
--- a/arch/arm/mach-pxa/magician.c
+++ b/arch/arm/mach-pxa/magician.c
@@ -409,7 +409,7 @@ static struct platform_device backlight = {
409 * LEDs 409 * LEDs
410 */ 410 */
411 411
412struct gpio_led gpio_leds[] = { 412static struct gpio_led gpio_leds[] = {
413 { 413 {
414 .name = "magician::vibra", 414 .name = "magician::vibra",
415 .default_trigger = "none", 415 .default_trigger = "none",
@@ -669,18 +669,10 @@ static struct pxamci_platform_data magician_mci_info = {
669 * USB OHCI 669 * USB OHCI
670 */ 670 */
671 671
672static int magician_ohci_init(struct device *dev)
673{
674 UHCHR = (UHCHR | UHCHR_SSEP2 | UHCHR_PCPL | UHCHR_CGR) &
675 ~(UHCHR_SSEP1 | UHCHR_SSEP3 | UHCHR_SSE);
676
677 return 0;
678}
679
680static struct pxaohci_platform_data magician_ohci_info = { 672static struct pxaohci_platform_data magician_ohci_info = {
681 .port_mode = PMM_PERPORT_MODE, 673 .port_mode = PMM_PERPORT_MODE,
682 .init = magician_ohci_init, 674 .flags = ENABLE_PORT1 | ENABLE_PORT3 | POWER_CONTROL_LOW,
683 .power_budget = 0, 675 .power_budget = 0,
684}; 676};
685 677
686 678
diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c
index d44af761564d..f2c7ad8f2b6b 100644
--- a/arch/arm/mach-pxa/mainstone.c
+++ b/arch/arm/mach-pxa/mainstone.c
@@ -162,8 +162,7 @@ static void mainstone_irq_handler(unsigned int irq, struct irq_desc *desc)
162 GEDR(0) = GPIO_bit(0); /* clear useless edge notification */ 162 GEDR(0) = GPIO_bit(0); /* clear useless edge notification */
163 if (likely(pending)) { 163 if (likely(pending)) {
164 irq = MAINSTONE_IRQ(0) + __ffs(pending); 164 irq = MAINSTONE_IRQ(0) + __ffs(pending);
165 desc = irq_desc + irq; 165 generic_handle_irq(irq);
166 desc_handle_irq(irq, desc);
167 } 166 }
168 pending = MST_INTSETCLR & mainstone_irq_enabled; 167 pending = MST_INTSETCLR & mainstone_irq_enabled;
169 } while (pending); 168 } while (pending);
@@ -508,19 +507,9 @@ static struct platform_device *platform_devices[] __initdata = {
508 &mst_gpio_keys_device, 507 &mst_gpio_keys_device,
509}; 508};
510 509
511static int mainstone_ohci_init(struct device *dev)
512{
513 /* Set the Power Control Polarity Low and Power Sense
514 Polarity Low to active low. */
515 UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) &
516 ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSEP3 | UHCHR_SSE);
517
518 return 0;
519}
520
521static struct pxaohci_platform_data mainstone_ohci_platform_data = { 510static struct pxaohci_platform_data mainstone_ohci_platform_data = {
522 .port_mode = PMM_PERPORT_MODE, 511 .port_mode = PMM_PERPORT_MODE,
523 .init = mainstone_ohci_init, 512 .flags = ENABLE_PORT_ALL | POWER_CONTROL_LOW | POWER_SENSE_LOW,
524}; 513};
525 514
526#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE) 515#if defined(CONFIG_KEYBOARD_PXA27x) || defined(CONFIG_KEYBOARD_PXA27x_MODULE)
diff --git a/arch/arm/mach-pxa/mfp-pxa2xx.c b/arch/arm/mach-pxa/mfp-pxa2xx.c
index 925575f10acf..2061c00c8ead 100644
--- a/arch/arm/mach-pxa/mfp-pxa2xx.c
+++ b/arch/arm/mach-pxa/mfp-pxa2xx.c
@@ -25,7 +25,12 @@
25 25
26#include "generic.h" 26#include "generic.h"
27 27
28#define PGSR(x) __REG2(0x40F00020, ((x) & 0x60) >> 3) 28#define gpio_to_bank(gpio) ((gpio) >> 5)
29
30#define PGSR(x) __REG2(0x40F00020, (x) << 2)
31#define __GAFR(u, x) __REG2((u) ? 0x40E00058 : 0x40E00054, (x) << 3)
32#define GAFR_L(x) __GAFR(0, x)
33#define GAFR_U(x) __GAFR(1, x)
29 34
30#define PWER_WE35 (1 << 24) 35#define PWER_WE35 (1 << 24)
31 36
@@ -38,49 +43,59 @@ struct gpio_desc {
38}; 43};
39 44
40static struct gpio_desc gpio_desc[MFP_PIN_GPIO127 + 1]; 45static struct gpio_desc gpio_desc[MFP_PIN_GPIO127 + 1];
46static int gpio_nr;
41 47
42static int __mfp_config_lpm(unsigned gpio, unsigned long lpm) 48static unsigned long gpdr_lpm[4];
43{
44 unsigned mask = GPIO_bit(gpio);
45
46 /* low power state */
47 switch (lpm) {
48 case MFP_LPM_DRIVE_HIGH:
49 PGSR(gpio) |= mask;
50 break;
51 case MFP_LPM_DRIVE_LOW:
52 PGSR(gpio) &= ~mask;
53 break;
54 case MFP_LPM_INPUT:
55 break;
56 default:
57 pr_warning("%s: invalid low power state for GPIO%d\n",
58 __func__, gpio);
59 return -EINVAL;
60 }
61 return 0;
62}
63 49
64static int __mfp_config_gpio(unsigned gpio, unsigned long c) 50static int __mfp_config_gpio(unsigned gpio, unsigned long c)
65{ 51{
66 unsigned long gafr, mask = GPIO_bit(gpio); 52 unsigned long gafr, mask = GPIO_bit(gpio);
67 int fn; 53 int bank = gpio_to_bank(gpio);
54 int uorl = !!(gpio & 0x10); /* GAFRx_U or GAFRx_L ? */
55 int shft = (gpio & 0xf) << 1;
56 int fn = MFP_AF(c);
57 int dir = c & MFP_DIR_OUT;
68 58
69 fn = MFP_AF(c);
70 if (fn > 3) 59 if (fn > 3)
71 return -EINVAL; 60 return -EINVAL;
72 61
73 /* alternate function and direction */ 62 /* alternate function and direction at run-time */
74 gafr = GAFR(gpio) & ~(0x3 << ((gpio & 0xf) * 2)); 63 gafr = (uorl == 0) ? GAFR_L(bank) : GAFR_U(bank);
75 GAFR(gpio) = gafr | (fn << ((gpio & 0xf) * 2)); 64 gafr = (gafr & ~(0x3 << shft)) | (fn << shft);
76 65
77 if (c & MFP_DIR_OUT) 66 if (uorl == 0)
67 GAFR_L(bank) = gafr;
68 else
69 GAFR_U(bank) = gafr;
70
71 if (dir == MFP_DIR_OUT)
78 GPDR(gpio) |= mask; 72 GPDR(gpio) |= mask;
79 else 73 else
80 GPDR(gpio) &= ~mask; 74 GPDR(gpio) &= ~mask;
81 75
82 if (__mfp_config_lpm(gpio, c & MFP_LPM_STATE_MASK)) 76 /* alternate function and direction at low power mode */
83 return -EINVAL; 77 switch (c & MFP_LPM_STATE_MASK) {
78 case MFP_LPM_DRIVE_HIGH:
79 PGSR(bank) |= mask;
80 dir = MFP_DIR_OUT;
81 break;
82 case MFP_LPM_DRIVE_LOW:
83 PGSR(bank) &= ~mask;
84 dir = MFP_DIR_OUT;
85 break;
86 case MFP_LPM_DEFAULT:
87 break;
88 default:
89 /* warning and fall through, treat as MFP_LPM_DEFAULT */
90 pr_warning("%s: GPIO%d: unsupported low power mode\n",
91 __func__, gpio);
92 break;
93 }
94
95 if (dir == MFP_DIR_OUT)
96 gpdr_lpm[bank] |= mask;
97 else
98 gpdr_lpm[bank] &= ~mask;
84 99
85 /* give early warning if MFP_LPM_CAN_WAKEUP is set on the 100 /* give early warning if MFP_LPM_CAN_WAKEUP is set on the
86 * configurations of those pins not able to wakeup 101 * configurations of those pins not able to wakeup
@@ -91,7 +106,7 @@ static int __mfp_config_gpio(unsigned gpio, unsigned long c)
91 return -EINVAL; 106 return -EINVAL;
92 } 107 }
93 108
94 if ((c & MFP_LPM_CAN_WAKEUP) && (c & MFP_DIR_OUT)) { 109 if ((c & MFP_LPM_CAN_WAKEUP) && (dir == MFP_DIR_OUT)) {
95 pr_warning("%s: output GPIO%d unable to wakeup\n", 110 pr_warning("%s: output GPIO%d unable to wakeup\n",
96 __func__, gpio); 111 __func__, gpio);
97 return -EINVAL; 112 return -EINVAL;
@@ -135,7 +150,7 @@ void pxa2xx_mfp_config(unsigned long *mfp_cfgs, int num)
135 150
136void pxa2xx_mfp_set_lpm(int mfp, unsigned long lpm) 151void pxa2xx_mfp_set_lpm(int mfp, unsigned long lpm)
137{ 152{
138 unsigned long flags; 153 unsigned long flags, c;
139 int gpio; 154 int gpio;
140 155
141 gpio = __mfp_validate(mfp); 156 gpio = __mfp_validate(mfp);
@@ -143,7 +158,11 @@ void pxa2xx_mfp_set_lpm(int mfp, unsigned long lpm)
143 return; 158 return;
144 159
145 local_irq_save(flags); 160 local_irq_save(flags);
146 __mfp_config_lpm(gpio, lpm); 161
162 c = gpio_desc[gpio].config;
163 c = (c & ~MFP_LPM_STATE_MASK) | lpm;
164 __mfp_config_gpio(gpio, c);
165
147 local_irq_restore(flags); 166 local_irq_restore(flags);
148} 167}
149 168
@@ -187,23 +206,22 @@ int gpio_set_wake(unsigned int gpio, unsigned int on)
187} 206}
188 207
189#ifdef CONFIG_PXA25x 208#ifdef CONFIG_PXA25x
190static int __init pxa25x_mfp_init(void) 209static void __init pxa25x_mfp_init(void)
191{ 210{
192 int i; 211 int i;
193 212
194 if (cpu_is_pxa25x()) { 213 for (i = 0; i <= 84; i++)
195 for (i = 0; i <= 84; i++) 214 gpio_desc[i].valid = 1;
196 gpio_desc[i].valid = 1;
197 215
198 for (i = 0; i <= 15; i++) { 216 for (i = 0; i <= 15; i++) {
199 gpio_desc[i].can_wakeup = 1; 217 gpio_desc[i].can_wakeup = 1;
200 gpio_desc[i].mask = GPIO_bit(i); 218 gpio_desc[i].mask = GPIO_bit(i);
201 }
202 } 219 }
203 220
204 return 0; 221 gpio_nr = 85;
205} 222}
206postcore_initcall(pxa25x_mfp_init); 223#else
224static inline void pxa25x_mfp_init(void) {}
207#endif /* CONFIG_PXA25x */ 225#endif /* CONFIG_PXA25x */
208 226
209#ifdef CONFIG_PXA27x 227#ifdef CONFIG_PXA27x
@@ -233,45 +251,106 @@ int keypad_set_wake(unsigned int on)
233 return 0; 251 return 0;
234} 252}
235 253
236static int __init pxa27x_mfp_init(void) 254static void __init pxa27x_mfp_init(void)
237{ 255{
238 int i, gpio; 256 int i, gpio;
239 257
240 if (cpu_is_pxa27x()) { 258 for (i = 0; i <= 120; i++) {
241 for (i = 0; i <= 120; i++) { 259 /* skip GPIO2, 5, 6, 7, 8, they are not
242 /* skip GPIO2, 5, 6, 7, 8, they are not 260 * valid pins allow configuration
243 * valid pins allow configuration 261 */
244 */ 262 if (i == 2 || i == 5 || i == 6 || i == 7 || i == 8)
245 if (i == 2 || i == 5 || i == 6 || 263 continue;
246 i == 7 || i == 8)
247 continue;
248 264
249 gpio_desc[i].valid = 1; 265 gpio_desc[i].valid = 1;
250 } 266 }
251 267
252 /* Keypad GPIOs */ 268 /* Keypad GPIOs */
253 for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) { 269 for (i = 0; i < ARRAY_SIZE(pxa27x_pkwr_gpio); i++) {
254 gpio = pxa27x_pkwr_gpio[i]; 270 gpio = pxa27x_pkwr_gpio[i];
255 gpio_desc[gpio].can_wakeup = 1; 271 gpio_desc[gpio].can_wakeup = 1;
256 gpio_desc[gpio].keypad_gpio = 1; 272 gpio_desc[gpio].keypad_gpio = 1;
257 gpio_desc[gpio].mask = 1 << i; 273 gpio_desc[gpio].mask = 1 << i;
258 } 274 }
259 275
260 /* Overwrite GPIO13 as a PWER wakeup source */ 276 /* Overwrite GPIO13 as a PWER wakeup source */
261 for (i = 0; i <= 15; i++) { 277 for (i = 0; i <= 15; i++) {
262 /* skip GPIO2, 5, 6, 7, 8 */ 278 /* skip GPIO2, 5, 6, 7, 8 */
263 if (GPIO_bit(i) & 0x1e4) 279 if (GPIO_bit(i) & 0x1e4)
264 continue; 280 continue;
265 281
266 gpio_desc[i].can_wakeup = 1; 282 gpio_desc[i].can_wakeup = 1;
267 gpio_desc[i].mask = GPIO_bit(i); 283 gpio_desc[i].mask = GPIO_bit(i);
268 } 284 }
285
286 gpio_desc[35].can_wakeup = 1;
287 gpio_desc[35].mask = PWER_WE35;
288
289 gpio_nr = 121;
290}
291#else
292static inline void pxa27x_mfp_init(void) {}
293#endif /* CONFIG_PXA27x */
294
295#ifdef CONFIG_PM
296static unsigned long saved_gafr[2][4];
297static unsigned long saved_gpdr[4];
269 298
270 gpio_desc[35].can_wakeup = 1; 299static int pxa2xx_mfp_suspend(struct sys_device *d, pm_message_t state)
271 gpio_desc[35].mask = PWER_WE35; 300{
301 int i;
302
303 for (i = 0; i <= gpio_to_bank(gpio_nr); i++) {
304
305 saved_gafr[0][i] = GAFR_L(i);
306 saved_gafr[1][i] = GAFR_U(i);
307 saved_gpdr[i] = GPDR(i * 32);
308
309 GPDR(i * 32) = gpdr_lpm[i];
272 } 310 }
311 return 0;
312}
273 313
314static int pxa2xx_mfp_resume(struct sys_device *d)
315{
316 int i;
317
318 for (i = 0; i <= gpio_to_bank(gpio_nr); i++) {
319 GAFR_L(i) = saved_gafr[0][i];
320 GAFR_U(i) = saved_gafr[1][i];
321 GPDR(i * 32) = saved_gpdr[i];
322 }
323 PSSR = PSSR_RDH | PSSR_PH;
274 return 0; 324 return 0;
275} 325}
276postcore_initcall(pxa27x_mfp_init); 326#else
277#endif /* CONFIG_PXA27x */ 327#define pxa2xx_mfp_suspend NULL
328#define pxa2xx_mfp_resume NULL
329#endif
330
331struct sysdev_class pxa2xx_mfp_sysclass = {
332 .name = "mfp",
333 .suspend = pxa2xx_mfp_suspend,
334 .resume = pxa2xx_mfp_resume,
335};
336
337static int __init pxa2xx_mfp_init(void)
338{
339 int i;
340
341 if (!cpu_is_pxa2xx())
342 return 0;
343
344 if (cpu_is_pxa25x())
345 pxa25x_mfp_init();
346
347 if (cpu_is_pxa27x())
348 pxa27x_mfp_init();
349
350 /* initialize gafr_run[], pgsr_lpm[] from existing values */
351 for (i = 0; i <= gpio_to_bank(gpio_nr); i++)
352 gpdr_lpm[i] = GPDR(i * 32);
353
354 return sysdev_class_register(&pxa2xx_mfp_sysclass);
355}
356postcore_initcall(pxa2xx_mfp_init);
diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c
new file mode 100644
index 000000000000..0842c531ee4d
--- /dev/null
+++ b/arch/arm/mach-pxa/mioa701.c
@@ -0,0 +1,905 @@
1/*
2 * Handles the Mitac Mio A701 Board
3 *
4 * Copyright (C) 2008 Robert Jarzmik
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 */
21
22#include <linux/kernel.h>
23#include <linux/init.h>
24#include <linux/platform_device.h>
25#include <linux/sysdev.h>
26#include <linux/input.h>
27#include <linux/delay.h>
28#include <linux/gpio_keys.h>
29#include <linux/pwm_backlight.h>
30#include <linux/rtc.h>
31#include <linux/leds.h>
32#include <linux/gpio.h>
33#include <linux/interrupt.h>
34#include <linux/irq.h>
35#include <linux/pda_power.h>
36#include <linux/power_supply.h>
37#include <linux/wm97xx.h>
38#include <linux/mtd/physmap.h>
39
40#include <asm/mach-types.h>
41#include <asm/mach/arch.h>
42#include <mach/mfp-pxa27x.h>
43#include <mach/pxa27x_keypad.h>
44#include <mach/pxafb.h>
45#include <mach/pxa2xx-regs.h>
46#include <mach/mmc.h>
47#include <mach/udc.h>
48#include <mach/pxa27x-udc.h>
49
50#include <mach/mioa701.h>
51
52#include "generic.h"
53#include "devices.h"
54
55static unsigned long mioa701_pin_config[] = {
56 /* Mio global */
57 MIO_CFG_OUT(GPIO9_CHARGE_nEN, AF0, DRIVE_LOW),
58 MIO_CFG_OUT(GPIO18_POWEROFF, AF0, DRIVE_LOW),
59 MFP_CFG_OUT(GPIO3, AF0, DRIVE_HIGH),
60 MFP_CFG_OUT(GPIO4, AF0, DRIVE_HIGH),
61
62 /* Backlight PWM 0 */
63 GPIO16_PWM0_OUT,
64
65 /* MMC */
66 GPIO32_MMC_CLK,
67 GPIO92_MMC_DAT_0,
68 GPIO109_MMC_DAT_1,
69 GPIO110_MMC_DAT_2,
70 GPIO111_MMC_DAT_3,
71 GPIO112_MMC_CMD,
72 MIO_CFG_IN(GPIO78_SDIO_RO, AF0),
73 MIO_CFG_IN(GPIO15_SDIO_INSERT, AF0),
74 MIO_CFG_OUT(GPIO91_SDIO_EN, AF0, DRIVE_LOW),
75
76 /* USB */
77 MIO_CFG_IN(GPIO13_USB_DETECT, AF0),
78 MIO_CFG_OUT(GPIO22_USB_ENABLE, AF0, DRIVE_LOW),
79
80 /* LCD */
81 GPIO58_LCD_LDD_0,
82 GPIO59_LCD_LDD_1,
83 GPIO60_LCD_LDD_2,
84 GPIO61_LCD_LDD_3,
85 GPIO62_LCD_LDD_4,
86 GPIO63_LCD_LDD_5,
87 GPIO64_LCD_LDD_6,
88 GPIO65_LCD_LDD_7,
89 GPIO66_LCD_LDD_8,
90 GPIO67_LCD_LDD_9,
91 GPIO68_LCD_LDD_10,
92 GPIO69_LCD_LDD_11,
93 GPIO70_LCD_LDD_12,
94 GPIO71_LCD_LDD_13,
95 GPIO72_LCD_LDD_14,
96 GPIO73_LCD_LDD_15,
97 GPIO74_LCD_FCLK,
98 GPIO75_LCD_LCLK,
99 GPIO76_LCD_PCLK,
100
101 /* Bluetooth */
102 GPIO44_BTUART_CTS,
103 GPIO42_BTUART_RXD,
104 GPIO45_BTUART_RTS,
105 GPIO43_BTUART_TXD,
106 MIO_CFG_OUT(GPIO83_BT_ON, AF0, DRIVE_LOW),
107
108 /* GPS */
109 MIO_CFG_OUT(GPIO23_GPS_UNKNOWN1, AF0, DRIVE_LOW),
110 MIO_CFG_OUT(GPIO26_GPS_ON, AF0, DRIVE_LOW),
111 MIO_CFG_OUT(GPIO27_GPS_RESET, AF0, DRIVE_LOW),
112 MIO_CFG_OUT(GPIO106_GPS_UNKNOWN2, AF0, DRIVE_LOW),
113 MIO_CFG_OUT(GPIO107_GPS_UNKNOWN3, AF0, DRIVE_LOW),
114 GPIO46_STUART_RXD,
115 GPIO47_STUART_TXD,
116
117 /* GSM */
118 MIO_CFG_OUT(GPIO24_GSM_MOD_RESET_CMD, AF0, DRIVE_LOW),
119 MIO_CFG_OUT(GPIO88_GSM_nMOD_ON_CMD, AF0, DRIVE_HIGH),
120 MIO_CFG_OUT(GPIO90_GSM_nMOD_OFF_CMD, AF0, DRIVE_HIGH),
121 MIO_CFG_OUT(GPIO114_GSM_nMOD_DTE_UART_STATE, AF0, DRIVE_HIGH),
122 MIO_CFG_IN(GPIO25_GSM_MOD_ON_STATE, AF0),
123 MIO_CFG_IN(GPIO113_GSM_EVENT, AF0) | WAKEUP_ON_EDGE_BOTH,
124 GPIO34_FFUART_RXD,
125 GPIO35_FFUART_CTS,
126 GPIO36_FFUART_DCD,
127 GPIO37_FFUART_DSR,
128 GPIO39_FFUART_TXD,
129 GPIO40_FFUART_DTR,
130 GPIO41_FFUART_RTS,
131
132 /* Sound */
133 GPIO89_AC97_SYSCLK,
134 MIO_CFG_IN(GPIO12_HPJACK_INSERT, AF0),
135
136 /* Leds */
137 MIO_CFG_OUT(GPIO10_LED_nCharging, AF0, DRIVE_HIGH),
138 MIO_CFG_OUT(GPIO97_LED_nBlue, AF0, DRIVE_HIGH),
139 MIO_CFG_OUT(GPIO98_LED_nOrange, AF0, DRIVE_HIGH),
140 MIO_CFG_OUT(GPIO82_LED_nVibra, AF0, DRIVE_HIGH),
141 MIO_CFG_OUT(GPIO115_LED_nKeyboard, AF0, DRIVE_HIGH),
142
143 /* Keyboard */
144 MIO_CFG_IN(GPIO0_KEY_POWER, AF0) | WAKEUP_ON_EDGE_BOTH,
145 MIO_CFG_IN(GPIO93_KEY_VOLUME_UP, AF0),
146 MIO_CFG_IN(GPIO94_KEY_VOLUME_DOWN, AF0),
147 GPIO100_KP_MKIN_0,
148 GPIO101_KP_MKIN_1,
149 GPIO102_KP_MKIN_2,
150 GPIO103_KP_MKOUT_0,
151 GPIO104_KP_MKOUT_1,
152 GPIO105_KP_MKOUT_2,
153
154 /* Unknown */
155 MFP_CFG_IN(GPIO14, AF0),
156 MFP_CFG_IN(GPIO20, AF0),
157 MFP_CFG_IN(GPIO21, AF0),
158 MFP_CFG_IN(GPIO33, AF0),
159 MFP_CFG_OUT(GPIO49, AF0, DRIVE_HIGH),
160 MFP_CFG_OUT(GPIO57, AF0, DRIVE_HIGH),
161 MFP_CFG_OUT(GPIO77, AF0, DRIVE_HIGH),
162 MFP_CFG_IN(GPIO80, AF0),
163 MFP_CFG_OUT(GPIO86, AF0, DRIVE_HIGH),
164 MFP_CFG_IN(GPIO96, AF0),
165 MFP_CFG_OUT(GPIO116, AF0, DRIVE_HIGH),
166};
167
168#define MIO_GPIO_IN(num, _desc) \
169 { .gpio = (num), .dir = 0, .desc = (_desc) }
170#define MIO_GPIO_OUT(num, _init, _desc) \
171 { .gpio = (num), .dir = 1, .init = (_init), .desc = (_desc) }
172struct gpio_ress {
173 unsigned gpio : 8;
174 unsigned dir : 1;
175 unsigned init : 1;
176 char *desc;
177};
178
179static int mio_gpio_request(struct gpio_ress *gpios, int size)
180{
181 int i, rc = 0;
182 int gpio;
183 int dir;
184
185 for (i = 0; (!rc) && (i < size); i++) {
186 gpio = gpios[i].gpio;
187 dir = gpios[i].dir;
188 rc = gpio_request(gpio, gpios[i].desc);
189 if (rc) {
190 printk(KERN_ERR "Error requesting GPIO %d(%s) : %d\n",
191 gpio, gpios[i].desc, rc);
192 continue;
193 }
194 if (dir)
195 gpio_direction_output(gpio, gpios[i].init);
196 else
197 gpio_direction_input(gpio);
198 }
199 while ((rc) && (--i >= 0))
200 gpio_free(gpios[i].gpio);
201 return rc;
202}
203
204static void mio_gpio_free(struct gpio_ress *gpios, int size)
205{
206 int i;
207
208 for (i = 0; i < size; i++)
209 gpio_free(gpios[i].gpio);
210}
211
212/* LCD Screen and Backlight */
213static struct platform_pwm_backlight_data mioa701_backlight_data = {
214 .pwm_id = 0,
215 .max_brightness = 100,
216 .dft_brightness = 50,
217 .pwm_period_ns = 4000 * 1024, /* Fl = 250kHz */
218};
219
220/*
221 * LTM0305A776C LCD panel timings
222 *
223 * see:
224 * - the LTM0305A776C datasheet,
225 * - and the PXA27x Programmers' manual
226 */
227static struct pxafb_mode_info mioa701_ltm0305a776c = {
228 .pixclock = 220000, /* CLK=4.545 MHz */
229 .xres = 240,
230 .yres = 320,
231 .bpp = 16,
232 .hsync_len = 4,
233 .vsync_len = 2,
234 .left_margin = 6,
235 .right_margin = 4,
236 .upper_margin = 5,
237 .lower_margin = 3,
238};
239
240static void mioa701_lcd_power(int on, struct fb_var_screeninfo *si)
241{
242 gpio_set_value(GPIO87_LCD_POWER, on);
243}
244
245static struct pxafb_mach_info mioa701_pxafb_info = {
246 .modes = &mioa701_ltm0305a776c,
247 .num_modes = 1,
248 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
249 .pxafb_lcd_power = mioa701_lcd_power,
250};
251
252/*
253 * Keyboard configuration
254 */
255static unsigned int mioa701_matrix_keys[] = {
256 KEY(0, 0, KEY_UP),
257 KEY(0, 1, KEY_RIGHT),
258 KEY(0, 2, KEY_MEDIA),
259 KEY(1, 0, KEY_DOWN),
260 KEY(1, 1, KEY_ENTER),
261 KEY(1, 2, KEY_CONNECT), /* GPS key */
262 KEY(2, 0, KEY_LEFT),
263 KEY(2, 1, KEY_PHONE), /* Phone Green key */
264 KEY(2, 2, KEY_CAMERA) /* Camera key */
265};
266static struct pxa27x_keypad_platform_data mioa701_keypad_info = {
267 .matrix_key_rows = 3,
268 .matrix_key_cols = 3,
269 .matrix_key_map = mioa701_matrix_keys,
270 .matrix_key_map_size = ARRAY_SIZE(mioa701_matrix_keys),
271};
272
273/*
274 * GPIO Key Configuration
275 */
276#define MIO_KEY(key, _gpio, _desc, _wakeup) \
277 { .code = (key), .gpio = (_gpio), .active_low = 0, \
278 .desc = (_desc), .type = EV_KEY, .wakeup = (_wakeup) }
279static struct gpio_keys_button mioa701_button_table[] = {
280 MIO_KEY(KEY_EXIT, GPIO0_KEY_POWER, "Power button", 1),
281 MIO_KEY(KEY_VOLUMEUP, GPIO93_KEY_VOLUME_UP, "Volume up", 0),
282 MIO_KEY(KEY_VOLUMEDOWN, GPIO94_KEY_VOLUME_DOWN, "Volume down", 0),
283 MIO_KEY(KEY_HP, GPIO12_HPJACK_INSERT, "HP jack detect", 0)
284};
285
286static struct gpio_keys_platform_data mioa701_gpio_keys_data = {
287 .buttons = mioa701_button_table,
288 .nbuttons = ARRAY_SIZE(mioa701_button_table),
289};
290
291/*
292 * Leds and vibrator
293 */
294#define ONE_LED(_gpio, _name) \
295{ .gpio = (_gpio), .name = (_name), .active_low = true }
296static struct gpio_led gpio_leds[] = {
297 ONE_LED(GPIO10_LED_nCharging, "mioa701:charging"),
298 ONE_LED(GPIO97_LED_nBlue, "mioa701:blue"),
299 ONE_LED(GPIO98_LED_nOrange, "mioa701:orange"),
300 ONE_LED(GPIO82_LED_nVibra, "mioa701:vibra"),
301 ONE_LED(GPIO115_LED_nKeyboard, "mioa701:keyboard")
302};
303
304static struct gpio_led_platform_data gpio_led_info = {
305 .leds = gpio_leds,
306 .num_leds = ARRAY_SIZE(gpio_leds),
307};
308
309/*
310 * GSM Sagem XS200 chip
311 *
312 * GSM handling was purged from kernel. For history, this is the way to go :
313 * - init : GPIO24_GSM_MOD_RESET_CMD = 0, GPIO114_GSM_nMOD_DTE_UART_STATE = 1
314 * GPIO88_GSM_nMOD_ON_CMD = 1, GPIO90_GSM_nMOD_OFF_CMD = 1
315 * - reset : GPIO24_GSM_MOD_RESET_CMD = 1, msleep(100),
316 * GPIO24_GSM_MOD_RESET_CMD = 0
317 * - turn on : GPIO88_GSM_nMOD_ON_CMD = 0, msleep(1000),
318 * GPIO88_GSM_nMOD_ON_CMD = 1
319 * - turn off : GPIO90_GSM_nMOD_OFF_CMD = 0, msleep(1000),
320 * GPIO90_GSM_nMOD_OFF_CMD = 1
321 */
322static int is_gsm_on(void)
323{
324 int is_on;
325
326 is_on = !!gpio_get_value(GPIO25_GSM_MOD_ON_STATE);
327 return is_on;
328}
329
330irqreturn_t gsm_on_irq(int irq, void *p)
331{
332 printk(KERN_DEBUG "Mioa701: GSM status changed to %s\n",
333 is_gsm_on() ? "on" : "off");
334 return IRQ_HANDLED;
335}
336
337struct gpio_ress gsm_gpios[] = {
338 MIO_GPIO_IN(GPIO25_GSM_MOD_ON_STATE, "GSM state"),
339 MIO_GPIO_IN(GPIO113_GSM_EVENT, "GSM event"),
340};
341
342static int __init gsm_init(void)
343{
344 int rc;
345
346 rc = mio_gpio_request(ARRAY_AND_SIZE(gsm_gpios));
347 if (rc)
348 goto err_gpio;
349 rc = request_irq(gpio_to_irq(GPIO25_GSM_MOD_ON_STATE), gsm_on_irq,
350 IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
351 "GSM XS200 Power Irq", NULL);
352 if (rc)
353 goto err_irq;
354
355 gpio_set_wake(GPIO113_GSM_EVENT, 1);
356 return 0;
357
358err_irq:
359 printk(KERN_ERR "Mioa701: Can't request GSM_ON irq\n");
360 mio_gpio_free(ARRAY_AND_SIZE(gsm_gpios));
361err_gpio:
362 printk(KERN_ERR "Mioa701: gsm not available\n");
363 return rc;
364}
365
366static void gsm_exit(void)
367{
368 free_irq(gpio_to_irq(GPIO25_GSM_MOD_ON_STATE), NULL);
369 mio_gpio_free(ARRAY_AND_SIZE(gsm_gpios));
370}
371
372/*
373 * Bluetooth BRF6150 chip
374 *
375 * BT handling was purged from kernel. For history, this is the way to go :
376 * - turn on : GPIO83_BT_ON = 1
377 * - turn off : GPIO83_BT_ON = 0
378 */
379
380/*
381 * GPS Sirf Star III chip
382 *
383 * GPS handling was purged from kernel. For history, this is the way to go :
384 * - init : GPIO23_GPS_UNKNOWN1 = 1, GPIO26_GPS_ON = 0, GPIO27_GPS_RESET = 0
385 * GPIO106_GPS_UNKNOWN2 = 0, GPIO107_GPS_UNKNOWN3 = 0
386 * - turn on : GPIO27_GPS_RESET = 1, GPIO26_GPS_ON = 1
387 * - turn off : GPIO26_GPS_ON = 0, GPIO27_GPS_RESET = 0
388 */
389
390/*
391 * USB UDC
392 */
393static void udc_power_command(int cmd)
394{
395 switch (cmd) {
396 case PXA2XX_UDC_CMD_DISCONNECT:
397 gpio_set_value(GPIO22_USB_ENABLE, 0);
398 break;
399 case PXA2XX_UDC_CMD_CONNECT:
400 gpio_set_value(GPIO22_USB_ENABLE, 1);
401 break;
402 default:
403 printk(KERN_INFO "udc_control: unknown command (0x%x)!\n", cmd);
404 break;
405 }
406}
407
408static int is_usb_connected(void)
409{
410 return !!gpio_get_value(GPIO13_USB_DETECT);
411}
412
413static struct pxa2xx_udc_mach_info mioa701_udc_info = {
414 .udc_is_connected = is_usb_connected,
415 .udc_command = udc_power_command,
416};
417
418struct gpio_ress udc_gpios[] = {
419 MIO_GPIO_OUT(GPIO22_USB_ENABLE, 0, "USB Vbus enable")
420};
421
422static int __init udc_init(void)
423{
424 pxa_set_udc_info(&mioa701_udc_info);
425 return mio_gpio_request(ARRAY_AND_SIZE(udc_gpios));
426}
427
428static void udc_exit(void)
429{
430 mio_gpio_free(ARRAY_AND_SIZE(udc_gpios));
431}
432
433/*
434 * SDIO/MMC Card controller
435 */
436static void mci_setpower(struct device *dev, unsigned int vdd)
437{
438 struct pxamci_platform_data *p_d = dev->platform_data;
439
440 if ((1 << vdd) & p_d->ocr_mask)
441 gpio_set_value(GPIO91_SDIO_EN, 1); /* enable SDIO power */
442 else
443 gpio_set_value(GPIO91_SDIO_EN, 0); /* disable SDIO power */
444}
445
446static int mci_get_ro(struct device *dev)
447{
448 return gpio_get_value(GPIO78_SDIO_RO);
449}
450
451struct gpio_ress mci_gpios[] = {
452 MIO_GPIO_IN(GPIO78_SDIO_RO, "SDIO readonly detect"),
453 MIO_GPIO_IN(GPIO15_SDIO_INSERT, "SDIO insertion detect"),
454 MIO_GPIO_OUT(GPIO91_SDIO_EN, 0, "SDIO power enable")
455};
456
457static void mci_exit(struct device *dev, void *data)
458{
459 mio_gpio_free(ARRAY_AND_SIZE(mci_gpios));
460 free_irq(gpio_to_irq(GPIO15_SDIO_INSERT), data);
461}
462
463static struct pxamci_platform_data mioa701_mci_info;
464
465/**
466 * The card detect interrupt isn't debounced so we delay it by 250ms
467 * to give the card a chance to fully insert/eject.
468 */
469static int mci_init(struct device *dev, irq_handler_t detect_int, void *data)
470{
471 int rc;
472 int irq = gpio_to_irq(GPIO15_SDIO_INSERT);
473
474 rc = mio_gpio_request(ARRAY_AND_SIZE(mci_gpios));
475 if (rc)
476 goto err_gpio;
477 /* enable RE/FE interrupt on card insertion and removal */
478 rc = request_irq(irq, detect_int,
479 IRQF_DISABLED | IRQF_TRIGGER_RISING |
480 IRQF_TRIGGER_FALLING,
481 "MMC card detect", data);
482 if (rc)
483 goto err_irq;
484
485 mioa701_mci_info.detect_delay = msecs_to_jiffies(250);
486 return 0;
487
488err_irq:
489 dev_err(dev, "mioa701_mci_init: MMC/SD:"
490 " can't request MMC card detect IRQ\n");
491 mio_gpio_free(ARRAY_AND_SIZE(mci_gpios));
492err_gpio:
493 return rc;
494}
495
496static struct pxamci_platform_data mioa701_mci_info = {
497 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
498 .init = mci_init,
499 .get_ro = mci_get_ro,
500 .setpower = mci_setpower,
501 .exit = mci_exit,
502};
503
504/* FlashRAM */
505static struct resource strataflash_resource = {
506 .start = PXA_CS0_PHYS,
507 .end = PXA_CS0_PHYS + SZ_64M - 1,
508 .flags = IORESOURCE_MEM,
509};
510
511static struct physmap_flash_data strataflash_data = {
512 .width = 2,
513 /* .set_vpp = mioa701_set_vpp, */
514};
515
516static struct platform_device strataflash = {
517 .name = "physmap-flash",
518 .id = -1,
519 .resource = &strataflash_resource,
520 .num_resources = 1,
521 .dev = {
522 .platform_data = &strataflash_data,
523 },
524};
525
526/*
527 * Suspend/Resume bootstrap management
528 *
529 * MIO A701 reboot sequence is highly ROM dependant. From the one dissassembled,
530 * this sequence is as follows :
531 * - disables interrupts
532 * - initialize SDRAM (self refresh RAM into active RAM)
533 * - initialize GPIOs (depends on value at 0xa020b020)
534 * - initialize coprossessors
535 * - if edge detect on PWR_SCL(GPIO3), then proceed to cold start
536 * - or if value at 0xa020b000 not equal to 0x0f0f0f0f, proceed to cold start
537 * - else do a resume, ie. jump to addr 0xa0100000
538 */
539#define RESUME_ENABLE_ADDR 0xa020b000
540#define RESUME_ENABLE_VAL 0x0f0f0f0f
541#define RESUME_BT_ADDR 0xa020b020
542#define RESUME_UNKNOWN_ADDR 0xa020b024
543#define RESUME_VECTOR_ADDR 0xa0100000
544#define BOOTSTRAP_WORDS mioa701_bootstrap_lg/4
545
546static u32 *save_buffer;
547
548static void install_bootstrap(void)
549{
550 int i;
551 u32 *rom_bootstrap = phys_to_virt(RESUME_VECTOR_ADDR);
552 u32 *src = &mioa701_bootstrap;
553
554 for (i = 0; i < BOOTSTRAP_WORDS; i++)
555 rom_bootstrap[i] = src[i];
556}
557
558
559static int mioa701_sys_suspend(struct sys_device *sysdev, pm_message_t state)
560{
561 int i = 0, is_bt_on;
562 u32 *mem_resume_vector = phys_to_virt(RESUME_VECTOR_ADDR);
563 u32 *mem_resume_enabler = phys_to_virt(RESUME_ENABLE_ADDR);
564 u32 *mem_resume_bt = phys_to_virt(RESUME_BT_ADDR);
565 u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR);
566
567 /* Devices prepare suspend */
568 is_bt_on = gpio_get_value(GPIO83_BT_ON);
569 pxa2xx_mfp_set_lpm(GPIO83_BT_ON,
570 is_bt_on ? MFP_LPM_DRIVE_HIGH : MFP_LPM_DRIVE_LOW);
571
572 for (i = 0; i < BOOTSTRAP_WORDS; i++)
573 save_buffer[i] = mem_resume_vector[i];
574 save_buffer[i++] = *mem_resume_enabler;
575 save_buffer[i++] = *mem_resume_bt;
576 save_buffer[i++] = *mem_resume_unknown;
577
578 *mem_resume_enabler = RESUME_ENABLE_VAL;
579 *mem_resume_bt = is_bt_on;
580
581 install_bootstrap();
582 return 0;
583}
584
585static int mioa701_sys_resume(struct sys_device *sysdev)
586{
587 int i = 0;
588 u32 *mem_resume_vector = phys_to_virt(RESUME_VECTOR_ADDR);
589 u32 *mem_resume_enabler = phys_to_virt(RESUME_ENABLE_ADDR);
590 u32 *mem_resume_bt = phys_to_virt(RESUME_BT_ADDR);
591 u32 *mem_resume_unknown = phys_to_virt(RESUME_UNKNOWN_ADDR);
592
593 for (i = 0; i < BOOTSTRAP_WORDS; i++)
594 mem_resume_vector[i] = save_buffer[i];
595 *mem_resume_enabler = save_buffer[i++];
596 *mem_resume_bt = save_buffer[i++];
597 *mem_resume_unknown = save_buffer[i++];
598
599 return 0;
600}
601
602static struct sysdev_class mioa701_sysclass = {
603 .name = "mioa701",
604};
605
606static struct sys_device sysdev_bootstrap = {
607 .cls = &mioa701_sysclass,
608};
609
610static struct sysdev_driver driver_bootstrap = {
611 .suspend = &mioa701_sys_suspend,
612 .resume = &mioa701_sys_resume,
613};
614
615static int __init bootstrap_init(void)
616{
617 int rc;
618 int save_size = mioa701_bootstrap_lg + (sizeof(u32) * 3);
619
620 rc = sysdev_class_register(&mioa701_sysclass);
621 if (rc) {
622 printk(KERN_ERR "Failed registering mioa701 sys class\n");
623 return -ENODEV;
624 }
625 rc = sysdev_register(&sysdev_bootstrap);
626 if (rc) {
627 printk(KERN_ERR "Failed registering mioa701 sys device\n");
628 return -ENODEV;
629 }
630 rc = sysdev_driver_register(&mioa701_sysclass, &driver_bootstrap);
631 if (rc) {
632 printk(KERN_ERR "Failed registering PMU sys driver\n");
633 return -ENODEV;
634 }
635
636 save_buffer = kmalloc(save_size, GFP_KERNEL);
637 if (!save_buffer)
638 return -ENOMEM;
639 printk(KERN_INFO "MioA701: allocated %d bytes for bootstrap\n",
640 save_size);
641 return 0;
642}
643
644static void bootstrap_exit(void)
645{
646 kfree(save_buffer);
647 sysdev_driver_unregister(&mioa701_sysclass, &driver_bootstrap);
648 sysdev_unregister(&sysdev_bootstrap);
649 sysdev_class_unregister(&mioa701_sysclass);
650
651 printk(KERN_CRIT "Unregistering mioa701 suspend will hang next"
652 "resume !!!\n");
653}
654
655/*
656 * Power Supply
657 */
658static char *supplicants[] = {
659 "mioa701_battery"
660};
661
662static void mioa701_set_charge(int flags)
663{
664 gpio_set_value(GPIO9_CHARGE_nEN, !flags);
665}
666
667static struct pda_power_pdata power_pdata = {
668 .is_ac_online = is_usb_connected,
669 .set_charge = mioa701_set_charge,
670 .supplied_to = supplicants,
671 .num_supplicants = ARRAY_SIZE(supplicants),
672};
673
674static struct resource power_resources[] = {
675 [0] = {
676 .name = "ac",
677 .start = gpio_to_irq(GPIO13_USB_DETECT),
678 .end = gpio_to_irq(GPIO13_USB_DETECT),
679 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE |
680 IORESOURCE_IRQ_LOWEDGE,
681 },
682};
683
684static struct platform_device power_dev = {
685 .name = "pda-power",
686 .id = -1,
687 .resource = power_resources,
688 .num_resources = ARRAY_SIZE(power_resources),
689 .dev = {
690 .platform_data = &power_pdata,
691 },
692};
693
694#if defined(CONFIG_PDA_POWER) && defined(CONFIG_TOUCHSCREEN_WM97XX)
695static struct wm97xx *battery_wm;
696
697static enum power_supply_property battery_props[] = {
698 POWER_SUPPLY_PROP_STATUS,
699 POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN,
700 POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
701 POWER_SUPPLY_PROP_VOLTAGE_NOW,
702 POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN, /* Necessary for apm */
703};
704
705static int get_battery_voltage(void)
706{
707 int adc = -1;
708
709 if (battery_wm)
710 adc = wm97xx_read_aux_adc(battery_wm, WM97XX_AUX_ID1);
711 return adc;
712}
713
714static int get_battery_status(struct power_supply *b)
715{
716 int status;
717
718 if (is_usb_connected())
719 status = POWER_SUPPLY_STATUS_CHARGING;
720 else
721 status = POWER_SUPPLY_STATUS_DISCHARGING;
722
723 return status;
724}
725
726static int get_property(struct power_supply *b,
727 enum power_supply_property psp,
728 union power_supply_propval *val)
729{
730 int rc = 0;
731
732 switch (psp) {
733 case POWER_SUPPLY_PROP_STATUS:
734 val->intval = get_battery_status(b);
735 break;
736 case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
737 val->intval = 0xfd0;
738 break;
739 case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
740 val->intval = 0xc00;
741 break;
742 case POWER_SUPPLY_PROP_VOLTAGE_NOW:
743 val->intval = get_battery_voltage();
744 break;
745 case POWER_SUPPLY_PROP_CHARGE_FULL_DESIGN:
746 val->intval = 100;
747 break;
748 default:
749 val->intval = -1;
750 rc = -1;
751 }
752
753 return rc;
754};
755
756static struct power_supply battery_ps = {
757 .name = "mioa701_battery",
758 .type = POWER_SUPPLY_TYPE_BATTERY,
759 .get_property = get_property,
760 .properties = battery_props,
761 .num_properties = ARRAY_SIZE(battery_props),
762};
763
764static int battery_probe(struct platform_device *pdev)
765{
766 struct wm97xx *wm = platform_get_drvdata(pdev);
767 int rc;
768
769 battery_wm = wm;
770
771 rc = power_supply_register(NULL, &battery_ps);
772 if (rc)
773 dev_err(&pdev->dev,
774 "Could not register mioa701 battery -> %d\n", rc);
775 return rc;
776}
777
778static int battery_remove(struct platform_device *pdev)
779{
780 battery_wm = NULL;
781 return 0;
782}
783
784static struct platform_driver mioa701_battery_driver = {
785 .driver = {
786 .name = "wm97xx-battery",
787 },
788 .probe = battery_probe,
789 .remove = battery_remove
790};
791
792static int __init mioa701_battery_init(void)
793{
794 int rc;
795
796 rc = platform_driver_register(&mioa701_battery_driver);
797 if (rc)
798 printk(KERN_ERR "Could not register mioa701 battery driver\n");
799 return rc;
800}
801
802#else
803static int __init mioa701_battery_init(void)
804{
805 return 0;
806}
807#endif
808
809/*
810 * Mio global
811 */
812
813/* Devices */
814#define MIO_PARENT_DEV(var, strname, tparent, pdata) \
815static struct platform_device var = { \
816 .name = strname, \
817 .id = -1, \
818 .dev = { \
819 .platform_data = pdata, \
820 .parent = tparent, \
821 }, \
822};
823#define MIO_SIMPLE_DEV(var, strname, pdata) \
824 MIO_PARENT_DEV(var, strname, NULL, pdata)
825
826MIO_SIMPLE_DEV(mioa701_gpio_keys, "gpio-keys", &mioa701_gpio_keys_data)
827MIO_PARENT_DEV(mioa701_backlight, "pwm-backlight", &pxa27x_device_pwm0.dev,
828 &mioa701_backlight_data);
829MIO_SIMPLE_DEV(mioa701_led, "leds-gpio", &gpio_led_info)
830MIO_SIMPLE_DEV(pxa2xx_pcm, "pxa2xx-pcm", NULL)
831MIO_SIMPLE_DEV(pxa2xx_ac97, "pxa2xx-ac97", NULL)
832MIO_PARENT_DEV(mio_wm9713_codec, "wm9713-codec", &pxa2xx_ac97.dev, NULL)
833MIO_SIMPLE_DEV(mioa701_sound, "mioa701-wm9713", NULL)
834MIO_SIMPLE_DEV(mioa701_board, "mioa701-board", NULL)
835
836static struct platform_device *devices[] __initdata = {
837 &mioa701_gpio_keys,
838 &mioa701_backlight,
839 &mioa701_led,
840 &pxa2xx_pcm,
841 &pxa2xx_ac97,
842 &mio_wm9713_codec,
843 &mioa701_sound,
844 &power_dev,
845 &strataflash,
846 &mioa701_board
847};
848
849static void mioa701_machine_exit(void);
850
851static void mioa701_poweroff(void)
852{
853 mioa701_machine_exit();
854 gpio_set_value(GPIO18_POWEROFF, 1);
855}
856
857static void mioa701_restart(char c)
858{
859 mioa701_machine_exit();
860 arm_machine_restart(c);
861}
862
863struct gpio_ress global_gpios[] = {
864 MIO_GPIO_OUT(GPIO9_CHARGE_nEN, 1, "Charger enable"),
865 MIO_GPIO_OUT(GPIO18_POWEROFF, 0, "Power Off"),
866 MIO_GPIO_OUT(GPIO87_LCD_POWER, 0, "LCD Power")
867};
868
869static void __init mioa701_machine_init(void)
870{
871 PSLR = 0xff100000; /* SYSDEL=125ms, PWRDEL=125ms, PSLR_SL_ROD=1 */
872 PCFR = PCFR_DC_EN | PCFR_GPR_EN | PCFR_OPDE;
873 RTTR = 32768 - 1; /* Reset crazy WinCE value */
874 UP2OCR = UP2OCR_HXOE;
875
876 pxa2xx_mfp_config(ARRAY_AND_SIZE(mioa701_pin_config));
877 mio_gpio_request(ARRAY_AND_SIZE(global_gpios));
878 bootstrap_init();
879 set_pxa_fb_info(&mioa701_pxafb_info);
880 pxa_set_mci_info(&mioa701_mci_info);
881 pxa_set_keypad_info(&mioa701_keypad_info);
882 udc_init();
883 pm_power_off = mioa701_poweroff;
884 arm_pm_restart = mioa701_restart;
885 platform_add_devices(devices, ARRAY_SIZE(devices));
886 gsm_init();
887 mioa701_battery_init();
888}
889
890static void mioa701_machine_exit(void)
891{
892 udc_exit();
893 bootstrap_exit();
894 gsm_exit();
895}
896
897MACHINE_START(MIOA701, "MIO A701")
898 .phys_io = 0x40000000,
899 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
900 .boot_params = 0xa0000100,
901 .map_io = &pxa_map_io,
902 .init_irq = &pxa27x_init_irq,
903 .init_machine = mioa701_machine_init,
904 .timer = &pxa_timer,
905MACHINE_END
diff --git a/arch/arm/mach-pxa/mioa701_bootresume.S b/arch/arm/mach-pxa/mioa701_bootresume.S
new file mode 100644
index 000000000000..a647693d9856
--- /dev/null
+++ b/arch/arm/mach-pxa/mioa701_bootresume.S
@@ -0,0 +1,36 @@
1/* Bootloader to resume MIO A701
2 *
3 * 2007-1-12 Robert Jarzmik
4 *
5 * This code is licenced under the GPLv2.
6*/
7
8#include <linux/linkage.h>
9#include <asm/assembler.h>
10
11/*
12 * Note: Yes, part of the following code is located into the .data section.
13 * This is to allow jumpaddr to be accessed with a relative load
14 * while we can't rely on any MMU translation. We could have put
15 * sleep_save_sp in the .text section as well, but some setups might
16 * insist on it to be truly read-only.
17 */
18 .data
19ENTRY(mioa701_bootstrap)
200:
21 b 1f
22ENTRY(mioa701_jumpaddr)
23 .word 0x40f00008 @ PSPR in no-MMU mode
241:
25 mov r0, #0xa0000000 @ Don't suppose memory access works
26 orr r0, r0, #0x00200000 @ even if it's supposed to
27 mov r1, #0
28 str r1, [r0] @ Early disable resume for next boot
29 ldr r0, mioa701_jumpaddr @ (Murphy's Law)
30 ldr r0, [r0]
31 mov pc, r0
322:
33
34ENTRY(mioa701_bootstrap_lg)
35 .data
36 .word 2b-0b
diff --git a/arch/arm/mach-pxa/mp900.c b/arch/arm/mach-pxa/mp900.c
new file mode 100644
index 000000000000..8a73814126b1
--- /dev/null
+++ b/arch/arm/mach-pxa/mp900.c
@@ -0,0 +1,100 @@
1/*
2 * linux/arch/arm/mach-pxa/mp900.c
3 *
4 * Support for the NEC MobilePro900/C platform
5 *
6 * Based on mach-pxa/gumstix.c
7 *
8 * 2007, 2008 Kristoffer Ericson <kristoffer.ericson@gmail.com>
9 * 2007, 2008 Michael Petchkovsky <mkpetch@internode.on.net>
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * published by the Free Software Foundation.
14 */
15
16#include <linux/init.h>
17#include <linux/device.h>
18#include <linux/platform_device.h>
19#include <linux/types.h>
20#include <linux/usb/isp116x.h>
21
22#include <mach/hardware.h>
23#include <mach/pxa-regs.h>
24#include <asm/mach-types.h>
25#include <asm/mach/arch.h>
26#include "generic.h"
27
28static void isp116x_pfm_delay(struct device *dev, int delay)
29{
30
31 /* 400Mhz PXA2 = 2.5ns / instruction */
32
33 int cyc = delay / 10;
34
35 /* 4 Instructions = 4 x 2.5ns = 10ns */
36 __asm__ volatile ("0:\n"
37 "subs %0, %1, #1\n"
38 "bge 0b\n"
39 :"=r" (cyc)
40 :"0"(cyc)
41 );
42}
43
44static struct isp116x_platform_data isp116x_pfm_data = {
45 .remote_wakeup_enable = 1,
46 .delay = isp116x_pfm_delay,
47};
48
49static struct resource isp116x_pfm_resources[] = {
50 [0] = {
51 .start = 0x0d000000,
52 .end = 0x0d000000 + 1,
53 .flags = IORESOURCE_MEM,
54 },
55 [1] = {
56 .start = 0x0d000000 + 4,
57 .end = 0x0d000000 + 5,
58 .flags = IORESOURCE_MEM,
59 },
60 [2] = {
61 .start = 61,
62 .end = 61,
63 .flags = IORESOURCE_IRQ,
64 },
65};
66
67static struct platform_device mp900c_dummy_device = {
68 .name = "mp900c_dummy",
69 .id = -1,
70};
71
72static struct platform_device mp900c_usb = {
73 .name = "isp116x-hcd",
74 .num_resources = ARRAY_SIZE(isp116x_pfm_resources),
75 .resource = isp116x_pfm_resources,
76 .dev.platform_data = &isp116x_pfm_data,
77};
78
79static struct platform_device *devices[] __initdata = {
80 &mp900c_dummy_device,
81 &mp900c_usb,
82};
83
84static void __init mp900c_init(void)
85{
86 printk(KERN_INFO "MobilePro 900/C machine init\n");
87 platform_add_devices(devices, ARRAY_SIZE(devices));
88}
89
90/* Maintainer - Michael Petchkovsky <mkpetch@internode.on.net> */
91MACHINE_START(NEC_MP900, "MobilePro900/C")
92 .phys_io = 0x40000000,
93 .boot_params = 0xa0220100,
94 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
95 .timer = &pxa_timer,
96 .map_io = pxa_map_io,
97 .init_irq = pxa25x_init_irq,
98 .init_machine = mp900c_init,
99MACHINE_END
100
diff --git a/arch/arm/mach-pxa/palmtx.c b/arch/arm/mach-pxa/palmtx.c
index fe924a23debe..4447711c9fc6 100644
--- a/arch/arm/mach-pxa/palmtx.c
+++ b/arch/arm/mach-pxa/palmtx.c
@@ -25,6 +25,8 @@
25#include <linux/pda_power.h> 25#include <linux/pda_power.h>
26#include <linux/pwm_backlight.h> 26#include <linux/pwm_backlight.h>
27#include <linux/gpio.h> 27#include <linux/gpio.h>
28#include <linux/wm97xx_batt.h>
29#include <linux/power_supply.h>
28 30
29#include <asm/mach-types.h> 31#include <asm/mach-types.h>
30#include <asm/mach/arch.h> 32#include <asm/mach/arch.h>
@@ -340,6 +342,23 @@ static struct platform_device power_supply = {
340}; 342};
341 343
342/****************************************************************************** 344/******************************************************************************
345 * WM97xx battery
346 ******************************************************************************/
347static struct wm97xx_batt_info wm97xx_batt_pdata = {
348 .batt_aux = WM97XX_AUX_ID3,
349 .temp_aux = WM97XX_AUX_ID2,
350 .charge_gpio = -1,
351 .max_voltage = PALMTX_BAT_MAX_VOLTAGE,
352 .min_voltage = PALMTX_BAT_MIN_VOLTAGE,
353 .batt_mult = 1000,
354 .batt_div = 414,
355 .temp_mult = 1,
356 .temp_div = 1,
357 .batt_tech = POWER_SUPPLY_TECHNOLOGY_LIPO,
358 .batt_name = "main-batt",
359};
360
361/******************************************************************************
343 * Framebuffer 362 * Framebuffer
344 ******************************************************************************/ 363 ******************************************************************************/
345static struct pxafb_mode_info palmtx_lcd_modes[] = { 364static struct pxafb_mode_info palmtx_lcd_modes[] = {
@@ -401,6 +420,7 @@ static void __init palmtx_init(void)
401 pxa_set_ac97_info(NULL); 420 pxa_set_ac97_info(NULL);
402 pxa_set_ficp_info(&palmtx_ficp_platform_data); 421 pxa_set_ficp_info(&palmtx_ficp_platform_data);
403 pxa_set_keypad_info(&palmtx_keypad_platform_data); 422 pxa_set_keypad_info(&palmtx_keypad_platform_data);
423 wm97xx_bat_set_pdata(&wm97xx_batt_pdata);
404 424
405 platform_add_devices(devices, ARRAY_SIZE(devices)); 425 platform_add_devices(devices, ARRAY_SIZE(devices));
406} 426}
diff --git a/arch/arm/mach-pxa/palmz72.c b/arch/arm/mach-pxa/palmz72.c
new file mode 100644
index 000000000000..2f730da3bba8
--- /dev/null
+++ b/arch/arm/mach-pxa/palmz72.c
@@ -0,0 +1,554 @@
1/*
2 * Hardware definitions for Palm Zire72
3 *
4 * Authors:
5 * Vladimir "Farcaller" Pouzanov <farcaller@gmail.com>
6 * Sergey Lapin <slapin@ossfans.org>
7 * Alex Osborne <bobofdoom@gmail.com>
8 * Jan Herman <2hp@seznam.cz>
9 *
10 * Rewrite for mainline:
11 * Marek Vasut <marek.vasut@gmail.com>
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License version 2 as
15 * published by the Free Software Foundation.
16 *
17 * (find more info at www.hackndev.com)
18 *
19 */
20
21#include <linux/platform_device.h>
22#include <linux/sysdev.h>
23#include <linux/delay.h>
24#include <linux/irq.h>
25#include <linux/gpio_keys.h>
26#include <linux/input.h>
27#include <linux/pda_power.h>
28#include <linux/pwm_backlight.h>
29#include <linux/gpio.h>
30#include <linux/power_supply.h>
31
32#include <asm/mach-types.h>
33#include <asm/mach/arch.h>
34#include <asm/mach/map.h>
35
36#include <mach/audio.h>
37#include <mach/palmz72.h>
38#include <mach/mmc.h>
39#include <mach/pxafb.h>
40#include <mach/pxa-regs.h>
41#include <mach/pxa2xx-regs.h>
42#include <mach/mfp-pxa27x.h>
43#include <mach/irda.h>
44#include <mach/pxa27x_keypad.h>
45#include <mach/udc.h>
46#include <mach/pm.h>
47
48#include "generic.h"
49#include "devices.h"
50
51/******************************************************************************
52 * Pin configuration
53 ******************************************************************************/
54static unsigned long palmz72_pin_config[] __initdata = {
55 /* MMC */
56 GPIO32_MMC_CLK,
57 GPIO92_MMC_DAT_0,
58 GPIO109_MMC_DAT_1,
59 GPIO110_MMC_DAT_2,
60 GPIO111_MMC_DAT_3,
61 GPIO112_MMC_CMD,
62 GPIO14_GPIO, /* SD detect */
63 GPIO115_GPIO, /* SD RO */
64 GPIO98_GPIO, /* SD power */
65
66 /* AC97 */
67 GPIO28_AC97_BITCLK,
68 GPIO29_AC97_SDATA_IN_0,
69 GPIO30_AC97_SDATA_OUT,
70 GPIO31_AC97_SYNC,
71
72 /* IrDA */
73 GPIO49_GPIO, /* ir disable */
74 GPIO46_FICP_RXD,
75 GPIO47_FICP_TXD,
76
77 /* PWM */
78 GPIO16_PWM0_OUT,
79
80 /* USB */
81 GPIO15_GPIO, /* usb detect */
82 GPIO12_GPIO, /* usb pullup */
83 GPIO95_GPIO, /* usb power */
84
85 /* Matrix keypad */
86 GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
87 GPIO101_KP_MKIN_1 | WAKEUP_ON_LEVEL_HIGH,
88 GPIO102_KP_MKIN_2 | WAKEUP_ON_LEVEL_HIGH,
89 GPIO97_KP_MKIN_3 | WAKEUP_ON_LEVEL_HIGH,
90 GPIO103_KP_MKOUT_0,
91 GPIO104_KP_MKOUT_1,
92 GPIO105_KP_MKOUT_2,
93
94 /* LCD */
95 GPIO58_LCD_LDD_0,
96 GPIO59_LCD_LDD_1,
97 GPIO60_LCD_LDD_2,
98 GPIO61_LCD_LDD_3,
99 GPIO62_LCD_LDD_4,
100 GPIO63_LCD_LDD_5,
101 GPIO64_LCD_LDD_6,
102 GPIO65_LCD_LDD_7,
103 GPIO66_LCD_LDD_8,
104 GPIO67_LCD_LDD_9,
105 GPIO68_LCD_LDD_10,
106 GPIO69_LCD_LDD_11,
107 GPIO70_LCD_LDD_12,
108 GPIO71_LCD_LDD_13,
109 GPIO72_LCD_LDD_14,
110 GPIO73_LCD_LDD_15,
111 GPIO74_LCD_FCLK,
112 GPIO75_LCD_LCLK,
113 GPIO76_LCD_PCLK,
114 GPIO77_LCD_BIAS,
115 GPIO20_GPIO, /* bl power */
116 GPIO21_GPIO, /* LCD border switch */
117 GPIO22_GPIO, /* LCD border color */
118 GPIO96_GPIO, /* lcd power */
119
120 /* Misc. */
121 GPIO0_GPIO | WAKEUP_ON_LEVEL_HIGH, /* power detect */
122 GPIO88_GPIO, /* green led */
123 GPIO27_GPIO, /* WM9712 IRQ */
124};
125
126/******************************************************************************
127 * SD/MMC card controller
128 ******************************************************************************/
129static int palmz72_mci_init(struct device *dev,
130 irq_handler_t palmz72_detect_int, void *data)
131{
132 int err = 0;
133
134 /* Setup an interrupt for detecting card insert/remove events */
135 err = gpio_request(GPIO_NR_PALMZ72_SD_DETECT_N, "SD IRQ");
136 if (err)
137 goto err;
138 err = gpio_direction_input(GPIO_NR_PALMZ72_SD_DETECT_N);
139 if (err)
140 goto err2;
141 err = request_irq(gpio_to_irq(GPIO_NR_PALMZ72_SD_DETECT_N),
142 palmz72_detect_int, IRQF_DISABLED | IRQF_SAMPLE_RANDOM |
143 IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
144 "SD/MMC card detect", data);
145 if (err) {
146 printk(KERN_ERR "%s: cannot request SD/MMC card detect IRQ\n",
147 __func__);
148 goto err2;
149 }
150
151 /* SD_POWER is not actually power, but it is more like chip
152 * select, i.e. it is inverted */
153
154 err = gpio_request(GPIO_NR_PALMZ72_SD_POWER_N, "SD_POWER");
155 if (err)
156 goto err3;
157 err = gpio_direction_output(GPIO_NR_PALMZ72_SD_POWER_N, 0);
158 if (err)
159 goto err4;
160 err = gpio_request(GPIO_NR_PALMZ72_SD_RO, "SD_RO");
161 if (err)
162 goto err4;
163 err = gpio_direction_input(GPIO_NR_PALMZ72_SD_RO);
164 if (err)
165 goto err5;
166
167 printk(KERN_DEBUG "%s: irq registered\n", __func__);
168
169 return 0;
170
171err5:
172 gpio_free(GPIO_NR_PALMZ72_SD_RO);
173err4:
174 gpio_free(GPIO_NR_PALMZ72_SD_POWER_N);
175err3:
176 free_irq(gpio_to_irq(GPIO_NR_PALMZ72_SD_DETECT_N), data);
177err2:
178 gpio_free(GPIO_NR_PALMZ72_SD_DETECT_N);
179err:
180 return err;
181}
182
183static void palmz72_mci_exit(struct device *dev, void *data)
184{
185 gpio_free(GPIO_NR_PALMZ72_SD_POWER_N);
186 free_irq(gpio_to_irq(GPIO_NR_PALMZ72_SD_DETECT_N), data);
187 gpio_free(GPIO_NR_PALMZ72_SD_DETECT_N);
188 gpio_free(GPIO_NR_PALMZ72_SD_RO);
189}
190
191static void palmz72_mci_power(struct device *dev, unsigned int vdd)
192{
193 struct pxamci_platform_data *p_d = dev->platform_data;
194 if (p_d->ocr_mask & (1 << vdd))
195 gpio_set_value(GPIO_NR_PALMZ72_SD_POWER_N, 0);
196 else
197 gpio_set_value(GPIO_NR_PALMZ72_SD_POWER_N, 1);
198}
199
200static int palmz72_mci_ro(struct device *dev)
201{
202 return gpio_get_value(GPIO_NR_PALMZ72_SD_RO);
203}
204
205static struct pxamci_platform_data palmz72_mci_platform_data = {
206 .ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34,
207 .setpower = palmz72_mci_power,
208 .get_ro = palmz72_mci_ro,
209 .init = palmz72_mci_init,
210 .exit = palmz72_mci_exit,
211};
212
213/******************************************************************************
214 * GPIO keyboard
215 ******************************************************************************/
216static unsigned int palmz72_matrix_keys[] = {
217 KEY(0, 0, KEY_POWER),
218 KEY(0, 1, KEY_F1),
219 KEY(0, 2, KEY_ENTER),
220
221 KEY(1, 0, KEY_F2),
222 KEY(1, 1, KEY_F3),
223 KEY(1, 2, KEY_F4),
224
225 KEY(2, 0, KEY_UP),
226 KEY(2, 2, KEY_DOWN),
227
228 KEY(3, 0, KEY_RIGHT),
229 KEY(3, 2, KEY_LEFT),
230};
231
232static struct pxa27x_keypad_platform_data palmz72_keypad_platform_data = {
233 .matrix_key_rows = 4,
234 .matrix_key_cols = 3,
235 .matrix_key_map = palmz72_matrix_keys,
236 .matrix_key_map_size = ARRAY_SIZE(palmz72_matrix_keys),
237
238 .debounce_interval = 30,
239};
240
241/******************************************************************************
242 * Backlight
243 ******************************************************************************/
244static int palmz72_backlight_init(struct device *dev)
245{
246 int ret;
247
248 ret = gpio_request(GPIO_NR_PALMZ72_BL_POWER, "BL POWER");
249 if (ret)
250 goto err;
251 ret = gpio_direction_output(GPIO_NR_PALMZ72_BL_POWER, 0);
252 if (ret)
253 goto err2;
254 ret = gpio_request(GPIO_NR_PALMZ72_LCD_POWER, "LCD POWER");
255 if (ret)
256 goto err2;
257 ret = gpio_direction_output(GPIO_NR_PALMZ72_LCD_POWER, 0);
258 if (ret)
259 goto err3;
260
261 return 0;
262err3:
263 gpio_free(GPIO_NR_PALMZ72_LCD_POWER);
264err2:
265 gpio_free(GPIO_NR_PALMZ72_BL_POWER);
266err:
267 return ret;
268}
269
270static int palmz72_backlight_notify(int brightness)
271{
272 gpio_set_value(GPIO_NR_PALMZ72_BL_POWER, brightness);
273 gpio_set_value(GPIO_NR_PALMZ72_LCD_POWER, brightness);
274 return brightness;
275}
276
277static void palmz72_backlight_exit(struct device *dev)
278{
279 gpio_free(GPIO_NR_PALMZ72_BL_POWER);
280 gpio_free(GPIO_NR_PALMZ72_LCD_POWER);
281}
282
283static struct platform_pwm_backlight_data palmz72_backlight_data = {
284 .pwm_id = 0,
285 .max_brightness = PALMZ72_MAX_INTENSITY,
286 .dft_brightness = PALMZ72_MAX_INTENSITY,
287 .pwm_period_ns = PALMZ72_PERIOD_NS,
288 .init = palmz72_backlight_init,
289 .notify = palmz72_backlight_notify,
290 .exit = palmz72_backlight_exit,
291};
292
293static struct platform_device palmz72_backlight = {
294 .name = "pwm-backlight",
295 .dev = {
296 .parent = &pxa27x_device_pwm0.dev,
297 .platform_data = &palmz72_backlight_data,
298 },
299};
300
301/******************************************************************************
302 * IrDA
303 ******************************************************************************/
304static int palmz72_irda_startup(struct device *dev)
305{
306 int err;
307 err = gpio_request(GPIO_NR_PALMZ72_IR_DISABLE, "IR DISABLE");
308 if (err)
309 goto err;
310 err = gpio_direction_output(GPIO_NR_PALMZ72_IR_DISABLE, 1);
311 if (err)
312 gpio_free(GPIO_NR_PALMZ72_IR_DISABLE);
313err:
314 return err;
315}
316
317static void palmz72_irda_shutdown(struct device *dev)
318{
319 gpio_free(GPIO_NR_PALMZ72_IR_DISABLE);
320}
321
322static void palmz72_irda_transceiver_mode(struct device *dev, int mode)
323{
324 gpio_set_value(GPIO_NR_PALMZ72_IR_DISABLE, mode & IR_OFF);
325 pxa2xx_transceiver_mode(dev, mode);
326}
327
328static struct pxaficp_platform_data palmz72_ficp_platform_data = {
329 .startup = palmz72_irda_startup,
330 .shutdown = palmz72_irda_shutdown,
331 .transceiver_cap = IR_SIRMODE | IR_OFF,
332 .transceiver_mode = palmz72_irda_transceiver_mode,
333};
334
335/******************************************************************************
336 * LEDs
337 ******************************************************************************/
338static struct gpio_led gpio_leds[] = {
339 {
340 .name = "palmz72:green:led",
341 .default_trigger = "none",
342 .gpio = GPIO_NR_PALMZ72_LED_GREEN,
343 },
344};
345
346static struct gpio_led_platform_data gpio_led_info = {
347 .leds = gpio_leds,
348 .num_leds = ARRAY_SIZE(gpio_leds),
349};
350
351static struct platform_device palmz72_leds = {
352 .name = "leds-gpio",
353 .id = -1,
354 .dev = {
355 .platform_data = &gpio_led_info,
356 }
357};
358
359/******************************************************************************
360 * Power supply
361 ******************************************************************************/
362static int power_supply_init(struct device *dev)
363{
364 int ret;
365
366 ret = gpio_request(GPIO_NR_PALMZ72_POWER_DETECT, "CABLE_STATE_AC");
367 if (ret)
368 goto err1;
369 ret = gpio_direction_input(GPIO_NR_PALMZ72_POWER_DETECT);
370 if (ret)
371 goto err2;
372
373 ret = gpio_request(GPIO_NR_PALMZ72_USB_DETECT_N, "CABLE_STATE_USB");
374 if (ret)
375 goto err2;
376 ret = gpio_direction_input(GPIO_NR_PALMZ72_USB_DETECT_N);
377 if (ret)
378 goto err3;
379
380 return 0;
381err3:
382 gpio_free(GPIO_NR_PALMZ72_USB_DETECT_N);
383err2:
384 gpio_free(GPIO_NR_PALMZ72_POWER_DETECT);
385err1:
386 return ret;
387}
388
389static int palmz72_is_ac_online(void)
390{
391 return gpio_get_value(GPIO_NR_PALMZ72_POWER_DETECT);
392}
393
394static int palmz72_is_usb_online(void)
395{
396 return !gpio_get_value(GPIO_NR_PALMZ72_USB_DETECT_N);
397}
398
399static void power_supply_exit(struct device *dev)
400{
401 gpio_free(GPIO_NR_PALMZ72_USB_DETECT_N);
402 gpio_free(GPIO_NR_PALMZ72_POWER_DETECT);
403}
404
405static char *palmz72_supplicants[] = {
406 "main-battery",
407};
408
409static struct pda_power_pdata power_supply_info = {
410 .init = power_supply_init,
411 .is_ac_online = palmz72_is_ac_online,
412 .is_usb_online = palmz72_is_usb_online,
413 .exit = power_supply_exit,
414 .supplied_to = palmz72_supplicants,
415 .num_supplicants = ARRAY_SIZE(palmz72_supplicants),
416};
417
418static struct platform_device power_supply = {
419 .name = "pda-power",
420 .id = -1,
421 .dev = {
422 .platform_data = &power_supply_info,
423 },
424};
425
426/******************************************************************************
427 * Framebuffer
428 ******************************************************************************/
429static struct pxafb_mode_info palmz72_lcd_modes[] = {
430{
431 .pixclock = 115384,
432 .xres = 320,
433 .yres = 320,
434 .bpp = 16,
435
436 .left_margin = 27,
437 .right_margin = 7,
438 .upper_margin = 7,
439 .lower_margin = 8,
440
441 .hsync_len = 6,
442 .vsync_len = 1,
443},
444};
445
446static struct pxafb_mach_info palmz72_lcd_screen = {
447 .modes = palmz72_lcd_modes,
448 .num_modes = ARRAY_SIZE(palmz72_lcd_modes),
449 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
450};
451
452#ifdef CONFIG_PM
453
454/* We have some black magic here
455 * PalmOS ROM on recover expects special struct physical address
456 * to be transferred via PSPR. Using this struct PalmOS restores
457 * its state after sleep. As for Linux, we need to setup it the
458 * same way. More than that, PalmOS ROM changes some values in memory.
459 * For now only one location is found, which needs special treatment.
460 * Thanks to Alex Osborne, Andrzej Zaborowski, and lots of other people
461 * for reading backtraces for me :)
462 */
463
464#define PALMZ72_SAVE_DWORD ((unsigned long *)0xc0000050)
465
466static struct palmz72_resume_info palmz72_resume_info = {
467 .magic0 = 0xb4e6,
468 .magic1 = 1,
469
470 /* reset state, MMU off etc */
471 .arm_control = 0,
472 .aux_control = 0,
473 .ttb = 0,
474 .domain_access = 0,
475 .process_id = 0,
476};
477
478static unsigned long store_ptr;
479
480/* sys_device for Palm Zire 72 PM */
481
482static int palmz72_pm_suspend(struct sys_device *dev, pm_message_t msg)
483{
484 /* setup the resume_info struct for the original bootloader */
485 palmz72_resume_info.resume_addr = (u32) pxa_cpu_resume;
486
487 /* Storing memory touched by ROM */
488 store_ptr = *PALMZ72_SAVE_DWORD;
489
490 /* Setting PSPR to a proper value */
491 PSPR = virt_to_phys(&palmz72_resume_info);
492
493 return 0;
494}
495
496static int palmz72_pm_resume(struct sys_device *dev)
497{
498 *PALMZ72_SAVE_DWORD = store_ptr;
499 return 0;
500}
501
502static struct sysdev_class palmz72_pm_sysclass = {
503 .name = "palmz72_pm",
504 .suspend = palmz72_pm_suspend,
505 .resume = palmz72_pm_resume,
506};
507
508static struct sys_device palmz72_pm_device = {
509 .cls = &palmz72_pm_sysclass,
510};
511
512static int __init palmz72_pm_init(void)
513{
514 int ret = -ENODEV;
515 if (machine_is_palmz72()) {
516 ret = sysdev_class_register(&palmz72_pm_sysclass);
517 if (ret == 0)
518 ret = sysdev_register(&palmz72_pm_device);
519 }
520 return ret;
521}
522
523device_initcall(palmz72_pm_init);
524#endif
525
526/******************************************************************************
527 * Machine init
528 ******************************************************************************/
529static struct platform_device *devices[] __initdata = {
530 &palmz72_backlight,
531 &palmz72_leds,
532 &power_supply,
533};
534
535static void __init palmz72_init(void)
536{
537 pxa2xx_mfp_config(ARRAY_AND_SIZE(palmz72_pin_config));
538 set_pxa_fb_info(&palmz72_lcd_screen);
539 pxa_set_mci_info(&palmz72_mci_platform_data);
540 pxa_set_ac97_info(NULL);
541 pxa_set_ficp_info(&palmz72_ficp_platform_data);
542 pxa_set_keypad_info(&palmz72_keypad_platform_data);
543 platform_add_devices(devices, ARRAY_SIZE(devices));
544}
545
546MACHINE_START(PALMZ72, "Palm Zire72")
547 .phys_io = 0x40000000,
548 .io_pg_offst = io_p2v(0x40000000),
549 .boot_params = 0xa0000100,
550 .map_io = pxa_map_io,
551 .init_irq = pxa27x_init_irq,
552 .timer = &pxa_timer,
553 .init_machine = palmz72_init
554MACHINE_END
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c
index 730b9f6ede1d..36135a02fdc7 100644
--- a/arch/arm/mach-pxa/pcm027.c
+++ b/arch/arm/mach-pxa/pcm027.c
@@ -31,7 +31,7 @@
31#include <asm/mach/arch.h> 31#include <asm/mach/arch.h>
32#include <mach/hardware.h> 32#include <mach/hardware.h>
33#include <mach/pxa-regs.h> 33#include <mach/pxa-regs.h>
34#include <mach/pxa2xx-gpio.h> 34#include <mach/mfp-pxa27x.h>
35#include <mach/pxa2xx-regs.h> 35#include <mach/pxa2xx-regs.h>
36#include <mach/pxa2xx_spi.h> 36#include <mach/pxa2xx_spi.h>
37#include <mach/pcm027.h> 37#include <mach/pcm027.h>
@@ -86,6 +86,28 @@
86 * *) CPU internal use only 86 * *) CPU internal use only
87 */ 87 */
88 88
89static unsigned long pcm027_pin_config[] __initdata = {
90 /* Chip Selects */
91 GPIO20_nSDCS_2,
92 GPIO21_nSDCS_3,
93 GPIO15_nCS_1,
94 GPIO78_nCS_2,
95 GPIO80_nCS_4,
96 GPIO33_nCS_5, /* Ethernet */
97
98 /* I2C */
99 GPIO117_I2C_SCL,
100 GPIO118_I2C_SDA,
101
102 /* GPIO */
103 GPIO52_GPIO, /* IRQ from network controller */
104#ifdef CONFIG_LEDS_GPIO
105 GPIO90_GPIO, /* PCM027_LED_CPU */
106 GPIO91_GPIO, /* PCM027_LED_HEART_BEAT */
107#endif
108 GPIO114_GPIO, /* IRQ from CAN controller */
109};
110
89/* 111/*
90 * SMC91x network controller specific stuff 112 * SMC91x network controller specific stuff
91 */ 113 */
@@ -206,13 +228,9 @@ static void __init pcm027_init(void)
206 */ 228 */
207 ARB_CNTRL = ARB_CORE_PARK | 0x234; 229 ARB_CNTRL = ARB_CORE_PARK | 0x234;
208 230
209 platform_add_devices(devices, ARRAY_SIZE(devices)); 231 pxa2xx_mfp_config(pcm027_pin_config, ARRAY_SIZE(pcm027_pin_config));
210 232
211 /* LEDs (on demand only) */ 233 platform_add_devices(devices, ARRAY_SIZE(devices));
212#ifdef CONFIG_LEDS_GPIO
213 pxa_gpio_mode(PCM027_LED_CPU | GPIO_OUT);
214 pxa_gpio_mode(PCM027_LED_HEARD_BEAT | GPIO_OUT);
215#endif /* CONFIG_LEDS_GPIO */
216 234
217 /* at last call the baseboard to initialize itself */ 235 /* at last call the baseboard to initialize itself */
218#ifdef CONFIG_MACH_PCM990_BASEBOARD 236#ifdef CONFIG_MACH_PCM990_BASEBOARD
diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c
index 420c9b3813f6..f601425f1b1e 100644
--- a/arch/arm/mach-pxa/pcm990-baseboard.c
+++ b/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -262,8 +262,7 @@ static void pcm990_irq_handler(unsigned int irq, struct irq_desc *desc)
262 GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO); 262 GPIO_bit(PCM990_CTRL_INT_IRQ_GPIO);
263 if (likely(pending)) { 263 if (likely(pending)) {
264 irq = PCM027_IRQ(0) + __ffs(pending); 264 irq = PCM027_IRQ(0) + __ffs(pending);
265 desc = irq_desc + irq; 265 generic_handle_irq(irq);
266 desc_handle_irq(irq, desc);
267 } 266 }
268 pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled; 267 pending = (~PCM990_INTSETCLR) & pcm990_irq_enabled;
269 } while (pending); 268 } while (pending);
@@ -328,36 +327,10 @@ static struct pxamci_platform_data pcm990_mci_platform_data = {
328 .exit = pcm990_mci_exit, 327 .exit = pcm990_mci_exit,
329}; 328};
330 329
331/*
332 * init OHCI hardware to work with
333 *
334 * Note: Only USB port 1 (host only) is connected
335 *
336 * GPIO88 (USBHPWR#1): overcurrent in, overcurrent when low
337 * GPIO89 (USBHPEN#1): power-on out, on when low
338 */
339static int pcm990_ohci_init(struct device *dev)
340{
341 /*
342 * disable USB port 2 and 3
343 * power sense is active low
344 */
345 UHCHR = ((UHCHR) | UHCHR_PCPL | UHCHR_PSPL | UHCHR_SSEP2 |
346 UHCHR_SSEP3) & ~(UHCHR_SSEP1 | UHCHR_SSE);
347 /*
348 * wait 10ms after Power on
349 * overcurrent per port
350 * power switch per port
351 */
352 UHCRHDA = (5<<24) | (1<<11) | (1<<8); /* FIXME: Required? */
353
354 return 0;
355}
356
357static struct pxaohci_platform_data pcm990_ohci_platform_data = { 330static struct pxaohci_platform_data pcm990_ohci_platform_data = {
358 .port_mode = PMM_PERPORT_MODE, 331 .port_mode = PMM_PERPORT_MODE,
359 .init = pcm990_ohci_init, 332 .flags = ENABLE_PORT1 | POWER_CONTROL_LOW | POWER_SENSE_LOW,
360 .exit = NULL, 333 .power_on_delay = 10,
361}; 334};
362 335
363/* 336/*
diff --git a/arch/arm/mach-pxa/pm.c b/arch/arm/mach-pxa/pm.c
index 1b539e675579..164eb0bb6321 100644
--- a/arch/arm/mach-pxa/pm.c
+++ b/arch/arm/mach-pxa/pm.c
@@ -86,9 +86,27 @@ static int pxa_pm_valid(suspend_state_t state)
86 return -EINVAL; 86 return -EINVAL;
87} 87}
88 88
89static int pxa_pm_prepare(void)
90{
91 int ret = 0;
92
93 if (pxa_cpu_pm_fns && pxa_cpu_pm_fns->prepare)
94 ret = pxa_cpu_pm_fns->prepare();
95
96 return ret;
97}
98
99static void pxa_pm_finish(void)
100{
101 if (pxa_cpu_pm_fns && pxa_cpu_pm_fns->finish)
102 pxa_cpu_pm_fns->finish();
103}
104
89static struct platform_suspend_ops pxa_pm_ops = { 105static struct platform_suspend_ops pxa_pm_ops = {
90 .valid = pxa_pm_valid, 106 .valid = pxa_pm_valid,
91 .enter = pxa_pm_enter, 107 .enter = pxa_pm_enter,
108 .prepare = pxa_pm_prepare,
109 .finish = pxa_pm_finish,
92}; 110};
93 111
94static int __init pxa_pm_init(void) 112static int __init pxa_pm_init(void)
diff --git a/arch/arm/mach-pxa/poodle.c b/arch/arm/mach-pxa/poodle.c
index 055ec63d768c..2e3bd8b1523b 100644
--- a/arch/arm/mach-pxa/poodle.c
+++ b/arch/arm/mach-pxa/poodle.c
@@ -20,6 +20,9 @@
20#include <linux/fb.h> 20#include <linux/fb.h>
21#include <linux/pm.h> 21#include <linux/pm.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/gpio.h>
24#include <linux/spi/spi.h>
25#include <linux/spi/ads7846.h>
23 26
24#include <mach/hardware.h> 27#include <mach/hardware.h>
25#include <asm/mach-types.h> 28#include <asm/mach-types.h>
@@ -33,14 +36,16 @@
33 36
34#include <mach/pxa-regs.h> 37#include <mach/pxa-regs.h>
35#include <mach/pxa2xx-regs.h> 38#include <mach/pxa2xx-regs.h>
36#include <mach/pxa2xx-gpio.h> 39#include <mach/mfp-pxa25x.h>
37#include <mach/mmc.h> 40#include <mach/mmc.h>
38#include <mach/udc.h> 41#include <mach/udc.h>
42#include <mach/i2c.h>
39#include <mach/irda.h> 43#include <mach/irda.h>
40#include <mach/poodle.h> 44#include <mach/poodle.h>
41#include <mach/pxafb.h> 45#include <mach/pxafb.h>
42#include <mach/sharpsl.h> 46#include <mach/sharpsl.h>
43#include <mach/ssp.h> 47#include <mach/ssp.h>
48#include <mach/pxa2xx_spi.h>
44 49
45#include <asm/hardware/scoop.h> 50#include <asm/hardware/scoop.h>
46#include <asm/hardware/locomo.h> 51#include <asm/hardware/locomo.h>
@@ -50,6 +55,88 @@
50#include "devices.h" 55#include "devices.h"
51#include "sharpsl.h" 56#include "sharpsl.h"
52 57
58static unsigned long poodle_pin_config[] __initdata = {
59 /* I/O */
60 GPIO79_nCS_3,
61 GPIO80_nCS_4,
62 GPIO18_RDY,
63
64 /* Clock */
65 GPIO12_32KHz,
66
67 /* SSP1 */
68 GPIO23_SSP1_SCLK,
69 GPIO25_SSP1_TXD,
70 GPIO26_SSP1_RXD,
71 GPIO24_GPIO, /* POODLE_GPIO_TP_CS - SFRM as chip select */
72
73 /* I2S */
74 GPIO28_I2S_BITCLK_OUT,
75 GPIO29_I2S_SDATA_IN,
76 GPIO30_I2S_SDATA_OUT,
77 GPIO31_I2S_SYNC,
78 GPIO32_I2S_SYSCLK,
79
80 /* Infra-Red */
81 GPIO47_FICP_TXD,
82 GPIO46_FICP_RXD,
83
84 /* FFUART */
85 GPIO40_FFUART_DTR,
86 GPIO41_FFUART_RTS,
87 GPIO39_FFUART_TXD,
88 GPIO37_FFUART_DSR,
89 GPIO34_FFUART_RXD,
90 GPIO35_FFUART_CTS,
91
92 /* LCD */
93 GPIO58_LCD_LDD_0,
94 GPIO59_LCD_LDD_1,
95 GPIO60_LCD_LDD_2,
96 GPIO61_LCD_LDD_3,
97 GPIO62_LCD_LDD_4,
98 GPIO63_LCD_LDD_5,
99 GPIO64_LCD_LDD_6,
100 GPIO65_LCD_LDD_7,
101 GPIO66_LCD_LDD_8,
102 GPIO67_LCD_LDD_9,
103 GPIO68_LCD_LDD_10,
104 GPIO69_LCD_LDD_11,
105 GPIO70_LCD_LDD_12,
106 GPIO71_LCD_LDD_13,
107 GPIO72_LCD_LDD_14,
108 GPIO73_LCD_LDD_15,
109 GPIO74_LCD_FCLK,
110 GPIO75_LCD_LCLK,
111 GPIO76_LCD_PCLK,
112 GPIO77_LCD_BIAS,
113
114 /* PC Card */
115 GPIO48_nPOE,
116 GPIO49_nPWE,
117 GPIO50_nPIOR,
118 GPIO51_nPIOW,
119 GPIO52_nPCE_1,
120 GPIO53_nPCE_2,
121 GPIO54_nPSKTSEL,
122 GPIO55_nPREG,
123 GPIO56_nPWAIT,
124 GPIO57_nIOIS16,
125
126 /* MMC */
127 GPIO6_MMC_CLK,
128 GPIO8_MMC_CS0,
129
130 /* GPIO */
131 GPIO9_GPIO, /* POODLE_GPIO_nSD_DETECT */
132 GPIO7_GPIO, /* POODLE_GPIO_nSD_WP */
133 GPIO3_GPIO, /* POODLE_GPIO_SD_PWR */
134 GPIO33_GPIO, /* POODLE_GPIO_SD_PWR1 */
135
136 GPIO20_GPIO, /* POODLE_GPIO_USB_PULLUP */
137 GPIO22_GPIO, /* POODLE_GPIO_IR_ON */
138};
139
53static struct resource poodle_scoop_resources[] = { 140static struct resource poodle_scoop_resources[] = {
54 [0] = { 141 [0] = {
55 .start = 0x10800000, 142 .start = 0x10800000,
@@ -61,6 +148,7 @@ static struct resource poodle_scoop_resources[] = {
61static struct scoop_config poodle_scoop_setup = { 148static struct scoop_config poodle_scoop_setup = {
62 .io_dir = POODLE_SCOOP_IO_DIR, 149 .io_dir = POODLE_SCOOP_IO_DIR,
63 .io_out = POODLE_SCOOP_IO_OUT, 150 .io_out = POODLE_SCOOP_IO_OUT,
151 .gpio_base = POODLE_SCOOP_GPIO_BASE,
64}; 152};
65 153
66struct platform_device poodle_scoop_device = { 154struct platform_device poodle_scoop_device = {
@@ -73,27 +161,6 @@ struct platform_device poodle_scoop_device = {
73 .resource = poodle_scoop_resources, 161 .resource = poodle_scoop_resources,
74}; 162};
75 163
76static void poodle_pcmcia_init(void)
77{
78 /* Setup default state of GPIO outputs
79 before we enable them as outputs. */
80 GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
81 GPIO_bit(GPIO49_nPWE) | GPIO_bit(GPIO50_nPIOR) |
82 GPIO_bit(GPIO51_nPIOW) | GPIO_bit(GPIO52_nPCE_1) |
83 GPIO_bit(GPIO53_nPCE_2);
84
85 pxa_gpio_mode(GPIO48_nPOE_MD);
86 pxa_gpio_mode(GPIO49_nPWE_MD);
87 pxa_gpio_mode(GPIO50_nPIOR_MD);
88 pxa_gpio_mode(GPIO51_nPIOW_MD);
89 pxa_gpio_mode(GPIO55_nPREG_MD);
90 pxa_gpio_mode(GPIO56_nPWAIT_MD);
91 pxa_gpio_mode(GPIO57_nIOIS16_MD);
92 pxa_gpio_mode(GPIO52_nPCE_1_MD);
93 pxa_gpio_mode(GPIO53_nPCE_2_MD);
94 pxa_gpio_mode(GPIO54_pSKTSEL_MD);
95}
96
97static struct scoop_pcmcia_dev poodle_pcmcia_scoop[] = { 164static struct scoop_pcmcia_dev poodle_pcmcia_scoop[] = {
98{ 165{
99 .dev = &poodle_scoop_device.dev, 166 .dev = &poodle_scoop_device.dev,
@@ -106,7 +173,6 @@ static struct scoop_pcmcia_dev poodle_pcmcia_scoop[] = {
106static struct scoop_pcmcia_config poodle_pcmcia_config = { 173static struct scoop_pcmcia_config poodle_pcmcia_config = {
107 .devs = &poodle_pcmcia_scoop[0], 174 .devs = &poodle_pcmcia_scoop[0],
108 .num_devs = 1, 175 .num_devs = 1,
109 .pcmcia_init = poodle_pcmcia_init,
110}; 176};
111 177
112EXPORT_SYMBOL(poodle_scoop_device); 178EXPORT_SYMBOL(poodle_scoop_device);
@@ -135,62 +201,55 @@ struct platform_device poodle_locomo_device = {
135 201
136EXPORT_SYMBOL(poodle_locomo_device); 202EXPORT_SYMBOL(poodle_locomo_device);
137 203
138/* 204#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
139 * Poodle SSP Device 205static struct pxa2xx_spi_master poodle_spi_info = {
140 */ 206 .num_chipselect = 1,
141
142struct platform_device poodle_ssp_device = {
143 .name = "corgi-ssp",
144 .id = -1,
145};
146
147struct corgissp_machinfo poodle_ssp_machinfo = {
148 .port = 1,
149 .cs_lcdcon = -1,
150 .cs_ads7846 = -1,
151 .cs_max1111 = -1,
152 .clk_lcdcon = 2,
153 .clk_ads7846 = 36,
154 .clk_max1111 = 2,
155}; 207};
156 208
157 209static struct ads7846_platform_data poodle_ads7846_info = {
158/* 210 .model = 7846,
159 * Poodle Touch Screen Device 211 .vref_delay_usecs = 100,
160 */ 212 .x_plate_ohms = 419,
161static struct resource poodlets_resources[] = { 213 .y_plate_ohms = 486,
162 [0] = { 214 .gpio_pendown = POODLE_GPIO_TP_INT,
163 .start = POODLE_IRQ_GPIO_TP_INT,
164 .end = POODLE_IRQ_GPIO_TP_INT,
165 .flags = IORESOURCE_IRQ,
166 },
167}; 215};
168 216
169static unsigned long poodle_get_hsync_invperiod(void) 217static void ads7846_cs(u32 command)
170{ 218{
171 return 0; 219 gpio_set_value(POODLE_GPIO_TP_CS, !(command == PXA2XX_CS_ASSERT));
172} 220}
173 221
174static void poodle_null_hsync(void) 222static struct pxa2xx_spi_chip poodle_ads7846_chip = {
175{ 223 .cs_control = ads7846_cs,
176}
177
178static struct corgits_machinfo poodle_ts_machinfo = {
179 .get_hsync_invperiod = poodle_get_hsync_invperiod,
180 .put_hsync = poodle_null_hsync,
181 .wait_hsync = poodle_null_hsync,
182}; 224};
183 225
184static struct platform_device poodle_ts_device = { 226static struct spi_board_info poodle_spi_devices[] = {
185 .name = "corgi-ts", 227 {
186 .dev = { 228 .modalias = "ads7846",
187 .platform_data = &poodle_ts_machinfo, 229 .max_speed_hz = 10000,
230 .bus_num = 1,
231 .platform_data = &poodle_ads7846_info,
232 .controller_data= &poodle_ads7846_chip,
233 .irq = gpio_to_irq(POODLE_GPIO_TP_INT),
188 }, 234 },
189 .id = -1,
190 .num_resources = ARRAY_SIZE(poodlets_resources),
191 .resource = poodlets_resources,
192}; 235};
193 236
237static void __init poodle_init_spi(void)
238{
239 int err;
240
241 err = gpio_request(POODLE_GPIO_TP_CS, "ADS7846_CS");
242 if (err)
243 return;
244
245 gpio_direction_output(POODLE_GPIO_TP_CS, 1);
246
247 pxa2xx_set_spi_info(1, &poodle_spi_info);
248 spi_register_board_info(ARRAY_AND_SIZE(poodle_spi_devices));
249}
250#else
251static inline void poodle_init_spi(void) {}
252#endif
194 253
195/* 254/*
196 * MMC/SD Device 255 * MMC/SD Device
@@ -204,22 +263,50 @@ static int poodle_mci_init(struct device *dev, irq_handler_t poodle_detect_int,
204{ 263{
205 int err; 264 int err;
206 265
207 /* setup GPIO for PXA25x MMC controller */ 266 err = gpio_request(POODLE_GPIO_nSD_DETECT, "nSD_DETECT");
208 pxa_gpio_mode(GPIO6_MMCCLK_MD); 267 if (err)
209 pxa_gpio_mode(GPIO8_MMCCS0_MD); 268 goto err_out;
210 pxa_gpio_mode(POODLE_GPIO_nSD_DETECT | GPIO_IN); 269
211 pxa_gpio_mode(POODLE_GPIO_nSD_WP | GPIO_IN); 270 err = gpio_request(POODLE_GPIO_nSD_WP, "nSD_WP");
212 pxa_gpio_mode(POODLE_GPIO_SD_PWR | GPIO_OUT); 271 if (err)
213 pxa_gpio_mode(POODLE_GPIO_SD_PWR1 | GPIO_OUT); 272 goto err_free_1;
273
274 err = gpio_request(POODLE_GPIO_SD_PWR, "SD_PWR");
275 if (err)
276 goto err_free_2;
277
278 err = gpio_request(POODLE_GPIO_SD_PWR1, "SD_PWR1");
279 if (err)
280 goto err_free_3;
281
282 gpio_direction_input(POODLE_GPIO_nSD_DETECT);
283 gpio_direction_input(POODLE_GPIO_nSD_WP);
284
285 gpio_direction_output(POODLE_GPIO_SD_PWR, 0);
286 gpio_direction_output(POODLE_GPIO_SD_PWR1, 0);
214 287
215 poodle_mci_platform_data.detect_delay = msecs_to_jiffies(250); 288 poodle_mci_platform_data.detect_delay = msecs_to_jiffies(250);
216 289
217 err = request_irq(POODLE_IRQ_GPIO_nSD_DETECT, poodle_detect_int, 290 err = request_irq(POODLE_IRQ_GPIO_nSD_DETECT, poodle_detect_int,
218 IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, 291 IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING,
219 "MMC card detect", data); 292 "MMC card detect", data);
220 if (err) 293 if (err) {
221 printk(KERN_ERR "poodle_mci_init: MMC/SD: can't request MMC card detect IRQ\n"); 294 pr_err("%s: MMC/SD: can't request MMC card detect IRQ\n",
295 __func__);
296 goto err_free_4;
297 }
298
299 return 0;
222 300
301err_free_4:
302 gpio_free(POODLE_GPIO_SD_PWR1);
303err_free_3:
304 gpio_free(POODLE_GPIO_SD_PWR);
305err_free_2:
306 gpio_free(POODLE_GPIO_nSD_WP);
307err_free_1:
308 gpio_free(POODLE_GPIO_nSD_DETECT);
309err_out:
223 return err; 310 return err;
224} 311}
225 312
@@ -227,18 +314,19 @@ static void poodle_mci_setpower(struct device *dev, unsigned int vdd)
227{ 314{
228 struct pxamci_platform_data* p_d = dev->platform_data; 315 struct pxamci_platform_data* p_d = dev->platform_data;
229 316
230 if (( 1 << vdd) & p_d->ocr_mask) { 317 if ((1 << vdd) & p_d->ocr_mask) {
231 GPSR(POODLE_GPIO_SD_PWR) = GPIO_bit(POODLE_GPIO_SD_PWR); 318 gpio_set_value(POODLE_GPIO_SD_PWR, 1);
232 mdelay(2); 319 mdelay(2);
233 GPSR(POODLE_GPIO_SD_PWR1) = GPIO_bit(POODLE_GPIO_SD_PWR1); 320 gpio_set_value(POODLE_GPIO_SD_PWR1, 1);
234 } else { 321 } else {
235 GPCR(POODLE_GPIO_SD_PWR1) = GPIO_bit(POODLE_GPIO_SD_PWR1); 322 gpio_set_value(POODLE_GPIO_SD_PWR1, 0);
236 GPCR(POODLE_GPIO_SD_PWR) = GPIO_bit(POODLE_GPIO_SD_PWR); 323 gpio_set_value(POODLE_GPIO_SD_PWR, 0);
237 } 324 }
238} 325}
239 326
240static int poodle_mci_get_ro(struct device *dev) 327static int poodle_mci_get_ro(struct device *dev)
241{ 328{
329 return !!gpio_get_value(POODLE_GPIO_nSD_WP);
242 return GPLR(POODLE_GPIO_nSD_WP) & GPIO_bit(POODLE_GPIO_nSD_WP); 330 return GPLR(POODLE_GPIO_nSD_WP) & GPIO_bit(POODLE_GPIO_nSD_WP);
243} 331}
244 332
@@ -246,6 +334,10 @@ static int poodle_mci_get_ro(struct device *dev)
246static void poodle_mci_exit(struct device *dev, void *data) 334static void poodle_mci_exit(struct device *dev, void *data)
247{ 335{
248 free_irq(POODLE_IRQ_GPIO_nSD_DETECT, data); 336 free_irq(POODLE_IRQ_GPIO_nSD_DETECT, data);
337 gpio_free(POODLE_GPIO_SD_PWR1);
338 gpio_free(POODLE_GPIO_SD_PWR);
339 gpio_free(POODLE_GPIO_nSD_WP);
340 gpio_free(POODLE_GPIO_nSD_DETECT);
249} 341}
250 342
251static struct pxamci_platform_data poodle_mci_platform_data = { 343static struct pxamci_platform_data poodle_mci_platform_data = {
@@ -262,38 +354,41 @@ static struct pxamci_platform_data poodle_mci_platform_data = {
262 */ 354 */
263static void poodle_irda_transceiver_mode(struct device *dev, int mode) 355static void poodle_irda_transceiver_mode(struct device *dev, int mode)
264{ 356{
265 if (mode & IR_OFF) { 357 gpio_set_value(POODLE_GPIO_IR_ON, mode & IR_OFF);
266 GPSR(POODLE_GPIO_IR_ON) = GPIO_bit(POODLE_GPIO_IR_ON);
267 } else {
268 GPCR(POODLE_GPIO_IR_ON) = GPIO_bit(POODLE_GPIO_IR_ON);
269 }
270 pxa2xx_transceiver_mode(dev, mode); 358 pxa2xx_transceiver_mode(dev, mode);
271} 359}
272 360
361static int poodle_irda_startup(struct device *dev)
362{
363 int err;
364
365 err = gpio_request(POODLE_GPIO_IR_ON, "IR_ON");
366 if (err)
367 return err;
368
369 gpio_direction_output(POODLE_GPIO_IR_ON, 1);
370 return 0;
371}
372
373static void poodle_irda_shutdown(struct device *dev)
374{
375 gpio_free(POODLE_GPIO_IR_ON);
376}
377
273static struct pxaficp_platform_data poodle_ficp_platform_data = { 378static struct pxaficp_platform_data poodle_ficp_platform_data = {
274 .transceiver_cap = IR_SIRMODE | IR_OFF, 379 .transceiver_cap = IR_SIRMODE | IR_OFF,
275 .transceiver_mode = poodle_irda_transceiver_mode, 380 .transceiver_mode = poodle_irda_transceiver_mode,
381 .startup = poodle_irda_startup,
382 .shutdown = poodle_irda_shutdown,
276}; 383};
277 384
278 385
279/* 386/*
280 * USB Device Controller 387 * USB Device Controller
281 */ 388 */
282static void poodle_udc_command(int cmd)
283{
284 switch(cmd) {
285 case PXA2XX_UDC_CMD_CONNECT:
286 GPSR(POODLE_GPIO_USB_PULLUP) = GPIO_bit(POODLE_GPIO_USB_PULLUP);
287 break;
288 case PXA2XX_UDC_CMD_DISCONNECT:
289 GPCR(POODLE_GPIO_USB_PULLUP) = GPIO_bit(POODLE_GPIO_USB_PULLUP);
290 break;
291 }
292}
293
294static struct pxa2xx_udc_mach_info udc_info __initdata = { 389static struct pxa2xx_udc_mach_info udc_info __initdata = {
295 /* no connect GPIO; poodle can't tell connection status */ 390 /* no connect GPIO; poodle can't tell connection status */
296 .udc_command = poodle_udc_command, 391 .gpio_pullup = POODLE_GPIO_USB_PULLUP,
297}; 392};
298 393
299 394
@@ -315,15 +410,12 @@ static struct pxafb_mode_info poodle_fb_mode = {
315static struct pxafb_mach_info poodle_fb_info = { 410static struct pxafb_mach_info poodle_fb_info = {
316 .modes = &poodle_fb_mode, 411 .modes = &poodle_fb_mode,
317 .num_modes = 1, 412 .num_modes = 1,
318 .lccr0 = LCCR0_Act | LCCR0_Sngl | LCCR0_Color, 413 .lcd_conn = LCD_COLOR_TFT_16BPP,
319 .lccr3 = 0,
320}; 414};
321 415
322static struct platform_device *devices[] __initdata = { 416static struct platform_device *devices[] __initdata = {
323 &poodle_locomo_device, 417 &poodle_locomo_device,
324 &poodle_scoop_device, 418 &poodle_scoop_device,
325 &poodle_ssp_device,
326 &poodle_ts_device,
327}; 419};
328 420
329static void poodle_poweroff(void) 421static void poodle_poweroff(void)
@@ -343,58 +435,23 @@ static void __init poodle_init(void)
343 pm_power_off = poodle_poweroff; 435 pm_power_off = poodle_poweroff;
344 arm_pm_restart = poodle_restart; 436 arm_pm_restart = poodle_restart;
345 437
346 /* setup sleep mode values */
347 PWER = 0x00000002;
348 PFER = 0x00000000;
349 PRER = 0x00000002;
350 PGSR0 = 0x00008000;
351 PGSR1 = 0x003F0202;
352 PGSR2 = 0x0001C000;
353 PCFR |= PCFR_OPDE; 438 PCFR |= PCFR_OPDE;
354 439
355 /* cpu initialize */ 440 pxa2xx_mfp_config(ARRAY_AND_SIZE(poodle_pin_config));
356 /* Pgsr Register */ 441
357 PGSR0 = 0x0146dd80; 442 platform_scoop_config = &poodle_pcmcia_config;
358 PGSR1 = 0x03bf0890; 443
359 PGSR2 = 0x0001c000; 444 ret = platform_add_devices(devices, ARRAY_SIZE(devices));
360 445 if (ret)
361 /* Alternate Register */ 446 pr_warning("poodle: Unable to register LoCoMo device\n");
362 GAFR0_L = 0x01001000;
363 GAFR0_U = 0x591a8010;
364 GAFR1_L = 0x900a8451;
365 GAFR1_U = 0xaaa5aaaa;
366 GAFR2_L = 0x8aaaaaaa;
367 GAFR2_U = 0x00000002;
368
369 /* Direction Register */
370 GPDR0 = 0xd3f0904c;
371 GPDR1 = 0xfcffb7d3;
372 GPDR2 = 0x0001ffff;
373
374 /* Output Register */
375 GPCR0 = 0x00000000;
376 GPCR1 = 0x00000000;
377 GPCR2 = 0x00000000;
378
379 GPSR0 = 0x00400000;
380 GPSR1 = 0x00000000;
381 GPSR2 = 0x00000000;
382 447
383 set_pxa_fb_parent(&poodle_locomo_device.dev); 448 set_pxa_fb_parent(&poodle_locomo_device.dev);
384 set_pxa_fb_info(&poodle_fb_info); 449 set_pxa_fb_info(&poodle_fb_info);
385 pxa_gpio_mode(POODLE_GPIO_USB_PULLUP | GPIO_OUT);
386 pxa_gpio_mode(POODLE_GPIO_IR_ON | GPIO_OUT);
387 pxa_set_udc_info(&udc_info); 450 pxa_set_udc_info(&udc_info);
388 pxa_set_mci_info(&poodle_mci_platform_data); 451 pxa_set_mci_info(&poodle_mci_platform_data);
389 pxa_set_ficp_info(&poodle_ficp_platform_data); 452 pxa_set_ficp_info(&poodle_ficp_platform_data);
390 453 pxa_set_i2c_info(NULL);
391 platform_scoop_config = &poodle_pcmcia_config; 454 poodle_init_spi();
392
393 ret = platform_add_devices(devices, ARRAY_SIZE(devices));
394 if (ret) {
395 printk(KERN_WARNING "poodle: Unable to register LoCoMo device\n");
396 }
397 corgi_ssp_set_machinfo(&poodle_ssp_machinfo);
398} 455}
399 456
400static void __init fixup_poodle(struct machine_desc *desc, 457static void __init fixup_poodle(struct machine_desc *desc,
diff --git a/arch/arm/mach-pxa/pxa25x.c b/arch/arm/mach-pxa/pxa25x.c
index 305452b56e91..25d17a1dab78 100644
--- a/arch/arm/mach-pxa/pxa25x.c
+++ b/arch/arm/mach-pxa/pxa25x.c
@@ -36,6 +36,12 @@
36#include "devices.h" 36#include "devices.h"
37#include "clock.h" 37#include "clock.h"
38 38
39int cpu_is_pxa26x(void)
40{
41 return cpu_is_pxa250() && ((BOOT_DEF & 0x8) == 0);
42}
43EXPORT_SYMBOL_GPL(cpu_is_pxa26x);
44
39/* 45/*
40 * Various clock factors driven by the CCCR register. 46 * Various clock factors driven by the CCCR register.
41 */ 47 */
@@ -203,48 +209,21 @@ static struct clk pxa25x_clks[] = {
203 * More ones like CP and general purpose register values are preserved 209 * More ones like CP and general purpose register values are preserved
204 * with the stack pointer in sleep.S. 210 * with the stack pointer in sleep.S.
205 */ 211 */
206enum { SLEEP_SAVE_PGSR0, SLEEP_SAVE_PGSR1, SLEEP_SAVE_PGSR2, 212enum {
207
208 SLEEP_SAVE_GAFR0_L, SLEEP_SAVE_GAFR0_U,
209 SLEEP_SAVE_GAFR1_L, SLEEP_SAVE_GAFR1_U,
210 SLEEP_SAVE_GAFR2_L, SLEEP_SAVE_GAFR2_U,
211
212 SLEEP_SAVE_PSTR, 213 SLEEP_SAVE_PSTR,
213
214 SLEEP_SAVE_CKEN, 214 SLEEP_SAVE_CKEN,
215
216 SLEEP_SAVE_COUNT 215 SLEEP_SAVE_COUNT
217}; 216};
218 217
219 218
220static void pxa25x_cpu_pm_save(unsigned long *sleep_save) 219static void pxa25x_cpu_pm_save(unsigned long *sleep_save)
221{ 220{
222 SAVE(PGSR0); SAVE(PGSR1); SAVE(PGSR2);
223
224 SAVE(GAFR0_L); SAVE(GAFR0_U);
225 SAVE(GAFR1_L); SAVE(GAFR1_U);
226 SAVE(GAFR2_L); SAVE(GAFR2_U);
227
228 SAVE(CKEN); 221 SAVE(CKEN);
229 SAVE(PSTR); 222 SAVE(PSTR);
230
231 /* Clear GPIO transition detect bits */
232 GEDR0 = GEDR0; GEDR1 = GEDR1; GEDR2 = GEDR2;
233} 223}
234 224
235static void pxa25x_cpu_pm_restore(unsigned long *sleep_save) 225static void pxa25x_cpu_pm_restore(unsigned long *sleep_save)
236{ 226{
237 /* ensure not to come back here if it wasn't intended */
238 PSPR = 0;
239
240 /* restore registers */
241 RESTORE(GAFR0_L); RESTORE(GAFR0_U);
242 RESTORE(GAFR1_L); RESTORE(GAFR1_U);
243 RESTORE(GAFR2_L); RESTORE(GAFR2_U);
244 RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2);
245
246 PSSR = PSSR_RDH | PSSR_PH;
247
248 RESTORE(CKEN); 227 RESTORE(CKEN);
249 RESTORE(PSTR); 228 RESTORE(PSTR);
250} 229}
@@ -256,19 +235,32 @@ static void pxa25x_cpu_pm_enter(suspend_state_t state)
256 235
257 switch (state) { 236 switch (state) {
258 case PM_SUSPEND_MEM: 237 case PM_SUSPEND_MEM:
259 /* set resume return address */
260 PSPR = virt_to_phys(pxa_cpu_resume);
261 pxa25x_cpu_suspend(PWRMODE_SLEEP); 238 pxa25x_cpu_suspend(PWRMODE_SLEEP);
262 break; 239 break;
263 } 240 }
264} 241}
265 242
243static int pxa25x_cpu_pm_prepare(void)
244{
245 /* set resume return address */
246 PSPR = virt_to_phys(pxa_cpu_resume);
247 return 0;
248}
249
250static void pxa25x_cpu_pm_finish(void)
251{
252 /* ensure not to come back here if it wasn't intended */
253 PSPR = 0;
254}
255
266static struct pxa_cpu_pm_fns pxa25x_cpu_pm_fns = { 256static struct pxa_cpu_pm_fns pxa25x_cpu_pm_fns = {
267 .save_count = SLEEP_SAVE_COUNT, 257 .save_count = SLEEP_SAVE_COUNT,
268 .valid = suspend_valid_only_mem, 258 .valid = suspend_valid_only_mem,
269 .save = pxa25x_cpu_pm_save, 259 .save = pxa25x_cpu_pm_save,
270 .restore = pxa25x_cpu_pm_restore, 260 .restore = pxa25x_cpu_pm_restore,
271 .enter = pxa25x_cpu_pm_enter, 261 .enter = pxa25x_cpu_pm_enter,
262 .prepare = pxa25x_cpu_pm_prepare,
263 .finish = pxa25x_cpu_pm_finish,
272}; 264};
273 265
274static void __init pxa25x_init_pm(void) 266static void __init pxa25x_init_pm(void)
@@ -330,6 +322,8 @@ static struct sys_device pxa25x_sysdev[] = {
330 { 322 {
331 .cls = &pxa_irq_sysclass, 323 .cls = &pxa_irq_sysclass,
332 }, { 324 }, {
325 .cls = &pxa2xx_mfp_sysclass,
326 }, {
333 .cls = &pxa_gpio_sysclass, 327 .cls = &pxa_gpio_sysclass,
334 }, 328 },
335}; 329};
@@ -338,11 +332,7 @@ static int __init pxa25x_init(void)
338{ 332{
339 int i, ret = 0; 333 int i, ret = 0;
340 334
341 /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ 335 if (cpu_is_pxa25x()) {
342 if (cpu_is_pxa255())
343 clks_register(&pxa25x_hwuart_clk, 1);
344
345 if (cpu_is_pxa21x() || cpu_is_pxa25x()) {
346 336
347 reset_status = RCSR; 337 reset_status = RCSR;
348 338
@@ -365,9 +355,11 @@ static int __init pxa25x_init(void)
365 return ret; 355 return ret;
366 } 356 }
367 357
368 /* Only add HWUART for PXA255/26x; PXA210/250/27x do not have it. */ 358 /* Only add HWUART for PXA255/26x; PXA210/250 do not have it. */
369 if (cpu_is_pxa255()) 359 if (cpu_is_pxa255() || cpu_is_pxa26x()) {
360 clks_register(&pxa25x_hwuart_clk, 1);
370 ret = platform_device_register(&pxa_device_hwuart); 361 ret = platform_device_register(&pxa_device_hwuart);
362 }
371 363
372 return ret; 364 return ret;
373} 365}
diff --git a/arch/arm/mach-pxa/pxa27x.c b/arch/arm/mach-pxa/pxa27x.c
index f9f6a9c31f4b..3e4ab2279c99 100644
--- a/arch/arm/mach-pxa/pxa27x.c
+++ b/arch/arm/mach-pxa/pxa27x.c
@@ -34,6 +34,13 @@
34#include "devices.h" 34#include "devices.h"
35#include "clock.h" 35#include "clock.h"
36 36
37void pxa27x_clear_otgph(void)
38{
39 if (cpu_is_pxa27x() && (PSSR & PSSR_OTGPH))
40 PSSR |= PSSR_OTGPH;
41}
42EXPORT_SYMBOL(pxa27x_clear_otgph);
43
37/* Crystal clock: 13MHz */ 44/* Crystal clock: 13MHz */
38#define BASE_CLK 13000000 45#define BASE_CLK 13000000
39 46
@@ -183,36 +190,18 @@ static struct clk pxa27x_clks[] = {
183 * More ones like CP and general purpose register values are preserved 190 * More ones like CP and general purpose register values are preserved
184 * with the stack pointer in sleep.S. 191 * with the stack pointer in sleep.S.
185 */ 192 */
186enum { SLEEP_SAVE_PGSR0, SLEEP_SAVE_PGSR1, SLEEP_SAVE_PGSR2, SLEEP_SAVE_PGSR3, 193enum {
187
188 SLEEP_SAVE_GAFR0_L, SLEEP_SAVE_GAFR0_U,
189 SLEEP_SAVE_GAFR1_L, SLEEP_SAVE_GAFR1_U,
190 SLEEP_SAVE_GAFR2_L, SLEEP_SAVE_GAFR2_U,
191 SLEEP_SAVE_GAFR3_L, SLEEP_SAVE_GAFR3_U,
192
193 SLEEP_SAVE_PSTR, 194 SLEEP_SAVE_PSTR,
194
195 SLEEP_SAVE_CKEN, 195 SLEEP_SAVE_CKEN,
196
197 SLEEP_SAVE_MDREFR, 196 SLEEP_SAVE_MDREFR,
198 SLEEP_SAVE_PWER, SLEEP_SAVE_PCFR, SLEEP_SAVE_PRER, 197 SLEEP_SAVE_PCFR,
199 SLEEP_SAVE_PFER, SLEEP_SAVE_PKWR,
200
201 SLEEP_SAVE_COUNT 198 SLEEP_SAVE_COUNT
202}; 199};
203 200
204void pxa27x_cpu_pm_save(unsigned long *sleep_save) 201void pxa27x_cpu_pm_save(unsigned long *sleep_save)
205{ 202{
206 SAVE(PGSR0); SAVE(PGSR1); SAVE(PGSR2); SAVE(PGSR3);
207
208 SAVE(GAFR0_L); SAVE(GAFR0_U);
209 SAVE(GAFR1_L); SAVE(GAFR1_U);
210 SAVE(GAFR2_L); SAVE(GAFR2_U);
211 SAVE(GAFR3_L); SAVE(GAFR3_U);
212
213 SAVE(MDREFR); 203 SAVE(MDREFR);
214 SAVE(PWER); SAVE(PCFR); SAVE(PRER); 204 SAVE(PCFR);
215 SAVE(PFER); SAVE(PKWR);
216 205
217 SAVE(CKEN); 206 SAVE(CKEN);
218 SAVE(PSTR); 207 SAVE(PSTR);
@@ -220,24 +209,12 @@ void pxa27x_cpu_pm_save(unsigned long *sleep_save)
220 209
221void pxa27x_cpu_pm_restore(unsigned long *sleep_save) 210void pxa27x_cpu_pm_restore(unsigned long *sleep_save)
222{ 211{
223 /* ensure not to come back here if it wasn't intended */
224 PSPR = 0;
225
226 /* restore registers */
227 RESTORE(GAFR0_L); RESTORE(GAFR0_U);
228 RESTORE(GAFR1_L); RESTORE(GAFR1_U);
229 RESTORE(GAFR2_L); RESTORE(GAFR2_U);
230 RESTORE(GAFR3_L); RESTORE(GAFR3_U);
231 RESTORE(PGSR0); RESTORE(PGSR1); RESTORE(PGSR2); RESTORE(PGSR3);
232
233 RESTORE(MDREFR); 212 RESTORE(MDREFR);
234 RESTORE(PWER); RESTORE(PCFR); RESTORE(PRER); 213 RESTORE(PCFR);
235 RESTORE(PFER); RESTORE(PKWR);
236 214
237 PSSR = PSSR_RDH | PSSR_PH; 215 PSSR = PSSR_RDH | PSSR_PH;
238 216
239 RESTORE(CKEN); 217 RESTORE(CKEN);
240
241 RESTORE(PSTR); 218 RESTORE(PSTR);
242} 219}
243 220
@@ -259,8 +236,6 @@ void pxa27x_cpu_pm_enter(suspend_state_t state)
259 pxa_cpu_standby(); 236 pxa_cpu_standby();
260 break; 237 break;
261 case PM_SUSPEND_MEM: 238 case PM_SUSPEND_MEM:
262 /* set resume return address */
263 PSPR = virt_to_phys(pxa_cpu_resume);
264 pxa27x_cpu_suspend(PWRMODE_SLEEP); 239 pxa27x_cpu_suspend(PWRMODE_SLEEP);
265 break; 240 break;
266 } 241 }
@@ -271,12 +246,27 @@ static int pxa27x_cpu_pm_valid(suspend_state_t state)
271 return state == PM_SUSPEND_MEM || state == PM_SUSPEND_STANDBY; 246 return state == PM_SUSPEND_MEM || state == PM_SUSPEND_STANDBY;
272} 247}
273 248
249static int pxa27x_cpu_pm_prepare(void)
250{
251 /* set resume return address */
252 PSPR = virt_to_phys(pxa_cpu_resume);
253 return 0;
254}
255
256static void pxa27x_cpu_pm_finish(void)
257{
258 /* ensure not to come back here if it wasn't intended */
259 PSPR = 0;
260}
261
274static struct pxa_cpu_pm_fns pxa27x_cpu_pm_fns = { 262static struct pxa_cpu_pm_fns pxa27x_cpu_pm_fns = {
275 .save_count = SLEEP_SAVE_COUNT, 263 .save_count = SLEEP_SAVE_COUNT,
276 .save = pxa27x_cpu_pm_save, 264 .save = pxa27x_cpu_pm_save,
277 .restore = pxa27x_cpu_pm_restore, 265 .restore = pxa27x_cpu_pm_restore,
278 .valid = pxa27x_cpu_pm_valid, 266 .valid = pxa27x_cpu_pm_valid,
279 .enter = pxa27x_cpu_pm_enter, 267 .enter = pxa27x_cpu_pm_enter,
268 .prepare = pxa27x_cpu_pm_prepare,
269 .finish = pxa27x_cpu_pm_finish,
280}; 270};
281 271
282static void __init pxa27x_init_pm(void) 272static void __init pxa27x_init_pm(void)
@@ -349,7 +339,7 @@ struct platform_device pxa27x_device_i2c_power = {
349 .num_resources = ARRAY_SIZE(i2c_power_resources), 339 .num_resources = ARRAY_SIZE(i2c_power_resources),
350}; 340};
351 341
352void __init pxa_set_i2c_power_info(struct i2c_pxa_platform_data *info) 342void __init pxa27x_set_i2c_power_info(struct i2c_pxa_platform_data *info)
353{ 343{
354 local_irq_disable(); 344 local_irq_disable();
355 PCFR |= PCFR_PI2CEN; 345 PCFR |= PCFR_PI2CEN;
@@ -376,6 +366,8 @@ static struct sys_device pxa27x_sysdev[] = {
376 { 366 {
377 .cls = &pxa_irq_sysclass, 367 .cls = &pxa_irq_sysclass,
378 }, { 368 }, {
369 .cls = &pxa2xx_mfp_sysclass,
370 }, {
379 .cls = &pxa_gpio_sysclass, 371 .cls = &pxa_gpio_sysclass,
380 }, 372 },
381}; 373};
diff --git a/arch/arm/mach-pxa/pxa3xx.c b/arch/arm/mach-pxa/pxa3xx.c
index 03cbc38103ed..b3cd5d0b0f35 100644
--- a/arch/arm/mach-pxa/pxa3xx.c
+++ b/arch/arm/mach-pxa/pxa3xx.c
@@ -203,6 +203,19 @@ static const struct clkops clk_pout_ops = {
203 .disable = clk_pout_disable, 203 .disable = clk_pout_disable,
204}; 204};
205 205
206static void clk_dummy_enable(struct clk *clk)
207{
208}
209
210static void clk_dummy_disable(struct clk *clk)
211{
212}
213
214static const struct clkops clk_dummy_ops = {
215 .enable = clk_dummy_enable,
216 .disable = clk_dummy_disable,
217};
218
206static struct clk pxa3xx_clks[] = { 219static struct clk pxa3xx_clks[] = {
207 { 220 {
208 .name = "CLK_POUT", 221 .name = "CLK_POUT",
@@ -211,6 +224,13 @@ static struct clk pxa3xx_clks[] = {
211 .delay = 70, 224 .delay = 70,
212 }, 225 },
213 226
227 /* Power I2C clock is always on */
228 {
229 .name = "I2CCLK",
230 .ops = &clk_dummy_ops,
231 .dev = &pxa3xx_device_i2c_power.dev,
232 },
233
214 PXA3xx_CK("LCDCLK", LCD, &clk_pxa3xx_hsio_ops, &pxa_device_fb.dev), 234 PXA3xx_CK("LCDCLK", LCD, &clk_pxa3xx_hsio_ops, &pxa_device_fb.dev),
215 PXA3xx_CK("CAMCLK", CAMERA, &clk_pxa3xx_hsio_ops, NULL), 235 PXA3xx_CK("CAMCLK", CAMERA, &clk_pxa3xx_hsio_ops, NULL),
216 PXA3xx_CK("AC97CLK", AC97, &clk_pxa3xx_ac97_ops, NULL), 236 PXA3xx_CK("AC97CLK", AC97, &clk_pxa3xx_ac97_ops, NULL),
@@ -509,6 +529,30 @@ void __init pxa3xx_init_irq(void)
509 * device registration specific to PXA3xx. 529 * device registration specific to PXA3xx.
510 */ 530 */
511 531
532static struct resource i2c_power_resources[] = {
533 {
534 .start = 0x40f500c0,
535 .end = 0x40f500d3,
536 .flags = IORESOURCE_MEM,
537 }, {
538 .start = IRQ_PWRI2C,
539 .end = IRQ_PWRI2C,
540 .flags = IORESOURCE_IRQ,
541 },
542};
543
544struct platform_device pxa3xx_device_i2c_power = {
545 .name = "pxa2xx-i2c",
546 .id = 1,
547 .resource = i2c_power_resources,
548 .num_resources = ARRAY_SIZE(i2c_power_resources),
549};
550
551void __init pxa3xx_set_i2c_power_info(struct i2c_pxa_platform_data *info)
552{
553 pxa3xx_device_i2c_power.dev.platform_data = info;
554}
555
512static struct platform_device *devices[] __initdata = { 556static struct platform_device *devices[] __initdata = {
513/* &pxa_device_udc, The UDC driver is PXA25x only */ 557/* &pxa_device_udc, The UDC driver is PXA25x only */
514 &pxa_device_ffuart, 558 &pxa_device_ffuart,
@@ -522,6 +566,7 @@ static struct platform_device *devices[] __initdata = {
522 &pxa3xx_device_ssp4, 566 &pxa3xx_device_ssp4,
523 &pxa27x_device_pwm0, 567 &pxa27x_device_pwm0,
524 &pxa27x_device_pwm1, 568 &pxa27x_device_pwm1,
569 &pxa3xx_device_i2c_power,
525}; 570};
526 571
527static struct sys_device pxa3xx_sysdev[] = { 572static struct sys_device pxa3xx_sysdev[] = {
diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c
index 9996c612c3d6..31d78855aac8 100644
--- a/arch/arm/mach-pxa/reset.c
+++ b/arch/arm/mach-pxa/reset.c
@@ -7,7 +7,7 @@
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/delay.h> 8#include <linux/delay.h>
9#include <linux/gpio.h> 9#include <linux/gpio.h>
10#include <asm/io.h> 10#include <linux/io.h>
11#include <asm/proc-fns.h> 11#include <asm/proc-fns.h>
12 12
13#include <mach/pxa-regs.h> 13#include <mach/pxa-regs.h>
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index e804ae09370c..15c2f1a8623b 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -116,24 +116,20 @@ struct battery_thresh spitz_battery_levels_noac[] = {
116 { 0, 0}, 116 { 0, 0},
117}; 117};
118 118
119/* MAX1111 Commands */
120#define MAXCTRL_PD0 1u << 0
121#define MAXCTRL_PD1 1u << 1
122#define MAXCTRL_SGL 1u << 2
123#define MAXCTRL_UNI 1u << 3
124#define MAXCTRL_SEL_SH 4
125#define MAXCTRL_STR 1u << 7
126
127/* 119/*
128 * Read MAX1111 ADC 120 * Read MAX1111 ADC
129 */ 121 */
122extern int max1111_read_channel(int);
123
130int sharpsl_pm_pxa_read_max1111(int channel) 124int sharpsl_pm_pxa_read_max1111(int channel)
131{ 125{
132 if (machine_is_tosa()) // Ugly, better move this function into another module 126 if (machine_is_tosa()) // Ugly, better move this function into another module
133 return 0; 127 return 0;
134 128
135 return corgi_ssp_max1111_get((channel << MAXCTRL_SEL_SH) | MAXCTRL_PD0 | MAXCTRL_PD1 129 /* max1111 accepts channels from 0-3, however,
136 | MAXCTRL_SGL | MAXCTRL_UNI | MAXCTRL_STR); 130 * it is encoded from 0-7 here in the code.
131 */
132 return max1111_read_channel(channel >> 1);
137} 133}
138 134
139void sharpsl_pm_pxa_init(void) 135void sharpsl_pm_pxa_init(void)
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index cd39005c98ff..9b4f24c7c055 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -19,16 +19,23 @@
19#include <linux/major.h> 19#include <linux/major.h>
20#include <linux/fs.h> 20#include <linux/fs.h>
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/gpio.h>
23#include <linux/leds.h>
22#include <linux/mmc/host.h> 24#include <linux/mmc/host.h>
23#include <linux/pm.h> 25#include <linux/pm.h>
24#include <linux/backlight.h> 26#include <linux/backlight.h>
27#include <linux/io.h>
28#include <linux/i2c.h>
29#include <linux/i2c/pca953x.h>
30#include <linux/spi/spi.h>
31#include <linux/spi/ads7846.h>
32#include <linux/spi/corgi_lcd.h>
25 33
26#include <asm/setup.h> 34#include <asm/setup.h>
27#include <asm/memory.h> 35#include <asm/memory.h>
28#include <asm/mach-types.h> 36#include <asm/mach-types.h>
29#include <mach/hardware.h> 37#include <mach/hardware.h>
30#include <asm/irq.h> 38#include <asm/irq.h>
31#include <asm/io.h>
32#include <asm/system.h> 39#include <asm/system.h>
33 40
34#include <asm/mach/arch.h> 41#include <asm/mach/arch.h>
@@ -37,15 +44,16 @@
37 44
38#include <mach/pxa-regs.h> 45#include <mach/pxa-regs.h>
39#include <mach/pxa2xx-regs.h> 46#include <mach/pxa2xx-regs.h>
40#include <mach/pxa2xx-gpio.h> 47#include <mach/mfp-pxa27x.h>
41#include <mach/pxa27x-udc.h> 48#include <mach/pxa27x-udc.h>
42#include <mach/reset.h> 49#include <mach/reset.h>
50#include <mach/i2c.h>
43#include <mach/irda.h> 51#include <mach/irda.h>
44#include <mach/mmc.h> 52#include <mach/mmc.h>
45#include <mach/ohci.h> 53#include <mach/ohci.h>
46#include <mach/udc.h> 54#include <mach/udc.h>
47#include <mach/pxafb.h> 55#include <mach/pxafb.h>
48#include <mach/akita.h> 56#include <mach/pxa2xx_spi.h>
49#include <mach/spitz.h> 57#include <mach/spitz.h>
50#include <mach/sharpsl.h> 58#include <mach/sharpsl.h>
51 59
@@ -56,6 +64,66 @@
56#include "devices.h" 64#include "devices.h"
57#include "sharpsl.h" 65#include "sharpsl.h"
58 66
67static unsigned long spitz_pin_config[] __initdata = {
68 /* Chip Selects */
69 GPIO78_nCS_2, /* SCOOP #2 */
70 GPIO80_nCS_4, /* SCOOP #1 */
71
72 /* LCD - 16bpp Active TFT */
73 GPIO58_LCD_LDD_0,
74 GPIO59_LCD_LDD_1,
75 GPIO60_LCD_LDD_2,
76 GPIO61_LCD_LDD_3,
77 GPIO62_LCD_LDD_4,
78 GPIO63_LCD_LDD_5,
79 GPIO64_LCD_LDD_6,
80 GPIO65_LCD_LDD_7,
81 GPIO66_LCD_LDD_8,
82 GPIO67_LCD_LDD_9,
83 GPIO68_LCD_LDD_10,
84 GPIO69_LCD_LDD_11,
85 GPIO70_LCD_LDD_12,
86 GPIO71_LCD_LDD_13,
87 GPIO72_LCD_LDD_14,
88 GPIO73_LCD_LDD_15,
89 GPIO74_LCD_FCLK,
90 GPIO75_LCD_LCLK,
91 GPIO76_LCD_PCLK,
92
93 /* PC Card */
94 GPIO48_nPOE,
95 GPIO49_nPWE,
96 GPIO50_nPIOR,
97 GPIO51_nPIOW,
98 GPIO85_nPCE_1,
99 GPIO54_nPCE_2,
100 GPIO79_PSKTSEL,
101 GPIO55_nPREG,
102 GPIO56_nPWAIT,
103 GPIO57_nIOIS16,
104
105 /* MMC */
106 GPIO32_MMC_CLK,
107 GPIO112_MMC_CMD,
108 GPIO92_MMC_DAT_0,
109 GPIO109_MMC_DAT_1,
110 GPIO110_MMC_DAT_2,
111 GPIO111_MMC_DAT_3,
112
113 /* GPIOs */
114 GPIO9_GPIO, /* SPITZ_GPIO_nSD_DETECT */
115 GPIO81_GPIO, /* SPITZ_GPIO_nSD_WP */
116 GPIO41_GPIO, /* SPITZ_GPIO_USB_CONNECT */
117 GPIO37_GPIO, /* SPITZ_GPIO_USB_HOST */
118 GPIO35_GPIO, /* SPITZ_GPIO_USB_DEVICE */
119 GPIO22_GPIO, /* SPITZ_GPIO_HSYNC */
120 GPIO94_GPIO, /* SPITZ_GPIO_CF_CD */
121 GPIO105_GPIO, /* SPITZ_GPIO_CF_IRQ */
122 GPIO106_GPIO, /* SPITZ_GPIO_CF2_IRQ */
123
124 GPIO1_GPIO | WAKEUP_ON_EDGE_RISE,
125};
126
59/* 127/*
60 * Spitz SCOOP Device #1 128 * Spitz SCOOP Device #1
61 */ 129 */
@@ -68,10 +136,11 @@ static struct resource spitz_scoop_resources[] = {
68}; 136};
69 137
70static struct scoop_config spitz_scoop_setup = { 138static struct scoop_config spitz_scoop_setup = {
71 .io_dir = SPITZ_SCP_IO_DIR, 139 .io_dir = SPITZ_SCP_IO_DIR,
72 .io_out = SPITZ_SCP_IO_OUT, 140 .io_out = SPITZ_SCP_IO_OUT,
73 .suspend_clr = SPITZ_SCP_SUS_CLR, 141 .suspend_clr = SPITZ_SCP_SUS_CLR,
74 .suspend_set = SPITZ_SCP_SUS_SET, 142 .suspend_set = SPITZ_SCP_SUS_SET,
143 .gpio_base = SPITZ_SCP_GPIO_BASE,
75}; 144};
76 145
77struct platform_device spitzscoop_device = { 146struct platform_device spitzscoop_device = {
@@ -96,10 +165,11 @@ static struct resource spitz_scoop2_resources[] = {
96}; 165};
97 166
98static struct scoop_config spitz_scoop2_setup = { 167static struct scoop_config spitz_scoop2_setup = {
99 .io_dir = SPITZ_SCP2_IO_DIR, 168 .io_dir = SPITZ_SCP2_IO_DIR,
100 .io_out = SPITZ_SCP2_IO_OUT, 169 .io_out = SPITZ_SCP2_IO_OUT,
101 .suspend_clr = SPITZ_SCP2_SUS_CLR, 170 .suspend_clr = SPITZ_SCP2_SUS_CLR,
102 .suspend_set = SPITZ_SCP2_SUS_SET, 171 .suspend_set = SPITZ_SCP2_SUS_SET,
172 .gpio_base = SPITZ_SCP2_GPIO_BASE,
103}; 173};
104 174
105struct platform_device spitzscoop2_device = { 175struct platform_device spitzscoop2_device = {
@@ -121,7 +191,7 @@ static void spitz_card_pwr_ctrl(int device, unsigned short new_cpr)
121 unsigned short cpr = read_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR); 191 unsigned short cpr = read_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR);
122 192
123 if (new_cpr & 0x0007) { 193 if (new_cpr & 0x0007) {
124 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CF_POWER); 194 gpio_set_value(SPITZ_GPIO_CF_POWER, 1);
125 if (!(cpr & 0x0002) && !(cpr & 0x0004)) 195 if (!(cpr & 0x0002) && !(cpr & 0x0004))
126 mdelay(5); 196 mdelay(5);
127 if (device == SPITZ_PWR_CF) 197 if (device == SPITZ_PWR_CF)
@@ -137,34 +207,13 @@ static void spitz_card_pwr_ctrl(int device, unsigned short new_cpr)
137 if (!(cpr & 0x0002) && !(cpr & 0x0004)) { 207 if (!(cpr & 0x0002) && !(cpr & 0x0004)) {
138 write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, 0x0000); 208 write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, 0x0000);
139 mdelay(1); 209 mdelay(1);
140 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CF_POWER); 210 gpio_set_value(SPITZ_GPIO_CF_POWER, 0);
141 } else { 211 } else {
142 write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, cpr | new_cpr); 212 write_scoop_reg(&spitzscoop_device.dev, SCOOP_CPR, cpr | new_cpr);
143 } 213 }
144 } 214 }
145} 215}
146 216
147static void spitz_pcmcia_init(void)
148{
149 /* Setup default state of GPIO outputs
150 before we enable them as outputs. */
151 GPSR(GPIO48_nPOE) = GPIO_bit(GPIO48_nPOE) |
152 GPIO_bit(GPIO49_nPWE) | GPIO_bit(GPIO50_nPIOR) |
153 GPIO_bit(GPIO51_nPIOW) | GPIO_bit(GPIO54_nPCE_2);
154 GPSR(GPIO85_nPCE_1) = GPIO_bit(GPIO85_nPCE_1);
155
156 pxa_gpio_mode(GPIO48_nPOE_MD);
157 pxa_gpio_mode(GPIO49_nPWE_MD);
158 pxa_gpio_mode(GPIO50_nPIOR_MD);
159 pxa_gpio_mode(GPIO51_nPIOW_MD);
160 pxa_gpio_mode(GPIO55_nPREG_MD);
161 pxa_gpio_mode(GPIO56_nPWAIT_MD);
162 pxa_gpio_mode(GPIO57_nIOIS16_MD);
163 pxa_gpio_mode(GPIO85_nPCE_1_MD);
164 pxa_gpio_mode(GPIO54_nPCE_2_MD);
165 pxa_gpio_mode(GPIO104_pSKTSEL_MD);
166}
167
168static void spitz_pcmcia_pwr(struct device *scoop, unsigned short cpr, int nr) 217static void spitz_pcmcia_pwr(struct device *scoop, unsigned short cpr, int nr)
169{ 218{
170 /* Only need to override behaviour for slot 0 */ 219 /* Only need to override behaviour for slot 0 */
@@ -190,165 +239,169 @@ static struct scoop_pcmcia_dev spitz_pcmcia_scoop[] = {
190static struct scoop_pcmcia_config spitz_pcmcia_config = { 239static struct scoop_pcmcia_config spitz_pcmcia_config = {
191 .devs = &spitz_pcmcia_scoop[0], 240 .devs = &spitz_pcmcia_scoop[0],
192 .num_devs = 2, 241 .num_devs = 2,
193 .pcmcia_init = spitz_pcmcia_init,
194 .power_ctrl = spitz_pcmcia_pwr, 242 .power_ctrl = spitz_pcmcia_pwr,
195}; 243};
196 244
197EXPORT_SYMBOL(spitzscoop_device); 245EXPORT_SYMBOL(spitzscoop_device);
198EXPORT_SYMBOL(spitzscoop2_device); 246EXPORT_SYMBOL(spitzscoop2_device);
199 247
200
201/* 248/*
202 * Spitz SSP Device 249 * Spitz Keyboard Device
203 *
204 * Set the parent as the scoop device because a lot of SSP devices
205 * also use scoop functions and this makes the power up/down order
206 * work correctly.
207 */ 250 */
208struct platform_device spitzssp_device = { 251static struct platform_device spitzkbd_device = {
209 .name = "corgi-ssp", 252 .name = "spitz-keyboard",
210 .dev = {
211 .parent = &spitzscoop_device.dev,
212 },
213 .id = -1, 253 .id = -1,
214}; 254};
215 255
216struct corgissp_machinfo spitz_ssp_machinfo = {
217 .port = 2,
218 .cs_lcdcon = SPITZ_GPIO_LCDCON_CS,
219 .cs_ads7846 = SPITZ_GPIO_ADS7846_CS,
220 .cs_max1111 = SPITZ_GPIO_MAX1111_CS,
221 .clk_lcdcon = 520,
222 .clk_ads7846 = 14,
223 .clk_max1111 = 56,
224};
225
226 256
227/* 257/*
228 * Spitz Backlight Device 258 * Spitz LEDs
229 */ 259 */
230static void spitz_bl_kick_battery(void) 260static struct gpio_led spitz_gpio_leds[] = {
231{ 261 {
232 void (*kick_batt)(void); 262 .name = "spitz:amber:charge",
233 263 .default_trigger = "sharpsl-charge",
234 kick_batt = symbol_get(sharpsl_battery_kick); 264 .gpio = SPITZ_GPIO_LED_ORANGE,
235 if (kick_batt) { 265 },
236 kick_batt(); 266 {
237 symbol_put(sharpsl_battery_kick); 267 .name = "spitz:green:hddactivity",
238 } 268 .default_trigger = "ide-disk",
239} 269 .gpio = SPITZ_GPIO_LED_GREEN,
240
241static struct generic_bl_info spitz_bl_machinfo = {
242 .name = "corgi-bl",
243 .default_intensity = 0x1f,
244 .limit_mask = 0x0b,
245 .max_intensity = 0x2f,
246 .kick_battery = spitz_bl_kick_battery,
247};
248
249static struct platform_device spitzbl_device = {
250 .name = "generic-bl",
251 .dev = {
252 .platform_data = &spitz_bl_machinfo,
253 }, 270 },
254 .id = -1,
255}; 271};
256 272
257 273static struct gpio_led_platform_data spitz_gpio_leds_info = {
258/* 274 .leds = spitz_gpio_leds,
259 * Spitz Keyboard Device 275 .num_leds = ARRAY_SIZE(spitz_gpio_leds),
260 */
261static struct platform_device spitzkbd_device = {
262 .name = "spitz-keyboard",
263 .id = -1,
264}; 276};
265 277
266
267/*
268 * Spitz LEDs
269 */
270static struct platform_device spitzled_device = { 278static struct platform_device spitzled_device = {
271 .name = "spitz-led", 279 .name = "leds-gpio",
272 .id = -1, 280 .id = -1,
281 .dev = {
282 .platform_data = &spitz_gpio_leds_info,
283 },
273}; 284};
274 285
275/* 286#if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE)
276 * Spitz Touch Screen Device 287static struct pxa2xx_spi_master spitz_spi_info = {
277 */ 288 .num_chipselect = 3,
289};
278 290
279static unsigned long (*get_hsync_invperiod)(struct device *dev); 291static struct ads7846_platform_data spitz_ads7846_info = {
292 .model = 7846,
293 .vref_delay_usecs = 100,
294 .x_plate_ohms = 419,
295 .y_plate_ohms = 486,
296 .gpio_pendown = SPITZ_GPIO_TP_INT,
297};
280 298
281static void inline sharpsl_wait_sync(int gpio) 299static void spitz_ads7846_cs(u32 command)
282{ 300{
283 while((GPLR(gpio) & GPIO_bit(gpio)) == 0); 301 gpio_set_value(SPITZ_GPIO_ADS7846_CS, !(command == PXA2XX_CS_ASSERT));
284 while((GPLR(gpio) & GPIO_bit(gpio)) != 0);
285} 302}
286 303
287static struct device *spitz_pxafb_dev; 304static struct pxa2xx_spi_chip spitz_ads7846_chip = {
305 .cs_control = spitz_ads7846_cs,
306};
288 307
289static int is_pxafb_device(struct device * dev, void * data) 308static void spitz_bl_kick_battery(void)
290{ 309{
291 struct platform_device *pdev = container_of(dev, struct platform_device, dev); 310 void (*kick_batt)(void);
292
293 return (strncmp(pdev->name, "pxa2xx-fb", 9) == 0);
294}
295 311
296static unsigned long spitz_get_hsync_invperiod(void) 312 kick_batt = symbol_get(sharpsl_battery_kick);
297{ 313 if (kick_batt) {
298#ifdef CONFIG_FB_PXA 314 kick_batt();
299 if (!spitz_pxafb_dev) { 315 symbol_put(sharpsl_battery_kick);
300 spitz_pxafb_dev = bus_find_device(&platform_bus_type, NULL, NULL, is_pxafb_device);
301 if (!spitz_pxafb_dev)
302 return 0;
303 } 316 }
304 if (!get_hsync_invperiod)
305 get_hsync_invperiod = symbol_get(pxafb_get_hsync_time);
306 if (!get_hsync_invperiod)
307#endif
308 return 0;
309
310 return get_hsync_invperiod(spitz_pxafb_dev);
311} 317}
312 318
313static void spitz_put_hsync(void) 319static struct corgi_lcd_platform_data spitz_lcdcon_info = {
314{ 320 .init_mode = CORGI_LCD_MODE_VGA,
315 put_device(spitz_pxafb_dev); 321 .max_intensity = 0x2f,
316 if (get_hsync_invperiod) 322 .default_intensity = 0x1f,
317 symbol_put(pxafb_get_hsync_time); 323 .limit_mask = 0x0b,
318 spitz_pxafb_dev = NULL; 324 .gpio_backlight_cont = SPITZ_GPIO_BACKLIGHT_CONT,
319 get_hsync_invperiod = NULL; 325 .gpio_backlight_on = SPITZ_GPIO_BACKLIGHT_ON,
320} 326 .kick_battery = spitz_bl_kick_battery,
327};
321 328
322static void spitz_wait_hsync(void) 329static void spitz_lcdcon_cs(u32 command)
323{ 330{
324 sharpsl_wait_sync(SPITZ_GPIO_HSYNC); 331 gpio_set_value(SPITZ_GPIO_LCDCON_CS, !(command == PXA2XX_CS_ASSERT));
325} 332}
326 333
327static struct resource spitzts_resources[] = { 334static struct pxa2xx_spi_chip spitz_lcdcon_chip = {
328 [0] = { 335 .cs_control = spitz_lcdcon_cs,
329 .start = SPITZ_IRQ_GPIO_TP_INT,
330 .end = SPITZ_IRQ_GPIO_TP_INT,
331 .flags = IORESOURCE_IRQ,
332 },
333}; 336};
334 337
335static struct corgits_machinfo spitz_ts_machinfo = { 338static void spitz_max1111_cs(u32 command)
336 .get_hsync_invperiod = spitz_get_hsync_invperiod, 339{
337 .put_hsync = spitz_put_hsync, 340 gpio_set_value(SPITZ_GPIO_MAX1111_CS, !(command == PXA2XX_CS_ASSERT));
338 .wait_hsync = spitz_wait_hsync, 341}
342
343static struct pxa2xx_spi_chip spitz_max1111_chip = {
344 .cs_control = spitz_max1111_cs,
339}; 345};
340 346
341static struct platform_device spitzts_device = { 347static struct spi_board_info spitz_spi_devices[] = {
342 .name = "corgi-ts", 348 {
343 .dev = { 349 .modalias = "ads7846",
344 .parent = &spitzssp_device.dev, 350 .max_speed_hz = 1200000,
345 .platform_data = &spitz_ts_machinfo, 351 .bus_num = 2,
352 .chip_select = 0,
353 .platform_data = &spitz_ads7846_info,
354 .controller_data= &spitz_ads7846_chip,
355 .irq = gpio_to_irq(SPITZ_GPIO_TP_INT),
356 }, {
357 .modalias = "corgi-lcd",
358 .max_speed_hz = 50000,
359 .bus_num = 2,
360 .chip_select = 1,
361 .platform_data = &spitz_lcdcon_info,
362 .controller_data= &spitz_lcdcon_chip,
363 }, {
364 .modalias = "max1111",
365 .max_speed_hz = 450000,
366 .bus_num = 2,
367 .chip_select = 2,
368 .controller_data= &spitz_max1111_chip,
346 }, 369 },
347 .id = -1,
348 .num_resources = ARRAY_SIZE(spitzts_resources),
349 .resource = spitzts_resources,
350}; 370};
351 371
372static void __init spitz_init_spi(void)
373{
374 int err;
375
376 err = gpio_request(SPITZ_GPIO_ADS7846_CS, "ADS7846_CS");
377 if (err)
378 return;
379
380 err = gpio_request(SPITZ_GPIO_LCDCON_CS, "LCDCON_CS");
381 if (err)
382 goto err_free_1;
383
384 err = gpio_request(SPITZ_GPIO_MAX1111_CS, "MAX1111_CS");
385 if (err)
386 goto err_free_2;
387
388 if (machine_is_akita()) {
389 spitz_lcdcon_info.gpio_backlight_cont = AKITA_GPIO_BACKLIGHT_CONT;
390 spitz_lcdcon_info.gpio_backlight_on = AKITA_GPIO_BACKLIGHT_ON;
391 }
392
393 pxa2xx_set_spi_info(2, &spitz_spi_info);
394 spi_register_board_info(ARRAY_AND_SIZE(spitz_spi_devices));
395 return;
396
397err_free_2:
398 gpio_free(SPITZ_GPIO_LCDCON_CS);
399err_free_1:
400 gpio_free(SPITZ_GPIO_ADS7846_CS);
401}
402#else
403static inline void spitz_init_spi(void) {}
404#endif
352 405
353/* 406/*
354 * MMC/SD Device 407 * MMC/SD Device
@@ -363,24 +416,35 @@ static int spitz_mci_init(struct device *dev, irq_handler_t spitz_detect_int, vo
363{ 416{
364 int err; 417 int err;
365 418
366 /* setup GPIO for PXA27x MMC controller */ 419 err = gpio_request(SPITZ_GPIO_nSD_DETECT, "nSD_DETECT");
367 pxa_gpio_mode(GPIO32_MMCCLK_MD); 420 if (err)
368 pxa_gpio_mode(GPIO112_MMCCMD_MD); 421 goto err_out;
369 pxa_gpio_mode(GPIO92_MMCDAT0_MD); 422
370 pxa_gpio_mode(GPIO109_MMCDAT1_MD); 423 err = gpio_request(SPITZ_GPIO_nSD_WP, "nSD_WP");
371 pxa_gpio_mode(GPIO110_MMCDAT2_MD); 424 if (err)
372 pxa_gpio_mode(GPIO111_MMCDAT3_MD); 425 goto err_free_1;
373 pxa_gpio_mode(SPITZ_GPIO_nSD_DETECT | GPIO_IN); 426
374 pxa_gpio_mode(SPITZ_GPIO_nSD_WP | GPIO_IN); 427 gpio_direction_input(SPITZ_GPIO_nSD_DETECT);
428 gpio_direction_input(SPITZ_GPIO_nSD_WP);
375 429
376 spitz_mci_platform_data.detect_delay = msecs_to_jiffies(250); 430 spitz_mci_platform_data.detect_delay = msecs_to_jiffies(250);
377 431
378 err = request_irq(SPITZ_IRQ_GPIO_nSD_DETECT, spitz_detect_int, 432 err = request_irq(SPITZ_IRQ_GPIO_nSD_DETECT, spitz_detect_int,
379 IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, 433 IRQF_DISABLED | IRQF_TRIGGER_RISING |
434 IRQF_TRIGGER_FALLING,
380 "MMC card detect", data); 435 "MMC card detect", data);
381 if (err) 436 if (err) {
382 printk(KERN_ERR "spitz_mci_init: MMC/SD: can't request MMC card detect IRQ\n"); 437 pr_err("%s: MMC/SD: can't request MMC card detect IRQ\n",
438 __func__);
439 goto err_free_2;
440 }
441 return 0;
383 442
443err_free_2:
444 gpio_free(SPITZ_GPIO_nSD_WP);
445err_free_1:
446 gpio_free(SPITZ_GPIO_nSD_DETECT);
447err_out:
384 return err; 448 return err;
385} 449}
386 450
@@ -396,12 +460,14 @@ static void spitz_mci_setpower(struct device *dev, unsigned int vdd)
396 460
397static int spitz_mci_get_ro(struct device *dev) 461static int spitz_mci_get_ro(struct device *dev)
398{ 462{
399 return GPLR(SPITZ_GPIO_nSD_WP) & GPIO_bit(SPITZ_GPIO_nSD_WP); 463 return gpio_get_value(SPITZ_GPIO_nSD_WP);
400} 464}
401 465
402static void spitz_mci_exit(struct device *dev, void *data) 466static void spitz_mci_exit(struct device *dev, void *data)
403{ 467{
404 free_irq(SPITZ_IRQ_GPIO_nSD_DETECT, data); 468 free_irq(SPITZ_IRQ_GPIO_nSD_DETECT, data);
469 gpio_free(SPITZ_GPIO_nSD_WP);
470 gpio_free(SPITZ_GPIO_nSD_DETECT);
405} 471}
406 472
407static struct pxamci_platform_data spitz_mci_platform_data = { 473static struct pxamci_platform_data spitz_mci_platform_data = {
@@ -418,27 +484,24 @@ static struct pxamci_platform_data spitz_mci_platform_data = {
418 */ 484 */
419static int spitz_ohci_init(struct device *dev) 485static int spitz_ohci_init(struct device *dev)
420{ 486{
421 /* Only Port 2 is connected */ 487 int err;
422 pxa_gpio_mode(SPITZ_GPIO_USB_CONNECT | GPIO_IN);
423 pxa_gpio_mode(SPITZ_GPIO_USB_HOST | GPIO_OUT);
424 pxa_gpio_mode(SPITZ_GPIO_USB_DEVICE | GPIO_IN);
425
426 /* Setup USB Port 2 Output Control Register */
427 UP2OCR = UP2OCR_HXS | UP2OCR_HXOE | UP2OCR_DPPDE | UP2OCR_DMPDE;
428
429 GPSR(SPITZ_GPIO_USB_HOST) = GPIO_bit(SPITZ_GPIO_USB_HOST);
430 488
431 UHCHR = (UHCHR) & 489 err = gpio_request(SPITZ_GPIO_USB_HOST, "USB_HOST");
432 ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSEP3 | UHCHR_SSE); 490 if (err)
491 return err;
433 492
434 UHCRHDA |= UHCRHDA_NOCP; 493 /* Only Port 2 is connected
494 * Setup USB Port 2 Output Control Register
495 */
496 UP2OCR = UP2OCR_HXS | UP2OCR_HXOE | UP2OCR_DPPDE | UP2OCR_DMPDE;
435 497
436 return 0; 498 return gpio_direction_output(SPITZ_GPIO_USB_HOST, 1);
437} 499}
438 500
439static struct pxaohci_platform_data spitz_ohci_platform_data = { 501static struct pxaohci_platform_data spitz_ohci_platform_data = {
440 .port_mode = PMM_NPS_MODE, 502 .port_mode = PMM_NPS_MODE,
441 .init = spitz_ohci_init, 503 .init = spitz_ohci_init,
504 .flags = ENABLE_PORT_ALL | NO_OC_PROTECTION,
442 .power_budget = 150, 505 .power_budget = 150,
443}; 506};
444 507
@@ -446,29 +509,50 @@ static struct pxaohci_platform_data spitz_ohci_platform_data = {
446/* 509/*
447 * Irda 510 * Irda
448 */ 511 */
512static int spitz_irda_startup(struct device *dev)
513{
514 int rc;
515
516 rc = gpio_request(SPITZ_GPIO_IR_ON, "IrDA on");
517 if (rc)
518 goto err;
519
520 rc = gpio_direction_output(SPITZ_GPIO_IR_ON, 1);
521 if (rc)
522 goto err_dir;
523
524 return 0;
525
526err_dir:
527 gpio_free(SPITZ_GPIO_IR_ON);
528err:
529 return rc;
530}
531
532static void spitz_irda_shutdown(struct device *dev)
533{
534 gpio_free(SPITZ_GPIO_IR_ON);
535}
536
449static void spitz_irda_transceiver_mode(struct device *dev, int mode) 537static void spitz_irda_transceiver_mode(struct device *dev, int mode)
450{ 538{
451 if (mode & IR_OFF) 539 gpio_set_value(SPITZ_GPIO_IR_ON, mode & IR_OFF);
452 set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_IR_ON);
453 else
454 reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_IR_ON);
455 pxa2xx_transceiver_mode(dev, mode); 540 pxa2xx_transceiver_mode(dev, mode);
456} 541}
457 542
458#ifdef CONFIG_MACH_AKITA 543#ifdef CONFIG_MACH_AKITA
459static void akita_irda_transceiver_mode(struct device *dev, int mode) 544static void akita_irda_transceiver_mode(struct device *dev, int mode)
460{ 545{
461 if (mode & IR_OFF) 546 gpio_set_value(AKITA_GPIO_IR_ON, mode & IR_OFF);
462 akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_IR_ON);
463 else
464 akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_IR_ON);
465 pxa2xx_transceiver_mode(dev, mode); 547 pxa2xx_transceiver_mode(dev, mode);
466} 548}
467#endif 549#endif
468 550
469static struct pxaficp_platform_data spitz_ficp_platform_data = { 551static struct pxaficp_platform_data spitz_ficp_platform_data = {
470 .transceiver_cap = IR_SIRMODE | IR_OFF, 552 .transceiver_cap = IR_SIRMODE | IR_OFF,
471 .transceiver_mode = spitz_irda_transceiver_mode, 553 .transceiver_mode = spitz_irda_transceiver_mode,
554 .startup = spitz_irda_startup,
555 .shutdown = spitz_irda_shutdown,
472}; 556};
473 557
474 558
@@ -476,14 +560,6 @@ static struct pxaficp_platform_data spitz_ficp_platform_data = {
476 * Spitz PXA Framebuffer 560 * Spitz PXA Framebuffer
477 */ 561 */
478 562
479static void spitz_lcd_power(int on, struct fb_var_screeninfo *var)
480{
481 if (on)
482 corgi_lcdtg_hw_init(var->xres);
483 else
484 corgi_lcdtg_suspend();
485}
486
487static struct pxafb_mode_info spitz_pxafb_modes[] = { 563static struct pxafb_mode_info spitz_pxafb_modes[] = {
488{ 564{
489 .pixclock = 19231, 565 .pixclock = 19231,
@@ -516,18 +592,13 @@ static struct pxafb_mach_info spitz_pxafb_info = {
516 .modes = &spitz_pxafb_modes[0], 592 .modes = &spitz_pxafb_modes[0],
517 .num_modes = 2, 593 .num_modes = 2,
518 .fixed_modes = 1, 594 .fixed_modes = 1,
519 .lccr0 = LCCR0_Color | LCCR0_Sngl | LCCR0_Act | LCCR0_LDDALT | LCCR0_OUC | LCCR0_CMDIM | LCCR0_RDSTM, 595 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_ALTERNATE_MAPPING,
520 .lccr3 = LCCR3_PixRsEdg | LCCR3_OutEnH,
521 .pxafb_lcd_power = spitz_lcd_power,
522}; 596};
523 597
524 598
525static struct platform_device *devices[] __initdata = { 599static struct platform_device *devices[] __initdata = {
526 &spitzscoop_device, 600 &spitzscoop_device,
527 &spitzssp_device,
528 &spitzkbd_device, 601 &spitzkbd_device,
529 &spitzts_device,
530 &spitzbl_device,
531 &spitzled_device, 602 &spitzled_device,
532}; 603};
533 604
@@ -553,56 +624,26 @@ static void __init common_init(void)
553 624
554 PMCR = 0x00; 625 PMCR = 0x00;
555 626
556 /* setup sleep mode values */
557 PWER = 0x00000002;
558 PFER = 0x00000000;
559 PRER = 0x00000002;
560 PGSR0 = 0x0158C000;
561 PGSR1 = 0x00FF0080;
562 PGSR2 = 0x0001C004;
563
564 /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */ 627 /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */
565 PCFR |= PCFR_OPDE; 628 PCFR |= PCFR_OPDE;
566 629
567 corgi_ssp_set_machinfo(&spitz_ssp_machinfo); 630 pxa2xx_mfp_config(ARRAY_AND_SIZE(spitz_pin_config));
568 631
569 pxa_gpio_mode(SPITZ_GPIO_HSYNC | GPIO_IN); 632 spitz_init_spi();
570 633
571 platform_add_devices(devices, ARRAY_SIZE(devices)); 634 platform_add_devices(devices, ARRAY_SIZE(devices));
572 pxa_set_mci_info(&spitz_mci_platform_data); 635 pxa_set_mci_info(&spitz_mci_platform_data);
573 pxa_set_ohci_info(&spitz_ohci_platform_data); 636 pxa_set_ohci_info(&spitz_ohci_platform_data);
574 pxa_set_ficp_info(&spitz_ficp_platform_data); 637 pxa_set_ficp_info(&spitz_ficp_platform_data);
575 set_pxa_fb_parent(&spitzssp_device.dev);
576 set_pxa_fb_info(&spitz_pxafb_info); 638 set_pxa_fb_info(&spitz_pxafb_info);
639 pxa_set_i2c_info(NULL);
577} 640}
578 641
579#if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI) 642#if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI)
580static void spitz_bl_set_intensity(int intensity)
581{
582 if (intensity > 0x10)
583 intensity += 0x10;
584
585 /* Bits 0-4 are accessed via the SSP interface */
586 corgi_ssp_blduty_set(intensity & 0x1f);
587
588 /* Bit 5 is via SCOOP */
589 if (intensity & 0x0020)
590 reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_CONT);
591 else
592 set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_CONT);
593
594 if (intensity)
595 set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_ON);
596 else
597 reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_ON);
598}
599
600static void __init spitz_init(void) 643static void __init spitz_init(void)
601{ 644{
602 platform_scoop_config = &spitz_pcmcia_config; 645 platform_scoop_config = &spitz_pcmcia_config;
603 646
604 spitz_bl_machinfo.set_bl_intensity = spitz_bl_set_intensity;
605
606 common_init(); 647 common_init();
607 648
608 platform_device_register(&spitzscoop2_device); 649 platform_device_register(&spitzscoop2_device);
@@ -613,32 +654,17 @@ static void __init spitz_init(void)
613/* 654/*
614 * Akita IO Expander 655 * Akita IO Expander
615 */ 656 */
616struct platform_device akitaioexp_device = { 657static struct pca953x_platform_data akita_ioexp = {
617 .name = "akita-ioexp", 658 .gpio_base = AKITA_IOEXP_GPIO_BASE,
618 .id = -1,
619}; 659};
620 660
621EXPORT_SYMBOL_GPL(akitaioexp_device); 661static struct i2c_board_info akita_i2c_board_info[] = {
622 662 {
623static void akita_bl_set_intensity(int intensity) 663 .type = "max7310",
624{ 664 .addr = 0x18,
625 if (intensity > 0x10) 665 .platform_data = &akita_ioexp,
626 intensity += 0x10; 666 },
627 667};
628 /* Bits 0-4 are accessed via the SSP interface */
629 corgi_ssp_blduty_set(intensity & 0x1f);
630
631 /* Bit 5 is via IO-Expander */
632 if (intensity & 0x0020)
633 akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_CONT);
634 else
635 akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_CONT);
636
637 if (intensity)
638 akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_ON);
639 else
640 akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_ON);
641}
642 668
643static void __init akita_init(void) 669static void __init akita_init(void)
644{ 670{
@@ -647,11 +673,10 @@ static void __init akita_init(void)
647 /* We just pretend the second element of the array doesn't exist */ 673 /* We just pretend the second element of the array doesn't exist */
648 spitz_pcmcia_config.num_devs = 1; 674 spitz_pcmcia_config.num_devs = 1;
649 platform_scoop_config = &spitz_pcmcia_config; 675 platform_scoop_config = &spitz_pcmcia_config;
650 spitz_bl_machinfo.set_bl_intensity = akita_bl_set_intensity;
651 676
652 platform_device_register(&akitaioexp_device); 677 pxa_set_i2c_info(NULL);
678 i2c_register_board_info(0, ARRAY_AND_SIZE(akita_i2c_board_info));
653 679
654 spitzscoop_device.dev.parent = &akitaioexp_device.dev;
655 common_init(); 680 common_init();
656} 681}
657#endif 682#endif
diff --git a/arch/arm/mach-pxa/spitz_pm.c b/arch/arm/mach-pxa/spitz_pm.c
index 8a40505dfd28..53018db106ac 100644
--- a/arch/arm/mach-pxa/spitz_pm.c
+++ b/arch/arm/mach-pxa/spitz_pm.c
@@ -21,7 +21,6 @@
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/mach-types.h> 22#include <asm/mach-types.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/hardware/scoop.h>
25 24
26#include <mach/sharpsl.h> 25#include <mach/sharpsl.h>
27#include <mach/spitz.h> 26#include <mach/spitz.h>
@@ -48,44 +47,35 @@ static void spitz_charger_init(void)
48 47
49static void spitz_measure_temp(int on) 48static void spitz_measure_temp(int on)
50{ 49{
51 if (on) 50 gpio_set_value(SPITZ_GPIO_ADC_TEMP_ON, on);
52 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_ADC_TEMP_ON);
53 else
54 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_ADC_TEMP_ON);
55} 51}
56 52
57static void spitz_charge(int on) 53static void spitz_charge(int on)
58{ 54{
59 if (on) { 55 if (on) {
60 if (sharpsl_pm.flags & SHARPSL_SUSPENDED) { 56 if (sharpsl_pm.flags & SHARPSL_SUSPENDED) {
61 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_JK_B); 57 gpio_set_value(SPITZ_GPIO_JK_B, 1);
62 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CHRG_ON); 58 gpio_set_value(SPITZ_GPIO_CHRG_ON, 0);
63 } else { 59 } else {
64 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_JK_B); 60 gpio_set_value(SPITZ_GPIO_JK_B, 0);
65 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CHRG_ON); 61 gpio_set_value(SPITZ_GPIO_CHRG_ON, 0);
66 } 62 }
67 } else { 63 } else {
68 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_JK_B); 64 gpio_set_value(SPITZ_GPIO_JK_B, 0);
69 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_CHRG_ON); 65 gpio_set_value(SPITZ_GPIO_CHRG_ON, 1);
70 } 66 }
71} 67}
72 68
73static void spitz_discharge(int on) 69static void spitz_discharge(int on)
74{ 70{
75 if (on) 71 gpio_set_value(SPITZ_GPIO_JK_A, on);
76 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_JK_A);
77 else
78 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_JK_A);
79} 72}
80 73
81/* HACK - For unknown reasons, accurate voltage readings are only made with a load 74/* HACK - For unknown reasons, accurate voltage readings are only made with a load
82 on the power bus which the green led on spitz provides */ 75 on the power bus which the green led on spitz provides */
83static void spitz_discharge1(int on) 76static void spitz_discharge1(int on)
84{ 77{
85 if (on) 78 gpio_set_value(SPITZ_GPIO_LED_GREEN, on);
86 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
87 else
88 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
89} 79}
90 80
91static void spitz_presuspend(void) 81static void spitz_presuspend(void)
diff --git a/arch/arm/mach-pxa/ssp.c b/arch/arm/mach-pxa/ssp.c
index 9bd93c5f28b2..2c31ec725688 100644
--- a/arch/arm/mach-pxa/ssp.c
+++ b/arch/arm/mach-pxa/ssp.c
@@ -28,8 +28,8 @@
28#include <linux/clk.h> 28#include <linux/clk.h>
29#include <linux/err.h> 29#include <linux/err.h>
30#include <linux/platform_device.h> 30#include <linux/platform_device.h>
31#include <linux/io.h>
31 32
32#include <asm/io.h>
33#include <asm/irq.h> 33#include <asm/irq.h>
34#include <mach/hardware.h> 34#include <mach/hardware.h>
35#include <mach/ssp.h> 35#include <mach/ssp.h>
diff --git a/arch/arm/mach-pxa/time.c b/arch/arm/mach-pxa/time.c
index 67e18509d7bf..18d149745837 100644
--- a/arch/arm/mach-pxa/time.c
+++ b/arch/arm/mach-pxa/time.c
@@ -155,7 +155,7 @@ static void __init pxa_timer_init(void)
155 OIER = 0; 155 OIER = 0;
156 OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3; 156 OSSR = OSSR_M0 | OSSR_M1 | OSSR_M2 | OSSR_M3;
157 157
158 if (cpu_is_pxa21x() || cpu_is_pxa25x()) 158 if (cpu_is_pxa25x())
159 clock_tick_rate = 3686400; 159 clock_tick_rate = 3686400;
160 else if (machine_is_mainstone()) 160 else if (machine_is_mainstone())
161 clock_tick_rate = 3249600; 161 clock_tick_rate = 3249600;
diff --git a/arch/arm/mach-pxa/tosa.c b/arch/arm/mach-pxa/tosa.c
index 5dab30eafddc..9f3ef9eb32e3 100644
--- a/arch/arm/mach-pxa/tosa.c
+++ b/arch/arm/mach-pxa/tosa.c
@@ -50,6 +50,7 @@
50#include <asm/mach/sharpsl_param.h> 50#include <asm/mach/sharpsl_param.h>
51 51
52#include "generic.h" 52#include "generic.h"
53#include "clock.h"
53#include "devices.h" 54#include "devices.h"
54 55
55static unsigned long tosa_pin_config[] = { 56static unsigned long tosa_pin_config[] = {
@@ -521,6 +522,14 @@ static struct gpio_keys_button tosa_gpio_keys[] = {
521 .wakeup = 1, 522 .wakeup = 1,
522 .active_low = 1, 523 .active_low = 1,
523 }, 524 },
525 {
526 .type = EV_SW,
527 .code = SW_HEADPHONE_INSERT,
528 .gpio = TOSA_GPIO_EAR_IN,
529 .desc = "HeadPhone insert",
530 .active_low = 1,
531 .debounce_interval = 300,
532 },
524}; 533};
525 534
526static struct gpio_keys_platform_data tosa_gpio_keys_platform_data = { 535static struct gpio_keys_platform_data tosa_gpio_keys_platform_data = {
@@ -792,6 +801,8 @@ static void __init tosa_init(void)
792 pxa_set_i2c_info(NULL); 801 pxa_set_i2c_info(NULL);
793 platform_scoop_config = &tosa_pcmcia_config; 802 platform_scoop_config = &tosa_pcmcia_config;
794 803
804 clk_add_alias("CLK_CK3P6MI", &tc6393xb_device.dev, "GPIO11_CLK", NULL);
805
795 platform_add_devices(devices, ARRAY_SIZE(devices)); 806 platform_add_devices(devices, ARRAY_SIZE(devices));
796} 807}
797 808
diff --git a/arch/arm/mach-pxa/trizeps4.c b/arch/arm/mach-pxa/trizeps4.c
index 3ed757e6bcc8..a13dbf3c2c05 100644
--- a/arch/arm/mach-pxa/trizeps4.c
+++ b/arch/arm/mach-pxa/trizeps4.c
@@ -22,8 +22,8 @@
22#include <linux/fb.h> 22#include <linux/fb.h>
23#include <linux/ioport.h> 23#include <linux/ioport.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/serial_8250.h> 25#include <linux/gpio.h>
26#include <linux/mtd/mtd.h> 26#include <linux/dm9000.h>
27#include <linux/mtd/physmap.h> 27#include <linux/mtd/physmap.h>
28#include <linux/mtd/partitions.h> 28#include <linux/mtd/partitions.h>
29 29
@@ -31,7 +31,6 @@
31#include <asm/setup.h> 31#include <asm/setup.h>
32#include <asm/memory.h> 32#include <asm/memory.h>
33#include <asm/mach-types.h> 33#include <asm/mach-types.h>
34#include <mach/hardware.h>
35#include <asm/irq.h> 34#include <asm/irq.h>
36#include <asm/sizes.h> 35#include <asm/sizes.h>
37 36
@@ -40,41 +39,148 @@
40#include <asm/mach/irq.h> 39#include <asm/mach/irq.h>
41#include <asm/mach/flash.h> 40#include <asm/mach/flash.h>
42 41
42#include <mach/hardware.h>
43#include <mach/pxa-regs.h> 43#include <mach/pxa-regs.h>
44#include <mach/pxa2xx-regs.h> 44#include <mach/pxa2xx-regs.h>
45#include <mach/pxa2xx-gpio.h> 45#include <mach/mfp-pxa27x.h>
46#include <mach/pxa2xx_spi.h>
46#include <mach/trizeps4.h> 47#include <mach/trizeps4.h>
47#include <mach/audio.h> 48#include <mach/audio.h>
48#include <mach/pxafb.h> 49#include <mach/pxafb.h>
49#include <mach/mmc.h> 50#include <mach/mmc.h>
50#include <mach/irda.h> 51#include <mach/irda.h>
51#include <mach/ohci.h> 52#include <mach/ohci.h>
53#include <mach/i2c.h>
52 54
53#include "generic.h" 55#include "generic.h"
54#include "devices.h" 56#include "devices.h"
55 57
56/******************************************************************************************** 58/* comment out the following line if you want to use the
59 * Standard UART from PXA for serial / irda transmission
60 * and acivate it if you have status leds connected */
61#define STATUS_LEDS_ON_STUART_PINS 1
62
63/*****************************************************************************
64 * MultiFunctionPins of CPU
65 *****************************************************************************/
66static unsigned long trizeps4_pin_config[] __initdata = {
67 /* Chip Selects */
68 GPIO15_nCS_1, /* DiskOnChip CS */
69 GPIO93_GPIO, /* TRIZEPS4_DOC_IRQ */
70 GPIO94_GPIO, /* DOC lock */
71
72 GPIO78_nCS_2, /* DM9000 CS */
73 GPIO101_GPIO, /* TRIZEPS4_ETH_IRQ */
74
75 GPIO79_nCS_3, /* Logic CS */
76 GPIO0_GPIO | WAKEUP_ON_EDGE_RISE, /* Logic irq */
77
78 /* LCD - 16bpp Active TFT */
79 GPIO58_LCD_LDD_0,
80 GPIO59_LCD_LDD_1,
81 GPIO60_LCD_LDD_2,
82 GPIO61_LCD_LDD_3,
83 GPIO62_LCD_LDD_4,
84 GPIO63_LCD_LDD_5,
85 GPIO64_LCD_LDD_6,
86 GPIO65_LCD_LDD_7,
87 GPIO66_LCD_LDD_8,
88 GPIO67_LCD_LDD_9,
89 GPIO68_LCD_LDD_10,
90 GPIO69_LCD_LDD_11,
91 GPIO70_LCD_LDD_12,
92 GPIO71_LCD_LDD_13,
93 GPIO72_LCD_LDD_14,
94 GPIO73_LCD_LDD_15,
95 GPIO74_LCD_FCLK,
96 GPIO75_LCD_LCLK,
97 GPIO76_LCD_PCLK,
98 GPIO77_LCD_BIAS,
99
100 /* UART */
101 GPIO9_FFUART_CTS,
102 GPIO10_FFUART_DCD,
103 GPIO16_FFUART_TXD,
104 GPIO33_FFUART_DSR,
105 GPIO38_FFUART_RI,
106 GPIO82_FFUART_DTR,
107 GPIO83_FFUART_RTS,
108 GPIO96_FFUART_RXD,
109
110 GPIO42_BTUART_RXD,
111 GPIO43_BTUART_TXD,
112 GPIO44_BTUART_CTS,
113 GPIO45_BTUART_RTS,
114#ifdef STATUS_LEDS_ON_STUART_PINS
115 GPIO46_GPIO,
116 GPIO47_GPIO,
117#else
118 GPIO46_STUART_RXD,
119 GPIO47_STUART_TXD,
120#endif
121 /* PCMCIA */
122 GPIO11_GPIO, /* TRIZEPS4_CD_IRQ */
123 GPIO13_GPIO, /* TRIZEPS4_READY_NINT */
124 GPIO48_nPOE,
125 GPIO49_nPWE,
126 GPIO50_nPIOR,
127 GPIO51_nPIOW,
128 GPIO54_nPCE_2,
129 GPIO55_nPREG,
130 GPIO56_nPWAIT,
131 GPIO57_nIOIS16,
132 GPIO102_nPCE_1,
133 GPIO104_PSKTSEL,
134
135 /* MultiMediaCard */
136 GPIO32_MMC_CLK,
137 GPIO92_MMC_DAT_0,
138 GPIO109_MMC_DAT_1,
139 GPIO110_MMC_DAT_2,
140 GPIO111_MMC_DAT_3,
141 GPIO112_MMC_CMD,
142 GPIO12_GPIO, /* TRIZEPS4_MMC_IRQ */
143
144 /* USB OHCI */
145 GPIO88_USBH1_PWR, /* USBHPWR1 */
146 GPIO89_USBH1_PEN, /* USBHPEN1 */
147
148 /* I2C */
149 GPIO117_I2C_SCL,
150 GPIO118_I2C_SDA,
151};
152
153static unsigned long trizeps4wl_pin_config[] __initdata = {
154 /* SSP 2 */
155 GPIO14_SSP2_SFRM,
156 GPIO19_SSP2_SCLK,
157 GPIO53_GPIO, /* TRIZEPS4_SPI_IRQ */
158 GPIO86_SSP2_RXD,
159 GPIO87_SSP2_TXD,
160};
161
162/****************************************************************************
57 * ONBOARD FLASH 163 * ONBOARD FLASH
58 ********************************************************************************************/ 164 ****************************************************************************/
59static struct mtd_partition trizeps4_partitions[] = { 165static struct mtd_partition trizeps4_partitions[] = {
60 { 166 {
61 .name = "Bootloader", 167 .name = "Bootloader",
62 .offset = 0x00000000, 168 .offset = 0x00000000,
63 .size = 0x00040000, 169 .size = 0x00040000,
64 .mask_flags = MTD_WRITEABLE /* force read-only */ 170 .mask_flags = MTD_WRITEABLE /* force read-only */
65 },{ 171 }, {
66 .name = "Backup", 172 .name = "Backup",
67 .offset = 0x00040000, 173 .offset = 0x00040000,
68 .size = 0x00040000, 174 .size = 0x00040000,
69 },{ 175 }, {
70 .name = "Image", 176 .name = "Image",
71 .offset = 0x00080000, 177 .offset = 0x00080000,
72 .size = 0x01080000, 178 .size = 0x01080000,
73 },{ 179 }, {
74 .name = "IPSM", 180 .name = "IPSM",
75 .offset = 0x01100000, 181 .offset = 0x01100000,
76 .size = 0x00e00000, 182 .size = 0x00e00000,
77 },{ 183 }, {
78 .name = "Registry", 184 .name = "Registry",
79 .offset = 0x01f00000, 185 .offset = 0x01f00000,
80 .size = MTDPART_SIZ_FULL, 186 .size = MTDPART_SIZ_FULL,
@@ -105,9 +211,9 @@ static struct platform_device flash_device = {
105 .num_resources = 1, 211 .num_resources = 1,
106}; 212};
107 213
108/******************************************************************************************** 214/****************************************************************************
109 * DAVICOM DM9000 Ethernet 215 * DAVICOM DM9000 Ethernet
110 ********************************************************************************************/ 216 ****************************************************************************/
111static struct resource dm9000_resources[] = { 217static struct resource dm9000_resources[] = {
112 [0] = { 218 [0] = {
113 .start = TRIZEPS4_ETH_PHYS+0x300, 219 .start = TRIZEPS4_ETH_PHYS+0x300,
@@ -122,67 +228,68 @@ static struct resource dm9000_resources[] = {
122 [2] = { 228 [2] = {
123 .start = TRIZEPS4_ETH_IRQ, 229 .start = TRIZEPS4_ETH_IRQ,
124 .end = TRIZEPS4_ETH_IRQ, 230 .end = TRIZEPS4_ETH_IRQ,
125 .flags = (IORESOURCE_IRQ | IRQ_TYPE_EDGE_RISING), 231 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
126 }, 232 },
127}; 233};
128 234
235static struct dm9000_plat_data tri_dm9000_platdata = {
236 .flags = DM9000_PLATF_32BITONLY,
237};
238
129static struct platform_device dm9000_device = { 239static struct platform_device dm9000_device = {
130 .name = "dm9000", 240 .name = "dm9000",
131 .id = -1, 241 .id = -1,
132 .num_resources = ARRAY_SIZE(dm9000_resources), 242 .num_resources = ARRAY_SIZE(dm9000_resources),
133 .resource = dm9000_resources, 243 .resource = dm9000_resources,
244 .dev = {
245 .platform_data = &tri_dm9000_platdata,
246 }
134}; 247};
135 248
136/******************************************************************************************** 249/****************************************************************************
137 * PXA270 serial ports 250 * LED's on GPIO pins of PXA
138 ********************************************************************************************/ 251 ****************************************************************************/
139static struct plat_serial8250_port tri_serial_ports[] = { 252static struct gpio_led trizeps4_led[] = {
140#ifdef CONFIG_SERIAL_PXA 253#ifdef STATUS_LEDS_ON_STUART_PINS
141 /* this uses the own PXA driver */
142 { 254 {
143 0, 255 .name = "led0:orange:heartbeat", /* */
144 }, 256 .default_trigger = "heartbeat",
145#else 257 .gpio = GPIO_HEARTBEAT_LED,
146 /* this uses the generic 8520 driver */ 258 .active_low = 1,
147 [0] = {
148 .membase = (void *)&FFUART,
149 .irq = IRQ_FFUART,
150 .flags = UPF_BOOT_AUTOCONF,
151 .iotype = UPIO_MEM32,
152 .regshift = 2,
153 .uartclk = (921600*16),
154 },
155 [1] = {
156 .membase = (void *)&BTUART,
157 .irq = IRQ_BTUART,
158 .flags = UPF_BOOT_AUTOCONF,
159 .iotype = UPIO_MEM32,
160 .regshift = 2,
161 .uartclk = (921600*16),
162 }, 259 },
163 { 260 {
164 0, 261 .name = "led1:yellow:cpubusy", /* */
262 .default_trigger = "cpu-busy",
263 .gpio = GPIO_SYS_BUSY_LED,
264 .active_low = 1,
165 }, 265 },
166#endif 266#endif
167}; 267};
168 268
169static struct platform_device uart_devices = { 269static struct gpio_led_platform_data trizeps4_led_data = {
170 .name = "serial8250", 270 .leds = trizeps4_led,
171 .id = 0, 271 .num_leds = ARRAY_SIZE(trizeps4_led),
272};
273
274static struct platform_device leds_devices = {
275 .name = "leds-gpio",
276 .id = -1,
172 .dev = { 277 .dev = {
173 .platform_data = tri_serial_ports, 278 .platform_data = &trizeps4_led_data,
174 }, 279 },
175 .num_resources = 0,
176 .resource = NULL,
177}; 280};
178 281
179static struct platform_device * trizeps4_devices[] __initdata = { 282static struct platform_device *trizeps4_devices[] __initdata = {
180 &flash_device, 283 &flash_device,
181 &uart_devices,
182 &dm9000_device, 284 &dm9000_device,
285 &leds_devices,
286};
287
288static struct platform_device *trizeps4wl_devices[] __initdata = {
289 &flash_device,
290 &leds_devices,
183}; 291};
184 292
185#ifdef CONFIG_MACH_TRIZEPS4_CONXS
186static short trizeps_conxs_bcr; 293static short trizeps_conxs_bcr;
187 294
188/* PCCARD power switching supports only 3,3V */ 295/* PCCARD power switching supports only 3,3V */
@@ -192,108 +299,63 @@ void board_pcmcia_power(int power)
192 /* switch power on, put in reset and enable buffers */ 299 /* switch power on, put in reset and enable buffers */
193 trizeps_conxs_bcr |= power; 300 trizeps_conxs_bcr |= power;
194 trizeps_conxs_bcr |= ConXS_BCR_CF_RESET; 301 trizeps_conxs_bcr |= ConXS_BCR_CF_RESET;
195 trizeps_conxs_bcr &= ~(ConXS_BCR_CF_BUF_EN); 302 trizeps_conxs_bcr &= ~ConXS_BCR_CF_BUF_EN;
196 ConXS_BCR = trizeps_conxs_bcr; 303 BCR_writew(trizeps_conxs_bcr);
197 /* wait a little */ 304 /* wait a little */
198 udelay(2000); 305 udelay(2000);
199 /* take reset away */ 306 /* take reset away */
200 trizeps_conxs_bcr &= ~(ConXS_BCR_CF_RESET); 307 trizeps_conxs_bcr &= ~ConXS_BCR_CF_RESET;
201 ConXS_BCR = trizeps_conxs_bcr; 308 BCR_writew(trizeps_conxs_bcr);
202 udelay(2000); 309 udelay(2000);
203 } else { 310 } else {
204 /* put in reset */ 311 /* put in reset */
205 trizeps_conxs_bcr |= ConXS_BCR_CF_RESET; 312 trizeps_conxs_bcr |= ConXS_BCR_CF_RESET;
206 ConXS_BCR = trizeps_conxs_bcr; 313 BCR_writew(trizeps_conxs_bcr);
207 udelay(1000); 314 udelay(1000);
208 /* switch power off */ 315 /* switch power off */
209 trizeps_conxs_bcr &= ~(0xf); 316 trizeps_conxs_bcr &= ~0xf;
210 ConXS_BCR = trizeps_conxs_bcr; 317 BCR_writew(trizeps_conxs_bcr);
211
212 } 318 }
213 pr_debug("%s: o%s 0x%x\n", __func__, power ? "n": "ff", trizeps_conxs_bcr); 319 pr_debug("%s: o%s 0x%x\n", __func__, power ? "n" : "ff",
320 trizeps_conxs_bcr);
214} 321}
322EXPORT_SYMBOL(board_pcmcia_power);
215 323
216/* backlight power switching for LCD panel */ 324/* backlight power switching for LCD panel */
217static void board_backlight_power(int on) 325static void board_backlight_power(int on)
218{ 326{
219 if (on) { 327 if (on)
220 trizeps_conxs_bcr |= ConXS_BCR_L_DISP; 328 trizeps_conxs_bcr |= ConXS_BCR_L_DISP;
221 } else { 329 else
222 trizeps_conxs_bcr &= ~ConXS_BCR_L_DISP; 330 trizeps_conxs_bcr &= ~ConXS_BCR_L_DISP;
223 }
224 pr_debug("%s: o%s 0x%x\n", __func__, on ? "n" : "ff", trizeps_conxs_bcr);
225 ConXS_BCR = trizeps_conxs_bcr;
226}
227 331
228/* Powersupply for MMC/SD cardslot */ 332 pr_debug("%s: o%s 0x%x\n", __func__, on ? "n" : "ff",
229static void board_mci_power(struct device *dev, unsigned int vdd) 333 trizeps_conxs_bcr);
230{ 334 BCR_writew(trizeps_conxs_bcr);
231 struct pxamci_platform_data* p_d = dev->platform_data;
232
233 if (( 1 << vdd) & p_d->ocr_mask) {
234 pr_debug("%s: on\n", __func__);
235 /* FIXME fill in values here */
236 } else {
237 pr_debug("%s: off\n", __func__);
238 /* FIXME fill in values here */
239 }
240}
241
242static short trizeps_conxs_ircr;
243
244/* Switch modes and Power for IRDA receiver */
245static void board_irda_mode(struct device *dev, int mode)
246{
247 unsigned long flags;
248
249 local_irq_save(flags);
250 if (mode & IR_SIRMODE) {
251 /* Slow mode */
252 trizeps_conxs_ircr &= ~ConXS_IRCR_MODE;
253 } else if (mode & IR_FIRMODE) {
254 /* Fast mode */
255 trizeps_conxs_ircr |= ConXS_IRCR_MODE;
256 }
257 pxa2xx_transceiver_mode(dev, mode);
258 if (mode & IR_OFF) {
259 trizeps_conxs_ircr |= ConXS_IRCR_SD;
260 } else {
261 trizeps_conxs_ircr &= ~ConXS_IRCR_SD;
262 }
263 /* FIXME write values to register */
264 local_irq_restore(flags);
265} 335}
266 336
267#else 337/* a I2C based RTC is known on CONXS board */
268/* for other baseboards define dummies */ 338static struct i2c_board_info trizeps4_i2c_devices[] __initdata = {
269void board_pcmcia_power(int power) {;} 339 { I2C_BOARD_INFO("rtc-pcf8593", 0x51) }
270#define board_backlight_power NULL 340};
271#define board_mci_power NULL
272#define board_irda_mode NULL
273
274#endif /* CONFIG_MACH_TRIZEPS4_CONXS */
275EXPORT_SYMBOL(board_pcmcia_power);
276 341
277static int trizeps4_mci_init(struct device *dev, irq_handler_t mci_detect_int, void *data) 342/****************************************************************************
343 * MMC card slot external to module
344 ****************************************************************************/
345static int trizeps4_mci_init(struct device *dev, irq_handler_t mci_detect_int,
346 void *data)
278{ 347{
279 int err; 348 int err;
280 /* setup GPIO for PXA27x MMC controller */
281 pxa_gpio_mode(GPIO32_MMCCLK_MD);
282 pxa_gpio_mode(GPIO112_MMCCMD_MD);
283 pxa_gpio_mode(GPIO92_MMCDAT0_MD);
284 pxa_gpio_mode(GPIO109_MMCDAT1_MD);
285 pxa_gpio_mode(GPIO110_MMCDAT2_MD);
286 pxa_gpio_mode(GPIO111_MMCDAT3_MD);
287
288 pxa_gpio_mode(GPIO_MMC_DET | GPIO_IN);
289 349
290 err = request_irq(TRIZEPS4_MMC_IRQ, mci_detect_int, 350 err = request_irq(TRIZEPS4_MMC_IRQ, mci_detect_int,
291 IRQF_DISABLED | IRQF_TRIGGER_RISING, 351 IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_SAMPLE_RANDOM,
292 "MMC card detect", data); 352 "MMC card detect", data);
293 if (err) 353 if (err) {
294 printk(KERN_ERR "trizeps4_mci_init: MMC/SD: can't request MMC card detect IRQ\n"); 354 printk(KERN_ERR "trizeps4_mci_init: MMC/SD: can't request"
295 355 "MMC card detect IRQ\n");
296 return err; 356 return -1;
357 }
358 return 0;
297} 359}
298 360
299static void trizeps4_mci_exit(struct device *dev, void *data) 361static void trizeps4_mci_exit(struct device *dev, void *data)
@@ -303,39 +365,69 @@ static void trizeps4_mci_exit(struct device *dev, void *data)
303 365
304static struct pxamci_platform_data trizeps4_mci_platform_data = { 366static struct pxamci_platform_data trizeps4_mci_platform_data = {
305 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 367 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
368 .detect_delay = 1,
306 .init = trizeps4_mci_init, 369 .init = trizeps4_mci_init,
307 .exit = trizeps4_mci_exit, 370 .exit = trizeps4_mci_exit,
308 .setpower = board_mci_power, 371 .get_ro = NULL, /* write-protection not supported */
372 .setpower = NULL, /* power-switching not supported */
309}; 373};
310 374
311static struct pxaficp_platform_data trizeps4_ficp_platform_data = { 375/****************************************************************************
312 .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF, 376 * IRDA mode switching on stuart
313 .transceiver_mode = board_irda_mode, 377 ****************************************************************************/
314}; 378#ifndef STATUS_LEDS_ON_STUART_PINS
379static short trizeps_conxs_ircr;
315 380
316static int trizeps4_ohci_init(struct device *dev) 381static int trizeps4_irda_startup(struct device *dev)
317{ 382{
318 /* setup Port1 GPIO pin. */ 383 trizeps_conxs_ircr &= ~ConXS_IRCR_SD;
319 pxa_gpio_mode( 88 | GPIO_ALT_FN_1_IN); /* USBHPWR1 */ 384 IRCR_writew(trizeps_conxs_ircr);
320 pxa_gpio_mode( 89 | GPIO_ALT_FN_2_OUT); /* USBHPEN1 */
321
322 /* Set the Power Control Polarity Low and Power Sense
323 Polarity Low to active low. */
324 UHCHR = (UHCHR | UHCHR_PCPL | UHCHR_PSPL) &
325 ~(UHCHR_SSEP1 | UHCHR_SSEP2 | UHCHR_SSEP3 | UHCHR_SSE);
326
327 return 0; 385 return 0;
328} 386}
329 387
330static void trizeps4_ohci_exit(struct device *dev) 388static void trizeps4_irda_shutdown(struct device *dev)
389{
390 trizeps_conxs_ircr |= ConXS_IRCR_SD;
391 IRCR_writew(trizeps_conxs_ircr);
392}
393
394static void trizeps4_irda_transceiver_mode(struct device *dev, int mode)
331{ 395{
332 ; 396 unsigned long flags;
397
398 local_irq_save(flags);
399 /* Switch mode */
400 if (mode & IR_SIRMODE)
401 trizeps_conxs_ircr &= ~ConXS_IRCR_MODE; /* Slow mode */
402 else if (mode & IR_FIRMODE) {
403 trizeps_conxs_ircr |= ConXS_IRCR_MODE; /* Fast mode */
404
405 /* Switch power */
406 if (mode & IR_OFF)
407 trizeps_conxs_ircr |= ConXS_IRCR_SD;
408 else
409 trizeps_conxs_ircr &= ~ConXS_IRCR_SD;
410
411 IRCR_writew(trizeps_conxs_ircr);
412 local_irq_restore(flags);
413
414 pxa2xx_transceiver_mode(dev, mode);
333} 415}
334 416
417static struct pxaficp_platform_data trizeps4_ficp_platform_data = {
418 .transceiver_cap = IR_SIRMODE | IR_FIRMODE | IR_OFF,
419 .transceiver_mode = trizeps4_irda_transceiver_mode,
420 .startup = trizeps4_irda_startup,
421 .shutdown = trizeps4_irda_shutdown,
422};
423#endif
424
425/****************************************************************************
426 * OHCI USB port
427 ****************************************************************************/
335static struct pxaohci_platform_data trizeps4_ohci_platform_data = { 428static struct pxaohci_platform_data trizeps4_ohci_platform_data = {
336 .port_mode = PMM_PERPORT_MODE, 429 .port_mode = PMM_PERPORT_MODE,
337 .init = trizeps4_ohci_init, 430 .flags = ENABLE_PORT_ALL | POWER_CONTROL_LOW | POWER_SENSE_LOW,
338 .exit = trizeps4_ohci_exit,
339}; 431};
340 432
341static struct map_desc trizeps4_io_desc[] __initdata = { 433static struct map_desc trizeps4_io_desc[] __initdata = {
@@ -372,105 +464,80 @@ static struct map_desc trizeps4_io_desc[] __initdata = {
372}; 464};
373 465
374static struct pxafb_mode_info sharp_lcd_mode = { 466static struct pxafb_mode_info sharp_lcd_mode = {
375 .pixclock = 78000, 467 .pixclock = 78000,
376 .xres = 640, 468 .xres = 640,
377 .yres = 480, 469 .yres = 480,
378 .bpp = 8, 470 .bpp = 8,
379 .hsync_len = 4, 471 .hsync_len = 4,
380 .left_margin = 4, 472 .left_margin = 4,
381 .right_margin = 4, 473 .right_margin = 4,
382 .vsync_len = 2, 474 .vsync_len = 2,
383 .upper_margin = 0, 475 .upper_margin = 0,
384 .lower_margin = 0, 476 .lower_margin = 0,
385 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, 477 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
386 .cmap_greyscale = 0, 478 .cmap_greyscale = 0,
387}; 479};
388 480
389static struct pxafb_mach_info sharp_lcd = { 481static struct pxafb_mach_info sharp_lcd = {
390 .modes = &sharp_lcd_mode, 482 .modes = &sharp_lcd_mode,
391 .num_modes = 1, 483 .num_modes = 1,
392 .cmap_inverse = 0, 484 .lcd_conn = LCD_COLOR_DSTN_16BPP | LCD_PCLK_EDGE_FALL,
393 .cmap_static = 0, 485 .cmap_inverse = 0,
394 .lccr0 = LCCR0_Color | LCCR0_Pas | LCCR0_Dual, 486 .cmap_static = 0,
395 .lccr3 = 0x0340ff02, 487 .pxafb_backlight_power = board_backlight_power,
396 .pxafb_backlight_power = board_backlight_power,
397}; 488};
398 489
399static struct pxafb_mode_info toshiba_lcd_mode = { 490static struct pxafb_mode_info toshiba_lcd_mode = {
400 .pixclock = 39720, 491 .pixclock = 39720,
401 .xres = 640, 492 .xres = 640,
402 .yres = 480, 493 .yres = 480,
403 .bpp = 8, 494 .bpp = 8,
404 .hsync_len = 63, 495 .hsync_len = 63,
405 .left_margin = 12, 496 .left_margin = 12,
406 .right_margin = 12, 497 .right_margin = 12,
407 .vsync_len = 4, 498 .vsync_len = 4,
408 .upper_margin = 32, 499 .upper_margin = 32,
409 .lower_margin = 10, 500 .lower_margin = 10,
410 .sync = 0, 501 .sync = 0,
411 .cmap_greyscale = 0, 502 .cmap_greyscale = 0,
412}; 503};
413 504
414static struct pxafb_mach_info toshiba_lcd = { 505static struct pxafb_mach_info toshiba_lcd = {
415 .modes = &toshiba_lcd_mode, 506 .modes = &toshiba_lcd_mode,
416 .num_modes = 1, 507 .num_modes = 1,
417 .cmap_inverse = 0, 508 .lcd_conn = (LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL),
418 .cmap_static = 0, 509 .cmap_inverse = 0,
419 .lccr0 = LCCR0_Color | LCCR0_Act, 510 .cmap_static = 0,
420 .lccr3 = 0x03400002, 511 .pxafb_backlight_power = board_backlight_power,
421 .pxafb_backlight_power = board_backlight_power,
422}; 512};
423 513
424static void __init trizeps4_init(void) 514static void __init trizeps4_init(void)
425{ 515{
426 platform_add_devices(trizeps4_devices, ARRAY_SIZE(trizeps4_devices)); 516 pxa2xx_mfp_config(ARRAY_AND_SIZE(trizeps4_pin_config));
517 if (machine_is_trizeps4wl()) {
518 pxa2xx_mfp_config(ARRAY_AND_SIZE(trizeps4wl_pin_config));
519 platform_add_devices(trizeps4wl_devices,
520 ARRAY_SIZE(trizeps4wl_devices));
521 } else {
522 platform_add_devices(trizeps4_devices,
523 ARRAY_SIZE(trizeps4_devices));
524 }
427 525
428/* set_pxa_fb_info(&sharp_lcd); */ 526 if (0) /* dont know how to determine LCD */
429 set_pxa_fb_info(&toshiba_lcd); 527 set_pxa_fb_info(&sharp_lcd);
528 else
529 set_pxa_fb_info(&toshiba_lcd);
430 530
431 pxa_set_mci_info(&trizeps4_mci_platform_data); 531 pxa_set_mci_info(&trizeps4_mci_platform_data);
532#ifndef STATUS_LEDS_ON_STUART_PINS
432 pxa_set_ficp_info(&trizeps4_ficp_platform_data); 533 pxa_set_ficp_info(&trizeps4_ficp_platform_data);
534#endif
433 pxa_set_ohci_info(&trizeps4_ohci_platform_data); 535 pxa_set_ohci_info(&trizeps4_ohci_platform_data);
434 pxa_set_ac97_info(NULL); 536 pxa_set_ac97_info(NULL);
435} 537 pxa_set_i2c_info(NULL);
436 538 i2c_register_board_info(0, trizeps4_i2c_devices,
437static void __init trizeps4_map_io(void) 539 ARRAY_SIZE(trizeps4_i2c_devices));
438{
439 pxa_map_io();
440 iotable_init(trizeps4_io_desc, ARRAY_SIZE(trizeps4_io_desc));
441
442 /* for DiskOnChip */
443 pxa_gpio_mode(GPIO15_nCS_1_MD);
444
445 /* for off-module PIC on ConXS board */
446 pxa_gpio_mode(GPIO_PIC | GPIO_IN);
447
448 /* UCB1400 irq */
449 pxa_gpio_mode(GPIO_UCB1400 | GPIO_IN);
450
451 /* for DM9000 LAN */
452 pxa_gpio_mode(GPIO78_nCS_2_MD);
453 pxa_gpio_mode(GPIO_DM9000 | GPIO_IN);
454
455 /* for PCMCIA device */
456 pxa_gpio_mode(GPIO_PCD | GPIO_IN);
457 pxa_gpio_mode(GPIO_PRDY | GPIO_IN);
458
459 /* for I2C adapter */
460 pxa_gpio_mode(GPIO117_I2CSCL_MD);
461 pxa_gpio_mode(GPIO118_I2CSDA_MD);
462 540
463 /* MMC_DET s.o. */
464 pxa_gpio_mode(GPIO_MMC_DET | GPIO_IN);
465
466 /* whats that for ??? */
467 pxa_gpio_mode(GPIO79_nCS_3_MD);
468
469#ifdef CONFIG_LEDS
470 pxa_gpio_mode( GPIO_SYS_BUSY_LED | GPIO_OUT); /* LED1 */
471 pxa_gpio_mode( GPIO_HEARTBEAT_LED | GPIO_OUT); /* LED2 */
472#endif
473#ifdef CONFIG_MACH_TRIZEPS4_CONXS
474#ifdef CONFIG_IDE_PXA_CF 541#ifdef CONFIG_IDE_PXA_CF
475 /* if boot direct from compact flash dont disable power */ 542 /* if boot direct from compact flash dont disable power */
476 trizeps_conxs_bcr = 0x0009; 543 trizeps_conxs_bcr = 0x0009;
@@ -478,18 +545,24 @@ static void __init trizeps4_map_io(void)
478 /* this is the reset value */ 545 /* this is the reset value */
479 trizeps_conxs_bcr = 0x00A0; 546 trizeps_conxs_bcr = 0x00A0;
480#endif 547#endif
481 ConXS_BCR = trizeps_conxs_bcr; 548 BCR_writew(trizeps_conxs_bcr);
482#endif 549 board_backlight_power(1);
550}
551
552static void __init trizeps4_map_io(void)
553{
554 pxa_map_io();
555 iotable_init(trizeps4_io_desc, ARRAY_SIZE(trizeps4_io_desc));
483 556
484#warning FIXME - accessing PM registers directly is deprecated 557 if ((MSC0 & 0x8) && (BOOT_DEF & 0x1)) {
485 PWER = 0x00000002; 558 /* if flash is 16 bit wide its a Trizeps4 WL */
486 PFER = 0x00000000; 559 __machine_arch_type = MACH_TYPE_TRIZEPS4WL;
487 PRER = 0x00000002; 560 trizeps4_flash_data[0].width = 2;
488 PGSR0 = 0x0158C000; 561 } else {
489 PGSR1 = 0x00FF0080; 562 /* if flash is 32 bit wide its a Trizeps4 */
490 PGSR2 = 0x0001C004; 563 __machine_arch_type = MACH_TYPE_TRIZEPS4;
491 /* Stop 3.6MHz and drive HIGH to PCMCIA and CS */ 564 trizeps4_flash_data[0].width = 4;
492 PCFR |= PCFR_OPDE; 565 }
493} 566}
494 567
495MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module") 568MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module")
@@ -503,3 +576,13 @@ MACHINE_START(TRIZEPS4, "Keith und Koep Trizeps IV module")
503 .timer = &pxa_timer, 576 .timer = &pxa_timer,
504MACHINE_END 577MACHINE_END
505 578
579MACHINE_START(TRIZEPS4WL, "Keith und Koep Trizeps IV-WL module")
580 /* MAINTAINER("Jürgen Schindele") */
581 .phys_io = 0x40000000,
582 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
583 .boot_params = TRIZEPS4_SDRAM_BASE + 0x100,
584 .init_machine = trizeps4_init,
585 .map_io = trizeps4_map_io,
586 .init_irq = pxa27x_init_irq,
587 .timer = &pxa_timer,
588MACHINE_END
diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c
new file mode 100644
index 000000000000..d7632f63603c
--- /dev/null
+++ b/arch/arm/mach-pxa/viper.c
@@ -0,0 +1,951 @@
1/*
2 * linux/arch/arm/mach-pxa/viper.c
3 *
4 * Support for the Arcom VIPER SBC.
5 *
6 * Author: Ian Campbell
7 * Created: Feb 03, 2003
8 * Copyright: Arcom Control Systems
9 *
10 * Maintained by Marc Zyngier <maz@misterjones.org>
11 * <marc.zyngier@altran.com>
12 *
13 * Based on lubbock.c:
14 * Author: Nicolas Pitre
15 * Created: Jun 15, 2001
16 * Copyright: MontaVista Software Inc.
17 *
18 * This program is free software; you can redistribute it and/or modify
19 * it under the terms of the GNU General Public License version 2 as
20 * published by the Free Software Foundation.
21 */
22
23#include <linux/types.h>
24#include <linux/memory.h>
25#include <linux/cpu.h>
26#include <linux/cpufreq.h>
27#include <linux/delay.h>
28#include <linux/fs.h>
29#include <linux/init.h>
30#include <linux/interrupt.h>
31#include <linux/major.h>
32#include <linux/module.h>
33#include <linux/pm.h>
34#include <linux/sched.h>
35#include <linux/gpio.h>
36#include <linux/i2c-gpio.h>
37#include <linux/serial_8250.h>
38#include <linux/smc91x.h>
39#include <linux/pwm_backlight.h>
40#include <linux/usb/isp116x.h>
41#include <linux/mtd/mtd.h>
42#include <linux/mtd/partitions.h>
43#include <linux/mtd/physmap.h>
44
45#include <mach/pxa-regs.h>
46#include <mach/pxa2xx-regs.h>
47#include <mach/bitfield.h>
48#include <mach/audio.h>
49#include <mach/pxafb.h>
50#include <mach/mfp-pxa25x.h>
51#include <mach/i2c.h>
52#include <mach/viper.h>
53
54#include <asm/setup.h>
55#include <asm/mach-types.h>
56#include <asm/irq.h>
57#include <asm/sizes.h>
58
59#include <asm/mach/arch.h>
60#include <asm/mach/map.h>
61#include <asm/mach/irq.h>
62
63#include "generic.h"
64#include "devices.h"
65
66static unsigned int icr;
67
68static void viper_icr_set_bit(unsigned int bit)
69{
70 icr |= bit;
71 VIPER_ICR = icr;
72}
73
74static void viper_icr_clear_bit(unsigned int bit)
75{
76 icr &= ~bit;
77 VIPER_ICR = icr;
78}
79
80/* This function is used from the pcmcia module to reset the CF */
81void viper_cf_rst(int state)
82{
83 if (state)
84 viper_icr_set_bit(VIPER_ICR_CF_RST);
85 else
86 viper_icr_clear_bit(VIPER_ICR_CF_RST);
87}
88EXPORT_SYMBOL(viper_cf_rst);
89
90/*
91 * The CPLD version register was not present on VIPER boards prior to
92 * v2i1. On v1 boards where the version register is not present we
93 * will just read back the previous value from the databus.
94 *
95 * Therefore we do two reads. The first time we write 0 to the
96 * (read-only) register before reading and the second time we write
97 * 0xff first. If the two reads do not match or they read back as 0xff
98 * or 0x00 then we have version 1 hardware.
99 */
100static u8 viper_hw_version(void)
101{
102 u8 v1, v2;
103 unsigned long flags;
104
105 local_irq_save(flags);
106
107 VIPER_VERSION = 0;
108 v1 = VIPER_VERSION;
109 VIPER_VERSION = 0xff;
110 v2 = VIPER_VERSION;
111
112 v1 = (v1 != v2 || v1 == 0xff) ? 0 : v1;
113
114 local_irq_restore(flags);
115 return v1;
116}
117
118/* CPU sysdev */
119static int viper_cpu_suspend(struct sys_device *sysdev, pm_message_t state)
120{
121 viper_icr_set_bit(VIPER_ICR_R_DIS);
122 return 0;
123}
124
125static int viper_cpu_resume(struct sys_device *sysdev)
126{
127 viper_icr_clear_bit(VIPER_ICR_R_DIS);
128 return 0;
129}
130
131static struct sysdev_driver viper_cpu_sysdev_driver = {
132 .suspend = viper_cpu_suspend,
133 .resume = viper_cpu_resume,
134};
135
136static unsigned int current_voltage_divisor;
137
138/*
139 * If force is not true then step from existing to new divisor. If
140 * force is true then jump straight to the new divisor. Stepping is
141 * used because if the jump in voltage is too large, the VCC can dip
142 * too low and the regulator cuts out.
143 *
144 * force can be used to initialize the divisor to a know state by
145 * setting the value for the current clock speed, since we are already
146 * running at that speed we know the voltage should be pretty close so
147 * the jump won't be too large
148 */
149static void viper_set_core_cpu_voltage(unsigned long khz, int force)
150{
151 int i = 0;
152 unsigned int divisor = 0;
153 const char *v;
154
155 if (khz < 200000) {
156 v = "1.0"; divisor = 0xfff;
157 } else if (khz < 300000) {
158 v = "1.1"; divisor = 0xde5;
159 } else {
160 v = "1.3"; divisor = 0x325;
161 }
162
163 pr_debug("viper: setting CPU core voltage to %sV at %d.%03dMHz\n",
164 v, (int)khz / 1000, (int)khz % 1000);
165
166#define STEP 0x100
167 do {
168 int step;
169
170 if (force)
171 step = divisor;
172 else if (current_voltage_divisor < divisor - STEP)
173 step = current_voltage_divisor + STEP;
174 else if (current_voltage_divisor > divisor + STEP)
175 step = current_voltage_divisor - STEP;
176 else
177 step = divisor;
178 force = 0;
179
180 gpio_set_value(VIPER_PSU_CLK_GPIO, 0);
181 gpio_set_value(VIPER_PSU_nCS_LD_GPIO, 0);
182
183 for (i = 1 << 11 ; i > 0 ; i >>= 1) {
184 udelay(1);
185
186 gpio_set_value(VIPER_PSU_DATA_GPIO, step & i);
187 udelay(1);
188
189 gpio_set_value(VIPER_PSU_CLK_GPIO, 1);
190 udelay(1);
191
192 gpio_set_value(VIPER_PSU_CLK_GPIO, 0);
193 }
194 udelay(1);
195
196 gpio_set_value(VIPER_PSU_nCS_LD_GPIO, 1);
197 udelay(1);
198
199 gpio_set_value(VIPER_PSU_nCS_LD_GPIO, 0);
200
201 current_voltage_divisor = step;
202 } while (current_voltage_divisor != divisor);
203}
204
205/* Interrupt handling */
206static unsigned long viper_irq_enabled_mask;
207
208static void viper_ack_irq(unsigned int irq)
209{
210 int viper_irq = irq - PXA_ISA_IRQ(0);
211
212 if (viper_irq < 8)
213 VIPER_LO_IRQ_STATUS = 1 << viper_irq;
214 else
215 VIPER_HI_IRQ_STATUS = 1 << (viper_irq - 8);
216}
217
218static void viper_mask_irq(unsigned int irq)
219{
220 viper_irq_enabled_mask &= ~(1 << (irq - PXA_ISA_IRQ(0)));
221}
222
223static void viper_unmask_irq(unsigned int irq)
224{
225 viper_irq_enabled_mask |= (1 << (irq - PXA_ISA_IRQ(0)));
226}
227
228static inline unsigned long viper_irq_pending(void)
229{
230 return (VIPER_HI_IRQ_STATUS << 8 | VIPER_LO_IRQ_STATUS) &
231 viper_irq_enabled_mask;
232}
233
234static void viper_irq_handler(unsigned int irq, struct irq_desc *desc)
235{
236 unsigned long pending;
237
238 pending = viper_irq_pending();
239 do {
240 if (likely(pending)) {
241 irq = PXA_ISA_IRQ(0) + __ffs(pending);
242 generic_handle_irq(irq);
243 }
244 pending = viper_irq_pending();
245 } while (pending);
246}
247
248static struct irq_chip viper_irq_chip = {
249 .name = "ISA",
250 .ack = viper_ack_irq,
251 .mask = viper_mask_irq,
252 .unmask = viper_unmask_irq
253};
254
255static void __init viper_init_irq(void)
256{
257 const int isa_irqs[] = { 3, 4, 5, 6, 7, 10, 11, 12, 9, 14, 15 };
258 int irq;
259 int isa_irq;
260
261 pxa25x_init_irq();
262
263 /* setup ISA IRQs */
264 for (irq = 0; irq < ARRAY_SIZE(isa_irqs); irq++) {
265 isa_irq = isa_irqs[irq];
266 set_irq_chip(isa_irq, &viper_irq_chip);
267 set_irq_handler(isa_irq, handle_edge_irq);
268 set_irq_flags(isa_irq, IRQF_VALID | IRQF_PROBE);
269 }
270
271 set_irq_chained_handler(gpio_to_irq(VIPER_CPLD_GPIO),
272 viper_irq_handler);
273 set_irq_type(gpio_to_irq(VIPER_CPLD_GPIO), IRQ_TYPE_EDGE_BOTH);
274
275#ifndef CONFIG_SERIAL_PXA
276 /*
277 * 8250 doesn't support IRQ_TYPE being passed as part
278 * of the plat_serial8250_port structure...
279 */
280 set_irq_type(gpio_to_irq(VIPER_UARTA_GPIO), IRQ_TYPE_EDGE_RISING);
281 set_irq_type(gpio_to_irq(VIPER_UARTB_GPIO), IRQ_TYPE_EDGE_RISING);
282#endif
283}
284
285/* Flat Panel */
286static struct pxafb_mode_info fb_mode_info[] = {
287 {
288 .pixclock = 157500,
289
290 .xres = 320,
291 .yres = 240,
292
293 .bpp = 16,
294
295 .hsync_len = 63,
296 .left_margin = 7,
297 .right_margin = 13,
298
299 .vsync_len = 20,
300 .upper_margin = 0,
301 .lower_margin = 0,
302
303 .sync = 0,
304 },
305};
306
307static struct pxafb_mach_info fb_info = {
308 .modes = fb_mode_info,
309 .num_modes = 1,
310 .lcd_conn = LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
311};
312
313static int viper_backlight_init(struct device *dev)
314{
315 int ret;
316
317 /* GPIO9 and 10 control FB backlight. Initialise to off */
318 ret = gpio_request(VIPER_BCKLIGHT_EN_GPIO, "Backlight");
319 if (ret)
320 goto err_request_bckl;
321
322 ret = gpio_request(VIPER_LCD_EN_GPIO, "LCD");
323 if (ret)
324 goto err_request_lcd;
325
326 ret = gpio_direction_output(VIPER_BCKLIGHT_EN_GPIO, 0);
327 if (ret)
328 goto err_dir;
329
330 ret = gpio_direction_output(VIPER_LCD_EN_GPIO, 0);
331 if (ret)
332 goto err_dir;
333
334 return 0;
335
336err_dir:
337 gpio_free(VIPER_LCD_EN_GPIO);
338err_request_lcd:
339 gpio_free(VIPER_BCKLIGHT_EN_GPIO);
340err_request_bckl:
341 dev_err(dev, "Failed to setup LCD GPIOs\n");
342
343 return ret;
344}
345
346static int viper_backlight_notify(int brightness)
347{
348 gpio_set_value(VIPER_LCD_EN_GPIO, !!brightness);
349 gpio_set_value(VIPER_BCKLIGHT_EN_GPIO, !!brightness);
350
351 return brightness;
352}
353
354static void viper_backlight_exit(struct device *dev)
355{
356 gpio_free(VIPER_LCD_EN_GPIO);
357 gpio_free(VIPER_BCKLIGHT_EN_GPIO);
358}
359
360static struct platform_pwm_backlight_data viper_backlight_data = {
361 .pwm_id = 0,
362 .max_brightness = 100,
363 .dft_brightness = 100,
364 .pwm_period_ns = 1000000,
365 .init = viper_backlight_init,
366 .notify = viper_backlight_notify,
367 .exit = viper_backlight_exit,
368};
369
370static struct platform_device viper_backlight_device = {
371 .name = "pwm-backlight",
372 .dev = {
373 .parent = &pxa25x_device_pwm0.dev,
374 .platform_data = &viper_backlight_data,
375 },
376};
377
378/* Ethernet */
379static struct resource smc91x_resources[] = {
380 [0] = {
381 .name = "smc91x-regs",
382 .start = VIPER_ETH_PHYS + 0x300,
383 .end = VIPER_ETH_PHYS + 0x30f,
384 .flags = IORESOURCE_MEM,
385 },
386 [1] = {
387 .start = gpio_to_irq(VIPER_ETH_GPIO),
388 .end = gpio_to_irq(VIPER_ETH_GPIO),
389 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
390 },
391 [2] = {
392 .name = "smc91x-data32",
393 .start = VIPER_ETH_DATA_PHYS,
394 .end = VIPER_ETH_DATA_PHYS + 3,
395 .flags = IORESOURCE_MEM,
396 },
397};
398
399static struct smc91x_platdata viper_smc91x_info = {
400 .flags = SMC91X_USE_16BIT | SMC91X_NOWAIT,
401 .leda = RPC_LED_100_10,
402 .ledb = RPC_LED_TX_RX,
403};
404
405static struct platform_device smc91x_device = {
406 .name = "smc91x",
407 .id = -1,
408 .num_resources = ARRAY_SIZE(smc91x_resources),
409 .resource = smc91x_resources,
410 .dev = {
411 .platform_data = &viper_smc91x_info,
412 },
413};
414
415/* i2c */
416static struct i2c_gpio_platform_data i2c_bus_data = {
417 .sda_pin = VIPER_RTC_I2C_SDA_GPIO,
418 .scl_pin = VIPER_RTC_I2C_SCL_GPIO,
419 .udelay = 10,
420 .timeout = 100,
421};
422
423static struct platform_device i2c_bus_device = {
424 .name = "i2c-gpio",
425 .id = 1, /* pxa2xx-i2c is bus 0, so start at 1 */
426 .dev = {
427 .platform_data = &i2c_bus_data,
428 }
429};
430
431static struct i2c_board_info __initdata viper_i2c_devices[] = {
432 {
433 I2C_BOARD_INFO("ds1338", 0x68),
434 },
435};
436
437/*
438 * Serial configuration:
439 * You can either have the standard PXA ports driven by the PXA driver,
440 * or all the ports (PXA + 16850) driven by the 8250 driver.
441 * Choose your poison.
442 */
443
444static struct resource viper_serial_resources[] = {
445#ifndef CONFIG_SERIAL_PXA
446 {
447 .start = 0x40100000,
448 .end = 0x4010001f,
449 .flags = IORESOURCE_MEM,
450 },
451 {
452 .start = 0x40200000,
453 .end = 0x4020001f,
454 .flags = IORESOURCE_MEM,
455 },
456 {
457 .start = 0x40700000,
458 .end = 0x4070001f,
459 .flags = IORESOURCE_MEM,
460 },
461 {
462 .start = VIPER_UARTA_PHYS,
463 .end = VIPER_UARTA_PHYS + 0xf,
464 .flags = IORESOURCE_MEM,
465 },
466 {
467 .start = VIPER_UARTB_PHYS,
468 .end = VIPER_UARTB_PHYS + 0xf,
469 .flags = IORESOURCE_MEM,
470 },
471#else
472 {
473 0,
474 },
475#endif
476};
477
478static struct plat_serial8250_port serial_platform_data[] = {
479#ifndef CONFIG_SERIAL_PXA
480 /* Internal UARTs */
481 {
482 .membase = (void *)&FFUART,
483 .mapbase = __PREG(FFUART),
484 .irq = IRQ_FFUART,
485 .uartclk = 921600 * 16,
486 .regshift = 2,
487 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
488 .iotype = UPIO_MEM,
489 },
490 {
491 .membase = (void *)&BTUART,
492 .mapbase = __PREG(BTUART),
493 .irq = IRQ_BTUART,
494 .uartclk = 921600 * 16,
495 .regshift = 2,
496 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
497 .iotype = UPIO_MEM,
498 },
499 {
500 .membase = (void *)&STUART,
501 .mapbase = __PREG(STUART),
502 .irq = IRQ_STUART,
503 .uartclk = 921600 * 16,
504 .regshift = 2,
505 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
506 .iotype = UPIO_MEM,
507 },
508 /* External UARTs */
509 {
510 .mapbase = VIPER_UARTA_PHYS,
511 .irq = gpio_to_irq(VIPER_UARTA_GPIO),
512 .uartclk = 1843200,
513 .regshift = 1,
514 .iotype = UPIO_MEM,
515 .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP |
516 UPF_SKIP_TEST,
517 },
518 {
519 .mapbase = VIPER_UARTB_PHYS,
520 .irq = gpio_to_irq(VIPER_UARTB_GPIO),
521 .uartclk = 1843200,
522 .regshift = 1,
523 .iotype = UPIO_MEM,
524 .flags = UPF_BOOT_AUTOCONF | UPF_IOREMAP |
525 UPF_SKIP_TEST,
526 },
527#endif
528 { },
529};
530
531static struct platform_device serial_device = {
532 .name = "serial8250",
533 .id = 0,
534 .dev = {
535 .platform_data = serial_platform_data,
536 },
537 .num_resources = ARRAY_SIZE(viper_serial_resources),
538 .resource = viper_serial_resources,
539};
540
541/* USB */
542static void isp116x_delay(struct device *dev, int delay)
543{
544 ndelay(delay);
545}
546
547static struct resource isp116x_resources[] = {
548 [0] = { /* DATA */
549 .start = VIPER_USB_PHYS + 0,
550 .end = VIPER_USB_PHYS + 1,
551 .flags = IORESOURCE_MEM,
552 },
553 [1] = { /* ADDR */
554 .start = VIPER_USB_PHYS + 2,
555 .end = VIPER_USB_PHYS + 3,
556 .flags = IORESOURCE_MEM,
557 },
558 [2] = {
559 .start = gpio_to_irq(VIPER_USB_GPIO),
560 .end = gpio_to_irq(VIPER_USB_GPIO),
561 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
562 },
563};
564
565/* (DataBusWidth16|AnalogOCEnable|DREQOutputPolarity|DownstreamPort15KRSel ) */
566static struct isp116x_platform_data isp116x_platform_data = {
567 /* Enable internal resistors on downstream ports */
568 .sel15Kres = 1,
569 /* On-chip overcurrent protection */
570 .oc_enable = 1,
571 /* INT output polarity */
572 .int_act_high = 1,
573 /* INT edge or level triggered */
574 .int_edge_triggered = 0,
575
576 /* WAKEUP pin connected - NOT SUPPORTED */
577 /* .remote_wakeup_connected = 0, */
578 /* Wakeup by devices on usb bus enabled */
579 .remote_wakeup_enable = 0,
580 .delay = isp116x_delay,
581};
582
583static struct platform_device isp116x_device = {
584 .name = "isp116x-hcd",
585 .id = -1,
586 .num_resources = ARRAY_SIZE(isp116x_resources),
587 .resource = isp116x_resources,
588 .dev = {
589 .platform_data = &isp116x_platform_data,
590 },
591
592};
593
594/* MTD */
595static struct resource mtd_resources[] = {
596 [0] = { /* RedBoot config + filesystem flash */
597 .start = VIPER_FLASH_PHYS,
598 .end = VIPER_FLASH_PHYS + SZ_32M - 1,
599 .flags = IORESOURCE_MEM,
600 },
601 [1] = { /* Boot flash */
602 .start = VIPER_BOOT_PHYS,
603 .end = VIPER_BOOT_PHYS + SZ_1M - 1,
604 .flags = IORESOURCE_MEM,
605 },
606 [2] = { /*
607 * SRAM size is actually 256KB, 8bits, with a sparse mapping
608 * (each byte is on a 16bit boundary).
609 */
610 .start = _VIPER_SRAM_BASE,
611 .end = _VIPER_SRAM_BASE + SZ_512K - 1,
612 .flags = IORESOURCE_MEM,
613 },
614};
615
616static struct mtd_partition viper_boot_flash_partition = {
617 .name = "RedBoot",
618 .size = SZ_1M,
619 .offset = 0,
620 .mask_flags = MTD_WRITEABLE, /* force R/O */
621};
622
623static struct physmap_flash_data viper_flash_data[] = {
624 [0] = {
625 .width = 2,
626 .parts = NULL,
627 .nr_parts = 0,
628 },
629 [1] = {
630 .width = 2,
631 .parts = &viper_boot_flash_partition,
632 .nr_parts = 1,
633 },
634};
635
636static struct platform_device viper_mtd_devices[] = {
637 [0] = {
638 .name = "physmap-flash",
639 .id = 0,
640 .dev = {
641 .platform_data = &viper_flash_data[0],
642 },
643 .resource = &mtd_resources[0],
644 .num_resources = 1,
645 },
646 [1] = {
647 .name = "physmap-flash",
648 .id = 1,
649 .dev = {
650 .platform_data = &viper_flash_data[1],
651 },
652 .resource = &mtd_resources[1],
653 .num_resources = 1,
654 },
655};
656
657static struct platform_device *viper_devs[] __initdata = {
658 &smc91x_device,
659 &i2c_bus_device,
660 &serial_device,
661 &isp116x_device,
662 &viper_mtd_devices[0],
663 &viper_mtd_devices[1],
664 &viper_backlight_device,
665};
666
667static mfp_cfg_t viper_pin_config[] __initdata = {
668 /* Chip selects */
669 GPIO15_nCS_1,
670 GPIO78_nCS_2,
671 GPIO79_nCS_3,
672 GPIO80_nCS_4,
673 GPIO33_nCS_5,
674
675 /* FP Backlight */
676 GPIO9_GPIO, /* VIPER_BCKLIGHT_EN_GPIO */
677 GPIO10_GPIO, /* VIPER_LCD_EN_GPIO */
678 GPIO16_PWM0_OUT,
679
680 /* Ethernet PHY Ready */
681 GPIO18_RDY,
682
683 /* Serial shutdown */
684 GPIO12_GPIO | MFP_LPM_DRIVE_HIGH, /* VIPER_UART_SHDN_GPIO */
685
686 /* Compact-Flash / PC104 */
687 GPIO48_nPOE,
688 GPIO49_nPWE,
689 GPIO50_nPIOR,
690 GPIO51_nPIOW,
691 GPIO52_nPCE_1,
692 GPIO53_nPCE_2,
693 GPIO54_nPSKTSEL,
694 GPIO55_nPREG,
695 GPIO56_nPWAIT,
696 GPIO57_nIOIS16,
697 GPIO8_GPIO, /* VIPER_CF_RDY_GPIO */
698 GPIO32_GPIO, /* VIPER_CF_CD_GPIO */
699 GPIO82_GPIO, /* VIPER_CF_POWER_GPIO */
700
701 /* Integrated UPS control */
702 GPIO20_GPIO, /* VIPER_UPS_GPIO */
703
704 /* Vcc regulator control */
705 GPIO6_GPIO, /* VIPER_PSU_DATA_GPIO */
706 GPIO11_GPIO, /* VIPER_PSU_CLK_GPIO */
707 GPIO19_GPIO, /* VIPER_PSU_nCS_LD_GPIO */
708
709 /* i2c busses */
710 GPIO26_GPIO, /* VIPER_TPM_I2C_SDA_GPIO */
711 GPIO27_GPIO, /* VIPER_TPM_I2C_SCL_GPIO */
712 GPIO83_GPIO, /* VIPER_RTC_I2C_SDA_GPIO */
713 GPIO84_GPIO, /* VIPER_RTC_I2C_SCL_GPIO */
714
715 /* PC/104 Interrupt */
716 GPIO1_GPIO | WAKEUP_ON_EDGE_RISE, /* VIPER_CPLD_GPIO */
717};
718
719static unsigned long viper_tpm;
720
721static int __init viper_tpm_setup(char *str)
722{
723 strict_strtoul(str, 10, &viper_tpm);
724 return 1;
725}
726
727__setup("tpm=", viper_tpm_setup);
728
729static void __init viper_tpm_init(void)
730{
731 struct platform_device *tpm_device;
732 struct i2c_gpio_platform_data i2c_tpm_data = {
733 .sda_pin = VIPER_TPM_I2C_SDA_GPIO,
734 .scl_pin = VIPER_TPM_I2C_SCL_GPIO,
735 .udelay = 10,
736 .timeout = 100,
737 };
738 char *errstr;
739
740 /* Allocate TPM i2c bus if requested */
741 if (!viper_tpm)
742 return;
743
744 tpm_device = platform_device_alloc("i2c-gpio", 2);
745 if (tpm_device) {
746 if (!platform_device_add_data(tpm_device,
747 &i2c_tpm_data,
748 sizeof(i2c_tpm_data))) {
749 if (platform_device_add(tpm_device)) {
750 errstr = "register TPM i2c bus";
751 goto error_free_tpm;
752 }
753 } else {
754 errstr = "allocate TPM i2c bus data";
755 goto error_free_tpm;
756 }
757 } else {
758 errstr = "allocate TPM i2c device";
759 goto error_tpm;
760 }
761
762 return;
763
764error_free_tpm:
765 kfree(tpm_device);
766error_tpm:
767 pr_err("viper: Couldn't %s, giving up\n", errstr);
768}
769
770static void __init viper_init_vcore_gpios(void)
771{
772 if (gpio_request(VIPER_PSU_DATA_GPIO, "PSU data"))
773 goto err_request_data;
774
775 if (gpio_request(VIPER_PSU_CLK_GPIO, "PSU clock"))
776 goto err_request_clk;
777
778 if (gpio_request(VIPER_PSU_nCS_LD_GPIO, "PSU cs"))
779 goto err_request_cs;
780
781 if (gpio_direction_output(VIPER_PSU_DATA_GPIO, 0) ||
782 gpio_direction_output(VIPER_PSU_CLK_GPIO, 0) ||
783 gpio_direction_output(VIPER_PSU_nCS_LD_GPIO, 0))
784 goto err_dir;
785
786 /* c/should assume redboot set the correct level ??? */
787 viper_set_core_cpu_voltage(get_clk_frequency_khz(0), 1);
788
789 return;
790
791err_dir:
792 gpio_free(VIPER_PSU_nCS_LD_GPIO);
793err_request_cs:
794 gpio_free(VIPER_PSU_CLK_GPIO);
795err_request_clk:
796 gpio_free(VIPER_PSU_DATA_GPIO);
797err_request_data:
798 pr_err("viper: Failed to setup vcore control GPIOs\n");
799}
800
801static void __init viper_init_serial_gpio(void)
802{
803 if (gpio_request(VIPER_UART_SHDN_GPIO, "UARTs shutdown"))
804 goto err_request;
805
806 if (gpio_direction_output(VIPER_UART_SHDN_GPIO, 0))
807 goto err_dir;
808
809 return;
810
811err_dir:
812 gpio_free(VIPER_UART_SHDN_GPIO);
813err_request:
814 pr_err("viper: Failed to setup UART shutdown GPIO\n");
815}
816
817#ifdef CONFIG_CPU_FREQ
818static int viper_cpufreq_notifier(struct notifier_block *nb,
819 unsigned long val, void *data)
820{
821 struct cpufreq_freqs *freq = data;
822
823 /* TODO: Adjust timings??? */
824
825 switch (val) {
826 case CPUFREQ_PRECHANGE:
827 if (freq->old < freq->new) {
828 /* we are getting faster so raise the voltage
829 * before we change freq */
830 viper_set_core_cpu_voltage(freq->new, 0);
831 }
832 break;
833 case CPUFREQ_POSTCHANGE:
834 if (freq->old > freq->new) {
835 /* we are slowing down so drop the power
836 * after we change freq */
837 viper_set_core_cpu_voltage(freq->new, 0);
838 }
839 break;
840 case CPUFREQ_RESUMECHANGE:
841 viper_set_core_cpu_voltage(freq->new, 0);
842 break;
843 default:
844 /* ignore */
845 break;
846 }
847
848 return 0;
849}
850
851static struct notifier_block viper_cpufreq_notifier_block = {
852 .notifier_call = viper_cpufreq_notifier
853};
854
855static void __init viper_init_cpufreq(void)
856{
857 if (cpufreq_register_notifier(&viper_cpufreq_notifier_block,
858 CPUFREQ_TRANSITION_NOTIFIER))
859 pr_err("viper: Failed to setup cpufreq notifier\n");
860}
861#else
862static inline void viper_init_cpufreq(void) {}
863#endif
864
865static void viper_power_off(void)
866{
867 pr_notice("Shutting off UPS\n");
868 gpio_set_value(VIPER_UPS_GPIO, 1);
869 /* Spin to death... */
870 while (1);
871}
872
873static void __init viper_init(void)
874{
875 u8 version;
876
877 pm_power_off = viper_power_off;
878
879 pxa2xx_mfp_config(ARRAY_AND_SIZE(viper_pin_config));
880
881 /* Wake-up serial console */
882 viper_init_serial_gpio();
883
884 set_pxa_fb_info(&fb_info);
885
886 /* v1 hardware cannot use the datacs line */
887 version = viper_hw_version();
888 if (version == 0)
889 smc91x_device.num_resources--;
890
891 pxa_set_i2c_info(NULL);
892 platform_add_devices(viper_devs, ARRAY_SIZE(viper_devs));
893
894 viper_init_vcore_gpios();
895 viper_init_cpufreq();
896
897 sysdev_driver_register(&cpu_sysdev_class, &viper_cpu_sysdev_driver);
898
899 if (version) {
900 pr_info("viper: hardware v%di%d detected. "
901 "CPLD revision %d.\n",
902 VIPER_BOARD_VERSION(version),
903 VIPER_BOARD_ISSUE(version),
904 VIPER_CPLD_REVISION(version));
905 system_rev = (VIPER_BOARD_VERSION(version) << 8) |
906 (VIPER_BOARD_ISSUE(version) << 4) |
907 VIPER_CPLD_REVISION(version);
908 } else {
909 pr_info("viper: No version register.\n");
910 }
911
912 i2c_register_board_info(1, ARRAY_AND_SIZE(viper_i2c_devices));
913
914 viper_tpm_init();
915 pxa_set_ac97_info(NULL);
916}
917
918static struct map_desc viper_io_desc[] __initdata = {
919 {
920 .virtual = VIPER_CPLD_BASE,
921 .pfn = __phys_to_pfn(VIPER_CPLD_PHYS),
922 .length = 0x00300000,
923 .type = MT_DEVICE,
924 },
925 {
926 .virtual = VIPER_PC104IO_BASE,
927 .pfn = __phys_to_pfn(_PCMCIA1IO),
928 .length = 0x00800000,
929 .type = MT_DEVICE,
930 },
931};
932
933static void __init viper_map_io(void)
934{
935 pxa_map_io();
936
937 iotable_init(viper_io_desc, ARRAY_SIZE(viper_io_desc));
938
939 PCFR |= PCFR_OPDE;
940}
941
942MACHINE_START(VIPER, "Arcom/Eurotech VIPER SBC")
943 /* Maintainer: Marc Zyngier <maz@misterjones.org> */
944 .phys_io = 0x40000000,
945 .io_pg_offst = (io_p2v(0x40000000) >> 18) & 0xfffc,
946 .boot_params = 0xa0000100,
947 .map_io = viper_map_io,
948 .init_irq = viper_init_irq,
949 .timer = &pxa_timer,
950 .init_machine = viper_init,
951MACHINE_END
diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c
index 0cb65b5772fe..813804433466 100644
--- a/arch/arm/mach-pxa/zylonite.c
+++ b/arch/arm/mach-pxa/zylonite.c
@@ -29,6 +29,7 @@
29#include <mach/pxafb.h> 29#include <mach/pxafb.h>
30#include <mach/zylonite.h> 30#include <mach/zylonite.h>
31#include <mach/mmc.h> 31#include <mach/mmc.h>
32#include <mach/ohci.h>
32#include <mach/pxa27x_keypad.h> 33#include <mach/pxa27x_keypad.h>
33#include <mach/pxa3xx_nand.h> 34#include <mach/pxa3xx_nand.h>
34 35
@@ -423,6 +424,21 @@ static void __init zylonite_init_nand(void)
423static inline void zylonite_init_nand(void) {} 424static inline void zylonite_init_nand(void) {}
424#endif /* CONFIG_MTD_NAND_PXA3xx || CONFIG_MTD_NAND_PXA3xx_MODULE */ 425#endif /* CONFIG_MTD_NAND_PXA3xx || CONFIG_MTD_NAND_PXA3xx_MODULE */
425 426
427#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
428static struct pxaohci_platform_data zylonite_ohci_info = {
429 .port_mode = PMM_PERPORT_MODE,
430 .flags = ENABLE_PORT1 | ENABLE_PORT2 |
431 POWER_CONTROL_LOW | POWER_SENSE_LOW,
432};
433
434static void __init zylonite_init_ohci(void)
435{
436 pxa_set_ohci_info(&zylonite_ohci_info);
437}
438#else
439static inline void zylonite_init_ohci(void) {}
440#endif /* CONFIG_USB_OHCI_HCD || CONFIG_USB_OHCI_HCD_MODULE */
441
426static void __init zylonite_init(void) 442static void __init zylonite_init(void)
427{ 443{
428 /* board-processor specific initialization */ 444 /* board-processor specific initialization */
@@ -443,6 +459,7 @@ static void __init zylonite_init(void)
443 zylonite_init_keypad(); 459 zylonite_init_keypad();
444 zylonite_init_nand(); 460 zylonite_init_nand();
445 zylonite_init_leds(); 461 zylonite_init_leds();
462 zylonite_init_ohci();
446} 463}
447 464
448MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)") 465MACHINE_START(ZYLONITE, "PXA3xx Platform Development Kit (aka Zylonite)")
diff --git a/arch/arm/mach-pxa/zylonite_pxa300.c b/arch/arm/mach-pxa/zylonite_pxa300.c
index 095f5c648236..46538885a58a 100644
--- a/arch/arm/mach-pxa/zylonite_pxa300.c
+++ b/arch/arm/mach-pxa/zylonite_pxa300.c
@@ -73,6 +73,12 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
73 GPIO27_AC97_SDATA_OUT, 73 GPIO27_AC97_SDATA_OUT,
74 GPIO28_AC97_SYNC, 74 GPIO28_AC97_SYNC,
75 75
76 /* SSP3 */
77 GPIO91_SSP3_SCLK,
78 GPIO92_SSP3_FRM,
79 GPIO93_SSP3_TXD,
80 GPIO94_SSP3_RXD,
81
76 /* WM9713 IRQ */ 82 /* WM9713 IRQ */
77 GPIO26_GPIO, 83 GPIO26_GPIO,
78 84
@@ -113,6 +119,10 @@ static mfp_cfg_t common_mfp_cfg[] __initdata = {
113 GPIO13_MMC2_CLK, 119 GPIO13_MMC2_CLK,
114 GPIO14_MMC2_CMD, 120 GPIO14_MMC2_CMD,
115 121
122 /* USB Host */
123 GPIO0_2_USBH_PEN,
124 GPIO1_2_USBH_PWR,
125
116 /* Standard I2C */ 126 /* Standard I2C */
117 GPIO21_I2C_SCL, 127 GPIO21_I2C_SCL,
118 GPIO22_I2C_SDA, 128 GPIO22_I2C_SDA,
@@ -209,7 +219,7 @@ static struct pca953x_platform_data gpio_exp[] = {
209 }, 219 },
210}; 220};
211 221
212struct i2c_board_info zylonite_i2c_board_info[] = { 222static struct i2c_board_info zylonite_i2c_board_info[] = {
213 { 223 {
214 .type = "pca9539", 224 .type = "pca9539",
215 .addr = 0x74, 225 .addr = 0x74,
diff --git a/arch/arm/mach-pxa/zylonite_pxa320.c b/arch/arm/mach-pxa/zylonite_pxa320.c
index 9879d7da2df5..0f244744daae 100644
--- a/arch/arm/mach-pxa/zylonite_pxa320.c
+++ b/arch/arm/mach-pxa/zylonite_pxa320.c
@@ -69,6 +69,12 @@ static mfp_cfg_t mfp_cfg[] __initdata = {
69 GPIO39_AC97_BITCLK, 69 GPIO39_AC97_BITCLK,
70 GPIO40_AC97_nACRESET, 70 GPIO40_AC97_nACRESET,
71 71
72 /* SSP3 */
73 GPIO89_SSP3_SCLK,
74 GPIO90_SSP3_FRM,
75 GPIO91_SSP3_TXD,
76 GPIO92_SSP3_RXD,
77
72 /* WM9713 IRQ */ 78 /* WM9713 IRQ */
73 GPIO15_GPIO, 79 GPIO15_GPIO,
74 80
@@ -117,6 +123,10 @@ static mfp_cfg_t mfp_cfg[] __initdata = {
117 GPIO28_MMC2_CLK, 123 GPIO28_MMC2_CLK,
118 GPIO29_MMC2_CMD, 124 GPIO29_MMC2_CMD,
119 125
126 /* USB Host */
127 GPIO2_2_USBH_PEN,
128 GPIO3_2_USBH_PWR,
129
120 /* Debug LEDs */ 130 /* Debug LEDs */
121 GPIO1_2_GPIO | MFP_LPM_DRIVE_HIGH, 131 GPIO1_2_GPIO | MFP_LPM_DRIVE_HIGH,
122 GPIO4_2_GPIO | MFP_LPM_DRIVE_HIGH, 132 GPIO4_2_GPIO | MFP_LPM_DRIVE_HIGH,
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 4f9c84ab781c..2f04d54711e7 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -27,10 +27,10 @@
27#include <linux/amba/clcd.h> 27#include <linux/amba/clcd.h>
28#include <linux/clocksource.h> 28#include <linux/clocksource.h>
29#include <linux/clockchips.h> 29#include <linux/clockchips.h>
30#include <linux/io.h>
30 31
31#include <asm/system.h> 32#include <asm/system.h>
32#include <mach/hardware.h> 33#include <mach/hardware.h>
33#include <asm/io.h>
34#include <asm/irq.h> 34#include <asm/irq.h>
35#include <asm/leds.h> 35#include <asm/leds.h>
36#include <asm/hardware/arm_timer.h> 36#include <asm/hardware/arm_timer.h>
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h
index 33dbbb41a663..3cea92c70d8f 100644
--- a/arch/arm/mach-realview/core.h
+++ b/arch/arm/mach-realview/core.h
@@ -23,9 +23,9 @@
23#define __ASM_ARCH_REALVIEW_H 23#define __ASM_ARCH_REALVIEW_H
24 24
25#include <linux/amba/bus.h> 25#include <linux/amba/bus.h>
26#include <linux/io.h>
26 27
27#include <asm/leds.h> 28#include <asm/leds.h>
28#include <asm/io.h>
29 29
30#define AMBA_DEVICE(name,busid,base,plat) \ 30#define AMBA_DEVICE(name,busid,base,plat) \
31static struct amba_device name##_device = { \ 31static struct amba_device name##_device = { \
diff --git a/arch/arm/mach-realview/include/mach/system.h b/arch/arm/mach-realview/include/mach/system.h
index 4d3c8f3f8053..a2f61c78adbf 100644
--- a/arch/arm/mach-realview/include/mach/system.h
+++ b/arch/arm/mach-realview/include/mach/system.h
@@ -21,8 +21,8 @@
21#ifndef __ASM_ARCH_SYSTEM_H 21#ifndef __ASM_ARCH_SYSTEM_H
22#define __ASM_ARCH_SYSTEM_H 22#define __ASM_ARCH_SYSTEM_H
23 23
24#include <linux/io.h>
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/io.h>
26#include <mach/platform.h> 26#include <mach/platform.h>
27 27
28static inline void arch_idle(void) 28static inline void arch_idle(void)
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c
index 82fa1f26e026..44d178cd5733 100644
--- a/arch/arm/mach-realview/localtimer.c
+++ b/arch/arm/mach-realview/localtimer.c
@@ -17,11 +17,11 @@
17#include <linux/percpu.h> 17#include <linux/percpu.h>
18#include <linux/clockchips.h> 18#include <linux/clockchips.h>
19#include <linux/irq.h> 19#include <linux/irq.h>
20#include <linux/io.h>
20 21
21#include <asm/hardware/arm_twd.h> 22#include <asm/hardware/arm_twd.h>
22#include <asm/hardware/gic.h> 23#include <asm/hardware/gic.h>
23#include <mach/hardware.h> 24#include <mach/hardware.h>
24#include <asm/io.h>
25#include <asm/irq.h> 25#include <asm/irq.h>
26 26
27static DEFINE_PER_CPU(struct clock_event_device, local_clockevent); 27static DEFINE_PER_CPU(struct clock_event_device, local_clockevent);
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index 1907d22f4fed..e102aeb0f76e 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -13,10 +13,10 @@
13#include <linux/delay.h> 13#include <linux/delay.h>
14#include <linux/device.h> 14#include <linux/device.h>
15#include <linux/smp.h> 15#include <linux/smp.h>
16#include <linux/io.h>
16 17
17#include <asm/cacheflush.h> 18#include <asm/cacheflush.h>
18#include <mach/hardware.h> 19#include <mach/hardware.h>
19#include <asm/io.h>
20#include <asm/mach-types.h> 20#include <asm/mach-types.h>
21 21
22#include <mach/board-eb.h> 22#include <mach/board-eb.h>
diff --git a/arch/arm/mach-realview/realview_eb.c b/arch/arm/mach-realview/realview_eb.c
index 19a9968fc5b9..eb829eb1ebe2 100644
--- a/arch/arm/mach-realview/realview_eb.c
+++ b/arch/arm/mach-realview/realview_eb.c
@@ -23,9 +23,9 @@
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/sysdev.h> 24#include <linux/sysdev.h>
25#include <linux/amba/bus.h> 25#include <linux/amba/bus.h>
26#include <linux/io.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/leds.h> 30#include <asm/leds.h>
31#include <asm/mach-types.h> 31#include <asm/mach-types.h>
diff --git a/arch/arm/mach-realview/realview_pb1176.c b/arch/arm/mach-realview/realview_pb1176.c
index 0986cbd15943..cccdb3eb90fe 100644
--- a/arch/arm/mach-realview/realview_pb1176.c
+++ b/arch/arm/mach-realview/realview_pb1176.c
@@ -23,9 +23,9 @@
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/sysdev.h> 24#include <linux/sysdev.h>
25#include <linux/amba/bus.h> 25#include <linux/amba/bus.h>
26#include <linux/io.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/leds.h> 30#include <asm/leds.h>
31#include <asm/mach-types.h> 31#include <asm/mach-types.h>
diff --git a/arch/arm/mach-realview/realview_pb11mp.c b/arch/arm/mach-realview/realview_pb11mp.c
index f4e7135e3eb5..8b863148ec18 100644
--- a/arch/arm/mach-realview/realview_pb11mp.c
+++ b/arch/arm/mach-realview/realview_pb11mp.c
@@ -23,9 +23,9 @@
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/sysdev.h> 24#include <linux/sysdev.h>
25#include <linux/amba/bus.h> 25#include <linux/amba/bus.h>
26#include <linux/io.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/leds.h> 30#include <asm/leds.h>
31#include <asm/mach-types.h> 31#include <asm/mach-types.h>
diff --git a/arch/arm/mach-rpc/dma.c b/arch/arm/mach-rpc/dma.c
index 4b19fe484190..7958a30f8932 100644
--- a/arch/arm/mach-rpc/dma.c
+++ b/arch/arm/mach-rpc/dma.c
@@ -14,11 +14,11 @@
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16#include <linux/dma-mapping.h> 16#include <linux/dma-mapping.h>
17#include <linux/io.h>
17 18
18#include <asm/page.h> 19#include <asm/page.h>
19#include <asm/dma.h> 20#include <asm/dma.h>
20#include <asm/fiq.h> 21#include <asm/fiq.h>
21#include <asm/io.h>
22#include <asm/irq.h> 22#include <asm/irq.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/uaccess.h> 24#include <asm/uaccess.h>
diff --git a/arch/arm/mach-rpc/include/mach/memory.h b/arch/arm/mach-rpc/include/mach/memory.h
index 05425d558ee7..9bf7e43e2863 100644
--- a/arch/arm/mach-rpc/include/mach/memory.h
+++ b/arch/arm/mach-rpc/include/mach/memory.h
@@ -36,4 +36,12 @@
36#define FLUSH_BASE_PHYS 0x00000000 36#define FLUSH_BASE_PHYS 0x00000000
37#define FLUSH_BASE 0xdf000000 37#define FLUSH_BASE 0xdf000000
38 38
39/*
40 * Sparsemem support. Each section is a maximum of 64MB. The sections
41 * are offset by 128MB and can cover 128MB, so that gives us a maximum
42 * of 29 physmem bits.
43 */
44#define MAX_PHYSMEM_BITS 29
45#define SECTION_SIZE_BITS 26
46
39#endif 47#endif
diff --git a/arch/arm/mach-rpc/include/mach/system.h b/arch/arm/mach-rpc/include/mach/system.h
index 54d6e3f2d319..bd7268ba17e2 100644
--- a/arch/arm/mach-rpc/include/mach/system.h
+++ b/arch/arm/mach-rpc/include/mach/system.h
@@ -7,9 +7,9 @@
7 * it under the terms of the GNU General Public License version 2 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10#include <linux/io.h>
10#include <mach/hardware.h> 11#include <mach/hardware.h>
11#include <asm/hardware/iomd.h> 12#include <asm/hardware/iomd.h>
12#include <asm/io.h>
13 13
14static inline void arch_idle(void) 14static inline void arch_idle(void)
15{ 15{
diff --git a/arch/arm/mach-rpc/include/mach/uncompress.h b/arch/arm/mach-rpc/include/mach/uncompress.h
index baa9c866d7bf..d5862368c4f2 100644
--- a/arch/arm/mach-rpc/include/mach/uncompress.h
+++ b/arch/arm/mach-rpc/include/mach/uncompress.h
@@ -9,8 +9,8 @@
9 */ 9 */
10#define VIDMEM ((char *)SCREEN_START) 10#define VIDMEM ((char *)SCREEN_START)
11 11
12#include <linux/io.h>
12#include <mach/hardware.h> 13#include <mach/hardware.h>
13#include <asm/io.h>
14#include <asm/setup.h> 14#include <asm/setup.h>
15#include <asm/page.h> 15#include <asm/page.h>
16 16
diff --git a/arch/arm/mach-rpc/irq.c b/arch/arm/mach-rpc/irq.c
index 7a029621db43..9dd15d679c5d 100644
--- a/arch/arm/mach-rpc/irq.c
+++ b/arch/arm/mach-rpc/irq.c
@@ -1,10 +1,10 @@
1#include <linux/init.h> 1#include <linux/init.h>
2#include <linux/list.h> 2#include <linux/list.h>
3#include <linux/io.h>
3 4
4#include <asm/mach/irq.h> 5#include <asm/mach/irq.h>
5#include <asm/hardware/iomd.h> 6#include <asm/hardware/iomd.h>
6#include <asm/irq.h> 7#include <asm/irq.h>
7#include <asm/io.h>
8 8
9static void iomd_ack_irq_a(unsigned int irq) 9static void iomd_ack_irq_a(unsigned int irq)
10{ 10{
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c
index ce8470fea887..e88d417736af 100644
--- a/arch/arm/mach-rpc/riscpc.c
+++ b/arch/arm/mach-rpc/riscpc.c
@@ -18,9 +18,9 @@
18#include <linux/device.h> 18#include <linux/device.h>
19#include <linux/serial_8250.h> 19#include <linux/serial_8250.h>
20#include <linux/ata_platform.h> 20#include <linux/ata_platform.h>
21#include <linux/io.h>
21 22
22#include <asm/elf.h> 23#include <asm/elf.h>
23#include <asm/io.h>
24#include <asm/mach-types.h> 24#include <asm/mach-types.h>
25#include <mach/hardware.h> 25#include <mach/hardware.h>
26#include <asm/page.h> 26#include <asm/page.h>
diff --git a/arch/arm/mach-s3c2400/gpio.c b/arch/arm/mach-s3c2400/gpio.c
index 148d0ddef3e8..7a7ed4174c8c 100644
--- a/arch/arm/mach-s3c2400/gpio.c
+++ b/arch/arm/mach-s3c2400/gpio.c
@@ -24,10 +24,10 @@
24#include <linux/module.h> 24#include <linux/module.h>
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/ioport.h> 26#include <linux/ioport.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/io.h>
31 31
32#include <mach/regs-gpio.h> 32#include <mach/regs-gpio.h>
33 33
diff --git a/arch/arm/mach-s3c2410/bast-irq.c b/arch/arm/mach-s3c2410/bast-irq.c
index c66021b5fa4d..75738000272b 100644
--- a/arch/arm/mach-s3c2410/bast-irq.c
+++ b/arch/arm/mach-s3c2410/bast-irq.c
@@ -25,12 +25,12 @@
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/ioport.h> 26#include <linux/ioport.h>
27#include <linux/sysdev.h> 27#include <linux/sysdev.h>
28#include <linux/io.h>
28 29
29#include <asm/mach-types.h> 30#include <asm/mach-types.h>
30 31
31#include <mach/hardware.h> 32#include <mach/hardware.h>
32#include <asm/irq.h> 33#include <asm/irq.h>
33#include <asm/io.h>
34 34
35#include <asm/mach/irq.h> 35#include <asm/mach/irq.h>
36 36
@@ -130,8 +130,7 @@ bast_irq_pc104_demux(unsigned int irq,
130 for (i = 0; stat != 0; i++, stat >>= 1) { 130 for (i = 0; stat != 0; i++, stat >>= 1) {
131 if (stat & 1) { 131 if (stat & 1) {
132 irqno = bast_pc104_irqs[i]; 132 irqno = bast_pc104_irqs[i];
133 desc = irq_desc + irqno; 133 generic_handle_irq(irqno);
134 desc_handle_irq(irqno, desc);
135 } 134 }
136 } 135 }
137 } 136 }
diff --git a/arch/arm/mach-s3c2410/clock.c b/arch/arm/mach-s3c2410/clock.c
index 1322851d1acb..fef646c36b54 100644
--- a/arch/arm/mach-s3c2410/clock.c
+++ b/arch/arm/mach-s3c2410/clock.c
@@ -31,11 +31,11 @@
31#include <linux/mutex.h> 31#include <linux/mutex.h>
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <linux/serial_core.h> 33#include <linux/serial_core.h>
34#include <linux/io.h>
34 35
35#include <asm/mach/map.h> 36#include <asm/mach/map.h>
36 37
37#include <mach/hardware.h> 38#include <mach/hardware.h>
38#include <asm/io.h>
39 39
40#include <asm/plat-s3c/regs-serial.h> 40#include <asm/plat-s3c/regs-serial.h>
41#include <mach/regs-clock.h> 41#include <mach/regs-clock.h>
diff --git a/arch/arm/mach-s3c2410/gpio.c b/arch/arm/mach-s3c2410/gpio.c
index c6eefb1d590c..36a3132f39e7 100644
--- a/arch/arm/mach-s3c2410/gpio.c
+++ b/arch/arm/mach-s3c2410/gpio.c
@@ -25,10 +25,10 @@
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/interrupt.h> 26#include <linux/interrupt.h>
27#include <linux/ioport.h> 27#include <linux/ioport.h>
28#include <linux/io.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/irq.h> 31#include <asm/irq.h>
31#include <asm/io.h>
32 32
33#include <mach/regs-gpio.h> 33#include <mach/regs-gpio.h>
34 34
diff --git a/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h b/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h
index 7dd458363a51..6026d091a2fe 100644
--- a/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h
+++ b/arch/arm/mach-s3c2410/include/mach/regs-s3c2443-clock.h
@@ -48,11 +48,11 @@
48#define S3C2443_CLKSRC_I2S_EPLLREF3 (3<<14) 48#define S3C2443_CLKSRC_I2S_EPLLREF3 (3<<14)
49#define S3C2443_CLKSRC_I2S_MASK (3<<14) 49#define S3C2443_CLKSRC_I2S_MASK (3<<14)
50 50
51#define S3C2443_CLKSRC_EPLLREF_XTAL (2<<8) 51#define S3C2443_CLKSRC_EPLLREF_XTAL (2<<7)
52#define S3C2443_CLKSRC_EPLLREF_EXTCLK (3<<8) 52#define S3C2443_CLKSRC_EPLLREF_EXTCLK (3<<7)
53#define S3C2443_CLKSRC_EPLLREF_MPLLREF (0<<8) 53#define S3C2443_CLKSRC_EPLLREF_MPLLREF (0<<7)
54#define S3C2443_CLKSRC_EPLLREF_MPLLREF2 (1<<8) 54#define S3C2443_CLKSRC_EPLLREF_MPLLREF2 (1<<7)
55#define S3C2443_CLKSRC_EPLLREF_MASK (3<<8) 55#define S3C2443_CLKSRC_EPLLREF_MASK (3<<7)
56 56
57#define S3C2443_CLKSRC_ESYSCLK_EPLL (1<<6) 57#define S3C2443_CLKSRC_ESYSCLK_EPLL (1<<6)
58#define S3C2443_CLKSRC_MSYSCLK_MPLL (1<<4) 58#define S3C2443_CLKSRC_MSYSCLK_MPLL (1<<4)
diff --git a/arch/arm/mach-s3c2410/include/mach/system-reset.h b/arch/arm/mach-s3c2410/include/mach/system-reset.h
index ec2defebf0d5..43535a0e7186 100644
--- a/arch/arm/mach-s3c2410/include/mach/system-reset.h
+++ b/arch/arm/mach-s3c2410/include/mach/system-reset.h
@@ -11,7 +11,7 @@
11*/ 11*/
12 12
13#include <mach/hardware.h> 13#include <mach/hardware.h>
14#include <asm/io.h> 14#include <linux/io.h>
15 15
16#include <asm/plat-s3c/regs-watchdog.h> 16#include <asm/plat-s3c/regs-watchdog.h>
17#include <mach/regs-clock.h> 17#include <mach/regs-clock.h>
diff --git a/arch/arm/mach-s3c2410/include/mach/system.h b/arch/arm/mach-s3c2410/include/mach/system.h
index e9f676bc0116..a8cbca6701e5 100644
--- a/arch/arm/mach-s3c2410/include/mach/system.h
+++ b/arch/arm/mach-s3c2410/include/mach/system.h
@@ -10,8 +10,8 @@
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11*/ 11*/
12 12
13#include <linux/io.h>
13#include <mach/hardware.h> 14#include <mach/hardware.h>
14#include <asm/io.h>
15 15
16#include <mach/map.h> 16#include <mach/map.h>
17#include <mach/idle.h> 17#include <mach/idle.h>
diff --git a/arch/arm/mach-s3c2410/mach-amlm5900.c b/arch/arm/mach-s3c2410/mach-amlm5900.c
index f0de3c23ce78..527f88a288ec 100644
--- a/arch/arm/mach-s3c2410/mach-amlm5900.c
+++ b/arch/arm/mach-s3c2410/mach-amlm5900.c
@@ -36,6 +36,7 @@
36#include <linux/platform_device.h> 36#include <linux/platform_device.h>
37#include <linux/proc_fs.h> 37#include <linux/proc_fs.h>
38#include <linux/serial_core.h> 38#include <linux/serial_core.h>
39#include <linux/io.h>
39 40
40#include <asm/mach/arch.h> 41#include <asm/mach/arch.h>
41#include <asm/mach/map.h> 42#include <asm/mach/map.h>
@@ -43,7 +44,6 @@
43#include <asm/mach/flash.h> 44#include <asm/mach/flash.h>
44 45
45#include <mach/hardware.h> 46#include <mach/hardware.h>
46#include <asm/io.h>
47#include <asm/irq.h> 47#include <asm/irq.h>
48#include <asm/mach-types.h> 48#include <asm/mach-types.h>
49#include <mach/fb.h> 49#include <mach/fb.h>
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index 24c6334fac89..e4368e6e7e6c 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -22,6 +22,7 @@
22#include <linux/dm9000.h> 22#include <linux/dm9000.h>
23#include <linux/ata_platform.h> 23#include <linux/ata_platform.h>
24#include <linux/i2c.h> 24#include <linux/i2c.h>
25#include <linux/io.h>
25 26
26#include <net/ax88796.h> 27#include <net/ax88796.h>
27 28
@@ -34,7 +35,6 @@
34#include <mach/bast-cpld.h> 35#include <mach/bast-cpld.h>
35 36
36#include <mach/hardware.h> 37#include <mach/hardware.h>
37#include <asm/io.h>
38#include <asm/irq.h> 38#include <asm/irq.h>
39#include <asm/mach-types.h> 39#include <asm/mach-types.h>
40 40
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
index e35933a46d10..85e710f2863b 100644
--- a/arch/arm/mach-s3c2410/mach-h1940.c
+++ b/arch/arm/mach-s3c2410/mach-h1940.c
@@ -20,13 +20,13 @@
20#include <linux/sysdev.h> 20#include <linux/sysdev.h>
21#include <linux/serial_core.h> 21#include <linux/serial_core.h>
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
26#include <asm/mach/irq.h> 27#include <asm/mach/irq.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31#include <asm/mach-types.h> 31#include <asm/mach-types.h>
32 32
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index 80fe2ed0775c..3ece2d04934e 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -25,9 +25,9 @@
25#include <linux/platform_device.h> 25#include <linux/platform_device.h>
26#include <linux/serial_core.h> 26#include <linux/serial_core.h>
27#include <linux/timer.h> 27#include <linux/timer.h>
28#include <linux/io.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/io.h>
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <asm/mach-types.h> 32#include <asm/mach-types.h>
33 33
diff --git a/arch/arm/mach-s3c2410/mach-otom.c b/arch/arm/mach-s3c2410/mach-otom.c
index 606ee15911b6..c4dfe3eabe1d 100644
--- a/arch/arm/mach-s3c2410/mach-otom.c
+++ b/arch/arm/mach-s3c2410/mach-otom.c
@@ -17,6 +17,7 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/serial_core.h> 18#include <linux/serial_core.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/io.h>
20 21
21#include <asm/mach/arch.h> 22#include <asm/mach/arch.h>
22#include <asm/mach/map.h> 23#include <asm/mach/map.h>
@@ -25,7 +26,6 @@
25#include <mach/otom-map.h> 26#include <mach/otom-map.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/mach-types.h> 30#include <asm/mach-types.h>
31 31
diff --git a/arch/arm/mach-s3c2410/mach-qt2410.c b/arch/arm/mach-s3c2410/mach-qt2410.c
index 7d34844debde..97c13192315b 100644
--- a/arch/arm/mach-s3c2410/mach-qt2410.c
+++ b/arch/arm/mach-s3c2410/mach-qt2410.c
@@ -32,7 +32,7 @@
32#include <linux/serial_core.h> 32#include <linux/serial_core.h>
33#include <linux/spi/spi.h> 33#include <linux/spi/spi.h>
34#include <linux/spi/spi_bitbang.h> 34#include <linux/spi/spi_bitbang.h>
35 35#include <linux/io.h>
36#include <linux/mtd/mtd.h> 36#include <linux/mtd/mtd.h>
37#include <linux/mtd/nand.h> 37#include <linux/mtd/nand.h>
38#include <linux/mtd/nand_ecc.h> 38#include <linux/mtd/nand_ecc.h>
@@ -43,7 +43,6 @@
43#include <asm/mach/irq.h> 43#include <asm/mach/irq.h>
44 44
45#include <mach/hardware.h> 45#include <mach/hardware.h>
46#include <asm/io.h>
47#include <asm/irq.h> 46#include <asm/irq.h>
48#include <asm/mach-types.h> 47#include <asm/mach-types.h>
49 48
diff --git a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c
index b88939d72282..d49e58acb03b 100644
--- a/arch/arm/mach-s3c2410/mach-smdk2410.c
+++ b/arch/arm/mach-s3c2410/mach-smdk2410.c
@@ -36,13 +36,13 @@
36#include <linux/init.h> 36#include <linux/init.h>
37#include <linux/serial_core.h> 37#include <linux/serial_core.h>
38#include <linux/platform_device.h> 38#include <linux/platform_device.h>
39#include <linux/io.h>
39 40
40#include <asm/mach/arch.h> 41#include <asm/mach/arch.h>
41#include <asm/mach/map.h> 42#include <asm/mach/map.h>
42#include <asm/mach/irq.h> 43#include <asm/mach/irq.h>
43 44
44#include <mach/hardware.h> 45#include <mach/hardware.h>
45#include <asm/io.h>
46#include <asm/irq.h> 46#include <asm/irq.h>
47#include <asm/mach-types.h> 47#include <asm/mach-types.h>
48 48
diff --git a/arch/arm/mach-s3c2410/mach-tct_hammer.c b/arch/arm/mach-s3c2410/mach-tct_hammer.c
index ec87306a8c24..cc2e79fe4f9f 100644
--- a/arch/arm/mach-s3c2410/mach-tct_hammer.c
+++ b/arch/arm/mach-s3c2410/mach-tct_hammer.c
@@ -33,6 +33,7 @@
33#include <linux/device.h> 33#include <linux/device.h>
34#include <linux/platform_device.h> 34#include <linux/platform_device.h>
35#include <linux/serial_core.h> 35#include <linux/serial_core.h>
36#include <linux/io.h>
36 37
37#include <asm/mach/arch.h> 38#include <asm/mach/arch.h>
38#include <asm/mach/map.h> 39#include <asm/mach/map.h>
@@ -40,7 +41,6 @@
40#include <asm/mach/flash.h> 41#include <asm/mach/flash.h>
41 42
42#include <mach/hardware.h> 43#include <mach/hardware.h>
43#include <asm/io.h>
44#include <asm/irq.h> 44#include <asm/irq.h>
45#include <asm/mach-types.h> 45#include <asm/mach-types.h>
46 46
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c
index fbc0213d5485..ed3acb05c855 100644
--- a/arch/arm/mach-s3c2410/mach-vr1000.c
+++ b/arch/arm/mach-s3c2410/mach-vr1000.c
@@ -25,6 +25,7 @@
25#include <linux/tty.h> 25#include <linux/tty.h>
26#include <linux/serial_8250.h> 26#include <linux/serial_8250.h>
27#include <linux/serial_reg.h> 27#include <linux/serial_reg.h>
28#include <linux/io.h>
28 29
29#include <asm/mach/arch.h> 30#include <asm/mach/arch.h>
30#include <asm/mach/map.h> 31#include <asm/mach/map.h>
@@ -36,7 +37,6 @@
36#include <mach/vr1000-cpld.h> 37#include <mach/vr1000-cpld.h>
37 38
38#include <mach/hardware.h> 39#include <mach/hardware.h>
39#include <asm/io.h>
40#include <asm/irq.h> 40#include <asm/irq.h>
41#include <asm/mach-types.h> 41#include <asm/mach-types.h>
42 42
diff --git a/arch/arm/mach-s3c2410/nor-simtec.c b/arch/arm/mach-s3c2410/nor-simtec.c
index b2ae237042a5..598d130633dc 100644
--- a/arch/arm/mach-s3c2410/nor-simtec.c
+++ b/arch/arm/mach-s3c2410/nor-simtec.c
@@ -30,6 +30,7 @@
30#include <mach/bast-map.h> 30#include <mach/bast-map.h>
31#include <mach/bast-cpld.h> 31#include <mach/bast-cpld.h>
32 32
33#include "nor-simtec.h"
33 34
34static void simtec_nor_vpp(struct map_info *map, int vpp) 35static void simtec_nor_vpp(struct map_info *map, int vpp)
35{ 36{
@@ -50,7 +51,7 @@ static void simtec_nor_vpp(struct map_info *map, int vpp)
50 local_irq_restore(flags); 51 local_irq_restore(flags);
51} 52}
52 53
53struct physmap_flash_data simtec_nor_pdata = { 54static struct physmap_flash_data simtec_nor_pdata = {
54 .width = 2, 55 .width = 2,
55 .set_vpp = simtec_nor_vpp, 56 .set_vpp = simtec_nor_vpp,
56 .nr_parts = 0, 57 .nr_parts = 0,
diff --git a/arch/arm/mach-s3c2410/pm.c b/arch/arm/mach-s3c2410/pm.c
index ba43ff9e8164..733f8a227775 100644
--- a/arch/arm/mach-s3c2410/pm.c
+++ b/arch/arm/mach-s3c2410/pm.c
@@ -25,9 +25,9 @@
25#include <linux/errno.h> 25#include <linux/errno.h>
26#include <linux/time.h> 26#include <linux/time.h>
27#include <linux/sysdev.h> 27#include <linux/sysdev.h>
28#include <linux/io.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/io.h>
31 31
32#include <asm/mach-types.h> 32#include <asm/mach-types.h>
33 33
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c
index 5d977f9c88ac..b1e658c917a0 100644
--- a/arch/arm/mach-s3c2410/s3c2410.c
+++ b/arch/arm/mach-s3c2410/s3c2410.c
@@ -19,13 +19,13 @@
19#include <linux/sysdev.h> 19#include <linux/sysdev.h>
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/io.h>
22 23
23#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
24#include <asm/mach/map.h> 25#include <asm/mach/map.h>
25#include <asm/mach/irq.h> 26#include <asm/mach/irq.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30 30
31#include <mach/regs-clock.h> 31#include <mach/regs-clock.h>
diff --git a/arch/arm/mach-s3c2410/usb-simtec.c b/arch/arm/mach-s3c2410/usb-simtec.c
index 4dacf8a1750d..eb6fc0bfd47e 100644
--- a/arch/arm/mach-s3c2410/usb-simtec.c
+++ b/arch/arm/mach-s3c2410/usb-simtec.c
@@ -21,6 +21,7 @@
21#include <linux/timer.h> 21#include <linux/timer.h>
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/device.h> 23#include <linux/device.h>
24#include <linux/io.h>
24 25
25#include <asm/mach/arch.h> 26#include <asm/mach/arch.h>
26#include <asm/mach/map.h> 27#include <asm/mach/map.h>
@@ -32,7 +33,6 @@
32#include <mach/regs-gpio.h> 33#include <mach/regs-gpio.h>
33 34
34#include <mach/hardware.h> 35#include <mach/hardware.h>
35#include <asm/io.h>
36#include <asm/irq.h> 36#include <asm/irq.h>
37 37
38#include <asm/plat-s3c24xx/devs.h> 38#include <asm/plat-s3c24xx/devs.h>
diff --git a/arch/arm/mach-s3c2412/clock.c b/arch/arm/mach-s3c2412/clock.c
index af4b2ce516f9..5fbaac6054f8 100644
--- a/arch/arm/mach-s3c2412/clock.c
+++ b/arch/arm/mach-s3c2412/clock.c
@@ -31,11 +31,11 @@
31#include <linux/mutex.h> 31#include <linux/mutex.h>
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <linux/serial_core.h> 33#include <linux/serial_core.h>
34#include <linux/io.h>
34 35
35#include <asm/mach/map.h> 36#include <asm/mach/map.h>
36 37
37#include <mach/hardware.h> 38#include <mach/hardware.h>
38#include <asm/io.h>
39 39
40#include <asm/plat-s3c/regs-serial.h> 40#include <asm/plat-s3c/regs-serial.h>
41#include <mach/regs-clock.h> 41#include <mach/regs-clock.h>
diff --git a/arch/arm/mach-s3c2412/dma.c b/arch/arm/mach-s3c2412/dma.c
index 22fc04a3b533..dcfff6b8b958 100644
--- a/arch/arm/mach-s3c2412/dma.c
+++ b/arch/arm/mach-s3c2412/dma.c
@@ -16,10 +16,10 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/sysdev.h> 17#include <linux/sysdev.h>
18#include <linux/serial_core.h> 18#include <linux/serial_core.h>
19#include <linux/io.h>
19 20
20#include <asm/dma.h> 21#include <asm/dma.h>
21#include <mach/dma.h> 22#include <mach/dma.h>
22#include <asm/io.h>
23 23
24#include <asm/plat-s3c24xx/dma.h> 24#include <asm/plat-s3c24xx/dma.h>
25#include <asm/plat-s3c24xx/cpu.h> 25#include <asm/plat-s3c24xx/cpu.h>
diff --git a/arch/arm/mach-s3c2412/irq.c b/arch/arm/mach-s3c2412/irq.c
index ac62b79044f4..41720f2c1fea 100644
--- a/arch/arm/mach-s3c2412/irq.c
+++ b/arch/arm/mach-s3c2412/irq.c
@@ -24,10 +24,10 @@
24#include <linux/interrupt.h> 24#include <linux/interrupt.h>
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/sysdev.h> 26#include <linux/sysdev.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/io.h>
31 31
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
@@ -123,10 +123,10 @@ static void s3c2412_irq_demux_cfsdi(unsigned int irq, struct irq_desc *desc)
123 subsrc &= ~submsk; 123 subsrc &= ~submsk;
124 124
125 if (subsrc & INTBIT(IRQ_S3C2412_SDI)) 125 if (subsrc & INTBIT(IRQ_S3C2412_SDI))
126 desc_handle_irq(IRQ_S3C2412_SDI, irq_desc + IRQ_S3C2412_SDI); 126 generic_handle_irq(IRQ_S3C2412_SDI);
127 127
128 if (subsrc & INTBIT(IRQ_S3C2412_CF)) 128 if (subsrc & INTBIT(IRQ_S3C2412_CF))
129 desc_handle_irq(IRQ_S3C2412_CF, irq_desc + IRQ_S3C2412_CF); 129 generic_handle_irq(IRQ_S3C2412_CF);
130} 130}
131 131
132#define INTMSK_CFSDI (1UL << (IRQ_S3C2412_CFSDI - IRQ_EINT0)) 132#define INTMSK_CFSDI (1UL << (IRQ_S3C2412_CFSDI - IRQ_EINT0))
diff --git a/arch/arm/mach-s3c2412/mach-jive.c b/arch/arm/mach-s3c2412/mach-jive.c
index 4c061d29463c..ad980a1690c2 100644
--- a/arch/arm/mach-s3c2412/mach-jive.c
+++ b/arch/arm/mach-s3c2412/mach-jive.c
@@ -395,7 +395,7 @@ static void jive_lcd_spi_chipselect(struct s3c2410_spigpio_info *spi, int cs)
395} 395}
396 396
397static struct s3c2410_spigpio_info jive_lcd_spi = { 397static struct s3c2410_spigpio_info jive_lcd_spi = {
398 .bus_num = 0, 398 .bus_num = 1,
399 .pin_clk = S3C2410_GPG8, 399 .pin_clk = S3C2410_GPG8,
400 .pin_mosi = S3C2410_GPB8, 400 .pin_mosi = S3C2410_GPB8,
401 .chip_select = jive_lcd_spi_chipselect, 401 .chip_select = jive_lcd_spi_chipselect,
diff --git a/arch/arm/mach-s3c2412/mach-smdk2413.c b/arch/arm/mach-s3c2412/mach-smdk2413.c
index 80affb1ee4cd..8f8d9117b968 100644
--- a/arch/arm/mach-s3c2412/mach-smdk2413.c
+++ b/arch/arm/mach-s3c2412/mach-smdk2413.c
@@ -19,6 +19,7 @@
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/io.h>
22 23
23#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
24#include <asm/mach/map.h> 25#include <asm/mach/map.h>
@@ -27,7 +28,6 @@
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/hardware/iomd.h> 29#include <asm/hardware/iomd.h>
29#include <asm/setup.h> 30#include <asm/setup.h>
30#include <asm/io.h>
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <asm/mach-types.h> 32#include <asm/mach-types.h>
33 33
diff --git a/arch/arm/mach-s3c2412/mach-vstms.c b/arch/arm/mach-s3c2412/mach-vstms.c
index 7a08b3789915..bb9bf63b2e02 100644
--- a/arch/arm/mach-s3c2412/mach-vstms.c
+++ b/arch/arm/mach-s3c2412/mach-vstms.c
@@ -17,7 +17,7 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/serial_core.h> 18#include <linux/serial_core.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20 20#include <linux/io.h>
21#include <linux/mtd/mtd.h> 21#include <linux/mtd/mtd.h>
22#include <linux/mtd/nand.h> 22#include <linux/mtd/nand.h>
23#include <linux/mtd/nand_ecc.h> 23#include <linux/mtd/nand_ecc.h>
@@ -29,7 +29,6 @@
29 29
30#include <mach/hardware.h> 30#include <mach/hardware.h>
31#include <asm/setup.h> 31#include <asm/setup.h>
32#include <asm/io.h>
33#include <asm/irq.h> 32#include <asm/irq.h>
34#include <asm/mach-types.h> 33#include <asm/mach-types.h>
35 34
diff --git a/arch/arm/mach-s3c2412/pm.c b/arch/arm/mach-s3c2412/pm.c
index 737523a4e037..9540ef752f73 100644
--- a/arch/arm/mach-s3c2412/pm.c
+++ b/arch/arm/mach-s3c2412/pm.c
@@ -18,9 +18,9 @@
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/sysdev.h> 19#include <linux/sysdev.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <linux/io.h>
21 22
22#include <mach/hardware.h> 23#include <mach/hardware.h>
23#include <asm/io.h>
24#include <asm/irq.h> 24#include <asm/irq.h>
25 25
26#include <mach/regs-power.h> 26#include <mach/regs-power.h>
diff --git a/arch/arm/mach-s3c2412/s3c2412.c b/arch/arm/mach-s3c2412/s3c2412.c
index d278010b9f60..42440fc55681 100644
--- a/arch/arm/mach-s3c2412/s3c2412.c
+++ b/arch/arm/mach-s3c2412/s3c2412.c
@@ -20,6 +20,7 @@
20#include <linux/sysdev.h> 20#include <linux/sysdev.h>
21#include <linux/serial_core.h> 21#include <linux/serial_core.h>
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
@@ -27,7 +28,6 @@
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/proc-fns.h> 30#include <asm/proc-fns.h>
30#include <asm/io.h>
31#include <asm/irq.h> 31#include <asm/irq.h>
32 32
33#include <mach/reset.h> 33#include <mach/reset.h>
diff --git a/arch/arm/mach-s3c2440/clock.c b/arch/arm/mach-s3c2440/clock.c
index 95567e6daea1..40503a65bacf 100644
--- a/arch/arm/mach-s3c2440/clock.c
+++ b/arch/arm/mach-s3c2440/clock.c
@@ -33,11 +33,11 @@
33#include <linux/ioport.h> 33#include <linux/ioport.h>
34#include <linux/mutex.h> 34#include <linux/mutex.h>
35#include <linux/clk.h> 35#include <linux/clk.h>
36#include <linux/io.h>
36 37
37#include <mach/hardware.h> 38#include <mach/hardware.h>
38#include <asm/atomic.h> 39#include <asm/atomic.h>
39#include <asm/irq.h> 40#include <asm/irq.h>
40#include <asm/io.h>
41 41
42#include <mach/regs-clock.h> 42#include <mach/regs-clock.h>
43 43
diff --git a/arch/arm/mach-s3c2440/dsc.c b/arch/arm/mach-s3c2440/dsc.c
index c0c67438d0a4..4f7d06baf0d3 100644
--- a/arch/arm/mach-s3c2440/dsc.c
+++ b/arch/arm/mach-s3c2440/dsc.c
@@ -15,13 +15,13 @@
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/io.h>
18 19
19#include <asm/mach/arch.h> 20#include <asm/mach/arch.h>
20#include <asm/mach/map.h> 21#include <asm/mach/map.h>
21#include <asm/mach/irq.h> 22#include <asm/mach/irq.h>
22 23
23#include <mach/hardware.h> 24#include <mach/hardware.h>
24#include <asm/io.h>
25#include <asm/irq.h> 25#include <asm/irq.h>
26 26
27#include <mach/regs-gpio.h> 27#include <mach/regs-gpio.h>
diff --git a/arch/arm/mach-s3c2440/irq.c b/arch/arm/mach-s3c2440/irq.c
index 276b823f4e27..33e3ede0a2b3 100644
--- a/arch/arm/mach-s3c2440/irq.c
+++ b/arch/arm/mach-s3c2440/irq.c
@@ -24,10 +24,10 @@
24#include <linux/interrupt.h> 24#include <linux/interrupt.h>
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/sysdev.h> 26#include <linux/sysdev.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/io.h>
31 31
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
@@ -44,7 +44,6 @@ static void s3c_irq_demux_wdtac97(unsigned int irq,
44 struct irq_desc *desc) 44 struct irq_desc *desc)
45{ 45{
46 unsigned int subsrc, submsk; 46 unsigned int subsrc, submsk;
47 struct irq_desc *mydesc;
48 47
49 /* read the current pending interrupts, and the mask 48 /* read the current pending interrupts, and the mask
50 * for what it is available */ 49 * for what it is available */
@@ -58,12 +57,10 @@ static void s3c_irq_demux_wdtac97(unsigned int irq,
58 57
59 if (subsrc != 0) { 58 if (subsrc != 0) {
60 if (subsrc & 1) { 59 if (subsrc & 1) {
61 mydesc = irq_desc + IRQ_S3C2440_WDT; 60 generic_handle_irq(IRQ_S3C2440_WDT);
62 desc_handle_irq(IRQ_S3C2440_WDT, mydesc);
63 } 61 }
64 if (subsrc & 2) { 62 if (subsrc & 2) {
65 mydesc = irq_desc + IRQ_S3C2440_AC97; 63 generic_handle_irq(IRQ_S3C2440_AC97);
66 desc_handle_irq(IRQ_S3C2440_AC97, mydesc);
67 } 64 }
68 } 65 }
69} 66}
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c
index 441f4bc09472..19eb0e5269ac 100644
--- a/arch/arm/mach-s3c2440/mach-anubis.c
+++ b/arch/arm/mach-s3c2440/mach-anubis.c
@@ -19,7 +19,7 @@
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/ata_platform.h> 20#include <linux/ata_platform.h>
21#include <linux/i2c.h> 21#include <linux/i2c.h>
22 22#include <linux/io.h>
23#include <linux/sm501.h> 23#include <linux/sm501.h>
24#include <linux/sm501-regs.h> 24#include <linux/sm501-regs.h>
25 25
@@ -32,7 +32,6 @@
32#include <mach/anubis-cpld.h> 32#include <mach/anubis-cpld.h>
33 33
34#include <mach/hardware.h> 34#include <mach/hardware.h>
35#include <asm/io.h>
36#include <asm/irq.h> 35#include <asm/irq.h>
37#include <asm/mach-types.h> 36#include <asm/mach-types.h>
38 37
diff --git a/arch/arm/mach-s3c2440/mach-nexcoder.c b/arch/arm/mach-s3c2440/mach-nexcoder.c
index 1a5e7027b41b..49e828d1d4d8 100644
--- a/arch/arm/mach-s3c2440/mach-nexcoder.c
+++ b/arch/arm/mach-s3c2440/mach-nexcoder.c
@@ -21,6 +21,7 @@
21#include <linux/string.h> 21#include <linux/string.h>
22#include <linux/serial_core.h> 22#include <linux/serial_core.h>
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/io.h>
24 25
25#include <linux/mtd/map.h> 26#include <linux/mtd/map.h>
26 27
@@ -30,7 +31,6 @@
30 31
31#include <asm/setup.h> 32#include <asm/setup.h>
32#include <mach/hardware.h> 33#include <mach/hardware.h>
33#include <asm/io.h>
34#include <asm/irq.h> 34#include <asm/irq.h>
35#include <asm/mach-types.h> 35#include <asm/mach-types.h>
36 36
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c
index 8b83f93b6102..85144aa52c27 100644
--- a/arch/arm/mach-s3c2440/mach-osiris.c
+++ b/arch/arm/mach-s3c2440/mach-osiris.c
@@ -20,6 +20,7 @@
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <linux/clk.h> 21#include <linux/clk.h>
22#include <linux/i2c.h> 22#include <linux/i2c.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
@@ -29,7 +30,6 @@
29#include <mach/osiris-cpld.h> 30#include <mach/osiris-cpld.h>
30 31
31#include <mach/hardware.h> 32#include <mach/hardware.h>
32#include <asm/io.h>
33#include <asm/irq.h> 33#include <asm/irq.h>
34#include <asm/mach-types.h> 34#include <asm/mach-types.h>
35 35
diff --git a/arch/arm/mach-s3c2440/mach-rx3715.c b/arch/arm/mach-s3c2440/mach-rx3715.c
index e0b07e6a0a18..a4c690456d19 100644
--- a/arch/arm/mach-s3c2440/mach-rx3715.c
+++ b/arch/arm/mach-s3c2440/mach-rx3715.c
@@ -23,7 +23,7 @@
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/serial_core.h> 24#include <linux/serial_core.h>
25#include <linux/serial.h> 25#include <linux/serial.h>
26 26#include <linux/io.h>
27#include <linux/mtd/mtd.h> 27#include <linux/mtd/mtd.h>
28#include <linux/mtd/nand.h> 28#include <linux/mtd/nand.h>
29#include <linux/mtd/nand_ecc.h> 29#include <linux/mtd/nand_ecc.h>
@@ -34,7 +34,6 @@
34#include <asm/mach/irq.h> 34#include <asm/mach/irq.h>
35 35
36#include <mach/hardware.h> 36#include <mach/hardware.h>
37#include <asm/io.h>
38#include <asm/irq.h> 37#include <asm/irq.h>
39#include <asm/mach-types.h> 38#include <asm/mach-types.h>
40 39
diff --git a/arch/arm/mach-s3c2440/mach-smdk2440.c b/arch/arm/mach-s3c2440/mach-smdk2440.c
index 327c8f371984..7ac60b869e7f 100644
--- a/arch/arm/mach-s3c2440/mach-smdk2440.c
+++ b/arch/arm/mach-s3c2440/mach-smdk2440.c
@@ -21,13 +21,13 @@
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/serial_core.h> 22#include <linux/serial_core.h>
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/io.h>
24 25
25#include <asm/mach/arch.h> 26#include <asm/mach/arch.h>
26#include <asm/mach/map.h> 27#include <asm/mach/map.h>
27#include <asm/mach/irq.h> 28#include <asm/mach/irq.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/io.h>
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <asm/mach-types.h> 32#include <asm/mach-types.h>
33 33
diff --git a/arch/arm/mach-s3c2440/s3c2440.c b/arch/arm/mach-s3c2440/s3c2440.c
index d6b9a92d284e..c81cdb330712 100644
--- a/arch/arm/mach-s3c2440/s3c2440.c
+++ b/arch/arm/mach-s3c2440/s3c2440.c
@@ -20,13 +20,13 @@
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <linux/sysdev.h> 21#include <linux/sysdev.h>
22#include <linux/clk.h> 22#include <linux/clk.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
26#include <asm/mach/irq.h> 27#include <asm/mach/irq.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31 31
32#include <asm/plat-s3c24xx/s3c2440.h> 32#include <asm/plat-s3c24xx/s3c2440.h>
diff --git a/arch/arm/mach-s3c2442/clock.c b/arch/arm/mach-s3c2442/clock.c
index 569b5c3d334a..18f2ce4d7b23 100644
--- a/arch/arm/mach-s3c2442/clock.c
+++ b/arch/arm/mach-s3c2442/clock.c
@@ -33,11 +33,11 @@
33#include <linux/ioport.h> 33#include <linux/ioport.h>
34#include <linux/mutex.h> 34#include <linux/mutex.h>
35#include <linux/clk.h> 35#include <linux/clk.h>
36#include <linux/io.h>
36 37
37#include <mach/hardware.h> 38#include <mach/hardware.h>
38#include <asm/atomic.h> 39#include <asm/atomic.h>
39#include <asm/irq.h> 40#include <asm/irq.h>
40#include <asm/io.h>
41 41
42#include <mach/regs-clock.h> 42#include <mach/regs-clock.h>
43 43
diff --git a/arch/arm/mach-s3c2443/clock.c b/arch/arm/mach-s3c2443/clock.c
index 6a8d7cced4a2..603b5ea1deab 100644
--- a/arch/arm/mach-s3c2443/clock.c
+++ b/arch/arm/mach-s3c2443/clock.c
@@ -31,11 +31,11 @@
31#include <linux/mutex.h> 31#include <linux/mutex.h>
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <linux/serial_core.h> 33#include <linux/serial_core.h>
34#include <linux/io.h>
34 35
35#include <asm/mach/map.h> 36#include <asm/mach/map.h>
36 37
37#include <mach/hardware.h> 38#include <mach/hardware.h>
38#include <asm/io.h>
39 39
40#include <mach/regs-s3c2443-clock.h> 40#include <mach/regs-s3c2443-clock.h>
41 41
diff --git a/arch/arm/mach-s3c2443/dma.c b/arch/arm/mach-s3c2443/dma.c
index c1ff03aebfda..5d9ee772659b 100644
--- a/arch/arm/mach-s3c2443/dma.c
+++ b/arch/arm/mach-s3c2443/dma.c
@@ -16,10 +16,10 @@
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/sysdev.h> 17#include <linux/sysdev.h>
18#include <linux/serial_core.h> 18#include <linux/serial_core.h>
19#include <linux/io.h>
19 20
20#include <asm/dma.h> 21#include <asm/dma.h>
21#include <mach/dma.h> 22#include <mach/dma.h>
22#include <asm/io.h>
23 23
24#include <asm/plat-s3c24xx/dma.h> 24#include <asm/plat-s3c24xx/dma.h>
25#include <asm/plat-s3c24xx/cpu.h> 25#include <asm/plat-s3c24xx/cpu.h>
diff --git a/arch/arm/mach-s3c2443/irq.c b/arch/arm/mach-s3c2443/irq.c
index 9674de7223fd..e44341d7dfef 100644
--- a/arch/arm/mach-s3c2443/irq.c
+++ b/arch/arm/mach-s3c2443/irq.c
@@ -24,10 +24,10 @@
24#include <linux/interrupt.h> 24#include <linux/interrupt.h>
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/sysdev.h> 26#include <linux/sysdev.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/io.h>
31 31
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
@@ -44,7 +44,6 @@ static inline void s3c2443_irq_demux(unsigned int irq, unsigned int len)
44{ 44{
45 unsigned int subsrc, submsk; 45 unsigned int subsrc, submsk;
46 unsigned int end; 46 unsigned int end;
47 struct irq_desc *mydesc;
48 47
49 /* read the current pending interrupts, and the mask 48 /* read the current pending interrupts, and the mask
50 * for what it is available */ 49 * for what it is available */
@@ -57,13 +56,11 @@ static inline void s3c2443_irq_demux(unsigned int irq, unsigned int len)
57 subsrc &= (1 << len)-1; 56 subsrc &= (1 << len)-1;
58 57
59 end = len + irq; 58 end = len + irq;
60 mydesc = irq_desc + irq;
61 59
62 for (; irq < end && subsrc; irq++) { 60 for (; irq < end && subsrc; irq++) {
63 if (subsrc & 1) 61 if (subsrc & 1)
64 desc_handle_irq(irq, mydesc); 62 generic_handle_irq(irq);
65 63
66 mydesc++;
67 subsrc >>= 1; 64 subsrc >>= 1;
68 } 65 }
69} 66}
diff --git a/arch/arm/mach-s3c2443/mach-smdk2443.c b/arch/arm/mach-s3c2443/mach-smdk2443.c
index e3c0d587bd10..f0d119dc0409 100644
--- a/arch/arm/mach-s3c2443/mach-smdk2443.c
+++ b/arch/arm/mach-s3c2443/mach-smdk2443.c
@@ -21,13 +21,13 @@
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/serial_core.h> 22#include <linux/serial_core.h>
23#include <linux/platform_device.h> 23#include <linux/platform_device.h>
24#include <linux/io.h>
24 25
25#include <asm/mach/arch.h> 26#include <asm/mach/arch.h>
26#include <asm/mach/map.h> 27#include <asm/mach/map.h>
27#include <asm/mach/irq.h> 28#include <asm/mach/irq.h>
28 29
29#include <mach/hardware.h> 30#include <mach/hardware.h>
30#include <asm/io.h>
31#include <asm/irq.h> 31#include <asm/irq.h>
32#include <asm/mach-types.h> 32#include <asm/mach-types.h>
33 33
diff --git a/arch/arm/mach-s3c2443/s3c2443.c b/arch/arm/mach-s3c2443/s3c2443.c
index 37793f924b5e..c973b68cc735 100644
--- a/arch/arm/mach-s3c2443/s3c2443.c
+++ b/arch/arm/mach-s3c2443/s3c2443.c
@@ -20,13 +20,13 @@
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <linux/sysdev.h> 21#include <linux/sysdev.h>
22#include <linux/clk.h> 22#include <linux/clk.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
26#include <asm/mach/irq.h> 27#include <asm/mach/irq.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31 31
32#include <mach/regs-s3c2443-clock.h> 32#include <mach/regs-s3c2443-clock.h>
diff --git a/arch/arm/mach-sa1100/badge4.c b/arch/arm/mach-sa1100/badge4.c
index 3efefbdd2527..ab5883b39ddf 100644
--- a/arch/arm/mach-sa1100/badge4.c
+++ b/arch/arm/mach-sa1100/badge4.c
@@ -95,19 +95,19 @@ static int __init badge4_sa1111_init(void)
95 * One-hundred-twenty-seven 32 KiW Main Blocks (8128 Ki b) 95 * One-hundred-twenty-seven 32 KiW Main Blocks (8128 Ki b)
96 */ 96 */
97static struct mtd_partition badge4_partitions[] = { 97static struct mtd_partition badge4_partitions[] = {
98 { 98 {
99 .name = "BLOB boot loader", 99 .name = "BLOB boot loader",
100 .offset = 0, 100 .offset = 0,
101 .size = 0x0000A000 101 .size = 0x0000A000
102 }, { 102 }, {
103 .name = "params", 103 .name = "params",
104 .offset = MTDPART_OFS_APPEND, 104 .offset = MTDPART_OFS_APPEND,
105 .size = 0x00006000 105 .size = 0x00006000
106 }, { 106 }, {
107 .name = "root", 107 .name = "root",
108 .offset = MTDPART_OFS_APPEND, 108 .offset = MTDPART_OFS_APPEND,
109 .size = MTDPART_SIZ_FULL 109 .size = MTDPART_SIZ_FULL
110 } 110 }
111}; 111};
112 112
113static struct flash_platform_data badge4_flash_data = { 113static struct flash_platform_data badge4_flash_data = {
@@ -126,7 +126,7 @@ static int five_v_on __initdata = 0;
126 126
127static int __init five_v_on_setup(char *ignore) 127static int __init five_v_on_setup(char *ignore)
128{ 128{
129 five_v_on = 1; 129 five_v_on = 1;
130 return 1; 130 return 1;
131} 131}
132__setup("five_v_on", five_v_on_setup); 132__setup("five_v_on", five_v_on_setup);
@@ -171,15 +171,15 @@ static int __init badge4_init(void)
171 GPCR = BADGE4_GPIO_TESTPT_J7; 171 GPCR = BADGE4_GPIO_TESTPT_J7;
172 GPDR |= BADGE4_GPIO_TESTPT_J7; 172 GPDR |= BADGE4_GPIO_TESTPT_J7;
173 173
174 /* 5V supply rail. */ 174 /* 5V supply rail. */
175 GPCR = BADGE4_GPIO_PCMEN5V; /* initially off */ 175 GPCR = BADGE4_GPIO_PCMEN5V; /* initially off */
176 GPDR |= BADGE4_GPIO_PCMEN5V; 176 GPDR |= BADGE4_GPIO_PCMEN5V;
177 177
178 /* CPLD sdram type inputs; set up by blob */ 178 /* CPLD sdram type inputs; set up by blob */
179 //GPDR |= (BADGE4_GPIO_SDTYP1 | BADGE4_GPIO_SDTYP0); 179 //GPDR |= (BADGE4_GPIO_SDTYP1 | BADGE4_GPIO_SDTYP0);
180 printk(KERN_DEBUG __FILE__ ": SDRAM CPLD typ1=%d typ0=%d\n", 180 printk(KERN_DEBUG __FILE__ ": SDRAM CPLD typ1=%d typ0=%d\n",
181 !!(GPLR & BADGE4_GPIO_SDTYP1), 181 !!(GPLR & BADGE4_GPIO_SDTYP1),
182 !!(GPLR & BADGE4_GPIO_SDTYP0)); 182 !!(GPLR & BADGE4_GPIO_SDTYP0));
183 183
184 /* SA1111 reset pin; set up by blob */ 184 /* SA1111 reset pin; set up by blob */
185 //GPSR = BADGE4_GPIO_SA1111_NRST; 185 //GPSR = BADGE4_GPIO_SA1111_NRST;
@@ -205,8 +205,8 @@ static int __init badge4_init(void)
205 ret = badge4_sa1111_init(); 205 ret = badge4_sa1111_init();
206 if (ret < 0) 206 if (ret < 0)
207 printk(KERN_ERR 207 printk(KERN_ERR
208 "%s: SA-1111 initialization failed (%d)\n", 208 "%s: SA-1111 initialization failed (%d)\n",
209 __func__, ret); 209 __func__, ret);
210 210
211 211
212 /* maybe turn on 5v0 from the start */ 212 /* maybe turn on 5v0 from the start */
@@ -254,7 +254,7 @@ EXPORT_SYMBOL(badge4_set_5V);
254 254
255 255
256static struct map_desc badge4_io_desc[] __initdata = { 256static struct map_desc badge4_io_desc[] __initdata = {
257 { /* SRAM bank 1 */ 257 { /* SRAM bank 1 */
258 .virtual = 0xf1000000, 258 .virtual = 0xf1000000,
259 .pfn = __phys_to_pfn(0x08000000), 259 .pfn = __phys_to_pfn(0x08000000),
260 .length = 0x00100000, 260 .length = 0x00100000,
diff --git a/arch/arm/mach-sa1100/cpu-sa1100.c b/arch/arm/mach-sa1100/cpu-sa1100.c
index da3a898a6d66..f7fa03478efd 100644
--- a/arch/arm/mach-sa1100/cpu-sa1100.c
+++ b/arch/arm/mach-sa1100/cpu-sa1100.c
@@ -88,6 +88,8 @@
88#include <linux/init.h> 88#include <linux/init.h>
89#include <linux/cpufreq.h> 89#include <linux/cpufreq.h>
90 90
91#include <asm/cputype.h>
92
91#include <mach/hardware.h> 93#include <mach/hardware.h>
92 94
93#include "generic.h" 95#include "generic.h"
@@ -240,7 +242,7 @@ static struct cpufreq_driver sa1100_driver = {
240 242
241static int __init sa1100_dram_init(void) 243static int __init sa1100_dram_init(void)
242{ 244{
243 if ((processor_id & CPU_SA1100_MASK) == CPU_SA1100_ID) 245 if (cpu_is_sa1100())
244 return cpufreq_register_driver(&sa1100_driver); 246 return cpufreq_register_driver(&sa1100_driver);
245 else 247 else
246 return -ENODEV; 248 return -ENODEV;
diff --git a/arch/arm/mach-sa1100/cpu-sa1110.c b/arch/arm/mach-sa1100/cpu-sa1110.c
index 029dbfbbafcf..3e4fb214eada 100644
--- a/arch/arm/mach-sa1100/cpu-sa1110.c
+++ b/arch/arm/mach-sa1100/cpu-sa1110.c
@@ -23,10 +23,11 @@
23#include <linux/cpufreq.h> 23#include <linux/cpufreq.h>
24#include <linux/delay.h> 24#include <linux/delay.h>
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/io.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
29#include <asm/cputype.h>
28#include <asm/mach-types.h> 30#include <asm/mach-types.h>
29#include <asm/io.h>
30#include <asm/system.h> 31#include <asm/system.h>
31 32
32#include "generic.h" 33#include "generic.h"
diff --git a/arch/arm/mach-sa1100/generic.c b/arch/arm/mach-sa1100/generic.c
index 1362994c78aa..b9fae2a39851 100644
--- a/arch/arm/mach-sa1100/generic.c
+++ b/arch/arm/mach-sa1100/generic.c
@@ -42,7 +42,7 @@ EXPORT_SYMBOL(reset_status);
42static const unsigned short cclk_frequency_100khz[NR_FREQS] = { 42static const unsigned short cclk_frequency_100khz[NR_FREQS] = {
43 590, /* 59.0 MHz */ 43 590, /* 59.0 MHz */
44 737, /* 73.7 MHz */ 44 737, /* 73.7 MHz */
45 885, /* 88.5 MHz */ 45 885, /* 88.5 MHz */
46 1032, /* 103.2 MHz */ 46 1032, /* 103.2 MHz */
47 1180, /* 118.0 MHz */ 47 1180, /* 118.0 MHz */
48 1327, /* 132.7 MHz */ 48 1327, /* 132.7 MHz */
@@ -52,10 +52,10 @@ static const unsigned short cclk_frequency_100khz[NR_FREQS] = {
52 1917, /* 191.7 MHz */ 52 1917, /* 191.7 MHz */
53 2064, /* 206.4 MHz */ 53 2064, /* 206.4 MHz */
54 2212, /* 221.2 MHz */ 54 2212, /* 221.2 MHz */
55 2359, /* 235.9 MHz */ 55 2359, /* 235.9 MHz */
56 2507, /* 250.7 MHz */ 56 2507, /* 250.7 MHz */
57 2654, /* 265.4 MHz */ 57 2654, /* 265.4 MHz */
58 2802 /* 280.2 MHz */ 58 2802 /* 280.2 MHz */
59}; 59};
60 60
61#if defined(CONFIG_CPU_FREQ_SA1100) || defined(CONFIG_CPU_FREQ_SA1110) 61#if defined(CONFIG_CPU_FREQ_SA1100) || defined(CONFIG_CPU_FREQ_SA1110)
@@ -113,7 +113,7 @@ unsigned int sa11x0_getspeed(unsigned int cpu)
113#else 113#else
114/* 114/*
115 * We still need to provide this so building without cpufreq works. 115 * We still need to provide this so building without cpufreq works.
116 */ 116 */
117unsigned int cpufreq_get(unsigned int cpu) 117unsigned int cpufreq_get(unsigned int cpu)
118{ 118{
119 return cclk_frequency_100khz[PPCR & 0xf] * 100; 119 return cclk_frequency_100khz[PPCR & 0xf] * 100;
@@ -389,7 +389,7 @@ EXPORT_SYMBOL(sa1100fb_lcd_power);
389 */ 389 */
390 390
391static struct map_desc standard_io_desc[] __initdata = { 391static struct map_desc standard_io_desc[] __initdata = {
392 { /* PCM */ 392 { /* PCM */
393 .virtual = 0xf8000000, 393 .virtual = 0xf8000000,
394 .pfn = __phys_to_pfn(0x80000000), 394 .pfn = __phys_to_pfn(0x80000000),
395 .length = 0x00100000, 395 .length = 0x00100000,
diff --git a/arch/arm/mach-sa1100/include/mach/SA-1100.h b/arch/arm/mach-sa1100/include/mach/SA-1100.h
index 62aaf04a3906..4f7ea012e1e5 100644
--- a/arch/arm/mach-sa1100/include/mach/SA-1100.h
+++ b/arch/arm/mach-sa1100/include/mach/SA-1100.h
@@ -2054,19 +2054,3 @@
2054 /* active display mode) */ 2054 /* active display mode) */
2055#define LCCR3_OutEnH (LCCR3_OEP*0) /* Output Enable active High */ 2055#define LCCR3_OutEnH (LCCR3_OEP*0) /* Output Enable active High */
2056#define LCCR3_OutEnL (LCCR3_OEP*1) /* Output Enable active Low */ 2056#define LCCR3_OutEnL (LCCR3_OEP*1) /* Output Enable active Low */
2057
2058#ifndef __ASSEMBLY__
2059extern unsigned int processor_id;
2060#endif
2061
2062#define CPU_REVISION (processor_id & 15)
2063#define CPU_SA1110_A0 (0)
2064#define CPU_SA1110_B0 (4)
2065#define CPU_SA1110_B1 (5)
2066#define CPU_SA1110_B2 (6)
2067#define CPU_SA1110_B4 (8)
2068
2069#define CPU_SA1100_ID (0x4401a110)
2070#define CPU_SA1100_MASK (0xfffffff0)
2071#define CPU_SA1110_ID (0x6901b110)
2072#define CPU_SA1110_MASK (0xfffffff0)
diff --git a/arch/arm/mach-sa1100/include/mach/hardware.h b/arch/arm/mach-sa1100/include/mach/hardware.h
index 5976435f42c2..b70846c096aa 100644
--- a/arch/arm/mach-sa1100/include/mach/hardware.h
+++ b/arch/arm/mach-sa1100/include/mach/hardware.h
@@ -36,8 +36,26 @@
36#define io_v2p( x ) \ 36#define io_v2p( x ) \
37 ( (((x)&0x00ffffff) | (((x)&(0x30000000>>VIO_SHIFT))<<VIO_SHIFT)) + PIO_START ) 37 ( (((x)&0x00ffffff) | (((x)&(0x30000000>>VIO_SHIFT))<<VIO_SHIFT)) + PIO_START )
38 38
39#define CPU_SA1110_A0 (0)
40#define CPU_SA1110_B0 (4)
41#define CPU_SA1110_B1 (5)
42#define CPU_SA1110_B2 (6)
43#define CPU_SA1110_B4 (8)
44
45#define CPU_SA1100_ID (0x4401a110)
46#define CPU_SA1100_MASK (0xfffffff0)
47#define CPU_SA1110_ID (0x6901b110)
48#define CPU_SA1110_MASK (0xfffffff0)
49
39#ifndef __ASSEMBLY__ 50#ifndef __ASSEMBLY__
40 51
52#include <asm/cputype.h>
53
54#define CPU_REVISION (read_cpuid_id() & 15)
55
56#define cpu_is_sa1100() ((read_cpuid_id() & CPU_SA1100_MASK) == CPU_SA1100_ID)
57#define cpu_is_sa1110() ((read_cpuid_id() & CPU_SA1110_MASK) == CPU_SA1110_ID)
58
41# define __REG(x) (*((volatile unsigned long *)io_p2v(x))) 59# define __REG(x) (*((volatile unsigned long *)io_p2v(x)))
42# define __PREG(x) (io_v2p((unsigned long)&(x))) 60# define __PREG(x) (io_v2p((unsigned long)&(x)))
43 61
diff --git a/arch/arm/mach-sa1100/include/mach/memory.h b/arch/arm/mach-sa1100/include/mach/memory.h
index 29f639e2afc6..1c127b68581d 100644
--- a/arch/arm/mach-sa1100/include/mach/memory.h
+++ b/arch/arm/mach-sa1100/include/mach/memory.h
@@ -40,23 +40,21 @@ void sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes);
40#define __bus_to_virt(x) __phys_to_virt(x) 40#define __bus_to_virt(x) __phys_to_virt(x)
41 41
42/* 42/*
43 * Because of the wide memory address space between physical RAM banks on the 43 * Because of the wide memory address space between physical RAM banks on the
44 * SA1100, it's much convenient to use Linux's NUMA support to implement our 44 * SA1100, it's much convenient to use Linux's SparseMEM support to implement
45 * memory map representation. Assuming all memory nodes have equal access 45 * our memory map representation. Assuming all memory nodes have equal access
46 * characteristics, we then have generic discontiguous memory support. 46 * characteristics, we then have generic discontiguous memory support.
47 * 47 *
48 * Of course, all this isn't mandatory for SA1100 implementations with only 48 * The sparsemem banks are matched with the physical memory bank addresses
49 * one used memory bank. For those, simply undefine CONFIG_DISCONTIGMEM. 49 * which are incidentally the same as virtual addresses.
50 *
51 * The nodes are matched with the physical memory bank addresses which are
52 * incidentally the same as virtual addresses.
53 * 50 *
54 * node 0: 0xc0000000 - 0xc7ffffff 51 * node 0: 0xc0000000 - 0xc7ffffff
55 * node 1: 0xc8000000 - 0xcfffffff 52 * node 1: 0xc8000000 - 0xcfffffff
56 * node 2: 0xd0000000 - 0xd7ffffff 53 * node 2: 0xd0000000 - 0xd7ffffff
57 * node 3: 0xd8000000 - 0xdfffffff 54 * node 3: 0xd8000000 - 0xdfffffff
58 */ 55 */
59#define NODE_MEM_SIZE_BITS 27 56#define MAX_PHYSMEM_BITS 32
57#define SECTION_SIZE_BITS 27
60 58
61/* 59/*
62 * Cache flushing area - SA1100 zero bank 60 * Cache flushing area - SA1100 zero bank
diff --git a/arch/arm/mach-sa1100/irq.c b/arch/arm/mach-sa1100/irq.c
index 86369a8f0cea..3093d46a9c6f 100644
--- a/arch/arm/mach-sa1100/irq.c
+++ b/arch/arm/mach-sa1100/irq.c
@@ -122,14 +122,12 @@ sa1100_high_gpio_handler(unsigned int irq, struct irq_desc *desc)
122 GEDR = mask; 122 GEDR = mask;
123 123
124 irq = IRQ_GPIO11; 124 irq = IRQ_GPIO11;
125 desc = irq_desc + irq;
126 mask >>= 11; 125 mask >>= 11;
127 do { 126 do {
128 if (mask & 1) 127 if (mask & 1)
129 desc_handle_irq(irq, desc); 128 generic_handle_irq(irq);
130 mask >>= 1; 129 mask >>= 1;
131 irq++; 130 irq++;
132 desc++;
133 } while (mask); 131 } while (mask);
134 132
135 mask = GEDR & 0xfffff800; 133 mask = GEDR & 0xfffff800;
diff --git a/arch/arm/mach-sa1100/neponset.c b/arch/arm/mach-sa1100/neponset.c
index 4856a6bd2482..6ccd175bc4cf 100644
--- a/arch/arm/mach-sa1100/neponset.c
+++ b/arch/arm/mach-sa1100/neponset.c
@@ -33,8 +33,6 @@ neponset_irq_handler(unsigned int irq, struct irq_desc *desc)
33 unsigned int irr; 33 unsigned int irr;
34 34
35 while (1) { 35 while (1) {
36 struct irq_desc *d;
37
38 /* 36 /*
39 * Acknowledge the parent IRQ. 37 * Acknowledge the parent IRQ.
40 */ 38 */
@@ -67,21 +65,18 @@ neponset_irq_handler(unsigned int irq, struct irq_desc *desc)
67 desc->chip->ack(irq); 65 desc->chip->ack(irq);
68 66
69 if (irr & IRR_ETHERNET) { 67 if (irr & IRR_ETHERNET) {
70 d = irq_desc + IRQ_NEPONSET_SMC9196; 68 generic_handle_irq(IRQ_NEPONSET_SMC9196);
71 desc_handle_irq(IRQ_NEPONSET_SMC9196, d);
72 } 69 }
73 70
74 if (irr & IRR_USAR) { 71 if (irr & IRR_USAR) {
75 d = irq_desc + IRQ_NEPONSET_USAR; 72 generic_handle_irq(IRQ_NEPONSET_USAR);
76 desc_handle_irq(IRQ_NEPONSET_USAR, d);
77 } 73 }
78 74
79 desc->chip->unmask(irq); 75 desc->chip->unmask(irq);
80 } 76 }
81 77
82 if (irr & IRR_SA1111) { 78 if (irr & IRR_SA1111) {
83 d = irq_desc + IRQ_NEPONSET_SA1111; 79 generic_handle_irq(IRQ_NEPONSET_SA1111);
84 desc_handle_irq(IRQ_NEPONSET_SA1111, d);
85 } 80 }
86 } 81 }
87} 82}
diff --git a/arch/arm/mach-sa1100/pleb.c b/arch/arm/mach-sa1100/pleb.c
index 83be1c6c5f80..e45d3a1890bc 100644
--- a/arch/arm/mach-sa1100/pleb.c
+++ b/arch/arm/mach-sa1100/pleb.c
@@ -8,11 +8,10 @@
8#include <linux/ioport.h> 8#include <linux/ioport.h>
9#include <linux/platform_device.h> 9#include <linux/platform_device.h>
10#include <linux/irq.h> 10#include <linux/irq.h>
11 11#include <linux/io.h>
12#include <linux/mtd/partitions.h> 12#include <linux/mtd/partitions.h>
13 13
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15#include <asm/io.h>
16#include <asm/setup.h> 15#include <asm/setup.h>
17#include <asm/mach-types.h> 16#include <asm/mach-types.h>
18 17
@@ -39,8 +38,8 @@
39 38
40static struct resource smc91x_resources[] = { 39static struct resource smc91x_resources[] = {
41 [0] = { 40 [0] = {
42 .start = PLEB_ETH0_P, 41 .start = PLEB_ETH0_P,
43 .end = PLEB_ETH0_P | 0x03ffffff, 42 .end = PLEB_ETH0_P | 0x03ffffff,
44 .flags = IORESOURCE_MEM, 43 .flags = IORESOURCE_MEM,
45 }, 44 },
46#if 0 /* Autoprobe instead, to get rising/falling edge characteristic right */ 45#if 0 /* Autoprobe instead, to get rising/falling edge characteristic right */
@@ -87,15 +86,15 @@ static struct resource pleb_flash_resources[] = {
87static struct mtd_partition pleb_partitions[] = { 86static struct mtd_partition pleb_partitions[] = {
88 { 87 {
89 .name = "blob", 88 .name = "blob",
90 .offset = 0, 89 .offset = 0,
91 .size = 0x00020000, 90 .size = 0x00020000,
92 }, { 91 }, {
93 .name = "kernel", 92 .name = "kernel",
94 .offset = MTDPART_OFS_APPEND, 93 .offset = MTDPART_OFS_APPEND,
95 .size = 0x000e0000, 94 .size = 0x000e0000,
96 }, { 95 }, {
97 .name = "rootfs", 96 .name = "rootfs",
98 .offset = MTDPART_OFS_APPEND, 97 .offset = MTDPART_OFS_APPEND,
99 .size = 0x00300000, 98 .size = 0x00300000,
100 } 99 }
101}; 100};
diff --git a/arch/arm/mach-sa1100/simpad.c b/arch/arm/mach-sa1100/simpad.c
index 8dd635317959..3c74534f7fee 100644
--- a/arch/arm/mach-sa1100/simpad.c
+++ b/arch/arm/mach-sa1100/simpad.c
@@ -12,6 +12,7 @@
12#include <linux/platform_device.h> 12#include <linux/platform_device.h>
13#include <linux/mtd/mtd.h> 13#include <linux/mtd/mtd.h>
14#include <linux/mtd/partitions.h> 14#include <linux/mtd/partitions.h>
15#include <linux/io.h>
15 16
16#include <asm/irq.h> 17#include <asm/irq.h>
17#include <mach/hardware.h> 18#include <mach/hardware.h>
@@ -27,7 +28,6 @@
27 28
28#include <linux/serial_core.h> 29#include <linux/serial_core.h>
29#include <linux/ioport.h> 30#include <linux/ioport.h>
30#include <asm/io.h>
31 31
32#include "generic.h" 32#include "generic.h"
33 33
diff --git a/arch/arm/mach-sa1100/ssp.c b/arch/arm/mach-sa1100/ssp.c
index 641f361c56f4..b20ff93b84a5 100644
--- a/arch/arm/mach-sa1100/ssp.c
+++ b/arch/arm/mach-sa1100/ssp.c
@@ -17,8 +17,8 @@
17#include <linux/interrupt.h> 17#include <linux/interrupt.h>
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/io.h>
20 21
21#include <asm/io.h>
22#include <asm/irq.h> 22#include <asm/irq.h>
23#include <mach/hardware.h> 23#include <mach/hardware.h>
24#include <asm/hardware/ssp.h> 24#include <asm/hardware/ssp.h>
diff --git a/arch/arm/mach-shark/core.c b/arch/arm/mach-shark/core.c
index 09d9f33d4072..a9400d984451 100644
--- a/arch/arm/mach-shark/core.c
+++ b/arch/arm/mach-shark/core.c
@@ -9,10 +9,10 @@
9#include <linux/irq.h> 9#include <linux/irq.h>
10#include <linux/sched.h> 10#include <linux/sched.h>
11#include <linux/serial_8250.h> 11#include <linux/serial_8250.h>
12#include <linux/io.h>
12 13
13#include <asm/setup.h> 14#include <asm/setup.h>
14#include <asm/mach-types.h> 15#include <asm/mach-types.h>
15#include <asm/io.h>
16#include <asm/leds.h> 16#include <asm/leds.h>
17#include <asm/param.h> 17#include <asm/param.h>
18 18
diff --git a/arch/arm/mach-shark/include/mach/system.h b/arch/arm/mach-shark/include/mach/system.h
index 85aceef6f874..e45bd734a03e 100644
--- a/arch/arm/mach-shark/include/mach/system.h
+++ b/arch/arm/mach-shark/include/mach/system.h
@@ -6,7 +6,7 @@
6#ifndef __ASM_ARCH_SYSTEM_H 6#ifndef __ASM_ARCH_SYSTEM_H
7#define __ASM_ARCH_SYSTEM_H 7#define __ASM_ARCH_SYSTEM_H
8 8
9#include <asm/io.h> 9#include <linux/io.h>
10 10
11static void arch_reset(char mode) 11static void arch_reset(char mode)
12{ 12{
diff --git a/arch/arm/mach-shark/irq.c b/arch/arm/mach-shark/irq.c
index 44b0811b400c..c04eb6a1e2be 100644
--- a/arch/arm/mach-shark/irq.c
+++ b/arch/arm/mach-shark/irq.c
@@ -11,9 +11,9 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/fs.h> 12#include <linux/fs.h>
13#include <linux/interrupt.h> 13#include <linux/interrupt.h>
14#include <linux/io.h>
14 15
15#include <asm/irq.h> 16#include <asm/irq.h>
16#include <asm/io.h>
17#include <asm/mach/irq.h> 17#include <asm/mach/irq.h>
18 18
19/* 19/*
diff --git a/arch/arm/mach-shark/leds.c b/arch/arm/mach-shark/leds.c
index b1896471aa3c..8bd8d6bb4d92 100644
--- a/arch/arm/mach-shark/leds.c
+++ b/arch/arm/mach-shark/leds.c
@@ -20,10 +20,10 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/spinlock.h> 21#include <linux/spinlock.h>
22#include <linux/ioport.h> 22#include <linux/ioport.h>
23#include <linux/io.h>
23 24
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/leds.h> 26#include <asm/leds.h>
26#include <asm/io.h>
27#include <asm/system.h> 27#include <asm/system.h>
28 28
29#define LED_STATE_ENABLED 1 29#define LED_STATE_ENABLED 1
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index d75e795c893e..824121d52b8d 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -28,11 +28,11 @@
28#include <linux/amba/clcd.h> 28#include <linux/amba/clcd.h>
29#include <linux/clocksource.h> 29#include <linux/clocksource.h>
30#include <linux/clockchips.h> 30#include <linux/clockchips.h>
31#include <linux/io.h>
31 32
32#include <asm/cnt32_to_63.h> 33#include <asm/cnt32_to_63.h>
33#include <asm/system.h> 34#include <asm/system.h>
34#include <mach/hardware.h> 35#include <mach/hardware.h>
35#include <asm/io.h>
36#include <asm/irq.h> 36#include <asm/irq.h>
37#include <asm/leds.h> 37#include <asm/leds.h>
38#include <asm/hardware/arm_timer.h> 38#include <asm/hardware/arm_timer.h>
@@ -95,8 +95,7 @@ sic_handle_irq(unsigned int irq, struct irq_desc *desc)
95 95
96 irq += IRQ_SIC_START; 96 irq += IRQ_SIC_START;
97 97
98 desc = irq_desc + irq; 98 generic_handle_irq(irq);
99 desc_handle_irq(irq, desc);
100 } while (status); 99 } while (status);
101} 100}
102 101
diff --git a/arch/arm/mach-versatile/include/mach/system.h b/arch/arm/mach-versatile/include/mach/system.h
index 91fa559c7cca..c59e6100c7e3 100644
--- a/arch/arm/mach-versatile/include/mach/system.h
+++ b/arch/arm/mach-versatile/include/mach/system.h
@@ -21,8 +21,8 @@
21#ifndef __ASM_ARCH_SYSTEM_H 21#ifndef __ASM_ARCH_SYSTEM_H
22#define __ASM_ARCH_SYSTEM_H 22#define __ASM_ARCH_SYSTEM_H
23 23
24#include <linux/io.h>
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/io.h>
26#include <mach/platform.h> 26#include <mach/platform.h>
27 27
28static inline void arch_idle(void) 28static inline void arch_idle(void)
diff --git a/arch/arm/mach-versatile/pci.c b/arch/arm/mach-versatile/pci.c
index 36f23f896503..7161ba23b58a 100644
--- a/arch/arm/mach-versatile/pci.c
+++ b/arch/arm/mach-versatile/pci.c
@@ -21,9 +21,9 @@
21#include <linux/interrupt.h> 21#include <linux/interrupt.h>
22#include <linux/spinlock.h> 22#include <linux/spinlock.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <linux/io.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <asm/io.h>
27#include <asm/irq.h> 27#include <asm/irq.h>
28#include <asm/system.h> 28#include <asm/system.h>
29#include <asm/mach/pci.h> 29#include <asm/mach/pci.h>
diff --git a/arch/arm/mach-versatile/versatile_ab.c b/arch/arm/mach-versatile/versatile_ab.c
index 76375c64413a..bb8ec7724f79 100644
--- a/arch/arm/mach-versatile/versatile_ab.c
+++ b/arch/arm/mach-versatile/versatile_ab.c
@@ -23,9 +23,9 @@
23#include <linux/device.h> 23#include <linux/device.h>
24#include <linux/sysdev.h> 24#include <linux/sysdev.h>
25#include <linux/amba/bus.h> 25#include <linux/amba/bus.h>
26#include <linux/io.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/mach-types.h> 30#include <asm/mach-types.h>
31 31
diff --git a/arch/arm/mach-versatile/versatile_pb.c b/arch/arm/mach-versatile/versatile_pb.c
index 1725f019fc85..aa051c0884f8 100644
--- a/arch/arm/mach-versatile/versatile_pb.c
+++ b/arch/arm/mach-versatile/versatile_pb.c
@@ -23,9 +23,9 @@
23#include <linux/device.h> 23#include <linux/device.h>
24#include <linux/sysdev.h> 24#include <linux/sysdev.h>
25#include <linux/amba/bus.h> 25#include <linux/amba/bus.h>
26#include <linux/io.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30#include <asm/mach-types.h> 30#include <asm/mach-types.h>
31 31
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile
index 2e27a8c8372b..480f78a3611a 100644
--- a/arch/arm/mm/Makefile
+++ b/arch/arm/mm/Makefile
@@ -2,7 +2,7 @@
2# Makefile for the linux arm-specific parts of the memory manager. 2# Makefile for the linux arm-specific parts of the memory manager.
3# 3#
4 4
5obj-y := consistent.o extable.o fault.o init.o \ 5obj-y := dma-mapping.o extable.o fault.o init.o \
6 iomap.o 6 iomap.o
7 7
8obj-$(CONFIG_MMU) += fault-armv.o flush.o ioremap.o mmap.o \ 8obj-$(CONFIG_MMU) += fault-armv.o flush.o ioremap.o mmap.o \
diff --git a/arch/arm/mm/abort-ev7.S b/arch/arm/mm/abort-ev7.S
index eb90bce38e14..2e6dc040c654 100644
--- a/arch/arm/mm/abort-ev7.S
+++ b/arch/arm/mm/abort-ev7.S
@@ -30,3 +30,4 @@ ENTRY(v7_early_abort)
30 * New designs should not need to patch up faults. 30 * New designs should not need to patch up faults.
31 */ 31 */
32 mov pc, lr 32 mov pc, lr
33ENDPROC(v7_early_abort)
diff --git a/arch/arm/mm/abort-nommu.S b/arch/arm/mm/abort-nommu.S
index a7cc7f9ee45d..625e580945b5 100644
--- a/arch/arm/mm/abort-nommu.S
+++ b/arch/arm/mm/abort-nommu.S
@@ -17,3 +17,4 @@ ENTRY(nommu_early_abort)
17 mov r0, #0 @ clear r0, r1 (no FSR/FAR) 17 mov r0, #0 @ clear r0, r1 (no FSR/FAR)
18 mov r1, #0 18 mov r1, #0
19 mov pc, lr 19 mov pc, lr
20ENDPROC(nommu_early_abort)
diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
index e162cca5917f..133e65d166b3 100644
--- a/arch/arm/mm/alignment.c
+++ b/arch/arm/mm/alignment.c
@@ -17,8 +17,8 @@
17#include <linux/string.h> 17#include <linux/string.h>
18#include <linux/proc_fs.h> 18#include <linux/proc_fs.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/uaccess.h>
20 21
21#include <asm/uaccess.h>
22#include <asm/unaligned.h> 22#include <asm/unaligned.h>
23 23
24#include "fault.h" 24#include "fault.h"
diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
index 76b800a95191..b480f1d3591f 100644
--- a/arch/arm/mm/cache-l2x0.c
+++ b/arch/arm/mm/cache-l2x0.c
@@ -18,9 +18,9 @@
18 */ 18 */
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/spinlock.h> 20#include <linux/spinlock.h>
21#include <linux/io.h>
21 22
22#include <asm/cacheflush.h> 23#include <asm/cacheflush.h>
23#include <asm/io.h>
24#include <asm/hardware/cache-l2x0.h> 24#include <asm/hardware/cache-l2x0.h>
25 25
26#define CACHE_LINE_SIZE 32 26#define CACHE_LINE_SIZE 32
diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
index 35ffc4d95997..d19c2bec2b1f 100644
--- a/arch/arm/mm/cache-v7.S
+++ b/arch/arm/mm/cache-v7.S
@@ -66,6 +66,7 @@ finished:
66 mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr 66 mcr p15, 2, r10, c0, c0, 0 @ select current cache level in cssr
67 isb 67 isb
68 mov pc, lr 68 mov pc, lr
69ENDPROC(v7_flush_dcache_all)
69 70
70/* 71/*
71 * v7_flush_cache_all() 72 * v7_flush_cache_all()
@@ -85,6 +86,7 @@ ENTRY(v7_flush_kern_cache_all)
85 mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate 86 mcr p15, 0, r0, c7, c5, 0 @ I+BTB cache invalidate
86 ldmfd sp!, {r4-r5, r7, r9-r11, lr} 87 ldmfd sp!, {r4-r5, r7, r9-r11, lr}
87 mov pc, lr 88 mov pc, lr
89ENDPROC(v7_flush_kern_cache_all)
88 90
89/* 91/*
90 * v7_flush_cache_all() 92 * v7_flush_cache_all()
@@ -110,6 +112,8 @@ ENTRY(v7_flush_user_cache_all)
110 */ 112 */
111ENTRY(v7_flush_user_cache_range) 113ENTRY(v7_flush_user_cache_range)
112 mov pc, lr 114 mov pc, lr
115ENDPROC(v7_flush_user_cache_all)
116ENDPROC(v7_flush_user_cache_range)
113 117
114/* 118/*
115 * v7_coherent_kern_range(start,end) 119 * v7_coherent_kern_range(start,end)
@@ -155,6 +159,8 @@ ENTRY(v7_coherent_user_range)
155 dsb 159 dsb
156 isb 160 isb
157 mov pc, lr 161 mov pc, lr
162ENDPROC(v7_coherent_kern_range)
163ENDPROC(v7_coherent_user_range)
158 164
159/* 165/*
160 * v7_flush_kern_dcache_page(kaddr) 166 * v7_flush_kern_dcache_page(kaddr)
@@ -174,6 +180,7 @@ ENTRY(v7_flush_kern_dcache_page)
174 blo 1b 180 blo 1b
175 dsb 181 dsb
176 mov pc, lr 182 mov pc, lr
183ENDPROC(v7_flush_kern_dcache_page)
177 184
178/* 185/*
179 * v7_dma_inv_range(start,end) 186 * v7_dma_inv_range(start,end)
@@ -202,6 +209,7 @@ ENTRY(v7_dma_inv_range)
202 blo 1b 209 blo 1b
203 dsb 210 dsb
204 mov pc, lr 211 mov pc, lr
212ENDPROC(v7_dma_inv_range)
205 213
206/* 214/*
207 * v7_dma_clean_range(start,end) 215 * v7_dma_clean_range(start,end)
@@ -219,6 +227,7 @@ ENTRY(v7_dma_clean_range)
219 blo 1b 227 blo 1b
220 dsb 228 dsb
221 mov pc, lr 229 mov pc, lr
230ENDPROC(v7_dma_clean_range)
222 231
223/* 232/*
224 * v7_dma_flush_range(start,end) 233 * v7_dma_flush_range(start,end)
@@ -236,6 +245,7 @@ ENTRY(v7_dma_flush_range)
236 blo 1b 245 blo 1b
237 dsb 246 dsb
238 mov pc, lr 247 mov pc, lr
248ENDPROC(v7_dma_flush_range)
239 249
240 __INITDATA 250 __INITDATA
241 251
diff --git a/arch/arm/mm/cache-xsc3l2.c b/arch/arm/mm/cache-xsc3l2.c
index 158bd96763d3..10b1bae1a258 100644
--- a/arch/arm/mm/cache-xsc3l2.c
+++ b/arch/arm/mm/cache-xsc3l2.c
@@ -18,10 +18,11 @@
18 */ 18 */
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/spinlock.h> 20#include <linux/spinlock.h>
21#include <linux/io.h>
21 22
22#include <asm/system.h> 23#include <asm/system.h>
24#include <asm/cputype.h>
23#include <asm/cacheflush.h> 25#include <asm/cacheflush.h>
24#include <asm/io.h>
25 26
26#define CR_L2 (1 << 26) 27#define CR_L2 (1 << 26)
27 28
diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c
index ded0e96d069d..8d33e2549344 100644
--- a/arch/arm/mm/copypage-v4mc.c
+++ b/arch/arm/mm/copypage-v4mc.c
@@ -28,7 +28,7 @@
28 * specific hacks for copying pages efficiently. 28 * specific hacks for copying pages efficiently.
29 */ 29 */
30#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \ 30#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
31 L_PTE_CACHEABLE) 31 L_PTE_MT_MINICACHE)
32 32
33static DEFINE_SPINLOCK(minicache_lock); 33static DEFINE_SPINLOCK(minicache_lock);
34 34
diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c
index 3adb79257f43..0e21c0767580 100644
--- a/arch/arm/mm/copypage-v6.c
+++ b/arch/arm/mm/copypage-v6.c
@@ -16,6 +16,7 @@
16#include <asm/shmparam.h> 16#include <asm/shmparam.h>
17#include <asm/tlbflush.h> 17#include <asm/tlbflush.h>
18#include <asm/cacheflush.h> 18#include <asm/cacheflush.h>
19#include <asm/cachetype.h>
19 20
20#include "mm.h" 21#include "mm.h"
21 22
diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c
index 2e455f82a4d5..bad49331bbf9 100644
--- a/arch/arm/mm/copypage-xscale.c
+++ b/arch/arm/mm/copypage-xscale.c
@@ -30,7 +30,7 @@
30#define COPYPAGE_MINICACHE 0xffff8000 30#define COPYPAGE_MINICACHE 0xffff8000
31 31
32#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \ 32#define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
33 L_PTE_CACHEABLE) 33 L_PTE_MT_MINICACHE)
34 34
35static DEFINE_SPINLOCK(minicache_lock); 35static DEFINE_SPINLOCK(minicache_lock);
36 36
diff --git a/arch/arm/mm/consistent.c b/arch/arm/mm/dma-mapping.c
index db7b3e38ef1d..67960017dc8f 100644
--- a/arch/arm/mm/consistent.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * linux/arch/arm/mm/consistent.c 2 * linux/arch/arm/mm/dma-mapping.c
3 * 3 *
4 * Copyright (C) 2000-2004 Russell King 4 * Copyright (C) 2000-2004 Russell King
5 * 5 *
@@ -512,3 +512,105 @@ void dma_cache_maint(const void *start, size_t size, int direction)
512 } 512 }
513} 513}
514EXPORT_SYMBOL(dma_cache_maint); 514EXPORT_SYMBOL(dma_cache_maint);
515
516/**
517 * dma_map_sg - map a set of SG buffers for streaming mode DMA
518 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
519 * @sg: list of buffers
520 * @nents: number of buffers to map
521 * @dir: DMA transfer direction
522 *
523 * Map a set of buffers described by scatterlist in streaming mode for DMA.
524 * This is the scatter-gather version of the dma_map_single interface.
525 * Here the scatter gather list elements are each tagged with the
526 * appropriate dma address and length. They are obtained via
527 * sg_dma_{address,length}.
528 *
529 * Device ownership issues as mentioned for dma_map_single are the same
530 * here.
531 */
532int dma_map_sg(struct device *dev, struct scatterlist *sg, int nents,
533 enum dma_data_direction dir)
534{
535 struct scatterlist *s;
536 int i, j;
537
538 for_each_sg(sg, s, nents, i) {
539 s->dma_address = dma_map_page(dev, sg_page(s), s->offset,
540 s->length, dir);
541 if (dma_mapping_error(dev, s->dma_address))
542 goto bad_mapping;
543 }
544 return nents;
545
546 bad_mapping:
547 for_each_sg(sg, s, i, j)
548 dma_unmap_page(dev, sg_dma_address(s), sg_dma_len(s), dir);
549 return 0;
550}
551EXPORT_SYMBOL(dma_map_sg);
552
553/**
554 * dma_unmap_sg - unmap a set of SG buffers mapped by dma_map_sg
555 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
556 * @sg: list of buffers
557 * @nents: number of buffers to unmap (returned from dma_map_sg)
558 * @dir: DMA transfer direction (same as was passed to dma_map_sg)
559 *
560 * Unmap a set of streaming mode DMA translations. Again, CPU access
561 * rules concerning calls here are the same as for dma_unmap_single().
562 */
563void dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents,
564 enum dma_data_direction dir)
565{
566 struct scatterlist *s;
567 int i;
568
569 for_each_sg(sg, s, nents, i)
570 dma_unmap_page(dev, sg_dma_address(s), sg_dma_len(s), dir);
571}
572EXPORT_SYMBOL(dma_unmap_sg);
573
574/**
575 * dma_sync_sg_for_cpu
576 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
577 * @sg: list of buffers
578 * @nents: number of buffers to map (returned from dma_map_sg)
579 * @dir: DMA transfer direction (same as was passed to dma_map_sg)
580 */
581void dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg,
582 int nents, enum dma_data_direction dir)
583{
584 struct scatterlist *s;
585 int i;
586
587 for_each_sg(sg, s, nents, i) {
588 dmabounce_sync_for_cpu(dev, sg_dma_address(s), 0,
589 sg_dma_len(s), dir);
590 }
591}
592EXPORT_SYMBOL(dma_sync_sg_for_cpu);
593
594/**
595 * dma_sync_sg_for_device
596 * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
597 * @sg: list of buffers
598 * @nents: number of buffers to map (returned from dma_map_sg)
599 * @dir: DMA transfer direction (same as was passed to dma_map_sg)
600 */
601void dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
602 int nents, enum dma_data_direction dir)
603{
604 struct scatterlist *s;
605 int i;
606
607 for_each_sg(sg, s, nents, i) {
608 if (!dmabounce_sync_for_device(dev, sg_dma_address(s), 0,
609 sg_dma_len(s), dir))
610 continue;
611
612 if (!arch_is_coherent())
613 dma_cache_maint(sg_virt(s), s->length, dir);
614 }
615}
616EXPORT_SYMBOL(dma_sync_sg_for_device);
diff --git a/arch/arm/mm/extable.c b/arch/arm/mm/extable.c
index 9592c3ee4cb2..9d285626bc7d 100644
--- a/arch/arm/mm/extable.c
+++ b/arch/arm/mm/extable.c
@@ -2,7 +2,7 @@
2 * linux/arch/arm/mm/extable.c 2 * linux/arch/arm/mm/extable.c
3 */ 3 */
4#include <linux/module.h> 4#include <linux/module.h>
5#include <asm/uaccess.h> 5#include <linux/uaccess.h>
6 6
7int fixup_exception(struct pt_regs *regs) 7int fixup_exception(struct pt_regs *regs)
8{ 8{
diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c
index a8ec97b4752e..81d0b8772de3 100644
--- a/arch/arm/mm/fault-armv.c
+++ b/arch/arm/mm/fault-armv.c
@@ -17,11 +17,13 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/pagemap.h> 18#include <linux/pagemap.h>
19 19
20#include <asm/bugs.h>
20#include <asm/cacheflush.h> 21#include <asm/cacheflush.h>
22#include <asm/cachetype.h>
21#include <asm/pgtable.h> 23#include <asm/pgtable.h>
22#include <asm/tlbflush.h> 24#include <asm/tlbflush.h>
23 25
24static unsigned long shared_pte_mask = L_PTE_CACHEABLE; 26static unsigned long shared_pte_mask = L_PTE_MT_BUFFERABLE;
25 27
26/* 28/*
27 * We take the easy way out of this problem - we make the 29 * We take the easy way out of this problem - we make the
@@ -63,9 +65,10 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address)
63 * If this page isn't present, or is already setup to 65 * If this page isn't present, or is already setup to
64 * fault (ie, is old), we can safely ignore any issues. 66 * fault (ie, is old), we can safely ignore any issues.
65 */ 67 */
66 if (ret && pte_val(entry) & shared_pte_mask) { 68 if (ret && (pte_val(entry) & L_PTE_MT_MASK) != shared_pte_mask) {
67 flush_cache_page(vma, address, pte_pfn(entry)); 69 flush_cache_page(vma, address, pte_pfn(entry));
68 pte_val(entry) &= ~shared_pte_mask; 70 pte_val(entry) &= ~L_PTE_MT_MASK;
71 pte_val(entry) |= shared_pte_mask;
69 set_pte_at(vma->vm_mm, address, pte, entry); 72 set_pte_at(vma->vm_mm, address, pte, entry);
70 flush_tlb_page(vma, address); 73 flush_tlb_page(vma, address);
71 } 74 }
@@ -197,7 +200,7 @@ void __init check_writebuffer_bugs(void)
197 unsigned long *p1, *p2; 200 unsigned long *p1, *p2;
198 pgprot_t prot = __pgprot(L_PTE_PRESENT|L_PTE_YOUNG| 201 pgprot_t prot = __pgprot(L_PTE_PRESENT|L_PTE_YOUNG|
199 L_PTE_DIRTY|L_PTE_WRITE| 202 L_PTE_DIRTY|L_PTE_WRITE|
200 L_PTE_BUFFERABLE); 203 L_PTE_MT_BUFFERABLE);
201 204
202 p1 = vmap(&page, 1, VM_IOREMAP, prot); 205 p1 = vmap(&page, 1, VM_IOREMAP, prot);
203 p2 = vmap(&page, 1, VM_IOREMAP, prot); 206 p2 = vmap(&page, 1, VM_IOREMAP, prot);
@@ -218,7 +221,7 @@ void __init check_writebuffer_bugs(void)
218 221
219 if (v) { 222 if (v) {
220 printk("failed, %s\n", reason); 223 printk("failed, %s\n", reason);
221 shared_pte_mask |= L_PTE_BUFFERABLE; 224 shared_pte_mask = L_PTE_MT_UNCACHED;
222 } else { 225 } else {
223 printk("ok\n"); 226 printk("ok\n");
224 } 227 }
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 28ad7ab1c0cd..2df8d9facf57 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -13,11 +13,11 @@
13#include <linux/mm.h> 13#include <linux/mm.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/kprobes.h> 15#include <linux/kprobes.h>
16#include <linux/uaccess.h>
16 17
17#include <asm/system.h> 18#include <asm/system.h>
18#include <asm/pgtable.h> 19#include <asm/pgtable.h>
19#include <asm/tlbflush.h> 20#include <asm/tlbflush.h>
20#include <asm/uaccess.h>
21 21
22#include "fault.h" 22#include "fault.h"
23 23
@@ -72,9 +72,8 @@ void show_pte(struct mm_struct *mm, unsigned long addr)
72 } 72 }
73 73
74 pmd = pmd_offset(pgd, addr); 74 pmd = pmd_offset(pgd, addr);
75#if PTRS_PER_PMD != 1 75 if (PTRS_PER_PMD != 1)
76 printk(", *pmd=%08lx", pmd_val(*pmd)); 76 printk(", *pmd=%08lx", pmd_val(*pmd));
77#endif
78 77
79 if (pmd_none(*pmd)) 78 if (pmd_none(*pmd))
80 break; 79 break;
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c
index 029ee65fda2b..0fa9bf388f0b 100644
--- a/arch/arm/mm/flush.c
+++ b/arch/arm/mm/flush.c
@@ -12,6 +12,7 @@
12#include <linux/pagemap.h> 12#include <linux/pagemap.h>
13 13
14#include <asm/cacheflush.h> 14#include <asm/cacheflush.h>
15#include <asm/cachetype.h>
15#include <asm/system.h> 16#include <asm/system.h>
16#include <asm/tlbflush.h> 17#include <asm/tlbflush.h>
17 18
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 30a69d67d673..82c4b4217989 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -26,9 +26,42 @@
26 26
27#include "mm.h" 27#include "mm.h"
28 28
29extern void _text, _etext, __data_start, _end, __init_begin, __init_end; 29static unsigned long phys_initrd_start __initdata = 0;
30extern unsigned long phys_initrd_start; 30static unsigned long phys_initrd_size __initdata = 0;
31extern unsigned long phys_initrd_size; 31
32static void __init early_initrd(char **p)
33{
34 unsigned long start, size;
35
36 start = memparse(*p, p);
37 if (**p == ',') {
38 size = memparse((*p) + 1, p);
39
40 phys_initrd_start = start;
41 phys_initrd_size = size;
42 }
43}
44__early_param("initrd=", early_initrd);
45
46static int __init parse_tag_initrd(const struct tag *tag)
47{
48 printk(KERN_WARNING "ATAG_INITRD is deprecated; "
49 "please update your bootloader.\n");
50 phys_initrd_start = __virt_to_phys(tag->u.initrd.start);
51 phys_initrd_size = tag->u.initrd.size;
52 return 0;
53}
54
55__tagtable(ATAG_INITRD, parse_tag_initrd);
56
57static int __init parse_tag_initrd2(const struct tag *tag)
58{
59 phys_initrd_start = tag->u.initrd.start;
60 phys_initrd_size = tag->u.initrd.size;
61 return 0;
62}
63
64__tagtable(ATAG_INITRD2, parse_tag_initrd2);
32 65
33/* 66/*
34 * This is used to pass memory configuration data from paging_init 67 * This is used to pass memory configuration data from paging_init
@@ -36,10 +69,6 @@ extern unsigned long phys_initrd_size;
36 */ 69 */
37static struct meminfo meminfo = { 0, }; 70static struct meminfo meminfo = { 0, };
38 71
39#define for_each_nodebank(iter,mi,no) \
40 for (iter = 0; iter < mi->nr_banks; iter++) \
41 if (mi->bank[iter].node == no)
42
43void show_mem(void) 72void show_mem(void)
44{ 73{
45 int free = 0, total = 0, reserved = 0; 74 int free = 0, total = 0, reserved = 0;
@@ -50,14 +79,15 @@ void show_mem(void)
50 show_free_areas(); 79 show_free_areas();
51 for_each_online_node(node) { 80 for_each_online_node(node) {
52 pg_data_t *n = NODE_DATA(node); 81 pg_data_t *n = NODE_DATA(node);
53 struct page *map = n->node_mem_map - n->node_start_pfn; 82 struct page *map = pgdat_page_nr(n, 0) - n->node_start_pfn;
54 83
55 for_each_nodebank (i,mi,node) { 84 for_each_nodebank (i,mi,node) {
85 struct membank *bank = &mi->bank[i];
56 unsigned int pfn1, pfn2; 86 unsigned int pfn1, pfn2;
57 struct page *page, *end; 87 struct page *page, *end;
58 88
59 pfn1 = __phys_to_pfn(mi->bank[i].start); 89 pfn1 = bank_pfn_start(bank);
60 pfn2 = __phys_to_pfn(mi->bank[i].size + mi->bank[i].start); 90 pfn2 = bank_pfn_end(bank);
61 91
62 page = map + pfn1; 92 page = map + pfn1;
63 end = map + pfn2; 93 end = map + pfn2;
@@ -96,17 +126,17 @@ void show_mem(void)
96static unsigned int __init 126static unsigned int __init
97find_bootmap_pfn(int node, struct meminfo *mi, unsigned int bootmap_pages) 127find_bootmap_pfn(int node, struct meminfo *mi, unsigned int bootmap_pages)
98{ 128{
99 unsigned int start_pfn, bank, bootmap_pfn; 129 unsigned int start_pfn, i, bootmap_pfn;
100 130
101 start_pfn = PAGE_ALIGN(__pa(&_end)) >> PAGE_SHIFT; 131 start_pfn = PAGE_ALIGN(__pa(&_end)) >> PAGE_SHIFT;
102 bootmap_pfn = 0; 132 bootmap_pfn = 0;
103 133
104 for_each_nodebank(bank, mi, node) { 134 for_each_nodebank(i, mi, node) {
135 struct membank *bank = &mi->bank[i];
105 unsigned int start, end; 136 unsigned int start, end;
106 137
107 start = mi->bank[bank].start >> PAGE_SHIFT; 138 start = bank_pfn_start(bank);
108 end = (mi->bank[bank].size + 139 end = bank_pfn_end(bank);
109 mi->bank[bank].start) >> PAGE_SHIFT;
110 140
111 if (end < start_pfn) 141 if (end < start_pfn)
112 continue; 142 continue;
@@ -145,13 +175,10 @@ static int __init check_initrd(struct meminfo *mi)
145 initrd_node = -1; 175 initrd_node = -1;
146 176
147 for (i = 0; i < mi->nr_banks; i++) { 177 for (i = 0; i < mi->nr_banks; i++) {
148 unsigned long bank_end; 178 struct membank *bank = &mi->bank[i];
149 179 if (bank_phys_start(bank) <= phys_initrd_start &&
150 bank_end = mi->bank[i].start + mi->bank[i].size; 180 end <= bank_phys_end(bank))
151 181 initrd_node = bank->node;
152 if (mi->bank[i].start <= phys_initrd_start &&
153 end <= bank_end)
154 initrd_node = mi->bank[i].node;
155 } 182 }
156 } 183 }
157 184
@@ -171,19 +198,17 @@ static inline void map_memory_bank(struct membank *bank)
171#ifdef CONFIG_MMU 198#ifdef CONFIG_MMU
172 struct map_desc map; 199 struct map_desc map;
173 200
174 map.pfn = __phys_to_pfn(bank->start); 201 map.pfn = bank_pfn_start(bank);
175 map.virtual = __phys_to_virt(bank->start); 202 map.virtual = __phys_to_virt(bank_phys_start(bank));
176 map.length = bank->size; 203 map.length = bank_phys_size(bank);
177 map.type = MT_MEMORY; 204 map.type = MT_MEMORY;
178 205
179 create_mapping(&map); 206 create_mapping(&map);
180#endif 207#endif
181} 208}
182 209
183static unsigned long __init 210static unsigned long __init bootmem_init_node(int node, struct meminfo *mi)
184bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
185{ 211{
186 unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES];
187 unsigned long start_pfn, end_pfn, boot_pfn; 212 unsigned long start_pfn, end_pfn, boot_pfn;
188 unsigned int boot_pages; 213 unsigned int boot_pages;
189 pg_data_t *pgdat; 214 pg_data_t *pgdat;
@@ -199,8 +224,8 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
199 struct membank *bank = &mi->bank[i]; 224 struct membank *bank = &mi->bank[i];
200 unsigned long start, end; 225 unsigned long start, end;
201 226
202 start = bank->start >> PAGE_SHIFT; 227 start = bank_pfn_start(bank);
203 end = (bank->start + bank->size) >> PAGE_SHIFT; 228 end = bank_pfn_end(bank);
204 229
205 if (start_pfn > start) 230 if (start_pfn > start)
206 start_pfn = start; 231 start_pfn = start;
@@ -230,8 +255,11 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
230 pgdat = NODE_DATA(node); 255 pgdat = NODE_DATA(node);
231 init_bootmem_node(pgdat, boot_pfn, start_pfn, end_pfn); 256 init_bootmem_node(pgdat, boot_pfn, start_pfn, end_pfn);
232 257
233 for_each_nodebank(i, mi, node) 258 for_each_nodebank(i, mi, node) {
234 free_bootmem_node(pgdat, mi->bank[i].start, mi->bank[i].size); 259 struct membank *bank = &mi->bank[i];
260 free_bootmem_node(pgdat, bank_phys_start(bank), bank_phys_size(bank));
261 memory_present(node, bank_pfn_start(bank), bank_pfn_end(bank));
262 }
235 263
236 /* 264 /*
237 * Reserve the bootmem bitmap for this node. 265 * Reserve the bootmem bitmap for this node.
@@ -239,31 +267,39 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
239 reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT, 267 reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT,
240 boot_pages << PAGE_SHIFT, BOOTMEM_DEFAULT); 268 boot_pages << PAGE_SHIFT, BOOTMEM_DEFAULT);
241 269
242 /* 270 return end_pfn;
243 * Reserve any special node zero regions. 271}
244 */
245 if (node == 0)
246 reserve_node_zero(pgdat);
247 272
273static void __init bootmem_reserve_initrd(int node)
274{
248#ifdef CONFIG_BLK_DEV_INITRD 275#ifdef CONFIG_BLK_DEV_INITRD
249 /* 276 pg_data_t *pgdat = NODE_DATA(node);
250 * If the initrd is in this node, reserve its memory. 277 int res;
251 */ 278
252 if (node == initrd_node) { 279 res = reserve_bootmem_node(pgdat, phys_initrd_start,
253 int res = reserve_bootmem_node(pgdat, phys_initrd_start, 280 phys_initrd_size, BOOTMEM_EXCLUSIVE);
254 phys_initrd_size, BOOTMEM_EXCLUSIVE); 281
255 282 if (res == 0) {
256 if (res == 0) { 283 initrd_start = __phys_to_virt(phys_initrd_start);
257 initrd_start = __phys_to_virt(phys_initrd_start); 284 initrd_end = initrd_start + phys_initrd_size;
258 initrd_end = initrd_start + phys_initrd_size; 285 } else {
259 } else { 286 printk(KERN_ERR
260 printk(KERN_ERR 287 "INITRD: 0x%08lx+0x%08lx overlaps in-use "
261 "INITRD: 0x%08lx+0x%08lx overlaps in-use " 288 "memory region - disabling initrd\n",
262 "memory region - disabling initrd\n", 289 phys_initrd_start, phys_initrd_size);
263 phys_initrd_start, phys_initrd_size);
264 }
265 } 290 }
266#endif 291#endif
292}
293
294static void __init bootmem_free_node(int node, struct meminfo *mi)
295{
296 unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES];
297 unsigned long start_pfn, end_pfn;
298 pg_data_t *pgdat = NODE_DATA(node);
299 int i;
300
301 start_pfn = pgdat->bdata->node_min_pfn;
302 end_pfn = pgdat->bdata->node_low_pfn;
267 303
268 /* 304 /*
269 * initialise the zones within this node. 305 * initialise the zones within this node.
@@ -284,7 +320,7 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
284 */ 320 */
285 zhole_size[0] = zone_size[0]; 321 zhole_size[0] = zone_size[0];
286 for_each_nodebank(i, mi, node) 322 for_each_nodebank(i, mi, node)
287 zhole_size[0] -= mi->bank[i].size >> PAGE_SHIFT; 323 zhole_size[0] -= bank_pfn_size(&mi->bank[i]);
288 324
289 /* 325 /*
290 * Adjust the sizes according to any special requirements for 326 * Adjust the sizes according to any special requirements for
@@ -293,21 +329,12 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
293 arch_adjust_zones(node, zone_size, zhole_size); 329 arch_adjust_zones(node, zone_size, zhole_size);
294 330
295 free_area_init_node(node, zone_size, start_pfn, zhole_size); 331 free_area_init_node(node, zone_size, start_pfn, zhole_size);
296
297 return end_pfn;
298} 332}
299 333
300void __init bootmem_init(struct meminfo *mi) 334void __init bootmem_init(struct meminfo *mi)
301{ 335{
302 unsigned long memend_pfn = 0; 336 unsigned long memend_pfn = 0;
303 int node, initrd_node, i; 337 int node, initrd_node;
304
305 /*
306 * Invalidate the node number for empty or invalid memory banks
307 */
308 for (i = 0; i < mi->nr_banks; i++)
309 if (mi->bank[i].size == 0 || mi->bank[i].node >= MAX_NUMNODES)
310 mi->bank[i].node = -1;
311 338
312 memcpy(&meminfo, mi, sizeof(meminfo)); 339 memcpy(&meminfo, mi, sizeof(meminfo));
313 340
@@ -320,9 +347,19 @@ void __init bootmem_init(struct meminfo *mi)
320 * Run through each node initialising the bootmem allocator. 347 * Run through each node initialising the bootmem allocator.
321 */ 348 */
322 for_each_node(node) { 349 for_each_node(node) {
323 unsigned long end_pfn; 350 unsigned long end_pfn = bootmem_init_node(node, mi);
324 351
325 end_pfn = bootmem_init_node(node, initrd_node, mi); 352 /*
353 * Reserve any special node zero regions.
354 */
355 if (node == 0)
356 reserve_node_zero(NODE_DATA(node));
357
358 /*
359 * If the initrd is in this node, reserve its memory.
360 */
361 if (node == initrd_node)
362 bootmem_reserve_initrd(node);
326 363
327 /* 364 /*
328 * Remember the highest memory PFN. 365 * Remember the highest memory PFN.
@@ -331,6 +368,19 @@ void __init bootmem_init(struct meminfo *mi)
331 memend_pfn = end_pfn; 368 memend_pfn = end_pfn;
332 } 369 }
333 370
371 /*
372 * sparse_init() needs the bootmem allocator up and running.
373 */
374 sparse_init();
375
376 /*
377 * Now free memory in each node - free_area_init_node needs
378 * the sparse mem_map arrays initialized by sparse_init()
379 * for memmap_init_zone(), otherwise all PFNs are invalid.
380 */
381 for_each_node(node)
382 bootmem_free_node(node, mi);
383
334 high_memory = __va(memend_pfn << PAGE_SHIFT); 384 high_memory = __va(memend_pfn << PAGE_SHIFT);
335 385
336 /* 386 /*
@@ -401,7 +451,9 @@ static void __init free_unused_memmap_node(int node, struct meminfo *mi)
401 * information on the command line. 451 * information on the command line.
402 */ 452 */
403 for_each_nodebank(i, mi, node) { 453 for_each_nodebank(i, mi, node) {
404 bank_start = mi->bank[i].start >> PAGE_SHIFT; 454 struct membank *bank = &mi->bank[i];
455
456 bank_start = bank_pfn_start(bank);
405 if (bank_start < prev_bank_end) { 457 if (bank_start < prev_bank_end) {
406 printk(KERN_ERR "MEM: unordered memory banks. " 458 printk(KERN_ERR "MEM: unordered memory banks. "
407 "Not freeing memmap.\n"); 459 "Not freeing memmap.\n");
@@ -415,8 +467,7 @@ static void __init free_unused_memmap_node(int node, struct meminfo *mi)
415 if (prev_bank_end && prev_bank_end != bank_start) 467 if (prev_bank_end && prev_bank_end != bank_start)
416 free_memmap(node, prev_bank_end, bank_start); 468 free_memmap(node, prev_bank_end, bank_start);
417 469
418 prev_bank_end = (mi->bank[i].start + 470 prev_bank_end = bank_pfn_end(bank);
419 mi->bank[i].size) >> PAGE_SHIFT;
420 } 471 }
421} 472}
422 473
@@ -461,8 +512,8 @@ void __init mem_init(void)
461 512
462 num_physpages = 0; 513 num_physpages = 0;
463 for (i = 0; i < meminfo.nr_banks; i++) { 514 for (i = 0; i < meminfo.nr_banks; i++) {
464 num_physpages += meminfo.bank[i].size >> PAGE_SHIFT; 515 num_physpages += bank_pfn_size(&meminfo.bank[i]);
465 printk(" %ldMB", meminfo.bank[i].size >> 20); 516 printk(" %ldMB", bank_phys_size(&meminfo.bank[i]) >> 20);
466 } 517 }
467 518
468 printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT)); 519 printk(" = %luMB total\n", num_physpages >> (20 - PAGE_SHIFT));
diff --git a/arch/arm/mm/iomap.c b/arch/arm/mm/iomap.c
index 7429f8c01015..ffad039cbb73 100644
--- a/arch/arm/mm/iomap.c
+++ b/arch/arm/mm/iomap.c
@@ -7,8 +7,7 @@
7#include <linux/module.h> 7#include <linux/module.h>
8#include <linux/pci.h> 8#include <linux/pci.h>
9#include <linux/ioport.h> 9#include <linux/ioport.h>
10 10#include <linux/io.h>
11#include <asm/io.h>
12 11
13#ifdef __io 12#ifdef __io
14void __iomem *ioport_map(unsigned long port, unsigned int nr) 13void __iomem *ioport_map(unsigned long port, unsigned int nr)
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index b81dbf9ffb77..18373f73f2fc 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -24,9 +24,10 @@
24#include <linux/errno.h> 24#include <linux/errno.h>
25#include <linux/mm.h> 25#include <linux/mm.h>
26#include <linux/vmalloc.h> 26#include <linux/vmalloc.h>
27#include <linux/io.h>
27 28
29#include <asm/cputype.h>
28#include <asm/cacheflush.h> 30#include <asm/cacheflush.h>
29#include <asm/io.h>
30#include <asm/mmu_context.h> 31#include <asm/mmu_context.h>
31#include <asm/pgalloc.h> 32#include <asm/pgalloc.h>
32#include <asm/tlbflush.h> 33#include <asm/tlbflush.h>
@@ -55,8 +56,7 @@ static int remap_area_pte(pmd_t *pmd, unsigned long addr, unsigned long end,
55 if (!pte_none(*pte)) 56 if (!pte_none(*pte))
56 goto bad; 57 goto bad;
57 58
58 set_pte_ext(pte, pfn_pte(phys_addr >> PAGE_SHIFT, prot), 59 set_pte_ext(pte, pfn_pte(phys_addr >> PAGE_SHIFT, prot), 0);
59 type->prot_pte_ext);
60 phys_addr += PAGE_SIZE; 60 phys_addr += PAGE_SIZE;
61 } while (pte++, addr += PAGE_SIZE, addr != end); 61 } while (pte++, addr += PAGE_SIZE, addr != end);
62 return 0; 62 return 0;
@@ -332,15 +332,14 @@ __arm_ioremap(unsigned long phys_addr, size_t size, unsigned int mtype)
332} 332}
333EXPORT_SYMBOL(__arm_ioremap); 333EXPORT_SYMBOL(__arm_ioremap);
334 334
335void __iounmap(volatile void __iomem *addr) 335void __iounmap(volatile void __iomem *io_addr)
336{ 336{
337 void *addr = (void *)(PAGE_MASK & (unsigned long)io_addr);
337#ifndef CONFIG_SMP 338#ifndef CONFIG_SMP
338 struct vm_struct **p, *tmp; 339 struct vm_struct **p, *tmp;
339#endif 340#endif
340 unsigned int section_mapping = 0; 341 unsigned int section_mapping = 0;
341 342
342 addr = (volatile void __iomem *)(PAGE_MASK & (unsigned long)addr);
343
344#ifndef CONFIG_SMP 343#ifndef CONFIG_SMP
345 /* 344 /*
346 * If this is a section based mapping we need to handle it 345 * If this is a section based mapping we need to handle it
@@ -351,7 +350,7 @@ void __iounmap(volatile void __iomem *addr)
351 */ 350 */
352 write_lock(&vmlist_lock); 351 write_lock(&vmlist_lock);
353 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) { 352 for (p = &vmlist ; (tmp = *p) ; p = &tmp->next) {
354 if((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) { 353 if ((tmp->flags & VM_IOREMAP) && (tmp->addr == addr)) {
355 if (tmp->flags & VM_ARM_SECTION_MAPPING) { 354 if (tmp->flags & VM_ARM_SECTION_MAPPING) {
356 *p = tmp->next; 355 *p = tmp->next;
357 unmap_area_sections((unsigned long)tmp->addr, 356 unmap_area_sections((unsigned long)tmp->addr,
@@ -366,6 +365,6 @@ void __iounmap(volatile void __iomem *addr)
366#endif 365#endif
367 366
368 if (!section_mapping) 367 if (!section_mapping)
369 vunmap((void __force *)addr); 368 vunmap(addr);
370} 369}
371EXPORT_SYMBOL(__iounmap); 370EXPORT_SYMBOL(__iounmap);
diff --git a/arch/arm/mm/mm.h b/arch/arm/mm/mm.h
index 7647c597fc59..5d9f53907b4e 100644
--- a/arch/arm/mm/mm.h
+++ b/arch/arm/mm/mm.h
@@ -18,7 +18,6 @@ static inline pmd_t *pmd_off_k(unsigned long virt)
18 18
19struct mem_type { 19struct mem_type {
20 unsigned int prot_pte; 20 unsigned int prot_pte;
21 unsigned int prot_pte_ext;
22 unsigned int prot_l1; 21 unsigned int prot_l1;
23 unsigned int prot_sect; 22 unsigned int prot_sect;
24 unsigned int domain; 23 unsigned int domain;
@@ -35,3 +34,5 @@ struct pglist_data;
35void __init create_mapping(struct map_desc *md); 34void __init create_mapping(struct map_desc *md);
36void __init bootmem_init(struct meminfo *mi); 35void __init bootmem_init(struct meminfo *mi);
37void reserve_node_zero(struct pglist_data *pgdat); 36void reserve_node_zero(struct pglist_data *pgdat);
37
38extern void _text, _stext, _etext, __data_start, _end, __init_begin, __init_end;
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
index 3f6dc40b8353..5358fcc7f61e 100644
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -6,6 +6,8 @@
6#include <linux/mman.h> 6#include <linux/mman.h>
7#include <linux/shm.h> 7#include <linux/shm.h>
8#include <linux/sched.h> 8#include <linux/sched.h>
9#include <linux/io.h>
10#include <asm/cputype.h>
9#include <asm/system.h> 11#include <asm/system.h>
10 12
11#define COLOUR_ALIGN(addr,pgoff) \ 13#define COLOUR_ALIGN(addr,pgoff) \
@@ -37,8 +39,8 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
37 * caches alias. This is indicated by bits 9 and 21 of the 39 * caches alias. This is indicated by bits 9 and 21 of the
38 * cache type register. 40 * cache type register.
39 */ 41 */
40 cache_type = read_cpuid(CPUID_CACHETYPE); 42 cache_type = read_cpuid_cachetype();
41 if (cache_type != read_cpuid(CPUID_ID)) { 43 if (cache_type != read_cpuid_id()) {
42 aliasing = (cache_type | cache_type >> 12) & (1 << 11); 44 aliasing = (cache_type | cache_type >> 12) & (1 << 11);
43 if (aliasing) 45 if (aliasing)
44 do_align = filp || flags & MAP_SHARED; 46 do_align = filp || flags & MAP_SHARED;
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 25d9a11eb617..8ba754064559 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -15,6 +15,7 @@
15#include <linux/mman.h> 15#include <linux/mman.h>
16#include <linux/nodemask.h> 16#include <linux/nodemask.h>
17 17
18#include <asm/cputype.h>
18#include <asm/mach-types.h> 19#include <asm/mach-types.h>
19#include <asm/setup.h> 20#include <asm/setup.h>
20#include <asm/sizes.h> 21#include <asm/sizes.h>
@@ -27,9 +28,6 @@
27 28
28DEFINE_PER_CPU(struct mmu_gather, mmu_gathers); 29DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
29 30
30extern void _stext, _etext, __data_start, _end;
31extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
32
33/* 31/*
34 * empty_zero_page is a special page that is used for 32 * empty_zero_page is a special page that is used for
35 * zero-initialized data and COW. 33 * zero-initialized data and COW.
@@ -68,27 +66,27 @@ static struct cachepolicy cache_policies[] __initdata = {
68 .policy = "uncached", 66 .policy = "uncached",
69 .cr_mask = CR_W|CR_C, 67 .cr_mask = CR_W|CR_C,
70 .pmd = PMD_SECT_UNCACHED, 68 .pmd = PMD_SECT_UNCACHED,
71 .pte = 0, 69 .pte = L_PTE_MT_UNCACHED,
72 }, { 70 }, {
73 .policy = "buffered", 71 .policy = "buffered",
74 .cr_mask = CR_C, 72 .cr_mask = CR_C,
75 .pmd = PMD_SECT_BUFFERED, 73 .pmd = PMD_SECT_BUFFERED,
76 .pte = PTE_BUFFERABLE, 74 .pte = L_PTE_MT_BUFFERABLE,
77 }, { 75 }, {
78 .policy = "writethrough", 76 .policy = "writethrough",
79 .cr_mask = 0, 77 .cr_mask = 0,
80 .pmd = PMD_SECT_WT, 78 .pmd = PMD_SECT_WT,
81 .pte = PTE_CACHEABLE, 79 .pte = L_PTE_MT_WRITETHROUGH,
82 }, { 80 }, {
83 .policy = "writeback", 81 .policy = "writeback",
84 .cr_mask = 0, 82 .cr_mask = 0,
85 .pmd = PMD_SECT_WB, 83 .pmd = PMD_SECT_WB,
86 .pte = PTE_BUFFERABLE|PTE_CACHEABLE, 84 .pte = L_PTE_MT_WRITEBACK,
87 }, { 85 }, {
88 .policy = "writealloc", 86 .policy = "writealloc",
89 .cr_mask = 0, 87 .cr_mask = 0,
90 .pmd = PMD_SECT_WBWA, 88 .pmd = PMD_SECT_WBWA,
91 .pte = PTE_BUFFERABLE|PTE_CACHEABLE, 89 .pte = L_PTE_MT_WRITEALLOC,
92 } 90 }
93}; 91};
94 92
@@ -186,29 +184,28 @@ void adjust_cr(unsigned long mask, unsigned long set)
186 184
187static struct mem_type mem_types[] = { 185static struct mem_type mem_types[] = {
188 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */ 186 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
189 .prot_pte = PROT_PTE_DEVICE, 187 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
188 L_PTE_SHARED,
190 .prot_l1 = PMD_TYPE_TABLE, 189 .prot_l1 = PMD_TYPE_TABLE,
191 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_UNCACHED, 190 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_UNCACHED,
192 .domain = DOMAIN_IO, 191 .domain = DOMAIN_IO,
193 }, 192 },
194 [MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */ 193 [MT_DEVICE_NONSHARED] = { /* ARMv6 non-shared device */
195 .prot_pte = PROT_PTE_DEVICE, 194 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_NONSHARED,
196 .prot_pte_ext = PTE_EXT_TEX(2),
197 .prot_l1 = PMD_TYPE_TABLE, 195 .prot_l1 = PMD_TYPE_TABLE,
198 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_TEX(2), 196 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_TEX(2),
199 .domain = DOMAIN_IO, 197 .domain = DOMAIN_IO,
200 }, 198 },
201 [MT_DEVICE_CACHED] = { /* ioremap_cached */ 199 [MT_DEVICE_CACHED] = { /* ioremap_cached */
202 .prot_pte = PROT_PTE_DEVICE | L_PTE_CACHEABLE | L_PTE_BUFFERABLE, 200 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_CACHED,
203 .prot_l1 = PMD_TYPE_TABLE, 201 .prot_l1 = PMD_TYPE_TABLE,
204 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_WB, 202 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_WB,
205 .domain = DOMAIN_IO, 203 .domain = DOMAIN_IO,
206 }, 204 },
207 [MT_DEVICE_IXP2000] = { /* IXP2400 requires XCB=101 for on-chip I/O */ 205 [MT_DEVICE_WC] = { /* ioremap_wc */
208 .prot_pte = PROT_PTE_DEVICE, 206 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_WC,
209 .prot_l1 = PMD_TYPE_TABLE, 207 .prot_l1 = PMD_TYPE_TABLE,
210 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_BUFFERABLE | 208 .prot_sect = PROT_SECT_DEVICE | PMD_SECT_BUFFERABLE,
211 PMD_SECT_TEX(1),
212 .domain = DOMAIN_IO, 209 .domain = DOMAIN_IO,
213 }, 210 },
214 [MT_CACHECLEAN] = { 211 [MT_CACHECLEAN] = {
@@ -253,7 +250,7 @@ static void __init build_mem_type_table(void)
253{ 250{
254 struct cachepolicy *cp; 251 struct cachepolicy *cp;
255 unsigned int cr = get_cr(); 252 unsigned int cr = get_cr();
256 unsigned int user_pgprot, kern_pgprot; 253 unsigned int user_pgprot, kern_pgprot, vecs_pgprot;
257 int cpu_arch = cpu_architecture(); 254 int cpu_arch = cpu_architecture();
258 int i; 255 int i;
259 256
@@ -271,6 +268,20 @@ static void __init build_mem_type_table(void)
271 cachepolicy = CPOLICY_WRITEBACK; 268 cachepolicy = CPOLICY_WRITEBACK;
272 ecc_mask = 0; 269 ecc_mask = 0;
273 } 270 }
271#ifdef CONFIG_SMP
272 cachepolicy = CPOLICY_WRITEALLOC;
273#endif
274
275 /*
276 * On non-Xscale3 ARMv5-and-older systems, use CB=01
277 * (Uncached/Buffered) for ioremap_wc() mappings. On XScale3
278 * and ARMv6+, use TEXCB=00100 mappings (Inner/Outer Uncacheable
279 * in xsc3 parlance, Uncached Normal in ARMv6 parlance).
280 */
281 if (cpu_is_xsc3() || cpu_arch >= CPU_ARCH_ARMv6) {
282 mem_types[MT_DEVICE_WC].prot_sect |= PMD_SECT_TEX(1);
283 mem_types[MT_DEVICE_WC].prot_sect &= ~PMD_SECT_BUFFERABLE;
284 }
274 285
275 /* 286 /*
276 * ARMv5 and lower, bit 4 must be set for page tables. 287 * ARMv5 and lower, bit 4 must be set for page tables.
@@ -292,7 +303,15 @@ static void __init build_mem_type_table(void)
292 } 303 }
293 304
294 cp = &cache_policies[cachepolicy]; 305 cp = &cache_policies[cachepolicy];
295 kern_pgprot = user_pgprot = cp->pte; 306 vecs_pgprot = kern_pgprot = user_pgprot = cp->pte;
307
308#ifndef CONFIG_SMP
309 /*
310 * Only use write-through for non-SMP systems
311 */
312 if (cpu_arch >= CPU_ARCH_ARMv5 && cachepolicy > CPOLICY_WRITETHROUGH)
313 vecs_pgprot = cache_policies[CPOLICY_WRITETHROUGH].pte;
314#endif
296 315
297 /* 316 /*
298 * Enable CPU-specific coherency if supported. 317 * Enable CPU-specific coherency if supported.
@@ -320,7 +339,6 @@ static void __init build_mem_type_table(void)
320 /* 339 /*
321 * Mark the device area as "shared device" 340 * Mark the device area as "shared device"
322 */ 341 */
323 mem_types[MT_DEVICE].prot_pte |= L_PTE_BUFFERABLE;
324 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED; 342 mem_types[MT_DEVICE].prot_sect |= PMD_SECT_BUFFERED;
325 343
326#ifdef CONFIG_SMP 344#ifdef CONFIG_SMP
@@ -329,30 +347,21 @@ static void __init build_mem_type_table(void)
329 */ 347 */
330 user_pgprot |= L_PTE_SHARED; 348 user_pgprot |= L_PTE_SHARED;
331 kern_pgprot |= L_PTE_SHARED; 349 kern_pgprot |= L_PTE_SHARED;
350 vecs_pgprot |= L_PTE_SHARED;
332 mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S; 351 mem_types[MT_MEMORY].prot_sect |= PMD_SECT_S;
333#endif 352#endif
334 } 353 }
335 354
336 for (i = 0; i < 16; i++) { 355 for (i = 0; i < 16; i++) {
337 unsigned long v = pgprot_val(protection_map[i]); 356 unsigned long v = pgprot_val(protection_map[i]);
338 v = (v & ~(L_PTE_BUFFERABLE|L_PTE_CACHEABLE)) | user_pgprot; 357 protection_map[i] = __pgprot(v | user_pgprot);
339 protection_map[i] = __pgprot(v);
340 } 358 }
341 359
342 mem_types[MT_LOW_VECTORS].prot_pte |= kern_pgprot; 360 mem_types[MT_LOW_VECTORS].prot_pte |= vecs_pgprot;
343 mem_types[MT_HIGH_VECTORS].prot_pte |= kern_pgprot; 361 mem_types[MT_HIGH_VECTORS].prot_pte |= vecs_pgprot;
344 362
345 if (cpu_arch >= CPU_ARCH_ARMv5) { 363 if (cpu_arch < CPU_ARCH_ARMv5)
346#ifndef CONFIG_SMP
347 /*
348 * Only use write-through for non-SMP systems
349 */
350 mem_types[MT_LOW_VECTORS].prot_pte &= ~L_PTE_BUFFERABLE;
351 mem_types[MT_HIGH_VECTORS].prot_pte &= ~L_PTE_BUFFERABLE;
352#endif
353 } else {
354 mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1); 364 mem_types[MT_MINICLEAN].prot_sect &= ~PMD_SECT_TEX(1);
355 }
356 365
357 pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot); 366 pgprot_user = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | user_pgprot);
358 pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | 367 pgprot_kernel = __pgprot(L_PTE_PRESENT | L_PTE_YOUNG |
@@ -400,8 +409,7 @@ static void __init alloc_init_pte(pmd_t *pmd, unsigned long addr,
400 409
401 pte = pte_offset_kernel(pmd, addr); 410 pte = pte_offset_kernel(pmd, addr);
402 do { 411 do {
403 set_pte_ext(pte, pfn_pte(pfn, __pgprot(type->prot_pte)), 412 set_pte_ext(pte, pfn_pte(pfn, __pgprot(type->prot_pte)), 0);
404 type->prot_pte_ext);
405 pfn++; 413 pfn++;
406 } while (pte++, addr += PAGE_SIZE, addr != end); 414 } while (pte++, addr += PAGE_SIZE, addr != end);
407} 415}
@@ -568,12 +576,35 @@ void __init iotable_init(struct map_desc *io_desc, int nr)
568 create_mapping(io_desc + i); 576 create_mapping(io_desc + i);
569} 577}
570 578
579static unsigned long __initdata vmalloc_reserve = SZ_128M;
580
581/*
582 * vmalloc=size forces the vmalloc area to be exactly 'size'
583 * bytes. This can be used to increase (or decrease) the vmalloc
584 * area - the default is 128m.
585 */
586static void __init early_vmalloc(char **arg)
587{
588 vmalloc_reserve = memparse(*arg, arg);
589
590 if (vmalloc_reserve < SZ_16M) {
591 vmalloc_reserve = SZ_16M;
592 printk(KERN_WARNING
593 "vmalloc area too small, limiting to %luMB\n",
594 vmalloc_reserve >> 20);
595 }
596}
597__early_param("vmalloc=", early_vmalloc);
598
599#define VMALLOC_MIN (void *)(VMALLOC_END - vmalloc_reserve)
600
571static int __init check_membank_valid(struct membank *mb) 601static int __init check_membank_valid(struct membank *mb)
572{ 602{
573 /* 603 /*
574 * Check whether this memory region has non-zero size. 604 * Check whether this memory region has non-zero size or
605 * invalid node number.
575 */ 606 */
576 if (mb->size == 0) 607 if (mb->size == 0 || mb->node >= MAX_NUMNODES)
577 return 0; 608 return 0;
578 609
579 /* 610 /*
@@ -607,8 +638,7 @@ static int __init check_membank_valid(struct membank *mb)
607 638
608static void __init sanity_check_meminfo(struct meminfo *mi) 639static void __init sanity_check_meminfo(struct meminfo *mi)
609{ 640{
610 int i; 641 int i, j;
611 int j;
612 642
613 for (i = 0, j = 0; i < mi->nr_banks; i++) { 643 for (i = 0, j = 0; i < mi->nr_banks; i++) {
614 if (check_membank_valid(&mi->bank[i])) 644 if (check_membank_valid(&mi->bank[i]))
diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c
index 63c62fdea521..07b62b238979 100644
--- a/arch/arm/mm/nommu.c
+++ b/arch/arm/mm/nommu.c
@@ -7,16 +7,14 @@
7#include <linux/mm.h> 7#include <linux/mm.h>
8#include <linux/pagemap.h> 8#include <linux/pagemap.h>
9#include <linux/bootmem.h> 9#include <linux/bootmem.h>
10#include <linux/io.h>
10 11
11#include <asm/cacheflush.h> 12#include <asm/cacheflush.h>
12#include <asm/io.h>
13#include <asm/page.h> 13#include <asm/page.h>
14#include <asm/mach/arch.h> 14#include <asm/mach/arch.h>
15 15
16#include "mm.h" 16#include "mm.h"
17 17
18extern void _stext, __data_start, _end;
19
20/* 18/*
21 * Reserve the various regions of node 0 19 * Reserve the various regions of node 0
22 */ 20 */
@@ -43,12 +41,26 @@ void __init reserve_node_zero(pg_data_t *pgdat)
43 BOOTMEM_DEFAULT); 41 BOOTMEM_DEFAULT);
44} 42}
45 43
44static void __init sanity_check_meminfo(struct meminfo *mi)
45{
46 int i, j;
47
48 for (i = 0, j = 0; i < mi->nr_banks; i++) {
49 struct membank *mb = &mi->bank[i];
50
51 if (mb->size != 0 && mb->node < MAX_NUMNODES)
52 mi->bank[j++] = mi->bank[i];
53 }
54 mi->nr_banks = j;
55}
56
46/* 57/*
47 * paging_init() sets up the page tables, initialises the zone memory 58 * paging_init() sets up the page tables, initialises the zone memory
48 * maps, and sets up the zero page, bad page and bad page tables. 59 * maps, and sets up the zero page, bad page and bad page tables.
49 */ 60 */
50void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc) 61void __init paging_init(struct meminfo *mi, struct machine_desc *mdesc)
51{ 62{
63 sanity_check_meminfo(mi);
52 bootmem_init(mi); 64 bootmem_init(mi);
53} 65}
54 66
diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S
index 5673f4d6113b..b5551bf010aa 100644
--- a/arch/arm/mm/proc-arm1020.S
+++ b/arch/arm/mm/proc-arm1020.S
@@ -29,7 +29,7 @@
29#include <linux/init.h> 29#include <linux/init.h>
30#include <asm/assembler.h> 30#include <asm/assembler.h>
31#include <asm/asm-offsets.h> 31#include <asm/asm-offsets.h>
32#include <asm/elf.h> 32#include <asm/hwcap.h>
33#include <asm/pgtable-hwdef.h> 33#include <asm/pgtable-hwdef.h>
34#include <asm/pgtable.h> 34#include <asm/pgtable.h>
35#include <asm/ptrace.h> 35#include <asm/ptrace.h>
@@ -399,29 +399,7 @@ ENTRY(cpu_arm1020_switch_mm)
399 .align 5 399 .align 5
400ENTRY(cpu_arm1020_set_pte_ext) 400ENTRY(cpu_arm1020_set_pte_ext)
401#ifdef CONFIG_MMU 401#ifdef CONFIG_MMU
402 str r1, [r0], #-2048 @ linux version 402 armv3_set_pte_ext
403
404 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
405
406 bic r2, r1, #PTE_SMALL_AP_MASK
407 bic r2, r2, #PTE_TYPE_MASK
408 orr r2, r2, #PTE_TYPE_SMALL
409
410 tst r1, #L_PTE_USER @ User?
411 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
412
413 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
414 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
415
416 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
417 movne r2, #0
418
419#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
420 eor r3, r1, #0x0a @ C & small page?
421 tst r3, #0x0b
422 biceq r2, r2, #4
423#endif
424 str r2, [r0] @ hardware version
425 mov r0, r0 403 mov r0, r0
426#ifndef CONFIG_CPU_DCACHE_DISABLE 404#ifndef CONFIG_CPU_DCACHE_DISABLE
427 mcr p15, 0, r0, c7, c10, 4 405 mcr p15, 0, r0, c7, c10, 4
diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S
index 4343fdb0e9e5..8bc6740c29eb 100644
--- a/arch/arm/mm/proc-arm1020e.S
+++ b/arch/arm/mm/proc-arm1020e.S
@@ -29,7 +29,7 @@
29#include <linux/init.h> 29#include <linux/init.h>
30#include <asm/assembler.h> 30#include <asm/assembler.h>
31#include <asm/asm-offsets.h> 31#include <asm/asm-offsets.h>
32#include <asm/elf.h> 32#include <asm/hwcap.h>
33#include <asm/pgtable-hwdef.h> 33#include <asm/pgtable-hwdef.h>
34#include <asm/pgtable.h> 34#include <asm/pgtable.h>
35#include <asm/ptrace.h> 35#include <asm/ptrace.h>
@@ -383,29 +383,7 @@ ENTRY(cpu_arm1020e_switch_mm)
383 .align 5 383 .align 5
384ENTRY(cpu_arm1020e_set_pte_ext) 384ENTRY(cpu_arm1020e_set_pte_ext)
385#ifdef CONFIG_MMU 385#ifdef CONFIG_MMU
386 str r1, [r0], #-2048 @ linux version 386 armv3_set_pte_ext
387
388 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
389
390 bic r2, r1, #PTE_SMALL_AP_MASK
391 bic r2, r2, #PTE_TYPE_MASK
392 orr r2, r2, #PTE_TYPE_SMALL
393
394 tst r1, #L_PTE_USER @ User?
395 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
396
397 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
398 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
399
400 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
401 movne r2, #0
402
403#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
404 eor r3, r1, #0x0a @ C & small page?
405 tst r3, #0x0b
406 biceq r2, r2, #4
407#endif
408 str r2, [r0] @ hardware version
409 mov r0, r0 387 mov r0, r0
410#ifndef CONFIG_CPU_DCACHE_DISABLE 388#ifndef CONFIG_CPU_DCACHE_DISABLE
411 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 389 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S
index 2a4ea1659e96..2cd03e66c0a3 100644
--- a/arch/arm/mm/proc-arm1022.S
+++ b/arch/arm/mm/proc-arm1022.S
@@ -18,7 +18,7 @@
18#include <linux/init.h> 18#include <linux/init.h>
19#include <asm/assembler.h> 19#include <asm/assembler.h>
20#include <asm/asm-offsets.h> 20#include <asm/asm-offsets.h>
21#include <asm/elf.h> 21#include <asm/hwcap.h>
22#include <asm/pgtable-hwdef.h> 22#include <asm/pgtable-hwdef.h>
23#include <asm/pgtable.h> 23#include <asm/pgtable.h>
24#include <asm/ptrace.h> 24#include <asm/ptrace.h>
@@ -365,29 +365,7 @@ ENTRY(cpu_arm1022_switch_mm)
365 .align 5 365 .align 5
366ENTRY(cpu_arm1022_set_pte_ext) 366ENTRY(cpu_arm1022_set_pte_ext)
367#ifdef CONFIG_MMU 367#ifdef CONFIG_MMU
368 str r1, [r0], #-2048 @ linux version 368 armv3_set_pte_ext
369
370 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
371
372 bic r2, r1, #PTE_SMALL_AP_MASK
373 bic r2, r2, #PTE_TYPE_MASK
374 orr r2, r2, #PTE_TYPE_SMALL
375
376 tst r1, #L_PTE_USER @ User?
377 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
378
379 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
380 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
381
382 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
383 movne r2, #0
384
385#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
386 eor r3, r1, #0x0a @ C & small page?
387 tst r3, #0x0b
388 biceq r2, r2, #4
389#endif
390 str r2, [r0] @ hardware version
391 mov r0, r0 369 mov r0, r0
392#ifndef CONFIG_CPU_DCACHE_DISABLE 370#ifndef CONFIG_CPU_DCACHE_DISABLE
393 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 371 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S
index 77a1babd421c..ad961a897f6e 100644
--- a/arch/arm/mm/proc-arm1026.S
+++ b/arch/arm/mm/proc-arm1026.S
@@ -18,7 +18,7 @@
18#include <linux/init.h> 18#include <linux/init.h>
19#include <asm/assembler.h> 19#include <asm/assembler.h>
20#include <asm/asm-offsets.h> 20#include <asm/asm-offsets.h>
21#include <asm/elf.h> 21#include <asm/hwcap.h>
22#include <asm/pgtable-hwdef.h> 22#include <asm/pgtable-hwdef.h>
23#include <asm/pgtable.h> 23#include <asm/pgtable.h>
24#include <asm/ptrace.h> 24#include <asm/ptrace.h>
@@ -354,29 +354,7 @@ ENTRY(cpu_arm1026_switch_mm)
354 .align 5 354 .align 5
355ENTRY(cpu_arm1026_set_pte_ext) 355ENTRY(cpu_arm1026_set_pte_ext)
356#ifdef CONFIG_MMU 356#ifdef CONFIG_MMU
357 str r1, [r0], #-2048 @ linux version 357 armv3_set_pte_ext
358
359 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
360
361 bic r2, r1, #PTE_SMALL_AP_MASK
362 bic r2, r2, #PTE_TYPE_MASK
363 orr r2, r2, #PTE_TYPE_SMALL
364
365 tst r1, #L_PTE_USER @ User?
366 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
367
368 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
369 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
370
371 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
372 movne r2, #0
373
374#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
375 eor r3, r1, #0x0a @ C & small page?
376 tst r3, #0x0b
377 biceq r2, r2, #4
378#endif
379 str r2, [r0] @ hardware version
380 mov r0, r0 358 mov r0, r0
381#ifndef CONFIG_CPU_DCACHE_DISABLE 359#ifndef CONFIG_CPU_DCACHE_DISABLE
382 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 360 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
diff --git a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S
index c371fc87776e..80d6e1de069a 100644
--- a/arch/arm/mm/proc-arm6_7.S
+++ b/arch/arm/mm/proc-arm6_7.S
@@ -15,11 +15,13 @@
15#include <linux/init.h> 15#include <linux/init.h>
16#include <asm/assembler.h> 16#include <asm/assembler.h>
17#include <asm/asm-offsets.h> 17#include <asm/asm-offsets.h>
18#include <asm/elf.h> 18#include <asm/hwcap.h>
19#include <asm/pgtable-hwdef.h> 19#include <asm/pgtable-hwdef.h>
20#include <asm/pgtable.h> 20#include <asm/pgtable.h>
21#include <asm/ptrace.h> 21#include <asm/ptrace.h>
22 22
23#include "proc-macros.S"
24
23ENTRY(cpu_arm6_dcache_clean_area) 25ENTRY(cpu_arm6_dcache_clean_area)
24ENTRY(cpu_arm7_dcache_clean_area) 26ENTRY(cpu_arm7_dcache_clean_area)
25 mov pc, lr 27 mov pc, lr
@@ -214,30 +216,13 @@ ENTRY(cpu_arm7_switch_mm)
214 * : r1 = value to set 216 * : r1 = value to set
215 * Purpose : Set a PTE and flush it out of any WB cache 217 * Purpose : Set a PTE and flush it out of any WB cache
216 */ 218 */
217 .align 5 219 .align 5
218ENTRY(cpu_arm6_set_pte_ext) 220ENTRY(cpu_arm6_set_pte_ext)
219ENTRY(cpu_arm7_set_pte_ext) 221ENTRY(cpu_arm7_set_pte_ext)
220#ifdef CONFIG_MMU 222#ifdef CONFIG_MMU
221 str r1, [r0], #-2048 @ linux version 223 armv3_set_pte_ext wc_disable=0
222
223 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
224
225 bic r2, r1, #PTE_SMALL_AP_MASK
226 bic r2, r2, #PTE_TYPE_MASK
227 orr r2, r2, #PTE_TYPE_SMALL
228
229 tst r1, #L_PTE_USER @ User?
230 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
231
232 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
233 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
234
235 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young
236 movne r2, #0
237
238 str r2, [r0] @ hardware version
239#endif /* CONFIG_MMU */ 224#endif /* CONFIG_MMU */
240 mov pc, lr 225 mov pc, lr
241 226
242/* 227/*
243 * Function: _arm6_7_reset 228 * Function: _arm6_7_reset
diff --git a/arch/arm/mm/proc-arm720.S b/arch/arm/mm/proc-arm720.S
index eda733d30455..85ae18695f10 100644
--- a/arch/arm/mm/proc-arm720.S
+++ b/arch/arm/mm/proc-arm720.S
@@ -36,7 +36,7 @@
36#include <linux/init.h> 36#include <linux/init.h>
37#include <asm/assembler.h> 37#include <asm/assembler.h>
38#include <asm/asm-offsets.h> 38#include <asm/asm-offsets.h>
39#include <asm/elf.h> 39#include <asm/hwcap.h>
40#include <asm/pgtable-hwdef.h> 40#include <asm/pgtable-hwdef.h>
41#include <asm/pgtable.h> 41#include <asm/pgtable.h>
42#include <asm/ptrace.h> 42#include <asm/ptrace.h>
@@ -93,29 +93,12 @@ ENTRY(cpu_arm720_switch_mm)
93 * : r1 = value to set 93 * : r1 = value to set
94 * Purpose : Set a PTE and flush it out of any WB cache 94 * Purpose : Set a PTE and flush it out of any WB cache
95 */ 95 */
96 .align 5 96 .align 5
97ENTRY(cpu_arm720_set_pte_ext) 97ENTRY(cpu_arm720_set_pte_ext)
98#ifdef CONFIG_MMU 98#ifdef CONFIG_MMU
99 str r1, [r0], #-2048 @ linux version 99 armv3_set_pte_ext wc_disable=0
100
101 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
102
103 bic r2, r1, #PTE_SMALL_AP_MASK
104 bic r2, r2, #PTE_TYPE_MASK
105 orr r2, r2, #PTE_TYPE_SMALL
106
107 tst r1, #L_PTE_USER @ User?
108 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
109
110 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
111 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
112
113 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young
114 movne r2, #0
115
116 str r2, [r0] @ hardware version
117#endif 100#endif
118 mov pc, lr 101 mov pc, lr
119 102
120/* 103/*
121 * Function: arm720_reset 104 * Function: arm720_reset
diff --git a/arch/arm/mm/proc-arm740.S b/arch/arm/mm/proc-arm740.S
index 3a57376c8bc9..4f95bee63e95 100644
--- a/arch/arm/mm/proc-arm740.S
+++ b/arch/arm/mm/proc-arm740.S
@@ -12,7 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <asm/assembler.h> 13#include <asm/assembler.h>
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/elf.h> 15#include <asm/hwcap.h>
16#include <asm/pgtable-hwdef.h> 16#include <asm/pgtable-hwdef.h>
17#include <asm/pgtable.h> 17#include <asm/pgtable.h>
18#include <asm/ptrace.h> 18#include <asm/ptrace.h>
diff --git a/arch/arm/mm/proc-arm7tdmi.S b/arch/arm/mm/proc-arm7tdmi.S
index 7b3ecdeb5370..93e05fa7bed4 100644
--- a/arch/arm/mm/proc-arm7tdmi.S
+++ b/arch/arm/mm/proc-arm7tdmi.S
@@ -12,7 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <asm/assembler.h> 13#include <asm/assembler.h>
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/elf.h> 15#include <asm/hwcap.h>
16#include <asm/pgtable-hwdef.h> 16#include <asm/pgtable-hwdef.h>
17#include <asm/pgtable.h> 17#include <asm/pgtable.h>
18#include <asm/ptrace.h> 18#include <asm/ptrace.h>
diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S
index 28cdb060df45..914d688394fc 100644
--- a/arch/arm/mm/proc-arm920.S
+++ b/arch/arm/mm/proc-arm920.S
@@ -28,7 +28,7 @@
28#include <linux/linkage.h> 28#include <linux/linkage.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <asm/assembler.h> 30#include <asm/assembler.h>
31#include <asm/elf.h> 31#include <asm/hwcap.h>
32#include <asm/pgtable-hwdef.h> 32#include <asm/pgtable-hwdef.h>
33#include <asm/pgtable.h> 33#include <asm/pgtable.h>
34#include <asm/page.h> 34#include <asm/page.h>
@@ -351,33 +351,11 @@ ENTRY(cpu_arm920_switch_mm)
351 .align 5 351 .align 5
352ENTRY(cpu_arm920_set_pte_ext) 352ENTRY(cpu_arm920_set_pte_ext)
353#ifdef CONFIG_MMU 353#ifdef CONFIG_MMU
354 str r1, [r0], #-2048 @ linux version 354 armv3_set_pte_ext
355
356 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
357
358 bic r2, r1, #PTE_SMALL_AP_MASK
359 bic r2, r2, #PTE_TYPE_MASK
360 orr r2, r2, #PTE_TYPE_SMALL
361
362 tst r1, #L_PTE_USER @ User?
363 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
364
365 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
366 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
367
368 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
369 movne r2, #0
370
371#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
372 eor r3, r2, #0x0a @ C & small page?
373 tst r3, #0x0b
374 biceq r2, r2, #4
375#endif
376 str r2, [r0] @ hardware version
377 mov r0, r0 355 mov r0, r0
378 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 356 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
379 mcr p15, 0, r0, c7, c10, 4 @ drain WB 357 mcr p15, 0, r0, c7, c10, 4 @ drain WB
380#endif /* CONFIG_MMU */ 358#endif
381 mov pc, lr 359 mov pc, lr
382 360
383 __INIT 361 __INIT
diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S
index 94ddcb4a4b76..51c9c9859e58 100644
--- a/arch/arm/mm/proc-arm922.S
+++ b/arch/arm/mm/proc-arm922.S
@@ -29,7 +29,7 @@
29#include <linux/linkage.h> 29#include <linux/linkage.h>
30#include <linux/init.h> 30#include <linux/init.h>
31#include <asm/assembler.h> 31#include <asm/assembler.h>
32#include <asm/elf.h> 32#include <asm/hwcap.h>
33#include <asm/pgtable-hwdef.h> 33#include <asm/pgtable-hwdef.h>
34#include <asm/pgtable.h> 34#include <asm/pgtable.h>
35#include <asm/page.h> 35#include <asm/page.h>
@@ -355,29 +355,7 @@ ENTRY(cpu_arm922_switch_mm)
355 .align 5 355 .align 5
356ENTRY(cpu_arm922_set_pte_ext) 356ENTRY(cpu_arm922_set_pte_ext)
357#ifdef CONFIG_MMU 357#ifdef CONFIG_MMU
358 str r1, [r0], #-2048 @ linux version 358 armv3_set_pte_ext
359
360 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
361
362 bic r2, r1, #PTE_SMALL_AP_MASK
363 bic r2, r2, #PTE_TYPE_MASK
364 orr r2, r2, #PTE_TYPE_SMALL
365
366 tst r1, #L_PTE_USER @ User?
367 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
368
369 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
370 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
371
372 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
373 movne r2, #0
374
375#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
376 eor r3, r2, #0x0a @ C & small page?
377 tst r3, #0x0b
378 biceq r2, r2, #4
379#endif
380 str r2, [r0] @ hardware version
381 mov r0, r0 359 mov r0, r0
382 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 360 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
383 mcr p15, 0, r0, c7, c10, 4 @ drain WB 361 mcr p15, 0, r0, c7, c10, 4 @ drain WB
diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S
index d045812f3399..2724526d89c1 100644
--- a/arch/arm/mm/proc-arm925.S
+++ b/arch/arm/mm/proc-arm925.S
@@ -52,7 +52,7 @@
52#include <linux/linkage.h> 52#include <linux/linkage.h>
53#include <linux/init.h> 53#include <linux/init.h>
54#include <asm/assembler.h> 54#include <asm/assembler.h>
55#include <asm/elf.h> 55#include <asm/hwcap.h>
56#include <asm/pgtable-hwdef.h> 56#include <asm/pgtable-hwdef.h>
57#include <asm/pgtable.h> 57#include <asm/pgtable.h>
58#include <asm/page.h> 58#include <asm/page.h>
@@ -398,29 +398,7 @@ ENTRY(cpu_arm925_switch_mm)
398 .align 5 398 .align 5
399ENTRY(cpu_arm925_set_pte_ext) 399ENTRY(cpu_arm925_set_pte_ext)
400#ifdef CONFIG_MMU 400#ifdef CONFIG_MMU
401 str r1, [r0], #-2048 @ linux version 401 armv3_set_pte_ext
402
403 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
404
405 bic r2, r1, #PTE_SMALL_AP_MASK
406 bic r2, r2, #PTE_TYPE_MASK
407 orr r2, r2, #PTE_TYPE_SMALL
408
409 tst r1, #L_PTE_USER @ User?
410 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
411
412 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
413 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
414
415 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
416 movne r2, #0
417
418#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
419 eor r3, r2, #0x0a @ C & small page?
420 tst r3, #0x0b
421 biceq r2, r2, #4
422#endif
423 str r2, [r0] @ hardware version
424 mov r0, r0 402 mov r0, r0
425#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 403#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
426 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 404 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S
index 4cd33169a7c9..54466937bff9 100644
--- a/arch/arm/mm/proc-arm926.S
+++ b/arch/arm/mm/proc-arm926.S
@@ -28,7 +28,7 @@
28#include <linux/linkage.h> 28#include <linux/linkage.h>
29#include <linux/init.h> 29#include <linux/init.h>
30#include <asm/assembler.h> 30#include <asm/assembler.h>
31#include <asm/elf.h> 31#include <asm/hwcap.h>
32#include <asm/pgtable-hwdef.h> 32#include <asm/pgtable-hwdef.h>
33#include <asm/pgtable.h> 33#include <asm/pgtable.h>
34#include <asm/page.h> 34#include <asm/page.h>
@@ -359,29 +359,7 @@ ENTRY(cpu_arm926_switch_mm)
359 .align 5 359 .align 5
360ENTRY(cpu_arm926_set_pte_ext) 360ENTRY(cpu_arm926_set_pte_ext)
361#ifdef CONFIG_MMU 361#ifdef CONFIG_MMU
362 str r1, [r0], #-2048 @ linux version 362 armv3_set_pte_ext
363
364 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
365
366 bic r2, r1, #PTE_SMALL_AP_MASK
367 bic r2, r2, #PTE_TYPE_MASK
368 orr r2, r2, #PTE_TYPE_SMALL
369
370 tst r1, #L_PTE_USER @ User?
371 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
372
373 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
374 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
375
376 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
377 movne r2, #0
378
379#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
380 eor r3, r2, #0x0a @ C & small page?
381 tst r3, #0x0b
382 biceq r2, r2, #4
383#endif
384 str r2, [r0] @ hardware version
385 mov r0, r0 363 mov r0, r0
386#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH 364#ifndef CONFIG_CPU_DCACHE_WRITETHROUGH
387 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 365 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
diff --git a/arch/arm/mm/proc-arm940.S b/arch/arm/mm/proc-arm940.S
index 551244d5ca19..f595117caf55 100644
--- a/arch/arm/mm/proc-arm940.S
+++ b/arch/arm/mm/proc-arm940.S
@@ -11,7 +11,7 @@
11#include <linux/linkage.h> 11#include <linux/linkage.h>
12#include <linux/init.h> 12#include <linux/init.h>
13#include <asm/assembler.h> 13#include <asm/assembler.h>
14#include <asm/elf.h> 14#include <asm/hwcap.h>
15#include <asm/pgtable-hwdef.h> 15#include <asm/pgtable-hwdef.h>
16#include <asm/pgtable.h> 16#include <asm/pgtable.h>
17#include <asm/ptrace.h> 17#include <asm/ptrace.h>
diff --git a/arch/arm/mm/proc-arm946.S b/arch/arm/mm/proc-arm946.S
index 6168c6160dee..e03f6ff1fb26 100644
--- a/arch/arm/mm/proc-arm946.S
+++ b/arch/arm/mm/proc-arm946.S
@@ -13,7 +13,7 @@
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <asm/assembler.h> 15#include <asm/assembler.h>
16#include <asm/elf.h> 16#include <asm/hwcap.h>
17#include <asm/pgtable-hwdef.h> 17#include <asm/pgtable-hwdef.h>
18#include <asm/pgtable.h> 18#include <asm/pgtable.h>
19#include <asm/ptrace.h> 19#include <asm/ptrace.h>
diff --git a/arch/arm/mm/proc-arm9tdmi.S b/arch/arm/mm/proc-arm9tdmi.S
index c85c1f50e396..be6c11d2b3fb 100644
--- a/arch/arm/mm/proc-arm9tdmi.S
+++ b/arch/arm/mm/proc-arm9tdmi.S
@@ -12,7 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <asm/assembler.h> 13#include <asm/assembler.h>
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/elf.h> 15#include <asm/hwcap.h>
16#include <asm/pgtable-hwdef.h> 16#include <asm/pgtable-hwdef.h>
17#include <asm/pgtable.h> 17#include <asm/pgtable.h>
18#include <asm/ptrace.h> 18#include <asm/ptrace.h>
diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S
index 207392f1ce8a..0fe1f8fc3488 100644
--- a/arch/arm/mm/proc-feroceon.S
+++ b/arch/arm/mm/proc-feroceon.S
@@ -22,7 +22,7 @@
22#include <linux/linkage.h> 22#include <linux/linkage.h>
23#include <linux/init.h> 23#include <linux/init.h>
24#include <asm/assembler.h> 24#include <asm/assembler.h>
25#include <asm/elf.h> 25#include <asm/hwcap.h>
26#include <asm/pgtable-hwdef.h> 26#include <asm/pgtable-hwdef.h>
27#include <asm/pgtable.h> 27#include <asm/pgtable.h>
28#include <asm/page.h> 28#include <asm/page.h>
@@ -449,24 +449,7 @@ ENTRY(cpu_feroceon_switch_mm)
449 .align 5 449 .align 5
450ENTRY(cpu_feroceon_set_pte_ext) 450ENTRY(cpu_feroceon_set_pte_ext)
451#ifdef CONFIG_MMU 451#ifdef CONFIG_MMU
452 str r1, [r0], #-2048 @ linux version 452 armv3_set_pte_ext wc_disable=0
453
454 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
455
456 bic r2, r1, #PTE_SMALL_AP_MASK
457 bic r2, r2, #PTE_TYPE_MASK
458 orr r2, r2, #PTE_TYPE_SMALL
459
460 tst r1, #L_PTE_USER @ User?
461 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
462
463 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
464 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
465
466 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
467 movne r2, #0
468
469 str r2, [r0] @ hardware version
470 mov r0, r0 453 mov r0, r0
471 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 454 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
472#if defined(CONFIG_CACHE_FEROCEON_L2) && \ 455#if defined(CONFIG_CACHE_FEROCEON_L2) && \
diff --git a/arch/arm/mm/proc-macros.S b/arch/arm/mm/proc-macros.S
index b13150052a76..54b1f721dec8 100644
--- a/arch/arm/mm/proc-macros.S
+++ b/arch/arm/mm/proc-macros.S
@@ -71,3 +71,173 @@
71 mov \reg, #16 @ size offset 71 mov \reg, #16 @ size offset
72 mov \reg, \reg, lsl \tmp @ actual cache line size 72 mov \reg, \reg, lsl \tmp @ actual cache line size
73 .endm 73 .endm
74
75
76/*
77 * Sanity check the PTE configuration for the code below - which makes
78 * certain assumptions about how these bits are layed out.
79 */
80#if L_PTE_SHARED != PTE_EXT_SHARED
81#error PTE shared bit mismatch
82#endif
83#if L_PTE_BUFFERABLE != PTE_BUFFERABLE
84#error PTE bufferable bit mismatch
85#endif
86#if L_PTE_CACHEABLE != PTE_CACHEABLE
87#error PTE cacheable bit mismatch
88#endif
89#if (L_PTE_EXEC+L_PTE_USER+L_PTE_WRITE+L_PTE_DIRTY+L_PTE_YOUNG+\
90 L_PTE_FILE+L_PTE_PRESENT) > L_PTE_SHARED
91#error Invalid Linux PTE bit settings
92#endif
93
94/*
95 * The ARMv6 and ARMv7 set_pte_ext translation function.
96 *
97 * Permission translation:
98 * YUWD APX AP1 AP0 SVC User
99 * 0xxx 0 0 0 no acc no acc
100 * 100x 1 0 1 r/o no acc
101 * 10x0 1 0 1 r/o no acc
102 * 1011 0 0 1 r/w no acc
103 * 110x 0 1 0 r/w r/o
104 * 11x0 0 1 0 r/w r/o
105 * 1111 0 1 1 r/w r/w
106 */
107 .macro armv6_mt_table pfx
108\pfx\()_mt_table:
109 .long 0x00 @ L_PTE_MT_UNCACHED
110 .long PTE_EXT_TEX(1) @ L_PTE_MT_BUFFERABLE
111 .long PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH
112 .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK
113 .long PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED
114 .long 0x00 @ unused
115 .long 0x00 @ L_PTE_MT_MINICACHE (not present)
116 .long PTE_EXT_TEX(1) | PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEALLOC
117 .long 0x00 @ unused
118 .long PTE_EXT_TEX(1) @ L_PTE_MT_DEV_WC
119 .long 0x00 @ unused
120 .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_DEV_CACHED
121 .long PTE_EXT_TEX(2) @ L_PTE_MT_DEV_NONSHARED
122 .long 0x00 @ unused
123 .long 0x00 @ unused
124 .long 0x00 @ unused
125 .endm
126
127 .macro armv6_set_pte_ext pfx
128 str r1, [r0], #-2048 @ linux version
129
130 bic r3, r1, #0x000003fc
131 bic r3, r3, #PTE_TYPE_MASK
132 orr r3, r3, r2
133 orr r3, r3, #PTE_EXT_AP0 | 2
134
135 adr ip, \pfx\()_mt_table
136 and r2, r1, #L_PTE_MT_MASK
137 ldr r2, [ip, r2]
138
139 tst r1, #L_PTE_WRITE
140 tstne r1, #L_PTE_DIRTY
141 orreq r3, r3, #PTE_EXT_APX
142
143 tst r1, #L_PTE_USER
144 orrne r3, r3, #PTE_EXT_AP1
145 tstne r3, #PTE_EXT_APX
146 bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0
147
148 tst r1, #L_PTE_EXEC
149 orreq r3, r3, #PTE_EXT_XN
150
151 orr r3, r3, r2
152
153 tst r1, #L_PTE_YOUNG
154 tstne r1, #L_PTE_PRESENT
155 moveq r3, #0
156
157 str r3, [r0]
158 mcr p15, 0, r0, c7, c10, 1 @ flush_pte
159 .endm
160
161
162/*
163 * The ARMv3, ARMv4 and ARMv5 set_pte_ext translation function,
164 * covering most CPUs except Xscale and Xscale 3.
165 *
166 * Permission translation:
167 * YUWD AP SVC User
168 * 0xxx 0x00 no acc no acc
169 * 100x 0x00 r/o no acc
170 * 10x0 0x00 r/o no acc
171 * 1011 0x55 r/w no acc
172 * 110x 0xaa r/w r/o
173 * 11x0 0xaa r/w r/o
174 * 1111 0xff r/w r/w
175 */
176 .macro armv3_set_pte_ext wc_disable=1
177 str r1, [r0], #-2048 @ linux version
178
179 eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
180
181 bic r2, r1, #PTE_SMALL_AP_MASK @ keep C, B bits
182 bic r2, r2, #PTE_TYPE_MASK
183 orr r2, r2, #PTE_TYPE_SMALL
184
185 tst r3, #L_PTE_USER @ user?
186 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
187
188 tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ write and dirty?
189 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
190
191 tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young?
192 movne r2, #0
193
194 .if \wc_disable
195#ifdef CONFIG_CPU_DCACHE_WRITETHROUGH
196 tst r2, #PTE_CACHEABLE
197 bicne r2, r2, #PTE_BUFFERABLE
198#endif
199 .endif
200 str r2, [r0] @ hardware version
201 .endm
202
203
204/*
205 * Xscale set_pte_ext translation, split into two halves to cope
206 * with work-arounds. r3 must be preserved by code between these
207 * two macros.
208 *
209 * Permission translation:
210 * YUWD AP SVC User
211 * 0xxx 00 no acc no acc
212 * 100x 00 r/o no acc
213 * 10x0 00 r/o no acc
214 * 1011 01 r/w no acc
215 * 110x 10 r/w r/o
216 * 11x0 10 r/w r/o
217 * 1111 11 r/w r/w
218 */
219 .macro xscale_set_pte_ext_prologue
220 str r1, [r0], #-2048 @ linux version
221
222 eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
223
224 bic r2, r1, #PTE_SMALL_AP_MASK @ keep C, B bits
225 orr r2, r2, #PTE_TYPE_EXT @ extended page
226
227 tst r3, #L_PTE_USER @ user?
228 orrne r2, r2, #PTE_EXT_AP_URO_SRW @ yes -> user r/o, system r/w
229
230 tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ write and dirty?
231 orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w
232 @ combined with user -> user r/w
233 .endm
234
235 .macro xscale_set_pte_ext_epilogue
236 tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young?
237 movne r2, #0 @ no -> fault
238
239 str r2, [r0] @ hardware version
240 mov ip, #0
241 mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line
242 mcr p15, 0, ip, c7, c10, 4 @ data write barrier
243 .endm
diff --git a/arch/arm/mm/proc-sa110.S b/arch/arm/mm/proc-sa110.S
index bbe10576c861..90a7e5279f29 100644
--- a/arch/arm/mm/proc-sa110.S
+++ b/arch/arm/mm/proc-sa110.S
@@ -17,7 +17,7 @@
17#include <linux/init.h> 17#include <linux/init.h>
18#include <asm/assembler.h> 18#include <asm/assembler.h>
19#include <asm/asm-offsets.h> 19#include <asm/asm-offsets.h>
20#include <asm/elf.h> 20#include <asm/hwcap.h>
21#include <mach/hardware.h> 21#include <mach/hardware.h>
22#include <asm/pgtable-hwdef.h> 22#include <asm/pgtable-hwdef.h>
23#include <asm/pgtable.h> 23#include <asm/pgtable.h>
@@ -153,24 +153,7 @@ ENTRY(cpu_sa110_switch_mm)
153 .align 5 153 .align 5
154ENTRY(cpu_sa110_set_pte_ext) 154ENTRY(cpu_sa110_set_pte_ext)
155#ifdef CONFIG_MMU 155#ifdef CONFIG_MMU
156 str r1, [r0], #-2048 @ linux version 156 armv3_set_pte_ext wc_disable=0
157
158 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
159
160 bic r2, r1, #PTE_SMALL_AP_MASK
161 bic r2, r2, #PTE_TYPE_MASK
162 orr r2, r2, #PTE_TYPE_SMALL
163
164 tst r1, #L_PTE_USER @ User?
165 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
166
167 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
168 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
169
170 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
171 movne r2, #0
172
173 str r2, [r0] @ hardware version
174 mov r0, r0 157 mov r0, r0
175 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 158 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
176 mcr p15, 0, r0, c7, c10, 4 @ drain WB 159 mcr p15, 0, r0, c7, c10, 4 @ drain WB
diff --git a/arch/arm/mm/proc-sa1100.S b/arch/arm/mm/proc-sa1100.S
index 871ba018252e..451e2d953e2a 100644
--- a/arch/arm/mm/proc-sa1100.S
+++ b/arch/arm/mm/proc-sa1100.S
@@ -22,7 +22,7 @@
22#include <linux/init.h> 22#include <linux/init.h>
23#include <asm/assembler.h> 23#include <asm/assembler.h>
24#include <asm/asm-offsets.h> 24#include <asm/asm-offsets.h>
25#include <asm/elf.h> 25#include <asm/hwcap.h>
26#include <mach/hardware.h> 26#include <mach/hardware.h>
27#include <asm/pgtable-hwdef.h> 27#include <asm/pgtable-hwdef.h>
28#include <asm/pgtable.h> 28#include <asm/pgtable.h>
@@ -166,24 +166,7 @@ ENTRY(cpu_sa1100_switch_mm)
166 .align 5 166 .align 5
167ENTRY(cpu_sa1100_set_pte_ext) 167ENTRY(cpu_sa1100_set_pte_ext)
168#ifdef CONFIG_MMU 168#ifdef CONFIG_MMU
169 str r1, [r0], #-2048 @ linux version 169 armv3_set_pte_ext wc_disable=0
170
171 eor r1, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
172
173 bic r2, r1, #PTE_SMALL_AP_MASK
174 bic r2, r2, #PTE_TYPE_MASK
175 orr r2, r2, #PTE_TYPE_SMALL
176
177 tst r1, #L_PTE_USER @ User?
178 orrne r2, r2, #PTE_SMALL_AP_URO_SRW
179
180 tst r1, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
181 orreq r2, r2, #PTE_SMALL_AP_UNO_SRW
182
183 tst r1, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young?
184 movne r2, #0
185
186 str r2, [r0] @ hardware version
187 mov r0, r0 170 mov r0, r0
188 mcr p15, 0, r0, c7, c10, 1 @ clean D entry 171 mcr p15, 0, r0, c7, c10, 1 @ clean D entry
189 mcr p15, 0, r0, c7, c10, 4 @ drain WB 172 mcr p15, 0, r0, c7, c10, 4 @ drain WB
diff --git a/arch/arm/mm/proc-v6.S b/arch/arm/mm/proc-v6.S
index 5702ec58b2a2..294943b85973 100644
--- a/arch/arm/mm/proc-v6.S
+++ b/arch/arm/mm/proc-v6.S
@@ -13,7 +13,7 @@
13#include <linux/linkage.h> 13#include <linux/linkage.h>
14#include <asm/assembler.h> 14#include <asm/assembler.h>
15#include <asm/asm-offsets.h> 15#include <asm/asm-offsets.h>
16#include <asm/elf.h> 16#include <asm/hwcap.h>
17#include <asm/pgtable-hwdef.h> 17#include <asm/pgtable-hwdef.h>
18#include <asm/pgtable.h> 18#include <asm/pgtable.h>
19 19
@@ -114,46 +114,12 @@ ENTRY(cpu_v6_switch_mm)
114 * (hardware version is stored at -1024 bytes) 114 * (hardware version is stored at -1024 bytes)
115 * - pte - PTE value to store 115 * - pte - PTE value to store
116 * - ext - value for extended PTE bits 116 * - ext - value for extended PTE bits
117 *
118 * Permissions:
119 * YUWD APX AP1 AP0 SVC User
120 * 0xxx 0 0 0 no acc no acc
121 * 100x 1 0 1 r/o no acc
122 * 10x0 1 0 1 r/o no acc
123 * 1011 0 0 1 r/w no acc
124 * 110x 0 1 0 r/w r/o
125 * 11x0 0 1 0 r/w r/o
126 * 1111 0 1 1 r/w r/w
127 */ 117 */
118 armv6_mt_table cpu_v6
119
128ENTRY(cpu_v6_set_pte_ext) 120ENTRY(cpu_v6_set_pte_ext)
129#ifdef CONFIG_MMU 121#ifdef CONFIG_MMU
130 str r1, [r0], #-2048 @ linux version 122 armv6_set_pte_ext cpu_v6
131
132 bic r3, r1, #0x000003f0
133 bic r3, r3, #0x00000003
134 orr r3, r3, r2
135 orr r3, r3, #PTE_EXT_AP0 | 2
136
137 tst r1, #L_PTE_WRITE
138 tstne r1, #L_PTE_DIRTY
139 orreq r3, r3, #PTE_EXT_APX
140
141 tst r1, #L_PTE_USER
142 orrne r3, r3, #PTE_EXT_AP1
143 tstne r3, #PTE_EXT_APX
144 bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0
145
146 tst r1, #L_PTE_YOUNG
147 biceq r3, r3, #PTE_EXT_APX | PTE_EXT_AP_MASK
148
149 tst r1, #L_PTE_EXEC
150 orreq r3, r3, #PTE_EXT_XN
151
152 tst r1, #L_PTE_PRESENT
153 moveq r3, #0
154
155 str r3, [r0]
156 mcr p15, 0, r0, c7, c10, 1 @ flush_pte
157#endif 123#endif
158 mov pc, lr 124 mov pc, lr
159 125
diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
index b49f9a4c82c8..34e424041927 100644
--- a/arch/arm/mm/proc-v7.S
+++ b/arch/arm/mm/proc-v7.S
@@ -12,7 +12,7 @@
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <asm/assembler.h> 13#include <asm/assembler.h>
14#include <asm/asm-offsets.h> 14#include <asm/asm-offsets.h>
15#include <asm/elf.h> 15#include <asm/hwcap.h>
16#include <asm/pgtable-hwdef.h> 16#include <asm/pgtable-hwdef.h>
17#include <asm/pgtable.h> 17#include <asm/pgtable.h>
18 18
@@ -25,9 +25,11 @@
25 25
26ENTRY(cpu_v7_proc_init) 26ENTRY(cpu_v7_proc_init)
27 mov pc, lr 27 mov pc, lr
28ENDPROC(cpu_v7_proc_init)
28 29
29ENTRY(cpu_v7_proc_fin) 30ENTRY(cpu_v7_proc_fin)
30 mov pc, lr 31 mov pc, lr
32ENDPROC(cpu_v7_proc_fin)
31 33
32/* 34/*
33 * cpu_v7_reset(loc) 35 * cpu_v7_reset(loc)
@@ -43,6 +45,7 @@ ENTRY(cpu_v7_proc_fin)
43 .align 5 45 .align 5
44ENTRY(cpu_v7_reset) 46ENTRY(cpu_v7_reset)
45 mov pc, r0 47 mov pc, r0
48ENDPROC(cpu_v7_reset)
46 49
47/* 50/*
48 * cpu_v7_do_idle() 51 * cpu_v7_do_idle()
@@ -52,8 +55,9 @@ ENTRY(cpu_v7_reset)
52 * IRQs are already disabled. 55 * IRQs are already disabled.
53 */ 56 */
54ENTRY(cpu_v7_do_idle) 57ENTRY(cpu_v7_do_idle)
55 .long 0xe320f003 @ ARM V7 WFI instruction 58 wfi
56 mov pc, lr 59 mov pc, lr
60ENDPROC(cpu_v7_do_idle)
57 61
58ENTRY(cpu_v7_dcache_clean_area) 62ENTRY(cpu_v7_dcache_clean_area)
59#ifndef TLB_CAN_READ_FROM_L1_CACHE 63#ifndef TLB_CAN_READ_FROM_L1_CACHE
@@ -65,6 +69,7 @@ ENTRY(cpu_v7_dcache_clean_area)
65 dsb 69 dsb
66#endif 70#endif
67 mov pc, lr 71 mov pc, lr
72ENDPROC(cpu_v7_dcache_clean_area)
68 73
69/* 74/*
70 * cpu_v7_switch_mm(pgd_phys, tsk) 75 * cpu_v7_switch_mm(pgd_phys, tsk)
@@ -89,6 +94,7 @@ ENTRY(cpu_v7_switch_mm)
89 isb 94 isb
90#endif 95#endif
91 mov pc, lr 96 mov pc, lr
97ENDPROC(cpu_v7_switch_mm)
92 98
93/* 99/*
94 * cpu_v7_set_pte_ext(ptep, pte) 100 * cpu_v7_set_pte_ext(ptep, pte)
@@ -99,26 +105,19 @@ ENTRY(cpu_v7_switch_mm)
99 * (hardware version is stored at -1024 bytes) 105 * (hardware version is stored at -1024 bytes)
100 * - pte - PTE value to store 106 * - pte - PTE value to store
101 * - ext - value for extended PTE bits 107 * - ext - value for extended PTE bits
102 *
103 * Permissions:
104 * YUWD APX AP1 AP0 SVC User
105 * 0xxx 0 0 0 no acc no acc
106 * 100x 1 0 1 r/o no acc
107 * 10x0 1 0 1 r/o no acc
108 * 1011 0 0 1 r/w no acc
109 * 110x 0 1 0 r/w r/o
110 * 11x0 0 1 0 r/w r/o
111 * 1111 0 1 1 r/w r/w
112 */ 108 */
113ENTRY(cpu_v7_set_pte_ext) 109ENTRY(cpu_v7_set_pte_ext)
114#ifdef CONFIG_MMU 110#ifdef CONFIG_MMU
115 str r1, [r0], #-2048 @ linux version 111 str r1, [r0], #-2048 @ linux version
116 112
117 bic r3, r1, #0x000003f0 113 bic r3, r1, #0x000003f0
118 bic r3, r3, #0x00000003 114 bic r3, r3, #PTE_TYPE_MASK
119 orr r3, r3, r2 115 orr r3, r3, r2
120 orr r3, r3, #PTE_EXT_AP0 | 2 116 orr r3, r3, #PTE_EXT_AP0 | 2
121 117
118 tst r2, #1 << 4
119 orrne r3, r3, #PTE_EXT_TEX(1)
120
122 tst r1, #L_PTE_WRITE 121 tst r1, #L_PTE_WRITE
123 tstne r1, #L_PTE_DIRTY 122 tstne r1, #L_PTE_DIRTY
124 orreq r3, r3, #PTE_EXT_APX 123 orreq r3, r3, #PTE_EXT_APX
@@ -128,19 +127,18 @@ ENTRY(cpu_v7_set_pte_ext)
128 tstne r3, #PTE_EXT_APX 127 tstne r3, #PTE_EXT_APX
129 bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0 128 bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0
130 129
131 tst r1, #L_PTE_YOUNG
132 biceq r3, r3, #PTE_EXT_APX | PTE_EXT_AP_MASK
133
134 tst r1, #L_PTE_EXEC 130 tst r1, #L_PTE_EXEC
135 orreq r3, r3, #PTE_EXT_XN 131 orreq r3, r3, #PTE_EXT_XN
136 132
137 tst r1, #L_PTE_PRESENT 133 tst r1, #L_PTE_YOUNG
134 tstne r1, #L_PTE_PRESENT
138 moveq r3, #0 135 moveq r3, #0
139 136
140 str r3, [r0] 137 str r3, [r0]
141 mcr p15, 0, r0, c7, c10, 1 @ flush_pte 138 mcr p15, 0, r0, c7, c10, 1 @ flush_pte
142#endif 139#endif
143 mov pc, lr 140 mov pc, lr
141ENDPROC(cpu_v7_set_pte_ext)
144 142
145cpu_v7_name: 143cpu_v7_name:
146 .ascii "ARMv7 Processor" 144 .ascii "ARMv7 Processor"
@@ -182,12 +180,17 @@ __v7_setup:
182 mov r10, #0x1f @ domains 0, 1 = manager 180 mov r10, #0x1f @ domains 0, 1 = manager
183 mcr p15, 0, r10, c3, c0, 0 @ load domain access register 181 mcr p15, 0, r10, c3, c0, 0 @ load domain access register
184#endif 182#endif
183 ldr r5, =0x40e040e0
184 ldr r6, =0xff0aa1a8
185 mcr p15, 0, r5, c10, c2, 0 @ write PRRR
186 mcr p15, 0, r6, c10, c2, 1 @ write NMRR
185 adr r5, v7_crval 187 adr r5, v7_crval
186 ldmia r5, {r5, r6} 188 ldmia r5, {r5, r6}
187 mrc p15, 0, r0, c1, c0, 0 @ read control register 189 mrc p15, 0, r0, c1, c0, 0 @ read control register
188 bic r0, r0, r5 @ clear bits them 190 bic r0, r0, r5 @ clear bits them
189 orr r0, r0, r6 @ set them 191 orr r0, r0, r6 @ set them
190 mov pc, lr @ return to head.S:__ret 192 mov pc, lr @ return to head.S:__ret
193ENDPROC(__v7_setup)
191 194
192 /* 195 /*
193 * V X F I D LR 196 * V X F I D LR
@@ -197,7 +200,7 @@ __v7_setup:
197 */ 200 */
198 .type v7_crval, #object 201 .type v7_crval, #object
199v7_crval: 202v7_crval:
200 crval clear=0x0120c302, mmuset=0x00c0387d, ucset=0x00c0187c 203 crval clear=0x0120c302, mmuset=0x10c0387d, ucset=0x00c0187c
201 204
202__v7_setup_stack: 205__v7_setup_stack:
203 .space 4 * 11 @ 11 registers 206 .space 4 * 11 @ 11 registers
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S
index 7bd9e7197f60..04dc8b65401b 100644
--- a/arch/arm/mm/proc-xsc3.S
+++ b/arch/arm/mm/proc-xsc3.S
@@ -27,7 +27,7 @@
27#include <linux/linkage.h> 27#include <linux/linkage.h>
28#include <linux/init.h> 28#include <linux/init.h>
29#include <asm/assembler.h> 29#include <asm/assembler.h>
30#include <asm/elf.h> 30#include <asm/hwcap.h>
31#include <mach/hardware.h> 31#include <mach/hardware.h>
32#include <asm/pgtable.h> 32#include <asm/pgtable.h>
33#include <asm/pgtable-hwdef.h> 33#include <asm/pgtable-hwdef.h>
@@ -345,38 +345,38 @@ ENTRY(cpu_xsc3_switch_mm)
345 * cpu_xsc3_set_pte_ext(ptep, pte, ext) 345 * cpu_xsc3_set_pte_ext(ptep, pte, ext)
346 * 346 *
347 * Set a PTE and flush it out 347 * Set a PTE and flush it out
348 *
349 */ 348 */
349cpu_xsc3_mt_table:
350 .long 0x00 @ L_PTE_MT_UNCACHED
351 .long PTE_EXT_TEX(1) @ L_PTE_MT_BUFFERABLE
352 .long PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH
353 .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK
354 .long PTE_EXT_TEX(1) | PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED
355 .long 0x00 @ unused
356 .long 0x00 @ L_PTE_MT_MINICACHE (not present)
357 .long PTE_EXT_TEX(5) | PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEALLOC (not present?)
358 .long 0x00 @ unused
359 .long PTE_EXT_TEX(1) @ L_PTE_MT_DEV_WC
360 .long 0x00 @ unused
361 .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_DEV_CACHED
362 .long PTE_EXT_TEX(2) @ L_PTE_MT_DEV_NONSHARED
363 .long 0x00 @ unused
364 .long 0x00 @ unused
365 .long 0x00 @ unused
366
350 .align 5 367 .align 5
351ENTRY(cpu_xsc3_set_pte_ext) 368ENTRY(cpu_xsc3_set_pte_ext)
352 str r1, [r0], #-2048 @ linux version 369 xscale_set_pte_ext_prologue
353 370
354 bic r2, r1, #0xff0 @ keep C, B bits
355 orr r2, r2, #PTE_TYPE_EXT @ extended page
356 tst r1, #L_PTE_SHARED @ shared? 371 tst r1, #L_PTE_SHARED @ shared?
357 orrne r2, r2, #0x200 372 and r1, r1, #L_PTE_MT_MASK
358 373 adr ip, cpu_xsc3_mt_table
359 eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY 374 ldr ip, [ip, r1]
360 375 orrne r2, r2, #PTE_EXT_COHERENT @ interlock: mask in coherent bit
361 tst r3, #L_PTE_USER @ user? 376 bic r2, r2, #0x0c @ clear old C,B bits
362 orrne r2, r2, #PTE_EXT_AP_URO_SRW @ yes -> user r/o, system r/w 377 orr r2, r2, ip
363 378
364 tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ write and dirty? 379 xscale_set_pte_ext_epilogue
365 orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w
366 @ combined with user -> user r/w
367
368 @ If it's cacheable, it needs to be in L2 also.
369 eor ip, r1, #L_PTE_CACHEABLE
370 tst ip, #L_PTE_CACHEABLE
371 orreq r2, r2, #PTE_EXT_TEX(0x5)
372
373 tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young?
374 movne r2, #0 @ no -> fault
375
376 str r2, [r0] @ hardware version
377 mov ip, #0
378 mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line
379 mcr p15, 0, ip, c7, c10, 4 @ data write barrier
380 mov pc, lr 380 mov pc, lr
381 381
382 .ltorg 382 .ltorg
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S
index 2dd85273976f..0cce37b93937 100644
--- a/arch/arm/mm/proc-xscale.S
+++ b/arch/arm/mm/proc-xscale.S
@@ -23,7 +23,7 @@
23#include <linux/linkage.h> 23#include <linux/linkage.h>
24#include <linux/init.h> 24#include <linux/init.h>
25#include <asm/assembler.h> 25#include <asm/assembler.h>
26#include <asm/elf.h> 26#include <asm/hwcap.h>
27#include <asm/pgtable.h> 27#include <asm/pgtable.h>
28#include <asm/pgtable-hwdef.h> 28#include <asm/pgtable-hwdef.h>
29#include <asm/page.h> 29#include <asm/page.h>
@@ -406,8 +406,6 @@ ENTRY(cpu_xscale_dcache_clean_area)
406 406
407/* =============================== PageTable ============================== */ 407/* =============================== PageTable ============================== */
408 408
409#define PTE_CACHE_WRITE_ALLOCATE 0
410
411/* 409/*
412 * cpu_xscale_switch_mm(pgd) 410 * cpu_xscale_switch_mm(pgd)
413 * 411 *
@@ -431,56 +429,42 @@ ENTRY(cpu_xscale_switch_mm)
431 * 429 *
432 * Errata 40: must set memory to write-through for user read-only pages. 430 * Errata 40: must set memory to write-through for user read-only pages.
433 */ 431 */
432cpu_xscale_mt_table:
433 .long 0x00 @ L_PTE_MT_UNCACHED
434 .long PTE_BUFFERABLE @ L_PTE_MT_BUFFERABLE
435 .long PTE_CACHEABLE @ L_PTE_MT_WRITETHROUGH
436 .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEBACK
437 .long PTE_EXT_TEX(1) | PTE_BUFFERABLE @ L_PTE_MT_DEV_SHARED
438 .long 0x00 @ unused
439 .long PTE_EXT_TEX(1) | PTE_CACHEABLE @ L_PTE_MT_MINICACHE
440 .long PTE_EXT_TEX(1) | PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_WRITEALLOC
441 .long 0x00 @ unused
442 .long PTE_BUFFERABLE @ L_PTE_MT_DEV_WC
443 .long 0x00 @ unused
444 .long PTE_CACHEABLE | PTE_BUFFERABLE @ L_PTE_MT_DEV_CACHED
445 .long 0x00 @ L_PTE_MT_DEV_NONSHARED
446 .long 0x00 @ unused
447 .long 0x00 @ unused
448 .long 0x00 @ unused
449
434 .align 5 450 .align 5
435ENTRY(cpu_xscale_set_pte_ext) 451ENTRY(cpu_xscale_set_pte_ext)
436 str r1, [r0], #-2048 @ linux version 452 xscale_set_pte_ext_prologue
437
438 bic r2, r1, #0xff0
439 orr r2, r2, #PTE_TYPE_EXT @ extended page
440
441 eor r3, r1, #L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_WRITE | L_PTE_DIRTY
442
443 tst r3, #L_PTE_USER @ User?
444 orrne r2, r2, #PTE_EXT_AP_URO_SRW @ yes -> user r/o, system r/w
445
446 tst r3, #L_PTE_WRITE | L_PTE_DIRTY @ Write and Dirty?
447 orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w
448 @ combined with user -> user r/w
449
450 @
451 @ Handle the X bit. We want to set this bit for the minicache
452 @ (U = E = B = W = 0, C = 1) or when write allocate is enabled,
453 @ and we have a writeable, cacheable region. If we ignore the
454 @ U and E bits, we can allow user space to use the minicache as
455 @ well.
456 @
457 @ X = (C & ~W & ~B) | (C & W & B & write_allocate)
458 @
459 eor ip, r1, #L_PTE_CACHEABLE
460 tst ip, #L_PTE_CACHEABLE | L_PTE_WRITE | L_PTE_BUFFERABLE
461#if PTE_CACHE_WRITE_ALLOCATE
462 eorne ip, r1, #L_PTE_CACHEABLE | L_PTE_WRITE | L_PTE_BUFFERABLE
463 tstne ip, #L_PTE_CACHEABLE | L_PTE_WRITE | L_PTE_BUFFERABLE
464#endif
465 orreq r2, r2, #PTE_EXT_TEX(1)
466 453
467 @ 454 @
468 @ Erratum 40: The B bit must be cleared for a user read-only 455 @ Erratum 40: must set memory to write-through for user read-only pages
469 @ cacheable page.
470 @
471 @ B = B & ~(U & C & ~W)
472 @ 456 @
473 and ip, r1, #L_PTE_USER | L_PTE_WRITE | L_PTE_CACHEABLE 457 and ip, r1, #(L_PTE_MT_MASK | L_PTE_USER | L_PTE_WRITE) & ~(4 << 2)
474 teq ip, #L_PTE_USER | L_PTE_CACHEABLE 458 teq ip, #L_PTE_MT_WRITEBACK | L_PTE_USER
475 biceq r2, r2, #PTE_BUFFERABLE
476 459
477 tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ Present and Young? 460 moveq r1, #L_PTE_MT_WRITETHROUGH
478 movne r2, #0 @ no -> fault 461 and r1, r1, #L_PTE_MT_MASK
462 adr ip, cpu_xscale_mt_table
463 ldr ip, [ip, r1]
464 bic r2, r2, #0x0c
465 orr r2, r2, ip
479 466
480 str r2, [r0] @ hardware version 467 xscale_set_pte_ext_epilogue
481 mov ip, #0
482 mcr p15, 0, r0, c7, c10, 1 @ Clean D cache line
483 mcr p15, 0, ip, c7, c10, 4 @ Drain Write (& Fill) Buffer
484 mov pc, lr 468 mov pc, lr
485 469
486 470
diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S
index b56dda8052f7..24ba5109f2e7 100644
--- a/arch/arm/mm/tlb-v7.S
+++ b/arch/arm/mm/tlb-v7.S
@@ -51,6 +51,7 @@ ENTRY(v7wbi_flush_user_tlb_range)
51 mcr p15, 0, ip, c7, c5, 6 @ flush BTAC/BTB 51 mcr p15, 0, ip, c7, c5, 6 @ flush BTAC/BTB
52 dsb 52 dsb
53 mov pc, lr 53 mov pc, lr
54ENDPROC(v7wbi_flush_user_tlb_range)
54 55
55/* 56/*
56 * v7wbi_flush_kern_tlb_range(start,end) 57 * v7wbi_flush_kern_tlb_range(start,end)
@@ -77,6 +78,7 @@ ENTRY(v7wbi_flush_kern_tlb_range)
77 dsb 78 dsb
78 isb 79 isb
79 mov pc, lr 80 mov pc, lr
81ENDPROC(v7wbi_flush_kern_tlb_range)
80 82
81 .section ".text.init", #alloc, #execinstr 83 .section ".text.init", #alloc, #execinstr
82 84
diff --git a/arch/arm/nwfpe/fpa11_cpdt.c b/arch/arm/nwfpe/fpa11_cpdt.c
index 79f8e67cc6c1..d31c49f953b1 100644
--- a/arch/arm/nwfpe/fpa11_cpdt.c
+++ b/arch/arm/nwfpe/fpa11_cpdt.c
@@ -26,7 +26,7 @@
26#include "fpmodule.h" 26#include "fpmodule.h"
27#include "fpmodule.inl" 27#include "fpmodule.inl"
28 28
29#include <asm/uaccess.h> 29#include <linux/uaccess.h>
30 30
31static inline void loadSingle(const unsigned int Fn, const unsigned int __user *pMem) 31static inline void loadSingle(const unsigned int Fn, const unsigned int __user *pMem)
32{ 32{
diff --git a/arch/arm/oprofile/Makefile b/arch/arm/oprofile/Makefile
index e61d0cc520b7..88e31f549f50 100644
--- a/arch/arm/oprofile/Makefile
+++ b/arch/arm/oprofile/Makefile
@@ -11,3 +11,4 @@ oprofile-$(CONFIG_CPU_XSCALE) += op_model_xscale.o
11oprofile-$(CONFIG_OPROFILE_ARM11_CORE) += op_model_arm11_core.o 11oprofile-$(CONFIG_OPROFILE_ARM11_CORE) += op_model_arm11_core.o
12oprofile-$(CONFIG_OPROFILE_ARMV6) += op_model_v6.o 12oprofile-$(CONFIG_OPROFILE_ARMV6) += op_model_v6.o
13oprofile-$(CONFIG_OPROFILE_MPCORE) += op_model_mpcore.o 13oprofile-$(CONFIG_OPROFILE_MPCORE) += op_model_mpcore.o
14oprofile-$(CONFIG_OPROFILE_ARMV7) += op_model_v7.o
diff --git a/arch/arm/oprofile/backtrace.c b/arch/arm/oprofile/backtrace.c
index f5ebf30151fa..cefc21c2eee4 100644
--- a/arch/arm/oprofile/backtrace.c
+++ b/arch/arm/oprofile/backtrace.c
@@ -16,8 +16,8 @@
16#include <linux/oprofile.h> 16#include <linux/oprofile.h>
17#include <linux/sched.h> 17#include <linux/sched.h>
18#include <linux/mm.h> 18#include <linux/mm.h>
19#include <linux/uaccess.h>
19#include <asm/ptrace.h> 20#include <asm/ptrace.h>
20#include <asm/uaccess.h>
21 21
22#include "../kernel/stacktrace.h" 22#include "../kernel/stacktrace.h"
23 23
diff --git a/arch/arm/oprofile/common.c b/arch/arm/oprofile/common.c
index 0a5cf3a6438b..3fcd752d6146 100644
--- a/arch/arm/oprofile/common.c
+++ b/arch/arm/oprofile/common.c
@@ -145,6 +145,10 @@ int __init oprofile_arch_init(struct oprofile_operations *ops)
145 spec = &op_mpcore_spec; 145 spec = &op_mpcore_spec;
146#endif 146#endif
147 147
148#ifdef CONFIG_OPROFILE_ARMV7
149 spec = &op_armv7_spec;
150#endif
151
148 if (spec) { 152 if (spec) {
149 ret = spec->init(); 153 ret = spec->init();
150 if (ret < 0) 154 if (ret < 0)
diff --git a/arch/arm/oprofile/op_arm_model.h b/arch/arm/oprofile/op_arm_model.h
index 4899c629aa03..8c4e4f6a1de3 100644
--- a/arch/arm/oprofile/op_arm_model.h
+++ b/arch/arm/oprofile/op_arm_model.h
@@ -26,6 +26,7 @@ extern struct op_arm_model_spec op_xscale_spec;
26 26
27extern struct op_arm_model_spec op_armv6_spec; 27extern struct op_arm_model_spec op_armv6_spec;
28extern struct op_arm_model_spec op_mpcore_spec; 28extern struct op_arm_model_spec op_mpcore_spec;
29extern struct op_arm_model_spec op_armv7_spec;
29 30
30extern void arm_backtrace(struct pt_regs * const regs, unsigned int depth); 31extern void arm_backtrace(struct pt_regs * const regs, unsigned int depth);
31 32
diff --git a/arch/arm/oprofile/op_model_mpcore.c b/arch/arm/oprofile/op_model_mpcore.c
index 92db6e035c65..4de366e8b4c5 100644
--- a/arch/arm/oprofile/op_model_mpcore.c
+++ b/arch/arm/oprofile/op_model_mpcore.c
@@ -36,8 +36,8 @@
36#include <linux/oprofile.h> 36#include <linux/oprofile.h>
37#include <linux/interrupt.h> 37#include <linux/interrupt.h>
38#include <linux/smp.h> 38#include <linux/smp.h>
39#include <linux/io.h>
39 40
40#include <asm/io.h>
41#include <asm/irq.h> 41#include <asm/irq.h>
42#include <asm/mach/irq.h> 42#include <asm/mach/irq.h>
43#include <mach/hardware.h> 43#include <mach/hardware.h>
diff --git a/arch/arm/oprofile/op_model_v7.c b/arch/arm/oprofile/op_model_v7.c
new file mode 100644
index 000000000000..f20295f14adb
--- /dev/null
+++ b/arch/arm/oprofile/op_model_v7.c
@@ -0,0 +1,411 @@
1/**
2 * op_model_v7.c
3 * ARM V7 (Cortex A8) Event Monitor Driver
4 *
5 * Copyright 2008 Jean Pihet <jpihet@mvista.com>
6 * Copyright 2004 ARM SMP Development Team
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12#include <linux/types.h>
13#include <linux/errno.h>
14#include <linux/oprofile.h>
15#include <linux/interrupt.h>
16#include <linux/irq.h>
17#include <linux/smp.h>
18
19#include "op_counter.h"
20#include "op_arm_model.h"
21#include "op_model_v7.h"
22
23/* #define DEBUG */
24
25
26/*
27 * ARM V7 PMNC support
28 */
29
30static u32 cnt_en[CNTMAX];
31
32static inline void armv7_pmnc_write(u32 val)
33{
34 val &= PMNC_MASK;
35 asm volatile("mcr p15, 0, %0, c9, c12, 0" : : "r" (val));
36}
37
38static inline u32 armv7_pmnc_read(void)
39{
40 u32 val;
41
42 asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r" (val));
43 return val;
44}
45
46static inline u32 armv7_pmnc_enable_counter(unsigned int cnt)
47{
48 u32 val;
49
50 if (cnt >= CNTMAX) {
51 printk(KERN_ERR "oprofile: CPU%u enabling wrong PMNC counter"
52 " %d\n", smp_processor_id(), cnt);
53 return -1;
54 }
55
56 if (cnt == CCNT)
57 val = CNTENS_C;
58 else
59 val = (1 << (cnt - CNT0));
60
61 val &= CNTENS_MASK;
62 asm volatile("mcr p15, 0, %0, c9, c12, 1" : : "r" (val));
63
64 return cnt;
65}
66
67static inline u32 armv7_pmnc_disable_counter(unsigned int cnt)
68{
69 u32 val;
70
71 if (cnt >= CNTMAX) {
72 printk(KERN_ERR "oprofile: CPU%u disabling wrong PMNC counter"
73 " %d\n", smp_processor_id(), cnt);
74 return -1;
75 }
76
77 if (cnt == CCNT)
78 val = CNTENC_C;
79 else
80 val = (1 << (cnt - CNT0));
81
82 val &= CNTENC_MASK;
83 asm volatile("mcr p15, 0, %0, c9, c12, 2" : : "r" (val));
84
85 return cnt;
86}
87
88static inline u32 armv7_pmnc_enable_intens(unsigned int cnt)
89{
90 u32 val;
91
92 if (cnt >= CNTMAX) {
93 printk(KERN_ERR "oprofile: CPU%u enabling wrong PMNC counter"
94 " interrupt enable %d\n", smp_processor_id(), cnt);
95 return -1;
96 }
97
98 if (cnt == CCNT)
99 val = INTENS_C;
100 else
101 val = (1 << (cnt - CNT0));
102
103 val &= INTENS_MASK;
104 asm volatile("mcr p15, 0, %0, c9, c14, 1" : : "r" (val));
105
106 return cnt;
107}
108
109static inline u32 armv7_pmnc_getreset_flags(void)
110{
111 u32 val;
112
113 /* Read */
114 asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val));
115
116 /* Write to clear flags */
117 val &= FLAG_MASK;
118 asm volatile("mcr p15, 0, %0, c9, c12, 3" : : "r" (val));
119
120 return val;
121}
122
123static inline int armv7_pmnc_select_counter(unsigned int cnt)
124{
125 u32 val;
126
127 if ((cnt == CCNT) || (cnt >= CNTMAX)) {
128 printk(KERN_ERR "oprofile: CPU%u selecting wrong PMNC counteri"
129 " %d\n", smp_processor_id(), cnt);
130 return -1;
131 }
132
133 val = (cnt - CNT0) & SELECT_MASK;
134 asm volatile("mcr p15, 0, %0, c9, c12, 5" : : "r" (val));
135
136 return cnt;
137}
138
139static inline void armv7_pmnc_write_evtsel(unsigned int cnt, u32 val)
140{
141 if (armv7_pmnc_select_counter(cnt) == cnt) {
142 val &= EVTSEL_MASK;
143 asm volatile("mcr p15, 0, %0, c9, c13, 1" : : "r" (val));
144 }
145}
146
147static void armv7_pmnc_reset_counter(unsigned int cnt)
148{
149 u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt);
150 u32 val = -(u32)counter_config[cpu_cnt].count;
151
152 switch (cnt) {
153 case CCNT:
154 armv7_pmnc_disable_counter(cnt);
155
156 asm volatile("mcr p15, 0, %0, c9, c13, 0" : : "r" (val));
157
158 if (cnt_en[cnt] != 0)
159 armv7_pmnc_enable_counter(cnt);
160
161 break;
162
163 case CNT0:
164 case CNT1:
165 case CNT2:
166 case CNT3:
167 armv7_pmnc_disable_counter(cnt);
168
169 if (armv7_pmnc_select_counter(cnt) == cnt)
170 asm volatile("mcr p15, 0, %0, c9, c13, 2" : : "r" (val));
171
172 if (cnt_en[cnt] != 0)
173 armv7_pmnc_enable_counter(cnt);
174
175 break;
176
177 default:
178 printk(KERN_ERR "oprofile: CPU%u resetting wrong PMNC counter"
179 " %d\n", smp_processor_id(), cnt);
180 break;
181 }
182}
183
184int armv7_setup_pmnc(void)
185{
186 unsigned int cnt;
187
188 if (armv7_pmnc_read() & PMNC_E) {
189 printk(KERN_ERR "oprofile: CPU%u PMNC still enabled when setup"
190 " new event counter.\n", smp_processor_id());
191 return -EBUSY;
192 }
193
194 /*
195 * Initialize & Reset PMNC: C bit, D bit and P bit.
196 * Note: Using a slower count for CCNT (D bit: divide by 64) results
197 * in a more stable system
198 */
199 armv7_pmnc_write(PMNC_P | PMNC_C | PMNC_D);
200
201
202 for (cnt = CCNT; cnt < CNTMAX; cnt++) {
203 unsigned long event;
204 u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt);
205
206 /*
207 * Disable counter
208 */
209 armv7_pmnc_disable_counter(cnt);
210 cnt_en[cnt] = 0;
211
212 if (!counter_config[cpu_cnt].enabled)
213 continue;
214
215 event = counter_config[cpu_cnt].event & 255;
216
217 /*
218 * Set event (if destined for PMNx counters)
219 * We don't need to set the event if it's a cycle count
220 */
221 if (cnt != CCNT)
222 armv7_pmnc_write_evtsel(cnt, event);
223
224 /*
225 * Enable interrupt for this counter
226 */
227 armv7_pmnc_enable_intens(cnt);
228
229 /*
230 * Reset counter
231 */
232 armv7_pmnc_reset_counter(cnt);
233
234 /*
235 * Enable counter
236 */
237 armv7_pmnc_enable_counter(cnt);
238 cnt_en[cnt] = 1;
239 }
240
241 return 0;
242}
243
244static inline void armv7_start_pmnc(void)
245{
246 armv7_pmnc_write(armv7_pmnc_read() | PMNC_E);
247}
248
249static inline void armv7_stop_pmnc(void)
250{
251 armv7_pmnc_write(armv7_pmnc_read() & ~PMNC_E);
252}
253
254/*
255 * CPU counters' IRQ handler (one IRQ per CPU)
256 */
257static irqreturn_t armv7_pmnc_interrupt(int irq, void *arg)
258{
259 struct pt_regs *regs = get_irq_regs();
260 unsigned int cnt;
261 u32 flags;
262
263
264 /*
265 * Stop IRQ generation
266 */
267 armv7_stop_pmnc();
268
269 /*
270 * Get and reset overflow status flags
271 */
272 flags = armv7_pmnc_getreset_flags();
273
274 /*
275 * Cycle counter
276 */
277 if (flags & FLAG_C) {
278 u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), CCNT);
279 armv7_pmnc_reset_counter(CCNT);
280 oprofile_add_sample(regs, cpu_cnt);
281 }
282
283 /*
284 * PMNC counters 0:3
285 */
286 for (cnt = CNT0; cnt < CNTMAX; cnt++) {
287 if (flags & (1 << (cnt - CNT0))) {
288 u32 cpu_cnt = CPU_COUNTER(smp_processor_id(), cnt);
289 armv7_pmnc_reset_counter(cnt);
290 oprofile_add_sample(regs, cpu_cnt);
291 }
292 }
293
294 /*
295 * Allow IRQ generation
296 */
297 armv7_start_pmnc();
298
299 return IRQ_HANDLED;
300}
301
302int armv7_request_interrupts(int *irqs, int nr)
303{
304 unsigned int i;
305 int ret = 0;
306
307 for (i = 0; i < nr; i++) {
308 ret = request_irq(irqs[i], armv7_pmnc_interrupt,
309 IRQF_DISABLED, "CP15 PMNC", NULL);
310 if (ret != 0) {
311 printk(KERN_ERR "oprofile: unable to request IRQ%u"
312 " for ARMv7\n",
313 irqs[i]);
314 break;
315 }
316 }
317
318 if (i != nr)
319 while (i-- != 0)
320 free_irq(irqs[i], NULL);
321
322 return ret;
323}
324
325void armv7_release_interrupts(int *irqs, int nr)
326{
327 unsigned int i;
328
329 for (i = 0; i < nr; i++)
330 free_irq(irqs[i], NULL);
331}
332
333#ifdef DEBUG
334static void armv7_pmnc_dump_regs(void)
335{
336 u32 val;
337 unsigned int cnt;
338
339 printk(KERN_INFO "PMNC registers dump:\n");
340
341 asm volatile("mrc p15, 0, %0, c9, c12, 0" : "=r" (val));
342 printk(KERN_INFO "PMNC =0x%08x\n", val);
343
344 asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r" (val));
345 printk(KERN_INFO "CNTENS=0x%08x\n", val);
346
347 asm volatile("mrc p15, 0, %0, c9, c14, 1" : "=r" (val));
348 printk(KERN_INFO "INTENS=0x%08x\n", val);
349
350 asm volatile("mrc p15, 0, %0, c9, c12, 3" : "=r" (val));
351 printk(KERN_INFO "FLAGS =0x%08x\n", val);
352
353 asm volatile("mrc p15, 0, %0, c9, c12, 5" : "=r" (val));
354 printk(KERN_INFO "SELECT=0x%08x\n", val);
355
356 asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r" (val));
357 printk(KERN_INFO "CCNT =0x%08x\n", val);
358
359 for (cnt = CNT0; cnt < CNTMAX; cnt++) {
360 armv7_pmnc_select_counter(cnt);
361 asm volatile("mrc p15, 0, %0, c9, c13, 2" : "=r" (val));
362 printk(KERN_INFO "CNT[%d] count =0x%08x\n", cnt-CNT0, val);
363 asm volatile("mrc p15, 0, %0, c9, c13, 1" : "=r" (val));
364 printk(KERN_INFO "CNT[%d] evtsel=0x%08x\n", cnt-CNT0, val);
365 }
366}
367#endif
368
369
370static int irqs[] = {
371#ifdef CONFIG_ARCH_OMAP3
372 INT_34XX_BENCH_MPU_EMUL,
373#endif
374};
375
376static void armv7_pmnc_stop(void)
377{
378#ifdef DEBUG
379 armv7_pmnc_dump_regs();
380#endif
381 armv7_stop_pmnc();
382 armv7_release_interrupts(irqs, ARRAY_SIZE(irqs));
383}
384
385static int armv7_pmnc_start(void)
386{
387 int ret;
388
389#ifdef DEBUG
390 armv7_pmnc_dump_regs();
391#endif
392 ret = armv7_request_interrupts(irqs, ARRAY_SIZE(irqs));
393 if (ret >= 0)
394 armv7_start_pmnc();
395
396 return ret;
397}
398
399static int armv7_detect_pmnc(void)
400{
401 return 0;
402}
403
404struct op_arm_model_spec op_armv7_spec = {
405 .init = armv7_detect_pmnc,
406 .num_counters = 5,
407 .setup_ctrs = armv7_setup_pmnc,
408 .start = armv7_pmnc_start,
409 .stop = armv7_pmnc_stop,
410 .name = "arm/armv7",
411};
diff --git a/arch/arm/oprofile/op_model_v7.h b/arch/arm/oprofile/op_model_v7.h
new file mode 100644
index 000000000000..0e19bcc2e100
--- /dev/null
+++ b/arch/arm/oprofile/op_model_v7.h
@@ -0,0 +1,103 @@
1/**
2 * op_model_v7.h
3 * ARM v7 (Cortex A8) Event Monitor Driver
4 *
5 * Copyright 2008 Jean Pihet <jpihet@mvista.com>
6 * Copyright 2004 ARM SMP Development Team
7 * Copyright 2000-2004 Deepak Saxena <dsaxena@mvista.com>
8 * Copyright 2000-2004 MontaVista Software Inc
9 * Copyright 2004 Dave Jiang <dave.jiang@intel.com>
10 * Copyright 2004 Intel Corporation
11 * Copyright 2004 Zwane Mwaikambo <zwane@arm.linux.org.uk>
12 * Copyright 2004 Oprofile Authors
13 *
14 * Read the file COPYING
15 *
16 * This program is free software; you can redistribute it and/or modify
17 * it under the terms of the GNU General Public License version 2 as
18 * published by the Free Software Foundation.
19 */
20#ifndef OP_MODEL_V7_H
21#define OP_MODEL_V7_H
22
23/*
24 * Per-CPU PMNC: config reg
25 */
26#define PMNC_E (1 << 0) /* Enable all counters */
27#define PMNC_P (1 << 1) /* Reset all counters */
28#define PMNC_C (1 << 2) /* Cycle counter reset */
29#define PMNC_D (1 << 3) /* CCNT counts every 64th cpu cycle */
30#define PMNC_X (1 << 4) /* Export to ETM */
31#define PMNC_DP (1 << 5) /* Disable CCNT if non-invasive debug*/
32#define PMNC_MASK 0x3f /* Mask for writable bits */
33
34/*
35 * Available counters
36 */
37#define CCNT 0
38#define CNT0 1
39#define CNT1 2
40#define CNT2 3
41#define CNT3 4
42#define CNTMAX 5
43
44#define CPU_COUNTER(cpu, counter) ((cpu) * CNTMAX + (counter))
45
46/*
47 * CNTENS: counters enable reg
48 */
49#define CNTENS_P0 (1 << 0)
50#define CNTENS_P1 (1 << 1)
51#define CNTENS_P2 (1 << 2)
52#define CNTENS_P3 (1 << 3)
53#define CNTENS_C (1 << 31)
54#define CNTENS_MASK 0x8000000f /* Mask for writable bits */
55
56/*
57 * CNTENC: counters disable reg
58 */
59#define CNTENC_P0 (1 << 0)
60#define CNTENC_P1 (1 << 1)
61#define CNTENC_P2 (1 << 2)
62#define CNTENC_P3 (1 << 3)
63#define CNTENC_C (1 << 31)
64#define CNTENC_MASK 0x8000000f /* Mask for writable bits */
65
66/*
67 * INTENS: counters overflow interrupt enable reg
68 */
69#define INTENS_P0 (1 << 0)
70#define INTENS_P1 (1 << 1)
71#define INTENS_P2 (1 << 2)
72#define INTENS_P3 (1 << 3)
73#define INTENS_C (1 << 31)
74#define INTENS_MASK 0x8000000f /* Mask for writable bits */
75
76/*
77 * EVTSEL: Event selection reg
78 */
79#define EVTSEL_MASK 0x7f /* Mask for writable bits */
80
81/*
82 * SELECT: Counter selection reg
83 */
84#define SELECT_MASK 0x1f /* Mask for writable bits */
85
86/*
87 * FLAG: counters overflow flag status reg
88 */
89#define FLAG_P0 (1 << 0)
90#define FLAG_P1 (1 << 1)
91#define FLAG_P2 (1 << 2)
92#define FLAG_P3 (1 << 3)
93#define FLAG_C (1 << 31)
94#define FLAG_MASK 0x8000000f /* Mask for writable bits */
95
96
97int armv7_setup_pmu(void);
98int armv7_start_pmu(void);
99int armv7_stop_pmu(void);
100int armv7_request_interrupts(int *, int);
101void armv7_release_interrupts(int *, int);
102
103#endif
diff --git a/arch/arm/oprofile/op_model_xscale.c b/arch/arm/oprofile/op_model_xscale.c
index 7c3289c2acd7..724ab9ce2526 100644
--- a/arch/arm/oprofile/op_model_xscale.c
+++ b/arch/arm/oprofile/op_model_xscale.c
@@ -22,7 +22,7 @@
22#include <linux/interrupt.h> 22#include <linux/interrupt.h>
23#include <linux/irq.h> 23#include <linux/irq.h>
24 24
25#include <asm/system.h> 25#include <asm/cputype.h>
26 26
27#include "op_counter.h" 27#include "op_counter.h"
28#include "op_arm_model.h" 28#include "op_arm_model.h"
diff --git a/arch/arm/plat-iop/i2c.c b/arch/arm/plat-iop/i2c.c
index 6dcbcc4ad419..4efe392859ee 100644
--- a/arch/arm/plat-iop/i2c.c
+++ b/arch/arm/plat-iop/i2c.c
@@ -18,7 +18,7 @@
18#include <linux/serial.h> 18#include <linux/serial.h>
19#include <linux/tty.h> 19#include <linux/tty.h>
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <asm/pgtable.h> 22#include <asm/pgtable.h>
23#include <asm/page.h> 23#include <asm/page.h>
24#include <asm/mach/map.h> 24#include <asm/mach/map.h>
diff --git a/arch/arm/plat-iop/io.c b/arch/arm/plat-iop/io.c
index 39dcfb4bdc71..ed0bbece0d61 100644
--- a/arch/arm/plat-iop/io.c
+++ b/arch/arm/plat-iop/io.c
@@ -18,8 +18,8 @@
18 */ 18 */
19#include <linux/kernel.h> 19#include <linux/kernel.h>
20#include <linux/module.h> 20#include <linux/module.h>
21#include <linux/io.h>
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/io.h>
23 23
24void * __iomem __iop3xx_ioremap(unsigned long cookie, size_t size, 24void * __iomem __iop3xx_ioremap(unsigned long cookie, size_t size,
25 unsigned int mtype) 25 unsigned int mtype)
diff --git a/arch/arm/plat-iop/pci.c b/arch/arm/plat-iop/pci.c
index 54708bf9cb15..77fa7cc7d162 100644
--- a/arch/arm/plat-iop/pci.c
+++ b/arch/arm/plat-iop/pci.c
@@ -17,7 +17,7 @@
17#include <linux/mm.h> 17#include <linux/mm.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/ioport.h> 19#include <linux/ioport.h>
20#include <asm/io.h> 20#include <linux/io.h>
21#include <asm/irq.h> 21#include <asm/irq.h>
22#include <asm/signal.h> 22#include <asm/signal.h>
23#include <asm/system.h> 23#include <asm/system.h>
diff --git a/arch/arm/plat-iop/time.c b/arch/arm/plat-iop/time.c
index c53fefb6aac4..3695bbe3ee28 100644
--- a/arch/arm/plat-iop/time.c
+++ b/arch/arm/plat-iop/time.c
@@ -18,8 +18,8 @@
18#include <linux/time.h> 18#include <linux/time.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/timex.h> 20#include <linux/timex.h>
21#include <linux/io.h>
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/io.h>
23#include <asm/irq.h> 23#include <asm/irq.h>
24#include <asm/uaccess.h> 24#include <asm/uaccess.h>
25#include <asm/mach/irq.h> 25#include <asm/mach/irq.h>
diff --git a/arch/arm/plat-mxc/Kconfig b/arch/arm/plat-mxc/Kconfig
index e14eaad11dd5..b2a7e3fad117 100644
--- a/arch/arm/plat-mxc/Kconfig
+++ b/arch/arm/plat-mxc/Kconfig
@@ -23,4 +23,15 @@ source "arch/arm/mach-mx3/Kconfig"
23 23
24endmenu 24endmenu
25 25
26config MXC_IRQ_PRIOR
27 bool "Use IRQ priority"
28 depends on ARCH_MXC
29 help
30 Select this if you want to use prioritized IRQ handling.
31 This feature prevents higher priority ISR to be interrupted
32 by lower priority IRQ even IRQF_DISABLED flag is not set.
33 This may be useful in embedded applications, where are strong
34 requirements for timing.
35 Say N here, unless you have a specialized requirement.
36
26endif 37endif
diff --git a/arch/arm/plat-mxc/Makefile b/arch/arm/plat-mxc/Makefile
index db66e9ae8414..067556f7c91f 100644
--- a/arch/arm/plat-mxc/Makefile
+++ b/arch/arm/plat-mxc/Makefile
@@ -3,6 +3,6 @@
3# 3#
4 4
5# Common support 5# Common support
6obj-y := irq.o clock.o gpio.o time.o 6obj-y := irq.o clock.o gpio.o time.o devices.o
7 7
8obj-$(CONFIG_ARCH_MX2) += iomux-mx1-mx2.o 8obj-$(CONFIG_ARCH_MX2) += iomux-mx1-mx2.o dma-mx1-mx2.o
diff --git a/arch/arm/plat-mxc/clock.c b/arch/arm/plat-mxc/clock.c
index 2f8627218839..0a38f0b396eb 100644
--- a/arch/arm/plat-mxc/clock.c
+++ b/arch/arm/plat-mxc/clock.c
@@ -37,7 +37,6 @@
37#include <linux/proc_fs.h> 37#include <linux/proc_fs.h>
38#include <linux/semaphore.h> 38#include <linux/semaphore.h>
39#include <linux/string.h> 39#include <linux/string.h>
40#include <linux/version.h>
41 40
42#include <mach/clock.h> 41#include <mach/clock.h>
43 42
diff --git a/arch/arm/plat-mxc/devices.c b/arch/arm/plat-mxc/devices.c
new file mode 100644
index 000000000000..c66748267c45
--- /dev/null
+++ b/arch/arm/plat-mxc/devices.c
@@ -0,0 +1,36 @@
1/*
2 * Copyright 2008 Sascha Hauer, kernel@pengutronix.de
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 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 51 Franklin Street, Fifth Floor,
16 * Boston, MA 02110-1301, USA.
17 */
18
19#include <linux/kernel.h>
20#include <linux/init.h>
21#include <linux/platform_device.h>
22
23int __init mxc_register_device(struct platform_device *pdev, void *data)
24{
25 int ret;
26
27 pdev->dev.platform_data = data;
28
29 ret = platform_device_register(pdev);
30 if (ret)
31 pr_debug("Unable to register platform device '%s': %d\n",
32 pdev->name, ret);
33
34 return ret;
35}
36
diff --git a/arch/arm/plat-mxc/dma-mx1-mx2.c b/arch/arm/plat-mxc/dma-mx1-mx2.c
new file mode 100644
index 000000000000..b296f19fd89a
--- /dev/null
+++ b/arch/arm/plat-mxc/dma-mx1-mx2.c
@@ -0,0 +1,840 @@
1/*
2 * linux/arch/arm/plat-mxc/dma-mx1-mx2.c
3 *
4 * i.MX DMA registration and IRQ dispatching
5 *
6 * Copyright 2006 Pavel Pisa <pisa@cmp.felk.cvut.cz>
7 * Copyright 2008 Juergen Beisert, <kernel@pengutronix.de>
8 * Copyright 2008 Sascha Hauer, <s.hauer@pengutronix.de>
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22 * MA 02110-1301, USA.
23 */
24
25#include <linux/module.h>
26#include <linux/init.h>
27#include <linux/kernel.h>
28#include <linux/interrupt.h>
29#include <linux/errno.h>
30#include <linux/clk.h>
31#include <linux/scatterlist.h>
32#include <linux/io.h>
33
34#include <asm/system.h>
35#include <asm/irq.h>
36#include <mach/hardware.h>
37#include <asm/dma.h>
38#include <mach/dma-mx1-mx2.h>
39
40#define DMA_DCR 0x00 /* Control Register */
41#define DMA_DISR 0x04 /* Interrupt status Register */
42#define DMA_DIMR 0x08 /* Interrupt mask Register */
43#define DMA_DBTOSR 0x0c /* Burst timeout status Register */
44#define DMA_DRTOSR 0x10 /* Request timeout Register */
45#define DMA_DSESR 0x14 /* Transfer Error Status Register */
46#define DMA_DBOSR 0x18 /* Buffer overflow status Register */
47#define DMA_DBTOCR 0x1c /* Burst timeout control Register */
48#define DMA_WSRA 0x40 /* W-Size Register A */
49#define DMA_XSRA 0x44 /* X-Size Register A */
50#define DMA_YSRA 0x48 /* Y-Size Register A */
51#define DMA_WSRB 0x4c /* W-Size Register B */
52#define DMA_XSRB 0x50 /* X-Size Register B */
53#define DMA_YSRB 0x54 /* Y-Size Register B */
54#define DMA_SAR(x) (0x80 + ((x) << 6)) /* Source Address Registers */
55#define DMA_DAR(x) (0x84 + ((x) << 6)) /* Destination Address Registers */
56#define DMA_CNTR(x) (0x88 + ((x) << 6)) /* Count Registers */
57#define DMA_CCR(x) (0x8c + ((x) << 6)) /* Control Registers */
58#define DMA_RSSR(x) (0x90 + ((x) << 6)) /* Request source select Registers */
59#define DMA_BLR(x) (0x94 + ((x) << 6)) /* Burst length Registers */
60#define DMA_RTOR(x) (0x98 + ((x) << 6)) /* Request timeout Registers */
61#define DMA_BUCR(x) (0x98 + ((x) << 6)) /* Bus Utilization Registers */
62#define DMA_CCNR(x) (0x9C + ((x) << 6)) /* Channel counter Registers */
63
64#define DCR_DRST (1<<1)
65#define DCR_DEN (1<<0)
66#define DBTOCR_EN (1<<15)
67#define DBTOCR_CNT(x) ((x) & 0x7fff)
68#define CNTR_CNT(x) ((x) & 0xffffff)
69#define CCR_ACRPT (1<<14)
70#define CCR_DMOD_LINEAR (0x0 << 12)
71#define CCR_DMOD_2D (0x1 << 12)
72#define CCR_DMOD_FIFO (0x2 << 12)
73#define CCR_DMOD_EOBFIFO (0x3 << 12)
74#define CCR_SMOD_LINEAR (0x0 << 10)
75#define CCR_SMOD_2D (0x1 << 10)
76#define CCR_SMOD_FIFO (0x2 << 10)
77#define CCR_SMOD_EOBFIFO (0x3 << 10)
78#define CCR_MDIR_DEC (1<<9)
79#define CCR_MSEL_B (1<<8)
80#define CCR_DSIZ_32 (0x0 << 6)
81#define CCR_DSIZ_8 (0x1 << 6)
82#define CCR_DSIZ_16 (0x2 << 6)
83#define CCR_SSIZ_32 (0x0 << 4)
84#define CCR_SSIZ_8 (0x1 << 4)
85#define CCR_SSIZ_16 (0x2 << 4)
86#define CCR_REN (1<<3)
87#define CCR_RPT (1<<2)
88#define CCR_FRC (1<<1)
89#define CCR_CEN (1<<0)
90#define RTOR_EN (1<<15)
91#define RTOR_CLK (1<<14)
92#define RTOR_PSC (1<<13)
93
94/*
95 * struct imx_dma_channel - i.MX specific DMA extension
96 * @name: name specified by DMA client
97 * @irq_handler: client callback for end of transfer
98 * @err_handler: client callback for error condition
99 * @data: clients context data for callbacks
100 * @dma_mode: direction of the transfer %DMA_MODE_READ or %DMA_MODE_WRITE
101 * @sg: pointer to the actual read/written chunk for scatter-gather emulation
102 * @resbytes: total residual number of bytes to transfer
103 * (it can be lower or same as sum of SG mapped chunk sizes)
104 * @sgcount: number of chunks to be read/written
105 *
106 * Structure is used for IMX DMA processing. It would be probably good
107 * @struct dma_struct in the future for external interfacing and use
108 * @struct imx_dma_channel only as extension to it.
109 */
110
111struct imx_dma_channel {
112 const char *name;
113 void (*irq_handler) (int, void *);
114 void (*err_handler) (int, void *, int errcode);
115 void (*prog_handler) (int, void *, struct scatterlist *);
116 void *data;
117 dmamode_t dma_mode;
118 struct scatterlist *sg;
119 unsigned int resbytes;
120 int dma_num;
121
122 int in_use;
123
124 u32 ccr_from_device;
125 u32 ccr_to_device;
126
127 struct timer_list watchdog;
128
129 int hw_chaining;
130};
131
132static struct imx_dma_channel imx_dma_channels[IMX_DMA_CHANNELS];
133
134static struct clk *dma_clk;
135
136static int imx_dma_hw_chain(struct imx_dma_channel *imxdma)
137{
138 if (cpu_is_mx27())
139 return imxdma->hw_chaining;
140 else
141 return 0;
142}
143
144
145/*
146 * imx_dma_sg_next - prepare next chunk for scatter-gather DMA emulation
147 */
148static inline int imx_dma_sg_next(int channel, struct scatterlist *sg)
149{
150 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
151 unsigned long now;
152
153 if (!imxdma->name) {
154 printk(KERN_CRIT "%s: called for not allocated channel %d\n",
155 __func__, channel);
156 return 0;
157 }
158
159 now = min(imxdma->resbytes, sg->length);
160 imxdma->resbytes -= now;
161
162 if ((imxdma->dma_mode & DMA_MODE_MASK) == DMA_MODE_READ)
163 __raw_writel(sg->dma_address, DMA_BASE + DMA_DAR(channel));
164 else
165 __raw_writel(sg->dma_address, DMA_BASE + DMA_SAR(channel));
166
167 __raw_writel(now, DMA_BASE + DMA_CNTR(channel));
168
169 pr_debug("imxdma%d: next sg chunk dst 0x%08x, src 0x%08x, "
170 "size 0x%08x\n", channel,
171 __raw_readl(DMA_BASE + DMA_DAR(channel)),
172 __raw_readl(DMA_BASE + DMA_SAR(channel)),
173 __raw_readl(DMA_BASE + DMA_CNTR(channel)));
174
175 return now;
176}
177
178/**
179 * imx_dma_setup_single - setup i.MX DMA channel for linear memory to/from
180 * device transfer
181 *
182 * @channel: i.MX DMA channel number
183 * @dma_address: the DMA/physical memory address of the linear data block
184 * to transfer
185 * @dma_length: length of the data block in bytes
186 * @dev_addr: physical device port address
187 * @dmamode: DMA transfer mode, %DMA_MODE_READ from the device to the memory
188 * or %DMA_MODE_WRITE from memory to the device
189 *
190 * Return value: if incorrect parameters are provided -%EINVAL.
191 * Zero indicates success.
192 */
193int
194imx_dma_setup_single(int channel, dma_addr_t dma_address,
195 unsigned int dma_length, unsigned int dev_addr,
196 dmamode_t dmamode)
197{
198 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
199
200 imxdma->sg = NULL;
201 imxdma->dma_mode = dmamode;
202
203 if (!dma_address) {
204 printk(KERN_ERR "imxdma%d: imx_dma_setup_single null address\n",
205 channel);
206 return -EINVAL;
207 }
208
209 if (!dma_length) {
210 printk(KERN_ERR "imxdma%d: imx_dma_setup_single zero length\n",
211 channel);
212 return -EINVAL;
213 }
214
215 if ((dmamode & DMA_MODE_MASK) == DMA_MODE_READ) {
216 pr_debug("imxdma%d: %s dma_addressg=0x%08x dma_length=%d "
217 "dev_addr=0x%08x for read\n",
218 channel, __func__, (unsigned int)dma_address,
219 dma_length, dev_addr);
220
221 __raw_writel(dev_addr, DMA_BASE + DMA_SAR(channel));
222 __raw_writel(dma_address, DMA_BASE + DMA_DAR(channel));
223 __raw_writel(imxdma->ccr_from_device,
224 DMA_BASE + DMA_CCR(channel));
225 } else if ((dmamode & DMA_MODE_MASK) == DMA_MODE_WRITE) {
226 pr_debug("imxdma%d: %s dma_addressg=0x%08x dma_length=%d "
227 "dev_addr=0x%08x for write\n",
228 channel, __func__, (unsigned int)dma_address,
229 dma_length, dev_addr);
230
231 __raw_writel(dma_address, DMA_BASE + DMA_SAR(channel));
232 __raw_writel(dev_addr, DMA_BASE + DMA_DAR(channel));
233 __raw_writel(imxdma->ccr_to_device,
234 DMA_BASE + DMA_CCR(channel));
235 } else {
236 printk(KERN_ERR "imxdma%d: imx_dma_setup_single bad dmamode\n",
237 channel);
238 return -EINVAL;
239 }
240
241 __raw_writel(dma_length, DMA_BASE + DMA_CNTR(channel));
242
243 return 0;
244}
245EXPORT_SYMBOL(imx_dma_setup_single);
246
247/**
248 * imx_dma_setup_sg - setup i.MX DMA channel SG list to/from device transfer
249 * @channel: i.MX DMA channel number
250 * @sg: pointer to the scatter-gather list/vector
251 * @sgcount: scatter-gather list hungs count
252 * @dma_length: total length of the transfer request in bytes
253 * @dev_addr: physical device port address
254 * @dmamode: DMA transfer mode, %DMA_MODE_READ from the device to the memory
255 * or %DMA_MODE_WRITE from memory to the device
256 *
257 * The function sets up DMA channel state and registers to be ready for
258 * transfer specified by provided parameters. The scatter-gather emulation
259 * is set up according to the parameters.
260 *
261 * The full preparation of the transfer requires setup of more register
262 * by the caller before imx_dma_enable() can be called.
263 *
264 * %BLR(channel) holds transfer burst length in bytes, 0 means 64 bytes
265 *
266 * %RSSR(channel) has to be set to the DMA request line source %DMA_REQ_xxx
267 *
268 * %CCR(channel) has to specify transfer parameters, the next settings is
269 * typical for linear or simple scatter-gather transfers if %DMA_MODE_READ is
270 * specified
271 *
272 * %CCR_DMOD_LINEAR | %CCR_DSIZ_32 | %CCR_SMOD_FIFO | %CCR_SSIZ_x
273 *
274 * The typical setup for %DMA_MODE_WRITE is specified by next options
275 * combination
276 *
277 * %CCR_SMOD_LINEAR | %CCR_SSIZ_32 | %CCR_DMOD_FIFO | %CCR_DSIZ_x
278 *
279 * Be careful here and do not mistakenly mix source and target device
280 * port sizes constants, they are really different:
281 * %CCR_SSIZ_8, %CCR_SSIZ_16, %CCR_SSIZ_32,
282 * %CCR_DSIZ_8, %CCR_DSIZ_16, %CCR_DSIZ_32
283 *
284 * Return value: if incorrect parameters are provided -%EINVAL.
285 * Zero indicates success.
286 */
287int
288imx_dma_setup_sg(int channel,
289 struct scatterlist *sg, unsigned int sgcount,
290 unsigned int dma_length, unsigned int dev_addr,
291 dmamode_t dmamode)
292{
293 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
294
295 if (imxdma->in_use)
296 return -EBUSY;
297
298 imxdma->sg = sg;
299 imxdma->dma_mode = dmamode;
300 imxdma->resbytes = dma_length;
301
302 if (!sg || !sgcount) {
303 printk(KERN_ERR "imxdma%d: imx_dma_setup_sg epty sg list\n",
304 channel);
305 return -EINVAL;
306 }
307
308 if (!sg->length) {
309 printk(KERN_ERR "imxdma%d: imx_dma_setup_sg zero length\n",
310 channel);
311 return -EINVAL;
312 }
313
314 if ((dmamode & DMA_MODE_MASK) == DMA_MODE_READ) {
315 pr_debug("imxdma%d: %s sg=%p sgcount=%d total length=%d "
316 "dev_addr=0x%08x for read\n",
317 channel, __func__, sg, sgcount, dma_length, dev_addr);
318
319 __raw_writel(dev_addr, DMA_BASE + DMA_SAR(channel));
320 __raw_writel(imxdma->ccr_from_device,
321 DMA_BASE + DMA_CCR(channel));
322 } else if ((dmamode & DMA_MODE_MASK) == DMA_MODE_WRITE) {
323 pr_debug("imxdma%d: %s sg=%p sgcount=%d total length=%d "
324 "dev_addr=0x%08x for write\n",
325 channel, __func__, sg, sgcount, dma_length, dev_addr);
326
327 __raw_writel(dev_addr, DMA_BASE + DMA_DAR(channel));
328 __raw_writel(imxdma->ccr_to_device,
329 DMA_BASE + DMA_CCR(channel));
330 } else {
331 printk(KERN_ERR "imxdma%d: imx_dma_setup_sg bad dmamode\n",
332 channel);
333 return -EINVAL;
334 }
335
336 imx_dma_sg_next(channel, sg);
337
338 return 0;
339}
340EXPORT_SYMBOL(imx_dma_setup_sg);
341
342int
343imx_dma_config_channel(int channel, unsigned int config_port,
344 unsigned int config_mem, unsigned int dmareq, int hw_chaining)
345{
346 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
347 u32 dreq = 0;
348
349 imxdma->hw_chaining = 0;
350
351 if (hw_chaining) {
352 imxdma->hw_chaining = 1;
353 if (!imx_dma_hw_chain(imxdma))
354 return -EINVAL;
355 }
356
357 if (dmareq)
358 dreq = CCR_REN;
359
360 imxdma->ccr_from_device = config_port | (config_mem << 2) | dreq;
361 imxdma->ccr_to_device = config_mem | (config_port << 2) | dreq;
362
363 __raw_writel(dmareq, DMA_BASE + DMA_RSSR(channel));
364
365 return 0;
366}
367EXPORT_SYMBOL(imx_dma_config_channel);
368
369void imx_dma_config_burstlen(int channel, unsigned int burstlen)
370{
371 __raw_writel(burstlen, DMA_BASE + DMA_BLR(channel));
372}
373EXPORT_SYMBOL(imx_dma_config_burstlen);
374
375/**
376 * imx_dma_setup_handlers - setup i.MX DMA channel end and error notification
377 * handlers
378 * @channel: i.MX DMA channel number
379 * @irq_handler: the pointer to the function called if the transfer
380 * ends successfully
381 * @err_handler: the pointer to the function called if the premature
382 * end caused by error occurs
383 * @data: user specified value to be passed to the handlers
384 */
385int
386imx_dma_setup_handlers(int channel,
387 void (*irq_handler) (int, void *),
388 void (*err_handler) (int, void *, int),
389 void *data)
390{
391 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
392 unsigned long flags;
393
394 if (!imxdma->name) {
395 printk(KERN_CRIT "%s: called for not allocated channel %d\n",
396 __func__, channel);
397 return -ENODEV;
398 }
399
400 local_irq_save(flags);
401 __raw_writel(1 << channel, DMA_BASE + DMA_DISR);
402 imxdma->irq_handler = irq_handler;
403 imxdma->err_handler = err_handler;
404 imxdma->data = data;
405 local_irq_restore(flags);
406 return 0;
407}
408EXPORT_SYMBOL(imx_dma_setup_handlers);
409
410/**
411 * imx_dma_setup_progression_handler - setup i.MX DMA channel progression
412 * handlers
413 * @channel: i.MX DMA channel number
414 * @prog_handler: the pointer to the function called if the transfer progresses
415 */
416int
417imx_dma_setup_progression_handler(int channel,
418 void (*prog_handler) (int, void*, struct scatterlist*))
419{
420 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
421 unsigned long flags;
422
423 if (!imxdma->name) {
424 printk(KERN_CRIT "%s: called for not allocated channel %d\n",
425 __func__, channel);
426 return -ENODEV;
427 }
428
429 local_irq_save(flags);
430 imxdma->prog_handler = prog_handler;
431 local_irq_restore(flags);
432 return 0;
433}
434EXPORT_SYMBOL(imx_dma_setup_progression_handler);
435
436/**
437 * imx_dma_enable - function to start i.MX DMA channel operation
438 * @channel: i.MX DMA channel number
439 *
440 * The channel has to be allocated by driver through imx_dma_request()
441 * or imx_dma_request_by_prio() function.
442 * The transfer parameters has to be set to the channel registers through
443 * call of the imx_dma_setup_single() or imx_dma_setup_sg() function
444 * and registers %BLR(channel), %RSSR(channel) and %CCR(channel) has to
445 * be set prior this function call by the channel user.
446 */
447void imx_dma_enable(int channel)
448{
449 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
450 unsigned long flags;
451
452 pr_debug("imxdma%d: imx_dma_enable\n", channel);
453
454 if (!imxdma->name) {
455 printk(KERN_CRIT "%s: called for not allocated channel %d\n",
456 __func__, channel);
457 return;
458 }
459
460 if (imxdma->in_use)
461 return;
462
463 local_irq_save(flags);
464
465 __raw_writel(1 << channel, DMA_BASE + DMA_DISR);
466 __raw_writel(__raw_readl(DMA_BASE + DMA_DIMR) & ~(1 << channel),
467 DMA_BASE + DMA_DIMR);
468 __raw_writel(__raw_readl(DMA_BASE + DMA_CCR(channel)) | CCR_CEN |
469 CCR_ACRPT,
470 DMA_BASE + DMA_CCR(channel));
471
472#ifdef CONFIG_ARCH_MX2
473 if (imxdma->sg && imx_dma_hw_chain(imxdma)) {
474 imxdma->sg = sg_next(imxdma->sg);
475 if (imxdma->sg) {
476 u32 tmp;
477 imx_dma_sg_next(channel, imxdma->sg);
478 tmp = __raw_readl(DMA_BASE + DMA_CCR(channel));
479 __raw_writel(tmp | CCR_RPT | CCR_ACRPT,
480 DMA_BASE + DMA_CCR(channel));
481 }
482 }
483#endif
484 imxdma->in_use = 1;
485
486 local_irq_restore(flags);
487}
488EXPORT_SYMBOL(imx_dma_enable);
489
490/**
491 * imx_dma_disable - stop, finish i.MX DMA channel operatin
492 * @channel: i.MX DMA channel number
493 */
494void imx_dma_disable(int channel)
495{
496 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
497 unsigned long flags;
498
499 pr_debug("imxdma%d: imx_dma_disable\n", channel);
500
501 if (imx_dma_hw_chain(imxdma))
502 del_timer(&imxdma->watchdog);
503
504 local_irq_save(flags);
505 __raw_writel(__raw_readl(DMA_BASE + DMA_DIMR) | (1 << channel),
506 DMA_BASE + DMA_DIMR);
507 __raw_writel(__raw_readl(DMA_BASE + DMA_CCR(channel)) & ~CCR_CEN,
508 DMA_BASE + DMA_CCR(channel));
509 __raw_writel(1 << channel, DMA_BASE + DMA_DISR);
510 imxdma->in_use = 0;
511 local_irq_restore(flags);
512}
513EXPORT_SYMBOL(imx_dma_disable);
514
515static void imx_dma_watchdog(unsigned long chno)
516{
517 struct imx_dma_channel *imxdma = &imx_dma_channels[chno];
518
519 __raw_writel(0, DMA_BASE + DMA_CCR(chno));
520 imxdma->in_use = 0;
521 imxdma->sg = NULL;
522
523 if (imxdma->err_handler)
524 imxdma->err_handler(chno, imxdma->data, IMX_DMA_ERR_TIMEOUT);
525}
526
527static irqreturn_t dma_err_handler(int irq, void *dev_id)
528{
529 int i, disr;
530 struct imx_dma_channel *imxdma;
531 unsigned int err_mask;
532 int errcode;
533
534 disr = __raw_readl(DMA_BASE + DMA_DISR);
535
536 err_mask = __raw_readl(DMA_BASE + DMA_DBTOSR) |
537 __raw_readl(DMA_BASE + DMA_DRTOSR) |
538 __raw_readl(DMA_BASE + DMA_DSESR) |
539 __raw_readl(DMA_BASE + DMA_DBOSR);
540
541 if (!err_mask)
542 return IRQ_HANDLED;
543
544 __raw_writel(disr & err_mask, DMA_BASE + DMA_DISR);
545
546 for (i = 0; i < IMX_DMA_CHANNELS; i++) {
547 if (!(err_mask & (1 << i)))
548 continue;
549 imxdma = &imx_dma_channels[i];
550 errcode = 0;
551
552 if (__raw_readl(DMA_BASE + DMA_DBTOSR) & (1 << i)) {
553 __raw_writel(1 << i, DMA_BASE + DMA_DBTOSR);
554 errcode |= IMX_DMA_ERR_BURST;
555 }
556 if (__raw_readl(DMA_BASE + DMA_DRTOSR) & (1 << i)) {
557 __raw_writel(1 << i, DMA_BASE + DMA_DRTOSR);
558 errcode |= IMX_DMA_ERR_REQUEST;
559 }
560 if (__raw_readl(DMA_BASE + DMA_DSESR) & (1 << i)) {
561 __raw_writel(1 << i, DMA_BASE + DMA_DSESR);
562 errcode |= IMX_DMA_ERR_TRANSFER;
563 }
564 if (__raw_readl(DMA_BASE + DMA_DBOSR) & (1 << i)) {
565 __raw_writel(1 << i, DMA_BASE + DMA_DBOSR);
566 errcode |= IMX_DMA_ERR_BUFFER;
567 }
568 if (imxdma->name && imxdma->err_handler) {
569 imxdma->err_handler(i, imxdma->data, errcode);
570 continue;
571 }
572
573 imx_dma_channels[i].sg = NULL;
574
575 printk(KERN_WARNING
576 "DMA timeout on channel %d (%s) -%s%s%s%s\n",
577 i, imxdma->name,
578 errcode & IMX_DMA_ERR_BURST ? " burst" : "",
579 errcode & IMX_DMA_ERR_REQUEST ? " request" : "",
580 errcode & IMX_DMA_ERR_TRANSFER ? " transfer" : "",
581 errcode & IMX_DMA_ERR_BUFFER ? " buffer" : "");
582 }
583 return IRQ_HANDLED;
584}
585
586static void dma_irq_handle_channel(int chno)
587{
588 struct imx_dma_channel *imxdma = &imx_dma_channels[chno];
589
590 if (!imxdma->name) {
591 /*
592 * IRQ for an unregistered DMA channel:
593 * let's clear the interrupts and disable it.
594 */
595 printk(KERN_WARNING
596 "spurious IRQ for DMA channel %d\n", chno);
597 return;
598 }
599
600 if (imxdma->sg) {
601 u32 tmp;
602 struct scatterlist *current_sg = imxdma->sg;
603 imxdma->sg = sg_next(imxdma->sg);
604
605 if (imxdma->sg) {
606 imx_dma_sg_next(chno, imxdma->sg);
607
608 tmp = __raw_readl(DMA_BASE + DMA_CCR(chno));
609
610 if (imx_dma_hw_chain(imxdma)) {
611 /* FIXME: The timeout should probably be
612 * configurable
613 */
614 mod_timer(&imxdma->watchdog,
615 jiffies + msecs_to_jiffies(500));
616
617 tmp |= CCR_CEN | CCR_RPT | CCR_ACRPT;
618 __raw_writel(tmp, DMA_BASE +
619 DMA_CCR(chno));
620 } else {
621 __raw_writel(tmp & ~CCR_CEN, DMA_BASE +
622 DMA_CCR(chno));
623 tmp |= CCR_CEN;
624 }
625
626 __raw_writel(tmp, DMA_BASE + DMA_CCR(chno));
627
628 if (imxdma->prog_handler)
629 imxdma->prog_handler(chno, imxdma->data,
630 current_sg);
631
632 return;
633 }
634
635 if (imx_dma_hw_chain(imxdma)) {
636 del_timer(&imxdma->watchdog);
637 return;
638 }
639 }
640
641 __raw_writel(0, DMA_BASE + DMA_CCR(chno));
642 imxdma->in_use = 0;
643 if (imxdma->irq_handler)
644 imxdma->irq_handler(chno, imxdma->data);
645}
646
647static irqreturn_t dma_irq_handler(int irq, void *dev_id)
648{
649 int i, disr;
650
651#ifdef CONFIG_ARCH_MX2
652 dma_err_handler(irq, dev_id);
653#endif
654
655 disr = __raw_readl(DMA_BASE + DMA_DISR);
656
657 pr_debug("imxdma: dma_irq_handler called, disr=0x%08x\n",
658 disr);
659
660 __raw_writel(disr, DMA_BASE + DMA_DISR);
661 for (i = 0; i < IMX_DMA_CHANNELS; i++) {
662 if (disr & (1 << i))
663 dma_irq_handle_channel(i);
664 }
665
666 return IRQ_HANDLED;
667}
668
669/**
670 * imx_dma_request - request/allocate specified channel number
671 * @channel: i.MX DMA channel number
672 * @name: the driver/caller own non-%NULL identification
673 */
674int imx_dma_request(int channel, const char *name)
675{
676 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
677 unsigned long flags;
678 int ret;
679
680 /* basic sanity checks */
681 if (!name)
682 return -EINVAL;
683
684 if (channel >= IMX_DMA_CHANNELS) {
685 printk(KERN_CRIT "%s: called for non-existed channel %d\n",
686 __func__, channel);
687 return -EINVAL;
688 }
689
690 local_irq_save(flags);
691 if (imxdma->name) {
692 local_irq_restore(flags);
693 return -EBUSY;
694 }
695
696#ifdef CONFIG_ARCH_MX2
697 ret = request_irq(MXC_INT_DMACH0 + channel, dma_irq_handler, 0, "DMA",
698 NULL);
699 if (ret) {
700 printk(KERN_CRIT "Can't register IRQ %d for DMA channel %d\n",
701 MXC_INT_DMACH0 + channel, channel);
702 return ret;
703 }
704 init_timer(&imxdma->watchdog);
705 imxdma->watchdog.function = &imx_dma_watchdog;
706 imxdma->watchdog.data = channel;
707#endif
708
709 imxdma->name = name;
710 imxdma->irq_handler = NULL;
711 imxdma->err_handler = NULL;
712 imxdma->data = NULL;
713 imxdma->sg = NULL;
714
715 local_irq_restore(flags);
716 return 0;
717}
718EXPORT_SYMBOL(imx_dma_request);
719
720/**
721 * imx_dma_free - release previously acquired channel
722 * @channel: i.MX DMA channel number
723 */
724void imx_dma_free(int channel)
725{
726 unsigned long flags;
727 struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
728
729 if (!imxdma->name) {
730 printk(KERN_CRIT
731 "%s: trying to free free channel %d\n",
732 __func__, channel);
733 return;
734 }
735
736 local_irq_save(flags);
737 /* Disable interrupts */
738 __raw_writel(__raw_readl(DMA_BASE + DMA_DIMR) | (1 << channel),
739 DMA_BASE + DMA_DIMR);
740 __raw_writel(__raw_readl(DMA_BASE + DMA_CCR(channel)) & ~CCR_CEN,
741 DMA_BASE + DMA_CCR(channel));
742 imxdma->name = NULL;
743
744#ifdef CONFIG_ARCH_MX2
745 free_irq(MXC_INT_DMACH0 + channel, NULL);
746#endif
747
748 local_irq_restore(flags);
749}
750EXPORT_SYMBOL(imx_dma_free);
751
752/**
753 * imx_dma_request_by_prio - find and request some of free channels best
754 * suiting requested priority
755 * @channel: i.MX DMA channel number
756 * @name: the driver/caller own non-%NULL identification
757 *
758 * This function tries to find a free channel in the specified priority group
759 * This function tries to find a free channel in the specified priority group
760 * if the priority cannot be achieved it tries to look for free channel
761 * in the higher and then even lower priority groups.
762 *
763 * Return value: If there is no free channel to allocate, -%ENODEV is returned.
764 * On successful allocation channel is returned.
765 */
766int imx_dma_request_by_prio(const char *name, enum imx_dma_prio prio)
767{
768 int i;
769 int best;
770
771 switch (prio) {
772 case (DMA_PRIO_HIGH):
773 best = 8;
774 break;
775 case (DMA_PRIO_MEDIUM):
776 best = 4;
777 break;
778 case (DMA_PRIO_LOW):
779 default:
780 best = 0;
781 break;
782 }
783
784 for (i = best; i < IMX_DMA_CHANNELS; i++)
785 if (!imx_dma_request(i, name))
786 return i;
787
788 for (i = best - 1; i >= 0; i--)
789 if (!imx_dma_request(i, name))
790 return i;
791
792 printk(KERN_ERR "%s: no free DMA channel found\n", __func__);
793
794 return -ENODEV;
795}
796EXPORT_SYMBOL(imx_dma_request_by_prio);
797
798static int __init imx_dma_init(void)
799{
800 int ret = 0;
801 int i;
802
803 dma_clk = clk_get(NULL, "dma_clk");
804 clk_enable(dma_clk);
805
806 /* reset DMA module */
807 __raw_writel(DCR_DRST, DMA_BASE + DMA_DCR);
808
809#ifdef CONFIG_ARCH_MX1
810 ret = request_irq(DMA_INT, dma_irq_handler, 0, "DMA", NULL);
811 if (ret) {
812 printk(KERN_CRIT "Wow! Can't register IRQ for DMA\n");
813 return ret;
814 }
815
816 ret = request_irq(DMA_ERR, dma_err_handler, 0, "DMA", NULL);
817 if (ret) {
818 printk(KERN_CRIT "Wow! Can't register ERRIRQ for DMA\n");
819 free_irq(DMA_INT, NULL);
820 return ret;
821 }
822#endif
823 /* enable DMA module */
824 __raw_writel(DCR_DEN, DMA_BASE + DMA_DCR);
825
826 /* clear all interrupts */
827 __raw_writel((1 << IMX_DMA_CHANNELS) - 1, DMA_BASE + DMA_DISR);
828
829 /* disable interrupts */
830 __raw_writel((1 << IMX_DMA_CHANNELS) - 1, DMA_BASE + DMA_DIMR);
831
832 for (i = 0; i < IMX_DMA_CHANNELS; i++) {
833 imx_dma_channels[i].sg = NULL;
834 imx_dma_channels[i].dma_num = i;
835 }
836
837 return ret;
838}
839
840arch_initcall(imx_dma_init);
diff --git a/arch/arm/plat-mxc/include/mach/board-mx31ads.h b/arch/arm/plat-mxc/include/mach/board-mx31ads.h
index 1bc6fb0f9a83..745b48864f93 100644
--- a/arch/arm/plat-mxc/include/mach/board-mx31ads.h
+++ b/arch/arm/plat-mxc/include/mach/board-mx31ads.h
@@ -90,6 +90,9 @@
90#define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS) 90#define PBC_INTMASK_CLEAR_REG (PBC_INTMASK_CLEAR + PBC_BASE_ADDRESS)
91#define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_4) 91#define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_4)
92 92
93#define MXC_EXP_IO_BASE (MXC_MAX_INT_LINES + MXC_MAX_GPIO_LINES)
94#define MXC_IRQ_TO_EXPIO(irq) ((irq) - MXC_EXP_IO_BASE)
95
93#define EXPIO_INT_LOW_BAT (MXC_EXP_IO_BASE + 0) 96#define EXPIO_INT_LOW_BAT (MXC_EXP_IO_BASE + 0)
94#define EXPIO_INT_PB_IRQ (MXC_EXP_IO_BASE + 1) 97#define EXPIO_INT_PB_IRQ (MXC_EXP_IO_BASE + 1)
95#define EXPIO_INT_OTG_FS_OVR (MXC_EXP_IO_BASE + 2) 98#define EXPIO_INT_OTG_FS_OVR (MXC_EXP_IO_BASE + 2)
diff --git a/arch/arm/plat-mxc/include/mach/clock.h b/arch/arm/plat-mxc/include/mach/clock.h
index 24caa2b7c91d..d21f78e78819 100644
--- a/arch/arm/plat-mxc/include/mach/clock.h
+++ b/arch/arm/plat-mxc/include/mach/clock.h
@@ -39,7 +39,7 @@ struct clk {
39 /* Register bit position for clock's enable/disable control. */ 39 /* Register bit position for clock's enable/disable control. */
40 u8 enable_shift; 40 u8 enable_shift;
41 /* Register address for clock's enable/disable control. */ 41 /* Register address for clock's enable/disable control. */
42 u32 enable_reg; 42 void __iomem *enable_reg;
43 u32 flags; 43 u32 flags;
44 /* get the current clock rate (always a fresh value) */ 44 /* get the current clock rate (always a fresh value) */
45 unsigned long (*get_rate) (struct clk *); 45 unsigned long (*get_rate) (struct clk *);
diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h
index a6d2e24aab15..6350287a59b9 100644
--- a/arch/arm/plat-mxc/include/mach/common.h
+++ b/arch/arm/plat-mxc/include/mach/common.h
@@ -11,10 +11,13 @@
11#ifndef __ASM_ARCH_MXC_COMMON_H__ 11#ifndef __ASM_ARCH_MXC_COMMON_H__
12#define __ASM_ARCH_MXC_COMMON_H__ 12#define __ASM_ARCH_MXC_COMMON_H__
13 13
14struct platform_device;
15
14extern void mxc_map_io(void); 16extern void mxc_map_io(void);
15extern void mxc_init_irq(void); 17extern void mxc_init_irq(void);
16extern void mxc_timer_init(const char *clk_timer); 18extern void mxc_timer_init(const char *clk_timer);
17extern int mxc_clocks_init(unsigned long fref); 19extern int mxc_clocks_init(unsigned long fref);
18extern int mxc_register_gpios(void); 20extern int mxc_register_gpios(void);
21extern int mxc_register_device(struct platform_device *pdev, void *data);
19 22
20#endif 23#endif
diff --git a/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h b/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h
new file mode 100644
index 000000000000..e85fd946116c
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h
@@ -0,0 +1,89 @@
1/*
2 * linux/arch/arm/plat-mxc/include/mach/dma-mx1-mx2.h
3 *
4 * i.MX DMA registration and IRQ dispatching
5 *
6 * Copyright 2006 Pavel Pisa <pisa@cmp.felk.cvut.cz>
7 * Copyright 2008 Juergen Beisert, <kernel@pengutronix.de>
8 * Copyright 2008 Sascha Hauer, <s.hauer@pengutronix.de>
9 *
10 * This program is free software; you can redistribute it and/or
11 * modify it under the terms of the GNU General Public License
12 * as published by the Free Software Foundation; either version 2
13 * of the License, or (at your option) any later version.
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
22 * MA 02110-1301, USA.
23 */
24
25#include <asm/dma.h>
26
27#ifndef __ASM_ARCH_MXC_DMA_H
28#define __ASM_ARCH_MXC_DMA_H
29
30#define IMX_DMA_CHANNELS 16
31
32#define DMA_BASE IO_ADDRESS(DMA_BASE_ADDR)
33
34#define IMX_DMA_MEMSIZE_32 (0 << 4)
35#define IMX_DMA_MEMSIZE_8 (1 << 4)
36#define IMX_DMA_MEMSIZE_16 (2 << 4)
37#define IMX_DMA_TYPE_LINEAR (0 << 10)
38#define IMX_DMA_TYPE_2D (1 << 10)
39#define IMX_DMA_TYPE_FIFO (2 << 10)
40
41#define IMX_DMA_ERR_BURST (1 << 0)
42#define IMX_DMA_ERR_REQUEST (1 << 1)
43#define IMX_DMA_ERR_TRANSFER (1 << 2)
44#define IMX_DMA_ERR_BUFFER (1 << 3)
45#define IMX_DMA_ERR_TIMEOUT (1 << 4)
46
47int
48imx_dma_config_channel(int channel, unsigned int config_port,
49 unsigned int config_mem, unsigned int dmareq, int hw_chaining);
50
51void
52imx_dma_config_burstlen(int channel, unsigned int burstlen);
53
54int
55imx_dma_setup_single(int channel, dma_addr_t dma_address,
56 unsigned int dma_length, unsigned int dev_addr,
57 dmamode_t dmamode);
58
59int
60imx_dma_setup_sg(int channel, struct scatterlist *sg,
61 unsigned int sgcount, unsigned int dma_length,
62 unsigned int dev_addr, dmamode_t dmamode);
63
64int
65imx_dma_setup_handlers(int channel,
66 void (*irq_handler) (int, void *),
67 void (*err_handler) (int, void *, int), void *data);
68
69int
70imx_dma_setup_progression_handler(int channel,
71 void (*prog_handler) (int, void*, struct scatterlist*));
72
73void imx_dma_enable(int channel);
74
75void imx_dma_disable(int channel);
76
77int imx_dma_request(int channel, const char *name);
78
79void imx_dma_free(int channel);
80
81enum imx_dma_prio {
82 DMA_PRIO_HIGH = 0,
83 DMA_PRIO_MEDIUM = 1,
84 DMA_PRIO_LOW = 2
85};
86
87int imx_dma_request_by_prio(const char *name, enum imx_dma_prio prio);
88
89#endif /* _ASM_ARCH_MXC_DMA_H */
diff --git a/arch/arm/plat-mxc/include/mach/entry-macro.S b/arch/arm/plat-mxc/include/mach/entry-macro.S
index b542433afb1b..11632028f7d1 100644
--- a/arch/arm/plat-mxc/include/mach/entry-macro.S
+++ b/arch/arm/plat-mxc/include/mach/entry-macro.S
@@ -9,11 +9,17 @@
9 * published by the Free Software Foundation. 9 * published by the Free Software Foundation.
10 */ 10 */
11 11
12#define AVIC_NIMASK 0x04
13
12 @ this macro disables fast irq (not implemented) 14 @ this macro disables fast irq (not implemented)
13 .macro disable_fiq 15 .macro disable_fiq
14 .endm 16 .endm
15 17
16 .macro get_irqnr_preamble, base, tmp 18 .macro get_irqnr_preamble, base, tmp
19 ldr \base, =AVIC_IO_ADDRESS(AVIC_BASE_ADDR)
20#ifdef CONFIG_MXC_IRQ_PRIOR
21 ldr r4, [\base, #AVIC_NIMASK]
22#endif
17 .endm 23 .endm
18 24
19 .macro arch_ret_to_user, tmp1, tmp2 25 .macro arch_ret_to_user, tmp1, tmp2
@@ -23,7 +29,6 @@
23 @ and returns its number in irqnr 29 @ and returns its number in irqnr
24 @ and returns if an interrupt occured in irqstat 30 @ and returns if an interrupt occured in irqstat
25 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp 31 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
26 ldr \base, =AVIC_IO_ADDRESS(AVIC_BASE_ADDR)
27 @ Load offset & priority of the highest priority 32 @ Load offset & priority of the highest priority
28 @ interrupt pending from AVIC_NIVECSR 33 @ interrupt pending from AVIC_NIVECSR
29 ldr \irqstat, [\base, #0x40] 34 ldr \irqstat, [\base, #0x40]
@@ -32,6 +37,11 @@
32 mov \irqnr, \irqstat, asr #16 37 mov \irqnr, \irqstat, asr #16
33 @ set zero flag if IRQ + 1 == 0 38 @ set zero flag if IRQ + 1 == 0
34 adds \tmp, \irqnr, #1 39 adds \tmp, \irqnr, #1
40#ifdef CONFIG_MXC_IRQ_PRIOR
41 bicne \tmp, \irqstat, #0xFFFFFFE0
42 strne \tmp, [\base, #AVIC_NIMASK]
43 streq r4, [\base, #AVIC_NIMASK]
44#endif
35 .endm 45 .endm
36 46
37 @ irq priority table (not used) 47 @ irq priority table (not used)
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx1-mx2.h b/arch/arm/plat-mxc/include/mach/iomux-mx1-mx2.h
index 076d37b38eb2..3d09bfd6c53d 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx1-mx2.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx1-mx2.h
@@ -247,6 +247,11 @@ extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count,
247#endif 247#endif
248 248
249#ifdef CONFIG_ARCH_MX2 249#ifdef CONFIG_ARCH_MX2
250#define PA0_PF_USBH2_CLK (GPIO_PORTA | GPIO_PF | 0)
251#define PA1_PF_USBH2_DIR (GPIO_PORTA | GPIO_PF | 1)
252#define PA2_PF_USBH2_DATA7 (GPIO_PORTA | GPIO_PF | 2)
253#define PA3_PF_USBH2_NXT (GPIO_PORTA | GPIO_PF | 3)
254#define PA4_PF_USBH2_STP (GPIO_PORTA | GPIO_PF | 4)
250#define PA5_PF_LSCLK (GPIO_PORTA | GPIO_OUT | GPIO_PF | 5) 255#define PA5_PF_LSCLK (GPIO_PORTA | GPIO_OUT | GPIO_PF | 5)
251#define PA6_PF_LD0 (GPIO_PORTA | GPIO_OUT | GPIO_PF | 6) 256#define PA6_PF_LD0 (GPIO_PORTA | GPIO_OUT | GPIO_PF | 6)
252#define PA7_PF_LD1 (GPIO_PORTA | GPIO_OUT | GPIO_PF | 7) 257#define PA7_PF_LD1 (GPIO_PORTA | GPIO_OUT | GPIO_PF | 7)
@@ -294,6 +299,16 @@ extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count,
294#define PB20_AF_UART5_CTS (GPIO_PORTB | GPIO_OUT | GPIO_AF | 20) 299#define PB20_AF_UART5_CTS (GPIO_PORTB | GPIO_OUT | GPIO_AF | 20)
295#define PB21_PF_CSI_HSYNC (GPIO_PORTB | GPIO_OUT | GPIO_PF | 21) 300#define PB21_PF_CSI_HSYNC (GPIO_PORTB | GPIO_OUT | GPIO_PF | 21)
296#define PB21_AF_UART5_RTS (GPIO_PORTB | GPIO_IN | GPIO_AF | 21) 301#define PB21_AF_UART5_RTS (GPIO_PORTB | GPIO_IN | GPIO_AF | 21)
302#define PB22_PF_USBH1_SUSP (GPIO_PORTB | GPIO_PF | 22)
303#define PB23_PF_USB_PWR (GPIO_PORTB | GPIO_PF | 23)
304#define PB24_PF_USB_OC_B (GPIO_PORTB | GPIO_PF | 24)
305#define PB25_PF_USBH1_RCV (GPIO_PORTB | GPIO_PF | 25)
306#define PB26_PF_USBH1_FS (GPIO_PORTB | GPIO_PF | 26)
307#define PB27_PF_USBH1_OE_B (GPIO_PORTB | GPIO_PF | 27)
308#define PB28_PF_USBH1_TXDM (GPIO_PORTB | GPIO_PF | 28)
309#define PB29_PF_USBH1_TXDP (GPIO_PORTB | GPIO_PF | 29)
310#define PB30_PF_USBH1_RXDM (GPIO_PORTB | GPIO_PF | 30)
311#define PB31_PF_USBH1_RXDP (GPIO_PORTB | GPIO_PF | 31)
297#define PB26_AF_UART4_RTS (GPIO_PORTB | GPIO_IN | GPIO_PF | 26) 312#define PB26_AF_UART4_RTS (GPIO_PORTB | GPIO_IN | GPIO_PF | 26)
298#define PB28_AF_UART4_TXD (GPIO_PORTB | GPIO_OUT | GPIO_AF | 28) 313#define PB28_AF_UART4_TXD (GPIO_PORTB | GPIO_OUT | GPIO_AF | 28)
299#define PB29_AF_UART4_CTS (GPIO_PORTB | GPIO_OUT | GPIO_AF | 29) 314#define PB29_AF_UART4_CTS (GPIO_PORTB | GPIO_OUT | GPIO_AF | 29)
@@ -335,8 +350,15 @@ extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count,
335#define PD16_AIN_FEC_TX_ER (GPIO_PORTD | GPIO_OUT | GPIO_AIN | 16) 350#define PD16_AIN_FEC_TX_ER (GPIO_PORTD | GPIO_OUT | GPIO_AIN | 16)
336#define PD17_PF_I2C_DATA (GPIO_PORTD | GPIO_OUT | GPIO_PF | 17) 351#define PD17_PF_I2C_DATA (GPIO_PORTD | GPIO_OUT | GPIO_PF | 17)
337#define PD18_PF_I2C_CLK (GPIO_PORTD | GPIO_OUT | GPIO_PF | 18) 352#define PD18_PF_I2C_CLK (GPIO_PORTD | GPIO_OUT | GPIO_PF | 18)
353#define PD19_AF_USBH2_DATA4 (GPIO_PORTD | GPIO_AF | 19)
354#define PD20_AF_USBH2_DATA3 (GPIO_PORTD | GPIO_AF | 20)
355#define PD21_AF_USBH2_DATA6 (GPIO_PORTD | GPIO_AF | 21)
356#define PD22_AF_USBH2_DATA0 (GPIO_PORTD | GPIO_AF | 22)
357#define PD23_AF_USBH2_DATA2 (GPIO_PORTD | GPIO_AF | 23)
358#define PD24_AF_USBH2_DATA1 (GPIO_PORTD | GPIO_AF | 24)
338#define PD25_PF_CSPI1_RDY (GPIO_PORTD | GPIO_OUT | GPIO_PF | 25) 359#define PD25_PF_CSPI1_RDY (GPIO_PORTD | GPIO_OUT | GPIO_PF | 25)
339#define PD26_PF_CSPI1_SS2 (GPIO_PORTD | GPIO_OUT | GPIO_PF | 26) 360#define PD26_PF_CSPI1_SS2 (GPIO_PORTD | GPIO_OUT | GPIO_PF | 26)
361#define PD26_AF_USBH2_DATA5 (GPIO_PORTD | GPIO_AF | 26)
340#define PD27_PF_CSPI1_SS1 (GPIO_PORTD | GPIO_OUT | GPIO_PF | 27) 362#define PD27_PF_CSPI1_SS1 (GPIO_PORTD | GPIO_OUT | GPIO_PF | 27)
341#define PD28_PF_CSPI1_SS0 (GPIO_PORTD | GPIO_OUT | GPIO_PF | 28) 363#define PD28_PF_CSPI1_SS0 (GPIO_PORTD | GPIO_OUT | GPIO_PF | 28)
342#define PD29_PF_CSPI1_SCLK (GPIO_PORTD | GPIO_OUT | GPIO_PF | 29) 364#define PD29_PF_CSPI1_SCLK (GPIO_PORTD | GPIO_OUT | GPIO_PF | 29)
@@ -355,6 +377,8 @@ extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count,
355#define PE13_PF_UART1_RXD (GPIO_PORTE | GPIO_IN | GPIO_PF | 13) 377#define PE13_PF_UART1_RXD (GPIO_PORTE | GPIO_IN | GPIO_PF | 13)
356#define PE14_PF_UART1_CTS (GPIO_PORTE | GPIO_OUT | GPIO_PF | 14) 378#define PE14_PF_UART1_CTS (GPIO_PORTE | GPIO_OUT | GPIO_PF | 14)
357#define PE15_PF_UART1_RTS (GPIO_PORTE | GPIO_IN | GPIO_PF | 15) 379#define PE15_PF_UART1_RTS (GPIO_PORTE | GPIO_IN | GPIO_PF | 15)
380#define PE16_AF_RTCK (GPIO_PORTE | GPIO_OUT | GPIO_AF | 16)
381#define PE16_PF_RTCK (GPIO_PORTE | GPIO_OUT | GPIO_PF | 16)
358#define PE18_AF_CSPI3_MISO (GPIO_PORTE | GPIO_IN | GPIO_AF | 18) 382#define PE18_AF_CSPI3_MISO (GPIO_PORTE | GPIO_IN | GPIO_AF | 18)
359#define PE21_AF_CSPI3_SS (GPIO_PORTE | GPIO_OUT | GPIO_AF | 21) 383#define PE21_AF_CSPI3_SS (GPIO_PORTE | GPIO_OUT | GPIO_AF | 21)
360#define PE22_AF_CSPI3_MOSI (GPIO_PORTE | GPIO_OUT | GPIO_AF | 22) 384#define PE22_AF_CSPI3_MOSI (GPIO_PORTE | GPIO_OUT | GPIO_AF | 22)
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx3.h b/arch/arm/plat-mxc/include/mach/iomux-mx3.h
index 7509e7692f08..c9f39c2fb8c6 100644
--- a/arch/arm/plat-mxc/include/mach/iomux-mx3.h
+++ b/arch/arm/plat-mxc/include/mach/iomux-mx3.h
@@ -491,6 +491,26 @@ enum iomux_pins {
491#define MX31_PIN_RTS1__RTS1 IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_FUNC) 491#define MX31_PIN_RTS1__RTS1 IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_FUNC)
492#define MX31_PIN_TXD1__TXD1 IOMUX_MODE(MX31_PIN_TXD1, IOMUX_CONFIG_FUNC) 492#define MX31_PIN_TXD1__TXD1 IOMUX_MODE(MX31_PIN_TXD1, IOMUX_CONFIG_FUNC)
493#define MX31_PIN_RXD1__RXD1 IOMUX_MODE(MX31_PIN_RXD1, IOMUX_CONFIG_FUNC) 493#define MX31_PIN_RXD1__RXD1 IOMUX_MODE(MX31_PIN_RXD1, IOMUX_CONFIG_FUNC)
494#define MX31_PIN_CSPI1_MOSI__MOSI IOMUX_MODE(MX31_PIN_CSPI1_MOSI, IOMUX_CONFIG_FUNC)
495#define MX31_PIN_CSPI1_MISO__MISO IOMUX_MODE(MX31_PIN_CSPI1_MISO, IOMUX_CONFIG_FUNC)
496#define MX31_PIN_CSPI1_SCLK__SCLK IOMUX_MODE(MX31_PIN_CSPI1_SCLK, IOMUX_CONFIG_FUNC)
497#define MX31_PIN_CSPI1_SPI_RDY__SPI_RDY IOMUX_MODE(MX31_PIN_CSPI1_SPI_RDY, IOMUX_CONFIG_FUNC)
498#define MX31_PIN_CSPI1_SS0__SS0 IOMUX_MODE(MX31_PIN_CSPI1_SS0, IOMUX_CONFIG_FUNC)
499#define MX31_PIN_CSPI1_SS1__SS1 IOMUX_MODE(MX31_PIN_CSPI1_SS1, IOMUX_CONFIG_FUNC)
500#define MX31_PIN_CSPI1_SS2__SS2 IOMUX_MODE(MX31_PIN_CSPI1_SS2, IOMUX_CONFIG_FUNC)
501#define MX31_PIN_CSPI2_MOSI__MOSI IOMUX_MODE(MX31_PIN_CSPI2_MOSI, IOMUX_CONFIG_FUNC)
502#define MX31_PIN_CSPI2_MISO__MISO IOMUX_MODE(MX31_PIN_CSPI2_MISO, IOMUX_CONFIG_FUNC)
503#define MX31_PIN_CSPI2_SCLK__SCLK IOMUX_MODE(MX31_PIN_CSPI2_SCLK, IOMUX_CONFIG_FUNC)
504#define MX31_PIN_CSPI2_SPI_RDY__SPI_RDY IOMUX_MODE(MX31_PIN_CSPI2_SPI_RDY, IOMUX_CONFIG_FUNC)
505#define MX31_PIN_CSPI2_SS0__SS0 IOMUX_MODE(MX31_PIN_CSPI2_SS0, IOMUX_CONFIG_FUNC)
506#define MX31_PIN_CSPI2_SS1__SS1 IOMUX_MODE(MX31_PIN_CSPI2_SS1, IOMUX_CONFIG_FUNC)
507#define MX31_PIN_CSPI2_SS2__SS2 IOMUX_MODE(MX31_PIN_CSPI2_SS2, IOMUX_CONFIG_FUNC)
508#define MX31_PIN_CSPI3_MOSI__MOSI IOMUX_MODE(MX31_PIN_CSPI3_MOSI, IOMUX_CONFIG_FUNC)
509#define MX31_PIN_CSPI3_MISO__MISO IOMUX_MODE(MX31_PIN_CSPI3_MISO, IOMUX_CONFIG_FUNC)
510#define MX31_PIN_CSPI3_SCLK__SCLK IOMUX_MODE(MX31_PIN_CSPI3_SCLK, IOMUX_CONFIG_FUNC)
511#define MX31_PIN_CSPI3_SPI_RDY__SPI_RDY IOMUX_MODE(MX31_PIN_CSPI3_SPI_RDY, IOMUX_CONFIG_FUNC)
512/*XXX: The SS0, SS1, SS2, SS3 lines of spi3 are multiplexed by cspi2_ss0, cspi2_ss1, cspi1_ss0
513 * cspi1_ss1*/
494 514
495/* 515/*
496 * This function configures the pad value for a IOMUX pin. 516 * This function configures the pad value for a IOMUX pin.
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h
index 228c4f68ccdf..b55bba35e18a 100644
--- a/arch/arm/plat-mxc/include/mach/irqs.h
+++ b/arch/arm/plat-mxc/include/mach/irqs.h
@@ -12,5 +12,6 @@
12#define __ASM_ARCH_MXC_IRQS_H__ 12#define __ASM_ARCH_MXC_IRQS_H__
13 13
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15extern void imx_irq_set_priority(unsigned char irq, unsigned char prio);
15 16
16#endif /* __ASM_ARCH_MXC_IRQS_H__ */ 17#endif /* __ASM_ARCH_MXC_IRQS_H__ */
diff --git a/arch/arm/plat-mxc/include/mach/mx27.h b/arch/arm/plat-mxc/include/mach/mx27.h
index 212ecc246626..a86db64744a1 100644
--- a/arch/arm/plat-mxc/include/mach/mx27.h
+++ b/arch/arm/plat-mxc/include/mach/mx27.h
@@ -128,6 +128,7 @@
128 * it returns 0xDEADBEEF 128 * it returns 0xDEADBEEF
129 */ 129 */
130#define IO_ADDRESS(x) \ 130#define IO_ADDRESS(x) \
131 (void __iomem *) \
131 (((x >= AIPI_BASE_ADDR) && (x < (AIPI_BASE_ADDR + AIPI_SIZE))) ? \ 132 (((x >= AIPI_BASE_ADDR) && (x < (AIPI_BASE_ADDR + AIPI_SIZE))) ? \
132 AIPI_IO_ADDRESS(x) : \ 133 AIPI_IO_ADDRESS(x) : \
133 ((x >= SAHB1_BASE_ADDR) && (x < (SAHB1_BASE_ADDR + SAHB1_SIZE))) ? \ 134 ((x >= SAHB1_BASE_ADDR) && (x < (SAHB1_BASE_ADDR + SAHB1_SIZE))) ? \
diff --git a/arch/arm/plat-mxc/include/mach/mx31.h b/arch/arm/plat-mxc/include/mach/mx31.h
index a7373e4a56cb..0536f8917bc0 100644
--- a/arch/arm/plat-mxc/include/mach/mx31.h
+++ b/arch/arm/plat-mxc/include/mach/mx31.h
@@ -198,6 +198,7 @@
198 * it returns 0xDEADBEEF 198 * it returns 0xDEADBEEF
199 */ 199 */
200#define IO_ADDRESS(x) \ 200#define IO_ADDRESS(x) \
201 (void __iomem *) \
201 (((x >= IRAM_BASE_ADDR) && (x < (IRAM_BASE_ADDR + IRAM_SIZE))) ? IRAM_IO_ADDRESS(x):\ 202 (((x >= IRAM_BASE_ADDR) && (x < (IRAM_BASE_ADDR + IRAM_SIZE))) ? IRAM_IO_ADDRESS(x):\
202 ((x >= L2CC_BASE_ADDR) && (x < (L2CC_BASE_ADDR + L2CC_SIZE))) ? L2CC_IO_ADDRESS(x):\ 203 ((x >= L2CC_BASE_ADDR) && (x < (L2CC_BASE_ADDR + L2CC_SIZE))) ? L2CC_IO_ADDRESS(x):\
203 ((x >= AIPS1_BASE_ADDR) && (x < (AIPS1_BASE_ADDR + AIPS1_SIZE))) ? AIPS1_IO_ADDRESS(x):\ 204 ((x >= AIPS1_BASE_ADDR) && (x < (AIPS1_BASE_ADDR + AIPS1_SIZE))) ? AIPS1_IO_ADDRESS(x):\
diff --git a/arch/arm/plat-mxc/include/mach/mxc.h b/arch/arm/plat-mxc/include/mach/mxc.h
index 332eda4dbd3b..f6caab062131 100644
--- a/arch/arm/plat-mxc/include/mach/mxc.h
+++ b/arch/arm/plat-mxc/include/mach/mxc.h
@@ -33,4 +33,10 @@
33# define cpu_is_mx27() (0) 33# define cpu_is_mx27() (0)
34#endif 34#endif
35 35
36#if defined(CONFIG_ARCH_MX3) || defined(CONFIG_ARCH_MX2)
37#define CSCR_U(n) (IO_ADDRESS(WEIM_BASE_ADDR) + n * 0x10)
38#define CSCR_L(n) (IO_ADDRESS(WEIM_BASE_ADDR) + n * 0x10 + 0x4)
39#define CSCR_A(n) (IO_ADDRESS(WEIM_BASE_ADDR) + n * 0x10 + 0x8)
40#endif
41
36#endif /* __ASM_ARCH_MXC_H__ */ 42#endif /* __ASM_ARCH_MXC_H__ */
diff --git a/arch/arm/plat-mxc/irq.c b/arch/arm/plat-mxc/irq.c
index 1053b666c676..d862c9e5f8db 100644
--- a/arch/arm/plat-mxc/irq.c
+++ b/arch/arm/plat-mxc/irq.c
@@ -18,7 +18,7 @@
18 */ 18 */
19 19
20#include <linux/irq.h> 20#include <linux/irq.h>
21#include <asm/io.h> 21#include <linux/io.h>
22#include <mach/common.h> 22#include <mach/common.h>
23 23
24#define AVIC_BASE IO_ADDRESS(AVIC_BASE_ADDR) 24#define AVIC_BASE IO_ADDRESS(AVIC_BASE_ADDR)
@@ -30,14 +30,7 @@
30#define AVIC_INTENABLEL (AVIC_BASE + 0x14) /* int enable reg low */ 30#define AVIC_INTENABLEL (AVIC_BASE + 0x14) /* int enable reg low */
31#define AVIC_INTTYPEH (AVIC_BASE + 0x18) /* int type reg high */ 31#define AVIC_INTTYPEH (AVIC_BASE + 0x18) /* int type reg high */
32#define AVIC_INTTYPEL (AVIC_BASE + 0x1C) /* int type reg low */ 32#define AVIC_INTTYPEL (AVIC_BASE + 0x1C) /* int type reg low */
33#define AVIC_NIPRIORITY7 (AVIC_BASE + 0x20) /* norm int priority lvl7 */ 33#define AVIC_NIPRIORITY(x) (AVIC_BASE + (0x20 + 4 * (7 - (x)))) /* int priority */
34#define AVIC_NIPRIORITY6 (AVIC_BASE + 0x24) /* norm int priority lvl6 */
35#define AVIC_NIPRIORITY5 (AVIC_BASE + 0x28) /* norm int priority lvl5 */
36#define AVIC_NIPRIORITY4 (AVIC_BASE + 0x2C) /* norm int priority lvl4 */
37#define AVIC_NIPRIORITY3 (AVIC_BASE + 0x30) /* norm int priority lvl3 */
38#define AVIC_NIPRIORITY2 (AVIC_BASE + 0x34) /* norm int priority lvl2 */
39#define AVIC_NIPRIORITY1 (AVIC_BASE + 0x38) /* norm int priority lvl1 */
40#define AVIC_NIPRIORITY0 (AVIC_BASE + 0x3C) /* norm int priority lvl0 */
41#define AVIC_NIVECSR (AVIC_BASE + 0x40) /* norm int vector/status */ 34#define AVIC_NIVECSR (AVIC_BASE + 0x40) /* norm int vector/status */
42#define AVIC_FIVECSR (AVIC_BASE + 0x44) /* fast int vector/status */ 35#define AVIC_FIVECSR (AVIC_BASE + 0x44) /* fast int vector/status */
43#define AVIC_INTSRCH (AVIC_BASE + 0x48) /* int source reg high */ 36#define AVIC_INTSRCH (AVIC_BASE + 0x48) /* int source reg high */
@@ -54,6 +47,24 @@
54#define IIM_PROD_REV_SH 3 47#define IIM_PROD_REV_SH 3
55#define IIM_PROD_REV_LEN 5 48#define IIM_PROD_REV_LEN 5
56 49
50#ifdef CONFIG_MXC_IRQ_PRIOR
51void imx_irq_set_priority(unsigned char irq, unsigned char prio)
52{
53 unsigned int temp;
54 unsigned int mask = 0x0F << irq % 8 * 4;
55
56 if (irq > 63)
57 return;
58
59 temp = __raw_readl(AVIC_NIPRIORITY(irq / 8));
60 temp &= ~mask;
61 temp |= prio & mask;
62
63 __raw_writel(temp, AVIC_NIPRIORITY(irq / 8));
64}
65EXPORT_SYMBOL(imx_irq_set_priority);
66#endif
67
57/* Disable interrupt number "irq" in the AVIC */ 68/* Disable interrupt number "irq" in the AVIC */
58static void mxc_mask_irq(unsigned int irq) 69static void mxc_mask_irq(unsigned int irq)
59{ 70{
@@ -101,10 +112,9 @@ void __init mxc_init_irq(void)
101 set_irq_flags(i, IRQF_VALID); 112 set_irq_flags(i, IRQF_VALID);
102 } 113 }
103 114
104 /* Set WDOG2's interrupt the highest priority level (bit 28-31) */ 115 /* Set default priority value (0) for all IRQ's */
105 reg = __raw_readl(AVIC_NIPRIORITY6); 116 for (i = 0; i < 8; i++)
106 reg |= (0xF << 28); 117 __raw_writel(0, AVIC_NIPRIORITY(i));
107 __raw_writel(reg, AVIC_NIPRIORITY6);
108 118
109 /* init architectures chained interrupt handler */ 119 /* init architectures chained interrupt handler */
110 mxc_register_gpios(); 120 mxc_register_gpios();
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
index 197974defbe4..bf6a10c5fc4f 100644
--- a/arch/arm/plat-omap/clock.c
+++ b/arch/arm/plat-omap/clock.c
@@ -22,8 +22,7 @@
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/cpufreq.h> 23#include <linux/cpufreq.h>
24#include <linux/debugfs.h> 24#include <linux/debugfs.h>
25 25#include <linux/io.h>
26#include <asm/io.h>
27 26
28#include <mach/clock.h> 27#include <mach/clock.h>
29 28
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c
index f4dff423ae7c..8bdf0ead0cf3 100644
--- a/arch/arm/plat-omap/common.c
+++ b/arch/arm/plat-omap/common.c
@@ -18,12 +18,12 @@
18#include <linux/serial_8250.h> 18#include <linux/serial_8250.h>
19#include <linux/serial_reg.h> 19#include <linux/serial_reg.h>
20#include <linux/clk.h> 20#include <linux/clk.h>
21#include <linux/io.h>
21 22
22#include <mach/hardware.h> 23#include <mach/hardware.h>
23#include <asm/system.h> 24#include <asm/system.h>
24#include <asm/pgtable.h> 25#include <asm/pgtable.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
26#include <asm/io.h>
27#include <asm/setup.h> 27#include <asm/setup.h>
28 28
29#include <mach/common.h> 29#include <mach/common.h>
diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c
index ae1de308aaad..b2690242a390 100644
--- a/arch/arm/plat-omap/cpu-omap.c
+++ b/arch/arm/plat-omap/cpu-omap.c
@@ -20,9 +20,9 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/err.h> 21#include <linux/err.h>
22#include <linux/clk.h> 22#include <linux/clk.h>
23#include <linux/io.h>
23 24
24#include <mach/hardware.h> 25#include <mach/hardware.h>
25#include <asm/io.h>
26#include <asm/system.h> 26#include <asm/system.h>
27 27
28#define VERY_HI_RATE 900000000 28#define VERY_HI_RATE 900000000
diff --git a/arch/arm/plat-omap/debug-devices.c b/arch/arm/plat-omap/debug-devices.c
index 5b73bb274452..e31154b15d9e 100644
--- a/arch/arm/plat-omap/debug-devices.c
+++ b/arch/arm/plat-omap/debug-devices.c
@@ -12,9 +12,9 @@
12#include <linux/kernel.h> 12#include <linux/kernel.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/platform_device.h> 14#include <linux/platform_device.h>
15#include <linux/io.h>
15 16
16#include <mach/hardware.h> 17#include <mach/hardware.h>
17#include <asm/io.h>
18 18
19#include <mach/board.h> 19#include <mach/board.h>
20#include <mach/gpio.h> 20#include <mach/gpio.h>
diff --git a/arch/arm/plat-omap/debug-leds.c b/arch/arm/plat-omap/debug-leds.c
index 9422dee7de84..2f4c0cabfd34 100644
--- a/arch/arm/plat-omap/debug-leds.c
+++ b/arch/arm/plat-omap/debug-leds.c
@@ -11,8 +11,8 @@
11#include <linux/init.h> 11#include <linux/init.h>
12#include <linux/platform_device.h> 12#include <linux/platform_device.h>
13#include <linux/leds.h> 13#include <linux/leds.h>
14#include <linux/io.h>
14 15
15#include <asm/io.h>
16#include <mach/hardware.h> 16#include <mach/hardware.h>
17#include <asm/leds.h> 17#include <asm/leds.h>
18#include <asm/system.h> 18#include <asm/system.h>
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
index 187e3d8bfdfe..b38410f26203 100644
--- a/arch/arm/plat-omap/devices.c
+++ b/arch/arm/plat-omap/devices.c
@@ -13,14 +13,15 @@
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/platform_device.h> 15#include <linux/platform_device.h>
16#include <linux/io.h>
16 17
17#include <mach/hardware.h> 18#include <mach/hardware.h>
18#include <asm/io.h>
19#include <asm/mach-types.h> 19#include <asm/mach-types.h>
20#include <asm/mach/map.h> 20#include <asm/mach/map.h>
21 21
22#include <mach/tc.h> 22#include <mach/tc.h>
23#include <mach/board.h> 23#include <mach/board.h>
24#include <mach/mmc.h>
24#include <mach/mux.h> 25#include <mach/mux.h>
25#include <mach/gpio.h> 26#include <mach/gpio.h>
26#include <mach/menelaus.h> 27#include <mach/menelaus.h>
@@ -194,25 +195,38 @@ void omap_mcbsp_register_board_cfg(struct omap_mcbsp_platform_data *config,
194 195
195/*-------------------------------------------------------------------------*/ 196/*-------------------------------------------------------------------------*/
196 197
197#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) 198#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) || \
199 defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
198 200
199#ifdef CONFIG_ARCH_OMAP24XX 201#if defined(CONFIG_ARCH_OMAP24XX) || defined(CONFIG_ARCH_OMAP34XX)
200#define OMAP_MMC1_BASE 0x4809c000 202#define OMAP_MMC1_BASE 0x4809c000
201#define OMAP_MMC1_INT INT_24XX_MMC_IRQ 203#define OMAP_MMC1_END (OMAP_MMC1_BASE + 0x1fc)
204#define OMAP_MMC1_INT INT_24XX_MMC_IRQ
205
206#define OMAP_MMC2_BASE 0x480b4000
207#define OMAP_MMC2_END (OMAP_MMC2_BASE + 0x1fc)
208#define OMAP_MMC2_INT INT_24XX_MMC2_IRQ
209
202#else 210#else
211
203#define OMAP_MMC1_BASE 0xfffb7800 212#define OMAP_MMC1_BASE 0xfffb7800
213#define OMAP_MMC1_END (OMAP_MMC1_BASE + 0x7f)
204#define OMAP_MMC1_INT INT_MMC 214#define OMAP_MMC1_INT INT_MMC
205#endif 215
206#define OMAP_MMC2_BASE 0xfffb7c00 /* omap16xx only */ 216#define OMAP_MMC2_BASE 0xfffb7c00 /* omap16xx only */
217#define OMAP_MMC2_END (OMAP_MMC2_BASE + 0x7f)
218#define OMAP_MMC2_INT INT_1610_MMC2
207 219
208static struct omap_mmc_conf mmc1_conf; 220#endif
221
222static struct omap_mmc_platform_data mmc1_data;
209 223
210static u64 mmc1_dmamask = 0xffffffff; 224static u64 mmc1_dmamask = 0xffffffff;
211 225
212static struct resource mmc1_resources[] = { 226static struct resource mmc1_resources[] = {
213 { 227 {
214 .start = OMAP_MMC1_BASE, 228 .start = OMAP_MMC1_BASE,
215 .end = OMAP_MMC1_BASE + 0x7f, 229 .end = OMAP_MMC1_END,
216 .flags = IORESOURCE_MEM, 230 .flags = IORESOURCE_MEM,
217 }, 231 },
218 { 232 {
@@ -226,26 +240,27 @@ static struct platform_device mmc_omap_device1 = {
226 .id = 1, 240 .id = 1,
227 .dev = { 241 .dev = {
228 .dma_mask = &mmc1_dmamask, 242 .dma_mask = &mmc1_dmamask,
229 .platform_data = &mmc1_conf, 243 .platform_data = &mmc1_data,
230 }, 244 },
231 .num_resources = ARRAY_SIZE(mmc1_resources), 245 .num_resources = ARRAY_SIZE(mmc1_resources),
232 .resource = mmc1_resources, 246 .resource = mmc1_resources,
233}; 247};
234 248
235#ifdef CONFIG_ARCH_OMAP16XX 249#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2430) || \
250 defined(CONFIG_ARCH_OMAP34XX)
236 251
237static struct omap_mmc_conf mmc2_conf; 252static struct omap_mmc_platform_data mmc2_data;
238 253
239static u64 mmc2_dmamask = 0xffffffff; 254static u64 mmc2_dmamask = 0xffffffff;
240 255
241static struct resource mmc2_resources[] = { 256static struct resource mmc2_resources[] = {
242 { 257 {
243 .start = OMAP_MMC2_BASE, 258 .start = OMAP_MMC2_BASE,
244 .end = OMAP_MMC2_BASE + 0x7f, 259 .end = OMAP_MMC2_END,
245 .flags = IORESOURCE_MEM, 260 .flags = IORESOURCE_MEM,
246 }, 261 },
247 { 262 {
248 .start = INT_1610_MMC2, 263 .start = OMAP_MMC2_INT,
249 .flags = IORESOURCE_IRQ, 264 .flags = IORESOURCE_IRQ,
250 }, 265 },
251}; 266};
@@ -255,26 +270,19 @@ static struct platform_device mmc_omap_device2 = {
255 .id = 2, 270 .id = 2,
256 .dev = { 271 .dev = {
257 .dma_mask = &mmc2_dmamask, 272 .dma_mask = &mmc2_dmamask,
258 .platform_data = &mmc2_conf, 273 .platform_data = &mmc2_data,
259 }, 274 },
260 .num_resources = ARRAY_SIZE(mmc2_resources), 275 .num_resources = ARRAY_SIZE(mmc2_resources),
261 .resource = mmc2_resources, 276 .resource = mmc2_resources,
262}; 277};
263#endif 278#endif
264 279
265static void __init omap_init_mmc(void) 280static inline void omap_init_mmc_conf(const struct omap_mmc_config *mmc_conf)
266{ 281{
267 const struct omap_mmc_config *mmc_conf; 282 if (cpu_is_omap2430() || cpu_is_omap34xx())
268 const struct omap_mmc_conf *mmc;
269
270 /* NOTE: assumes MMC was never (wrongly) enabled */
271 mmc_conf = omap_get_config(OMAP_TAG_MMC, struct omap_mmc_config);
272 if (!mmc_conf)
273 return; 283 return;
274 284
275 /* block 1 is always available and has just one pinout option */ 285 if (mmc_conf->mmc[0].enabled) {
276 mmc = &mmc_conf->mmc[0];
277 if (mmc->enabled) {
278 if (cpu_is_omap24xx()) { 286 if (cpu_is_omap24xx()) {
279 omap_cfg_reg(H18_24XX_MMC_CMD); 287 omap_cfg_reg(H18_24XX_MMC_CMD);
280 omap_cfg_reg(H15_24XX_MMC_CLKI); 288 omap_cfg_reg(H15_24XX_MMC_CLKI);
@@ -292,7 +300,7 @@ static void __init omap_init_mmc(void)
292 omap_cfg_reg(P20_1710_MMC_DATDIR0); 300 omap_cfg_reg(P20_1710_MMC_DATDIR0);
293 } 301 }
294 } 302 }
295 if (mmc->wire4) { 303 if (mmc_conf->mmc[0].wire4) {
296 if (cpu_is_omap24xx()) { 304 if (cpu_is_omap24xx()) {
297 omap_cfg_reg(H14_24XX_MMC_DAT1); 305 omap_cfg_reg(H14_24XX_MMC_DAT1);
298 omap_cfg_reg(E19_24XX_MMC_DAT2); 306 omap_cfg_reg(E19_24XX_MMC_DAT2);
@@ -303,25 +311,35 @@ static void __init omap_init_mmc(void)
303 } else { 311 } else {
304 omap_cfg_reg(MMC_DAT1); 312 omap_cfg_reg(MMC_DAT1);
305 /* NOTE: DAT2 can be on W10 (here) or M15 */ 313 /* NOTE: DAT2 can be on W10 (here) or M15 */
306 if (!mmc->nomux) 314 if (!mmc_conf->mmc[0].nomux)
307 omap_cfg_reg(MMC_DAT2); 315 omap_cfg_reg(MMC_DAT2);
308 omap_cfg_reg(MMC_DAT3); 316 omap_cfg_reg(MMC_DAT3);
309 } 317 }
310 } 318 }
311 mmc1_conf = *mmc; 319#if defined(CONFIG_ARCH_OMAP2420)
312 (void) platform_device_register(&mmc_omap_device1); 320 if (mmc_conf->mmc[0].internal_clock) {
321 /*
322 * Use internal loop-back in MMC/SDIO
323 * Module Input Clock selection
324 */
325 if (cpu_is_omap24xx()) {
326 u32 v = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
327 v |= (1 << 24); /* not used in 243x */
328 omap_ctrl_writel(v, OMAP2_CONTROL_DEVCONF0);
329 }
330 }
331#endif
313 } 332 }
314 333
315#ifdef CONFIG_ARCH_OMAP16XX 334#ifdef CONFIG_ARCH_OMAP16XX
316 /* block 2 is on newer chips, and has many pinout options */ 335 /* block 2 is on newer chips, and has many pinout options */
317 mmc = &mmc_conf->mmc[1]; 336 if (mmc_conf->mmc[1].enabled) {
318 if (mmc->enabled) { 337 if (!mmc_conf->mmc[1].nomux) {
319 if (!mmc->nomux) {
320 omap_cfg_reg(Y8_1610_MMC2_CMD); 338 omap_cfg_reg(Y8_1610_MMC2_CMD);
321 omap_cfg_reg(Y10_1610_MMC2_CLK); 339 omap_cfg_reg(Y10_1610_MMC2_CLK);
322 omap_cfg_reg(R18_1610_MMC2_CLKIN); 340 omap_cfg_reg(R18_1610_MMC2_CLKIN);
323 omap_cfg_reg(W8_1610_MMC2_DAT0); 341 omap_cfg_reg(W8_1610_MMC2_DAT0);
324 if (mmc->wire4) { 342 if (mmc_conf->mmc[1].wire4) {
325 omap_cfg_reg(V8_1610_MMC2_DAT1); 343 omap_cfg_reg(V8_1610_MMC2_DAT1);
326 omap_cfg_reg(W15_1610_MMC2_DAT2); 344 omap_cfg_reg(W15_1610_MMC2_DAT2);
327 omap_cfg_reg(R10_1610_MMC2_DAT3); 345 omap_cfg_reg(R10_1610_MMC2_DAT3);
@@ -337,14 +355,55 @@ static void __init omap_init_mmc(void)
337 if (cpu_is_omap1710()) 355 if (cpu_is_omap1710())
338 omap_writel(omap_readl(MOD_CONF_CTRL_1) | (1 << 24), 356 omap_writel(omap_readl(MOD_CONF_CTRL_1) | (1 << 24),
339 MOD_CONF_CTRL_1); 357 MOD_CONF_CTRL_1);
340 mmc2_conf = *mmc; 358 }
359#endif
360}
361
362static void __init omap_init_mmc(void)
363{
364 const struct omap_mmc_config *mmc_conf;
365
366 /* NOTE: assumes MMC was never (wrongly) enabled */
367 mmc_conf = omap_get_config(OMAP_TAG_MMC, struct omap_mmc_config);
368 if (!mmc_conf)
369 return;
370
371 omap_init_mmc_conf(mmc_conf);
372
373 if (mmc_conf->mmc[0].enabled) {
374 mmc1_data.conf = mmc_conf->mmc[0];
375 (void) platform_device_register(&mmc_omap_device1);
376 }
377
378#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2430) || \
379 defined(CONFIG_ARCH_OMAP34XX)
380 if (mmc_conf->mmc[1].enabled) {
381 mmc2_data.conf = mmc_conf->mmc[1];
341 (void) platform_device_register(&mmc_omap_device2); 382 (void) platform_device_register(&mmc_omap_device2);
342 } 383 }
343#endif 384#endif
344 return;
345} 385}
386
387void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info)
388{
389 switch (host) {
390 case 1:
391 mmc1_data = *info;
392 break;
393#if defined(CONFIG_ARCH_OMAP16XX) || defined(CONFIG_ARCH_OMAP2430) || \
394 defined(CONFIG_ARCH_OMAP34XX)
395 case 2:
396 mmc2_data = *info;
397 break;
398#endif
399 default:
400 BUG();
401 }
402}
403
346#else 404#else
347static inline void omap_init_mmc(void) {} 405static inline void omap_init_mmc(void) {}
406void omap_set_mmc_info(int host, const struct omap_mmc_platform_data *info) {}
348#endif 407#endif
349 408
350/*-------------------------------------------------------------------------*/ 409/*-------------------------------------------------------------------------*/
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index 743a4abcd85d..606fcffdcefc 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -32,9 +32,9 @@
32#include <linux/list.h> 32#include <linux/list.h>
33#include <linux/clk.h> 33#include <linux/clk.h>
34#include <linux/delay.h> 34#include <linux/delay.h>
35#include <linux/io.h>
35#include <mach/hardware.h> 36#include <mach/hardware.h>
36#include <mach/dmtimer.h> 37#include <mach/dmtimer.h>
37#include <asm/io.h>
38#include <mach/irqs.h> 38#include <mach/irqs.h>
39 39
40/* register offsets */ 40/* register offsets */
diff --git a/arch/arm/plat-omap/fb.c b/arch/arm/plat-omap/fb.c
index 17a92a31e746..ce6b4baeedec 100644
--- a/arch/arm/plat-omap/fb.c
+++ b/arch/arm/plat-omap/fb.c
@@ -27,9 +27,9 @@
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/platform_device.h> 28#include <linux/platform_device.h>
29#include <linux/bootmem.h> 29#include <linux/bootmem.h>
30#include <linux/io.h>
30 31
31#include <mach/hardware.h> 32#include <mach/hardware.h>
32#include <asm/io.h>
33#include <asm/mach/map.h> 33#include <asm/mach/map.h>
34 34
35#include <mach/board.h> 35#include <mach/board.h>
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c
index 3e76ee2bc731..5935ae4e550b 100644
--- a/arch/arm/plat-omap/gpio.c
+++ b/arch/arm/plat-omap/gpio.c
@@ -17,6 +17,7 @@
17#include <linux/sysdev.h> 17#include <linux/sysdev.h>
18#include <linux/err.h> 18#include <linux/err.h>
19#include <linux/clk.h> 19#include <linux/clk.h>
20#include <linux/io.h>
20 21
21#include <mach/hardware.h> 22#include <mach/hardware.h>
22#include <asm/irq.h> 23#include <asm/irq.h>
@@ -24,8 +25,6 @@
24#include <mach/gpio.h> 25#include <mach/gpio.h>
25#include <asm/mach/irq.h> 26#include <asm/mach/irq.h>
26 27
27#include <asm/io.h>
28
29/* 28/*
30 * OMAP1510 GPIO registers 29 * OMAP1510 GPIO registers
31 */ 30 */
@@ -1051,13 +1050,10 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc)
1051 1050
1052 gpio_irq = bank->virtual_irq_start; 1051 gpio_irq = bank->virtual_irq_start;
1053 for (; isr != 0; isr >>= 1, gpio_irq++) { 1052 for (; isr != 0; isr >>= 1, gpio_irq++) {
1054 struct irq_desc *d;
1055
1056 if (!(isr & 1)) 1053 if (!(isr & 1))
1057 continue; 1054 continue;
1058 d = irq_desc + gpio_irq;
1059 1055
1060 desc_handle_irq(gpio_irq, d); 1056 generic_handle_irq(gpio_irq);
1061 } 1057 }
1062 } 1058 }
1063 /* if bank has any level sensitive GPIO pin interrupt 1059 /* if bank has any level sensitive GPIO pin interrupt
@@ -1488,7 +1484,7 @@ static int __init _omap_gpio_init(void)
1488 bank->chip.set = gpio_set; 1484 bank->chip.set = gpio_set;
1489 if (bank_is_mpuio(bank)) { 1485 if (bank_is_mpuio(bank)) {
1490 bank->chip.label = "mpuio"; 1486 bank->chip.label = "mpuio";
1491#ifdef CONFIG_ARCH_OMAP1 1487#ifdef CONFIG_ARCH_OMAP16XX
1492 bank->chip.dev = &omap_mpuio_device.dev; 1488 bank->chip.dev = &omap_mpuio_device.dev;
1493#endif 1489#endif
1494 bank->chip.base = OMAP_MPUIO(0); 1490 bank->chip.base = OMAP_MPUIO(0);
diff --git a/arch/arm/plat-omap/include/mach/gpio.h b/arch/arm/plat-omap/include/mach/gpio.h
index 94ce2780e8ee..8c71e288860f 100644
--- a/arch/arm/plat-omap/include/mach/gpio.h
+++ b/arch/arm/plat-omap/include/mach/gpio.h
@@ -26,8 +26,8 @@
26#ifndef __ASM_ARCH_OMAP_GPIO_H 26#ifndef __ASM_ARCH_OMAP_GPIO_H
27#define __ASM_ARCH_OMAP_GPIO_H 27#define __ASM_ARCH_OMAP_GPIO_H
28 28
29#include <linux/io.h>
29#include <mach/irqs.h> 30#include <mach/irqs.h>
30#include <asm/io.h>
31 31
32#define OMAP_MPUIO_BASE (void __iomem *)0xfffb5000 32#define OMAP_MPUIO_BASE (void __iomem *)0xfffb5000
33 33
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h
index 17248bbf3f27..62aa7dfb9464 100644
--- a/arch/arm/plat-omap/include/mach/irqs.h
+++ b/arch/arm/plat-omap/include/mach/irqs.h
@@ -280,6 +280,8 @@
280#define INT_24XX_USB_IRQ_OTG 80 280#define INT_24XX_USB_IRQ_OTG 80
281#define INT_24XX_MMC_IRQ 83 281#define INT_24XX_MMC_IRQ 83
282 282
283#define INT_34XX_BENCH_MPU_EMUL 3
284
283/* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730) and 285/* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730) and
284 * 16 MPUIO lines */ 286 * 16 MPUIO lines */
285#define OMAP_MAX_GPIO_LINES 192 287#define OMAP_MAX_GPIO_LINES 192
diff --git a/arch/arm/plat-omap/include/mach/mcbsp.h b/arch/arm/plat-omap/include/mach/mcbsp.h
index 6eb44a92871d..8fdb95e26fcd 100644
--- a/arch/arm/plat-omap/include/mach/mcbsp.h
+++ b/arch/arm/plat-omap/include/mach/mcbsp.h
@@ -315,6 +315,7 @@ struct omap_mcbsp_ops {
315}; 315};
316 316
317struct omap_mcbsp_platform_data { 317struct omap_mcbsp_platform_data {
318 unsigned long phys_base;
318 u32 virt_base; 319 u32 virt_base;
319 u8 dma_rx_sync, dma_tx_sync; 320 u8 dma_rx_sync, dma_tx_sync;
320 u16 rx_irq, tx_irq; 321 u16 rx_irq, tx_irq;
@@ -324,6 +325,7 @@ struct omap_mcbsp_platform_data {
324 325
325struct omap_mcbsp { 326struct omap_mcbsp {
326 struct device *dev; 327 struct device *dev;
328 unsigned long phys_base;
327 u32 io_base; 329 u32 io_base;
328 u8 id; 330 u8 id;
329 u8 free; 331 u8 free;
diff --git a/arch/arm/plat-omap/mailbox.c b/arch/arm/plat-omap/mailbox.c
index 1d7aec1a691a..b52ce053e6f2 100644
--- a/arch/arm/plat-omap/mailbox.c
+++ b/arch/arm/plat-omap/mailbox.c
@@ -30,7 +30,7 @@
30#include <linux/blkdev.h> 30#include <linux/blkdev.h>
31#include <linux/err.h> 31#include <linux/err.h>
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <asm/io.h> 33#include <linux/io.h>
34#include <mach/mailbox.h> 34#include <mach/mailbox.h>
35#include "mailbox.h" 35#include "mailbox.h"
36 36
diff --git a/arch/arm/plat-omap/mcbsp.c b/arch/arm/plat-omap/mcbsp.c
index d0844050f2d2..014d26574bb6 100644
--- a/arch/arm/plat-omap/mcbsp.c
+++ b/arch/arm/plat-omap/mcbsp.c
@@ -651,7 +651,7 @@ int omap_mcbsp_xmit_buffer(unsigned int id, dma_addr_t buffer,
651 omap_set_dma_dest_params(mcbsp[id].dma_tx_lch, 651 omap_set_dma_dest_params(mcbsp[id].dma_tx_lch,
652 src_port, 652 src_port,
653 OMAP_DMA_AMODE_CONSTANT, 653 OMAP_DMA_AMODE_CONSTANT,
654 mcbsp[id].io_base + OMAP_MCBSP_REG_DXR1, 654 mcbsp[id].phys_base + OMAP_MCBSP_REG_DXR1,
655 0, 0); 655 0, 0);
656 656
657 omap_set_dma_src_params(mcbsp[id].dma_tx_lch, 657 omap_set_dma_src_params(mcbsp[id].dma_tx_lch,
@@ -712,7 +712,7 @@ int omap_mcbsp_recv_buffer(unsigned int id, dma_addr_t buffer,
712 omap_set_dma_src_params(mcbsp[id].dma_rx_lch, 712 omap_set_dma_src_params(mcbsp[id].dma_rx_lch,
713 src_port, 713 src_port,
714 OMAP_DMA_AMODE_CONSTANT, 714 OMAP_DMA_AMODE_CONSTANT,
715 mcbsp[id].io_base + OMAP_MCBSP_REG_DRR1, 715 mcbsp[id].phys_base + OMAP_MCBSP_REG_DRR1,
716 0, 0); 716 0, 0);
717 717
718 omap_set_dma_dest_params(mcbsp[id].dma_rx_lch, 718 omap_set_dma_dest_params(mcbsp[id].dma_rx_lch,
@@ -830,6 +830,7 @@ static int __init omap_mcbsp_probe(struct platform_device *pdev)
830 mcbsp[id].dma_tx_lch = -1; 830 mcbsp[id].dma_tx_lch = -1;
831 mcbsp[id].dma_rx_lch = -1; 831 mcbsp[id].dma_rx_lch = -1;
832 832
833 mcbsp[id].phys_base = pdata->phys_base;
833 mcbsp[id].io_base = pdata->virt_base; 834 mcbsp[id].io_base = pdata->virt_base;
834 /* Default I/O is IRQ based */ 835 /* Default I/O is IRQ based */
835 mcbsp[id].io_type = OMAP_MCBSP_IRQ_IO; 836 mcbsp[id].io_type = OMAP_MCBSP_IRQ_IO;
diff --git a/arch/arm/plat-omap/mux.c b/arch/arm/plat-omap/mux.c
index 847df208c46c..80b040fd5ca7 100644
--- a/arch/arm/plat-omap/mux.c
+++ b/arch/arm/plat-omap/mux.c
@@ -25,8 +25,8 @@
25#include <linux/module.h> 25#include <linux/module.h>
26#include <linux/init.h> 26#include <linux/init.h>
27#include <linux/kernel.h> 27#include <linux/kernel.h>
28#include <linux/io.h>
28#include <asm/system.h> 29#include <asm/system.h>
29#include <asm/io.h>
30#include <linux/spinlock.h> 30#include <linux/spinlock.h>
31#include <mach/mux.h> 31#include <mach/mux.h>
32 32
diff --git a/arch/arm/plat-omap/ocpi.c b/arch/arm/plat-omap/ocpi.c
index 8bdbf979a257..ebe0c73c8901 100644
--- a/arch/arm/plat-omap/ocpi.c
+++ b/arch/arm/plat-omap/ocpi.c
@@ -31,8 +31,8 @@
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <linux/err.h> 32#include <linux/err.h>
33#include <linux/clk.h> 33#include <linux/clk.h>
34#include <linux/io.h>
34 35
35#include <asm/io.h>
36#include <mach/hardware.h> 36#include <mach/hardware.h>
37 37
38#define OCPI_BASE 0xfffec320 38#define OCPI_BASE 0xfffec320
diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
index ac67eeb6ca6a..e0003e0746e7 100644
--- a/arch/arm/plat-omap/sram.c
+++ b/arch/arm/plat-omap/sram.c
@@ -15,9 +15,9 @@
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/kernel.h> 16#include <linux/kernel.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/io.h>
18 19
19#include <asm/tlb.h> 20#include <asm/tlb.h>
20#include <asm/io.h>
21#include <asm/cacheflush.h> 21#include <asm/cacheflush.h>
22 22
23#include <asm/mach/map.h> 23#include <asm/mach/map.h>
diff --git a/arch/arm/plat-omap/usb.c b/arch/arm/plat-omap/usb.c
index 777485e0636b..67ca1e216df7 100644
--- a/arch/arm/plat-omap/usb.c
+++ b/arch/arm/plat-omap/usb.c
@@ -27,8 +27,8 @@
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/platform_device.h> 28#include <linux/platform_device.h>
29#include <linux/usb/otg.h> 29#include <linux/usb/otg.h>
30#include <linux/io.h>
30 31
31#include <asm/io.h>
32#include <asm/irq.h> 32#include <asm/irq.h>
33#include <asm/system.h> 33#include <asm/system.h>
34#include <mach/hardware.h> 34#include <mach/hardware.h>
diff --git a/arch/arm/plat-s3c24xx/clock.c b/arch/arm/plat-s3c24xx/clock.c
index 54d4b8e2263c..400541359bfb 100644
--- a/arch/arm/plat-s3c24xx/clock.c
+++ b/arch/arm/plat-s3c24xx/clock.c
@@ -39,10 +39,10 @@
39#include <linux/clk.h> 39#include <linux/clk.h>
40#include <linux/mutex.h> 40#include <linux/mutex.h>
41#include <linux/delay.h> 41#include <linux/delay.h>
42#include <linux/io.h>
42 43
43#include <mach/hardware.h> 44#include <mach/hardware.h>
44#include <asm/irq.h> 45#include <asm/irq.h>
45#include <asm/io.h>
46 46
47#include <mach/regs-clock.h> 47#include <mach/regs-clock.h>
48#include <mach/regs-gpio.h> 48#include <mach/regs-gpio.h>
diff --git a/arch/arm/plat-s3c24xx/common-smdk.c b/arch/arm/plat-s3c24xx/common-smdk.c
index 1863a1b1bc49..d528f460f6bc 100644
--- a/arch/arm/plat-s3c24xx/common-smdk.c
+++ b/arch/arm/plat-s3c24xx/common-smdk.c
@@ -25,6 +25,7 @@
25#include <linux/mtd/nand.h> 25#include <linux/mtd/nand.h>
26#include <linux/mtd/nand_ecc.h> 26#include <linux/mtd/nand_ecc.h>
27#include <linux/mtd/partitions.h> 27#include <linux/mtd/partitions.h>
28#include <linux/io.h>
28 29
29#include <asm/mach/arch.h> 30#include <asm/mach/arch.h>
30#include <asm/mach/map.h> 31#include <asm/mach/map.h>
@@ -32,7 +33,6 @@
32 33
33#include <asm/mach-types.h> 34#include <asm/mach-types.h>
34#include <mach/hardware.h> 35#include <mach/hardware.h>
35#include <asm/io.h>
36#include <asm/irq.h> 36#include <asm/irq.h>
37 37
38#include <mach/regs-gpio.h> 38#include <mach/regs-gpio.h>
diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c
index 89ce60eabd5b..9c607bbc9343 100644
--- a/arch/arm/plat-s3c24xx/cpu.c
+++ b/arch/arm/plat-s3c24xx/cpu.c
@@ -29,11 +29,11 @@
29#include <linux/serial_core.h> 29#include <linux/serial_core.h>
30#include <linux/platform_device.h> 30#include <linux/platform_device.h>
31#include <linux/delay.h> 31#include <linux/delay.h>
32#include <linux/io.h>
33#include <linux/delay.h>
32 34
33#include <mach/hardware.h> 35#include <mach/hardware.h>
34#include <asm/irq.h> 36#include <asm/irq.h>
35#include <asm/io.h>
36#include <asm/delay.h>
37#include <asm/cacheflush.h> 37#include <asm/cacheflush.h>
38 38
39#include <asm/mach/arch.h> 39#include <asm/mach/arch.h>
diff --git a/arch/arm/plat-s3c24xx/devs.c b/arch/arm/plat-s3c24xx/devs.c
index d6fb76578b11..6b13b5455dfc 100644
--- a/arch/arm/plat-s3c24xx/devs.c
+++ b/arch/arm/plat-s3c24xx/devs.c
@@ -19,13 +19,13 @@
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/serial_core.h> 20#include <linux/serial_core.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/io.h>
22 23
23#include <asm/mach/arch.h> 24#include <asm/mach/arch.h>
24#include <asm/mach/map.h> 25#include <asm/mach/map.h>
25#include <asm/mach/irq.h> 26#include <asm/mach/irq.h>
26#include <mach/fb.h> 27#include <mach/fb.h>
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h> 29#include <asm/irq.h>
30 30
31#include <asm/plat-s3c/regs-serial.h> 31#include <asm/plat-s3c/regs-serial.h>
diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
index 08c2aaf14c41..d6344461a83b 100644
--- a/arch/arm/plat-s3c24xx/dma.c
+++ b/arch/arm/plat-s3c24xx/dma.c
@@ -26,11 +26,11 @@
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/errno.h> 27#include <linux/errno.h>
28#include <linux/delay.h> 28#include <linux/delay.h>
29#include <linux/io.h>
29 30
30#include <asm/system.h> 31#include <asm/system.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
32#include <mach/hardware.h> 33#include <mach/hardware.h>
33#include <asm/io.h>
34#include <asm/dma.h> 34#include <asm/dma.h>
35 35
36#include <asm/mach/dma.h> 36#include <asm/mach/dma.h>
diff --git a/arch/arm/plat-s3c24xx/gpio.c b/arch/arm/plat-s3c24xx/gpio.c
index dd27334e3d7e..4a899c279eb5 100644
--- a/arch/arm/plat-s3c24xx/gpio.c
+++ b/arch/arm/plat-s3c24xx/gpio.c
@@ -26,10 +26,10 @@
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/interrupt.h> 27#include <linux/interrupt.h>
28#include <linux/ioport.h> 28#include <linux/ioport.h>
29#include <linux/io.h>
29 30
30#include <mach/hardware.h> 31#include <mach/hardware.h>
31#include <asm/irq.h> 32#include <asm/irq.h>
32#include <asm/io.h>
33 33
34#include <mach/regs-gpio.h> 34#include <mach/regs-gpio.h>
35 35
diff --git a/arch/arm/plat-s3c24xx/gpiolib.c b/arch/arm/plat-s3c24xx/gpiolib.c
index 849f8469714a..3caec6bad3eb 100644
--- a/arch/arm/plat-s3c24xx/gpiolib.c
+++ b/arch/arm/plat-s3c24xx/gpiolib.c
@@ -39,7 +39,7 @@ static inline struct s3c24xx_gpio_chip *to_s3c_chip(struct gpio_chip *gpc)
39 * drivers themsevles. 39 * drivers themsevles.
40 */ 40 */
41 41
42int s3c24xx_gpiolib_input(struct gpio_chip *chip, unsigned offset) 42static int s3c24xx_gpiolib_input(struct gpio_chip *chip, unsigned offset)
43{ 43{
44 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 44 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
45 void __iomem *base = ourchip->base; 45 void __iomem *base = ourchip->base;
@@ -58,7 +58,7 @@ int s3c24xx_gpiolib_input(struct gpio_chip *chip, unsigned offset)
58 return 0; 58 return 0;
59} 59}
60 60
61int s3c24xx_gpiolib_output(struct gpio_chip *chip, 61static int s3c24xx_gpiolib_output(struct gpio_chip *chip,
62 unsigned offset, int value) 62 unsigned offset, int value)
63{ 63{
64 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 64 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
@@ -86,7 +86,8 @@ int s3c24xx_gpiolib_output(struct gpio_chip *chip,
86 return 0; 86 return 0;
87} 87}
88 88
89void s3c24xx_gpiolib_set(struct gpio_chip *chip, unsigned offset, int value) 89static void s3c24xx_gpiolib_set(struct gpio_chip *chip,
90 unsigned offset, int value)
90{ 91{
91 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 92 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
92 void __iomem *base = ourchip->base; 93 void __iomem *base = ourchip->base;
@@ -104,7 +105,7 @@ void s3c24xx_gpiolib_set(struct gpio_chip *chip, unsigned offset, int value)
104 local_irq_restore(flags); 105 local_irq_restore(flags);
105} 106}
106 107
107int s3c24xx_gpiolib_get(struct gpio_chip *chip, unsigned offset) 108static int s3c24xx_gpiolib_get(struct gpio_chip *chip, unsigned offset)
108{ 109{
109 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip); 110 struct s3c24xx_gpio_chip *ourchip = to_s3c_chip(chip);
110 unsigned long val; 111 unsigned long val;
@@ -150,8 +151,7 @@ static int s3c24xx_gpiolib_banka_output(struct gpio_chip *chip,
150 return 0; 151 return 0;
151} 152}
152 153
153 154static struct s3c24xx_gpio_chip gpios[] = {
154struct s3c24xx_gpio_chip gpios[] = {
155 [0] = { 155 [0] = {
156 .base = S3C24XX_GPIO_BASE(S3C2410_GPA0), 156 .base = S3C24XX_GPIO_BASE(S3C2410_GPA0),
157 .chip = { 157 .chip = {
diff --git a/arch/arm/plat-s3c24xx/irq.c b/arch/arm/plat-s3c24xx/irq.c
index 36cefe176835..590fc5a3ab06 100644
--- a/arch/arm/plat-s3c24xx/irq.c
+++ b/arch/arm/plat-s3c24xx/irq.c
@@ -55,10 +55,10 @@
55#include <linux/interrupt.h> 55#include <linux/interrupt.h>
56#include <linux/ioport.h> 56#include <linux/ioport.h>
57#include <linux/sysdev.h> 57#include <linux/sysdev.h>
58#include <linux/io.h>
58 59
59#include <mach/hardware.h> 60#include <mach/hardware.h>
60#include <asm/irq.h> 61#include <asm/irq.h>
61#include <asm/io.h>
62 62
63#include <asm/mach/irq.h> 63#include <asm/mach/irq.h>
64 64
@@ -468,7 +468,6 @@ static void s3c_irq_demux_adc(unsigned int irq,
468{ 468{
469 unsigned int subsrc, submsk; 469 unsigned int subsrc, submsk;
470 unsigned int offset = 9; 470 unsigned int offset = 9;
471 struct irq_desc *mydesc;
472 471
473 /* read the current pending interrupts, and the mask 472 /* read the current pending interrupts, and the mask
474 * for what it is available */ 473 * for what it is available */
@@ -482,12 +481,10 @@ static void s3c_irq_demux_adc(unsigned int irq,
482 481
483 if (subsrc != 0) { 482 if (subsrc != 0) {
484 if (subsrc & 1) { 483 if (subsrc & 1) {
485 mydesc = irq_desc + IRQ_TC; 484 generic_handle_irq(IRQ_TC);
486 desc_handle_irq(IRQ_TC, mydesc);
487 } 485 }
488 if (subsrc & 2) { 486 if (subsrc & 2) {
489 mydesc = irq_desc + IRQ_ADC; 487 generic_handle_irq(IRQ_ADC);
490 desc_handle_irq(IRQ_ADC, mydesc);
491 } 488 }
492 } 489 }
493} 490}
@@ -496,7 +493,6 @@ static void s3c_irq_demux_uart(unsigned int start)
496{ 493{
497 unsigned int subsrc, submsk; 494 unsigned int subsrc, submsk;
498 unsigned int offset = start - IRQ_S3CUART_RX0; 495 unsigned int offset = start - IRQ_S3CUART_RX0;
499 struct irq_desc *desc;
500 496
501 /* read the current pending interrupts, and the mask 497 /* read the current pending interrupts, and the mask
502 * for what it is available */ 498 * for what it is available */
@@ -512,20 +508,14 @@ static void s3c_irq_demux_uart(unsigned int start)
512 subsrc &= 7; 508 subsrc &= 7;
513 509
514 if (subsrc != 0) { 510 if (subsrc != 0) {
515 desc = irq_desc + start;
516
517 if (subsrc & 1) 511 if (subsrc & 1)
518 desc_handle_irq(start, desc); 512 generic_handle_irq(start);
519
520 desc++;
521 513
522 if (subsrc & 2) 514 if (subsrc & 2)
523 desc_handle_irq(start+1, desc); 515 generic_handle_irq(start+1);
524
525 desc++;
526 516
527 if (subsrc & 4) 517 if (subsrc & 4)
528 desc_handle_irq(start+2, desc); 518 generic_handle_irq(start+2);
529 } 519 }
530} 520}
531 521
@@ -572,7 +562,7 @@ s3c_irq_demux_extint8(unsigned int irq,
572 eintpnd &= ~(1<<irq); 562 eintpnd &= ~(1<<irq);
573 563
574 irq += (IRQ_EINT4 - 4); 564 irq += (IRQ_EINT4 - 4);
575 desc_handle_irq(irq, irq_desc + irq); 565 generic_handle_irq(irq);
576 } 566 }
577 567
578} 568}
@@ -595,7 +585,7 @@ s3c_irq_demux_extint4t7(unsigned int irq,
595 585
596 irq += (IRQ_EINT4 - 4); 586 irq += (IRQ_EINT4 - 4);
597 587
598 desc_handle_irq(irq, irq_desc + irq); 588 generic_handle_irq(irq);
599 } 589 }
600} 590}
601 591
diff --git a/arch/arm/plat-s3c24xx/pm-simtec.c b/arch/arm/plat-s3c24xx/pm-simtec.c
index e6705014b2a0..0a074d35890a 100644
--- a/arch/arm/plat-s3c24xx/pm-simtec.c
+++ b/arch/arm/plat-s3c24xx/pm-simtec.c
@@ -20,12 +20,12 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/sysdev.h> 21#include <linux/sysdev.h>
22#include <linux/device.h> 22#include <linux/device.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
26 27
27#include <mach/hardware.h> 28#include <mach/hardware.h>
28#include <asm/io.h>
29 29
30#include <mach/map.h> 30#include <mach/map.h>
31#include <mach/regs-gpio.h> 31#include <mach/regs-gpio.h>
diff --git a/arch/arm/plat-s3c24xx/pm.c b/arch/arm/plat-s3c24xx/pm.c
index fc4b731a949c..d3934b1119a9 100644
--- a/arch/arm/plat-s3c24xx/pm.c
+++ b/arch/arm/plat-s3c24xx/pm.c
@@ -35,10 +35,10 @@
35#include <linux/ioport.h> 35#include <linux/ioport.h>
36#include <linux/delay.h> 36#include <linux/delay.h>
37#include <linux/serial_core.h> 37#include <linux/serial_core.h>
38#include <linux/io.h>
38 39
39#include <asm/cacheflush.h> 40#include <asm/cacheflush.h>
40#include <mach/hardware.h> 41#include <mach/hardware.h>
41#include <asm/io.h>
42 42
43#include <asm/plat-s3c/regs-serial.h> 43#include <asm/plat-s3c/regs-serial.h>
44#include <mach/regs-clock.h> 44#include <mach/regs-clock.h>
diff --git a/arch/arm/plat-s3c24xx/pwm-clock.c b/arch/arm/plat-s3c24xx/pwm-clock.c
index ccfdc9d7ae4b..306cc9c6f9ef 100644
--- a/arch/arm/plat-s3c24xx/pwm-clock.c
+++ b/arch/arm/plat-s3c24xx/pwm-clock.c
@@ -89,7 +89,7 @@ static unsigned long clk_pwm_scaler_getrate(struct clk *clk)
89 89
90/* TODO - add set rate calls. */ 90/* TODO - add set rate calls. */
91 91
92struct clk clk_timer_scaler[] = { 92static struct clk clk_timer_scaler[] = {
93 [0] = { 93 [0] = {
94 .name = "pwm-scaler0", 94 .name = "pwm-scaler0",
95 .id = -1, 95 .id = -1,
@@ -102,7 +102,7 @@ struct clk clk_timer_scaler[] = {
102 }, 102 },
103}; 103};
104 104
105struct clk clk_timer_tclk[] = { 105static struct clk clk_timer_tclk[] = {
106 [0] = { 106 [0] = {
107 .name = "pwm-tclk0", 107 .name = "pwm-tclk0",
108 .id = -1, 108 .id = -1,
@@ -232,7 +232,7 @@ static int clk_pwm_tdiv_set_rate(struct clk *clk, unsigned long rate)
232 return 0; 232 return 0;
233} 233}
234 234
235struct pwm_tdiv_clk clk_timer_tdiv[] = { 235static struct pwm_tdiv_clk clk_timer_tdiv[] = {
236 [0] = { 236 [0] = {
237 .clk = { 237 .clk = {
238 .name = "pwm-tdiv", 238 .name = "pwm-tdiv",
diff --git a/arch/arm/plat-s3c24xx/pwm.c b/arch/arm/plat-s3c24xx/pwm.c
index 18c4bdc49a05..7a92c938542a 100644
--- a/arch/arm/plat-s3c24xx/pwm.c
+++ b/arch/arm/plat-s3c24xx/pwm.c
@@ -19,6 +19,7 @@
19#include <linux/io.h> 19#include <linux/io.h>
20#include <linux/pwm.h> 20#include <linux/pwm.h>
21 21
22#include <asm/plat-s3c24xx/devs.h>
22#include <asm/plat-s3c/regs-timer.h> 23#include <asm/plat-s3c/regs-timer.h>
23 24
24struct pwm_device { 25struct pwm_device {
@@ -38,7 +39,7 @@ struct pwm_device {
38 unsigned char pwm_id; 39 unsigned char pwm_id;
39}; 40};
40 41
41#define pwm_dbg(_pwm, msg...) dev_info(&(_pwm)->pdev->dev, msg) 42#define pwm_dbg(_pwm, msg...) dev_dbg(&(_pwm)->pdev->dev, msg)
42 43
43static struct clk *clk_scaler[2]; 44static struct clk *clk_scaler[2];
44 45
@@ -168,7 +169,7 @@ void pwm_disable(struct pwm_device *pwm)
168 169
169EXPORT_SYMBOL(pwm_disable); 170EXPORT_SYMBOL(pwm_disable);
170 171
171unsigned long pwm_calc_tin(struct pwm_device *pwm, unsigned long freq) 172static unsigned long pwm_calc_tin(struct pwm_device *pwm, unsigned long freq)
172{ 173{
173 unsigned long tin_parent_rate; 174 unsigned long tin_parent_rate;
174 unsigned int div; 175 unsigned int div;
diff --git a/arch/arm/plat-s3c24xx/s3c244x-clock.c b/arch/arm/plat-s3c24xx/s3c244x-clock.c
index 8a5fffde6631..119647a5eaa6 100644
--- a/arch/arm/plat-s3c24xx/s3c244x-clock.c
+++ b/arch/arm/plat-s3c24xx/s3c244x-clock.c
@@ -33,11 +33,11 @@
33#include <linux/ioport.h> 33#include <linux/ioport.h>
34#include <linux/mutex.h> 34#include <linux/mutex.h>
35#include <linux/clk.h> 35#include <linux/clk.h>
36#include <linux/io.h>
36 37
37#include <mach/hardware.h> 38#include <mach/hardware.h>
38#include <asm/atomic.h> 39#include <asm/atomic.h>
39#include <asm/irq.h> 40#include <asm/irq.h>
40#include <asm/io.h>
41 41
42#include <mach/regs-clock.h> 42#include <mach/regs-clock.h>
43 43
diff --git a/arch/arm/plat-s3c24xx/s3c244x-irq.c b/arch/arm/plat-s3c24xx/s3c244x-irq.c
index f3dc38cf1de4..0601c5f3230b 100644
--- a/arch/arm/plat-s3c24xx/s3c244x-irq.c
+++ b/arch/arm/plat-s3c24xx/s3c244x-irq.c
@@ -24,10 +24,10 @@
24#include <linux/interrupt.h> 24#include <linux/interrupt.h>
25#include <linux/ioport.h> 25#include <linux/ioport.h>
26#include <linux/sysdev.h> 26#include <linux/sysdev.h>
27#include <linux/io.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30#include <asm/io.h>
31 31
32#include <asm/mach/irq.h> 32#include <asm/mach/irq.h>
33 33
@@ -44,7 +44,6 @@ static void s3c_irq_demux_cam(unsigned int irq,
44 struct irq_desc *desc) 44 struct irq_desc *desc)
45{ 45{
46 unsigned int subsrc, submsk; 46 unsigned int subsrc, submsk;
47 struct irq_desc *mydesc;
48 47
49 /* read the current pending interrupts, and the mask 48 /* read the current pending interrupts, and the mask
50 * for what it is available */ 49 * for what it is available */
@@ -58,12 +57,10 @@ static void s3c_irq_demux_cam(unsigned int irq,
58 57
59 if (subsrc != 0) { 58 if (subsrc != 0) {
60 if (subsrc & 1) { 59 if (subsrc & 1) {
61 mydesc = irq_desc + IRQ_S3C2440_CAM_C; 60 generic_handle_irq(IRQ_S3C2440_CAM_C);
62 desc_handle_irq(IRQ_S3C2440_CAM_C, mydesc);
63 } 61 }
64 if (subsrc & 2) { 62 if (subsrc & 2) {
65 mydesc = irq_desc + IRQ_S3C2440_CAM_P; 63 generic_handle_irq(IRQ_S3C2440_CAM_P);
66 desc_handle_irq(IRQ_S3C2440_CAM_P, mydesc);
67 } 64 }
68 } 65 }
69} 66}
diff --git a/arch/arm/plat-s3c24xx/s3c244x.c b/arch/arm/plat-s3c24xx/s3c244x.c
index 281b4804ed38..146863a69aeb 100644
--- a/arch/arm/plat-s3c24xx/s3c244x.c
+++ b/arch/arm/plat-s3c24xx/s3c244x.c
@@ -20,13 +20,13 @@
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <linux/sysdev.h> 21#include <linux/sysdev.h>
22#include <linux/clk.h> 22#include <linux/clk.h>
23#include <linux/io.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
25#include <asm/mach/map.h> 26#include <asm/mach/map.h>
26#include <asm/mach/irq.h> 27#include <asm/mach/irq.h>
27 28
28#include <mach/hardware.h> 29#include <mach/hardware.h>
29#include <asm/io.h>
30#include <asm/irq.h> 30#include <asm/irq.h>
31 31
32#include <mach/regs-clock.h> 32#include <mach/regs-clock.h>
diff --git a/arch/arm/plat-s3c24xx/time.c b/arch/arm/plat-s3c24xx/time.c
index b471a21ae2e4..64bfa19ae951 100644
--- a/arch/arm/plat-s3c24xx/time.c
+++ b/arch/arm/plat-s3c24xx/time.c
@@ -25,12 +25,12 @@
25#include <linux/irq.h> 25#include <linux/irq.h>
26#include <linux/err.h> 26#include <linux/err.h>
27#include <linux/clk.h> 27#include <linux/clk.h>
28#include <linux/io.h>
28 29
29#include <asm/system.h> 30#include <asm/system.h>
30#include <asm/leds.h> 31#include <asm/leds.h>
31#include <asm/mach-types.h> 32#include <asm/mach-types.h>
32 33
33#include <asm/io.h>
34#include <asm/irq.h> 34#include <asm/irq.h>
35#include <mach/map.h> 35#include <mach/map.h>
36#include <asm/plat-s3c/regs-timer.h> 36#include <asm/plat-s3c/regs-timer.h>
diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S
index 806ce26d5243..ba592a9e6fb3 100644
--- a/arch/arm/vfp/entry.S
+++ b/arch/arm/vfp/entry.S
@@ -21,13 +21,13 @@
21#include <asm/assembler.h> 21#include <asm/assembler.h>
22#include <asm/vfpmacros.h> 22#include <asm/vfpmacros.h>
23 23
24 .globl do_vfp 24ENTRY(do_vfp)
25do_vfp:
26 enable_irq 25 enable_irq
27 ldr r4, .LCvfp 26 ldr r4, .LCvfp
28 ldr r11, [r10, #TI_CPU] @ CPU number 27 ldr r11, [r10, #TI_CPU] @ CPU number
29 add r10, r10, #TI_VFPSTATE @ r10 = workspace 28 add r10, r10, #TI_VFPSTATE @ r10 = workspace
30 ldr pc, [r4] @ call VFP entry point 29 ldr pc, [r4] @ call VFP entry point
30ENDPROC(do_vfp)
31 31
32ENTRY(vfp_null_entry) 32ENTRY(vfp_null_entry)
33 mov pc, lr 33 mov pc, lr
@@ -40,11 +40,11 @@ ENDPROC(vfp_null_entry)
40@ failure to the VFP initialisation code. 40@ failure to the VFP initialisation code.
41 41
42 __INIT 42 __INIT
43 .globl vfp_testing_entry 43ENTRY(vfp_testing_entry)
44vfp_testing_entry:
45 ldr r0, VFP_arch_address 44 ldr r0, VFP_arch_address
46 str r5, [r0] @ known non-zero value 45 str r5, [r0] @ known non-zero value
47 mov pc, r9 @ we have handled the fault 46 mov pc, r9 @ we have handled the fault
47ENDPROC(vfp_testing_entry)
48 48
49VFP_arch_address: 49VFP_arch_address:
50 .word VFP_arch 50 .word VFP_arch
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
index 353f9e5c7919..a62dcf7098ba 100644
--- a/arch/arm/vfp/vfphw.S
+++ b/arch/arm/vfp/vfphw.S
@@ -68,8 +68,7 @@
68@ r11 = CPU number 68@ r11 = CPU number
69@ lr = failure return 69@ lr = failure return
70 70
71 .globl vfp_support_entry 71ENTRY(vfp_support_entry)
72vfp_support_entry:
73 DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10 72 DBGSTR3 "instr %08x pc %08x state %p", r0, r2, r10
74 73
75 VFPFMRX r1, FPEXC @ Is the VFP enabled? 74 VFPFMRX r1, FPEXC @ Is the VFP enabled?
@@ -165,11 +164,10 @@ process_exception:
165 @ code will raise an exception if 164 @ code will raise an exception if
166 @ required. If not, the user code will 165 @ required. If not, the user code will
167 @ retry the faulted instruction 166 @ retry the faulted instruction
167ENDPROC(vfp_support_entry)
168 168
169#ifdef CONFIG_SMP 169#ifdef CONFIG_SMP
170 .globl vfp_save_state 170ENTRY(vfp_save_state)
171 .type vfp_save_state, %function
172vfp_save_state:
173 @ Save the current VFP state 171 @ Save the current VFP state
174 @ r0 - save location 172 @ r0 - save location
175 @ r1 - FPEXC 173 @ r1 - FPEXC
@@ -182,13 +180,13 @@ vfp_save_state:
182 VFPFMRX r12, FPINST2, NE @ FPINST2 if needed (and present) 180 VFPFMRX r12, FPINST2, NE @ FPINST2 if needed (and present)
183 stmia r0, {r1, r2, r3, r12} @ save FPEXC, FPSCR, FPINST, FPINST2 181 stmia r0, {r1, r2, r3, r12} @ save FPEXC, FPSCR, FPINST, FPINST2
184 mov pc, lr 182 mov pc, lr
183ENDPROC(vfp_save_state)
185#endif 184#endif
186 185
187last_VFP_context_address: 186last_VFP_context_address:
188 .word last_VFP_context 187 .word last_VFP_context
189 188
190 .globl vfp_get_float 189ENTRY(vfp_get_float)
191vfp_get_float:
192 add pc, pc, r0, lsl #3 190 add pc, pc, r0, lsl #3
193 mov r0, r0 191 mov r0, r0
194 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 192 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
@@ -197,9 +195,9 @@ vfp_get_float:
197 mrc p10, 0, r0, c\dr, c0, 4 @ fmrs r0, s1 195 mrc p10, 0, r0, c\dr, c0, 4 @ fmrs r0, s1
198 mov pc, lr 196 mov pc, lr
199 .endr 197 .endr
198ENDPROC(vfp_get_float)
200 199
201 .globl vfp_put_float 200ENTRY(vfp_put_float)
202vfp_put_float:
203 add pc, pc, r1, lsl #3 201 add pc, pc, r1, lsl #3
204 mov r0, r0 202 mov r0, r0
205 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 203 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
@@ -208,9 +206,9 @@ vfp_put_float:
208 mcr p10, 0, r0, c\dr, c0, 4 @ fmsr r0, s1 206 mcr p10, 0, r0, c\dr, c0, 4 @ fmsr r0, s1
209 mov pc, lr 207 mov pc, lr
210 .endr 208 .endr
209ENDPROC(vfp_put_float)
211 210
212 .globl vfp_get_double 211ENTRY(vfp_get_double)
213vfp_get_double:
214 add pc, pc, r0, lsl #3 212 add pc, pc, r0, lsl #3
215 mov r0, r0 213 mov r0, r0
216 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 214 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
@@ -229,9 +227,9 @@ vfp_get_double:
229 mov r0, #0 227 mov r0, #0
230 mov r1, #0 228 mov r1, #0
231 mov pc, lr 229 mov pc, lr
230ENDPROC(vfp_get_double)
232 231
233 .globl vfp_put_double 232ENTRY(vfp_put_double)
234vfp_put_double:
235 add pc, pc, r2, lsl #3 233 add pc, pc, r2, lsl #3
236 mov r0, r0 234 mov r0, r0
237 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 235 .irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
@@ -245,3 +243,4 @@ vfp_put_double:
245 mov pc, lr 243 mov pc, lr
246 .endr 244 .endr
247#endif 245#endif
246ENDPROC(vfp_put_double)
diff --git a/arch/avr32/kernel/asm-offsets.c b/arch/avr32/kernel/asm-offsets.c
index e4796c67a831..d6a8193a1d2f 100644
--- a/arch/avr32/kernel/asm-offsets.c
+++ b/arch/avr32/kernel/asm-offsets.c
@@ -4,6 +4,8 @@
4 * to extract and format the required data. 4 * to extract and format the required data.
5 */ 5 */
6 6
7#include <linux/mm.h>
8#include <linux/sched.h>
7#include <linux/thread_info.h> 9#include <linux/thread_info.h>
8#include <linux/kbuild.h> 10#include <linux/kbuild.h>
9 11
@@ -17,4 +19,8 @@ void foo(void)
17 OFFSET(TI_rar_saved, thread_info, rar_saved); 19 OFFSET(TI_rar_saved, thread_info, rar_saved);
18 OFFSET(TI_rsr_saved, thread_info, rsr_saved); 20 OFFSET(TI_rsr_saved, thread_info, rsr_saved);
19 OFFSET(TI_restart_block, thread_info, restart_block); 21 OFFSET(TI_restart_block, thread_info, restart_block);
22 BLANK();
23 OFFSET(TSK_active_mm, task_struct, active_mm);
24 BLANK();
25 OFFSET(MM_pgd, mm_struct, pgd);
20} 26}
diff --git a/arch/avr32/kernel/entry-avr32b.S b/arch/avr32/kernel/entry-avr32b.S
index 2b398cae110c..33d49377b8be 100644
--- a/arch/avr32/kernel/entry-avr32b.S
+++ b/arch/avr32/kernel/entry-avr32b.S
@@ -334,9 +334,64 @@ save_full_context_ex:
334 334
335 /* Low-level exception handlers */ 335 /* Low-level exception handlers */
336handle_critical: 336handle_critical:
337 /*
338 * AT32AP700x errata:
339 *
340 * After a Java stack overflow or underflow trap, any CPU
341 * memory access may cause erratic behavior. This will happen
342 * when the four least significant bits of the JOSP system
343 * register contains any value between 9 and 15 (inclusive).
344 *
345 * Possible workarounds:
346 * - Don't use the Java Extension Module
347 * - Ensure that the stack overflow and underflow trap
348 * handlers do not do any memory access or trigger any
349 * exceptions before the overflow/underflow condition is
350 * cleared (by incrementing or decrementing the JOSP)
351 * - Make sure that JOSP does not contain any problematic
352 * value before doing any exception or interrupt
353 * processing.
354 * - Set up a critical exception handler which writes a
355 * known-to-be-safe value, e.g. 4, to JOSP before doing
356 * any further processing.
357 *
358 * We'll use the last workaround for now since we cannot
359 * guarantee that user space processes don't use Java mode.
360 * Non-well-behaving userland will be terminated with extreme
361 * prejudice.
362 */
363#ifdef CONFIG_CPU_AT32AP700X
364 /*
365 * There's a chance we can't touch memory, so temporarily
366 * borrow PTBR to save the stack pointer while we fix things
367 * up...
368 */
369 mtsr SYSREG_PTBR, sp
370 mov sp, 4
371 mtsr SYSREG_JOSP, sp
372 mfsr sp, SYSREG_PTBR
373 sub pc, -2
374
375 /* Push most of pt_regs on stack. We'll do the rest later */
337 sub sp, 4 376 sub sp, 4
338 stmts --sp, r0-lr 377 pushm r0-r12
339 rcall save_full_context_ex 378
379 /* PTBR mirrors current_thread_info()->task->active_mm->pgd */
380 get_thread_info r0
381 ld.w r1, r0[TI_task]
382 ld.w r2, r1[TSK_active_mm]
383 ld.w r3, r2[MM_pgd]
384 mtsr SYSREG_PTBR, r3
385#else
386 sub sp, 4
387 pushm r0-r12
388#endif
389 sub r0, sp, -(14 * 4)
390 mov r1, lr
391 mfsr r2, SYSREG_RAR_EX
392 mfsr r3, SYSREG_RSR_EX
393 pushm r0-r3
394
340 mfsr r12, SYSREG_ECR 395 mfsr r12, SYSREG_ECR
341 mov r11, sp 396 mov r11, sp
342 rcall do_critical_exception 397 rcall do_critical_exception
diff --git a/arch/avr32/mach-at32ap/pm-at32ap700x.S b/arch/avr32/mach-at32ap/pm-at32ap700x.S
index 5be4de65b209..17503b0ed6c9 100644
--- a/arch/avr32/mach-at32ap/pm-at32ap700x.S
+++ b/arch/avr32/mach-at32ap/pm-at32ap700x.S
@@ -134,7 +134,7 @@ pm_standby:
134 mov r11, SDRAMC_LPR_LPCB_SELF_RFR 134 mov r11, SDRAMC_LPR_LPCB_SELF_RFR
135 bfins r10, r11, 0, 2 /* LPCB <- self Refresh */ 135 bfins r10, r11, 0, 2 /* LPCB <- self Refresh */
136 sync 0 /* flush write buffer */ 136 sync 0 /* flush write buffer */
137 st.w r12[SDRAMC_LPR], r11 /* put SDRAM in self-refresh mode */ 137 st.w r12[SDRAMC_LPR], r10 /* put SDRAM in self-refresh mode */
138 ld.w r11, r12[SDRAMC_LPR] 138 ld.w r11, r12[SDRAMC_LPR]
139 unmask_interrupts 139 unmask_interrupts
140 sleep CPU_SLEEP_FROZEN 140 sleep CPU_SLEEP_FROZEN
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index f64d25973a37..4154ff1101fa 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -855,6 +855,7 @@ menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
855 855
856config PCI 856config PCI
857 bool "PCI support" 857 bool "PCI support"
858 depends on BROKEN
858 help 859 help
859 Support for PCI bus. 860 Support for PCI bus.
860 861
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile
index 9564731ad3a8..eac0533d6e4f 100644
--- a/arch/blackfin/Makefile
+++ b/arch/blackfin/Makefile
@@ -98,36 +98,20 @@ libs-y += arch/$(ARCH)/lib/
98 98
99drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/ 99drivers-$(CONFIG_OPROFILE) += arch/$(ARCH)/oprofile/
100 100
101machdirs := $(patsubst %,arch/blackfin/mach-%/, $(machine-y))
101 102
103KBUILD_CFLAGS += -Iarch/$(ARCH)/include/
104KBUILD_CFLAGS += -Iarch/$(ARCH)/mach-$(MACHINE)/include
102 105
103# Update machine arch symlinks if something which affects 106KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs))
104# them changed. We use .mach to indicate when they were updated
105# last, otherwise make uses the target directory mtime.
106
107 show_mach_symlink = :
108 quiet_show_mach_symlink = echo ' SYMLINK include/asm-$(ARCH)/mach-$(MACHINE) -> include/asm-$(ARCH)/mach'
109silent_show_mach_symlink = :
110include/asm-blackfin/.mach: $(wildcard include/config/arch/*.h) include/config/auto.conf
111 @$($(quiet)show_mach_symlink)
112ifneq ($(KBUILD_SRC),)
113 $(Q)mkdir -p include/asm-$(ARCH)
114 $(Q)ln -fsn $(srctree)/include/asm-$(ARCH)/mach-$(MACHINE) include/asm-$(ARCH)/mach
115else
116 $(Q)ln -fsn mach-$(MACHINE) include/asm-$(ARCH)/mach
117endif
118 @touch $@
119 107
120CLEAN_FILES += \ 108CLEAN_FILES += \
121 include/asm-$(ARCH)/asm-offsets.h \ 109 arch/$(ARCH)/include/asm/asm-offsets.h \
122 arch/$(ARCH)/kernel/asm-offsets.s \ 110 arch/$(ARCH)/kernel/asm-offsets.s \
123 include/asm-$(ARCH)/mach \
124 include/asm-$(ARCH)/.mach
125 111
126archprepare: include/asm-blackfin/.mach
127archclean: 112archclean:
128 $(Q)$(MAKE) $(clean)=$(boot) 113 $(Q)$(MAKE) $(clean)=$(boot)
129 114
130
131INSTALL_PATH ?= /tftpboot 115INSTALL_PATH ?= /tftpboot
132boot := arch/$(ARCH)/boot 116boot := arch/$(ARCH)/boot
133BOOT_TARGETS = vmImage 117BOOT_TARGETS = vmImage
diff --git a/include/asm-blackfin/.gitignore b/arch/blackfin/include/asm/.gitignore
index 7858564a4466..7858564a4466 100644
--- a/include/asm-blackfin/.gitignore
+++ b/arch/blackfin/include/asm/.gitignore
diff --git a/include/asm-blackfin/Kbuild b/arch/blackfin/include/asm/Kbuild
index 606ecfdcc962..606ecfdcc962 100644
--- a/include/asm-blackfin/Kbuild
+++ b/arch/blackfin/include/asm/Kbuild
diff --git a/include/asm-blackfin/a.out.h b/arch/blackfin/include/asm/a.out.h
index 6c3d652ebd33..6c3d652ebd33 100644
--- a/include/asm-blackfin/a.out.h
+++ b/arch/blackfin/include/asm/a.out.h
diff --git a/include/asm-blackfin/atomic.h b/arch/blackfin/include/asm/atomic.h
index 7cf508718605..7cf508718605 100644
--- a/include/asm-blackfin/atomic.h
+++ b/arch/blackfin/include/asm/atomic.h
diff --git a/include/asm-blackfin/auxvec.h b/arch/blackfin/include/asm/auxvec.h
index 215506cd87b7..215506cd87b7 100644
--- a/include/asm-blackfin/auxvec.h
+++ b/arch/blackfin/include/asm/auxvec.h
diff --git a/include/asm-blackfin/bfin-global.h b/arch/blackfin/include/asm/bfin-global.h
index 7ba70de66f2b..7ba70de66f2b 100644
--- a/include/asm-blackfin/bfin-global.h
+++ b/arch/blackfin/include/asm/bfin-global.h
diff --git a/include/asm-blackfin/bfin5xx_spi.h b/arch/blackfin/include/asm/bfin5xx_spi.h
index 9fa19158e38d..9fa19158e38d 100644
--- a/include/asm-blackfin/bfin5xx_spi.h
+++ b/arch/blackfin/include/asm/bfin5xx_spi.h
diff --git a/include/asm-blackfin/bfin_simple_timer.h b/arch/blackfin/include/asm/bfin_simple_timer.h
index fccbb595464a..fccbb595464a 100644
--- a/include/asm-blackfin/bfin_simple_timer.h
+++ b/arch/blackfin/include/asm/bfin_simple_timer.h
diff --git a/include/asm-blackfin/bfin_sport.h b/arch/blackfin/include/asm/bfin_sport.h
index c76ed8def302..c76ed8def302 100644
--- a/include/asm-blackfin/bfin_sport.h
+++ b/arch/blackfin/include/asm/bfin_sport.h
diff --git a/include/asm-blackfin/bitops.h b/arch/blackfin/include/asm/bitops.h
index b39a175c79c1..b39a175c79c1 100644
--- a/include/asm-blackfin/bitops.h
+++ b/arch/blackfin/include/asm/bitops.h
diff --git a/include/asm-blackfin/blackfin.h b/arch/blackfin/include/asm/blackfin.h
index 984b74f0a2ec..8749b0e321ab 100644
--- a/include/asm-blackfin/blackfin.h
+++ b/arch/blackfin/include/asm/blackfin.h
@@ -11,7 +11,7 @@
11#define HI(con32) (((con32) >> 16) & 0xFFFF) 11#define HI(con32) (((con32) >> 16) & 0xFFFF)
12#define hi(con32) (((con32) >> 16) & 0xFFFF) 12#define hi(con32) (((con32) >> 16) & 0xFFFF)
13 13
14#include <asm/mach/anomaly.h> 14#include <mach/anomaly.h>
15 15
16#ifndef __ASSEMBLY__ 16#ifndef __ASSEMBLY__
17 17
@@ -86,7 +86,7 @@ static inline void CSYNC(void)
86 86
87#endif /* __ASSEMBLY__ */ 87#endif /* __ASSEMBLY__ */
88 88
89#include <asm/mach/blackfin.h> 89#include <mach/blackfin.h>
90#include <asm/bfin-global.h> 90#include <asm/bfin-global.h>
91 91
92#endif /* _BLACKFIN_H_ */ 92#endif /* _BLACKFIN_H_ */
diff --git a/include/asm-blackfin/bug.h b/arch/blackfin/include/asm/bug.h
index 6d3e11b1fc57..6d3e11b1fc57 100644
--- a/include/asm-blackfin/bug.h
+++ b/arch/blackfin/include/asm/bug.h
diff --git a/include/asm-blackfin/bugs.h b/arch/blackfin/include/asm/bugs.h
index 9093c9c1fb81..9093c9c1fb81 100644
--- a/include/asm-blackfin/bugs.h
+++ b/arch/blackfin/include/asm/bugs.h
diff --git a/include/asm-blackfin/byteorder.h b/arch/blackfin/include/asm/byteorder.h
index 6a673d42da18..6a673d42da18 100644
--- a/include/asm-blackfin/byteorder.h
+++ b/arch/blackfin/include/asm/byteorder.h
diff --git a/include/asm-blackfin/cache.h b/arch/blackfin/include/asm/cache.h
index 023d72133b5a..023d72133b5a 100644
--- a/include/asm-blackfin/cache.h
+++ b/arch/blackfin/include/asm/cache.h
diff --git a/include/asm-blackfin/cacheflush.h b/arch/blackfin/include/asm/cacheflush.h
index d81a77545a04..d81a77545a04 100644
--- a/include/asm-blackfin/cacheflush.h
+++ b/arch/blackfin/include/asm/cacheflush.h
diff --git a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h b/arch/blackfin/include/asm/cdef_LPBlackfin.h
index d39c396f850d..35f841bce57d 100644
--- a/include/asm-blackfin/mach-common/cdef_LPBlackfin.h
+++ b/arch/blackfin/include/asm/cdef_LPBlackfin.h
@@ -33,7 +33,7 @@
33#warning cdef_LPBlackfin.h should only be included for 532 compatible chips. 33#warning cdef_LPBlackfin.h should only be included for 532 compatible chips.
34#endif 34#endif
35*/ 35*/
36#include <asm/mach-common/def_LPBlackfin.h> 36#include <asm/def_LPBlackfin.h>
37 37
38/*Cache & SRAM Memory*/ 38/*Cache & SRAM Memory*/
39#define bfin_read_SRAM_BASE_ADDRESS() bfin_read32(SRAM_BASE_ADDRESS) 39#define bfin_read_SRAM_BASE_ADDRESS() bfin_read32(SRAM_BASE_ADDRESS)
diff --git a/include/asm-blackfin/checksum.h b/arch/blackfin/include/asm/checksum.h
index 6f6af2b8e9e0..6f6af2b8e9e0 100644
--- a/include/asm-blackfin/checksum.h
+++ b/arch/blackfin/include/asm/checksum.h
diff --git a/include/asm-blackfin/mach-common/clocks.h b/arch/blackfin/include/asm/clocks.h
index 033bba92d61c..033bba92d61c 100644
--- a/include/asm-blackfin/mach-common/clocks.h
+++ b/arch/blackfin/include/asm/clocks.h
diff --git a/include/asm-blackfin/mach-common/context.S b/arch/blackfin/include/asm/context.S
index c0e630edfb9a..c0e630edfb9a 100644
--- a/include/asm-blackfin/mach-common/context.S
+++ b/arch/blackfin/include/asm/context.S
diff --git a/include/asm-blackfin/cplb-mpu.h b/arch/blackfin/include/asm/cplb-mpu.h
index 75c67b99d607..75c67b99d607 100644
--- a/include/asm-blackfin/cplb-mpu.h
+++ b/arch/blackfin/include/asm/cplb-mpu.h
diff --git a/include/asm-blackfin/cplb.h b/arch/blackfin/include/asm/cplb.h
index 5b0da9a69b67..05d6f05fb748 100644
--- a/include/asm-blackfin/cplb.h
+++ b/arch/blackfin/include/asm/cplb.h
@@ -31,7 +31,7 @@
31#define _CPLB_H 31#define _CPLB_H
32 32
33#include <asm/blackfin.h> 33#include <asm/blackfin.h>
34#include <asm/mach/anomaly.h> 34#include <mach/anomaly.h>
35 35
36#define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO) 36#define SDRAM_IGENERIC (CPLB_L1_CHBL | CPLB_USER_RD | CPLB_VALID | CPLB_PORTPRIO)
37#define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK) 37#define SDRAM_IKERNEL (SDRAM_IGENERIC | CPLB_LOCK)
diff --git a/include/asm-blackfin/cplbinit.h b/arch/blackfin/include/asm/cplbinit.h
index 0eb1c1b685a7..0eb1c1b685a7 100644
--- a/include/asm-blackfin/cplbinit.h
+++ b/arch/blackfin/include/asm/cplbinit.h
diff --git a/include/asm-blackfin/cpumask.h b/arch/blackfin/include/asm/cpumask.h
index b20a8e9012cb..b20a8e9012cb 100644
--- a/include/asm-blackfin/cpumask.h
+++ b/arch/blackfin/include/asm/cpumask.h
diff --git a/include/asm-blackfin/cputime.h b/arch/blackfin/include/asm/cputime.h
index 2b19705f9885..2b19705f9885 100644
--- a/include/asm-blackfin/cputime.h
+++ b/arch/blackfin/include/asm/cputime.h
diff --git a/include/asm-blackfin/current.h b/arch/blackfin/include/asm/current.h
index 31918d29122c..31918d29122c 100644
--- a/include/asm-blackfin/current.h
+++ b/arch/blackfin/include/asm/current.h
diff --git a/include/asm-blackfin/mach-common/def_LPBlackfin.h b/arch/blackfin/include/asm/def_LPBlackfin.h
index e8967f6124f7..6341eebff3dc 100644
--- a/include/asm-blackfin/mach-common/def_LPBlackfin.h
+++ b/arch/blackfin/include/asm/def_LPBlackfin.h
@@ -31,7 +31,7 @@
31#ifndef _DEF_LPBLACKFIN_H 31#ifndef _DEF_LPBLACKFIN_H
32#define _DEF_LPBLACKFIN_H 32#define _DEF_LPBLACKFIN_H
33 33
34#include <asm/mach/anomaly.h> 34#include <mach/anomaly.h>
35 35
36#define MK_BMSK_(x) (1<<x) 36#define MK_BMSK_(x) (1<<x)
37 37
diff --git a/include/asm-blackfin/delay.h b/arch/blackfin/include/asm/delay.h
index 473a8113277f..0889c3abb593 100644
--- a/include/asm-blackfin/delay.h
+++ b/arch/blackfin/include/asm/delay.h
@@ -9,7 +9,7 @@
9#ifndef __ASM_DELAY_H__ 9#ifndef __ASM_DELAY_H__
10#define __ASM_DELAY_H__ 10#define __ASM_DELAY_H__
11 11
12#include <asm/mach/anomaly.h> 12#include <mach/anomaly.h>
13 13
14static inline void __delay(unsigned long loops) 14static inline void __delay(unsigned long loops)
15{ 15{
diff --git a/include/asm-blackfin/device.h b/arch/blackfin/include/asm/device.h
index d8f9872b0e2d..d8f9872b0e2d 100644
--- a/include/asm-blackfin/device.h
+++ b/arch/blackfin/include/asm/device.h
diff --git a/include/asm-blackfin/div64.h b/arch/blackfin/include/asm/div64.h
index 6cd978cefb28..6cd978cefb28 100644
--- a/include/asm-blackfin/div64.h
+++ b/arch/blackfin/include/asm/div64.h
diff --git a/include/asm-blackfin/dma-mapping.h b/arch/blackfin/include/asm/dma-mapping.h
index 1a13c2fc3667..1a13c2fc3667 100644
--- a/include/asm-blackfin/dma-mapping.h
+++ b/arch/blackfin/include/asm/dma-mapping.h
diff --git a/include/asm-blackfin/dma.h b/arch/blackfin/include/asm/dma.h
index 3cd4b522aa3f..6509733bb0f6 100644
--- a/include/asm-blackfin/dma.h
+++ b/arch/blackfin/include/asm/dma.h
@@ -35,7 +35,7 @@
35#include <asm/signal.h> 35#include <asm/signal.h>
36 36
37#include <linux/kernel.h> 37#include <linux/kernel.h>
38#include <asm/mach/dma.h> 38#include <mach/dma.h>
39#include <linux/mm.h> 39#include <linux/mm.h>
40#include <linux/interrupt.h> 40#include <linux/interrupt.h>
41#include <asm/blackfin.h> 41#include <asm/blackfin.h>
diff --git a/include/asm-blackfin/dpmc.h b/arch/blackfin/include/asm/dpmc.h
index 96e8208f929a..96e8208f929a 100644
--- a/include/asm-blackfin/dpmc.h
+++ b/arch/blackfin/include/asm/dpmc.h
diff --git a/include/asm-blackfin/early_printk.h b/arch/blackfin/include/asm/early_printk.h
index 110f1c1f845c..110f1c1f845c 100644
--- a/include/asm-blackfin/early_printk.h
+++ b/arch/blackfin/include/asm/early_printk.h
diff --git a/include/asm-blackfin/elf.h b/arch/blackfin/include/asm/elf.h
index 67a03a8a353e..67a03a8a353e 100644
--- a/include/asm-blackfin/elf.h
+++ b/arch/blackfin/include/asm/elf.h
diff --git a/include/asm-blackfin/emergency-restart.h b/arch/blackfin/include/asm/emergency-restart.h
index 27f6c785d103..27f6c785d103 100644
--- a/include/asm-blackfin/emergency-restart.h
+++ b/arch/blackfin/include/asm/emergency-restart.h
diff --git a/include/asm-blackfin/entry.h b/arch/blackfin/include/asm/entry.h
index c4f721e0d00d..c4f721e0d00d 100644
--- a/include/asm-blackfin/entry.h
+++ b/arch/blackfin/include/asm/entry.h
diff --git a/include/asm-blackfin/errno.h b/arch/blackfin/include/asm/errno.h
index 164e4f39bb57..164e4f39bb57 100644
--- a/include/asm-blackfin/errno.h
+++ b/arch/blackfin/include/asm/errno.h
diff --git a/include/asm-blackfin/fb.h b/arch/blackfin/include/asm/fb.h
index c7df38030992..c7df38030992 100644
--- a/include/asm-blackfin/fb.h
+++ b/arch/blackfin/include/asm/fb.h
diff --git a/include/asm-blackfin/fcntl.h b/arch/blackfin/include/asm/fcntl.h
index 9c4037127857..9c4037127857 100644
--- a/include/asm-blackfin/fcntl.h
+++ b/arch/blackfin/include/asm/fcntl.h
diff --git a/include/asm-blackfin/fixed_code.h b/arch/blackfin/include/asm/fixed_code.h
index 32c4d495d847..32c4d495d847 100644
--- a/include/asm-blackfin/fixed_code.h
+++ b/arch/blackfin/include/asm/fixed_code.h
diff --git a/include/asm-blackfin/flat.h b/arch/blackfin/include/asm/flat.h
index e70074e05f4e..e70074e05f4e 100644
--- a/include/asm-blackfin/flat.h
+++ b/arch/blackfin/include/asm/flat.h
diff --git a/include/asm-blackfin/futex.h b/arch/blackfin/include/asm/futex.h
index 6a332a9f099c..6a332a9f099c 100644
--- a/include/asm-blackfin/futex.h
+++ b/arch/blackfin/include/asm/futex.h
diff --git a/include/asm-blackfin/gpio.h b/arch/blackfin/include/asm/gpio.h
index 168f1251eb4d..ad33ac271fd9 100644
--- a/include/asm-blackfin/gpio.h
+++ b/arch/blackfin/include/asm/gpio.h
@@ -224,7 +224,7 @@
224#endif 224#endif
225 225
226#ifdef BF548_FAMILY 226#ifdef BF548_FAMILY
227#include <asm-blackfin/mach-bf548/gpio.h> 227#include <mach/gpio.h>
228#endif 228#endif
229 229
230#ifdef BF561_FAMILY 230#ifdef BF561_FAMILY
diff --git a/include/asm-blackfin/gptimers.h b/arch/blackfin/include/asm/gptimers.h
index 0520d2aac8f3..0520d2aac8f3 100644
--- a/include/asm-blackfin/gptimers.h
+++ b/arch/blackfin/include/asm/gptimers.h
diff --git a/include/asm-blackfin/hardirq.h b/arch/blackfin/include/asm/hardirq.h
index b6b19f1b9dab..b6b19f1b9dab 100644
--- a/include/asm-blackfin/hardirq.h
+++ b/arch/blackfin/include/asm/hardirq.h
diff --git a/include/asm-blackfin/hw_irq.h b/arch/blackfin/include/asm/hw_irq.h
index 5b51eaec012c..5b51eaec012c 100644
--- a/include/asm-blackfin/hw_irq.h
+++ b/arch/blackfin/include/asm/hw_irq.h
diff --git a/include/asm-blackfin/io.h b/arch/blackfin/include/asm/io.h
index cbbf7ffdbbff..cbbf7ffdbbff 100644
--- a/include/asm-blackfin/io.h
+++ b/arch/blackfin/include/asm/io.h
diff --git a/include/asm-blackfin/ioctl.h b/arch/blackfin/include/asm/ioctl.h
index b279fe06dfe5..b279fe06dfe5 100644
--- a/include/asm-blackfin/ioctl.h
+++ b/arch/blackfin/include/asm/ioctl.h
diff --git a/include/asm-blackfin/ioctls.h b/arch/blackfin/include/asm/ioctls.h
index 895e3173165d..895e3173165d 100644
--- a/include/asm-blackfin/ioctls.h
+++ b/arch/blackfin/include/asm/ioctls.h
diff --git a/include/asm-blackfin/ipcbuf.h b/arch/blackfin/include/asm/ipcbuf.h
index 8f0899cdf4d2..8f0899cdf4d2 100644
--- a/include/asm-blackfin/ipcbuf.h
+++ b/arch/blackfin/include/asm/ipcbuf.h
diff --git a/include/asm-blackfin/irq.h b/arch/blackfin/include/asm/irq.h
index 86b67834354d..89f59e18af93 100644
--- a/include/asm-blackfin/irq.h
+++ b/arch/blackfin/include/asm/irq.h
@@ -17,7 +17,7 @@
17#ifndef _BFIN_IRQ_H_ 17#ifndef _BFIN_IRQ_H_
18#define _BFIN_IRQ_H_ 18#define _BFIN_IRQ_H_
19 19
20#include <asm/mach/irq.h> 20#include <mach/irq.h>
21#include <asm/ptrace.h> 21#include <asm/ptrace.h>
22 22
23/******************************************************************************* 23/*******************************************************************************
@@ -34,7 +34,7 @@
34 * interrupts apart (just the TX/RX for the various devices) 34 * interrupts apart (just the TX/RX for the various devices)
35 *******************************************************************************/ 35 *******************************************************************************/
36 36
37/* SYS_IRQS and NR_IRQS are defined in <asm/mach-bf5xx/irq.h>*/ 37/* SYS_IRQS and NR_IRQS are defined in <mach-bf5xx/irq.h>*/
38 38
39/* 39/*
40 * Machine specific interrupt sources. 40 * Machine specific interrupt sources.
diff --git a/include/asm-blackfin/irq_handler.h b/arch/blackfin/include/asm/irq_handler.h
index 139b5208f9d8..139b5208f9d8 100644
--- a/include/asm-blackfin/irq_handler.h
+++ b/arch/blackfin/include/asm/irq_handler.h
diff --git a/include/asm-blackfin/irq_regs.h b/arch/blackfin/include/asm/irq_regs.h
index 3dd9c0b70270..3dd9c0b70270 100644
--- a/include/asm-blackfin/irq_regs.h
+++ b/arch/blackfin/include/asm/irq_regs.h
diff --git a/include/asm-blackfin/kdebug.h b/arch/blackfin/include/asm/kdebug.h
index 6ece1b037665..6ece1b037665 100644
--- a/include/asm-blackfin/kdebug.h
+++ b/arch/blackfin/include/asm/kdebug.h
diff --git a/include/asm-blackfin/kgdb.h b/arch/blackfin/include/asm/kgdb.h
index 0f73847fd6bc..0f73847fd6bc 100644
--- a/include/asm-blackfin/kgdb.h
+++ b/arch/blackfin/include/asm/kgdb.h
diff --git a/include/asm-blackfin/kmap_types.h b/arch/blackfin/include/asm/kmap_types.h
index e215f7104974..e215f7104974 100644
--- a/include/asm-blackfin/kmap_types.h
+++ b/arch/blackfin/include/asm/kmap_types.h
diff --git a/include/asm-blackfin/l1layout.h b/arch/blackfin/include/asm/l1layout.h
index c13ded777828..c13ded777828 100644
--- a/include/asm-blackfin/l1layout.h
+++ b/arch/blackfin/include/asm/l1layout.h
diff --git a/include/asm-blackfin/linkage.h b/arch/blackfin/include/asm/linkage.h
index 5a822bb790f7..5a822bb790f7 100644
--- a/include/asm-blackfin/linkage.h
+++ b/arch/blackfin/include/asm/linkage.h
diff --git a/include/asm-blackfin/local.h b/arch/blackfin/include/asm/local.h
index 75afffbc6421..75afffbc6421 100644
--- a/include/asm-blackfin/local.h
+++ b/arch/blackfin/include/asm/local.h
diff --git a/include/asm-blackfin/mem_map.h b/arch/blackfin/include/asm/mem_map.h
index 42d1f37f6d9c..88d04a707708 100644
--- a/include/asm-blackfin/mem_map.h
+++ b/arch/blackfin/include/asm/mem_map.h
@@ -7,6 +7,6 @@
7#ifndef _MEM_MAP_H_ 7#ifndef _MEM_MAP_H_
8#define _MEM_MAP_H_ 8#define _MEM_MAP_H_
9 9
10#include <asm/mach/mem_map.h> 10#include <mach/mem_map.h>
11 11
12#endif /* _MEM_MAP_H_ */ 12#endif /* _MEM_MAP_H_ */
diff --git a/include/asm-blackfin/mman.h b/arch/blackfin/include/asm/mman.h
index b58f5ad3f024..b58f5ad3f024 100644
--- a/include/asm-blackfin/mman.h
+++ b/arch/blackfin/include/asm/mman.h
diff --git a/include/asm-blackfin/mmu.h b/arch/blackfin/include/asm/mmu.h
index 757e43906ed4..757e43906ed4 100644
--- a/include/asm-blackfin/mmu.h
+++ b/arch/blackfin/include/asm/mmu.h
diff --git a/include/asm-blackfin/mmu_context.h b/arch/blackfin/include/asm/mmu_context.h
index f55ec3c23a92..8529552a981f 100644
--- a/include/asm-blackfin/mmu_context.h
+++ b/arch/blackfin/include/asm/mmu_context.h
@@ -173,8 +173,10 @@ static inline void protect_page(struct mm_struct *mm, unsigned long addr,
173 173
174static inline void update_protections(struct mm_struct *mm) 174static inline void update_protections(struct mm_struct *mm)
175{ 175{
176 flush_switched_cplbs(); 176 if (mm->context.page_rwx_mask == current_rwx_mask) {
177 set_mask_dcplbs(mm->context.page_rwx_mask); 177 flush_switched_cplbs();
178 set_mask_dcplbs(mm->context.page_rwx_mask);
179 }
178} 180}
179#endif 181#endif
180 182
diff --git a/include/asm-blackfin/module.h b/arch/blackfin/include/asm/module.h
index e3128df139d6..e3128df139d6 100644
--- a/include/asm-blackfin/module.h
+++ b/arch/blackfin/include/asm/module.h
diff --git a/include/asm-blackfin/msgbuf.h b/arch/blackfin/include/asm/msgbuf.h
index 6fcbe8cd801d..6fcbe8cd801d 100644
--- a/include/asm-blackfin/msgbuf.h
+++ b/arch/blackfin/include/asm/msgbuf.h
diff --git a/include/asm-blackfin/mutex.h b/arch/blackfin/include/asm/mutex.h
index 458c1f7fbc18..458c1f7fbc18 100644
--- a/include/asm-blackfin/mutex.h
+++ b/arch/blackfin/include/asm/mutex.h
diff --git a/include/asm-blackfin/nand.h b/arch/blackfin/include/asm/nand.h
index afbaafa793f1..afbaafa793f1 100644
--- a/include/asm-blackfin/nand.h
+++ b/arch/blackfin/include/asm/nand.h
diff --git a/include/asm-blackfin/page.h b/arch/blackfin/include/asm/page.h
index 344f6a8c1f22..344f6a8c1f22 100644
--- a/include/asm-blackfin/page.h
+++ b/arch/blackfin/include/asm/page.h
diff --git a/include/asm-blackfin/page_offset.h b/arch/blackfin/include/asm/page_offset.h
index cbaff24b4b25..cbaff24b4b25 100644
--- a/include/asm-blackfin/page_offset.h
+++ b/arch/blackfin/include/asm/page_offset.h
diff --git a/include/asm-blackfin/param.h b/arch/blackfin/include/asm/param.h
index 41564a6347f8..41564a6347f8 100644
--- a/include/asm-blackfin/param.h
+++ b/arch/blackfin/include/asm/param.h
diff --git a/include/asm-blackfin/pci.h b/arch/blackfin/include/asm/pci.h
index 61277358c865..61277358c865 100644
--- a/include/asm-blackfin/pci.h
+++ b/arch/blackfin/include/asm/pci.h
diff --git a/include/asm-blackfin/percpu.h b/arch/blackfin/include/asm/percpu.h
index 78dd61f6b39f..78dd61f6b39f 100644
--- a/include/asm-blackfin/percpu.h
+++ b/arch/blackfin/include/asm/percpu.h
diff --git a/include/asm-blackfin/pgalloc.h b/arch/blackfin/include/asm/pgalloc.h
index c686e0542fd0..c686e0542fd0 100644
--- a/include/asm-blackfin/pgalloc.h
+++ b/arch/blackfin/include/asm/pgalloc.h
diff --git a/include/asm-blackfin/pgtable.h b/arch/blackfin/include/asm/pgtable.h
index b11b114689c0..f11684e4ade7 100644
--- a/include/asm-blackfin/pgtable.h
+++ b/arch/blackfin/include/asm/pgtable.h
@@ -4,7 +4,7 @@
4#include <asm-generic/4level-fixup.h> 4#include <asm-generic/4level-fixup.h>
5 5
6#include <asm/page.h> 6#include <asm/page.h>
7#include <asm/mach-common/def_LPBlackfin.h> 7#include <asm/def_LPBlackfin.h>
8 8
9typedef pte_t *pte_addr_t; 9typedef pte_t *pte_addr_t;
10/* 10/*
diff --git a/include/asm-blackfin/poll.h b/arch/blackfin/include/asm/poll.h
index 94cc2636e0e2..94cc2636e0e2 100644
--- a/include/asm-blackfin/poll.h
+++ b/arch/blackfin/include/asm/poll.h
diff --git a/include/asm-blackfin/portmux.h b/arch/blackfin/include/asm/portmux.h
index 0807b286cd9e..88eb5c07cc24 100644
--- a/include/asm-blackfin/portmux.h
+++ b/arch/blackfin/include/asm/portmux.h
@@ -21,7 +21,7 @@ int peripheral_request_list(const unsigned short per[], const char *label);
21void peripheral_free_list(const unsigned short per[]); 21void peripheral_free_list(const unsigned short per[]);
22 22
23#include <asm/gpio.h> 23#include <asm/gpio.h>
24#include <asm/mach/portmux.h> 24#include <mach/portmux.h>
25 25
26#ifndef P_SPORT2_TFS 26#ifndef P_SPORT2_TFS
27#define P_SPORT2_TFS P_UNDEF 27#define P_SPORT2_TFS P_UNDEF
diff --git a/include/asm-blackfin/posix_types.h b/arch/blackfin/include/asm/posix_types.h
index 23aa1f8c1bd1..23aa1f8c1bd1 100644
--- a/include/asm-blackfin/posix_types.h
+++ b/arch/blackfin/include/asm/posix_types.h
diff --git a/include/asm-blackfin/processor.h b/arch/blackfin/include/asm/processor.h
index 6f3995b119d8..6f3995b119d8 100644
--- a/include/asm-blackfin/processor.h
+++ b/arch/blackfin/include/asm/processor.h
diff --git a/include/asm-blackfin/ptrace.h b/arch/blackfin/include/asm/ptrace.h
index a45a80e54adc..a45a80e54adc 100644
--- a/include/asm-blackfin/ptrace.h
+++ b/arch/blackfin/include/asm/ptrace.h
diff --git a/include/asm-blackfin/reboot.h b/arch/blackfin/include/asm/reboot.h
index 6d448b5f5985..6d448b5f5985 100644
--- a/include/asm-blackfin/reboot.h
+++ b/arch/blackfin/include/asm/reboot.h
diff --git a/include/asm-blackfin/resource.h b/arch/blackfin/include/asm/resource.h
index 091355ab3495..091355ab3495 100644
--- a/include/asm-blackfin/resource.h
+++ b/arch/blackfin/include/asm/resource.h
diff --git a/include/asm-blackfin/scatterlist.h b/arch/blackfin/include/asm/scatterlist.h
index 04f448711cd0..04f448711cd0 100644
--- a/include/asm-blackfin/scatterlist.h
+++ b/arch/blackfin/include/asm/scatterlist.h
diff --git a/include/asm-blackfin/sections.h b/arch/blackfin/include/asm/sections.h
index 1443c3353a8c..1443c3353a8c 100644
--- a/include/asm-blackfin/sections.h
+++ b/arch/blackfin/include/asm/sections.h
diff --git a/include/asm-blackfin/segment.h b/arch/blackfin/include/asm/segment.h
index 02cfd09b5a99..02cfd09b5a99 100644
--- a/include/asm-blackfin/segment.h
+++ b/arch/blackfin/include/asm/segment.h
diff --git a/include/asm-blackfin/sembuf.h b/arch/blackfin/include/asm/sembuf.h
index 18deb5c7fa5d..18deb5c7fa5d 100644
--- a/include/asm-blackfin/sembuf.h
+++ b/arch/blackfin/include/asm/sembuf.h
diff --git a/include/asm-blackfin/serial.h b/arch/blackfin/include/asm/serial.h
index 994dd869558c..994dd869558c 100644
--- a/include/asm-blackfin/serial.h
+++ b/arch/blackfin/include/asm/serial.h
diff --git a/include/asm-blackfin/setup.h b/arch/blackfin/include/asm/setup.h
index 01c8c6cbe6fc..01c8c6cbe6fc 100644
--- a/include/asm-blackfin/setup.h
+++ b/arch/blackfin/include/asm/setup.h
diff --git a/include/asm-blackfin/shmbuf.h b/arch/blackfin/include/asm/shmbuf.h
index 612436303e89..612436303e89 100644
--- a/include/asm-blackfin/shmbuf.h
+++ b/arch/blackfin/include/asm/shmbuf.h
diff --git a/include/asm-blackfin/shmparam.h b/arch/blackfin/include/asm/shmparam.h
index 3c03906b7664..3c03906b7664 100644
--- a/include/asm-blackfin/shmparam.h
+++ b/arch/blackfin/include/asm/shmparam.h
diff --git a/include/asm-blackfin/sigcontext.h b/arch/blackfin/include/asm/sigcontext.h
index ce00b03c2775..ce00b03c2775 100644
--- a/include/asm-blackfin/sigcontext.h
+++ b/arch/blackfin/include/asm/sigcontext.h
diff --git a/include/asm-blackfin/siginfo.h b/arch/blackfin/include/asm/siginfo.h
index eca4565cea37..eca4565cea37 100644
--- a/include/asm-blackfin/siginfo.h
+++ b/arch/blackfin/include/asm/siginfo.h
diff --git a/include/asm-blackfin/signal.h b/arch/blackfin/include/asm/signal.h
index 87951d251458..87951d251458 100644
--- a/include/asm-blackfin/signal.h
+++ b/arch/blackfin/include/asm/signal.h
diff --git a/include/asm-blackfin/socket.h b/arch/blackfin/include/asm/socket.h
index 2ca702e44d47..2ca702e44d47 100644
--- a/include/asm-blackfin/socket.h
+++ b/arch/blackfin/include/asm/socket.h
diff --git a/include/asm-blackfin/sockios.h b/arch/blackfin/include/asm/sockios.h
index 426b89bfaa8b..426b89bfaa8b 100644
--- a/include/asm-blackfin/sockios.h
+++ b/arch/blackfin/include/asm/sockios.h
diff --git a/include/asm-blackfin/spinlock.h b/arch/blackfin/include/asm/spinlock.h
index 64e908a50646..64e908a50646 100644
--- a/include/asm-blackfin/spinlock.h
+++ b/arch/blackfin/include/asm/spinlock.h
diff --git a/include/asm-blackfin/stat.h b/arch/blackfin/include/asm/stat.h
index d2b6f11ec231..d2b6f11ec231 100644
--- a/include/asm-blackfin/stat.h
+++ b/arch/blackfin/include/asm/stat.h
diff --git a/include/asm-blackfin/statfs.h b/arch/blackfin/include/asm/statfs.h
index 350672091ba3..350672091ba3 100644
--- a/include/asm-blackfin/statfs.h
+++ b/arch/blackfin/include/asm/statfs.h
diff --git a/include/asm-blackfin/string.h b/arch/blackfin/include/asm/string.h
index 321f4d96e4ae..321f4d96e4ae 100644
--- a/include/asm-blackfin/string.h
+++ b/arch/blackfin/include/asm/string.h
diff --git a/include/asm-blackfin/system.h b/arch/blackfin/include/asm/system.h
index 51494ef5bb41..8f1627d8bf09 100644
--- a/include/asm-blackfin/system.h
+++ b/arch/blackfin/include/asm/system.h
@@ -36,7 +36,7 @@
36 36
37#include <linux/linkage.h> 37#include <linux/linkage.h>
38#include <linux/compiler.h> 38#include <linux/compiler.h>
39#include <asm/mach/anomaly.h> 39#include <mach/anomaly.h>
40 40
41/* 41/*
42 * Interrupt configuring macros. 42 * Interrupt configuring macros.
diff --git a/include/asm-blackfin/termbits.h b/arch/blackfin/include/asm/termbits.h
index f37feb7cf895..f37feb7cf895 100644
--- a/include/asm-blackfin/termbits.h
+++ b/arch/blackfin/include/asm/termbits.h
diff --git a/include/asm-blackfin/termios.h b/arch/blackfin/include/asm/termios.h
index d50d063c605a..d50d063c605a 100644
--- a/include/asm-blackfin/termios.h
+++ b/arch/blackfin/include/asm/termios.h
diff --git a/include/asm-blackfin/thread_info.h b/arch/blackfin/include/asm/thread_info.h
index 642769329d12..642769329d12 100644
--- a/include/asm-blackfin/thread_info.h
+++ b/arch/blackfin/include/asm/thread_info.h
diff --git a/include/asm-blackfin/time.h b/arch/blackfin/include/asm/time.h
index ddc43ce38533..ddc43ce38533 100644
--- a/include/asm-blackfin/time.h
+++ b/arch/blackfin/include/asm/time.h
diff --git a/include/asm-blackfin/timex.h b/arch/blackfin/include/asm/timex.h
index 22b0806161bb..22b0806161bb 100644
--- a/include/asm-blackfin/timex.h
+++ b/arch/blackfin/include/asm/timex.h
diff --git a/include/asm-blackfin/tlb.h b/arch/blackfin/include/asm/tlb.h
index 89a12ee916d8..89a12ee916d8 100644
--- a/include/asm-blackfin/tlb.h
+++ b/arch/blackfin/include/asm/tlb.h
diff --git a/include/asm-blackfin/tlbflush.h b/arch/blackfin/include/asm/tlbflush.h
index 277b400924b8..277b400924b8 100644
--- a/include/asm-blackfin/tlbflush.h
+++ b/arch/blackfin/include/asm/tlbflush.h
diff --git a/include/asm-blackfin/topology.h b/arch/blackfin/include/asm/topology.h
index acee23987897..acee23987897 100644
--- a/include/asm-blackfin/topology.h
+++ b/arch/blackfin/include/asm/topology.h
diff --git a/include/asm-blackfin/trace.h b/arch/blackfin/include/asm/trace.h
index 312b596b9731..312b596b9731 100644
--- a/include/asm-blackfin/trace.h
+++ b/arch/blackfin/include/asm/trace.h
diff --git a/include/asm-blackfin/traps.h b/arch/blackfin/include/asm/traps.h
index f0e5f940d9ca..f0e5f940d9ca 100644
--- a/include/asm-blackfin/traps.h
+++ b/arch/blackfin/include/asm/traps.h
diff --git a/include/asm-blackfin/types.h b/arch/blackfin/include/asm/types.h
index 8441cbc2bf9e..8441cbc2bf9e 100644
--- a/include/asm-blackfin/types.h
+++ b/arch/blackfin/include/asm/types.h
diff --git a/include/asm-blackfin/uaccess.h b/arch/blackfin/include/asm/uaccess.h
index d928b8099056..d928b8099056 100644
--- a/include/asm-blackfin/uaccess.h
+++ b/arch/blackfin/include/asm/uaccess.h
diff --git a/include/asm-blackfin/ucontext.h b/arch/blackfin/include/asm/ucontext.h
index 4a4e3856beba..4a4e3856beba 100644
--- a/include/asm-blackfin/ucontext.h
+++ b/arch/blackfin/include/asm/ucontext.h
diff --git a/include/asm-blackfin/unaligned.h b/arch/blackfin/include/asm/unaligned.h
index fd8a1d634945..fd8a1d634945 100644
--- a/include/asm-blackfin/unaligned.h
+++ b/arch/blackfin/include/asm/unaligned.h
diff --git a/include/asm-blackfin/unistd.h b/arch/blackfin/include/asm/unistd.h
index 1e57b636e0bc..1e57b636e0bc 100644
--- a/include/asm-blackfin/unistd.h
+++ b/arch/blackfin/include/asm/unistd.h
diff --git a/include/asm-blackfin/user.h b/arch/blackfin/include/asm/user.h
index afe6a0e1f7ce..afe6a0e1f7ce 100644
--- a/include/asm-blackfin/user.h
+++ b/arch/blackfin/include/asm/user.h
diff --git a/arch/blackfin/kernel/entry.S b/arch/blackfin/kernel/entry.S
index 31bd9bf3efae..faea88ebb2ef 100644
--- a/arch/blackfin/kernel/entry.S
+++ b/arch/blackfin/kernel/entry.S
@@ -32,7 +32,7 @@
32#include <asm/errno.h> 32#include <asm/errno.h>
33#include <asm/asm-offsets.h> 33#include <asm/asm-offsets.h>
34 34
35#include <asm/mach-common/context.S> 35#include <asm/context.S>
36 36
37#ifdef CONFIG_EXCPT_IRQ_SYSC_L1 37#ifdef CONFIG_EXCPT_IRQ_SYSC_L1
38.section .l1.text 38.section .l1.text
diff --git a/arch/blackfin/mach-bf527/head.S b/arch/blackfin/mach-bf527/head.S
index c3334cc5bcb7..28c486191209 100644
--- a/arch/blackfin/mach-bf527/head.S
+++ b/arch/blackfin/mach-bf527/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf527/anomaly.h b/arch/blackfin/mach-bf527/include/mach/anomaly.h
index b7b166f4f064..b7b166f4f064 100644
--- a/include/asm-blackfin/mach-bf527/anomaly.h
+++ b/arch/blackfin/mach-bf527/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf527/bf527.h b/arch/blackfin/mach-bf527/include/mach/bf527.h
index 056eb4b9cd25..056eb4b9cd25 100644
--- a/include/asm-blackfin/mach-bf527/bf527.h
+++ b/arch/blackfin/mach-bf527/include/mach/bf527.h
diff --git a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
index 2526b6ed6faa..2526b6ed6faa 100644
--- a/include/asm-blackfin/mach-bf527/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf527/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf527/bfin_sir.h b/arch/blackfin/mach-bf527/include/mach/bfin_sir.h
index cfd8ad4f1f2c..cfd8ad4f1f2c 100644
--- a/include/asm-blackfin/mach-bf527/bfin_sir.h
+++ b/arch/blackfin/mach-bf527/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf527/blackfin.h b/arch/blackfin/mach-bf527/include/mach/blackfin.h
index 297821e2d79a..297821e2d79a 100644
--- a/include/asm-blackfin/mach-bf527/blackfin.h
+++ b/arch/blackfin/mach-bf527/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf527/cdefBF522.h b/arch/blackfin/mach-bf527/include/mach/cdefBF522.h
index 52c06494b886..663c2bbdfd91 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF522.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF522.h
@@ -36,7 +36,7 @@
36#include "defBF522.h" 36#include "defBF522.h"
37 37
38/* include core specific register pointer definitions */ 38/* include core specific register pointer definitions */
39#include <asm/mach-common/cdef_LPBlackfin.h> 39#include <asm/cdef_LPBlackfin.h>
40 40
41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */ 41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */
42 42
diff --git a/include/asm-blackfin/mach-bf527/cdefBF525.h b/arch/blackfin/mach-bf527/include/mach/cdefBF525.h
index 2cc67e4b4d86..00377eb59b75 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF525.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF525.h
@@ -36,7 +36,7 @@
36#include "defBF525.h" 36#include "defBF525.h"
37 37
38/* include core specific register pointer definitions */ 38/* include core specific register pointer definitions */
39#include <asm/mach-common/cdef_LPBlackfin.h> 39#include <asm/cdef_LPBlackfin.h>
40 40
41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */ 41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */
42 42
diff --git a/include/asm-blackfin/mach-bf527/cdefBF527.h b/arch/blackfin/mach-bf527/include/mach/cdefBF527.h
index 5bd1a8601743..fca8db708119 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF527.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF527.h
@@ -36,7 +36,7 @@
36#include "defBF527.h" 36#include "defBF527.h"
37 37
38/* include core specific register pointer definitions */ 38/* include core specific register pointer definitions */
39#include <asm/mach-common/cdef_LPBlackfin.h> 39#include <asm/cdef_LPBlackfin.h>
40 40
41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */ 41/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */
42 42
diff --git a/include/asm-blackfin/mach-bf527/cdefBF52x_base.h b/arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h
index 9dbdbec8ea1b..9a814b9a12b9 100644
--- a/include/asm-blackfin/mach-bf527/cdefBF52x_base.h
+++ b/arch/blackfin/mach-bf527/include/mach/cdefBF52x_base.h
@@ -37,7 +37,7 @@
37#include "defBF52x_base.h" 37#include "defBF52x_base.h"
38 38
39/* Include core specific register pointer definitions */ 39/* Include core specific register pointer definitions */
40#include <asm/mach-common/cdef_LPBlackfin.h> 40#include <asm/cdef_LPBlackfin.h>
41 41
42/* ==== begin from cdefBF534.h ==== */ 42/* ==== begin from cdefBF534.h ==== */
43 43
diff --git a/include/asm-blackfin/mach-bf527/defBF522.h b/arch/blackfin/mach-bf527/include/mach/defBF522.h
index 9671d8f2c5ef..0a8cdcdf0b49 100644
--- a/include/asm-blackfin/mach-bf527/defBF522.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF522.h
@@ -32,7 +32,7 @@
32#define _DEF_BF522_H 32#define _DEF_BF522_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF522 */
38 38
diff --git a/include/asm-blackfin/mach-bf527/defBF525.h b/arch/blackfin/mach-bf527/include/mach/defBF525.h
index 6a375a084acc..5cd7576fef76 100644
--- a/include/asm-blackfin/mach-bf527/defBF525.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF525.h
@@ -32,7 +32,7 @@
32#define _DEF_BF525_H 32#define _DEF_BF525_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF525 */
38 38
diff --git a/include/asm-blackfin/mach-bf527/defBF527.h b/arch/blackfin/mach-bf527/include/mach/defBF527.h
index f1a70db70cb8..f040f364afa3 100644
--- a/include/asm-blackfin/mach-bf527/defBF527.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF527.h
@@ -32,7 +32,7 @@
32#define _DEF_BF527_H 32#define _DEF_BF527_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF527 */
38 38
diff --git a/include/asm-blackfin/mach-bf527/defBF52x_base.h b/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h
index fc69cf93f149..6ac2ed7026eb 100644
--- a/include/asm-blackfin/mach-bf527/defBF52x_base.h
+++ b/arch/blackfin/mach-bf527/include/mach/defBF52x_base.h
@@ -151,7 +151,7 @@
151#define TIMER7_CONFIG 0xFFC00670 /* Timer 7 Configuration Register */ 151#define TIMER7_CONFIG 0xFFC00670 /* Timer 7 Configuration Register */
152#define TIMER7_COUNTER 0xFFC00674 /* Timer 7 Counter Register */ 152#define TIMER7_COUNTER 0xFFC00674 /* Timer 7 Counter Register */
153#define TIMER7_PERIOD 0xFFC00678 /* Timer 7 Period Register */ 153#define TIMER7_PERIOD 0xFFC00678 /* Timer 7 Period Register */
154#define TIMER7_WIDTH 0xFFC0067C /* Timer 7 Width Register */ 154#define TIMER7_WIDTH 0xFFC0067C /* Timer 7 Width Register */
155 155
156#define TIMER_ENABLE 0xFFC00680 /* Timer Enable Register */ 156#define TIMER_ENABLE 0xFFC00680 /* Timer Enable Register */
157#define TIMER_DISABLE 0xFFC00684 /* Timer Disable Register */ 157#define TIMER_DISABLE 0xFFC00684 /* Timer Disable Register */
@@ -634,18 +634,9 @@
634/* PLL_DIV Macros */ 634/* PLL_DIV Macros */
635#define SET_SSEL(x) ((x)&0xF) /* Set SSEL = 0-15 --> SCLK = VCO/SSEL */ 635#define SET_SSEL(x) ((x)&0xF) /* Set SSEL = 0-15 --> SCLK = VCO/SSEL */
636 636
637/* VR_CTL Masks */ 637/* VR_CTL Masks */
638#define FREQ 0x0003 /* Switching Oscillator Frequency For Regulator */ 638#define FREQ 0x3000 /* Switching Oscillator Frequency For Regulator */
639#define HIBERNATE 0x0000 /* Powerdown/Bypass On-Board Regulation */ 639#define HIBERNATE 0x0000 /* Powerdown/Bypass On-Board Regulation */
640#define FREQ_333 0x0001 /* Switching Frequency Is 333 kHz */
641#define FREQ_667 0x0002 /* Switching Frequency Is 667 kHz */
642#define FREQ_1000 0x0003 /* Switching Frequency Is 1 MHz */
643
644#define GAIN 0x000C /* Voltage Level Gain */
645#define GAIN_5 0x0000 /* GAIN = 5 */
646#define GAIN_10 0x0004 /* GAIN = 10 */
647#define GAIN_20 0x0008 /* GAIN = 20 */
648#define GAIN_50 0x000C /* GAIN = 50 */
649 640
650#define VLEV 0x00F0 /* Internal Voltage Level */ 641#define VLEV 0x00F0 /* Internal Voltage Level */
651#define VLEV_085 0x0060 /* VLEV = 0.85 V (-5% - +10% Accuracy) */ 642#define VLEV_085 0x0060 /* VLEV = 0.85 V (-5% - +10% Accuracy) */
@@ -660,7 +651,7 @@
660#define VLEV_130 0x00F0 /* VLEV = 1.30 V (-5% - +10% Accuracy) */ 651#define VLEV_130 0x00F0 /* VLEV = 1.30 V (-5% - +10% Accuracy) */
661 652
662#define WAKE 0x0100 /* Enable RTC/Reset Wakeup From Hibernate */ 653#define WAKE 0x0100 /* Enable RTC/Reset Wakeup From Hibernate */
663#define CANWE 0x0200 /* Enable CAN Wakeup From Hibernate */ 654#define USBWE 0x0200 /* Enable USB Wakeup From Hibernate */
664#define PHYWE 0x0400 /* Enable PHY Wakeup From Hibernate */ 655#define PHYWE 0x0400 /* Enable PHY Wakeup From Hibernate */
665#define CLKBUFOE 0x4000 /* CLKIN Buffer Output Enable */ 656#define CLKBUFOE 0x4000 /* CLKIN Buffer Output Enable */
666#define PHYCLKOE CLKBUFOE /* Alternative legacy name for the above */ 657#define PHYCLKOE CLKBUFOE /* Alternative legacy name for the above */
@@ -697,16 +688,16 @@
697 688
698#define IRQ_ERROR1 0x00000002 /* Error Interrupt (DMA, DMARx Block, DMARx Overflow) */ 689#define IRQ_ERROR1 0x00000002 /* Error Interrupt (DMA, DMARx Block, DMARx Overflow) */
699#define IRQ_ERROR2 0x00000004 /* Error Interrupt (CAN, Ethernet, SPORTx, PPI, SPI, UARTx) */ 690#define IRQ_ERROR2 0x00000004 /* Error Interrupt (CAN, Ethernet, SPORTx, PPI, SPI, UARTx) */
700#define IRQ_RTC 0x00000008 /* Real Time Clock Interrupt */ 691#define IRQ_RTC 0x00000008 /* Real Time Clock Interrupt */
701#define IRQ_DMA0 0x00000010 /* DMA Channel 0 (PPI) Interrupt */ 692#define IRQ_DMA0 0x00000010 /* DMA Channel 0 (PPI) Interrupt */
702#define IRQ_DMA3 0x00000020 /* DMA Channel 3 (SPORT0 RX) Interrupt */ 693#define IRQ_DMA3 0x00000020 /* DMA Channel 3 (SPORT0 RX) Interrupt */
703#define IRQ_DMA4 0x00000040 /* DMA Channel 4 (SPORT0 TX) Interrupt */ 694#define IRQ_DMA4 0x00000040 /* DMA Channel 4 (SPORT0 TX) Interrupt */
704#define IRQ_DMA5 0x00000080 /* DMA Channel 5 (SPORT1 RX) Interrupt */ 695#define IRQ_DMA5 0x00000080 /* DMA Channel 5 (SPORT1 RX) Interrupt */
705 696
706#define IRQ_DMA6 0x00000100 /* DMA Channel 6 (SPORT1 TX) Interrupt */ 697#define IRQ_DMA6 0x00000100 /* DMA Channel 6 (SPORT1 TX) Interrupt */
707#define IRQ_TWI 0x00000200 /* TWI Interrupt */ 698#define IRQ_TWI 0x00000200 /* TWI Interrupt */
708#define IRQ_DMA7 0x00000400 /* DMA Channel 7 (SPI) Interrupt */ 699#define IRQ_DMA7 0x00000400 /* DMA Channel 7 (SPI) Interrupt */
709#define IRQ_DMA8 0x00000800 /* DMA Channel 8 (UART0 RX) Interrupt */ 700#define IRQ_DMA8 0x00000800 /* DMA Channel 8 (UART0 RX) Interrupt */
710#define IRQ_DMA9 0x00001000 /* DMA Channel 9 (UART0 TX) Interrupt */ 701#define IRQ_DMA9 0x00001000 /* DMA Channel 9 (UART0 TX) Interrupt */
711#define IRQ_DMA10 0x00002000 /* DMA Channel 10 (UART1 RX) Interrupt */ 702#define IRQ_DMA10 0x00002000 /* DMA Channel 10 (UART1 RX) Interrupt */
712#define IRQ_DMA11 0x00004000 /* DMA Channel 11 (UART1 TX) Interrupt */ 703#define IRQ_DMA11 0x00004000 /* DMA Channel 11 (UART1 TX) Interrupt */
@@ -801,7 +792,7 @@
801#define WDEV_NONE 0x0006 /* no event on roll over */ 792#define WDEV_NONE 0x0006 /* no event on roll over */
802#define WDEN 0x0FF0 /* enable watchdog */ 793#define WDEN 0x0FF0 /* enable watchdog */
803#define WDDIS 0x0AD0 /* disable watchdog */ 794#define WDDIS 0x0AD0 /* disable watchdog */
804#define WDRO 0x8000 /* watchdog rolled over latch */ 795#define WDRO 0x8000 /* watchdog rolled over latch */
805 796
806/* depreciated WDOG_CTL Register Masks for legacy code */ 797/* depreciated WDOG_CTL Register Masks for legacy code */
807 798
@@ -882,7 +873,7 @@
882#define NINT 0x01 /* Pending Interrupt */ 873#define NINT 0x01 /* Pending Interrupt */
883#define IIR_TX_READY 0x02 /* UART_THR empty */ 874#define IIR_TX_READY 0x02 /* UART_THR empty */
884#define IIR_RX_READY 0x04 /* Receive data ready */ 875#define IIR_RX_READY 0x04 /* Receive data ready */
885#define IIR_LINE_CHANGE 0x06 /* Receive line status */ 876#define IIR_LINE_CHANGE 0x06 /* Receive line status */
886#define IIR_STATUS 0x06 /* Highest Priority Pending Interrupt */ 877#define IIR_STATUS 0x06 /* Highest Priority Pending Interrupt */
887 878
888/* UARTx_GCTL Masks */ 879/* UARTx_GCTL Masks */
@@ -1638,12 +1629,12 @@
1638 1629
1639/* entry addresses of the user-callable Boot ROM functions */ 1630/* entry addresses of the user-callable Boot ROM functions */
1640 1631
1641#define _BOOTROM_RESET 0xEF000000 1632#define _BOOTROM_RESET 0xEF000000
1642#define _BOOTROM_FINAL_INIT 0xEF000002 1633#define _BOOTROM_FINAL_INIT 0xEF000002
1643#define _BOOTROM_DO_MEMORY_DMA 0xEF000006 1634#define _BOOTROM_DO_MEMORY_DMA 0xEF000006
1644#define _BOOTROM_BOOT_DXE_FLASH 0xEF000008 1635#define _BOOTROM_BOOT_DXE_FLASH 0xEF000008
1645#define _BOOTROM_BOOT_DXE_SPI 0xEF00000A 1636#define _BOOTROM_BOOT_DXE_SPI 0xEF00000A
1646#define _BOOTROM_BOOT_DXE_TWI 0xEF00000C 1637#define _BOOTROM_BOOT_DXE_TWI 0xEF00000C
1647#define _BOOTROM_GET_DXE_ADDRESS_FLASH 0xEF000010 1638#define _BOOTROM_GET_DXE_ADDRESS_FLASH 0xEF000010
1648#define _BOOTROM_GET_DXE_ADDRESS_SPI 0xEF000012 1639#define _BOOTROM_GET_DXE_ADDRESS_SPI 0xEF000012
1649#define _BOOTROM_GET_DXE_ADDRESS_TWI 0xEF000014 1640#define _BOOTROM_GET_DXE_ADDRESS_TWI 0xEF000014
@@ -1771,71 +1762,71 @@
1771/* Bit masks for CNT_CONFIG */ 1762/* Bit masks for CNT_CONFIG */
1772 1763
1773#define CNTE 0x1 /* Counter Enable */ 1764#define CNTE 0x1 /* Counter Enable */
1774#define nCNTE 0x0 1765#define nCNTE 0x0
1775#define DEBE 0x2 /* Debounce Enable */ 1766#define DEBE 0x2 /* Debounce Enable */
1776#define nDEBE 0x0 1767#define nDEBE 0x0
1777#define CDGINV 0x10 /* CDG Pin Polarity Invert */ 1768#define CDGINV 0x10 /* CDG Pin Polarity Invert */
1778#define nCDGINV 0x0 1769#define nCDGINV 0x0
1779#define CUDINV 0x20 /* CUD Pin Polarity Invert */ 1770#define CUDINV 0x20 /* CUD Pin Polarity Invert */
1780#define nCUDINV 0x0 1771#define nCUDINV 0x0
1781#define CZMINV 0x40 /* CZM Pin Polarity Invert */ 1772#define CZMINV 0x40 /* CZM Pin Polarity Invert */
1782#define nCZMINV 0x0 1773#define nCZMINV 0x0
1783#define CNTMODE 0x700 /* Counter Operating Mode */ 1774#define CNTMODE 0x700 /* Counter Operating Mode */
1784#define ZMZC 0x800 /* CZM Zeroes Counter Enable */ 1775#define ZMZC 0x800 /* CZM Zeroes Counter Enable */
1785#define nZMZC 0x0 1776#define nZMZC 0x0
1786#define BNDMODE 0x3000 /* Boundary register Mode */ 1777#define BNDMODE 0x3000 /* Boundary register Mode */
1787#define INPDIS 0x8000 /* CUG and CDG Input Disable */ 1778#define INPDIS 0x8000 /* CUG and CDG Input Disable */
1788#define nINPDIS 0x0 1779#define nINPDIS 0x0
1789 1780
1790/* Bit masks for CNT_IMASK */ 1781/* Bit masks for CNT_IMASK */
1791 1782
1792#define ICIE 0x1 /* Illegal Gray/Binary Code Interrupt Enable */ 1783#define ICIE 0x1 /* Illegal Gray/Binary Code Interrupt Enable */
1793#define nICIE 0x0 1784#define nICIE 0x0
1794#define UCIE 0x2 /* Up count Interrupt Enable */ 1785#define UCIE 0x2 /* Up count Interrupt Enable */
1795#define nUCIE 0x0 1786#define nUCIE 0x0
1796#define DCIE 0x4 /* Down count Interrupt Enable */ 1787#define DCIE 0x4 /* Down count Interrupt Enable */
1797#define nDCIE 0x0 1788#define nDCIE 0x0
1798#define MINCIE 0x8 /* Min Count Interrupt Enable */ 1789#define MINCIE 0x8 /* Min Count Interrupt Enable */
1799#define nMINCIE 0x0 1790#define nMINCIE 0x0
1800#define MAXCIE 0x10 /* Max Count Interrupt Enable */ 1791#define MAXCIE 0x10 /* Max Count Interrupt Enable */
1801#define nMAXCIE 0x0 1792#define nMAXCIE 0x0
1802#define COV31IE 0x20 /* Bit 31 Overflow Interrupt Enable */ 1793#define COV31IE 0x20 /* Bit 31 Overflow Interrupt Enable */
1803#define nCOV31IE 0x0 1794#define nCOV31IE 0x0
1804#define COV15IE 0x40 /* Bit 15 Overflow Interrupt Enable */ 1795#define COV15IE 0x40 /* Bit 15 Overflow Interrupt Enable */
1805#define nCOV15IE 0x0 1796#define nCOV15IE 0x0
1806#define CZEROIE 0x80 /* Count to Zero Interrupt Enable */ 1797#define CZEROIE 0x80 /* Count to Zero Interrupt Enable */
1807#define nCZEROIE 0x0 1798#define nCZEROIE 0x0
1808#define CZMIE 0x100 /* CZM Pin Interrupt Enable */ 1799#define CZMIE 0x100 /* CZM Pin Interrupt Enable */
1809#define nCZMIE 0x0 1800#define nCZMIE 0x0
1810#define CZMEIE 0x200 /* CZM Error Interrupt Enable */ 1801#define CZMEIE 0x200 /* CZM Error Interrupt Enable */
1811#define nCZMEIE 0x0 1802#define nCZMEIE 0x0
1812#define CZMZIE 0x400 /* CZM Zeroes Counter Interrupt Enable */ 1803#define CZMZIE 0x400 /* CZM Zeroes Counter Interrupt Enable */
1813#define nCZMZIE 0x0 1804#define nCZMZIE 0x0
1814 1805
1815/* Bit masks for CNT_STATUS */ 1806/* Bit masks for CNT_STATUS */
1816 1807
1817#define ICII 0x1 /* Illegal Gray/Binary Code Interrupt Identifier */ 1808#define ICII 0x1 /* Illegal Gray/Binary Code Interrupt Identifier */
1818#define nICII 0x0 1809#define nICII 0x0
1819#define UCII 0x2 /* Up count Interrupt Identifier */ 1810#define UCII 0x2 /* Up count Interrupt Identifier */
1820#define nUCII 0x0 1811#define nUCII 0x0
1821#define DCII 0x4 /* Down count Interrupt Identifier */ 1812#define DCII 0x4 /* Down count Interrupt Identifier */
1822#define nDCII 0x0 1813#define nDCII 0x0
1823#define MINCII 0x8 /* Min Count Interrupt Identifier */ 1814#define MINCII 0x8 /* Min Count Interrupt Identifier */
1824#define nMINCII 0x0 1815#define nMINCII 0x0
1825#define MAXCII 0x10 /* Max Count Interrupt Identifier */ 1816#define MAXCII 0x10 /* Max Count Interrupt Identifier */
1826#define nMAXCII 0x0 1817#define nMAXCII 0x0
1827#define COV31II 0x20 /* Bit 31 Overflow Interrupt Identifier */ 1818#define COV31II 0x20 /* Bit 31 Overflow Interrupt Identifier */
1828#define nCOV31II 0x0 1819#define nCOV31II 0x0
1829#define COV15II 0x40 /* Bit 15 Overflow Interrupt Identifier */ 1820#define COV15II 0x40 /* Bit 15 Overflow Interrupt Identifier */
1830#define nCOV15II 0x0 1821#define nCOV15II 0x0
1831#define CZEROII 0x80 /* Count to Zero Interrupt Identifier */ 1822#define CZEROII 0x80 /* Count to Zero Interrupt Identifier */
1832#define nCZEROII 0x0 1823#define nCZEROII 0x0
1833#define CZMII 0x100 /* CZM Pin Interrupt Identifier */ 1824#define CZMII 0x100 /* CZM Pin Interrupt Identifier */
1834#define nCZMII 0x0 1825#define nCZMII 0x0
1835#define CZMEII 0x200 /* CZM Error Interrupt Identifier */ 1826#define CZMEII 0x200 /* CZM Error Interrupt Identifier */
1836#define nCZMEII 0x0 1827#define nCZMEII 0x0
1837#define CZMZII 0x400 /* CZM Zeroes Counter Interrupt Identifier */ 1828#define CZMZII 0x400 /* CZM Zeroes Counter Interrupt Identifier */
1838#define nCZMZII 0x0 1829#define nCZMZII 0x0
1839 1830
1840/* Bit masks for CNT_COMMAND */ 1831/* Bit masks for CNT_COMMAND */
1841 1832
@@ -1843,7 +1834,7 @@
1843#define W1LMIN 0xf0 /* Load Min Register */ 1834#define W1LMIN 0xf0 /* Load Min Register */
1844#define W1LMAX 0xf00 /* Load Max Register */ 1835#define W1LMAX 0xf00 /* Load Max Register */
1845#define W1ZMONCE 0x1000 /* Enable CZM Clear Counter Once */ 1836#define W1ZMONCE 0x1000 /* Enable CZM Clear Counter Once */
1846#define nW1ZMONCE 0x0 1837#define nW1ZMONCE 0x0
1847 1838
1848/* Bit masks for CNT_DEBOUNCE */ 1839/* Bit masks for CNT_DEBOUNCE */
1849 1840
@@ -1853,15 +1844,15 @@
1853 1844
1854#define FUSE_FADDR 0x1ff /* OTP/Fuse Address */ 1845#define FUSE_FADDR 0x1ff /* OTP/Fuse Address */
1855#define FIEN 0x800 /* OTP/Fuse Interrupt Enable */ 1846#define FIEN 0x800 /* OTP/Fuse Interrupt Enable */
1856#define nFIEN 0x0 1847#define nFIEN 0x0
1857#define FTESTDEC 0x1000 /* OTP/Fuse Test Decoder */ 1848#define FTESTDEC 0x1000 /* OTP/Fuse Test Decoder */
1858#define nFTESTDEC 0x0 1849#define nFTESTDEC 0x0
1859#define FWRTEST 0x2000 /* OTP/Fuse Write Test */ 1850#define FWRTEST 0x2000 /* OTP/Fuse Write Test */
1860#define nFWRTEST 0x0 1851#define nFWRTEST 0x0
1861#define FRDEN 0x4000 /* OTP/Fuse Read Enable */ 1852#define FRDEN 0x4000 /* OTP/Fuse Read Enable */
1862#define nFRDEN 0x0 1853#define nFRDEN 0x0
1863#define FWREN 0x8000 /* OTP/Fuse Write Enable */ 1854#define FWREN 0x8000 /* OTP/Fuse Write Enable */
1864#define nFWREN 0x0 1855#define nFWREN 0x0
1865 1856
1866/* Bit masks for OTP_BEN */ 1857/* Bit masks for OTP_BEN */
1867 1858
@@ -1870,15 +1861,15 @@
1870/* Bit masks for OTP_STATUS */ 1861/* Bit masks for OTP_STATUS */
1871 1862
1872#define FCOMP 0x1 /* OTP/Fuse Access Complete */ 1863#define FCOMP 0x1 /* OTP/Fuse Access Complete */
1873#define nFCOMP 0x0 1864#define nFCOMP 0x0
1874#define FERROR 0x2 /* OTP/Fuse Access Error */ 1865#define FERROR 0x2 /* OTP/Fuse Access Error */
1875#define nFERROR 0x0 1866#define nFERROR 0x0
1876#define MMRGLOAD 0x10 /* Memory Mapped Register Gasket Load */ 1867#define MMRGLOAD 0x10 /* Memory Mapped Register Gasket Load */
1877#define nMMRGLOAD 0x0 1868#define nMMRGLOAD 0x0
1878#define MMRGLOCK 0x20 /* Memory Mapped Register Gasket Lock */ 1869#define MMRGLOCK 0x20 /* Memory Mapped Register Gasket Lock */
1879#define nMMRGLOCK 0x0 1870#define nMMRGLOCK 0x0
1880#define FPGMEN 0x40 /* OTP/Fuse Program Enable */ 1871#define FPGMEN 0x40 /* OTP/Fuse Program Enable */
1881#define nFPGMEN 0x0 1872#define nFPGMEN 0x0
1882 1873
1883/* Bit masks for OTP_TIMING */ 1874/* Bit masks for OTP_TIMING */
1884 1875
@@ -1892,42 +1883,42 @@
1892/* Bit masks for SECURE_SYSSWT */ 1883/* Bit masks for SECURE_SYSSWT */
1893 1884
1894#define EMUDABL 0x1 /* Emulation Disable. */ 1885#define EMUDABL 0x1 /* Emulation Disable. */
1895#define nEMUDABL 0x0 1886#define nEMUDABL 0x0
1896#define RSTDABL 0x2 /* Reset Disable */ 1887#define RSTDABL 0x2 /* Reset Disable */
1897#define nRSTDABL 0x0 1888#define nRSTDABL 0x0
1898#define L1IDABL 0x1c /* L1 Instruction Memory Disable. */ 1889#define L1IDABL 0x1c /* L1 Instruction Memory Disable. */
1899#define L1DADABL 0xe0 /* L1 Data Bank A Memory Disable. */ 1890#define L1DADABL 0xe0 /* L1 Data Bank A Memory Disable. */
1900#define L1DBDABL 0x700 /* L1 Data Bank B Memory Disable. */ 1891#define L1DBDABL 0x700 /* L1 Data Bank B Memory Disable. */
1901#define DMA0OVR 0x800 /* DMA0 Memory Access Override */ 1892#define DMA0OVR 0x800 /* DMA0 Memory Access Override */
1902#define nDMA0OVR 0x0 1893#define nDMA0OVR 0x0
1903#define DMA1OVR 0x1000 /* DMA1 Memory Access Override */ 1894#define DMA1OVR 0x1000 /* DMA1 Memory Access Override */
1904#define nDMA1OVR 0x0 1895#define nDMA1OVR 0x0
1905#define EMUOVR 0x4000 /* Emulation Override */ 1896#define EMUOVR 0x4000 /* Emulation Override */
1906#define nEMUOVR 0x0 1897#define nEMUOVR 0x0
1907#define OTPSEN 0x8000 /* OTP Secrets Enable. */ 1898#define OTPSEN 0x8000 /* OTP Secrets Enable. */
1908#define nOTPSEN 0x0 1899#define nOTPSEN 0x0
1909#define L2DABL 0x70000 /* L2 Memory Disable. */ 1900#define L2DABL 0x70000 /* L2 Memory Disable. */
1910 1901
1911/* Bit masks for SECURE_CONTROL */ 1902/* Bit masks for SECURE_CONTROL */
1912 1903
1913#define SECURE0 0x1 /* SECURE 0 */ 1904#define SECURE0 0x1 /* SECURE 0 */
1914#define nSECURE0 0x0 1905#define nSECURE0 0x0
1915#define SECURE1 0x2 /* SECURE 1 */ 1906#define SECURE1 0x2 /* SECURE 1 */
1916#define nSECURE1 0x0 1907#define nSECURE1 0x0
1917#define SECURE2 0x4 /* SECURE 2 */ 1908#define SECURE2 0x4 /* SECURE 2 */
1918#define nSECURE2 0x0 1909#define nSECURE2 0x0
1919#define SECURE3 0x8 /* SECURE 3 */ 1910#define SECURE3 0x8 /* SECURE 3 */
1920#define nSECURE3 0x0 1911#define nSECURE3 0x0
1921 1912
1922/* Bit masks for SECURE_STATUS */ 1913/* Bit masks for SECURE_STATUS */
1923 1914
1924#define SECMODE 0x3 /* Secured Mode Control State */ 1915#define SECMODE 0x3 /* Secured Mode Control State */
1925#define NMI 0x4 /* Non Maskable Interrupt */ 1916#define NMI 0x4 /* Non Maskable Interrupt */
1926#define nNMI 0x0 1917#define nNMI 0x0
1927#define AFVALID 0x8 /* Authentication Firmware Valid */ 1918#define AFVALID 0x8 /* Authentication Firmware Valid */
1928#define nAFVALID 0x0 1919#define nAFVALID 0x0
1929#define AFEXIT 0x10 /* Authentication Firmware Exit */ 1920#define AFEXIT 0x10 /* Authentication Firmware Exit */
1930#define nAFEXIT 0x0 1921#define nAFEXIT 0x0
1931#define SECSTAT 0xe0 /* Secure Status */ 1922#define SECSTAT 0xe0 /* Secure Status */
1932 1923
1933/* Bit masks for NFC_CTL */ 1924/* Bit masks for NFC_CTL */
@@ -1935,60 +1926,60 @@
1935#define WR_DLY 0xf /* Write Strobe Delay */ 1926#define WR_DLY 0xf /* Write Strobe Delay */
1936#define RD_DLY 0xf0 /* Read Strobe Delay */ 1927#define RD_DLY 0xf0 /* Read Strobe Delay */
1937#define NWIDTH 0x100 /* NAND Data Width */ 1928#define NWIDTH 0x100 /* NAND Data Width */
1938#define nNWIDTH 0x0 1929#define nNWIDTH 0x0
1939#define PG_SIZE 0x200 /* Page Size */ 1930#define PG_SIZE 0x200 /* Page Size */
1940#define nPG_SIZE 0x0 1931#define nPG_SIZE 0x0
1941 1932
1942/* Bit masks for NFC_STAT */ 1933/* Bit masks for NFC_STAT */
1943 1934
1944#define NBUSY 0x1 /* Not Busy */ 1935#define NBUSY 0x1 /* Not Busy */
1945#define nNBUSY 0x0 1936#define nNBUSY 0x0
1946#define WB_FULL 0x2 /* Write Buffer Full */ 1937#define WB_FULL 0x2 /* Write Buffer Full */
1947#define nWB_FULL 0x0 1938#define nWB_FULL 0x0
1948#define PG_WR_STAT 0x4 /* Page Write Pending */ 1939#define PG_WR_STAT 0x4 /* Page Write Pending */
1949#define nPG_WR_STAT 0x0 1940#define nPG_WR_STAT 0x0
1950#define PG_RD_STAT 0x8 /* Page Read Pending */ 1941#define PG_RD_STAT 0x8 /* Page Read Pending */
1951#define nPG_RD_STAT 0x0 1942#define nPG_RD_STAT 0x0
1952#define WB_EMPTY 0x10 /* Write Buffer Empty */ 1943#define WB_EMPTY 0x10 /* Write Buffer Empty */
1953#define nWB_EMPTY 0x0 1944#define nWB_EMPTY 0x0
1954 1945
1955/* Bit masks for NFC_IRQSTAT */ 1946/* Bit masks for NFC_IRQSTAT */
1956 1947
1957#define NBUSYIRQ 0x1 /* Not Busy IRQ */ 1948#define NBUSYIRQ 0x1 /* Not Busy IRQ */
1958#define nNBUSYIRQ 0x0 1949#define nNBUSYIRQ 0x0
1959#define WB_OVF 0x2 /* Write Buffer Overflow */ 1950#define WB_OVF 0x2 /* Write Buffer Overflow */
1960#define nWB_OVF 0x0 1951#define nWB_OVF 0x0
1961#define WB_EDGE 0x4 /* Write Buffer Edge Detect */ 1952#define WB_EDGE 0x4 /* Write Buffer Edge Detect */
1962#define nWB_EDGE 0x0 1953#define nWB_EDGE 0x0
1963#define RD_RDY 0x8 /* Read Data Ready */ 1954#define RD_RDY 0x8 /* Read Data Ready */
1964#define nRD_RDY 0x0 1955#define nRD_RDY 0x0
1965#define WR_DONE 0x10 /* Page Write Done */ 1956#define WR_DONE 0x10 /* Page Write Done */
1966#define nWR_DONE 0x0 1957#define nWR_DONE 0x0
1967 1958
1968/* Bit masks for NFC_IRQMASK */ 1959/* Bit masks for NFC_IRQMASK */
1969 1960
1970#define MASK_BUSYIRQ 0x1 /* Mask Not Busy IRQ */ 1961#define MASK_BUSYIRQ 0x1 /* Mask Not Busy IRQ */
1971#define nMASK_BUSYIRQ 0x0 1962#define nMASK_BUSYIRQ 0x0
1972#define MASK_WBOVF 0x2 /* Mask Write Buffer Overflow */ 1963#define MASK_WBOVF 0x2 /* Mask Write Buffer Overflow */
1973#define nMASK_WBOVF 0x0 1964#define nMASK_WBOVF 0x0
1974#define MASK_WBEMPTY 0x4 /* Mask Write Buffer Empty */ 1965#define MASK_WBEMPTY 0x4 /* Mask Write Buffer Empty */
1975#define nMASK_WBEMPTY 0x0 1966#define nMASK_WBEMPTY 0x0
1976#define MASK_RDRDY 0x8 /* Mask Read Data Ready */ 1967#define MASK_RDRDY 0x8 /* Mask Read Data Ready */
1977#define nMASK_RDRDY 0x0 1968#define nMASK_RDRDY 0x0
1978#define MASK_WRDONE 0x10 /* Mask Write Done */ 1969#define MASK_WRDONE 0x10 /* Mask Write Done */
1979#define nMASK_WRDONE 0x0 1970#define nMASK_WRDONE 0x0
1980 1971
1981/* Bit masks for NFC_RST */ 1972/* Bit masks for NFC_RST */
1982 1973
1983#define ECC_RST 0x1 /* ECC (and NFC counters) Reset */ 1974#define ECC_RST 0x1 /* ECC (and NFC counters) Reset */
1984#define nECC_RST 0x0 1975#define nECC_RST 0x0
1985 1976
1986/* Bit masks for NFC_PGCTL */ 1977/* Bit masks for NFC_PGCTL */
1987 1978
1988#define PG_RD_START 0x1 /* Page Read Start */ 1979#define PG_RD_START 0x1 /* Page Read Start */
1989#define nPG_RD_START 0x0 1980#define nPG_RD_START 0x0
1990#define PG_WR_START 0x2 /* Page Write Start */ 1981#define PG_WR_START 0x2 /* Page Write Start */
1991#define nPG_WR_START 0x0 1982#define nPG_WR_START 0x0
1992 1983
1993/* Bit masks for NFC_ECC0 */ 1984/* Bit masks for NFC_ECC0 */
1994 1985
diff --git a/include/asm-blackfin/mach-bf527/dma.h b/arch/blackfin/mach-bf527/include/mach/dma.h
index 49dd693223e8..49dd693223e8 100644
--- a/include/asm-blackfin/mach-bf527/dma.h
+++ b/arch/blackfin/mach-bf527/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf527/irq.h b/arch/blackfin/mach-bf527/include/mach/irq.h
index 4e2b3f2020e5..4e2b3f2020e5 100644
--- a/include/asm-blackfin/mach-bf527/irq.h
+++ b/arch/blackfin/mach-bf527/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf527/mem_init.h b/arch/blackfin/mach-bf527/include/mach/mem_init.h
index cbe03f4a5698..cbe03f4a5698 100644
--- a/include/asm-blackfin/mach-bf527/mem_init.h
+++ b/arch/blackfin/mach-bf527/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf527/mem_map.h b/arch/blackfin/mach-bf527/include/mach/mem_map.h
index ef46dc991cd4..ef46dc991cd4 100644
--- a/include/asm-blackfin/mach-bf527/mem_map.h
+++ b/arch/blackfin/mach-bf527/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf527/portmux.h b/arch/blackfin/mach-bf527/include/mach/portmux.h
index ae4d205bfcf5..ae4d205bfcf5 100644
--- a/include/asm-blackfin/mach-bf527/portmux.h
+++ b/arch/blackfin/mach-bf527/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf533/head.S b/arch/blackfin/mach-bf533/head.S
index d59db86195b6..01b2b7ead5ab 100644
--- a/arch/blackfin/mach-bf533/head.S
+++ b/arch/blackfin/mach-bf533/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf533/anomaly.h b/arch/blackfin/mach-bf533/include/mach/anomaly.h
index 8f7ea112fd3a..8f7ea112fd3a 100644
--- a/include/asm-blackfin/mach-bf533/anomaly.h
+++ b/arch/blackfin/mach-bf533/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf533/bf533.h b/arch/blackfin/mach-bf533/include/mach/bf533.h
index 12a416931991..12a416931991 100644
--- a/include/asm-blackfin/mach-bf533/bf533.h
+++ b/arch/blackfin/mach-bf533/include/mach/bf533.h
diff --git a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
index ebf592b59aab..ebf592b59aab 100644
--- a/include/asm-blackfin/mach-bf533/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf533/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf533/bfin_sir.h b/arch/blackfin/mach-bf533/include/mach/bfin_sir.h
index 9bb87e9e2e9b..9bb87e9e2e9b 100644
--- a/include/asm-blackfin/mach-bf533/bfin_sir.h
+++ b/arch/blackfin/mach-bf533/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf533/blackfin.h b/arch/blackfin/mach-bf533/include/mach/blackfin.h
index d80971b4e3aa..d80971b4e3aa 100644
--- a/include/asm-blackfin/mach-bf533/blackfin.h
+++ b/arch/blackfin/mach-bf533/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf533/cdefBF532.h b/arch/blackfin/mach-bf533/include/mach/cdefBF532.h
index 154655452d4c..3d8978a52c17 100644
--- a/include/asm-blackfin/mach-bf533/cdefBF532.h
+++ b/arch/blackfin/mach-bf533/include/mach/cdefBF532.h
@@ -37,7 +37,7 @@
37#include "defBF532.h" 37#include "defBF532.h"
38 38
39/*include core specific register pointer definitions*/ 39/*include core specific register pointer definitions*/
40#include <asm/mach-common/cdef_LPBlackfin.h> 40#include <asm/cdef_LPBlackfin.h>
41 41
42#include <asm/system.h> 42#include <asm/system.h>
43 43
diff --git a/include/asm-blackfin/mach-bf533/defBF532.h b/arch/blackfin/mach-bf533/include/mach/defBF532.h
index 0ab4dd7494cf..7f4633223e6d 100644
--- a/include/asm-blackfin/mach-bf533/defBF532.h
+++ b/arch/blackfin/mach-bf533/include/mach/defBF532.h
@@ -48,7 +48,7 @@
48#define _DEF_BF532_H 48#define _DEF_BF532_H
49 49
50/* include all Core registers and bit definitions */ 50/* include all Core registers and bit definitions */
51#include <asm/mach-common/def_LPBlackfin.h> 51#include <asm/def_LPBlackfin.h>
52 52
53/*********************************************************************************** */ 53/*********************************************************************************** */
54/* System MMR Register Map */ 54/* System MMR Register Map */
diff --git a/include/asm-blackfin/mach-bf533/dma.h b/arch/blackfin/mach-bf533/include/mach/dma.h
index bd9d5e94307d..bd9d5e94307d 100644
--- a/include/asm-blackfin/mach-bf533/dma.h
+++ b/arch/blackfin/mach-bf533/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf533/irq.h b/arch/blackfin/mach-bf533/include/mach/irq.h
index 5aa38e5da6b7..5aa38e5da6b7 100644
--- a/include/asm-blackfin/mach-bf533/irq.h
+++ b/arch/blackfin/mach-bf533/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf533/mem_init.h b/arch/blackfin/mach-bf533/include/mach/mem_init.h
index ed2034bf10ec..ed2034bf10ec 100644
--- a/include/asm-blackfin/mach-bf533/mem_init.h
+++ b/arch/blackfin/mach-bf533/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf533/mem_map.h b/arch/blackfin/mach-bf533/include/mach/mem_map.h
index 581fc6eea789..581fc6eea789 100644
--- a/include/asm-blackfin/mach-bf533/mem_map.h
+++ b/arch/blackfin/mach-bf533/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf533/portmux.h b/arch/blackfin/mach-bf533/include/mach/portmux.h
index 685a2651dcda..685a2651dcda 100644
--- a/include/asm-blackfin/mach-bf533/portmux.h
+++ b/arch/blackfin/mach-bf533/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf537/boards/stamp.c b/arch/blackfin/mach-bf537/boards/stamp.c
index e93964fdb432..8482d22321f3 100644
--- a/arch/blackfin/mach-bf537/boards/stamp.c
+++ b/arch/blackfin/mach-bf537/boards/stamp.c
@@ -584,6 +584,30 @@ static struct bfin5xx_spi_chip spidev_chip_info = {
584 584
585#if defined(CONFIG_MTD_DATAFLASH) \ 585#if defined(CONFIG_MTD_DATAFLASH) \
586 || defined(CONFIG_MTD_DATAFLASH_MODULE) 586 || defined(CONFIG_MTD_DATAFLASH_MODULE)
587
588static struct mtd_partition bfin_spi_dataflash_partitions[] = {
589 {
590 .name = "bootloader(spi)",
591 .size = 0x00040000,
592 .offset = 0,
593 .mask_flags = MTD_CAP_ROM
594 }, {
595 .name = "linux kernel(spi)",
596 .size = 0xe0000,
597 .offset = MTDPART_OFS_APPEND,
598 }, {
599 .name = "file system(spi)",
600 .size = MTDPART_SIZ_FULL,
601 .offset = MTDPART_OFS_APPEND,
602 }
603};
604
605static struct flash_platform_data bfin_spi_dataflash_data = {
606 .name = "SPI Dataflash",
607 .parts = bfin_spi_dataflash_partitions,
608 .nr_parts = ARRAY_SIZE(bfin_spi_dataflash_partitions),
609};
610
587/* DataFlash chip */ 611/* DataFlash chip */
588static struct bfin5xx_spi_chip data_flash_chip_info = { 612static struct bfin5xx_spi_chip data_flash_chip_info = {
589 .enable_dma = 0, /* use dma transfer with this chip*/ 613 .enable_dma = 0, /* use dma transfer with this chip*/
@@ -609,9 +633,10 @@ static struct spi_board_info bfin_spi_board_info[] __initdata = {
609 || defined(CONFIG_MTD_DATAFLASH_MODULE) 633 || defined(CONFIG_MTD_DATAFLASH_MODULE)
610 { /* DataFlash chip */ 634 { /* DataFlash chip */
611 .modalias = "mtd_dataflash", 635 .modalias = "mtd_dataflash",
612 .max_speed_hz = 25000000, /* max spi clock (SCK) speed in HZ */ 636 .max_speed_hz = 33250000, /* max spi clock (SCK) speed in HZ */
613 .bus_num = 0, /* Framework bus number */ 637 .bus_num = 0, /* Framework bus number */
614 .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/ 638 .chip_select = 1, /* Framework chip select. On STAMP537 it is SPISSEL1*/
639 .platform_data = &bfin_spi_dataflash_data,
615 .controller_data = &data_flash_chip_info, 640 .controller_data = &data_flash_chip_info,
616 .mode = SPI_MODE_3, 641 .mode = SPI_MODE_3,
617 }, 642 },
diff --git a/arch/blackfin/mach-bf537/head.S b/arch/blackfin/mach-bf537/head.S
index 64e0287ab266..12eb5cc571d0 100644
--- a/arch/blackfin/mach-bf537/head.S
+++ b/arch/blackfin/mach-bf537/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf537/anomaly.h b/arch/blackfin/mach-bf537/include/mach/anomaly.h
index 8460ab9c324f..8460ab9c324f 100644
--- a/include/asm-blackfin/mach-bf537/anomaly.h
+++ b/arch/blackfin/mach-bf537/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf537/bf537.h b/arch/blackfin/mach-bf537/include/mach/bf537.h
index cfe2a221112e..cfe2a221112e 100644
--- a/include/asm-blackfin/mach-bf537/bf537.h
+++ b/arch/blackfin/mach-bf537/include/mach/bf537.h
diff --git a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
index 1bf56ffa22f9..1bf56ffa22f9 100644
--- a/include/asm-blackfin/mach-bf537/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf537/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf537/bfin_sir.h b/arch/blackfin/mach-bf537/include/mach/bfin_sir.h
index cfd8ad4f1f2c..cfd8ad4f1f2c 100644
--- a/include/asm-blackfin/mach-bf537/bfin_sir.h
+++ b/arch/blackfin/mach-bf537/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf537/blackfin.h b/arch/blackfin/mach-bf537/include/mach/blackfin.h
index cffc786b2a2b..cffc786b2a2b 100644
--- a/include/asm-blackfin/mach-bf537/blackfin.h
+++ b/arch/blackfin/mach-bf537/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf537/cdefBF534.h b/arch/blackfin/mach-bf537/include/mach/cdefBF534.h
index 82de526f8097..88d491cd9f36 100644
--- a/include/asm-blackfin/mach-bf537/cdefBF534.h
+++ b/arch/blackfin/mach-bf537/include/mach/cdefBF534.h
@@ -38,7 +38,7 @@
38#include "defBF534.h" 38#include "defBF534.h"
39 39
40/* Include core specific register pointer definitions */ 40/* Include core specific register pointer definitions */
41#include <asm/mach-common/cdef_LPBlackfin.h> 41#include <asm/cdef_LPBlackfin.h>
42 42
43#include <asm/system.h> 43#include <asm/system.h>
44 44
diff --git a/include/asm-blackfin/mach-bf537/cdefBF537.h b/arch/blackfin/mach-bf537/include/mach/cdefBF537.h
index b8fc949a991f..b8fc949a991f 100644
--- a/include/asm-blackfin/mach-bf537/cdefBF537.h
+++ b/arch/blackfin/mach-bf537/include/mach/cdefBF537.h
diff --git a/include/asm-blackfin/mach-bf537/defBF534.h b/arch/blackfin/mach-bf537/include/mach/defBF534.h
index d0d80d3152ba..a3227f9003ff 100644
--- a/include/asm-blackfin/mach-bf537/defBF534.h
+++ b/arch/blackfin/mach-bf537/include/mach/defBF534.h
@@ -32,7 +32,7 @@
32#define _DEF_BF534_H 32#define _DEF_BF534_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/************************************************************************************ 37/************************************************************************************
38** System MMR Register Map 38** System MMR Register Map
diff --git a/include/asm-blackfin/mach-bf537/defBF537.h b/arch/blackfin/mach-bf537/include/mach/defBF537.h
index abde24c6d3b1..3d6c83e31b1e 100644
--- a/include/asm-blackfin/mach-bf537/defBF537.h
+++ b/arch/blackfin/mach-bf537/include/mach/defBF537.h
@@ -33,7 +33,7 @@
33#define _DEF_BF537_H 33#define _DEF_BF537_H
34 34
35/* Include all Core registers and bit definitions*/ 35/* Include all Core registers and bit definitions*/
36#include <asm/mach-common/cdef_LPBlackfin.h> 36#include <asm/cdef_LPBlackfin.h>
37 37
38/* Include all MMR and bit defines common to BF534 */ 38/* Include all MMR and bit defines common to BF534 */
39#include "defBF534.h" 39#include "defBF534.h"
diff --git a/include/asm-blackfin/mach-bf537/dma.h b/arch/blackfin/mach-bf537/include/mach/dma.h
index 7a964040870a..7a964040870a 100644
--- a/include/asm-blackfin/mach-bf537/dma.h
+++ b/arch/blackfin/mach-bf537/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf537/irq.h b/arch/blackfin/mach-bf537/include/mach/irq.h
index 2e68a8a1e730..2e68a8a1e730 100644
--- a/include/asm-blackfin/mach-bf537/irq.h
+++ b/arch/blackfin/mach-bf537/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf537/mem_init.h b/arch/blackfin/mach-bf537/include/mach/mem_init.h
index f67698f670ca..f67698f670ca 100644
--- a/include/asm-blackfin/mach-bf537/mem_init.h
+++ b/arch/blackfin/mach-bf537/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf537/mem_map.h b/arch/blackfin/mach-bf537/include/mach/mem_map.h
index 5078b669431f..5078b669431f 100644
--- a/include/asm-blackfin/mach-bf537/mem_map.h
+++ b/arch/blackfin/mach-bf537/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf537/portmux.h b/arch/blackfin/mach-bf537/include/mach/portmux.h
index 78fee6e0f237..78fee6e0f237 100644
--- a/include/asm-blackfin/mach-bf537/portmux.h
+++ b/arch/blackfin/mach-bf537/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf548/boards/cm_bf548.c b/arch/blackfin/mach-bf548/boards/cm_bf548.c
index 58abbed0a225..ce934ee174e0 100644
--- a/arch/blackfin/mach-bf548/boards/cm_bf548.c
+++ b/arch/blackfin/mach-bf548/boards/cm_bf548.c
@@ -45,7 +45,7 @@
45#include <asm/gpio.h> 45#include <asm/gpio.h>
46#include <asm/nand.h> 46#include <asm/nand.h>
47#include <asm/portmux.h> 47#include <asm/portmux.h>
48#include <asm/mach/bf54x_keys.h> 48#include <mach/bf54x_keys.h>
49#include <asm/dpmc.h> 49#include <asm/dpmc.h>
50#include <linux/input.h> 50#include <linux/input.h>
51#include <linux/spi/ad7877.h> 51#include <linux/spi/ad7877.h>
@@ -61,7 +61,7 @@ const char bfin_board_name[] = "Bluetechnix CM-BF548";
61 61
62#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) 62#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE)
63 63
64#include <asm/mach/bf54x-lq043.h> 64#include <mach/bf54x-lq043.h>
65 65
66static struct bfin_bf54xfb_mach_info bf54x_lq043_data = { 66static struct bfin_bf54xfb_mach_info bf54x_lq043_data = {
67 .width = 480, 67 .width = 480,
diff --git a/arch/blackfin/mach-bf548/boards/ezkit.c b/arch/blackfin/mach-bf548/boards/ezkit.c
index 0d6333ada1d9..39357693046d 100644
--- a/arch/blackfin/mach-bf548/boards/ezkit.c
+++ b/arch/blackfin/mach-bf548/boards/ezkit.c
@@ -48,7 +48,7 @@
48#include <asm/nand.h> 48#include <asm/nand.h>
49#include <asm/dpmc.h> 49#include <asm/dpmc.h>
50#include <asm/portmux.h> 50#include <asm/portmux.h>
51#include <asm/mach/bf54x_keys.h> 51#include <mach/bf54x_keys.h>
52#include <linux/input.h> 52#include <linux/input.h>
53#include <linux/spi/ad7877.h> 53#include <linux/spi/ad7877.h>
54 54
@@ -106,7 +106,7 @@ arch_initcall(bfin_isp1761_init);
106 106
107#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE) 107#if defined(CONFIG_FB_BF54X_LQ043) || defined(CONFIG_FB_BF54X_LQ043_MODULE)
108 108
109#include <asm/mach/bf54x-lq043.h> 109#include <mach/bf54x-lq043.h>
110 110
111static struct bfin_bf54xfb_mach_info bf54x_lq043_data = { 111static struct bfin_bf54xfb_mach_info bf54x_lq043_data = {
112 .width = 480, 112 .width = 480,
diff --git a/arch/blackfin/mach-bf548/head.S b/arch/blackfin/mach-bf548/head.S
index e3000f70a26e..4d5cfeacb123 100644
--- a/arch/blackfin/mach-bf548/head.S
+++ b/arch/blackfin/mach-bf548/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf548/anomaly.h b/arch/blackfin/mach-bf548/include/mach/anomaly.h
index 3ad59655881a..3ad59655881a 100644
--- a/include/asm-blackfin/mach-bf548/anomaly.h
+++ b/arch/blackfin/mach-bf548/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf548/bf548.h b/arch/blackfin/mach-bf548/include/mach/bf548.h
index e748588e8930..e748588e8930 100644
--- a/include/asm-blackfin/mach-bf548/bf548.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf548.h
diff --git a/include/asm-blackfin/mach-bf548/bf54x-lq043.h b/arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h
index 9c7ca62a45eb..9c7ca62a45eb 100644
--- a/include/asm-blackfin/mach-bf548/bf54x-lq043.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf54x-lq043.h
diff --git a/include/asm-blackfin/mach-bf548/bf54x_keys.h b/arch/blackfin/mach-bf548/include/mach/bf54x_keys.h
index 1fb4ec77cc25..1fb4ec77cc25 100644
--- a/include/asm-blackfin/mach-bf548/bf54x_keys.h
+++ b/arch/blackfin/mach-bf548/include/mach/bf54x_keys.h
diff --git a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
index 5e29446a8e03..5e29446a8e03 100644
--- a/include/asm-blackfin/mach-bf548/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf548/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf548/bfin_sir.h b/arch/blackfin/mach-bf548/include/mach/bfin_sir.h
index c41f9cf00268..c41f9cf00268 100644
--- a/include/asm-blackfin/mach-bf548/bfin_sir.h
+++ b/arch/blackfin/mach-bf548/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf548/blackfin.h b/arch/blackfin/mach-bf548/include/mach/blackfin.h
index d6ee74ac0460..d6ee74ac0460 100644
--- a/include/asm-blackfin/mach-bf548/blackfin.h
+++ b/arch/blackfin/mach-bf548/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf548/cdefBF542.h b/arch/blackfin/mach-bf548/include/mach/cdefBF542.h
index 60b9f77576f1..07aefb9ed79b 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF542.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF542.h
@@ -35,7 +35,7 @@
35#include "defBF542.h" 35#include "defBF542.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF544.h b/arch/blackfin/mach-bf548/include/mach/cdefBF544.h
index ea9b4ab496f3..431a69278991 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF544.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF544.h
@@ -35,7 +35,7 @@
35#include "defBF544.h" 35#include "defBF544.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF547.h b/arch/blackfin/mach-bf548/include/mach/cdefBF547.h
index ba716277c00d..93376e90dfc5 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF547.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF547.h
@@ -35,7 +35,7 @@
35#include "defBF548.h" 35#include "defBF548.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF548.h b/arch/blackfin/mach-bf548/include/mach/cdefBF548.h
index ae971ebff6a0..9cd74384136f 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF548.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF548.h
@@ -35,7 +35,7 @@
35#include "defBF548.h" 35#include "defBF548.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF549.h b/arch/blackfin/mach-bf548/include/mach/cdefBF549.h
index 92d07d961999..ead360b69dea 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF549.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF549.h
@@ -35,7 +35,7 @@
35#include "defBF549.h" 35#include "defBF549.h"
36 36
37/* include core sbfin_read_()ecific register pointer definitions */ 37/* include core sbfin_read_()ecific register pointer definitions */
38#include <asm/mach-common/cdef_LPBlackfin.h> 38#include <asm/cdef_LPBlackfin.h>
39 39
40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */ 40/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */
41 41
diff --git a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h b/arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h
index 57ac8cb9b1f6..57ac8cb9b1f6 100644
--- a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h
+++ b/arch/blackfin/mach-bf548/include/mach/cdefBF54x_base.h
diff --git a/include/asm-blackfin/mach-bf548/defBF542.h b/arch/blackfin/mach-bf548/include/mach/defBF542.h
index a7c809f29ede..b1316541b8d6 100644
--- a/include/asm-blackfin/mach-bf548/defBF542.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF542.h
@@ -32,7 +32,7 @@
32#define _DEF_BF542_H 32#define _DEF_BF542_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF542 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF544.h b/arch/blackfin/mach-bf548/include/mach/defBF544.h
index b8b9870e2697..c2c785bdc5fc 100644
--- a/include/asm-blackfin/mach-bf548/defBF544.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF544.h
@@ -32,7 +32,7 @@
32#define _DEF_BF544_H 32#define _DEF_BF544_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF544 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF547.h b/arch/blackfin/mach-bf548/include/mach/defBF547.h
index 3a3a18ebb10e..661f0d877bd1 100644
--- a/include/asm-blackfin/mach-bf548/defBF547.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF547.h
@@ -32,7 +32,7 @@
32#define _DEF_BF548_H 32#define _DEF_BF548_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF548.h b/arch/blackfin/mach-bf548/include/mach/defBF548.h
index 1d7c96edb038..85d4bade911d 100644
--- a/include/asm-blackfin/mach-bf548/defBF548.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF548.h
@@ -32,7 +32,7 @@
32#define _DEF_BF548_H 32#define _DEF_BF548_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */ 37/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF548 */
38 38
diff --git a/include/asm-blackfin/mach-bf548/defBF549.h b/arch/blackfin/mach-bf548/include/mach/defBF549.h
index fcb72b41e007..096734541644 100644
--- a/include/asm-blackfin/mach-bf548/defBF549.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF549.h
@@ -32,7 +32,7 @@
32#define _DEF_BF549_H 32#define _DEF_BF549_H
33 33
34/* Include all Core registers and bit definitions */ 34/* Include all Core registers and bit definitions */
35#include <asm/mach-common/def_LPBlackfin.h> 35#include <asm/def_LPBlackfin.h>
36 36
37 37
38/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */ 38/* SYSTEM & MMR ADDRESS DEFINITIONS FOR ADSP-BF549 */
diff --git a/include/asm-blackfin/mach-bf548/defBF54x_base.h b/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h
index e022e896cb18..e022e896cb18 100644
--- a/include/asm-blackfin/mach-bf548/defBF54x_base.h
+++ b/arch/blackfin/mach-bf548/include/mach/defBF54x_base.h
diff --git a/include/asm-blackfin/mach-bf548/dma.h b/arch/blackfin/mach-bf548/include/mach/dma.h
index 36a2ef7e7849..36a2ef7e7849 100644
--- a/include/asm-blackfin/mach-bf548/dma.h
+++ b/arch/blackfin/mach-bf548/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf548/gpio.h b/arch/blackfin/mach-bf548/include/mach/gpio.h
index bba82dc75f16..bba82dc75f16 100644
--- a/include/asm-blackfin/mach-bf548/gpio.h
+++ b/arch/blackfin/mach-bf548/include/mach/gpio.h
diff --git a/include/asm-blackfin/mach-bf548/irq.h b/arch/blackfin/mach-bf548/include/mach/irq.h
index ad380d1f5872..ad380d1f5872 100644
--- a/include/asm-blackfin/mach-bf548/irq.h
+++ b/arch/blackfin/mach-bf548/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf548/mem_init.h b/arch/blackfin/mach-bf548/include/mach/mem_init.h
index ab0b863eee66..ab0b863eee66 100644
--- a/include/asm-blackfin/mach-bf548/mem_init.h
+++ b/arch/blackfin/mach-bf548/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf548/mem_map.h b/arch/blackfin/mach-bf548/include/mach/mem_map.h
index f99f47bc3a07..f99f47bc3a07 100644
--- a/include/asm-blackfin/mach-bf548/mem_map.h
+++ b/arch/blackfin/mach-bf548/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf548/portmux.h b/arch/blackfin/mach-bf548/include/mach/portmux.h
index 8177a567dcdb..8177a567dcdb 100644
--- a/include/asm-blackfin/mach-bf548/portmux.h
+++ b/arch/blackfin/mach-bf548/include/mach/portmux.h
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S
index c7a81e34703d..75ea6a905829 100644
--- a/arch/blackfin/mach-bf561/head.S
+++ b/arch/blackfin/mach-bf561/head.S
@@ -31,8 +31,8 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <asm/blackfin.h> 32#include <asm/blackfin.h>
33#ifdef CONFIG_BFIN_KERNEL_CLOCK 33#ifdef CONFIG_BFIN_KERNEL_CLOCK
34#include <asm/mach-common/clocks.h> 34#include <asm/clocks.h>
35#include <asm/mach/mem_init.h> 35#include <mach/mem_init.h>
36#endif 36#endif
37 37
38.section .l1.text 38.section .l1.text
diff --git a/include/asm-blackfin/mach-bf561/anomaly.h b/arch/blackfin/mach-bf561/include/mach/anomaly.h
index 5c5d7d7d695f..5c5d7d7d695f 100644
--- a/include/asm-blackfin/mach-bf561/anomaly.h
+++ b/arch/blackfin/mach-bf561/include/mach/anomaly.h
diff --git a/include/asm-blackfin/mach-bf561/bf561.h b/arch/blackfin/mach-bf561/include/mach/bf561.h
index 3ef9e5f36136..3ef9e5f36136 100644
--- a/include/asm-blackfin/mach-bf561/bf561.h
+++ b/arch/blackfin/mach-bf561/include/mach/bf561.h
diff --git a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
index 8aa02780e642..8aa02780e642 100644
--- a/include/asm-blackfin/mach-bf561/bfin_serial_5xx.h
+++ b/arch/blackfin/mach-bf561/include/mach/bfin_serial_5xx.h
diff --git a/include/asm-blackfin/mach-bf561/bfin_sir.h b/arch/blackfin/mach-bf561/include/mach/bfin_sir.h
index 9bb87e9e2e9b..9bb87e9e2e9b 100644
--- a/include/asm-blackfin/mach-bf561/bfin_sir.h
+++ b/arch/blackfin/mach-bf561/include/mach/bfin_sir.h
diff --git a/include/asm-blackfin/mach-bf561/blackfin.h b/arch/blackfin/mach-bf561/include/mach/blackfin.h
index 0ea8666e6764..0ea8666e6764 100644
--- a/include/asm-blackfin/mach-bf561/blackfin.h
+++ b/arch/blackfin/mach-bf561/include/mach/blackfin.h
diff --git a/include/asm-blackfin/mach-bf561/cdefBF561.h b/arch/blackfin/mach-bf561/include/mach/cdefBF561.h
index b07ffccd66dd..c14d63402e70 100644
--- a/include/asm-blackfin/mach-bf561/cdefBF561.h
+++ b/arch/blackfin/mach-bf561/include/mach/cdefBF561.h
@@ -37,7 +37,7 @@
37#include "defBF561.h" 37#include "defBF561.h"
38 38
39/*include core specific register pointer definitions*/ 39/*include core specific register pointer definitions*/
40#include <asm/mach-common/cdef_LPBlackfin.h> 40#include <asm/cdef_LPBlackfin.h>
41 41
42#include <asm/system.h> 42#include <asm/system.h>
43 43
diff --git a/include/asm-blackfin/mach-bf561/defBF561.h b/arch/blackfin/mach-bf561/include/mach/defBF561.h
index 1ab50e906fe7..4eca2026bb92 100644
--- a/include/asm-blackfin/mach-bf561/defBF561.h
+++ b/arch/blackfin/mach-bf561/include/mach/defBF561.h
@@ -37,7 +37,7 @@
37#endif 37#endif
38*/ 38*/
39/* include all Core registers and bit definitions */ 39/* include all Core registers and bit definitions */
40#include <asm/mach-common/def_LPBlackfin.h> 40#include <asm/def_LPBlackfin.h>
41 41
42/*********************************************************************************** */ 42/*********************************************************************************** */
43/* System MMR Register Map */ 43/* System MMR Register Map */
diff --git a/include/asm-blackfin/mach-bf561/dma.h b/arch/blackfin/mach-bf561/include/mach/dma.h
index 8bc46cd89a02..8bc46cd89a02 100644
--- a/include/asm-blackfin/mach-bf561/dma.h
+++ b/arch/blackfin/mach-bf561/include/mach/dma.h
diff --git a/include/asm-blackfin/mach-bf561/irq.h b/arch/blackfin/mach-bf561/include/mach/irq.h
index 6698389c5564..6698389c5564 100644
--- a/include/asm-blackfin/mach-bf561/irq.h
+++ b/arch/blackfin/mach-bf561/include/mach/irq.h
diff --git a/include/asm-blackfin/mach-bf561/mem_init.h b/arch/blackfin/mach-bf561/include/mach/mem_init.h
index e163260bca18..e163260bca18 100644
--- a/include/asm-blackfin/mach-bf561/mem_init.h
+++ b/arch/blackfin/mach-bf561/include/mach/mem_init.h
diff --git a/include/asm-blackfin/mach-bf561/mem_map.h b/arch/blackfin/mach-bf561/include/mach/mem_map.h
index c26d8486cc4b..c26d8486cc4b 100644
--- a/include/asm-blackfin/mach-bf561/mem_map.h
+++ b/arch/blackfin/mach-bf561/include/mach/mem_map.h
diff --git a/include/asm-blackfin/mach-bf561/portmux.h b/arch/blackfin/mach-bf561/include/mach/portmux.h
index a6ee8206efb6..a6ee8206efb6 100644
--- a/include/asm-blackfin/mach-bf561/portmux.h
+++ b/arch/blackfin/mach-bf561/include/mach/portmux.h
diff --git a/arch/blackfin/mach-common/arch_checks.c b/arch/blackfin/mach-common/arch_checks.c
index 5986758b2752..98133b968f7b 100644
--- a/arch/blackfin/mach-common/arch_checks.c
+++ b/arch/blackfin/mach-common/arch_checks.c
@@ -28,8 +28,8 @@
28 */ 28 */
29 29
30#include <asm/fixed_code.h> 30#include <asm/fixed_code.h>
31#include <asm/mach/anomaly.h> 31#include <mach/anomaly.h>
32#include <asm/mach-common/clocks.h> 32#include <asm/clocks.h>
33 33
34#ifdef CONFIG_BFIN_KERNEL_CLOCK 34#ifdef CONFIG_BFIN_KERNEL_CLOCK
35 35
diff --git a/arch/blackfin/mach-common/dpmc_modes.S b/arch/blackfin/mach-common/dpmc_modes.S
index 838b0b2ce9a5..ad5431e2cd05 100644
--- a/arch/blackfin/mach-common/dpmc_modes.S
+++ b/arch/blackfin/mach-common/dpmc_modes.S
@@ -6,7 +6,7 @@
6 6
7#include <linux/linkage.h> 7#include <linux/linkage.h>
8#include <asm/blackfin.h> 8#include <asm/blackfin.h>
9#include <asm/mach/irq.h> 9#include <mach/irq.h>
10#include <asm/dpmc.h> 10#include <asm/dpmc.h>
11 11
12.section .l1.text 12.section .l1.text
diff --git a/arch/blackfin/mach-common/entry.S b/arch/blackfin/mach-common/entry.S
index 117c01c2c6b0..847c172a99eb 100644
--- a/arch/blackfin/mach-common/entry.S
+++ b/arch/blackfin/mach-common/entry.S
@@ -43,7 +43,7 @@
43#include <asm/asm-offsets.h> 43#include <asm/asm-offsets.h>
44#include <asm/trace.h> 44#include <asm/trace.h>
45 45
46#include <asm/mach-common/context.S> 46#include <asm/context.S>
47 47
48#if defined(CONFIG_BFIN_SCRATCH_REG_RETN) 48#if defined(CONFIG_BFIN_SCRATCH_REG_RETN)
49# define EX_SCRATCH_REG RETN 49# define EX_SCRATCH_REG RETN
diff --git a/arch/blackfin/mach-common/interrupt.S b/arch/blackfin/mach-common/interrupt.S
index 7f752c87fe46..b27e59d32401 100644
--- a/arch/blackfin/mach-common/interrupt.S
+++ b/arch/blackfin/mach-common/interrupt.S
@@ -29,7 +29,7 @@
29 */ 29 */
30 30
31#include <asm/blackfin.h> 31#include <asm/blackfin.h>
32#include <asm/mach/irq.h> 32#include <mach/irq.h>
33#include <linux/linkage.h> 33#include <linux/linkage.h>
34#include <asm/entry.h> 34#include <asm/entry.h>
35#include <asm/asm-offsets.h> 35#include <asm/asm-offsets.h>
@@ -37,7 +37,7 @@
37#include <asm/traps.h> 37#include <asm/traps.h>
38#include <asm/thread_info.h> 38#include <asm/thread_info.h>
39 39
40#include <asm/mach-common/context.S> 40#include <asm/context.S>
41 41
42.extern _ret_from_exception 42.extern _ret_from_exception
43 43
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c
index 62f8883a5c27..5fa536727c61 100644
--- a/arch/blackfin/mach-common/ints-priority.c
+++ b/arch/blackfin/mach-common/ints-priority.c
@@ -216,7 +216,7 @@ int bfin_internal_set_wake(unsigned int irq, unsigned int state)
216 wakeup |= KPADWE; 216 wakeup |= KPADWE;
217 break; 217 break;
218#endif 218#endif
219#ifdef IRQ_CNT 219#ifdef CONFIG_BF54x
220 case IRQ_CNT: 220 case IRQ_CNT:
221 wakeup |= ROTWE; 221 wakeup |= ROTWE;
222 break; 222 break;
@@ -983,7 +983,7 @@ int __init init_arch_irq(void)
983 983
984 local_irq_disable(); 984 local_irq_disable();
985 985
986#if defined(CONFIG_BF527) || defined(CONFIG_BF536) || defined(CONFIG_BF537) 986#if (defined(CONFIG_BF537) || defined(CONFIG_BF536))
987 /* Clear EMAC Interrupt Status bits so we can demux it later */ 987 /* Clear EMAC Interrupt Status bits so we can demux it later */
988 bfin_write_EMAC_SYSTAT(-1); 988 bfin_write_EMAC_SYSTAT(-1);
989#endif 989#endif
diff --git a/arch/blackfin/mm/blackfin_sram.c b/arch/blackfin/mm/blackfin_sram.c
index 9d2be43ac3da..4f5e887a0d96 100644
--- a/arch/blackfin/mm/blackfin_sram.c
+++ b/arch/blackfin/mm/blackfin_sram.c
@@ -335,7 +335,7 @@ static int _sram_free(const void *addr,
335 plast->size += pavail->size; 335 plast->size += pavail->size;
336 kmem_cache_free(sram_piece_cache, pavail); 336 kmem_cache_free(sram_piece_cache, pavail);
337 } else { 337 } else {
338 pavail->next = plast; 338 pavail->next = plast->next;
339 plast->next = pavail; 339 plast->next = pavail;
340 plast = pavail; 340 plast = pavail;
341 } 341 }
@@ -379,7 +379,7 @@ EXPORT_SYMBOL(sram_free);
379 379
380void *l1_data_A_sram_alloc(size_t size) 380void *l1_data_A_sram_alloc(size_t size)
381{ 381{
382 unsigned flags; 382 unsigned long flags;
383 void *addr = NULL; 383 void *addr = NULL;
384 384
385 /* add mutex operation */ 385 /* add mutex operation */
@@ -402,7 +402,7 @@ EXPORT_SYMBOL(l1_data_A_sram_alloc);
402 402
403int l1_data_A_sram_free(const void *addr) 403int l1_data_A_sram_free(const void *addr)
404{ 404{
405 unsigned flags; 405 unsigned long flags;
406 int ret; 406 int ret;
407 407
408 /* add mutex operation */ 408 /* add mutex operation */
@@ -425,7 +425,7 @@ EXPORT_SYMBOL(l1_data_A_sram_free);
425void *l1_data_B_sram_alloc(size_t size) 425void *l1_data_B_sram_alloc(size_t size)
426{ 426{
427#if L1_DATA_B_LENGTH != 0 427#if L1_DATA_B_LENGTH != 0
428 unsigned flags; 428 unsigned long flags;
429 void *addr; 429 void *addr;
430 430
431 /* add mutex operation */ 431 /* add mutex operation */
@@ -450,7 +450,7 @@ EXPORT_SYMBOL(l1_data_B_sram_alloc);
450int l1_data_B_sram_free(const void *addr) 450int l1_data_B_sram_free(const void *addr)
451{ 451{
452#if L1_DATA_B_LENGTH != 0 452#if L1_DATA_B_LENGTH != 0
453 unsigned flags; 453 unsigned long flags;
454 int ret; 454 int ret;
455 455
456 /* add mutex operation */ 456 /* add mutex operation */
@@ -504,7 +504,7 @@ EXPORT_SYMBOL(l1_data_sram_free);
504void *l1_inst_sram_alloc(size_t size) 504void *l1_inst_sram_alloc(size_t size)
505{ 505{
506#if L1_CODE_LENGTH != 0 506#if L1_CODE_LENGTH != 0
507 unsigned flags; 507 unsigned long flags;
508 void *addr; 508 void *addr;
509 509
510 /* add mutex operation */ 510 /* add mutex operation */
@@ -529,7 +529,7 @@ EXPORT_SYMBOL(l1_inst_sram_alloc);
529int l1_inst_sram_free(const void *addr) 529int l1_inst_sram_free(const void *addr)
530{ 530{
531#if L1_CODE_LENGTH != 0 531#if L1_CODE_LENGTH != 0
532 unsigned flags; 532 unsigned long flags;
533 int ret; 533 int ret;
534 534
535 /* add mutex operation */ 535 /* add mutex operation */
@@ -551,7 +551,7 @@ EXPORT_SYMBOL(l1_inst_sram_free);
551/* L1 Scratchpad memory allocate function */ 551/* L1 Scratchpad memory allocate function */
552void *l1sram_alloc(size_t size) 552void *l1sram_alloc(size_t size)
553{ 553{
554 unsigned flags; 554 unsigned long flags;
555 void *addr; 555 void *addr;
556 556
557 /* add mutex operation */ 557 /* add mutex operation */
@@ -569,7 +569,7 @@ void *l1sram_alloc(size_t size)
569/* L1 Scratchpad memory allocate function */ 569/* L1 Scratchpad memory allocate function */
570void *l1sram_alloc_max(size_t *psize) 570void *l1sram_alloc_max(size_t *psize)
571{ 571{
572 unsigned flags; 572 unsigned long flags;
573 void *addr; 573 void *addr;
574 574
575 /* add mutex operation */ 575 /* add mutex operation */
@@ -587,7 +587,7 @@ void *l1sram_alloc_max(size_t *psize)
587/* L1 Scratchpad memory free function */ 587/* L1 Scratchpad memory free function */
588int l1sram_free(const void *addr) 588int l1sram_free(const void *addr)
589{ 589{
590 unsigned flags; 590 unsigned long flags;
591 int ret; 591 int ret;
592 592
593 /* add mutex operation */ 593 /* add mutex operation */
@@ -605,7 +605,7 @@ int l1sram_free(const void *addr)
605void *l2_sram_alloc(size_t size) 605void *l2_sram_alloc(size_t size)
606{ 606{
607#if L2_LENGTH != 0 607#if L2_LENGTH != 0
608 unsigned flags; 608 unsigned long flags;
609 void *addr; 609 void *addr;
610 610
611 /* add mutex operation */ 611 /* add mutex operation */
@@ -641,7 +641,7 @@ EXPORT_SYMBOL(l2_sram_zalloc);
641int l2_sram_free(const void *addr) 641int l2_sram_free(const void *addr)
642{ 642{
643#if L2_LENGTH != 0 643#if L2_LENGTH != 0
644 unsigned flags; 644 unsigned long flags;
645 int ret; 645 int ret;
646 646
647 /* add mutex operation */ 647 /* add mutex operation */
diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h
index 5e0c1a6bce8d..2acb6b6543c9 100644
--- a/arch/ia64/include/asm/elf.h
+++ b/arch/ia64/include/asm/elf.h
@@ -266,4 +266,19 @@ do { \
266 } \ 266 } \
267} while (0) 267} while (0)
268 268
269/*
270 * format for entries in the Global Offset Table
271 */
272struct got_entry {
273 uint64_t val;
274};
275
276/*
277 * Layout of the Function Descriptor
278 */
279struct fdesc {
280 uint64_t ip;
281 uint64_t gp;
282};
283
269#endif /* _ASM_IA64_ELF_H */ 284#endif /* _ASM_IA64_ELF_H */
diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h
index 260a85ac9d6a..7f257507cd86 100644
--- a/arch/ia64/include/asm/io.h
+++ b/arch/ia64/include/asm/io.h
@@ -19,6 +19,8 @@
19 * Copyright (C) 1999 Don Dugger <don.dugger@intel.com> 19 * Copyright (C) 1999 Don Dugger <don.dugger@intel.com>
20 */ 20 */
21 21
22#include <asm/unaligned.h>
23
22/* We don't use IO slowdowns on the ia64, but.. */ 24/* We don't use IO slowdowns on the ia64, but.. */
23#define __SLOW_DOWN_IO do { } while (0) 25#define __SLOW_DOWN_IO do { } while (0)
24#define SLOW_DOWN_IO do { } while (0) 26#define SLOW_DOWN_IO do { } while (0)
@@ -241,7 +243,7 @@ __insw (unsigned long port, void *dst, unsigned long count)
241 unsigned short *dp = dst; 243 unsigned short *dp = dst;
242 244
243 while (count--) 245 while (count--)
244 *dp++ = platform_inw(port); 246 put_unaligned(platform_inw(port), dp++);
245} 247}
246 248
247static inline void 249static inline void
@@ -250,7 +252,7 @@ __insl (unsigned long port, void *dst, unsigned long count)
250 unsigned int *dp = dst; 252 unsigned int *dp = dst;
251 253
252 while (count--) 254 while (count--)
253 *dp++ = platform_inl(port); 255 put_unaligned(platform_inl(port), dp++);
254} 256}
255 257
256static inline void 258static inline void
@@ -268,7 +270,7 @@ __outsw (unsigned long port, const void *src, unsigned long count)
268 const unsigned short *sp = src; 270 const unsigned short *sp = src;
269 271
270 while (count--) 272 while (count--)
271 platform_outw(*sp++, port); 273 platform_outw(get_unaligned(sp++), port);
272} 274}
273 275
274static inline void 276static inline void
@@ -277,7 +279,7 @@ __outsl (unsigned long port, const void *src, unsigned long count)
277 const unsigned int *sp = src; 279 const unsigned int *sp = src;
278 280
279 while (count--) 281 while (count--)
280 platform_outl(*sp++, port); 282 platform_outl(get_unaligned(sp++), port);
281} 283}
282 284
283/* 285/*
diff --git a/arch/ia64/include/asm/sections.h b/arch/ia64/include/asm/sections.h
index 7286e4a9fe84..f66799891036 100644
--- a/arch/ia64/include/asm/sections.h
+++ b/arch/ia64/include/asm/sections.h
@@ -6,6 +6,8 @@
6 * David Mosberger-Tang <davidm@hpl.hp.com> 6 * David Mosberger-Tang <davidm@hpl.hp.com>
7 */ 7 */
8 8
9#include <linux/elf.h>
10#include <linux/uaccess.h>
9#include <asm-generic/sections.h> 11#include <asm-generic/sections.h>
10 12
11extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[]; 13extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[];
@@ -21,5 +23,17 @@ extern char __start_gate_brl_fsys_bubble_down_patchlist[], __end_gate_brl_fsys_b
21extern char __start_unwind[], __end_unwind[]; 23extern char __start_unwind[], __end_unwind[];
22extern char __start_ivt_text[], __end_ivt_text[]; 24extern char __start_ivt_text[], __end_ivt_text[];
23 25
26#undef dereference_function_descriptor
27static inline void *dereference_function_descriptor(void *ptr)
28{
29 struct fdesc *desc = ptr;
30 void *p;
31
32 if (!probe_kernel_address(&desc->ip, p))
33 ptr = p;
34 return ptr;
35}
36
37
24#endif /* _ASM_IA64_SECTIONS_H */ 38#endif /* _ASM_IA64_SECTIONS_H */
25 39
diff --git a/arch/ia64/include/asm/sn/bte.h b/arch/ia64/include/asm/sn/bte.h
index a0d214f43115..5efecf06c9a4 100644
--- a/arch/ia64/include/asm/sn/bte.h
+++ b/arch/ia64/include/asm/sn/bte.h
@@ -223,10 +223,11 @@ extern void bte_error_handler(unsigned long);
223 * until the transfer is complete. In order to get the asynch 223 * until the transfer is complete. In order to get the asynch
224 * version of bte_copy, you must perform this check yourself. 224 * version of bte_copy, you must perform this check yourself.
225 */ 225 */
226#define BTE_UNALIGNED_COPY(src, dest, len, mode) \ 226#define BTE_UNALIGNED_COPY(src, dest, len, mode) \
227 (((len & L1_CACHE_MASK) || (src & L1_CACHE_MASK) || \ 227 (((len & (L1_CACHE_BYTES - 1)) || \
228 (dest & L1_CACHE_MASK)) ? \ 228 (src & (L1_CACHE_BYTES - 1)) || \
229 bte_unaligned_copy(src, dest, len, mode) : \ 229 (dest & (L1_CACHE_BYTES - 1))) ? \
230 bte_unaligned_copy(src, dest, len, mode) : \
230 bte_copy(src, dest, len, mode, NULL)) 231 bte_copy(src, dest, len, mode, NULL))
231 232
232 233
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
index 29aad349e0c4..aaa7d901521f 100644
--- a/arch/ia64/kernel/module.c
+++ b/arch/ia64/kernel/module.c
@@ -135,15 +135,6 @@ static const char *reloc_name[256] = {
135 135
136#undef N 136#undef N
137 137
138struct got_entry {
139 uint64_t val;
140};
141
142struct fdesc {
143 uint64_t ip;
144 uint64_t gp;
145};
146
147/* Opaque struct for insns, to protect against derefs. */ 138/* Opaque struct for insns, to protect against derefs. */
148struct insn; 139struct insn;
149 140
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c
index b39853a292d5..d8f05e504fbf 100644
--- a/arch/ia64/kernel/smpboot.c
+++ b/arch/ia64/kernel/smpboot.c
@@ -138,6 +138,7 @@ cpumask_t cpu_possible_map = CPU_MASK_NONE;
138EXPORT_SYMBOL(cpu_possible_map); 138EXPORT_SYMBOL(cpu_possible_map);
139 139
140cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; 140cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned;
141EXPORT_SYMBOL(cpu_core_map);
141DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map); 142DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map);
142EXPORT_PER_CPU_SYMBOL(cpu_sibling_map); 143EXPORT_PER_CPU_SYMBOL(cpu_sibling_map);
143 144
@@ -740,16 +741,14 @@ int __cpu_disable(void)
740 return -EBUSY; 741 return -EBUSY;
741 } 742 }
742 743
743 cpu_clear(cpu, cpu_online_map);
744
745 if (migrate_platform_irqs(cpu)) { 744 if (migrate_platform_irqs(cpu)) {
746 cpu_set(cpu, cpu_online_map); 745 cpu_set(cpu, cpu_online_map);
747 return (-EBUSY); 746 return (-EBUSY);
748 } 747 }
749 748
750 remove_siblinginfo(cpu); 749 remove_siblinginfo(cpu);
751 cpu_clear(cpu, cpu_online_map);
752 fixup_irqs(); 750 fixup_irqs();
751 cpu_clear(cpu, cpu_online_map);
753 local_flush_tlb_all(); 752 local_flush_tlb_all();
754 cpu_clear(cpu, cpu_callin_map); 753 cpu_clear(cpu, cpu_callin_map);
755 return 0; 754 return 0;
diff --git a/arch/ia64/sn/pci/tioca_provider.c b/arch/ia64/sn/pci/tioca_provider.c
index 529462c01570..79165122501c 100644
--- a/arch/ia64/sn/pci/tioca_provider.c
+++ b/arch/ia64/sn/pci/tioca_provider.c
@@ -420,8 +420,10 @@ tioca_dma_mapped(struct pci_dev *pdev, u64 paddr, size_t req_size)
420 entry = find_next_zero_bit(map, mapsize, last_entry); 420 entry = find_next_zero_bit(map, mapsize, last_entry);
421 } 421 }
422 422
423 if (entry > mapsize) 423 if (entry > mapsize) {
424 kfree(ca_dmamap);
424 goto map_return; 425 goto map_return;
426 }
425 427
426 for (i = 0; i < entries; i++) 428 for (i = 0; i < entries; i++)
427 set_bit(entry + i, map); 429 set_bit(entry + i, map);
diff --git a/arch/m68k/atari/atakeyb.c b/arch/m68k/atari/atakeyb.c
index 8a2a53b33616..bb959fbab2dc 100644
--- a/arch/m68k/atari/atakeyb.c
+++ b/arch/m68k/atari/atakeyb.c
@@ -580,13 +580,15 @@ int atari_keyb_init(void)
580 do { 580 do {
581 /* reset IKBD ACIA */ 581 /* reset IKBD ACIA */
582 acia.key_ctrl = ACIA_RESET | 582 acia.key_ctrl = ACIA_RESET |
583 (atari_switches & ATARI_SWITCH_IKBD) ? ACIA_RHTID : 0; 583 ((atari_switches & ATARI_SWITCH_IKBD) ?
584 ACIA_RHTID : 0);
584 (void)acia.key_ctrl; 585 (void)acia.key_ctrl;
585 (void)acia.key_data; 586 (void)acia.key_data;
586 587
587 /* reset MIDI ACIA */ 588 /* reset MIDI ACIA */
588 acia.mid_ctrl = ACIA_RESET | 589 acia.mid_ctrl = ACIA_RESET |
589 (atari_switches & ATARI_SWITCH_MIDI) ? ACIA_RHTID : 0; 590 ((atari_switches & ATARI_SWITCH_MIDI) ?
591 ACIA_RHTID : 0);
590 (void)acia.mid_ctrl; 592 (void)acia.mid_ctrl;
591 (void)acia.mid_data; 593 (void)acia.mid_data;
592 594
@@ -599,7 +601,8 @@ int atari_keyb_init(void)
599 ACIA_RHTID : ACIA_RLTID); 601 ACIA_RHTID : ACIA_RLTID);
600 602
601 acia.mid_ctrl = ACIA_DIV16 | ACIA_D8N1S | 603 acia.mid_ctrl = ACIA_DIV16 | ACIA_D8N1S |
602 (atari_switches & ATARI_SWITCH_MIDI) ? ACIA_RHTID : 0; 604 ((atari_switches & ATARI_SWITCH_MIDI) ?
605 ACIA_RHTID : 0);
603 606
604 /* make sure the interrupt line is up */ 607 /* make sure the interrupt line is up */
605 } while ((mfp.par_dt_reg & 0x10) == 0); 608 } while ((mfp.par_dt_reg & 0x10) == 0);
diff --git a/arch/m68k/configs/amiga_defconfig b/arch/m68k/configs/amiga_defconfig
index 8e2a0f5faf53..8bd61a640fc9 100644
--- a/arch/m68k/configs/amiga_defconfig
+++ b/arch/m68k/configs/amiga_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:00 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -166,10 +172,6 @@ CONFIG_GENERIC_ISA_DMA=y
166CONFIG_ZONE_DMA=y 172CONFIG_ZONE_DMA=y
167# CONFIG_ARCH_SUPPORTS_MSI is not set 173# CONFIG_ARCH_SUPPORTS_MSI is not set
168CONFIG_ZORRO_NAMES=y 174CONFIG_ZORRO_NAMES=y
169
170#
171# Networking
172#
173CONFIG_NET=y 175CONFIG_NET=y
174 176
175# 177#
@@ -183,6 +185,7 @@ CONFIG_XFRM=y
183# CONFIG_XFRM_SUB_POLICY is not set 185# CONFIG_XFRM_SUB_POLICY is not set
184CONFIG_XFRM_MIGRATE=y 186CONFIG_XFRM_MIGRATE=y
185# CONFIG_XFRM_STATISTICS is not set 187# CONFIG_XFRM_STATISTICS is not set
188CONFIG_XFRM_IPCOMP=m
186CONFIG_NET_KEY=y 189CONFIG_NET_KEY=y
187CONFIG_NET_KEY_MIGRATE=y 190CONFIG_NET_KEY_MIGRATE=y
188CONFIG_INET=y 191CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -460,6 +466,7 @@ CONFIG_CDROM_PKTCDVD=m
460CONFIG_CDROM_PKTCDVD_BUFFERS=8 466CONFIG_CDROM_PKTCDVD_BUFFERS=8
461# CONFIG_CDROM_PKTCDVD_WCACHE is not set 467# CONFIG_CDROM_PKTCDVD_WCACHE is not set
462CONFIG_ATA_OVER_ETH=m 468CONFIG_ATA_OVER_ETH=m
469# CONFIG_BLK_DEV_HD is not set
463CONFIG_MISC_DEVICES=y 470CONFIG_MISC_DEVICES=y
464# CONFIG_EEPROM_93CX6 is not set 471# CONFIG_EEPROM_93CX6 is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 472# CONFIG_ENCLOSURE_SERVICES is not set
@@ -470,6 +477,7 @@ CONFIG_BLK_DEV_IDE=y
470# 477#
471# Please see Documentation/ide/ide.txt for help/info on IDE drives 478# Please see Documentation/ide/ide.txt for help/info on IDE drives
472# 479#
480CONFIG_IDE_ATAPI=y
473# CONFIG_BLK_DEV_IDE_SATA is not set 481# CONFIG_BLK_DEV_IDE_SATA is not set
474CONFIG_BLK_DEV_IDEDISK=y 482CONFIG_BLK_DEV_IDEDISK=y
475# CONFIG_IDEDISK_MULTI_MODE is not set 483# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -489,8 +497,6 @@ CONFIG_BLK_DEV_GAYLE=y
489CONFIG_BLK_DEV_IDEDOUBLER=y 497CONFIG_BLK_DEV_IDEDOUBLER=y
490CONFIG_BLK_DEV_BUDDHA=y 498CONFIG_BLK_DEV_BUDDHA=y
491# CONFIG_BLK_DEV_IDEDMA is not set 499# CONFIG_BLK_DEV_IDEDMA is not set
492# CONFIG_BLK_DEV_HD_ONLY is not set
493# CONFIG_BLK_DEV_HD is not set
494 500
495# 501#
496# SCSI device support 502# SCSI device support
@@ -556,6 +562,7 @@ CONFIG_A2091_SCSI=y
556CONFIG_GVP11_SCSI=y 562CONFIG_GVP11_SCSI=y
557CONFIG_SCSI_A4000T=y 563CONFIG_SCSI_A4000T=y
558CONFIG_SCSI_ZORRO7XX=y 564CONFIG_SCSI_ZORRO7XX=y
565# CONFIG_SCSI_DH is not set
559CONFIG_MD=y 566CONFIG_MD=y
560CONFIG_BLK_DEV_MD=m 567CONFIG_BLK_DEV_MD=m
561CONFIG_MD_LINEAR=m 568CONFIG_MD_LINEAR=m
@@ -564,7 +571,7 @@ CONFIG_MD_RAID1=m
564# CONFIG_MD_RAID10 is not set 571# CONFIG_MD_RAID10 is not set
565CONFIG_MD_RAID456=m 572CONFIG_MD_RAID456=m
566CONFIG_MD_RAID5_RESHAPE=y 573CONFIG_MD_RAID5_RESHAPE=y
567CONFIG_MD_MULTIPATH=m 574# CONFIG_MD_MULTIPATH is not set
568# CONFIG_MD_FAULTY is not set 575# CONFIG_MD_FAULTY is not set
569CONFIG_BLK_DEV_DM=m 576CONFIG_BLK_DEV_DM=m
570# CONFIG_DM_DEBUG is not set 577# CONFIG_DM_DEBUG is not set
@@ -573,13 +580,9 @@ CONFIG_DM_SNAPSHOT=m
573CONFIG_DM_MIRROR=m 580CONFIG_DM_MIRROR=m
574CONFIG_DM_ZERO=m 581CONFIG_DM_ZERO=m
575CONFIG_DM_MULTIPATH=m 582CONFIG_DM_MULTIPATH=m
576CONFIG_DM_MULTIPATH_EMC=m
577CONFIG_DM_MULTIPATH_RDAC=m
578CONFIG_DM_MULTIPATH_HP=m
579# CONFIG_DM_DELAY is not set 583# CONFIG_DM_DELAY is not set
580CONFIG_DM_UEVENT=y 584CONFIG_DM_UEVENT=y
581CONFIG_NETDEVICES=y 585CONFIG_NETDEVICES=y
582# CONFIG_NETDEVICES_MULTIQUEUE is not set
583CONFIG_DUMMY=m 586CONFIG_DUMMY=m
584# CONFIG_BONDING is not set 587# CONFIG_BONDING is not set
585CONFIG_MACVLAN=m 588CONFIG_MACVLAN=m
@@ -722,6 +725,7 @@ CONFIG_INPUT_M68K_BEEP=m
722# Character devices 725# Character devices
723# 726#
724CONFIG_VT=y 727CONFIG_VT=y
728CONFIG_CONSOLE_TRANSLATIONS=y
725CONFIG_VT_CONSOLE=y 729CONFIG_VT_CONSOLE=y
726CONFIG_HW_CONSOLE=y 730CONFIG_HW_CONSOLE=y
727CONFIG_VT_HW_CONSOLE_BINDING=y 731CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -757,6 +761,7 @@ CONFIG_GEN_RTC_X=y
757# CONFIG_POWER_SUPPLY is not set 761# CONFIG_POWER_SUPPLY is not set
758# CONFIG_HWMON is not set 762# CONFIG_HWMON is not set
759# CONFIG_THERMAL is not set 763# CONFIG_THERMAL is not set
764# CONFIG_THERMAL_HWMON is not set
760# CONFIG_WATCHDOG is not set 765# CONFIG_WATCHDOG is not set
761 766
762# 767#
@@ -768,8 +773,10 @@ CONFIG_SSB_POSSIBLE=y
768# 773#
769# Multifunction device drivers 774# Multifunction device drivers
770# 775#
776# CONFIG_MFD_CORE is not set
771# CONFIG_MFD_SM501 is not set 777# CONFIG_MFD_SM501 is not set
772# CONFIG_HTC_PASIC3 is not set 778# CONFIG_HTC_PASIC3 is not set
779# CONFIG_MFD_TMIO is not set
773 780
774# 781#
775# Multimedia devices 782# Multimedia devices
@@ -844,10 +851,6 @@ CONFIG_LOGO=y
844CONFIG_LOGO_LINUX_MONO=y 851CONFIG_LOGO_LINUX_MONO=y
845CONFIG_LOGO_LINUX_VGA16=y 852CONFIG_LOGO_LINUX_VGA16=y
846CONFIG_LOGO_LINUX_CLUT224=y 853CONFIG_LOGO_LINUX_CLUT224=y
847
848#
849# Sound
850#
851CONFIG_SOUND=m 854CONFIG_SOUND=m
852CONFIG_DMASOUND_PAULA=m 855CONFIG_DMASOUND_PAULA=m
853CONFIG_DMASOUND=m 856CONFIG_DMASOUND=m
@@ -861,6 +864,7 @@ CONFIG_HIDRAW=y
861# CONFIG_NEW_LEDS is not set 864# CONFIG_NEW_LEDS is not set
862# CONFIG_ACCESSIBILITY is not set 865# CONFIG_ACCESSIBILITY is not set
863# CONFIG_RTC_CLASS is not set 866# CONFIG_RTC_CLASS is not set
867# CONFIG_DMADEVICES is not set
864# CONFIG_AUXDISPLAY is not set 868# CONFIG_AUXDISPLAY is not set
865# CONFIG_UIO is not set 869# CONFIG_UIO is not set
866 870
@@ -899,6 +903,7 @@ CONFIG_XFS_FS=m
899CONFIG_OCFS2_FS=m 903CONFIG_OCFS2_FS=m
900CONFIG_OCFS2_FS_O2CB=m 904CONFIG_OCFS2_FS_O2CB=m
901CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 905CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
906# CONFIG_OCFS2_FS_STATS is not set
902# CONFIG_OCFS2_DEBUG_MASKLOG is not set 907# CONFIG_OCFS2_DEBUG_MASKLOG is not set
903# CONFIG_OCFS2_DEBUG_FS is not set 908# CONFIG_OCFS2_DEBUG_FS is not set
904CONFIG_DNOTIFY=y 909CONFIG_DNOTIFY=y
@@ -958,6 +963,7 @@ CONFIG_HFSPLUS_FS=m
958CONFIG_CRAMFS=m 963CONFIG_CRAMFS=m
959# CONFIG_VXFS_FS is not set 964# CONFIG_VXFS_FS is not set
960CONFIG_MINIX_FS=y 965CONFIG_MINIX_FS=y
966# CONFIG_OMFS_FS is not set
961CONFIG_HPFS_FS=m 967CONFIG_HPFS_FS=m
962# CONFIG_QNX4FS_FS is not set 968# CONFIG_QNX4FS_FS is not set
963# CONFIG_ROMFS_FS is not set 969# CONFIG_ROMFS_FS is not set
@@ -980,7 +986,6 @@ CONFIG_EXPORTFS=m
980CONFIG_NFS_COMMON=y 986CONFIG_NFS_COMMON=y
981CONFIG_SUNRPC=m 987CONFIG_SUNRPC=m
982CONFIG_SUNRPC_GSS=m 988CONFIG_SUNRPC_GSS=m
983CONFIG_SUNRPC_BIND34=y
984CONFIG_RPCSEC_GSS_KRB5=m 989CONFIG_RPCSEC_GSS_KRB5=m
985# CONFIG_RPCSEC_GSS_SPKM3 is not set 990# CONFIG_RPCSEC_GSS_SPKM3 is not set
986CONFIG_SMB_FS=m 991CONFIG_SMB_FS=m
@@ -989,7 +994,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
989# CONFIG_CIFS is not set 994# CONFIG_CIFS is not set
990# CONFIG_NCP_FS is not set 995# CONFIG_NCP_FS is not set
991CONFIG_CODA_FS=m 996CONFIG_CODA_FS=m
992# CONFIG_CODA_FS_OLD_API is not set
993# CONFIG_AFS_FS is not set 997# CONFIG_AFS_FS is not set
994 998
995# 999#
@@ -1054,6 +1058,8 @@ CONFIG_MAGIC_SYSRQ=y
1054# CONFIG_HEADERS_CHECK is not set 1058# CONFIG_HEADERS_CHECK is not set
1055# CONFIG_DEBUG_KERNEL is not set 1059# CONFIG_DEBUG_KERNEL is not set
1056CONFIG_DEBUG_BUGVERBOSE=y 1060CONFIG_DEBUG_BUGVERBOSE=y
1061CONFIG_DEBUG_MEMORY_INIT=y
1062CONFIG_SYSCTL_SYSCALL_CHECK=y
1057# CONFIG_SAMPLES is not set 1063# CONFIG_SAMPLES is not set
1058 1064
1059# 1065#
@@ -1113,6 +1119,10 @@ CONFIG_CRYPTO_CRC32C=m
1113CONFIG_CRYPTO_MD4=m 1119CONFIG_CRYPTO_MD4=m
1114CONFIG_CRYPTO_MD5=m 1120CONFIG_CRYPTO_MD5=m
1115CONFIG_CRYPTO_MICHAEL_MIC=m 1121CONFIG_CRYPTO_MICHAEL_MIC=m
1122CONFIG_CRYPTO_RMD128=m
1123CONFIG_CRYPTO_RMD160=m
1124CONFIG_CRYPTO_RMD256=m
1125CONFIG_CRYPTO_RMD320=m
1116CONFIG_CRYPTO_SHA1=m 1126CONFIG_CRYPTO_SHA1=m
1117CONFIG_CRYPTO_SHA256=m 1127CONFIG_CRYPTO_SHA256=m
1118CONFIG_CRYPTO_SHA512=m 1128CONFIG_CRYPTO_SHA512=m
@@ -1154,6 +1164,7 @@ CONFIG_BITREVERSE=y
1154# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1164# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1155CONFIG_CRC_CCITT=m 1165CONFIG_CRC_CCITT=m
1156CONFIG_CRC16=m 1166CONFIG_CRC16=m
1167CONFIG_CRC_T10DIF=y
1157CONFIG_CRC_ITU_T=m 1168CONFIG_CRC_ITU_T=m
1158CONFIG_CRC32=y 1169CONFIG_CRC32=y
1159# CONFIG_CRC7 is not set 1170# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/apollo_defconfig b/arch/m68k/configs/apollo_defconfig
index e2d511e2a1d1..c41b854c0284 100644
--- a/arch/m68k/configs/apollo_defconfig
+++ b/arch/m68k/configs/apollo_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:01 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -161,10 +167,6 @@ CONFIG_HEARTBEAT=y
161CONFIG_PROC_HARDWARE=y 167CONFIG_PROC_HARDWARE=y
162CONFIG_ZONE_DMA=y 168CONFIG_ZONE_DMA=y
163# CONFIG_ARCH_SUPPORTS_MSI is not set 169# CONFIG_ARCH_SUPPORTS_MSI is not set
164
165#
166# Networking
167#
168CONFIG_NET=y 170CONFIG_NET=y
169 171
170# 172#
@@ -178,6 +180,7 @@ CONFIG_XFRM=y
178# CONFIG_XFRM_SUB_POLICY is not set 180# CONFIG_XFRM_SUB_POLICY is not set
179CONFIG_XFRM_MIGRATE=y 181CONFIG_XFRM_MIGRATE=y
180# CONFIG_XFRM_STATISTICS is not set 182# CONFIG_XFRM_STATISTICS is not set
183CONFIG_XFRM_IPCOMP=m
181CONFIG_NET_KEY=y 184CONFIG_NET_KEY=y
182CONFIG_NET_KEY_MIGRATE=y 185CONFIG_NET_KEY_MIGRATE=y
183CONFIG_INET=y 186CONFIG_INET=y
@@ -411,6 +414,7 @@ CONFIG_NET_CLS_ROUTE=y
411# 414#
412# CONFIG_CFG80211 is not set 415# CONFIG_CFG80211 is not set
413CONFIG_WIRELESS_EXT=y 416CONFIG_WIRELESS_EXT=y
417# CONFIG_WIRELESS_EXT_SYSFS is not set
414# CONFIG_MAC80211 is not set 418# CONFIG_MAC80211 is not set
415CONFIG_IEEE80211=m 419CONFIG_IEEE80211=m
416# CONFIG_IEEE80211_DEBUG is not set 420# CONFIG_IEEE80211_DEBUG is not set
@@ -430,7 +434,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
430CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 434CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
431CONFIG_STANDALONE=y 435CONFIG_STANDALONE=y
432CONFIG_PREVENT_FIRMWARE_BUILD=y 436CONFIG_PREVENT_FIRMWARE_BUILD=y
433CONFIG_FW_LOADER=m 437CONFIG_FW_LOADER=y
438# CONFIG_FIRMWARE_IN_KERNEL is not set
439CONFIG_EXTRA_FIRMWARE=""
434# CONFIG_SYS_HYPERVISOR is not set 440# CONFIG_SYS_HYPERVISOR is not set
435CONFIG_CONNECTOR=m 441CONFIG_CONNECTOR=m
436# CONFIG_MTD is not set 442# CONFIG_MTD is not set
@@ -448,6 +454,7 @@ CONFIG_CDROM_PKTCDVD=m
448CONFIG_CDROM_PKTCDVD_BUFFERS=8 454CONFIG_CDROM_PKTCDVD_BUFFERS=8
449# CONFIG_CDROM_PKTCDVD_WCACHE is not set 455# CONFIG_CDROM_PKTCDVD_WCACHE is not set
450CONFIG_ATA_OVER_ETH=m 456CONFIG_ATA_OVER_ETH=m
457# CONFIG_BLK_DEV_HD is not set
451CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
452# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set 460# CONFIG_ENCLOSURE_SERVICES is not set
@@ -499,6 +506,7 @@ CONFIG_SCSI_SRP_TGT_ATTRS=y
499CONFIG_SCSI_LOWLEVEL=y 506CONFIG_SCSI_LOWLEVEL=y
500CONFIG_ISCSI_TCP=m 507CONFIG_ISCSI_TCP=m
501# CONFIG_SCSI_DEBUG is not set 508# CONFIG_SCSI_DEBUG is not set
509# CONFIG_SCSI_DH is not set
502CONFIG_MD=y 510CONFIG_MD=y
503CONFIG_BLK_DEV_MD=m 511CONFIG_BLK_DEV_MD=m
504CONFIG_MD_LINEAR=m 512CONFIG_MD_LINEAR=m
@@ -507,7 +515,7 @@ CONFIG_MD_RAID1=m
507# CONFIG_MD_RAID10 is not set 515# CONFIG_MD_RAID10 is not set
508CONFIG_MD_RAID456=m 516CONFIG_MD_RAID456=m
509CONFIG_MD_RAID5_RESHAPE=y 517CONFIG_MD_RAID5_RESHAPE=y
510CONFIG_MD_MULTIPATH=m 518# CONFIG_MD_MULTIPATH is not set
511# CONFIG_MD_FAULTY is not set 519# CONFIG_MD_FAULTY is not set
512CONFIG_BLK_DEV_DM=m 520CONFIG_BLK_DEV_DM=m
513# CONFIG_DM_DEBUG is not set 521# CONFIG_DM_DEBUG is not set
@@ -516,13 +524,9 @@ CONFIG_DM_SNAPSHOT=m
516CONFIG_DM_MIRROR=m 524CONFIG_DM_MIRROR=m
517CONFIG_DM_ZERO=m 525CONFIG_DM_ZERO=m
518CONFIG_DM_MULTIPATH=m 526CONFIG_DM_MULTIPATH=m
519CONFIG_DM_MULTIPATH_EMC=m
520CONFIG_DM_MULTIPATH_RDAC=m
521CONFIG_DM_MULTIPATH_HP=m
522# CONFIG_DM_DELAY is not set 527# CONFIG_DM_DELAY is not set
523CONFIG_DM_UEVENT=y 528CONFIG_DM_UEVENT=y
524CONFIG_NETDEVICES=y 529CONFIG_NETDEVICES=y
525# CONFIG_NETDEVICES_MULTIQUEUE is not set
526CONFIG_DUMMY=m 530CONFIG_DUMMY=m
527# CONFIG_BONDING is not set 531# CONFIG_BONDING is not set
528CONFIG_MACVLAN=m 532CONFIG_MACVLAN=m
@@ -532,7 +536,6 @@ CONFIG_VETH=m
532# CONFIG_PHYLIB is not set 536# CONFIG_PHYLIB is not set
533CONFIG_NET_ETHERNET=y 537CONFIG_NET_ETHERNET=y
534# CONFIG_MII is not set 538# CONFIG_MII is not set
535CONFIG_APOLLO_ELPLUS=y
536# CONFIG_IBM_NEW_EMAC_ZMII is not set 539# CONFIG_IBM_NEW_EMAC_ZMII is not set
537# CONFIG_IBM_NEW_EMAC_RGMII is not set 540# CONFIG_IBM_NEW_EMAC_RGMII is not set
538# CONFIG_IBM_NEW_EMAC_TAH is not set 541# CONFIG_IBM_NEW_EMAC_TAH is not set
@@ -627,6 +630,7 @@ CONFIG_SERIO_LIBPS2=m
627# Character devices 630# Character devices
628# 631#
629CONFIG_VT=y 632CONFIG_VT=y
633CONFIG_CONSOLE_TRANSLATIONS=y
630CONFIG_VT_CONSOLE=y 634CONFIG_VT_CONSOLE=y
631CONFIG_HW_CONSOLE=y 635CONFIG_HW_CONSOLE=y
632CONFIG_VT_HW_CONSOLE_BINDING=y 636CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -657,6 +661,7 @@ CONFIG_GEN_RTC_X=y
657# CONFIG_POWER_SUPPLY is not set 661# CONFIG_POWER_SUPPLY is not set
658# CONFIG_HWMON is not set 662# CONFIG_HWMON is not set
659# CONFIG_THERMAL is not set 663# CONFIG_THERMAL is not set
664# CONFIG_THERMAL_HWMON is not set
660# CONFIG_WATCHDOG is not set 665# CONFIG_WATCHDOG is not set
661 666
662# 667#
@@ -668,8 +673,10 @@ CONFIG_SSB_POSSIBLE=y
668# 673#
669# Multifunction device drivers 674# Multifunction device drivers
670# 675#
676# CONFIG_MFD_CORE is not set
671# CONFIG_MFD_SM501 is not set 677# CONFIG_MFD_SM501 is not set
672# CONFIG_HTC_PASIC3 is not set 678# CONFIG_HTC_PASIC3 is not set
679# CONFIG_MFD_TMIO is not set
673 680
674# 681#
675# Multimedia devices 682# Multimedia devices
@@ -738,10 +745,6 @@ CONFIG_LOGO=y
738CONFIG_LOGO_LINUX_MONO=y 745CONFIG_LOGO_LINUX_MONO=y
739# CONFIG_LOGO_LINUX_VGA16 is not set 746# CONFIG_LOGO_LINUX_VGA16 is not set
740# CONFIG_LOGO_LINUX_CLUT224 is not set 747# CONFIG_LOGO_LINUX_CLUT224 is not set
741
742#
743# Sound
744#
745# CONFIG_SOUND is not set 748# CONFIG_SOUND is not set
746CONFIG_HID_SUPPORT=y 749CONFIG_HID_SUPPORT=y
747CONFIG_HID=m 750CONFIG_HID=m
@@ -753,6 +756,7 @@ CONFIG_HIDRAW=y
753# CONFIG_NEW_LEDS is not set 756# CONFIG_NEW_LEDS is not set
754# CONFIG_ACCESSIBILITY is not set 757# CONFIG_ACCESSIBILITY is not set
755# CONFIG_RTC_CLASS is not set 758# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set
756# CONFIG_UIO is not set 760# CONFIG_UIO is not set
757 761
758# 762#
@@ -789,6 +793,7 @@ CONFIG_XFS_FS=m
789CONFIG_OCFS2_FS=m 793CONFIG_OCFS2_FS=m
790CONFIG_OCFS2_FS_O2CB=m 794CONFIG_OCFS2_FS_O2CB=m
791CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 795CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
796# CONFIG_OCFS2_FS_STATS is not set
792# CONFIG_OCFS2_DEBUG_MASKLOG is not set 797# CONFIG_OCFS2_DEBUG_MASKLOG is not set
793# CONFIG_OCFS2_DEBUG_FS is not set 798# CONFIG_OCFS2_DEBUG_FS is not set
794CONFIG_DNOTIFY=y 799CONFIG_DNOTIFY=y
@@ -848,6 +853,7 @@ CONFIG_HFSPLUS_FS=m
848CONFIG_CRAMFS=m 853CONFIG_CRAMFS=m
849# CONFIG_VXFS_FS is not set 854# CONFIG_VXFS_FS is not set
850CONFIG_MINIX_FS=y 855CONFIG_MINIX_FS=y
856# CONFIG_OMFS_FS is not set
851CONFIG_HPFS_FS=m 857CONFIG_HPFS_FS=m
852# CONFIG_QNX4FS_FS is not set 858# CONFIG_QNX4FS_FS is not set
853# CONFIG_ROMFS_FS is not set 859# CONFIG_ROMFS_FS is not set
@@ -860,18 +866,17 @@ CONFIG_NFS_FS=y
860CONFIG_NFS_V3=y 866CONFIG_NFS_V3=y
861# CONFIG_NFS_V3_ACL is not set 867# CONFIG_NFS_V3_ACL is not set
862CONFIG_NFS_V4=y 868CONFIG_NFS_V4=y
869CONFIG_ROOT_NFS=y
863CONFIG_NFSD=m 870CONFIG_NFSD=m
864CONFIG_NFSD_V3=y 871CONFIG_NFSD_V3=y
865# CONFIG_NFSD_V3_ACL is not set 872# CONFIG_NFSD_V3_ACL is not set
866# CONFIG_NFSD_V4 is not set 873# CONFIG_NFSD_V4 is not set
867CONFIG_ROOT_NFS=y
868CONFIG_LOCKD=y 874CONFIG_LOCKD=y
869CONFIG_LOCKD_V4=y 875CONFIG_LOCKD_V4=y
870CONFIG_EXPORTFS=m 876CONFIG_EXPORTFS=m
871CONFIG_NFS_COMMON=y 877CONFIG_NFS_COMMON=y
872CONFIG_SUNRPC=y 878CONFIG_SUNRPC=y
873CONFIG_SUNRPC_GSS=y 879CONFIG_SUNRPC_GSS=y
874CONFIG_SUNRPC_BIND34=y
875CONFIG_RPCSEC_GSS_KRB5=y 880CONFIG_RPCSEC_GSS_KRB5=y
876# CONFIG_RPCSEC_GSS_SPKM3 is not set 881# CONFIG_RPCSEC_GSS_SPKM3 is not set
877CONFIG_SMB_FS=m 882CONFIG_SMB_FS=m
@@ -880,7 +885,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
880# CONFIG_CIFS is not set 885# CONFIG_CIFS is not set
881# CONFIG_NCP_FS is not set 886# CONFIG_NCP_FS is not set
882CONFIG_CODA_FS=m 887CONFIG_CODA_FS=m
883# CONFIG_CODA_FS_OLD_API is not set
884# CONFIG_AFS_FS is not set 888# CONFIG_AFS_FS is not set
885 889
886# 890#
@@ -944,6 +948,8 @@ CONFIG_MAGIC_SYSRQ=y
944# CONFIG_HEADERS_CHECK is not set 948# CONFIG_HEADERS_CHECK is not set
945# CONFIG_DEBUG_KERNEL is not set 949# CONFIG_DEBUG_KERNEL is not set
946CONFIG_DEBUG_BUGVERBOSE=y 950CONFIG_DEBUG_BUGVERBOSE=y
951CONFIG_DEBUG_MEMORY_INIT=y
952CONFIG_SYSCTL_SYSCALL_CHECK=y
947# CONFIG_SAMPLES is not set 953# CONFIG_SAMPLES is not set
948 954
949# 955#
@@ -1003,6 +1009,10 @@ CONFIG_CRYPTO_CRC32C=m
1003CONFIG_CRYPTO_MD4=m 1009CONFIG_CRYPTO_MD4=m
1004CONFIG_CRYPTO_MD5=y 1010CONFIG_CRYPTO_MD5=y
1005CONFIG_CRYPTO_MICHAEL_MIC=m 1011CONFIG_CRYPTO_MICHAEL_MIC=m
1012CONFIG_CRYPTO_RMD128=m
1013CONFIG_CRYPTO_RMD160=m
1014CONFIG_CRYPTO_RMD256=m
1015CONFIG_CRYPTO_RMD320=m
1006CONFIG_CRYPTO_SHA1=m 1016CONFIG_CRYPTO_SHA1=m
1007CONFIG_CRYPTO_SHA256=m 1017CONFIG_CRYPTO_SHA256=m
1008CONFIG_CRYPTO_SHA512=m 1018CONFIG_CRYPTO_SHA512=m
@@ -1044,6 +1054,7 @@ CONFIG_BITREVERSE=y
1044# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1054# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1045CONFIG_CRC_CCITT=m 1055CONFIG_CRC_CCITT=m
1046CONFIG_CRC16=m 1056CONFIG_CRC16=m
1057CONFIG_CRC_T10DIF=y
1047CONFIG_CRC_ITU_T=m 1058CONFIG_CRC_ITU_T=m
1048CONFIG_CRC32=y 1059CONFIG_CRC32=y
1049# CONFIG_CRC7 is not set 1060# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/atari_defconfig b/arch/m68k/configs/atari_defconfig
index 6e20d656adaf..654c5acb9e86 100644
--- a/arch/m68k/configs/atari_defconfig
+++ b/arch/m68k/configs/atari_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:02 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -162,10 +168,6 @@ CONFIG_HEARTBEAT=y
162CONFIG_PROC_HARDWARE=y 168CONFIG_PROC_HARDWARE=y
163CONFIG_ZONE_DMA=y 169CONFIG_ZONE_DMA=y
164# CONFIG_ARCH_SUPPORTS_MSI is not set 170# CONFIG_ARCH_SUPPORTS_MSI is not set
165
166#
167# Networking
168#
169CONFIG_NET=y 171CONFIG_NET=y
170 172
171# 173#
@@ -179,6 +181,7 @@ CONFIG_XFRM=y
179# CONFIG_XFRM_SUB_POLICY is not set 181# CONFIG_XFRM_SUB_POLICY is not set
180CONFIG_XFRM_MIGRATE=y 182CONFIG_XFRM_MIGRATE=y
181# CONFIG_XFRM_STATISTICS is not set 183# CONFIG_XFRM_STATISTICS is not set
184CONFIG_XFRM_IPCOMP=m
182CONFIG_NET_KEY=y 185CONFIG_NET_KEY=y
183CONFIG_NET_KEY_MIGRATE=y 186CONFIG_NET_KEY_MIGRATE=y
184CONFIG_INET=y 187CONFIG_INET=y
@@ -409,6 +412,7 @@ CONFIG_NET_CLS_ROUTE=y
409# 412#
410# CONFIG_CFG80211 is not set 413# CONFIG_CFG80211 is not set
411CONFIG_WIRELESS_EXT=y 414CONFIG_WIRELESS_EXT=y
415# CONFIG_WIRELESS_EXT_SYSFS is not set
412# CONFIG_MAC80211 is not set 416# CONFIG_MAC80211 is not set
413CONFIG_IEEE80211=m 417CONFIG_IEEE80211=m
414# CONFIG_IEEE80211_DEBUG is not set 418# CONFIG_IEEE80211_DEBUG is not set
@@ -428,7 +432,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
428CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
429CONFIG_STANDALONE=y 433CONFIG_STANDALONE=y
430CONFIG_PREVENT_FIRMWARE_BUILD=y 434CONFIG_PREVENT_FIRMWARE_BUILD=y
431CONFIG_FW_LOADER=m 435CONFIG_FW_LOADER=y
436# CONFIG_FIRMWARE_IN_KERNEL is not set
437CONFIG_EXTRA_FIRMWARE=""
432# CONFIG_SYS_HYPERVISOR is not set 438# CONFIG_SYS_HYPERVISOR is not set
433CONFIG_CONNECTOR=m 439CONFIG_CONNECTOR=m
434# CONFIG_MTD is not set 440# CONFIG_MTD is not set
@@ -452,6 +458,7 @@ CONFIG_CDROM_PKTCDVD=m
452CONFIG_CDROM_PKTCDVD_BUFFERS=8 458CONFIG_CDROM_PKTCDVD_BUFFERS=8
453# CONFIG_CDROM_PKTCDVD_WCACHE is not set 459# CONFIG_CDROM_PKTCDVD_WCACHE is not set
454CONFIG_ATA_OVER_ETH=m 460CONFIG_ATA_OVER_ETH=m
461# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 462CONFIG_MISC_DEVICES=y
456# CONFIG_EEPROM_93CX6 is not set 463# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_ENCLOSURE_SERVICES is not set 464# CONFIG_ENCLOSURE_SERVICES is not set
@@ -462,6 +469,7 @@ CONFIG_BLK_DEV_IDE=y
462# 469#
463# Please see Documentation/ide/ide.txt for help/info on IDE drives 470# Please see Documentation/ide/ide.txt for help/info on IDE drives
464# 471#
472CONFIG_IDE_ATAPI=y
465# CONFIG_BLK_DEV_IDE_SATA is not set 473# CONFIG_BLK_DEV_IDE_SATA is not set
466CONFIG_BLK_DEV_IDEDISK=y 474CONFIG_BLK_DEV_IDEDISK=y
467# CONFIG_IDEDISK_MULTI_MODE is not set 475# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -479,8 +487,6 @@ CONFIG_IDE_PROC_FS=y
479# CONFIG_BLK_DEV_PLATFORM is not set 487# CONFIG_BLK_DEV_PLATFORM is not set
480CONFIG_BLK_DEV_FALCON_IDE=y 488CONFIG_BLK_DEV_FALCON_IDE=y
481# CONFIG_BLK_DEV_IDEDMA is not set 489# CONFIG_BLK_DEV_IDEDMA is not set
482# CONFIG_BLK_DEV_HD_ONLY is not set
483# CONFIG_BLK_DEV_HD is not set
484 490
485# 491#
486# SCSI device support 492# SCSI device support
@@ -530,6 +536,7 @@ CONFIG_ISCSI_TCP=m
530CONFIG_ATARI_SCSI=y 536CONFIG_ATARI_SCSI=y
531# CONFIG_ATARI_SCSI_TOSHIBA_DELAY is not set 537# CONFIG_ATARI_SCSI_TOSHIBA_DELAY is not set
532# CONFIG_ATARI_SCSI_RESET_BOOT is not set 538# CONFIG_ATARI_SCSI_RESET_BOOT is not set
539# CONFIG_SCSI_DH is not set
533CONFIG_MD=y 540CONFIG_MD=y
534CONFIG_BLK_DEV_MD=m 541CONFIG_BLK_DEV_MD=m
535CONFIG_MD_LINEAR=m 542CONFIG_MD_LINEAR=m
@@ -538,7 +545,7 @@ CONFIG_MD_RAID1=m
538# CONFIG_MD_RAID10 is not set 545# CONFIG_MD_RAID10 is not set
539CONFIG_MD_RAID456=m 546CONFIG_MD_RAID456=m
540CONFIG_MD_RAID5_RESHAPE=y 547CONFIG_MD_RAID5_RESHAPE=y
541CONFIG_MD_MULTIPATH=m 548# CONFIG_MD_MULTIPATH is not set
542# CONFIG_MD_FAULTY is not set 549# CONFIG_MD_FAULTY is not set
543CONFIG_BLK_DEV_DM=m 550CONFIG_BLK_DEV_DM=m
544# CONFIG_DM_DEBUG is not set 551# CONFIG_DM_DEBUG is not set
@@ -547,13 +554,9 @@ CONFIG_DM_SNAPSHOT=m
547CONFIG_DM_MIRROR=m 554CONFIG_DM_MIRROR=m
548CONFIG_DM_ZERO=m 555CONFIG_DM_ZERO=m
549CONFIG_DM_MULTIPATH=m 556CONFIG_DM_MULTIPATH=m
550CONFIG_DM_MULTIPATH_EMC=m
551CONFIG_DM_MULTIPATH_RDAC=m
552CONFIG_DM_MULTIPATH_HP=m
553# CONFIG_DM_DELAY is not set 557# CONFIG_DM_DELAY is not set
554CONFIG_DM_UEVENT=y 558CONFIG_DM_UEVENT=y
555CONFIG_NETDEVICES=y 559CONFIG_NETDEVICES=y
556# CONFIG_NETDEVICES_MULTIQUEUE is not set
557CONFIG_DUMMY=m 560CONFIG_DUMMY=m
558# CONFIG_BONDING is not set 561# CONFIG_BONDING is not set
559CONFIG_MACVLAN=m 562CONFIG_MACVLAN=m
@@ -666,6 +669,7 @@ CONFIG_SERIO_LIBPS2=y
666# Character devices 669# Character devices
667# 670#
668CONFIG_VT=y 671CONFIG_VT=y
672CONFIG_CONSOLE_TRANSLATIONS=y
669CONFIG_VT_CONSOLE=y 673CONFIG_VT_CONSOLE=y
670CONFIG_HW_CONSOLE=y 674CONFIG_HW_CONSOLE=y
671CONFIG_VT_HW_CONSOLE_BINDING=y 675CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -700,6 +704,7 @@ CONFIG_GEN_RTC_X=y
700# CONFIG_POWER_SUPPLY is not set 704# CONFIG_POWER_SUPPLY is not set
701# CONFIG_HWMON is not set 705# CONFIG_HWMON is not set
702# CONFIG_THERMAL is not set 706# CONFIG_THERMAL is not set
707# CONFIG_THERMAL_HWMON is not set
703# CONFIG_WATCHDOG is not set 708# CONFIG_WATCHDOG is not set
704 709
705# 710#
@@ -711,8 +716,10 @@ CONFIG_SSB_POSSIBLE=y
711# 716#
712# Multifunction device drivers 717# Multifunction device drivers
713# 718#
719# CONFIG_MFD_CORE is not set
714# CONFIG_MFD_SM501 is not set 720# CONFIG_MFD_SM501 is not set
715# CONFIG_HTC_PASIC3 is not set 721# CONFIG_HTC_PASIC3 is not set
722# CONFIG_MFD_TMIO is not set
716 723
717# 724#
718# Multimedia devices 725# Multimedia devices
@@ -782,10 +789,6 @@ CONFIG_LOGO=y
782CONFIG_LOGO_LINUX_MONO=y 789CONFIG_LOGO_LINUX_MONO=y
783CONFIG_LOGO_LINUX_VGA16=y 790CONFIG_LOGO_LINUX_VGA16=y
784CONFIG_LOGO_LINUX_CLUT224=y 791CONFIG_LOGO_LINUX_CLUT224=y
785
786#
787# Sound
788#
789CONFIG_SOUND=m 792CONFIG_SOUND=m
790CONFIG_DMASOUND_ATARI=m 793CONFIG_DMASOUND_ATARI=m
791CONFIG_DMASOUND=m 794CONFIG_DMASOUND=m
@@ -799,6 +802,7 @@ CONFIG_HIDRAW=y
799# CONFIG_NEW_LEDS is not set 802# CONFIG_NEW_LEDS is not set
800# CONFIG_ACCESSIBILITY is not set 803# CONFIG_ACCESSIBILITY is not set
801# CONFIG_RTC_CLASS is not set 804# CONFIG_RTC_CLASS is not set
805# CONFIG_DMADEVICES is not set
802# CONFIG_AUXDISPLAY is not set 806# CONFIG_AUXDISPLAY is not set
803# CONFIG_UIO is not set 807# CONFIG_UIO is not set
804 808
@@ -806,11 +810,8 @@ CONFIG_HIDRAW=y
806# Character devices 810# Character devices
807# 811#
808CONFIG_ATARI_MFPSER=m 812CONFIG_ATARI_MFPSER=m
809CONFIG_ATARI_SCC=y
810CONFIG_ATARI_SCC_DMA=y
811CONFIG_ATARI_MIDI=m 813CONFIG_ATARI_MIDI=m
812CONFIG_ATARI_DSP56K=m 814CONFIG_ATARI_DSP56K=m
813# CONFIG_SERIAL_CONSOLE is not set
814 815
815# 816#
816# File systems 817# File systems
@@ -820,8 +821,10 @@ CONFIG_EXT2_FS=y
820# CONFIG_EXT2_FS_XIP is not set 821# CONFIG_EXT2_FS_XIP is not set
821CONFIG_EXT3_FS=y 822CONFIG_EXT3_FS=y
822# CONFIG_EXT3_FS_XATTR is not set 823# CONFIG_EXT3_FS_XATTR is not set
823# CONFIG_EXT4DEV_FS is not set 824CONFIG_EXT4DEV_FS=y
825# CONFIG_EXT4DEV_FS_XATTR is not set
824CONFIG_JBD=y 826CONFIG_JBD=y
827CONFIG_JBD2=y
825CONFIG_REISERFS_FS=m 828CONFIG_REISERFS_FS=m
826# CONFIG_REISERFS_CHECK is not set 829# CONFIG_REISERFS_CHECK is not set
827# CONFIG_REISERFS_PROC_INFO is not set 830# CONFIG_REISERFS_PROC_INFO is not set
@@ -840,6 +843,7 @@ CONFIG_XFS_FS=m
840CONFIG_OCFS2_FS=m 843CONFIG_OCFS2_FS=m
841CONFIG_OCFS2_FS_O2CB=m 844CONFIG_OCFS2_FS_O2CB=m
842CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 845CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
846# CONFIG_OCFS2_FS_STATS is not set
843# CONFIG_OCFS2_DEBUG_MASKLOG is not set 847# CONFIG_OCFS2_DEBUG_MASKLOG is not set
844# CONFIG_OCFS2_DEBUG_FS is not set 848# CONFIG_OCFS2_DEBUG_FS is not set
845CONFIG_DNOTIFY=y 849CONFIG_DNOTIFY=y
@@ -899,6 +903,7 @@ CONFIG_HFSPLUS_FS=m
899CONFIG_CRAMFS=m 903CONFIG_CRAMFS=m
900# CONFIG_VXFS_FS is not set 904# CONFIG_VXFS_FS is not set
901CONFIG_MINIX_FS=y 905CONFIG_MINIX_FS=y
906# CONFIG_OMFS_FS is not set
902CONFIG_HPFS_FS=m 907CONFIG_HPFS_FS=m
903# CONFIG_QNX4FS_FS is not set 908# CONFIG_QNX4FS_FS is not set
904# CONFIG_ROMFS_FS is not set 909# CONFIG_ROMFS_FS is not set
@@ -920,7 +925,6 @@ CONFIG_LOCKD_V4=y
920CONFIG_EXPORTFS=m 925CONFIG_EXPORTFS=m
921CONFIG_NFS_COMMON=y 926CONFIG_NFS_COMMON=y
922CONFIG_SUNRPC=m 927CONFIG_SUNRPC=m
923CONFIG_SUNRPC_BIND34=y
924# CONFIG_RPCSEC_GSS_KRB5 is not set 928# CONFIG_RPCSEC_GSS_KRB5 is not set
925# CONFIG_RPCSEC_GSS_SPKM3 is not set 929# CONFIG_RPCSEC_GSS_SPKM3 is not set
926CONFIG_SMB_FS=m 930CONFIG_SMB_FS=m
@@ -929,7 +933,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
929# CONFIG_CIFS is not set 933# CONFIG_CIFS is not set
930# CONFIG_NCP_FS is not set 934# CONFIG_NCP_FS is not set
931CONFIG_CODA_FS=m 935CONFIG_CODA_FS=m
932# CONFIG_CODA_FS_OLD_API is not set
933# CONFIG_AFS_FS is not set 936# CONFIG_AFS_FS is not set
934 937
935# 938#
@@ -994,6 +997,8 @@ CONFIG_MAGIC_SYSRQ=y
994# CONFIG_HEADERS_CHECK is not set 997# CONFIG_HEADERS_CHECK is not set
995# CONFIG_DEBUG_KERNEL is not set 998# CONFIG_DEBUG_KERNEL is not set
996CONFIG_DEBUG_BUGVERBOSE=y 999CONFIG_DEBUG_BUGVERBOSE=y
1000CONFIG_DEBUG_MEMORY_INIT=y
1001CONFIG_SYSCTL_SYSCALL_CHECK=y
997# CONFIG_SAMPLES is not set 1002# CONFIG_SAMPLES is not set
998 1003
999# 1004#
@@ -1053,6 +1058,10 @@ CONFIG_CRYPTO_CRC32C=m
1053CONFIG_CRYPTO_MD4=m 1058CONFIG_CRYPTO_MD4=m
1054CONFIG_CRYPTO_MD5=m 1059CONFIG_CRYPTO_MD5=m
1055CONFIG_CRYPTO_MICHAEL_MIC=m 1060CONFIG_CRYPTO_MICHAEL_MIC=m
1061CONFIG_CRYPTO_RMD128=m
1062CONFIG_CRYPTO_RMD160=m
1063CONFIG_CRYPTO_RMD256=m
1064CONFIG_CRYPTO_RMD320=m
1056CONFIG_CRYPTO_SHA1=m 1065CONFIG_CRYPTO_SHA1=m
1057CONFIG_CRYPTO_SHA256=m 1066CONFIG_CRYPTO_SHA256=m
1058CONFIG_CRYPTO_SHA512=m 1067CONFIG_CRYPTO_SHA512=m
@@ -1094,6 +1103,7 @@ CONFIG_BITREVERSE=y
1094# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1103# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1095CONFIG_CRC_CCITT=m 1104CONFIG_CRC_CCITT=m
1096CONFIG_CRC16=y 1105CONFIG_CRC16=y
1106CONFIG_CRC_T10DIF=y
1097CONFIG_CRC_ITU_T=m 1107CONFIG_CRC_ITU_T=m
1098CONFIG_CRC32=y 1108CONFIG_CRC32=y
1099# CONFIG_CRC7 is not set 1109# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/bvme6000_defconfig b/arch/m68k/configs/bvme6000_defconfig
index a0a9b30bb502..2e44af0fe54a 100644
--- a/arch/m68k/configs/bvme6000_defconfig
+++ b/arch/m68k/configs/bvme6000_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:03 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -503,6 +510,7 @@ CONFIG_ISCSI_TCP=m
503CONFIG_53C700_BE_BUS=y 510CONFIG_53C700_BE_BUS=y
504# CONFIG_SCSI_DEBUG is not set 511# CONFIG_SCSI_DEBUG is not set
505CONFIG_BVME6000_SCSI=y 512CONFIG_BVME6000_SCSI=y
513# CONFIG_SCSI_DH is not set
506CONFIG_MD=y 514CONFIG_MD=y
507CONFIG_BLK_DEV_MD=m 515CONFIG_BLK_DEV_MD=m
508CONFIG_MD_LINEAR=m 516CONFIG_MD_LINEAR=m
@@ -511,7 +519,7 @@ CONFIG_MD_RAID1=m
511# CONFIG_MD_RAID10 is not set 519# CONFIG_MD_RAID10 is not set
512CONFIG_MD_RAID456=m 520CONFIG_MD_RAID456=m
513CONFIG_MD_RAID5_RESHAPE=y 521CONFIG_MD_RAID5_RESHAPE=y
514CONFIG_MD_MULTIPATH=m 522# CONFIG_MD_MULTIPATH is not set
515# CONFIG_MD_FAULTY is not set 523# CONFIG_MD_FAULTY is not set
516CONFIG_BLK_DEV_DM=m 524CONFIG_BLK_DEV_DM=m
517# CONFIG_DM_DEBUG is not set 525# CONFIG_DM_DEBUG is not set
@@ -520,13 +528,9 @@ CONFIG_DM_SNAPSHOT=m
520CONFIG_DM_MIRROR=m 528CONFIG_DM_MIRROR=m
521CONFIG_DM_ZERO=m 529CONFIG_DM_ZERO=m
522CONFIG_DM_MULTIPATH=m 530CONFIG_DM_MULTIPATH=m
523CONFIG_DM_MULTIPATH_EMC=m
524CONFIG_DM_MULTIPATH_RDAC=m
525CONFIG_DM_MULTIPATH_HP=m
526# CONFIG_DM_DELAY is not set 531# CONFIG_DM_DELAY is not set
527CONFIG_DM_UEVENT=y 532CONFIG_DM_UEVENT=y
528CONFIG_NETDEVICES=y 533CONFIG_NETDEVICES=y
529# CONFIG_NETDEVICES_MULTIQUEUE is not set
530CONFIG_DUMMY=m 534CONFIG_DUMMY=m
531# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
532CONFIG_MACVLAN=m 536CONFIG_MACVLAN=m
@@ -631,6 +635,7 @@ CONFIG_SERIO_LIBPS2=m
631# Character devices 635# Character devices
632# 636#
633CONFIG_VT=y 637CONFIG_VT=y
638CONFIG_CONSOLE_TRANSLATIONS=y
634CONFIG_VT_CONSOLE=y 639CONFIG_VT_CONSOLE=y
635CONFIG_HW_CONSOLE=y 640CONFIG_HW_CONSOLE=y
636CONFIG_VT_HW_CONSOLE_BINDING=y 641CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -661,6 +666,7 @@ CONFIG_GEN_RTC_X=y
661# CONFIG_POWER_SUPPLY is not set 666# CONFIG_POWER_SUPPLY is not set
662# CONFIG_HWMON is not set 667# CONFIG_HWMON is not set
663# CONFIG_THERMAL is not set 668# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set
664# CONFIG_WATCHDOG is not set 670# CONFIG_WATCHDOG is not set
665 671
666# 672#
@@ -672,8 +678,10 @@ CONFIG_SSB_POSSIBLE=y
672# 678#
673# Multifunction device drivers 679# Multifunction device drivers
674# 680#
681# CONFIG_MFD_CORE is not set
675# CONFIG_MFD_SM501 is not set 682# CONFIG_MFD_SM501 is not set
676# CONFIG_HTC_PASIC3 is not set 683# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set
677 685
678# 686#
679# Multimedia devices 687# Multimedia devices
@@ -708,10 +716,6 @@ CONFIG_SSB_POSSIBLE=y
708# Console display driver support 716# Console display driver support
709# 717#
710CONFIG_DUMMY_CONSOLE=y 718CONFIG_DUMMY_CONSOLE=y
711
712#
713# Sound
714#
715# CONFIG_SOUND is not set 719# CONFIG_SOUND is not set
716CONFIG_HID_SUPPORT=y 720CONFIG_HID_SUPPORT=y
717CONFIG_HID=m 721CONFIG_HID=m
@@ -723,6 +727,7 @@ CONFIG_HIDRAW=y
723# CONFIG_NEW_LEDS is not set 727# CONFIG_NEW_LEDS is not set
724# CONFIG_ACCESSIBILITY is not set 728# CONFIG_ACCESSIBILITY is not set
725# CONFIG_RTC_CLASS is not set 729# CONFIG_RTC_CLASS is not set
730# CONFIG_DMADEVICES is not set
726# CONFIG_UIO is not set 731# CONFIG_UIO is not set
727 732
728# 733#
@@ -759,6 +764,7 @@ CONFIG_XFS_FS=m
759CONFIG_OCFS2_FS=m 764CONFIG_OCFS2_FS=m
760CONFIG_OCFS2_FS_O2CB=m 765CONFIG_OCFS2_FS_O2CB=m
761CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 766CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
767# CONFIG_OCFS2_FS_STATS is not set
762# CONFIG_OCFS2_DEBUG_MASKLOG is not set 768# CONFIG_OCFS2_DEBUG_MASKLOG is not set
763# CONFIG_OCFS2_DEBUG_FS is not set 769# CONFIG_OCFS2_DEBUG_FS is not set
764CONFIG_DNOTIFY=y 770CONFIG_DNOTIFY=y
@@ -818,6 +824,7 @@ CONFIG_HFSPLUS_FS=m
818CONFIG_CRAMFS=m 824CONFIG_CRAMFS=m
819# CONFIG_VXFS_FS is not set 825# CONFIG_VXFS_FS is not set
820CONFIG_MINIX_FS=y 826CONFIG_MINIX_FS=y
827# CONFIG_OMFS_FS is not set
821CONFIG_HPFS_FS=m 828CONFIG_HPFS_FS=m
822# CONFIG_QNX4FS_FS is not set 829# CONFIG_QNX4FS_FS is not set
823# CONFIG_ROMFS_FS is not set 830# CONFIG_ROMFS_FS is not set
@@ -830,18 +837,17 @@ CONFIG_NFS_FS=y
830CONFIG_NFS_V3=y 837CONFIG_NFS_V3=y
831# CONFIG_NFS_V3_ACL is not set 838# CONFIG_NFS_V3_ACL is not set
832CONFIG_NFS_V4=y 839CONFIG_NFS_V4=y
840CONFIG_ROOT_NFS=y
833CONFIG_NFSD=m 841CONFIG_NFSD=m
834CONFIG_NFSD_V3=y 842CONFIG_NFSD_V3=y
835# CONFIG_NFSD_V3_ACL is not set 843# CONFIG_NFSD_V3_ACL is not set
836# CONFIG_NFSD_V4 is not set 844# CONFIG_NFSD_V4 is not set
837CONFIG_ROOT_NFS=y
838CONFIG_LOCKD=y 845CONFIG_LOCKD=y
839CONFIG_LOCKD_V4=y 846CONFIG_LOCKD_V4=y
840CONFIG_EXPORTFS=m 847CONFIG_EXPORTFS=m
841CONFIG_NFS_COMMON=y 848CONFIG_NFS_COMMON=y
842CONFIG_SUNRPC=y 849CONFIG_SUNRPC=y
843CONFIG_SUNRPC_GSS=y 850CONFIG_SUNRPC_GSS=y
844CONFIG_SUNRPC_BIND34=y
845CONFIG_RPCSEC_GSS_KRB5=y 851CONFIG_RPCSEC_GSS_KRB5=y
846# CONFIG_RPCSEC_GSS_SPKM3 is not set 852# CONFIG_RPCSEC_GSS_SPKM3 is not set
847CONFIG_SMB_FS=m 853CONFIG_SMB_FS=m
@@ -850,7 +856,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
850# CONFIG_CIFS is not set 856# CONFIG_CIFS is not set
851# CONFIG_NCP_FS is not set 857# CONFIG_NCP_FS is not set
852CONFIG_CODA_FS=m 858CONFIG_CODA_FS=m
853# CONFIG_CODA_FS_OLD_API is not set
854# CONFIG_AFS_FS is not set 859# CONFIG_AFS_FS is not set
855 860
856# 861#
@@ -915,6 +920,8 @@ CONFIG_MAGIC_SYSRQ=y
915# CONFIG_HEADERS_CHECK is not set 920# CONFIG_HEADERS_CHECK is not set
916# CONFIG_DEBUG_KERNEL is not set 921# CONFIG_DEBUG_KERNEL is not set
917CONFIG_DEBUG_BUGVERBOSE=y 922CONFIG_DEBUG_BUGVERBOSE=y
923CONFIG_DEBUG_MEMORY_INIT=y
924CONFIG_SYSCTL_SYSCALL_CHECK=y
918# CONFIG_SAMPLES is not set 925# CONFIG_SAMPLES is not set
919 926
920# 927#
@@ -974,6 +981,10 @@ CONFIG_CRYPTO_CRC32C=m
974CONFIG_CRYPTO_MD4=m 981CONFIG_CRYPTO_MD4=m
975CONFIG_CRYPTO_MD5=y 982CONFIG_CRYPTO_MD5=y
976CONFIG_CRYPTO_MICHAEL_MIC=m 983CONFIG_CRYPTO_MICHAEL_MIC=m
984CONFIG_CRYPTO_RMD128=m
985CONFIG_CRYPTO_RMD160=m
986CONFIG_CRYPTO_RMD256=m
987CONFIG_CRYPTO_RMD320=m
977CONFIG_CRYPTO_SHA1=m 988CONFIG_CRYPTO_SHA1=m
978CONFIG_CRYPTO_SHA256=m 989CONFIG_CRYPTO_SHA256=m
979CONFIG_CRYPTO_SHA512=m 990CONFIG_CRYPTO_SHA512=m
@@ -1015,6 +1026,7 @@ CONFIG_BITREVERSE=m
1015# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1026# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1016CONFIG_CRC_CCITT=m 1027CONFIG_CRC_CCITT=m
1017CONFIG_CRC16=m 1028CONFIG_CRC16=m
1029CONFIG_CRC_T10DIF=y
1018CONFIG_CRC_ITU_T=m 1030CONFIG_CRC_ITU_T=m
1019CONFIG_CRC32=m 1031CONFIG_CRC32=m
1020# CONFIG_CRC7 is not set 1032# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/hp300_defconfig b/arch/m68k/configs/hp300_defconfig
index 6778041de262..3570fc89b089 100644
--- a/arch/m68k/configs/hp300_defconfig
+++ b/arch/m68k/configs/hp300_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:04 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -162,10 +168,6 @@ CONFIG_HEARTBEAT=y
162CONFIG_PROC_HARDWARE=y 168CONFIG_PROC_HARDWARE=y
163CONFIG_ZONE_DMA=y 169CONFIG_ZONE_DMA=y
164# CONFIG_ARCH_SUPPORTS_MSI is not set 170# CONFIG_ARCH_SUPPORTS_MSI is not set
165
166#
167# Networking
168#
169CONFIG_NET=y 171CONFIG_NET=y
170 172
171# 173#
@@ -179,6 +181,7 @@ CONFIG_XFRM=y
179# CONFIG_XFRM_SUB_POLICY is not set 181# CONFIG_XFRM_SUB_POLICY is not set
180CONFIG_XFRM_MIGRATE=y 182CONFIG_XFRM_MIGRATE=y
181# CONFIG_XFRM_STATISTICS is not set 183# CONFIG_XFRM_STATISTICS is not set
184CONFIG_XFRM_IPCOMP=m
182CONFIG_NET_KEY=y 185CONFIG_NET_KEY=y
183CONFIG_NET_KEY_MIGRATE=y 186CONFIG_NET_KEY_MIGRATE=y
184CONFIG_INET=y 187CONFIG_INET=y
@@ -412,6 +415,7 @@ CONFIG_NET_CLS_ROUTE=y
412# 415#
413# CONFIG_CFG80211 is not set 416# CONFIG_CFG80211 is not set
414CONFIG_WIRELESS_EXT=y 417CONFIG_WIRELESS_EXT=y
418# CONFIG_WIRELESS_EXT_SYSFS is not set
415# CONFIG_MAC80211 is not set 419# CONFIG_MAC80211 is not set
416CONFIG_IEEE80211=m 420CONFIG_IEEE80211=m
417# CONFIG_IEEE80211_DEBUG is not set 421# CONFIG_IEEE80211_DEBUG is not set
@@ -431,7 +435,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
431CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 435CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
432CONFIG_STANDALONE=y 436CONFIG_STANDALONE=y
433CONFIG_PREVENT_FIRMWARE_BUILD=y 437CONFIG_PREVENT_FIRMWARE_BUILD=y
434CONFIG_FW_LOADER=m 438CONFIG_FW_LOADER=y
439# CONFIG_FIRMWARE_IN_KERNEL is not set
440CONFIG_EXTRA_FIRMWARE=""
435# CONFIG_SYS_HYPERVISOR is not set 441# CONFIG_SYS_HYPERVISOR is not set
436CONFIG_CONNECTOR=m 442CONFIG_CONNECTOR=m
437# CONFIG_MTD is not set 443# CONFIG_MTD is not set
@@ -449,6 +455,7 @@ CONFIG_CDROM_PKTCDVD=m
449CONFIG_CDROM_PKTCDVD_BUFFERS=8 455CONFIG_CDROM_PKTCDVD_BUFFERS=8
450# CONFIG_CDROM_PKTCDVD_WCACHE is not set 456# CONFIG_CDROM_PKTCDVD_WCACHE is not set
451CONFIG_ATA_OVER_ETH=m 457CONFIG_ATA_OVER_ETH=m
458# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 459CONFIG_MISC_DEVICES=y
453# CONFIG_EEPROM_93CX6 is not set 460# CONFIG_EEPROM_93CX6 is not set
454# CONFIG_ENCLOSURE_SERVICES is not set 461# CONFIG_ENCLOSURE_SERVICES is not set
@@ -500,6 +507,7 @@ CONFIG_SCSI_SRP_TGT_ATTRS=y
500CONFIG_SCSI_LOWLEVEL=y 507CONFIG_SCSI_LOWLEVEL=y
501CONFIG_ISCSI_TCP=m 508CONFIG_ISCSI_TCP=m
502# CONFIG_SCSI_DEBUG is not set 509# CONFIG_SCSI_DEBUG is not set
510# CONFIG_SCSI_DH is not set
503CONFIG_MD=y 511CONFIG_MD=y
504CONFIG_BLK_DEV_MD=m 512CONFIG_BLK_DEV_MD=m
505CONFIG_MD_LINEAR=m 513CONFIG_MD_LINEAR=m
@@ -508,7 +516,7 @@ CONFIG_MD_RAID1=m
508# CONFIG_MD_RAID10 is not set 516# CONFIG_MD_RAID10 is not set
509CONFIG_MD_RAID456=m 517CONFIG_MD_RAID456=m
510CONFIG_MD_RAID5_RESHAPE=y 518CONFIG_MD_RAID5_RESHAPE=y
511CONFIG_MD_MULTIPATH=m 519# CONFIG_MD_MULTIPATH is not set
512# CONFIG_MD_FAULTY is not set 520# CONFIG_MD_FAULTY is not set
513CONFIG_BLK_DEV_DM=m 521CONFIG_BLK_DEV_DM=m
514# CONFIG_DM_DEBUG is not set 522# CONFIG_DM_DEBUG is not set
@@ -517,13 +525,9 @@ CONFIG_DM_SNAPSHOT=m
517CONFIG_DM_MIRROR=m 525CONFIG_DM_MIRROR=m
518CONFIG_DM_ZERO=m 526CONFIG_DM_ZERO=m
519CONFIG_DM_MULTIPATH=m 527CONFIG_DM_MULTIPATH=m
520CONFIG_DM_MULTIPATH_EMC=m
521CONFIG_DM_MULTIPATH_RDAC=m
522CONFIG_DM_MULTIPATH_HP=m
523# CONFIG_DM_DELAY is not set 528# CONFIG_DM_DELAY is not set
524CONFIG_DM_UEVENT=y 529CONFIG_DM_UEVENT=y
525CONFIG_NETDEVICES=y 530CONFIG_NETDEVICES=y
526# CONFIG_NETDEVICES_MULTIQUEUE is not set
527CONFIG_DUMMY=m 531CONFIG_DUMMY=m
528# CONFIG_BONDING is not set 532# CONFIG_BONDING is not set
529CONFIG_MACVLAN=m 533CONFIG_MACVLAN=m
@@ -636,6 +640,7 @@ CONFIG_SERIO_LIBPS2=m
636# Character devices 640# Character devices
637# 641#
638CONFIG_VT=y 642CONFIG_VT=y
643CONFIG_CONSOLE_TRANSLATIONS=y
639CONFIG_VT_CONSOLE=y 644CONFIG_VT_CONSOLE=y
640CONFIG_HW_CONSOLE=y 645CONFIG_HW_CONSOLE=y
641CONFIG_VT_HW_CONSOLE_BINDING=y 646CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -666,6 +671,7 @@ CONFIG_GEN_RTC_X=y
666# CONFIG_POWER_SUPPLY is not set 671# CONFIG_POWER_SUPPLY is not set
667# CONFIG_HWMON is not set 672# CONFIG_HWMON is not set
668# CONFIG_THERMAL is not set 673# CONFIG_THERMAL is not set
674# CONFIG_THERMAL_HWMON is not set
669# CONFIG_WATCHDOG is not set 675# CONFIG_WATCHDOG is not set
670 676
671# 677#
@@ -677,8 +683,10 @@ CONFIG_SSB_POSSIBLE=y
677# 683#
678# Multifunction device drivers 684# Multifunction device drivers
679# 685#
686# CONFIG_MFD_CORE is not set
680# CONFIG_MFD_SM501 is not set 687# CONFIG_MFD_SM501 is not set
681# CONFIG_HTC_PASIC3 is not set 688# CONFIG_HTC_PASIC3 is not set
689# CONFIG_MFD_TMIO is not set
682 690
683# 691#
684# Multimedia devices 692# Multimedia devices
@@ -747,10 +755,6 @@ CONFIG_LOGO=y
747# CONFIG_LOGO_LINUX_MONO is not set 755# CONFIG_LOGO_LINUX_MONO is not set
748# CONFIG_LOGO_LINUX_VGA16 is not set 756# CONFIG_LOGO_LINUX_VGA16 is not set
749CONFIG_LOGO_LINUX_CLUT224=y 757CONFIG_LOGO_LINUX_CLUT224=y
750
751#
752# Sound
753#
754# CONFIG_SOUND is not set 758# CONFIG_SOUND is not set
755CONFIG_HID_SUPPORT=y 759CONFIG_HID_SUPPORT=y
756CONFIG_HID=m 760CONFIG_HID=m
@@ -762,6 +766,7 @@ CONFIG_HIDRAW=y
762# CONFIG_NEW_LEDS is not set 766# CONFIG_NEW_LEDS is not set
763# CONFIG_ACCESSIBILITY is not set 767# CONFIG_ACCESSIBILITY is not set
764# CONFIG_RTC_CLASS is not set 768# CONFIG_RTC_CLASS is not set
769# CONFIG_DMADEVICES is not set
765# CONFIG_UIO is not set 770# CONFIG_UIO is not set
766 771
767# 772#
@@ -796,6 +801,7 @@ CONFIG_XFS_FS=m
796CONFIG_OCFS2_FS=m 801CONFIG_OCFS2_FS=m
797CONFIG_OCFS2_FS_O2CB=m 802CONFIG_OCFS2_FS_O2CB=m
798CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 803CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
804# CONFIG_OCFS2_FS_STATS is not set
799# CONFIG_OCFS2_DEBUG_MASKLOG is not set 805# CONFIG_OCFS2_DEBUG_MASKLOG is not set
800# CONFIG_OCFS2_DEBUG_FS is not set 806# CONFIG_OCFS2_DEBUG_FS is not set
801CONFIG_DNOTIFY=y 807CONFIG_DNOTIFY=y
@@ -855,6 +861,7 @@ CONFIG_HFSPLUS_FS=m
855CONFIG_CRAMFS=m 861CONFIG_CRAMFS=m
856# CONFIG_VXFS_FS is not set 862# CONFIG_VXFS_FS is not set
857CONFIG_MINIX_FS=y 863CONFIG_MINIX_FS=y
864# CONFIG_OMFS_FS is not set
858CONFIG_HPFS_FS=m 865CONFIG_HPFS_FS=m
859# CONFIG_QNX4FS_FS is not set 866# CONFIG_QNX4FS_FS is not set
860# CONFIG_ROMFS_FS is not set 867# CONFIG_ROMFS_FS is not set
@@ -867,18 +874,17 @@ CONFIG_NFS_FS=y
867CONFIG_NFS_V3=y 874CONFIG_NFS_V3=y
868# CONFIG_NFS_V3_ACL is not set 875# CONFIG_NFS_V3_ACL is not set
869CONFIG_NFS_V4=y 876CONFIG_NFS_V4=y
877CONFIG_ROOT_NFS=y
870CONFIG_NFSD=m 878CONFIG_NFSD=m
871CONFIG_NFSD_V3=y 879CONFIG_NFSD_V3=y
872# CONFIG_NFSD_V3_ACL is not set 880# CONFIG_NFSD_V3_ACL is not set
873# CONFIG_NFSD_V4 is not set 881# CONFIG_NFSD_V4 is not set
874CONFIG_ROOT_NFS=y
875CONFIG_LOCKD=y 882CONFIG_LOCKD=y
876CONFIG_LOCKD_V4=y 883CONFIG_LOCKD_V4=y
877CONFIG_EXPORTFS=m 884CONFIG_EXPORTFS=m
878CONFIG_NFS_COMMON=y 885CONFIG_NFS_COMMON=y
879CONFIG_SUNRPC=y 886CONFIG_SUNRPC=y
880CONFIG_SUNRPC_GSS=y 887CONFIG_SUNRPC_GSS=y
881CONFIG_SUNRPC_BIND34=y
882CONFIG_RPCSEC_GSS_KRB5=y 888CONFIG_RPCSEC_GSS_KRB5=y
883# CONFIG_RPCSEC_GSS_SPKM3 is not set 889# CONFIG_RPCSEC_GSS_SPKM3 is not set
884CONFIG_SMB_FS=m 890CONFIG_SMB_FS=m
@@ -887,7 +893,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
887# CONFIG_CIFS is not set 893# CONFIG_CIFS is not set
888# CONFIG_NCP_FS is not set 894# CONFIG_NCP_FS is not set
889CONFIG_CODA_FS=m 895CONFIG_CODA_FS=m
890# CONFIG_CODA_FS_OLD_API is not set
891# CONFIG_AFS_FS is not set 896# CONFIG_AFS_FS is not set
892 897
893# 898#
@@ -951,6 +956,8 @@ CONFIG_MAGIC_SYSRQ=y
951# CONFIG_HEADERS_CHECK is not set 956# CONFIG_HEADERS_CHECK is not set
952# CONFIG_DEBUG_KERNEL is not set 957# CONFIG_DEBUG_KERNEL is not set
953CONFIG_DEBUG_BUGVERBOSE=y 958CONFIG_DEBUG_BUGVERBOSE=y
959CONFIG_DEBUG_MEMORY_INIT=y
960CONFIG_SYSCTL_SYSCALL_CHECK=y
954# CONFIG_SAMPLES is not set 961# CONFIG_SAMPLES is not set
955 962
956# 963#
@@ -1010,6 +1017,10 @@ CONFIG_CRYPTO_CRC32C=m
1010CONFIG_CRYPTO_MD4=m 1017CONFIG_CRYPTO_MD4=m
1011CONFIG_CRYPTO_MD5=y 1018CONFIG_CRYPTO_MD5=y
1012CONFIG_CRYPTO_MICHAEL_MIC=m 1019CONFIG_CRYPTO_MICHAEL_MIC=m
1020CONFIG_CRYPTO_RMD128=m
1021CONFIG_CRYPTO_RMD160=m
1022CONFIG_CRYPTO_RMD256=m
1023CONFIG_CRYPTO_RMD320=m
1013CONFIG_CRYPTO_SHA1=m 1024CONFIG_CRYPTO_SHA1=m
1014CONFIG_CRYPTO_SHA256=m 1025CONFIG_CRYPTO_SHA256=m
1015CONFIG_CRYPTO_SHA512=m 1026CONFIG_CRYPTO_SHA512=m
@@ -1051,6 +1062,7 @@ CONFIG_BITREVERSE=y
1051# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1062# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1052CONFIG_CRC_CCITT=m 1063CONFIG_CRC_CCITT=m
1053CONFIG_CRC16=m 1064CONFIG_CRC16=m
1065CONFIG_CRC_T10DIF=y
1054CONFIG_CRC_ITU_T=m 1066CONFIG_CRC_ITU_T=m
1055CONFIG_CRC32=y 1067CONFIG_CRC32=y
1056# CONFIG_CRC7 is not set 1068# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/mac_defconfig b/arch/m68k/configs/mac_defconfig
index 7cd375740348..db6e8822594a 100644
--- a/arch/m68k/configs/mac_defconfig
+++ b/arch/m68k/configs/mac_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:06 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -460,6 +467,7 @@ CONFIG_BLK_DEV_IDE=y
460# 467#
461# Please see Documentation/ide/ide.txt for help/info on IDE drives 468# Please see Documentation/ide/ide.txt for help/info on IDE drives
462# 469#
470CONFIG_IDE_ATAPI=y
463# CONFIG_BLK_DEV_IDE_SATA is not set 471# CONFIG_BLK_DEV_IDE_SATA is not set
464CONFIG_BLK_DEV_IDEDISK=y 472CONFIG_BLK_DEV_IDEDISK=y
465# CONFIG_IDEDISK_MULTI_MODE is not set 473# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,8 +485,6 @@ CONFIG_IDE_PROC_FS=y
477# CONFIG_BLK_DEV_PLATFORM is not set 485# CONFIG_BLK_DEV_PLATFORM is not set
478CONFIG_BLK_DEV_MAC_IDE=y 486CONFIG_BLK_DEV_MAC_IDE=y
479# CONFIG_BLK_DEV_IDEDMA is not set 487# CONFIG_BLK_DEV_IDEDMA is not set
480# CONFIG_BLK_DEV_HD_ONLY is not set
481# CONFIG_BLK_DEV_HD is not set
482 488
483# 489#
484# SCSI device support 490# SCSI device support
@@ -527,6 +533,7 @@ CONFIG_ISCSI_TCP=m
527# CONFIG_SCSI_DEBUG is not set 533# CONFIG_SCSI_DEBUG is not set
528CONFIG_MAC_SCSI=y 534CONFIG_MAC_SCSI=y
529CONFIG_SCSI_MAC_ESP=y 535CONFIG_SCSI_MAC_ESP=y
536# CONFIG_SCSI_DH is not set
530CONFIG_MD=y 537CONFIG_MD=y
531CONFIG_BLK_DEV_MD=m 538CONFIG_BLK_DEV_MD=m
532CONFIG_MD_LINEAR=m 539CONFIG_MD_LINEAR=m
@@ -535,7 +542,7 @@ CONFIG_MD_RAID1=m
535# CONFIG_MD_RAID10 is not set 542# CONFIG_MD_RAID10 is not set
536CONFIG_MD_RAID456=m 543CONFIG_MD_RAID456=m
537CONFIG_MD_RAID5_RESHAPE=y 544CONFIG_MD_RAID5_RESHAPE=y
538CONFIG_MD_MULTIPATH=m 545# CONFIG_MD_MULTIPATH is not set
539# CONFIG_MD_FAULTY is not set 546# CONFIG_MD_FAULTY is not set
540CONFIG_BLK_DEV_DM=m 547CONFIG_BLK_DEV_DM=m
541# CONFIG_DM_DEBUG is not set 548# CONFIG_DM_DEBUG is not set
@@ -544,9 +551,6 @@ CONFIG_DM_SNAPSHOT=m
544CONFIG_DM_MIRROR=m 551CONFIG_DM_MIRROR=m
545CONFIG_DM_ZERO=m 552CONFIG_DM_ZERO=m
546CONFIG_DM_MULTIPATH=m 553CONFIG_DM_MULTIPATH=m
547CONFIG_DM_MULTIPATH_EMC=m
548CONFIG_DM_MULTIPATH_RDAC=m
549CONFIG_DM_MULTIPATH_HP=m
550# CONFIG_DM_DELAY is not set 554# CONFIG_DM_DELAY is not set
551CONFIG_DM_UEVENT=y 555CONFIG_DM_UEVENT=y
552CONFIG_MACINTOSH_DRIVERS=y 556CONFIG_MACINTOSH_DRIVERS=y
@@ -559,7 +563,6 @@ CONFIG_ADB_CUDA=y
559CONFIG_INPUT_ADBHID=y 563CONFIG_INPUT_ADBHID=y
560CONFIG_MAC_EMUMOUSEBTN=y 564CONFIG_MAC_EMUMOUSEBTN=y
561CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
562# CONFIG_NETDEVICES_MULTIQUEUE is not set
563CONFIG_DUMMY=m 566CONFIG_DUMMY=m
564# CONFIG_BONDING is not set 567# CONFIG_BONDING is not set
565CONFIG_MACVLAN=m 568CONFIG_MACVLAN=m
@@ -670,6 +673,7 @@ CONFIG_SERIO_LIBPS2=m
670# Character devices 673# Character devices
671# 674#
672CONFIG_VT=y 675CONFIG_VT=y
676CONFIG_CONSOLE_TRANSLATIONS=y
673CONFIG_VT_CONSOLE=y 677CONFIG_VT_CONSOLE=y
674CONFIG_HW_CONSOLE=y 678CONFIG_HW_CONSOLE=y
675CONFIG_VT_HW_CONSOLE_BINDING=y 679CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -700,6 +704,7 @@ CONFIG_GEN_RTC_X=y
700# CONFIG_POWER_SUPPLY is not set 704# CONFIG_POWER_SUPPLY is not set
701# CONFIG_HWMON is not set 705# CONFIG_HWMON is not set
702# CONFIG_THERMAL is not set 706# CONFIG_THERMAL is not set
707# CONFIG_THERMAL_HWMON is not set
703# CONFIG_WATCHDOG is not set 708# CONFIG_WATCHDOG is not set
704 709
705# 710#
@@ -711,8 +716,10 @@ CONFIG_SSB_POSSIBLE=y
711# 716#
712# Multifunction device drivers 717# Multifunction device drivers
713# 718#
719# CONFIG_MFD_CORE is not set
714# CONFIG_MFD_SM501 is not set 720# CONFIG_MFD_SM501 is not set
715# CONFIG_HTC_PASIC3 is not set 721# CONFIG_HTC_PASIC3 is not set
722# CONFIG_MFD_TMIO is not set
716 723
717# 724#
718# Multimedia devices 725# Multimedia devices
@@ -784,10 +791,6 @@ CONFIG_LOGO_LINUX_MONO=y
784CONFIG_LOGO_LINUX_VGA16=y 791CONFIG_LOGO_LINUX_VGA16=y
785CONFIG_LOGO_LINUX_CLUT224=y 792CONFIG_LOGO_LINUX_CLUT224=y
786CONFIG_LOGO_MAC_CLUT224=y 793CONFIG_LOGO_MAC_CLUT224=y
787
788#
789# Sound
790#
791# CONFIG_SOUND is not set 794# CONFIG_SOUND is not set
792CONFIG_HID_SUPPORT=y 795CONFIG_HID_SUPPORT=y
793CONFIG_HID=m 796CONFIG_HID=m
@@ -799,6 +802,7 @@ CONFIG_HIDRAW=y
799# CONFIG_NEW_LEDS is not set 802# CONFIG_NEW_LEDS is not set
800# CONFIG_ACCESSIBILITY is not set 803# CONFIG_ACCESSIBILITY is not set
801# CONFIG_RTC_CLASS is not set 804# CONFIG_RTC_CLASS is not set
805# CONFIG_DMADEVICES is not set
802# CONFIG_UIO is not set 806# CONFIG_UIO is not set
803 807
804# 808#
@@ -836,6 +840,7 @@ CONFIG_XFS_FS=m
836CONFIG_OCFS2_FS=m 840CONFIG_OCFS2_FS=m
837CONFIG_OCFS2_FS_O2CB=m 841CONFIG_OCFS2_FS_O2CB=m
838CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 842CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
843# CONFIG_OCFS2_FS_STATS is not set
839# CONFIG_OCFS2_DEBUG_MASKLOG is not set 844# CONFIG_OCFS2_DEBUG_MASKLOG is not set
840# CONFIG_OCFS2_DEBUG_FS is not set 845# CONFIG_OCFS2_DEBUG_FS is not set
841CONFIG_DNOTIFY=y 846CONFIG_DNOTIFY=y
@@ -895,6 +900,7 @@ CONFIG_HFSPLUS_FS=y
895CONFIG_CRAMFS=m 900CONFIG_CRAMFS=m
896# CONFIG_VXFS_FS is not set 901# CONFIG_VXFS_FS is not set
897CONFIG_MINIX_FS=y 902CONFIG_MINIX_FS=y
903# CONFIG_OMFS_FS is not set
898CONFIG_HPFS_FS=m 904CONFIG_HPFS_FS=m
899# CONFIG_QNX4FS_FS is not set 905# CONFIG_QNX4FS_FS is not set
900# CONFIG_ROMFS_FS is not set 906# CONFIG_ROMFS_FS is not set
@@ -917,7 +923,6 @@ CONFIG_EXPORTFS=m
917CONFIG_NFS_COMMON=y 923CONFIG_NFS_COMMON=y
918CONFIG_SUNRPC=m 924CONFIG_SUNRPC=m
919CONFIG_SUNRPC_GSS=m 925CONFIG_SUNRPC_GSS=m
920CONFIG_SUNRPC_BIND34=y
921CONFIG_RPCSEC_GSS_KRB5=m 926CONFIG_RPCSEC_GSS_KRB5=m
922# CONFIG_RPCSEC_GSS_SPKM3 is not set 927# CONFIG_RPCSEC_GSS_SPKM3 is not set
923CONFIG_SMB_FS=m 928CONFIG_SMB_FS=m
@@ -926,7 +931,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
926# CONFIG_CIFS is not set 931# CONFIG_CIFS is not set
927# CONFIG_NCP_FS is not set 932# CONFIG_NCP_FS is not set
928CONFIG_CODA_FS=m 933CONFIG_CODA_FS=m
929# CONFIG_CODA_FS_OLD_API is not set
930# CONFIG_AFS_FS is not set 934# CONFIG_AFS_FS is not set
931 935
932# 936#
@@ -991,6 +995,8 @@ CONFIG_MAGIC_SYSRQ=y
991# CONFIG_HEADERS_CHECK is not set 995# CONFIG_HEADERS_CHECK is not set
992# CONFIG_DEBUG_KERNEL is not set 996# CONFIG_DEBUG_KERNEL is not set
993CONFIG_DEBUG_BUGVERBOSE=y 997CONFIG_DEBUG_BUGVERBOSE=y
998CONFIG_DEBUG_MEMORY_INIT=y
999CONFIG_SYSCTL_SYSCALL_CHECK=y
994# CONFIG_SAMPLES is not set 1000# CONFIG_SAMPLES is not set
995 1001
996# 1002#
@@ -1050,6 +1056,10 @@ CONFIG_CRYPTO_CRC32C=m
1050CONFIG_CRYPTO_MD4=m 1056CONFIG_CRYPTO_MD4=m
1051CONFIG_CRYPTO_MD5=m 1057CONFIG_CRYPTO_MD5=m
1052CONFIG_CRYPTO_MICHAEL_MIC=m 1058CONFIG_CRYPTO_MICHAEL_MIC=m
1059CONFIG_CRYPTO_RMD128=m
1060CONFIG_CRYPTO_RMD160=m
1061CONFIG_CRYPTO_RMD256=m
1062CONFIG_CRYPTO_RMD320=m
1053CONFIG_CRYPTO_SHA1=m 1063CONFIG_CRYPTO_SHA1=m
1054CONFIG_CRYPTO_SHA256=m 1064CONFIG_CRYPTO_SHA256=m
1055CONFIG_CRYPTO_SHA512=m 1065CONFIG_CRYPTO_SHA512=m
@@ -1091,6 +1101,7 @@ CONFIG_BITREVERSE=y
1091# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1101# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1092CONFIG_CRC_CCITT=m 1102CONFIG_CRC_CCITT=m
1093CONFIG_CRC16=m 1103CONFIG_CRC16=m
1104CONFIG_CRC_T10DIF=y
1094CONFIG_CRC_ITU_T=m 1105CONFIG_CRC_ITU_T=m
1095CONFIG_CRC32=y 1106CONFIG_CRC32=y
1096# CONFIG_CRC7 is not set 1107# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/multi_defconfig b/arch/m68k/configs/multi_defconfig
index 0747fa3984df..1a806102b999 100644
--- a/arch/m68k/configs/multi_defconfig
+++ b/arch/m68k/configs/multi_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:07 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -173,10 +179,6 @@ CONFIG_GENERIC_ISA_DMA=y
173CONFIG_ZONE_DMA=y 179CONFIG_ZONE_DMA=y
174# CONFIG_ARCH_SUPPORTS_MSI is not set 180# CONFIG_ARCH_SUPPORTS_MSI is not set
175CONFIG_ZORRO_NAMES=y 181CONFIG_ZORRO_NAMES=y
176
177#
178# Networking
179#
180CONFIG_NET=y 182CONFIG_NET=y
181 183
182# 184#
@@ -190,6 +192,7 @@ CONFIG_XFRM=y
190# CONFIG_XFRM_SUB_POLICY is not set 192# CONFIG_XFRM_SUB_POLICY is not set
191CONFIG_XFRM_MIGRATE=y 193CONFIG_XFRM_MIGRATE=y
192# CONFIG_XFRM_STATISTICS is not set 194# CONFIG_XFRM_STATISTICS is not set
195CONFIG_XFRM_IPCOMP=m
193CONFIG_NET_KEY=y 196CONFIG_NET_KEY=y
194CONFIG_NET_KEY_MIGRATE=y 197CONFIG_NET_KEY_MIGRATE=y
195CONFIG_INET=y 198CONFIG_INET=y
@@ -427,6 +430,7 @@ CONFIG_NET_CLS_ROUTE=y
427# 430#
428# CONFIG_CFG80211 is not set 431# CONFIG_CFG80211 is not set
429CONFIG_WIRELESS_EXT=y 432CONFIG_WIRELESS_EXT=y
433# CONFIG_WIRELESS_EXT_SYSFS is not set
430# CONFIG_MAC80211 is not set 434# CONFIG_MAC80211 is not set
431CONFIG_IEEE80211=m 435CONFIG_IEEE80211=m
432# CONFIG_IEEE80211_DEBUG is not set 436# CONFIG_IEEE80211_DEBUG is not set
@@ -446,7 +450,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
446CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 450CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
447CONFIG_STANDALONE=y 451CONFIG_STANDALONE=y
448CONFIG_PREVENT_FIRMWARE_BUILD=y 452CONFIG_PREVENT_FIRMWARE_BUILD=y
449CONFIG_FW_LOADER=m 453CONFIG_FW_LOADER=y
454# CONFIG_FIRMWARE_IN_KERNEL is not set
455CONFIG_EXTRA_FIRMWARE=""
450# CONFIG_SYS_HYPERVISOR is not set 456# CONFIG_SYS_HYPERVISOR is not set
451CONFIG_CONNECTOR=m 457CONFIG_CONNECTOR=m
452# CONFIG_MTD is not set 458# CONFIG_MTD is not set
@@ -476,6 +482,7 @@ CONFIG_CDROM_PKTCDVD=m
476CONFIG_CDROM_PKTCDVD_BUFFERS=8 482CONFIG_CDROM_PKTCDVD_BUFFERS=8
477# CONFIG_CDROM_PKTCDVD_WCACHE is not set 483# CONFIG_CDROM_PKTCDVD_WCACHE is not set
478CONFIG_ATA_OVER_ETH=m 484CONFIG_ATA_OVER_ETH=m
485# CONFIG_BLK_DEV_HD is not set
479CONFIG_MISC_DEVICES=y 486CONFIG_MISC_DEVICES=y
480# CONFIG_EEPROM_93CX6 is not set 487# CONFIG_EEPROM_93CX6 is not set
481# CONFIG_ENCLOSURE_SERVICES is not set 488# CONFIG_ENCLOSURE_SERVICES is not set
@@ -486,6 +493,7 @@ CONFIG_BLK_DEV_IDE=y
486# 493#
487# Please see Documentation/ide/ide.txt for help/info on IDE drives 494# Please see Documentation/ide/ide.txt for help/info on IDE drives
488# 495#
496CONFIG_IDE_ATAPI=y
489# CONFIG_BLK_DEV_IDE_SATA is not set 497# CONFIG_BLK_DEV_IDE_SATA is not set
490CONFIG_BLK_DEV_IDEDISK=y 498CONFIG_BLK_DEV_IDEDISK=y
491# CONFIG_IDEDISK_MULTI_MODE is not set 499# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -508,8 +516,6 @@ CONFIG_BLK_DEV_FALCON_IDE=y
508CONFIG_BLK_DEV_MAC_IDE=y 516CONFIG_BLK_DEV_MAC_IDE=y
509CONFIG_BLK_DEV_Q40IDE=y 517CONFIG_BLK_DEV_Q40IDE=y
510# CONFIG_BLK_DEV_IDEDMA is not set 518# CONFIG_BLK_DEV_IDEDMA is not set
511# CONFIG_BLK_DEV_HD_ONLY is not set
512# CONFIG_BLK_DEV_HD is not set
513 519
514# 520#
515# SCSI device support 521# SCSI device support
@@ -584,6 +590,7 @@ CONFIG_MVME147_SCSI=y
584CONFIG_MVME16x_SCSI=y 590CONFIG_MVME16x_SCSI=y
585CONFIG_BVME6000_SCSI=y 591CONFIG_BVME6000_SCSI=y
586CONFIG_SUN3X_ESP=y 592CONFIG_SUN3X_ESP=y
593# CONFIG_SCSI_DH is not set
587CONFIG_MD=y 594CONFIG_MD=y
588CONFIG_BLK_DEV_MD=m 595CONFIG_BLK_DEV_MD=m
589CONFIG_MD_LINEAR=m 596CONFIG_MD_LINEAR=m
@@ -592,7 +599,7 @@ CONFIG_MD_RAID1=m
592# CONFIG_MD_RAID10 is not set 599# CONFIG_MD_RAID10 is not set
593CONFIG_MD_RAID456=m 600CONFIG_MD_RAID456=m
594CONFIG_MD_RAID5_RESHAPE=y 601CONFIG_MD_RAID5_RESHAPE=y
595CONFIG_MD_MULTIPATH=m 602# CONFIG_MD_MULTIPATH is not set
596# CONFIG_MD_FAULTY is not set 603# CONFIG_MD_FAULTY is not set
597CONFIG_BLK_DEV_DM=m 604CONFIG_BLK_DEV_DM=m
598# CONFIG_DM_DEBUG is not set 605# CONFIG_DM_DEBUG is not set
@@ -601,9 +608,6 @@ CONFIG_DM_SNAPSHOT=m
601CONFIG_DM_MIRROR=m 608CONFIG_DM_MIRROR=m
602CONFIG_DM_ZERO=m 609CONFIG_DM_ZERO=m
603CONFIG_DM_MULTIPATH=m 610CONFIG_DM_MULTIPATH=m
604CONFIG_DM_MULTIPATH_EMC=m
605CONFIG_DM_MULTIPATH_RDAC=m
606CONFIG_DM_MULTIPATH_HP=m
607# CONFIG_DM_DELAY is not set 611# CONFIG_DM_DELAY is not set
608CONFIG_DM_UEVENT=y 612CONFIG_DM_UEVENT=y
609CONFIG_MACINTOSH_DRIVERS=y 613CONFIG_MACINTOSH_DRIVERS=y
@@ -616,7 +620,6 @@ CONFIG_ADB_CUDA=y
616CONFIG_INPUT_ADBHID=y 620CONFIG_INPUT_ADBHID=y
617CONFIG_MAC_EMUMOUSEBTN=y 621CONFIG_MAC_EMUMOUSEBTN=y
618CONFIG_NETDEVICES=y 622CONFIG_NETDEVICES=y
619# CONFIG_NETDEVICES_MULTIQUEUE is not set
620CONFIG_DUMMY=m 623CONFIG_DUMMY=m
621# CONFIG_BONDING is not set 624# CONFIG_BONDING is not set
622CONFIG_MACVLAN=m 625CONFIG_MACVLAN=m
@@ -632,7 +635,6 @@ CONFIG_A2065=m
632CONFIG_HYDRA=m 635CONFIG_HYDRA=m
633CONFIG_ZORRO8390=m 636CONFIG_ZORRO8390=m
634CONFIG_APNE=m 637CONFIG_APNE=m
635CONFIG_APOLLO_ELPLUS=y
636CONFIG_MAC8390=y 638CONFIG_MAC8390=y
637CONFIG_MAC89x0=m 639CONFIG_MAC89x0=m
638CONFIG_MACSONIC=m 640CONFIG_MACSONIC=m
@@ -791,6 +793,7 @@ CONFIG_SERIO_LIBPS2=y
791# Character devices 793# Character devices
792# 794#
793CONFIG_VT=y 795CONFIG_VT=y
796CONFIG_CONSOLE_TRANSLATIONS=y
794CONFIG_VT_CONSOLE=y 797CONFIG_VT_CONSOLE=y
795CONFIG_HW_CONSOLE=y 798CONFIG_HW_CONSOLE=y
796CONFIG_VT_HW_CONSOLE_BINDING=y 799CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -827,6 +830,7 @@ CONFIG_GEN_RTC_X=y
827# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
828# CONFIG_HWMON is not set 831# CONFIG_HWMON is not set
829# CONFIG_THERMAL is not set 832# CONFIG_THERMAL is not set
833# CONFIG_THERMAL_HWMON is not set
830# CONFIG_WATCHDOG is not set 834# CONFIG_WATCHDOG is not set
831 835
832# 836#
@@ -838,8 +842,10 @@ CONFIG_SSB_POSSIBLE=y
838# 842#
839# Multifunction device drivers 843# Multifunction device drivers
840# 844#
845# CONFIG_MFD_CORE is not set
841# CONFIG_MFD_SM501 is not set 846# CONFIG_MFD_SM501 is not set
842# CONFIG_HTC_PASIC3 is not set 847# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set
843 849
844# 850#
845# Multimedia devices 851# Multimedia devices
@@ -923,10 +929,6 @@ CONFIG_LOGO_LINUX_MONO=y
923CONFIG_LOGO_LINUX_VGA16=y 929CONFIG_LOGO_LINUX_VGA16=y
924CONFIG_LOGO_LINUX_CLUT224=y 930CONFIG_LOGO_LINUX_CLUT224=y
925CONFIG_LOGO_MAC_CLUT224=y 931CONFIG_LOGO_MAC_CLUT224=y
926
927#
928# Sound
929#
930CONFIG_SOUND=m 932CONFIG_SOUND=m
931CONFIG_DMASOUND_ATARI=m 933CONFIG_DMASOUND_ATARI=m
932CONFIG_DMASOUND_PAULA=m 934CONFIG_DMASOUND_PAULA=m
@@ -942,6 +944,7 @@ CONFIG_HIDRAW=y
942# CONFIG_NEW_LEDS is not set 944# CONFIG_NEW_LEDS is not set
943# CONFIG_ACCESSIBILITY is not set 945# CONFIG_ACCESSIBILITY is not set
944# CONFIG_RTC_CLASS is not set 946# CONFIG_RTC_CLASS is not set
947# CONFIG_DMADEVICES is not set
945# CONFIG_AUXDISPLAY is not set 948# CONFIG_AUXDISPLAY is not set
946# CONFIG_UIO is not set 949# CONFIG_UIO is not set
947 950
@@ -949,8 +952,6 @@ CONFIG_HIDRAW=y
949# Character devices 952# Character devices
950# 953#
951CONFIG_ATARI_MFPSER=m 954CONFIG_ATARI_MFPSER=m
952CONFIG_ATARI_SCC=y
953CONFIG_ATARI_SCC_DMA=y
954CONFIG_ATARI_MIDI=m 955CONFIG_ATARI_MIDI=m
955CONFIG_ATARI_DSP56K=m 956CONFIG_ATARI_DSP56K=m
956CONFIG_AMIGA_BUILTIN_SERIAL=y 957CONFIG_AMIGA_BUILTIN_SERIAL=y
@@ -972,8 +973,10 @@ CONFIG_EXT2_FS=y
972# CONFIG_EXT2_FS_XIP is not set 973# CONFIG_EXT2_FS_XIP is not set
973CONFIG_EXT3_FS=y 974CONFIG_EXT3_FS=y
974# CONFIG_EXT3_FS_XATTR is not set 975# CONFIG_EXT3_FS_XATTR is not set
975# CONFIG_EXT4DEV_FS is not set 976CONFIG_EXT4DEV_FS=y
977# CONFIG_EXT4DEV_FS_XATTR is not set
976CONFIG_JBD=y 978CONFIG_JBD=y
979CONFIG_JBD2=y
977CONFIG_REISERFS_FS=m 980CONFIG_REISERFS_FS=m
978# CONFIG_REISERFS_CHECK is not set 981# CONFIG_REISERFS_CHECK is not set
979# CONFIG_REISERFS_PROC_INFO is not set 982# CONFIG_REISERFS_PROC_INFO is not set
@@ -992,6 +995,7 @@ CONFIG_XFS_FS=m
992CONFIG_OCFS2_FS=m 995CONFIG_OCFS2_FS=m
993CONFIG_OCFS2_FS_O2CB=m 996CONFIG_OCFS2_FS_O2CB=m
994CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 997CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
998# CONFIG_OCFS2_FS_STATS is not set
995# CONFIG_OCFS2_DEBUG_MASKLOG is not set 999# CONFIG_OCFS2_DEBUG_MASKLOG is not set
996# CONFIG_OCFS2_DEBUG_FS is not set 1000# CONFIG_OCFS2_DEBUG_FS is not set
997CONFIG_DNOTIFY=y 1001CONFIG_DNOTIFY=y
@@ -1051,6 +1055,7 @@ CONFIG_HFSPLUS_FS=y
1051CONFIG_CRAMFS=m 1055CONFIG_CRAMFS=m
1052# CONFIG_VXFS_FS is not set 1056# CONFIG_VXFS_FS is not set
1053CONFIG_MINIX_FS=y 1057CONFIG_MINIX_FS=y
1058# CONFIG_OMFS_FS is not set
1054CONFIG_HPFS_FS=m 1059CONFIG_HPFS_FS=m
1055# CONFIG_QNX4FS_FS is not set 1060# CONFIG_QNX4FS_FS is not set
1056# CONFIG_ROMFS_FS is not set 1061# CONFIG_ROMFS_FS is not set
@@ -1063,18 +1068,17 @@ CONFIG_NFS_FS=y
1063CONFIG_NFS_V3=y 1068CONFIG_NFS_V3=y
1064# CONFIG_NFS_V3_ACL is not set 1069# CONFIG_NFS_V3_ACL is not set
1065CONFIG_NFS_V4=y 1070CONFIG_NFS_V4=y
1071CONFIG_ROOT_NFS=y
1066CONFIG_NFSD=m 1072CONFIG_NFSD=m
1067CONFIG_NFSD_V3=y 1073CONFIG_NFSD_V3=y
1068# CONFIG_NFSD_V3_ACL is not set 1074# CONFIG_NFSD_V3_ACL is not set
1069# CONFIG_NFSD_V4 is not set 1075# CONFIG_NFSD_V4 is not set
1070CONFIG_ROOT_NFS=y
1071CONFIG_LOCKD=y 1076CONFIG_LOCKD=y
1072CONFIG_LOCKD_V4=y 1077CONFIG_LOCKD_V4=y
1073CONFIG_EXPORTFS=m 1078CONFIG_EXPORTFS=m
1074CONFIG_NFS_COMMON=y 1079CONFIG_NFS_COMMON=y
1075CONFIG_SUNRPC=y 1080CONFIG_SUNRPC=y
1076CONFIG_SUNRPC_GSS=y 1081CONFIG_SUNRPC_GSS=y
1077CONFIG_SUNRPC_BIND34=y
1078CONFIG_RPCSEC_GSS_KRB5=y 1082CONFIG_RPCSEC_GSS_KRB5=y
1079# CONFIG_RPCSEC_GSS_SPKM3 is not set 1083# CONFIG_RPCSEC_GSS_SPKM3 is not set
1080CONFIG_SMB_FS=m 1084CONFIG_SMB_FS=m
@@ -1083,7 +1087,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
1083# CONFIG_CIFS is not set 1087# CONFIG_CIFS is not set
1084# CONFIG_NCP_FS is not set 1088# CONFIG_NCP_FS is not set
1085CONFIG_CODA_FS=m 1089CONFIG_CODA_FS=m
1086# CONFIG_CODA_FS_OLD_API is not set
1087# CONFIG_AFS_FS is not set 1090# CONFIG_AFS_FS is not set
1088 1091
1089# 1092#
@@ -1152,6 +1155,8 @@ CONFIG_MAGIC_SYSRQ=y
1152# CONFIG_HEADERS_CHECK is not set 1155# CONFIG_HEADERS_CHECK is not set
1153# CONFIG_DEBUG_KERNEL is not set 1156# CONFIG_DEBUG_KERNEL is not set
1154CONFIG_DEBUG_BUGVERBOSE=y 1157CONFIG_DEBUG_BUGVERBOSE=y
1158CONFIG_DEBUG_MEMORY_INIT=y
1159CONFIG_SYSCTL_SYSCALL_CHECK=y
1155# CONFIG_SAMPLES is not set 1160# CONFIG_SAMPLES is not set
1156 1161
1157# 1162#
@@ -1211,6 +1216,10 @@ CONFIG_CRYPTO_CRC32C=m
1211CONFIG_CRYPTO_MD4=m 1216CONFIG_CRYPTO_MD4=m
1212CONFIG_CRYPTO_MD5=y 1217CONFIG_CRYPTO_MD5=y
1213CONFIG_CRYPTO_MICHAEL_MIC=m 1218CONFIG_CRYPTO_MICHAEL_MIC=m
1219CONFIG_CRYPTO_RMD128=m
1220CONFIG_CRYPTO_RMD160=m
1221CONFIG_CRYPTO_RMD256=m
1222CONFIG_CRYPTO_RMD320=m
1214CONFIG_CRYPTO_SHA1=m 1223CONFIG_CRYPTO_SHA1=m
1215CONFIG_CRYPTO_SHA256=m 1224CONFIG_CRYPTO_SHA256=m
1216CONFIG_CRYPTO_SHA512=m 1225CONFIG_CRYPTO_SHA512=m
@@ -1252,6 +1261,7 @@ CONFIG_BITREVERSE=y
1252# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1261# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1253CONFIG_CRC_CCITT=m 1262CONFIG_CRC_CCITT=m
1254CONFIG_CRC16=y 1263CONFIG_CRC16=y
1264CONFIG_CRC_T10DIF=y
1255CONFIG_CRC_ITU_T=m 1265CONFIG_CRC_ITU_T=m
1256CONFIG_CRC32=y 1266CONFIG_CRC32=y
1257# CONFIG_CRC7 is not set 1267# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/mvme147_defconfig b/arch/m68k/configs/mvme147_defconfig
index e7a8246840b5..cacb5aef6a37 100644
--- a/arch/m68k/configs/mvme147_defconfig
+++ b/arch/m68k/configs/mvme147_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:08 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -502,6 +509,7 @@ CONFIG_SCSI_LOWLEVEL=y
502CONFIG_ISCSI_TCP=m 509CONFIG_ISCSI_TCP=m
503# CONFIG_SCSI_DEBUG is not set 510# CONFIG_SCSI_DEBUG is not set
504CONFIG_MVME147_SCSI=y 511CONFIG_MVME147_SCSI=y
512# CONFIG_SCSI_DH is not set
505CONFIG_MD=y 513CONFIG_MD=y
506CONFIG_BLK_DEV_MD=m 514CONFIG_BLK_DEV_MD=m
507CONFIG_MD_LINEAR=m 515CONFIG_MD_LINEAR=m
@@ -510,7 +518,7 @@ CONFIG_MD_RAID1=m
510# CONFIG_MD_RAID10 is not set 518# CONFIG_MD_RAID10 is not set
511CONFIG_MD_RAID456=m 519CONFIG_MD_RAID456=m
512CONFIG_MD_RAID5_RESHAPE=y 520CONFIG_MD_RAID5_RESHAPE=y
513CONFIG_MD_MULTIPATH=m 521# CONFIG_MD_MULTIPATH is not set
514# CONFIG_MD_FAULTY is not set 522# CONFIG_MD_FAULTY is not set
515CONFIG_BLK_DEV_DM=m 523CONFIG_BLK_DEV_DM=m
516# CONFIG_DM_DEBUG is not set 524# CONFIG_DM_DEBUG is not set
@@ -519,13 +527,9 @@ CONFIG_DM_SNAPSHOT=m
519CONFIG_DM_MIRROR=m 527CONFIG_DM_MIRROR=m
520CONFIG_DM_ZERO=m 528CONFIG_DM_ZERO=m
521CONFIG_DM_MULTIPATH=m 529CONFIG_DM_MULTIPATH=m
522CONFIG_DM_MULTIPATH_EMC=m
523CONFIG_DM_MULTIPATH_RDAC=m
524CONFIG_DM_MULTIPATH_HP=m
525# CONFIG_DM_DELAY is not set 530# CONFIG_DM_DELAY is not set
526CONFIG_DM_UEVENT=y 531CONFIG_DM_UEVENT=y
527CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
528# CONFIG_NETDEVICES_MULTIQUEUE is not set
529CONFIG_DUMMY=m 533CONFIG_DUMMY=m
530# CONFIG_BONDING is not set 534# CONFIG_BONDING is not set
531CONFIG_MACVLAN=m 535CONFIG_MACVLAN=m
@@ -630,6 +634,7 @@ CONFIG_SERIO_LIBPS2=m
630# Character devices 634# Character devices
631# 635#
632CONFIG_VT=y 636CONFIG_VT=y
637CONFIG_CONSOLE_TRANSLATIONS=y
633CONFIG_VT_CONSOLE=y 638CONFIG_VT_CONSOLE=y
634CONFIG_HW_CONSOLE=y 639CONFIG_HW_CONSOLE=y
635CONFIG_VT_HW_CONSOLE_BINDING=y 640CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -660,6 +665,7 @@ CONFIG_GEN_RTC_X=y
660# CONFIG_POWER_SUPPLY is not set 665# CONFIG_POWER_SUPPLY is not set
661# CONFIG_HWMON is not set 666# CONFIG_HWMON is not set
662# CONFIG_THERMAL is not set 667# CONFIG_THERMAL is not set
668# CONFIG_THERMAL_HWMON is not set
663# CONFIG_WATCHDOG is not set 669# CONFIG_WATCHDOG is not set
664 670
665# 671#
@@ -671,8 +677,10 @@ CONFIG_SSB_POSSIBLE=y
671# 677#
672# Multifunction device drivers 678# Multifunction device drivers
673# 679#
680# CONFIG_MFD_CORE is not set
674# CONFIG_MFD_SM501 is not set 681# CONFIG_MFD_SM501 is not set
675# CONFIG_HTC_PASIC3 is not set 682# CONFIG_HTC_PASIC3 is not set
683# CONFIG_MFD_TMIO is not set
676 684
677# 685#
678# Multimedia devices 686# Multimedia devices
@@ -707,10 +715,6 @@ CONFIG_SSB_POSSIBLE=y
707# Console display driver support 715# Console display driver support
708# 716#
709CONFIG_DUMMY_CONSOLE=y 717CONFIG_DUMMY_CONSOLE=y
710
711#
712# Sound
713#
714# CONFIG_SOUND is not set 718# CONFIG_SOUND is not set
715CONFIG_HID_SUPPORT=y 719CONFIG_HID_SUPPORT=y
716CONFIG_HID=m 720CONFIG_HID=m
@@ -722,6 +726,7 @@ CONFIG_HIDRAW=y
722# CONFIG_NEW_LEDS is not set 726# CONFIG_NEW_LEDS is not set
723# CONFIG_ACCESSIBILITY is not set 727# CONFIG_ACCESSIBILITY is not set
724# CONFIG_RTC_CLASS is not set 728# CONFIG_RTC_CLASS is not set
729# CONFIG_DMADEVICES is not set
725# CONFIG_UIO is not set 730# CONFIG_UIO is not set
726 731
727# 732#
@@ -758,6 +763,7 @@ CONFIG_XFS_FS=m
758CONFIG_OCFS2_FS=m 763CONFIG_OCFS2_FS=m
759CONFIG_OCFS2_FS_O2CB=m 764CONFIG_OCFS2_FS_O2CB=m
760CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 765CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
766# CONFIG_OCFS2_FS_STATS is not set
761# CONFIG_OCFS2_DEBUG_MASKLOG is not set 767# CONFIG_OCFS2_DEBUG_MASKLOG is not set
762# CONFIG_OCFS2_DEBUG_FS is not set 768# CONFIG_OCFS2_DEBUG_FS is not set
763CONFIG_DNOTIFY=y 769CONFIG_DNOTIFY=y
@@ -817,6 +823,7 @@ CONFIG_HFSPLUS_FS=m
817CONFIG_CRAMFS=m 823CONFIG_CRAMFS=m
818# CONFIG_VXFS_FS is not set 824# CONFIG_VXFS_FS is not set
819CONFIG_MINIX_FS=y 825CONFIG_MINIX_FS=y
826# CONFIG_OMFS_FS is not set
820CONFIG_HPFS_FS=m 827CONFIG_HPFS_FS=m
821# CONFIG_QNX4FS_FS is not set 828# CONFIG_QNX4FS_FS is not set
822# CONFIG_ROMFS_FS is not set 829# CONFIG_ROMFS_FS is not set
@@ -829,18 +836,17 @@ CONFIG_NFS_FS=y
829CONFIG_NFS_V3=y 836CONFIG_NFS_V3=y
830# CONFIG_NFS_V3_ACL is not set 837# CONFIG_NFS_V3_ACL is not set
831CONFIG_NFS_V4=y 838CONFIG_NFS_V4=y
839CONFIG_ROOT_NFS=y
832CONFIG_NFSD=m 840CONFIG_NFSD=m
833CONFIG_NFSD_V3=y 841CONFIG_NFSD_V3=y
834# CONFIG_NFSD_V3_ACL is not set 842# CONFIG_NFSD_V3_ACL is not set
835# CONFIG_NFSD_V4 is not set 843# CONFIG_NFSD_V4 is not set
836CONFIG_ROOT_NFS=y
837CONFIG_LOCKD=y 844CONFIG_LOCKD=y
838CONFIG_LOCKD_V4=y 845CONFIG_LOCKD_V4=y
839CONFIG_EXPORTFS=m 846CONFIG_EXPORTFS=m
840CONFIG_NFS_COMMON=y 847CONFIG_NFS_COMMON=y
841CONFIG_SUNRPC=y 848CONFIG_SUNRPC=y
842CONFIG_SUNRPC_GSS=y 849CONFIG_SUNRPC_GSS=y
843CONFIG_SUNRPC_BIND34=y
844CONFIG_RPCSEC_GSS_KRB5=y 850CONFIG_RPCSEC_GSS_KRB5=y
845# CONFIG_RPCSEC_GSS_SPKM3 is not set 851# CONFIG_RPCSEC_GSS_SPKM3 is not set
846CONFIG_SMB_FS=m 852CONFIG_SMB_FS=m
@@ -849,7 +855,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
849# CONFIG_CIFS is not set 855# CONFIG_CIFS is not set
850# CONFIG_NCP_FS is not set 856# CONFIG_NCP_FS is not set
851CONFIG_CODA_FS=m 857CONFIG_CODA_FS=m
852# CONFIG_CODA_FS_OLD_API is not set
853# CONFIG_AFS_FS is not set 858# CONFIG_AFS_FS is not set
854 859
855# 860#
@@ -914,6 +919,8 @@ CONFIG_MAGIC_SYSRQ=y
914# CONFIG_HEADERS_CHECK is not set 919# CONFIG_HEADERS_CHECK is not set
915# CONFIG_DEBUG_KERNEL is not set 920# CONFIG_DEBUG_KERNEL is not set
916CONFIG_DEBUG_BUGVERBOSE=y 921CONFIG_DEBUG_BUGVERBOSE=y
922CONFIG_DEBUG_MEMORY_INIT=y
923CONFIG_SYSCTL_SYSCALL_CHECK=y
917# CONFIG_SAMPLES is not set 924# CONFIG_SAMPLES is not set
918 925
919# 926#
@@ -973,6 +980,10 @@ CONFIG_CRYPTO_CRC32C=m
973CONFIG_CRYPTO_MD4=m 980CONFIG_CRYPTO_MD4=m
974CONFIG_CRYPTO_MD5=y 981CONFIG_CRYPTO_MD5=y
975CONFIG_CRYPTO_MICHAEL_MIC=m 982CONFIG_CRYPTO_MICHAEL_MIC=m
983CONFIG_CRYPTO_RMD128=m
984CONFIG_CRYPTO_RMD160=m
985CONFIG_CRYPTO_RMD256=m
986CONFIG_CRYPTO_RMD320=m
976CONFIG_CRYPTO_SHA1=m 987CONFIG_CRYPTO_SHA1=m
977CONFIG_CRYPTO_SHA256=m 988CONFIG_CRYPTO_SHA256=m
978CONFIG_CRYPTO_SHA512=m 989CONFIG_CRYPTO_SHA512=m
@@ -1014,6 +1025,7 @@ CONFIG_BITREVERSE=y
1014# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1025# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1015CONFIG_CRC_CCITT=m 1026CONFIG_CRC_CCITT=m
1016CONFIG_CRC16=m 1027CONFIG_CRC16=m
1028CONFIG_CRC_T10DIF=y
1017CONFIG_CRC_ITU_T=m 1029CONFIG_CRC_ITU_T=m
1018CONFIG_CRC32=y 1030CONFIG_CRC32=y
1019# CONFIG_CRC7 is not set 1031# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/mvme16x_defconfig b/arch/m68k/configs/mvme16x_defconfig
index ab536eb172bb..a183e25e348d 100644
--- a/arch/m68k/configs/mvme16x_defconfig
+++ b/arch/m68k/configs/mvme16x_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:09 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_BINFMT_MISC=m
163CONFIG_PROC_HARDWARE=y 169CONFIG_PROC_HARDWARE=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -413,6 +416,7 @@ CONFIG_NET_CLS_ROUTE=y
413# 416#
414# CONFIG_CFG80211 is not set 417# CONFIG_CFG80211 is not set
415CONFIG_WIRELESS_EXT=y 418CONFIG_WIRELESS_EXT=y
419# CONFIG_WIRELESS_EXT_SYSFS is not set
416# CONFIG_MAC80211 is not set 420# CONFIG_MAC80211 is not set
417CONFIG_IEEE80211=m 421CONFIG_IEEE80211=m
418# CONFIG_IEEE80211_DEBUG is not set 422# CONFIG_IEEE80211_DEBUG is not set
@@ -432,7 +436,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
432CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 436CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
433CONFIG_STANDALONE=y 437CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y 438CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=m 439CONFIG_FW_LOADER=y
440# CONFIG_FIRMWARE_IN_KERNEL is not set
441CONFIG_EXTRA_FIRMWARE=""
436# CONFIG_SYS_HYPERVISOR is not set 442# CONFIG_SYS_HYPERVISOR is not set
437CONFIG_CONNECTOR=m 443CONFIG_CONNECTOR=m
438# CONFIG_MTD is not set 444# CONFIG_MTD is not set
@@ -450,6 +456,7 @@ CONFIG_CDROM_PKTCDVD=m
450CONFIG_CDROM_PKTCDVD_BUFFERS=8 456CONFIG_CDROM_PKTCDVD_BUFFERS=8
451# CONFIG_CDROM_PKTCDVD_WCACHE is not set 457# CONFIG_CDROM_PKTCDVD_WCACHE is not set
452CONFIG_ATA_OVER_ETH=m 458CONFIG_ATA_OVER_ETH=m
459# CONFIG_BLK_DEV_HD is not set
453CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
454# CONFIG_EEPROM_93CX6 is not set 461# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
@@ -503,6 +510,7 @@ CONFIG_ISCSI_TCP=m
503CONFIG_53C700_BE_BUS=y 510CONFIG_53C700_BE_BUS=y
504# CONFIG_SCSI_DEBUG is not set 511# CONFIG_SCSI_DEBUG is not set
505CONFIG_MVME16x_SCSI=y 512CONFIG_MVME16x_SCSI=y
513# CONFIG_SCSI_DH is not set
506CONFIG_MD=y 514CONFIG_MD=y
507CONFIG_BLK_DEV_MD=m 515CONFIG_BLK_DEV_MD=m
508CONFIG_MD_LINEAR=m 516CONFIG_MD_LINEAR=m
@@ -511,7 +519,7 @@ CONFIG_MD_RAID1=m
511# CONFIG_MD_RAID10 is not set 519# CONFIG_MD_RAID10 is not set
512CONFIG_MD_RAID456=m 520CONFIG_MD_RAID456=m
513CONFIG_MD_RAID5_RESHAPE=y 521CONFIG_MD_RAID5_RESHAPE=y
514CONFIG_MD_MULTIPATH=m 522# CONFIG_MD_MULTIPATH is not set
515# CONFIG_MD_FAULTY is not set 523# CONFIG_MD_FAULTY is not set
516CONFIG_BLK_DEV_DM=m 524CONFIG_BLK_DEV_DM=m
517# CONFIG_DM_DEBUG is not set 525# CONFIG_DM_DEBUG is not set
@@ -520,13 +528,9 @@ CONFIG_DM_SNAPSHOT=m
520CONFIG_DM_MIRROR=m 528CONFIG_DM_MIRROR=m
521CONFIG_DM_ZERO=m 529CONFIG_DM_ZERO=m
522CONFIG_DM_MULTIPATH=m 530CONFIG_DM_MULTIPATH=m
523CONFIG_DM_MULTIPATH_EMC=m
524CONFIG_DM_MULTIPATH_RDAC=m
525CONFIG_DM_MULTIPATH_HP=m
526# CONFIG_DM_DELAY is not set 531# CONFIG_DM_DELAY is not set
527CONFIG_DM_UEVENT=y 532CONFIG_DM_UEVENT=y
528CONFIG_NETDEVICES=y 533CONFIG_NETDEVICES=y
529# CONFIG_NETDEVICES_MULTIQUEUE is not set
530CONFIG_DUMMY=m 534CONFIG_DUMMY=m
531# CONFIG_BONDING is not set 535# CONFIG_BONDING is not set
532CONFIG_MACVLAN=m 536CONFIG_MACVLAN=m
@@ -631,6 +635,7 @@ CONFIG_SERIO_LIBPS2=m
631# Character devices 635# Character devices
632# 636#
633CONFIG_VT=y 637CONFIG_VT=y
638CONFIG_CONSOLE_TRANSLATIONS=y
634CONFIG_VT_CONSOLE=y 639CONFIG_VT_CONSOLE=y
635CONFIG_HW_CONSOLE=y 640CONFIG_HW_CONSOLE=y
636CONFIG_VT_HW_CONSOLE_BINDING=y 641CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -661,6 +666,7 @@ CONFIG_GEN_RTC_X=y
661# CONFIG_POWER_SUPPLY is not set 666# CONFIG_POWER_SUPPLY is not set
662# CONFIG_HWMON is not set 667# CONFIG_HWMON is not set
663# CONFIG_THERMAL is not set 668# CONFIG_THERMAL is not set
669# CONFIG_THERMAL_HWMON is not set
664# CONFIG_WATCHDOG is not set 670# CONFIG_WATCHDOG is not set
665 671
666# 672#
@@ -672,8 +678,10 @@ CONFIG_SSB_POSSIBLE=y
672# 678#
673# Multifunction device drivers 679# Multifunction device drivers
674# 680#
681# CONFIG_MFD_CORE is not set
675# CONFIG_MFD_SM501 is not set 682# CONFIG_MFD_SM501 is not set
676# CONFIG_HTC_PASIC3 is not set 683# CONFIG_HTC_PASIC3 is not set
684# CONFIG_MFD_TMIO is not set
677 685
678# 686#
679# Multimedia devices 687# Multimedia devices
@@ -708,10 +716,6 @@ CONFIG_SSB_POSSIBLE=y
708# Console display driver support 716# Console display driver support
709# 717#
710CONFIG_DUMMY_CONSOLE=y 718CONFIG_DUMMY_CONSOLE=y
711
712#
713# Sound
714#
715# CONFIG_SOUND is not set 719# CONFIG_SOUND is not set
716CONFIG_HID_SUPPORT=y 720CONFIG_HID_SUPPORT=y
717CONFIG_HID=m 721CONFIG_HID=m
@@ -723,6 +727,7 @@ CONFIG_HIDRAW=y
723# CONFIG_NEW_LEDS is not set 727# CONFIG_NEW_LEDS is not set
724# CONFIG_ACCESSIBILITY is not set 728# CONFIG_ACCESSIBILITY is not set
725# CONFIG_RTC_CLASS is not set 729# CONFIG_RTC_CLASS is not set
730# CONFIG_DMADEVICES is not set
726# CONFIG_UIO is not set 731# CONFIG_UIO is not set
727 732
728# 733#
@@ -760,6 +765,7 @@ CONFIG_XFS_FS=m
760CONFIG_OCFS2_FS=m 765CONFIG_OCFS2_FS=m
761CONFIG_OCFS2_FS_O2CB=m 766CONFIG_OCFS2_FS_O2CB=m
762CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 767CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
768# CONFIG_OCFS2_FS_STATS is not set
763# CONFIG_OCFS2_DEBUG_MASKLOG is not set 769# CONFIG_OCFS2_DEBUG_MASKLOG is not set
764# CONFIG_OCFS2_DEBUG_FS is not set 770# CONFIG_OCFS2_DEBUG_FS is not set
765CONFIG_DNOTIFY=y 771CONFIG_DNOTIFY=y
@@ -819,6 +825,7 @@ CONFIG_HFSPLUS_FS=m
819CONFIG_CRAMFS=m 825CONFIG_CRAMFS=m
820# CONFIG_VXFS_FS is not set 826# CONFIG_VXFS_FS is not set
821CONFIG_MINIX_FS=y 827CONFIG_MINIX_FS=y
828# CONFIG_OMFS_FS is not set
822CONFIG_HPFS_FS=m 829CONFIG_HPFS_FS=m
823# CONFIG_QNX4FS_FS is not set 830# CONFIG_QNX4FS_FS is not set
824# CONFIG_ROMFS_FS is not set 831# CONFIG_ROMFS_FS is not set
@@ -831,18 +838,17 @@ CONFIG_NFS_FS=y
831CONFIG_NFS_V3=y 838CONFIG_NFS_V3=y
832# CONFIG_NFS_V3_ACL is not set 839# CONFIG_NFS_V3_ACL is not set
833CONFIG_NFS_V4=y 840CONFIG_NFS_V4=y
841CONFIG_ROOT_NFS=y
834CONFIG_NFSD=m 842CONFIG_NFSD=m
835CONFIG_NFSD_V3=y 843CONFIG_NFSD_V3=y
836# CONFIG_NFSD_V3_ACL is not set 844# CONFIG_NFSD_V3_ACL is not set
837# CONFIG_NFSD_V4 is not set 845# CONFIG_NFSD_V4 is not set
838CONFIG_ROOT_NFS=y
839CONFIG_LOCKD=y 846CONFIG_LOCKD=y
840CONFIG_LOCKD_V4=y 847CONFIG_LOCKD_V4=y
841CONFIG_EXPORTFS=m 848CONFIG_EXPORTFS=m
842CONFIG_NFS_COMMON=y 849CONFIG_NFS_COMMON=y
843CONFIG_SUNRPC=y 850CONFIG_SUNRPC=y
844CONFIG_SUNRPC_GSS=y 851CONFIG_SUNRPC_GSS=y
845CONFIG_SUNRPC_BIND34=y
846CONFIG_RPCSEC_GSS_KRB5=y 852CONFIG_RPCSEC_GSS_KRB5=y
847# CONFIG_RPCSEC_GSS_SPKM3 is not set 853# CONFIG_RPCSEC_GSS_SPKM3 is not set
848CONFIG_SMB_FS=m 854CONFIG_SMB_FS=m
@@ -851,7 +857,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
851# CONFIG_CIFS is not set 857# CONFIG_CIFS is not set
852# CONFIG_NCP_FS is not set 858# CONFIG_NCP_FS is not set
853CONFIG_CODA_FS=m 859CONFIG_CODA_FS=m
854# CONFIG_CODA_FS_OLD_API is not set
855# CONFIG_AFS_FS is not set 860# CONFIG_AFS_FS is not set
856 861
857# 862#
@@ -916,6 +921,8 @@ CONFIG_MAGIC_SYSRQ=y
916# CONFIG_HEADERS_CHECK is not set 921# CONFIG_HEADERS_CHECK is not set
917# CONFIG_DEBUG_KERNEL is not set 922# CONFIG_DEBUG_KERNEL is not set
918CONFIG_DEBUG_BUGVERBOSE=y 923CONFIG_DEBUG_BUGVERBOSE=y
924CONFIG_DEBUG_MEMORY_INIT=y
925CONFIG_SYSCTL_SYSCALL_CHECK=y
919# CONFIG_SAMPLES is not set 926# CONFIG_SAMPLES is not set
920 927
921# 928#
@@ -975,6 +982,10 @@ CONFIG_CRYPTO_CRC32C=m
975CONFIG_CRYPTO_MD4=m 982CONFIG_CRYPTO_MD4=m
976CONFIG_CRYPTO_MD5=y 983CONFIG_CRYPTO_MD5=y
977CONFIG_CRYPTO_MICHAEL_MIC=m 984CONFIG_CRYPTO_MICHAEL_MIC=m
985CONFIG_CRYPTO_RMD128=m
986CONFIG_CRYPTO_RMD160=m
987CONFIG_CRYPTO_RMD256=m
988CONFIG_CRYPTO_RMD320=m
978CONFIG_CRYPTO_SHA1=m 989CONFIG_CRYPTO_SHA1=m
979CONFIG_CRYPTO_SHA256=m 990CONFIG_CRYPTO_SHA256=m
980CONFIG_CRYPTO_SHA512=m 991CONFIG_CRYPTO_SHA512=m
@@ -1016,6 +1027,7 @@ CONFIG_BITREVERSE=y
1016# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1027# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1017CONFIG_CRC_CCITT=m 1028CONFIG_CRC_CCITT=m
1018CONFIG_CRC16=m 1029CONFIG_CRC16=m
1030CONFIG_CRC_T10DIF=y
1019CONFIG_CRC_ITU_T=m 1031CONFIG_CRC_ITU_T=m
1020CONFIG_CRC32=y 1032CONFIG_CRC32=y
1021# CONFIG_CRC7 is not set 1033# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/q40_defconfig b/arch/m68k/configs/q40_defconfig
index e05be687b500..72eaff0776b8 100644
--- a/arch/m68k/configs/q40_defconfig
+++ b/arch/m68k/configs/q40_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:10 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -163,10 +169,6 @@ CONFIG_ISA=y
163CONFIG_GENERIC_ISA_DMA=y 169CONFIG_GENERIC_ISA_DMA=y
164CONFIG_ZONE_DMA=y 170CONFIG_ZONE_DMA=y
165# CONFIG_ARCH_SUPPORTS_MSI is not set 171# CONFIG_ARCH_SUPPORTS_MSI is not set
166
167#
168# Networking
169#
170CONFIG_NET=y 172CONFIG_NET=y
171 173
172# 174#
@@ -180,6 +182,7 @@ CONFIG_XFRM=y
180# CONFIG_XFRM_SUB_POLICY is not set 182# CONFIG_XFRM_SUB_POLICY is not set
181CONFIG_XFRM_MIGRATE=y 183CONFIG_XFRM_MIGRATE=y
182# CONFIG_XFRM_STATISTICS is not set 184# CONFIG_XFRM_STATISTICS is not set
185CONFIG_XFRM_IPCOMP=m
183CONFIG_NET_KEY=y 186CONFIG_NET_KEY=y
184CONFIG_NET_KEY_MIGRATE=y 187CONFIG_NET_KEY_MIGRATE=y
185CONFIG_INET=y 188CONFIG_INET=y
@@ -410,6 +413,7 @@ CONFIG_NET_CLS_ROUTE=y
410# 413#
411# CONFIG_CFG80211 is not set 414# CONFIG_CFG80211 is not set
412CONFIG_WIRELESS_EXT=y 415CONFIG_WIRELESS_EXT=y
416# CONFIG_WIRELESS_EXT_SYSFS is not set
413# CONFIG_MAC80211 is not set 417# CONFIG_MAC80211 is not set
414CONFIG_IEEE80211=m 418CONFIG_IEEE80211=m
415# CONFIG_IEEE80211_DEBUG is not set 419# CONFIG_IEEE80211_DEBUG is not set
@@ -429,7 +433,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
429CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 433CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
430CONFIG_STANDALONE=y 434CONFIG_STANDALONE=y
431CONFIG_PREVENT_FIRMWARE_BUILD=y 435CONFIG_PREVENT_FIRMWARE_BUILD=y
432CONFIG_FW_LOADER=m 436CONFIG_FW_LOADER=y
437# CONFIG_FIRMWARE_IN_KERNEL is not set
438CONFIG_EXTRA_FIRMWARE=""
433# CONFIG_SYS_HYPERVISOR is not set 439# CONFIG_SYS_HYPERVISOR is not set
434CONFIG_CONNECTOR=m 440CONFIG_CONNECTOR=m
435# CONFIG_MTD is not set 441# CONFIG_MTD is not set
@@ -448,6 +454,7 @@ CONFIG_CDROM_PKTCDVD=m
448CONFIG_CDROM_PKTCDVD_BUFFERS=8 454CONFIG_CDROM_PKTCDVD_BUFFERS=8
449# CONFIG_CDROM_PKTCDVD_WCACHE is not set 455# CONFIG_CDROM_PKTCDVD_WCACHE is not set
450CONFIG_ATA_OVER_ETH=m 456CONFIG_ATA_OVER_ETH=m
457# CONFIG_BLK_DEV_HD is not set
451CONFIG_MISC_DEVICES=y 458CONFIG_MISC_DEVICES=y
452# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
453# CONFIG_ENCLOSURE_SERVICES is not set 460# CONFIG_ENCLOSURE_SERVICES is not set
@@ -458,6 +465,7 @@ CONFIG_BLK_DEV_IDE=y
458# 465#
459# Please see Documentation/ide/ide.txt for help/info on IDE drives 466# Please see Documentation/ide/ide.txt for help/info on IDE drives
460# 467#
468CONFIG_IDE_ATAPI=y
461# CONFIG_BLK_DEV_IDE_SATA is not set 469# CONFIG_BLK_DEV_IDE_SATA is not set
462CONFIG_BLK_DEV_IDEDISK=y 470CONFIG_BLK_DEV_IDEDISK=y
463# CONFIG_IDEDISK_MULTI_MODE is not set 471# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -475,8 +483,6 @@ CONFIG_IDE_PROC_FS=y
475# CONFIG_BLK_DEV_PLATFORM is not set 483# CONFIG_BLK_DEV_PLATFORM is not set
476CONFIG_BLK_DEV_Q40IDE=y 484CONFIG_BLK_DEV_Q40IDE=y
477# CONFIG_BLK_DEV_IDEDMA is not set 485# CONFIG_BLK_DEV_IDEDMA is not set
478# CONFIG_BLK_DEV_HD_ONLY is not set
479# CONFIG_BLK_DEV_HD is not set
480 486
481# 487#
482# SCSI device support 488# SCSI device support
@@ -536,6 +542,7 @@ CONFIG_ISCSI_TCP=m
536# CONFIG_SCSI_SYM53C416 is not set 542# CONFIG_SCSI_SYM53C416 is not set
537# CONFIG_SCSI_T128 is not set 543# CONFIG_SCSI_T128 is not set
538# CONFIG_SCSI_DEBUG is not set 544# CONFIG_SCSI_DEBUG is not set
545# CONFIG_SCSI_DH is not set
539CONFIG_MD=y 546CONFIG_MD=y
540CONFIG_BLK_DEV_MD=m 547CONFIG_BLK_DEV_MD=m
541CONFIG_MD_LINEAR=m 548CONFIG_MD_LINEAR=m
@@ -544,7 +551,7 @@ CONFIG_MD_RAID1=m
544# CONFIG_MD_RAID10 is not set 551# CONFIG_MD_RAID10 is not set
545CONFIG_MD_RAID456=m 552CONFIG_MD_RAID456=m
546CONFIG_MD_RAID5_RESHAPE=y 553CONFIG_MD_RAID5_RESHAPE=y
547CONFIG_MD_MULTIPATH=m 554# CONFIG_MD_MULTIPATH is not set
548# CONFIG_MD_FAULTY is not set 555# CONFIG_MD_FAULTY is not set
549CONFIG_BLK_DEV_DM=m 556CONFIG_BLK_DEV_DM=m
550# CONFIG_DM_DEBUG is not set 557# CONFIG_DM_DEBUG is not set
@@ -553,13 +560,9 @@ CONFIG_DM_SNAPSHOT=m
553CONFIG_DM_MIRROR=m 560CONFIG_DM_MIRROR=m
554CONFIG_DM_ZERO=m 561CONFIG_DM_ZERO=m
555CONFIG_DM_MULTIPATH=m 562CONFIG_DM_MULTIPATH=m
556CONFIG_DM_MULTIPATH_EMC=m
557CONFIG_DM_MULTIPATH_RDAC=m
558CONFIG_DM_MULTIPATH_HP=m
559# CONFIG_DM_DELAY is not set 563# CONFIG_DM_DELAY is not set
560CONFIG_DM_UEVENT=y 564CONFIG_DM_UEVENT=y
561CONFIG_NETDEVICES=y 565CONFIG_NETDEVICES=y
562# CONFIG_NETDEVICES_MULTIQUEUE is not set
563CONFIG_DUMMY=m 566CONFIG_DUMMY=m
564# CONFIG_BONDING is not set 567# CONFIG_BONDING is not set
565CONFIG_MACVLAN=m 568CONFIG_MACVLAN=m
@@ -680,6 +683,7 @@ CONFIG_SERIO_LIBPS2=m
680# Character devices 683# Character devices
681# 684#
682CONFIG_VT=y 685CONFIG_VT=y
686CONFIG_CONSOLE_TRANSLATIONS=y
683CONFIG_VT_CONSOLE=y 687CONFIG_VT_CONSOLE=y
684CONFIG_HW_CONSOLE=y 688CONFIG_HW_CONSOLE=y
685CONFIG_VT_HW_CONSOLE_BINDING=y 689CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -711,6 +715,7 @@ CONFIG_GEN_RTC_X=y
711# CONFIG_POWER_SUPPLY is not set 715# CONFIG_POWER_SUPPLY is not set
712# CONFIG_HWMON is not set 716# CONFIG_HWMON is not set
713# CONFIG_THERMAL is not set 717# CONFIG_THERMAL is not set
718# CONFIG_THERMAL_HWMON is not set
714# CONFIG_WATCHDOG is not set 719# CONFIG_WATCHDOG is not set
715 720
716# 721#
@@ -722,8 +727,10 @@ CONFIG_SSB_POSSIBLE=y
722# 727#
723# Multifunction device drivers 728# Multifunction device drivers
724# 729#
730# CONFIG_MFD_CORE is not set
725# CONFIG_MFD_SM501 is not set 731# CONFIG_MFD_SM501 is not set
726# CONFIG_HTC_PASIC3 is not set 732# CONFIG_HTC_PASIC3 is not set
733# CONFIG_MFD_TMIO is not set
727 734
728# 735#
729# Multimedia devices 736# Multimedia devices
@@ -792,10 +799,6 @@ CONFIG_LOGO=y
792CONFIG_LOGO_LINUX_MONO=y 799CONFIG_LOGO_LINUX_MONO=y
793CONFIG_LOGO_LINUX_VGA16=y 800CONFIG_LOGO_LINUX_VGA16=y
794CONFIG_LOGO_LINUX_CLUT224=y 801CONFIG_LOGO_LINUX_CLUT224=y
795
796#
797# Sound
798#
799CONFIG_SOUND=m 802CONFIG_SOUND=m
800CONFIG_DMASOUND_Q40=m 803CONFIG_DMASOUND_Q40=m
801CONFIG_DMASOUND=m 804CONFIG_DMASOUND=m
@@ -809,6 +812,7 @@ CONFIG_HIDRAW=y
809# CONFIG_NEW_LEDS is not set 812# CONFIG_NEW_LEDS is not set
810# CONFIG_ACCESSIBILITY is not set 813# CONFIG_ACCESSIBILITY is not set
811# CONFIG_RTC_CLASS is not set 814# CONFIG_RTC_CLASS is not set
815# CONFIG_DMADEVICES is not set
812# CONFIG_UIO is not set 816# CONFIG_UIO is not set
813 817
814# 818#
@@ -843,6 +847,7 @@ CONFIG_XFS_FS=m
843CONFIG_OCFS2_FS=m 847CONFIG_OCFS2_FS=m
844CONFIG_OCFS2_FS_O2CB=m 848CONFIG_OCFS2_FS_O2CB=m
845CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 849CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
850# CONFIG_OCFS2_FS_STATS is not set
846# CONFIG_OCFS2_DEBUG_MASKLOG is not set 851# CONFIG_OCFS2_DEBUG_MASKLOG is not set
847# CONFIG_OCFS2_DEBUG_FS is not set 852# CONFIG_OCFS2_DEBUG_FS is not set
848CONFIG_DNOTIFY=y 853CONFIG_DNOTIFY=y
@@ -902,6 +907,7 @@ CONFIG_HFSPLUS_FS=m
902CONFIG_CRAMFS=m 907CONFIG_CRAMFS=m
903# CONFIG_VXFS_FS is not set 908# CONFIG_VXFS_FS is not set
904CONFIG_MINIX_FS=y 909CONFIG_MINIX_FS=y
910# CONFIG_OMFS_FS is not set
905CONFIG_HPFS_FS=m 911CONFIG_HPFS_FS=m
906# CONFIG_QNX4FS_FS is not set 912# CONFIG_QNX4FS_FS is not set
907# CONFIG_ROMFS_FS is not set 913# CONFIG_ROMFS_FS is not set
@@ -924,7 +930,6 @@ CONFIG_EXPORTFS=m
924CONFIG_NFS_COMMON=y 930CONFIG_NFS_COMMON=y
925CONFIG_SUNRPC=y 931CONFIG_SUNRPC=y
926CONFIG_SUNRPC_GSS=y 932CONFIG_SUNRPC_GSS=y
927CONFIG_SUNRPC_BIND34=y
928CONFIG_RPCSEC_GSS_KRB5=y 933CONFIG_RPCSEC_GSS_KRB5=y
929# CONFIG_RPCSEC_GSS_SPKM3 is not set 934# CONFIG_RPCSEC_GSS_SPKM3 is not set
930CONFIG_SMB_FS=m 935CONFIG_SMB_FS=m
@@ -933,7 +938,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
933# CONFIG_CIFS is not set 938# CONFIG_CIFS is not set
934# CONFIG_NCP_FS is not set 939# CONFIG_NCP_FS is not set
935CONFIG_CODA_FS=m 940CONFIG_CODA_FS=m
936# CONFIG_CODA_FS_OLD_API is not set
937# CONFIG_AFS_FS is not set 941# CONFIG_AFS_FS is not set
938 942
939# 943#
@@ -997,6 +1001,8 @@ CONFIG_MAGIC_SYSRQ=y
997# CONFIG_HEADERS_CHECK is not set 1001# CONFIG_HEADERS_CHECK is not set
998# CONFIG_DEBUG_KERNEL is not set 1002# CONFIG_DEBUG_KERNEL is not set
999CONFIG_DEBUG_BUGVERBOSE=y 1003CONFIG_DEBUG_BUGVERBOSE=y
1004CONFIG_DEBUG_MEMORY_INIT=y
1005CONFIG_SYSCTL_SYSCALL_CHECK=y
1000# CONFIG_SAMPLES is not set 1006# CONFIG_SAMPLES is not set
1001 1007
1002# 1008#
@@ -1056,6 +1062,10 @@ CONFIG_CRYPTO_CRC32C=m
1056CONFIG_CRYPTO_MD4=m 1062CONFIG_CRYPTO_MD4=m
1057CONFIG_CRYPTO_MD5=y 1063CONFIG_CRYPTO_MD5=y
1058CONFIG_CRYPTO_MICHAEL_MIC=m 1064CONFIG_CRYPTO_MICHAEL_MIC=m
1065CONFIG_CRYPTO_RMD128=m
1066CONFIG_CRYPTO_RMD160=m
1067CONFIG_CRYPTO_RMD256=m
1068CONFIG_CRYPTO_RMD320=m
1059CONFIG_CRYPTO_SHA1=m 1069CONFIG_CRYPTO_SHA1=m
1060CONFIG_CRYPTO_SHA256=m 1070CONFIG_CRYPTO_SHA256=m
1061CONFIG_CRYPTO_SHA512=m 1071CONFIG_CRYPTO_SHA512=m
@@ -1097,6 +1107,7 @@ CONFIG_BITREVERSE=y
1097# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1107# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1098CONFIG_CRC_CCITT=m 1108CONFIG_CRC_CCITT=m
1099CONFIG_CRC16=m 1109CONFIG_CRC16=m
1110CONFIG_CRC_T10DIF=y
1100CONFIG_CRC_ITU_T=m 1111CONFIG_CRC_ITU_T=m
1101CONFIG_CRC32=y 1112CONFIG_CRC32=y
1102# CONFIG_CRC7 is not set 1113# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/sun3_defconfig b/arch/m68k/configs/sun3_defconfig
index 296340d2b315..cb62b96d766e 100644
--- a/arch/m68k/configs/sun3_defconfig
+++ b/arch/m68k/configs/sun3_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:11 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -149,10 +155,6 @@ CONFIG_BINFMT_MISC=m
149CONFIG_PROC_HARDWARE=y 155CONFIG_PROC_HARDWARE=y
150CONFIG_ZONE_DMA=y 156CONFIG_ZONE_DMA=y
151# CONFIG_ARCH_SUPPORTS_MSI is not set 157# CONFIG_ARCH_SUPPORTS_MSI is not set
152
153#
154# Networking
155#
156CONFIG_NET=y 158CONFIG_NET=y
157 159
158# 160#
@@ -166,6 +168,7 @@ CONFIG_XFRM=y
166# CONFIG_XFRM_SUB_POLICY is not set 168# CONFIG_XFRM_SUB_POLICY is not set
167CONFIG_XFRM_MIGRATE=y 169CONFIG_XFRM_MIGRATE=y
168# CONFIG_XFRM_STATISTICS is not set 170# CONFIG_XFRM_STATISTICS is not set
171CONFIG_XFRM_IPCOMP=m
169CONFIG_NET_KEY=y 172CONFIG_NET_KEY=y
170CONFIG_NET_KEY_MIGRATE=y 173CONFIG_NET_KEY_MIGRATE=y
171CONFIG_INET=y 174CONFIG_INET=y
@@ -399,6 +402,7 @@ CONFIG_NET_CLS_ROUTE=y
399# 402#
400# CONFIG_CFG80211 is not set 403# CONFIG_CFG80211 is not set
401CONFIG_WIRELESS_EXT=y 404CONFIG_WIRELESS_EXT=y
405# CONFIG_WIRELESS_EXT_SYSFS is not set
402# CONFIG_MAC80211 is not set 406# CONFIG_MAC80211 is not set
403CONFIG_IEEE80211=m 407CONFIG_IEEE80211=m
404# CONFIG_IEEE80211_DEBUG is not set 408# CONFIG_IEEE80211_DEBUG is not set
@@ -418,7 +422,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
418CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 422CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
419CONFIG_STANDALONE=y 423CONFIG_STANDALONE=y
420CONFIG_PREVENT_FIRMWARE_BUILD=y 424CONFIG_PREVENT_FIRMWARE_BUILD=y
421CONFIG_FW_LOADER=m 425CONFIG_FW_LOADER=y
426# CONFIG_FIRMWARE_IN_KERNEL is not set
427CONFIG_EXTRA_FIRMWARE=""
422# CONFIG_SYS_HYPERVISOR is not set 428# CONFIG_SYS_HYPERVISOR is not set
423CONFIG_CONNECTOR=m 429CONFIG_CONNECTOR=m
424# CONFIG_MTD is not set 430# CONFIG_MTD is not set
@@ -436,6 +442,7 @@ CONFIG_CDROM_PKTCDVD=m
436CONFIG_CDROM_PKTCDVD_BUFFERS=8 442CONFIG_CDROM_PKTCDVD_BUFFERS=8
437# CONFIG_CDROM_PKTCDVD_WCACHE is not set 443# CONFIG_CDROM_PKTCDVD_WCACHE is not set
438CONFIG_ATA_OVER_ETH=m 444CONFIG_ATA_OVER_ETH=m
445# CONFIG_BLK_DEV_HD is not set
439CONFIG_MISC_DEVICES=y 446CONFIG_MISC_DEVICES=y
440# CONFIG_EEPROM_93CX6 is not set 447# CONFIG_EEPROM_93CX6 is not set
441# CONFIG_ENCLOSURE_SERVICES is not set 448# CONFIG_ENCLOSURE_SERVICES is not set
@@ -488,6 +495,7 @@ CONFIG_SCSI_LOWLEVEL=y
488CONFIG_ISCSI_TCP=m 495CONFIG_ISCSI_TCP=m
489# CONFIG_SCSI_DEBUG is not set 496# CONFIG_SCSI_DEBUG is not set
490CONFIG_SUN3_SCSI=y 497CONFIG_SUN3_SCSI=y
498# CONFIG_SCSI_DH is not set
491CONFIG_MD=y 499CONFIG_MD=y
492CONFIG_BLK_DEV_MD=m 500CONFIG_BLK_DEV_MD=m
493CONFIG_MD_LINEAR=m 501CONFIG_MD_LINEAR=m
@@ -496,7 +504,7 @@ CONFIG_MD_RAID1=m
496# CONFIG_MD_RAID10 is not set 504# CONFIG_MD_RAID10 is not set
497CONFIG_MD_RAID456=m 505CONFIG_MD_RAID456=m
498CONFIG_MD_RAID5_RESHAPE=y 506CONFIG_MD_RAID5_RESHAPE=y
499CONFIG_MD_MULTIPATH=m 507# CONFIG_MD_MULTIPATH is not set
500# CONFIG_MD_FAULTY is not set 508# CONFIG_MD_FAULTY is not set
501CONFIG_BLK_DEV_DM=m 509CONFIG_BLK_DEV_DM=m
502# CONFIG_DM_DEBUG is not set 510# CONFIG_DM_DEBUG is not set
@@ -505,13 +513,9 @@ CONFIG_DM_SNAPSHOT=m
505CONFIG_DM_MIRROR=m 513CONFIG_DM_MIRROR=m
506CONFIG_DM_ZERO=m 514CONFIG_DM_ZERO=m
507CONFIG_DM_MULTIPATH=m 515CONFIG_DM_MULTIPATH=m
508CONFIG_DM_MULTIPATH_EMC=m
509CONFIG_DM_MULTIPATH_RDAC=m
510CONFIG_DM_MULTIPATH_HP=m
511# CONFIG_DM_DELAY is not set 516# CONFIG_DM_DELAY is not set
512CONFIG_DM_UEVENT=y 517CONFIG_DM_UEVENT=y
513CONFIG_NETDEVICES=y 518CONFIG_NETDEVICES=y
514# CONFIG_NETDEVICES_MULTIQUEUE is not set
515CONFIG_DUMMY=m 519CONFIG_DUMMY=m
516# CONFIG_BONDING is not set 520# CONFIG_BONDING is not set
517CONFIG_MACVLAN=m 521CONFIG_MACVLAN=m
@@ -527,7 +531,6 @@ CONFIG_SUN3_82586=y
527# CONFIG_IBM_NEW_EMAC_RGMII is not set 531# CONFIG_IBM_NEW_EMAC_RGMII is not set
528# CONFIG_IBM_NEW_EMAC_TAH is not set 532# CONFIG_IBM_NEW_EMAC_TAH is not set
529# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 533# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
530# CONFIG_B44 is not set
531# CONFIG_NETDEV_1000 is not set 534# CONFIG_NETDEV_1000 is not set
532# CONFIG_NETDEV_10000 is not set 535# CONFIG_NETDEV_10000 is not set
533 536
@@ -617,6 +620,7 @@ CONFIG_SERIO_LIBPS2=m
617# Character devices 620# Character devices
618# 621#
619CONFIG_VT=y 622CONFIG_VT=y
623CONFIG_CONSOLE_TRANSLATIONS=y
620CONFIG_VT_CONSOLE=y 624CONFIG_VT_CONSOLE=y
621CONFIG_HW_CONSOLE=y 625CONFIG_HW_CONSOLE=y
622CONFIG_VT_HW_CONSOLE_BINDING=y 626CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -647,19 +651,20 @@ CONFIG_GEN_RTC_X=y
647# CONFIG_POWER_SUPPLY is not set 651# CONFIG_POWER_SUPPLY is not set
648# CONFIG_HWMON is not set 652# CONFIG_HWMON is not set
649# CONFIG_THERMAL is not set 653# CONFIG_THERMAL is not set
654# CONFIG_THERMAL_HWMON is not set
650# CONFIG_WATCHDOG is not set 655# CONFIG_WATCHDOG is not set
651 656
652# 657#
653# Sonics Silicon Backplane 658# Sonics Silicon Backplane
654# 659#
655CONFIG_SSB_POSSIBLE=y
656# CONFIG_SSB is not set
657 660
658# 661#
659# Multifunction device drivers 662# Multifunction device drivers
660# 663#
664# CONFIG_MFD_CORE is not set
661# CONFIG_MFD_SM501 is not set 665# CONFIG_MFD_SM501 is not set
662# CONFIG_HTC_PASIC3 is not set 666# CONFIG_HTC_PASIC3 is not set
667# CONFIG_MFD_TMIO is not set
663 668
664# 669#
665# Multimedia devices 670# Multimedia devices
@@ -727,10 +732,6 @@ CONFIG_LOGO=y
727CONFIG_LOGO_LINUX_MONO=y 732CONFIG_LOGO_LINUX_MONO=y
728CONFIG_LOGO_LINUX_VGA16=y 733CONFIG_LOGO_LINUX_VGA16=y
729CONFIG_LOGO_LINUX_CLUT224=y 734CONFIG_LOGO_LINUX_CLUT224=y
730
731#
732# Sound
733#
734# CONFIG_SOUND is not set 735# CONFIG_SOUND is not set
735CONFIG_HID_SUPPORT=y 736CONFIG_HID_SUPPORT=y
736CONFIG_HID=m 737CONFIG_HID=m
@@ -776,6 +777,7 @@ CONFIG_XFS_FS=m
776CONFIG_OCFS2_FS=m 777CONFIG_OCFS2_FS=m
777CONFIG_OCFS2_FS_O2CB=m 778CONFIG_OCFS2_FS_O2CB=m
778CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 779CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
780# CONFIG_OCFS2_FS_STATS is not set
779# CONFIG_OCFS2_DEBUG_MASKLOG is not set 781# CONFIG_OCFS2_DEBUG_MASKLOG is not set
780# CONFIG_OCFS2_DEBUG_FS is not set 782# CONFIG_OCFS2_DEBUG_FS is not set
781CONFIG_DNOTIFY=y 783CONFIG_DNOTIFY=y
@@ -835,6 +837,7 @@ CONFIG_HFSPLUS_FS=m
835CONFIG_CRAMFS=m 837CONFIG_CRAMFS=m
836# CONFIG_VXFS_FS is not set 838# CONFIG_VXFS_FS is not set
837CONFIG_MINIX_FS=y 839CONFIG_MINIX_FS=y
840# CONFIG_OMFS_FS is not set
838CONFIG_HPFS_FS=m 841CONFIG_HPFS_FS=m
839# CONFIG_QNX4FS_FS is not set 842# CONFIG_QNX4FS_FS is not set
840# CONFIG_ROMFS_FS is not set 843# CONFIG_ROMFS_FS is not set
@@ -847,18 +850,17 @@ CONFIG_NFS_FS=y
847CONFIG_NFS_V3=y 850CONFIG_NFS_V3=y
848# CONFIG_NFS_V3_ACL is not set 851# CONFIG_NFS_V3_ACL is not set
849CONFIG_NFS_V4=y 852CONFIG_NFS_V4=y
853CONFIG_ROOT_NFS=y
850CONFIG_NFSD=m 854CONFIG_NFSD=m
851CONFIG_NFSD_V3=y 855CONFIG_NFSD_V3=y
852# CONFIG_NFSD_V3_ACL is not set 856# CONFIG_NFSD_V3_ACL is not set
853# CONFIG_NFSD_V4 is not set 857# CONFIG_NFSD_V4 is not set
854CONFIG_ROOT_NFS=y
855CONFIG_LOCKD=y 858CONFIG_LOCKD=y
856CONFIG_LOCKD_V4=y 859CONFIG_LOCKD_V4=y
857CONFIG_EXPORTFS=m 860CONFIG_EXPORTFS=m
858CONFIG_NFS_COMMON=y 861CONFIG_NFS_COMMON=y
859CONFIG_SUNRPC=y 862CONFIG_SUNRPC=y
860CONFIG_SUNRPC_GSS=y 863CONFIG_SUNRPC_GSS=y
861CONFIG_SUNRPC_BIND34=y
862CONFIG_RPCSEC_GSS_KRB5=y 864CONFIG_RPCSEC_GSS_KRB5=y
863# CONFIG_RPCSEC_GSS_SPKM3 is not set 865# CONFIG_RPCSEC_GSS_SPKM3 is not set
864CONFIG_SMB_FS=m 866CONFIG_SMB_FS=m
@@ -867,7 +869,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
867# CONFIG_CIFS is not set 869# CONFIG_CIFS is not set
868# CONFIG_NCP_FS is not set 870# CONFIG_NCP_FS is not set
869CONFIG_CODA_FS=m 871CONFIG_CODA_FS=m
870# CONFIG_CODA_FS_OLD_API is not set
871# CONFIG_AFS_FS is not set 872# CONFIG_AFS_FS is not set
872 873
873# 874#
@@ -932,6 +933,8 @@ CONFIG_MAGIC_SYSRQ=y
932# CONFIG_HEADERS_CHECK is not set 933# CONFIG_HEADERS_CHECK is not set
933# CONFIG_DEBUG_KERNEL is not set 934# CONFIG_DEBUG_KERNEL is not set
934CONFIG_DEBUG_BUGVERBOSE=y 935CONFIG_DEBUG_BUGVERBOSE=y
936CONFIG_DEBUG_MEMORY_INIT=y
937CONFIG_SYSCTL_SYSCALL_CHECK=y
935# CONFIG_SAMPLES is not set 938# CONFIG_SAMPLES is not set
936 939
937# 940#
@@ -991,6 +994,10 @@ CONFIG_CRYPTO_CRC32C=m
991CONFIG_CRYPTO_MD4=m 994CONFIG_CRYPTO_MD4=m
992CONFIG_CRYPTO_MD5=y 995CONFIG_CRYPTO_MD5=y
993CONFIG_CRYPTO_MICHAEL_MIC=m 996CONFIG_CRYPTO_MICHAEL_MIC=m
997CONFIG_CRYPTO_RMD128=m
998CONFIG_CRYPTO_RMD160=m
999CONFIG_CRYPTO_RMD256=m
1000CONFIG_CRYPTO_RMD320=m
994CONFIG_CRYPTO_SHA1=m 1001CONFIG_CRYPTO_SHA1=m
995CONFIG_CRYPTO_SHA256=m 1002CONFIG_CRYPTO_SHA256=m
996CONFIG_CRYPTO_SHA512=m 1003CONFIG_CRYPTO_SHA512=m
@@ -1032,6 +1039,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1039# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1033CONFIG_CRC_CCITT=m 1040CONFIG_CRC_CCITT=m
1034CONFIG_CRC16=m 1041CONFIG_CRC16=m
1042CONFIG_CRC_T10DIF=y
1035CONFIG_CRC_ITU_T=m 1043CONFIG_CRC_ITU_T=m
1036CONFIG_CRC32=y 1044CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1045# CONFIG_CRC7 is not set
diff --git a/arch/m68k/configs/sun3x_defconfig b/arch/m68k/configs/sun3x_defconfig
index 8d3a416c92bf..04b4363a7050 100644
--- a/arch/m68k/configs/sun3x_defconfig
+++ b/arch/m68k/configs/sun3x_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.26-rc4 3# Linux kernel version: 2.6.27-rc6
4# Wed May 28 22:47:35 2008 4# Wed Sep 10 09:02:12 2008
5# 5#
6CONFIG_M68K=y 6CONFIG_M68K=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -52,7 +52,6 @@ CONFIG_SYSCTL=y
52# CONFIG_EMBEDDED is not set 52# CONFIG_EMBEDDED is not set
53CONFIG_UID16=y 53CONFIG_UID16=y
54CONFIG_SYSCTL_SYSCALL=y 54CONFIG_SYSCTL_SYSCALL=y
55CONFIG_SYSCTL_SYSCALL_CHECK=y
56CONFIG_KALLSYMS=y 55CONFIG_KALLSYMS=y
57# CONFIG_KALLSYMS_EXTRA_PASS is not set 56# CONFIG_KALLSYMS_EXTRA_PASS is not set
58CONFIG_HOTPLUG=y 57CONFIG_HOTPLUG=y
@@ -75,10 +74,16 @@ CONFIG_SLAB=y
75# CONFIG_PROFILING is not set 74# CONFIG_PROFILING is not set
76# CONFIG_MARKERS is not set 75# CONFIG_MARKERS is not set
77# CONFIG_HAVE_OPROFILE is not set 76# CONFIG_HAVE_OPROFILE is not set
77# CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is not set
78# CONFIG_HAVE_IOREMAP_PROT is not set
78# CONFIG_HAVE_KPROBES is not set 79# CONFIG_HAVE_KPROBES is not set
79# CONFIG_HAVE_KRETPROBES is not set 80# CONFIG_HAVE_KRETPROBES is not set
81# CONFIG_HAVE_ARCH_TRACEHOOK is not set
80# CONFIG_HAVE_DMA_ATTRS is not set 82# CONFIG_HAVE_DMA_ATTRS is not set
83# CONFIG_USE_GENERIC_SMP_HELPERS is not set
84# CONFIG_HAVE_CLK is not set
81CONFIG_PROC_PAGE_MONITOR=y 85CONFIG_PROC_PAGE_MONITOR=y
86# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
82CONFIG_SLABINFO=y 87CONFIG_SLABINFO=y
83CONFIG_RT_MUTEXES=y 88CONFIG_RT_MUTEXES=y
84# CONFIG_TINY_SHMEM is not set 89# CONFIG_TINY_SHMEM is not set
@@ -95,6 +100,7 @@ CONFIG_BLOCK=y
95# CONFIG_BLK_DEV_IO_TRACE is not set 100# CONFIG_BLK_DEV_IO_TRACE is not set
96# CONFIG_LSF is not set 101# CONFIG_LSF is not set
97CONFIG_BLK_DEV_BSG=y 102CONFIG_BLK_DEV_BSG=y
103# CONFIG_BLK_DEV_INTEGRITY is not set
98 104
99# 105#
100# IO Schedulers 106# IO Schedulers
@@ -160,10 +166,6 @@ CONFIG_BINFMT_MISC=m
160CONFIG_PROC_HARDWARE=y 166CONFIG_PROC_HARDWARE=y
161CONFIG_ZONE_DMA=y 167CONFIG_ZONE_DMA=y
162# CONFIG_ARCH_SUPPORTS_MSI is not set 168# CONFIG_ARCH_SUPPORTS_MSI is not set
163
164#
165# Networking
166#
167CONFIG_NET=y 169CONFIG_NET=y
168 170
169# 171#
@@ -177,6 +179,7 @@ CONFIG_XFRM=y
177# CONFIG_XFRM_SUB_POLICY is not set 179# CONFIG_XFRM_SUB_POLICY is not set
178CONFIG_XFRM_MIGRATE=y 180CONFIG_XFRM_MIGRATE=y
179# CONFIG_XFRM_STATISTICS is not set 181# CONFIG_XFRM_STATISTICS is not set
182CONFIG_XFRM_IPCOMP=m
180CONFIG_NET_KEY=y 183CONFIG_NET_KEY=y
181CONFIG_NET_KEY_MIGRATE=y 184CONFIG_NET_KEY_MIGRATE=y
182CONFIG_INET=y 185CONFIG_INET=y
@@ -410,6 +413,7 @@ CONFIG_NET_CLS_ROUTE=y
410# 413#
411# CONFIG_CFG80211 is not set 414# CONFIG_CFG80211 is not set
412CONFIG_WIRELESS_EXT=y 415CONFIG_WIRELESS_EXT=y
416# CONFIG_WIRELESS_EXT_SYSFS is not set
413# CONFIG_MAC80211 is not set 417# CONFIG_MAC80211 is not set
414CONFIG_IEEE80211=m 418CONFIG_IEEE80211=m
415# CONFIG_IEEE80211_DEBUG is not set 419# CONFIG_IEEE80211_DEBUG is not set
@@ -429,7 +433,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
429CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 433CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
430CONFIG_STANDALONE=y 434CONFIG_STANDALONE=y
431CONFIG_PREVENT_FIRMWARE_BUILD=y 435CONFIG_PREVENT_FIRMWARE_BUILD=y
432CONFIG_FW_LOADER=m 436CONFIG_FW_LOADER=y
437# CONFIG_FIRMWARE_IN_KERNEL is not set
438CONFIG_EXTRA_FIRMWARE=""
433# CONFIG_SYS_HYPERVISOR is not set 439# CONFIG_SYS_HYPERVISOR is not set
434CONFIG_CONNECTOR=m 440CONFIG_CONNECTOR=m
435# CONFIG_MTD is not set 441# CONFIG_MTD is not set
@@ -447,6 +453,7 @@ CONFIG_CDROM_PKTCDVD=m
447CONFIG_CDROM_PKTCDVD_BUFFERS=8 453CONFIG_CDROM_PKTCDVD_BUFFERS=8
448# CONFIG_CDROM_PKTCDVD_WCACHE is not set 454# CONFIG_CDROM_PKTCDVD_WCACHE is not set
449CONFIG_ATA_OVER_ETH=m 455CONFIG_ATA_OVER_ETH=m
456# CONFIG_BLK_DEV_HD is not set
450CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
451# CONFIG_EEPROM_93CX6 is not set 458# CONFIG_EEPROM_93CX6 is not set
452# CONFIG_ENCLOSURE_SERVICES is not set 459# CONFIG_ENCLOSURE_SERVICES is not set
@@ -499,6 +506,7 @@ CONFIG_SCSI_LOWLEVEL=y
499CONFIG_ISCSI_TCP=m 506CONFIG_ISCSI_TCP=m
500# CONFIG_SCSI_DEBUG is not set 507# CONFIG_SCSI_DEBUG is not set
501CONFIG_SUN3X_ESP=y 508CONFIG_SUN3X_ESP=y
509# CONFIG_SCSI_DH is not set
502CONFIG_MD=y 510CONFIG_MD=y
503CONFIG_BLK_DEV_MD=m 511CONFIG_BLK_DEV_MD=m
504CONFIG_MD_LINEAR=m 512CONFIG_MD_LINEAR=m
@@ -507,7 +515,7 @@ CONFIG_MD_RAID1=m
507# CONFIG_MD_RAID10 is not set 515# CONFIG_MD_RAID10 is not set
508CONFIG_MD_RAID456=m 516CONFIG_MD_RAID456=m
509CONFIG_MD_RAID5_RESHAPE=y 517CONFIG_MD_RAID5_RESHAPE=y
510CONFIG_MD_MULTIPATH=m 518# CONFIG_MD_MULTIPATH is not set
511# CONFIG_MD_FAULTY is not set 519# CONFIG_MD_FAULTY is not set
512CONFIG_BLK_DEV_DM=m 520CONFIG_BLK_DEV_DM=m
513# CONFIG_DM_DEBUG is not set 521# CONFIG_DM_DEBUG is not set
@@ -516,13 +524,9 @@ CONFIG_DM_SNAPSHOT=m
516CONFIG_DM_MIRROR=m 524CONFIG_DM_MIRROR=m
517CONFIG_DM_ZERO=m 525CONFIG_DM_ZERO=m
518CONFIG_DM_MULTIPATH=m 526CONFIG_DM_MULTIPATH=m
519CONFIG_DM_MULTIPATH_EMC=m
520CONFIG_DM_MULTIPATH_RDAC=m
521CONFIG_DM_MULTIPATH_HP=m
522# CONFIG_DM_DELAY is not set 527# CONFIG_DM_DELAY is not set
523CONFIG_DM_UEVENT=y 528CONFIG_DM_UEVENT=y
524CONFIG_NETDEVICES=y 529CONFIG_NETDEVICES=y
525# CONFIG_NETDEVICES_MULTIQUEUE is not set
526CONFIG_DUMMY=m 530CONFIG_DUMMY=m
527# CONFIG_BONDING is not set 531# CONFIG_BONDING is not set
528CONFIG_MACVLAN=m 532CONFIG_MACVLAN=m
@@ -627,6 +631,7 @@ CONFIG_SERIO_LIBPS2=m
627# Character devices 631# Character devices
628# 632#
629CONFIG_VT=y 633CONFIG_VT=y
634CONFIG_CONSOLE_TRANSLATIONS=y
630CONFIG_VT_CONSOLE=y 635CONFIG_VT_CONSOLE=y
631CONFIG_HW_CONSOLE=y 636CONFIG_HW_CONSOLE=y
632CONFIG_VT_HW_CONSOLE_BINDING=y 637CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -657,6 +662,7 @@ CONFIG_GEN_RTC_X=y
657# CONFIG_POWER_SUPPLY is not set 662# CONFIG_POWER_SUPPLY is not set
658# CONFIG_HWMON is not set 663# CONFIG_HWMON is not set
659# CONFIG_THERMAL is not set 664# CONFIG_THERMAL is not set
665# CONFIG_THERMAL_HWMON is not set
660# CONFIG_WATCHDOG is not set 666# CONFIG_WATCHDOG is not set
661 667
662# 668#
@@ -668,8 +674,10 @@ CONFIG_SSB_POSSIBLE=y
668# 674#
669# Multifunction device drivers 675# Multifunction device drivers
670# 676#
677# CONFIG_MFD_CORE is not set
671# CONFIG_MFD_SM501 is not set 678# CONFIG_MFD_SM501 is not set
672# CONFIG_HTC_PASIC3 is not set 679# CONFIG_HTC_PASIC3 is not set
680# CONFIG_MFD_TMIO is not set
673 681
674# 682#
675# Multimedia devices 683# Multimedia devices
@@ -737,10 +745,6 @@ CONFIG_LOGO=y
737CONFIG_LOGO_LINUX_MONO=y 745CONFIG_LOGO_LINUX_MONO=y
738CONFIG_LOGO_LINUX_VGA16=y 746CONFIG_LOGO_LINUX_VGA16=y
739CONFIG_LOGO_LINUX_CLUT224=y 747CONFIG_LOGO_LINUX_CLUT224=y
740
741#
742# Sound
743#
744# CONFIG_SOUND is not set 748# CONFIG_SOUND is not set
745CONFIG_HID_SUPPORT=y 749CONFIG_HID_SUPPORT=y
746CONFIG_HID=m 750CONFIG_HID=m
@@ -752,6 +756,7 @@ CONFIG_HIDRAW=y
752# CONFIG_NEW_LEDS is not set 756# CONFIG_NEW_LEDS is not set
753# CONFIG_ACCESSIBILITY is not set 757# CONFIG_ACCESSIBILITY is not set
754# CONFIG_RTC_CLASS is not set 758# CONFIG_RTC_CLASS is not set
759# CONFIG_DMADEVICES is not set
755# CONFIG_UIO is not set 760# CONFIG_UIO is not set
756 761
757# 762#
@@ -786,6 +791,7 @@ CONFIG_XFS_FS=m
786CONFIG_OCFS2_FS=m 791CONFIG_OCFS2_FS=m
787CONFIG_OCFS2_FS_O2CB=m 792CONFIG_OCFS2_FS_O2CB=m
788CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 793CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
794# CONFIG_OCFS2_FS_STATS is not set
789# CONFIG_OCFS2_DEBUG_MASKLOG is not set 795# CONFIG_OCFS2_DEBUG_MASKLOG is not set
790# CONFIG_OCFS2_DEBUG_FS is not set 796# CONFIG_OCFS2_DEBUG_FS is not set
791CONFIG_DNOTIFY=y 797CONFIG_DNOTIFY=y
@@ -845,6 +851,7 @@ CONFIG_HFSPLUS_FS=m
845CONFIG_CRAMFS=m 851CONFIG_CRAMFS=m
846# CONFIG_VXFS_FS is not set 852# CONFIG_VXFS_FS is not set
847CONFIG_MINIX_FS=y 853CONFIG_MINIX_FS=y
854# CONFIG_OMFS_FS is not set
848CONFIG_HPFS_FS=m 855CONFIG_HPFS_FS=m
849# CONFIG_QNX4FS_FS is not set 856# CONFIG_QNX4FS_FS is not set
850# CONFIG_ROMFS_FS is not set 857# CONFIG_ROMFS_FS is not set
@@ -857,18 +864,17 @@ CONFIG_NFS_FS=y
857CONFIG_NFS_V3=y 864CONFIG_NFS_V3=y
858# CONFIG_NFS_V3_ACL is not set 865# CONFIG_NFS_V3_ACL is not set
859CONFIG_NFS_V4=y 866CONFIG_NFS_V4=y
867CONFIG_ROOT_NFS=y
860CONFIG_NFSD=m 868CONFIG_NFSD=m
861CONFIG_NFSD_V3=y 869CONFIG_NFSD_V3=y
862# CONFIG_NFSD_V3_ACL is not set 870# CONFIG_NFSD_V3_ACL is not set
863# CONFIG_NFSD_V4 is not set 871# CONFIG_NFSD_V4 is not set
864CONFIG_ROOT_NFS=y
865CONFIG_LOCKD=y 872CONFIG_LOCKD=y
866CONFIG_LOCKD_V4=y 873CONFIG_LOCKD_V4=y
867CONFIG_EXPORTFS=m 874CONFIG_EXPORTFS=m
868CONFIG_NFS_COMMON=y 875CONFIG_NFS_COMMON=y
869CONFIG_SUNRPC=y 876CONFIG_SUNRPC=y
870CONFIG_SUNRPC_GSS=y 877CONFIG_SUNRPC_GSS=y
871CONFIG_SUNRPC_BIND34=y
872CONFIG_RPCSEC_GSS_KRB5=y 878CONFIG_RPCSEC_GSS_KRB5=y
873# CONFIG_RPCSEC_GSS_SPKM3 is not set 879# CONFIG_RPCSEC_GSS_SPKM3 is not set
874CONFIG_SMB_FS=m 880CONFIG_SMB_FS=m
@@ -877,7 +883,6 @@ CONFIG_SMB_NLS_REMOTE="cp437"
877# CONFIG_CIFS is not set 883# CONFIG_CIFS is not set
878# CONFIG_NCP_FS is not set 884# CONFIG_NCP_FS is not set
879CONFIG_CODA_FS=m 885CONFIG_CODA_FS=m
880# CONFIG_CODA_FS_OLD_API is not set
881# CONFIG_AFS_FS is not set 886# CONFIG_AFS_FS is not set
882 887
883# 888#
@@ -942,6 +947,8 @@ CONFIG_MAGIC_SYSRQ=y
942# CONFIG_HEADERS_CHECK is not set 947# CONFIG_HEADERS_CHECK is not set
943# CONFIG_DEBUG_KERNEL is not set 948# CONFIG_DEBUG_KERNEL is not set
944CONFIG_DEBUG_BUGVERBOSE=y 949CONFIG_DEBUG_BUGVERBOSE=y
950CONFIG_DEBUG_MEMORY_INIT=y
951CONFIG_SYSCTL_SYSCALL_CHECK=y
945# CONFIG_SAMPLES is not set 952# CONFIG_SAMPLES is not set
946 953
947# 954#
@@ -1001,6 +1008,10 @@ CONFIG_CRYPTO_CRC32C=m
1001CONFIG_CRYPTO_MD4=m 1008CONFIG_CRYPTO_MD4=m
1002CONFIG_CRYPTO_MD5=y 1009CONFIG_CRYPTO_MD5=y
1003CONFIG_CRYPTO_MICHAEL_MIC=m 1010CONFIG_CRYPTO_MICHAEL_MIC=m
1011CONFIG_CRYPTO_RMD128=m
1012CONFIG_CRYPTO_RMD160=m
1013CONFIG_CRYPTO_RMD256=m
1014CONFIG_CRYPTO_RMD320=m
1004CONFIG_CRYPTO_SHA1=m 1015CONFIG_CRYPTO_SHA1=m
1005CONFIG_CRYPTO_SHA256=m 1016CONFIG_CRYPTO_SHA256=m
1006CONFIG_CRYPTO_SHA512=m 1017CONFIG_CRYPTO_SHA512=m
@@ -1042,6 +1053,7 @@ CONFIG_BITREVERSE=y
1042# CONFIG_GENERIC_FIND_NEXT_BIT is not set 1053# CONFIG_GENERIC_FIND_NEXT_BIT is not set
1043CONFIG_CRC_CCITT=m 1054CONFIG_CRC_CCITT=m
1044CONFIG_CRC16=m 1055CONFIG_CRC16=m
1056CONFIG_CRC_T10DIF=y
1045CONFIG_CRC_ITU_T=m 1057CONFIG_CRC_ITU_T=m
1046CONFIG_CRC32=y 1058CONFIG_CRC32=y
1047# CONFIG_CRC7 is not set 1059# CONFIG_CRC7 is not set
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 4da736e25333..49896a2a1d72 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -1886,6 +1886,15 @@ config STACKTRACE_SUPPORT
1886 1886
1887source "init/Kconfig" 1887source "init/Kconfig"
1888 1888
1889config PROBE_INITRD_HEADER
1890 bool "Probe initrd header created by addinitrd"
1891 depends on BLK_DEV_INITRD
1892 help
1893 Probe initrd header at the last page of kernel image.
1894 Say Y here if you are using arch/mips/boot/addinitrd.c to
1895 add initrd or initramfs image to the kernel image.
1896 Otherwise, say N.
1897
1889menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)" 1898menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
1890 1899
1891config HW_HAS_EISA 1900config HW_HAS_EISA
diff --git a/arch/mips/emma2rh/markeins/setup.c b/arch/mips/emma2rh/markeins/setup.c
index 822a20e21fa4..b6a23ad539f8 100644
--- a/arch/mips/emma2rh/markeins/setup.c
+++ b/arch/mips/emma2rh/markeins/setup.c
@@ -25,23 +25,9 @@
25#include <linux/init.h> 25#include <linux/init.h>
26#include <linux/kernel.h> 26#include <linux/kernel.h>
27#include <linux/types.h> 27#include <linux/types.h>
28#include <linux/initrd.h> 28
29#include <linux/irq.h>
30#include <linux/ioport.h>
31#include <linux/param.h> /* for HZ */
32#include <linux/root_dev.h>
33#include <linux/serial.h>
34#include <linux/serial_core.h>
35
36#include <asm/cpu.h>
37#include <asm/bootinfo.h>
38#include <asm/addrspace.h>
39#include <asm/time.h> 29#include <asm/time.h>
40#include <asm/bcache.h>
41#include <asm/irq.h>
42#include <asm/reboot.h> 30#include <asm/reboot.h>
43#include <asm/traps.h>
44#include <asm/debug.h>
45 31
46#include <asm/emma2rh/emma2rh.h> 32#include <asm/emma2rh/emma2rh.h>
47 33
diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c
index b59ba6b93cdd..7043f6b9ff3c 100644
--- a/arch/mips/jazz/setup.c
+++ b/arch/mips/jazz/setup.c
@@ -5,33 +5,22 @@
5 * License. See the file "COPYING" in the main directory of this archive 5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details. 6 * for more details.
7 * 7 *
8 * Copyright (C) 1996, 1997, 1998, 2001, 07 by Ralf Baechle 8 * Copyright (C) 1996, 1997, 1998, 2001, 07, 08 by Ralf Baechle
9 * Copyright (C) 2001 MIPS Technologies, Inc. 9 * Copyright (C) 2001 MIPS Technologies, Inc.
10 * Copyright (C) 2007 by Thomas Bogendoerfer 10 * Copyright (C) 2007 by Thomas Bogendoerfer
11 */ 11 */
12#include <linux/eisa.h> 12#include <linux/eisa.h>
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/ioport.h> 14#include <linux/ioport.h>
15#include <linux/sched.h>
16#include <linux/interrupt.h>
17#include <linux/mm.h>
18#include <linux/console.h> 15#include <linux/console.h>
19#include <linux/fb.h>
20#include <linux/pm.h>
21#include <linux/screen_info.h> 16#include <linux/screen_info.h>
22#include <linux/platform_device.h> 17#include <linux/platform_device.h>
23#include <linux/serial_8250.h> 18#include <linux/serial_8250.h>
24 19
25#include <asm/bootinfo.h>
26#include <asm/irq.h>
27#include <asm/jazz.h> 20#include <asm/jazz.h>
28#include <asm/jazzdma.h> 21#include <asm/jazzdma.h>
29#include <asm/reboot.h> 22#include <asm/reboot.h>
30#include <asm/io.h>
31#include <asm/pgtable.h> 23#include <asm/pgtable.h>
32#include <asm/time.h>
33#include <asm/traps.h>
34#include <asm/mc146818-time.h>
35 24
36extern asmlinkage void jazz_handle_int(void); 25extern asmlinkage void jazz_handle_int(void);
37 26
diff --git a/arch/mips/kernel/.gitignore b/arch/mips/kernel/.gitignore
new file mode 100644
index 000000000000..c5f676c3c224
--- /dev/null
+++ b/arch/mips/kernel/.gitignore
@@ -0,0 +1 @@
vmlinux.lds
diff --git a/arch/mips/kernel/kgdb.c b/arch/mips/kernel/kgdb.c
index c5a8b2d21ca4..8f6d58ede33c 100644
--- a/arch/mips/kernel/kgdb.c
+++ b/arch/mips/kernel/kgdb.c
@@ -62,13 +62,13 @@ void arch_kgdb_breakpoint(void)
62 62
63static void kgdb_call_nmi_hook(void *ignored) 63static void kgdb_call_nmi_hook(void *ignored)
64{ 64{
65 kgdb_nmicallback(raw_smp_processor_id(), (void *)0); 65 kgdb_nmicallback(raw_smp_processor_id(), NULL);
66} 66}
67 67
68void kgdb_roundup_cpus(unsigned long flags) 68void kgdb_roundup_cpus(unsigned long flags)
69{ 69{
70 local_irq_enable(); 70 local_irq_enable();
71 smp_call_function(kgdb_call_nmi_hook, NULL, NULL); 71 smp_call_function(kgdb_call_nmi_hook, NULL, 0);
72 local_irq_disable(); 72 local_irq_disable();
73} 73}
74 74
@@ -190,9 +190,6 @@ static int kgdb_mips_notify(struct notifier_block *self, unsigned long cmd,
190 struct pt_regs *regs = args->regs; 190 struct pt_regs *regs = args->regs;
191 int trap = (regs->cp0_cause & 0x7c) >> 2; 191 int trap = (regs->cp0_cause & 0x7c) >> 2;
192 192
193 if (fixup_exception(regs))
194 return NOTIFY_DONE;
195
196 /* Userpace events, ignore. */ 193 /* Userpace events, ignore. */
197 if (user_mode(regs)) 194 if (user_mode(regs))
198 return NOTIFY_DONE; 195 return NOTIFY_DONE;
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index fc4fd4d705e2..5e75a316f6b1 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -647,6 +647,12 @@ einval: li v0, -EINVAL
647 sys sys_timerfd_create 2 647 sys sys_timerfd_create 2
648 sys sys_timerfd_gettime 2 648 sys sys_timerfd_gettime 2
649 sys sys_timerfd_settime 4 649 sys sys_timerfd_settime 4
650 sys sys_signalfd4 4
651 sys sys_eventfd2 2 /* 4325 */
652 sys sys_epoll_create1 1
653 sys sys_dup3 3
654 sys sys_pipe2 2
655 sys sys_inotify_init1 1
650 .endm 656 .endm
651 657
652 /* We pre-compute the number of _instruction_ bytes needed to 658 /* 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 2b73fd1e4528..3d58204c9d44 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -481,4 +481,10 @@ sys_call_table:
481 PTR sys_timerfd_create /* 5280 */ 481 PTR sys_timerfd_create /* 5280 */
482 PTR sys_timerfd_gettime 482 PTR sys_timerfd_gettime
483 PTR sys_timerfd_settime 483 PTR sys_timerfd_settime
484 PTR sys_signalfd4
485 PTR sys_eventfd2
486 PTR sys_epoll_create1 /* 5285 */
487 PTR sys_dup3
488 PTR sys_pipe2
489 PTR sys_inotify_init1
484 .size sys_call_table,.-sys_call_table 490 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 2654e75d2fef..da7f1b6ea0fb 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -407,4 +407,10 @@ EXPORT(sysn32_call_table)
407 PTR sys_timerfd_create 407 PTR sys_timerfd_create
408 PTR sys_timerfd_gettime /* 5285 */ 408 PTR sys_timerfd_gettime /* 5285 */
409 PTR sys_timerfd_settime 409 PTR sys_timerfd_settime
410 PTR sys_signalfd4
411 PTR sys_eventfd2
412 PTR sys_epoll_create1
413 PTR sys_dup3 /* 5290 */
414 PTR sys_pipe2
415 PTR sys_inotify_init1
410 .size sysn32_call_table,.-sysn32_call_table 416 .size sysn32_call_table,.-sysn32_call_table
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 76167bea5a70..d7cd1aac9ada 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -529,4 +529,10 @@ sys_call_table:
529 PTR sys_timerfd_create 529 PTR sys_timerfd_create
530 PTR sys_timerfd_gettime 530 PTR sys_timerfd_gettime
531 PTR sys_timerfd_settime 531 PTR sys_timerfd_settime
532 PTR compat_sys_signalfd4
533 PTR sys_eventfd2 /* 4325 */
534 PTR sys_epoll_create1
535 PTR sys_dup3
536 PTR sys_pipe2
537 PTR sys_inotify_init1
532 .size sys_call_table,.-sys_call_table 538 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 8af84867e74d..16f8edfe5cdc 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -78,7 +78,7 @@ void __init add_memory_region(phys_t start, phys_t size, long type)
78 78
79 /* Sanity check */ 79 /* Sanity check */
80 if (start + size < start) { 80 if (start + size < start) {
81 printk("Trying to add an invalid memory region, skipped\n"); 81 pr_warning("Trying to add an invalid memory region, skipped\n");
82 return; 82 return;
83 } 83 }
84 84
@@ -92,7 +92,7 @@ void __init add_memory_region(phys_t start, phys_t size, long type)
92 } 92 }
93 93
94 if (x == BOOT_MEM_MAP_MAX) { 94 if (x == BOOT_MEM_MAP_MAX) {
95 printk("Ooops! Too many entries in the memory map!\n"); 95 pr_err("Ooops! Too many entries in the memory map!\n");
96 return; 96 return;
97 } 97 }
98 98
@@ -108,22 +108,22 @@ static void __init print_memory_map(void)
108 const int field = 2 * sizeof(unsigned long); 108 const int field = 2 * sizeof(unsigned long);
109 109
110 for (i = 0; i < boot_mem_map.nr_map; i++) { 110 for (i = 0; i < boot_mem_map.nr_map; i++) {
111 printk(" memory: %0*Lx @ %0*Lx ", 111 printk(KERN_INFO " memory: %0*Lx @ %0*Lx ",
112 field, (unsigned long long) boot_mem_map.map[i].size, 112 field, (unsigned long long) boot_mem_map.map[i].size,
113 field, (unsigned long long) boot_mem_map.map[i].addr); 113 field, (unsigned long long) boot_mem_map.map[i].addr);
114 114
115 switch (boot_mem_map.map[i].type) { 115 switch (boot_mem_map.map[i].type) {
116 case BOOT_MEM_RAM: 116 case BOOT_MEM_RAM:
117 printk("(usable)\n"); 117 printk(KERN_CONT "(usable)\n");
118 break; 118 break;
119 case BOOT_MEM_ROM_DATA: 119 case BOOT_MEM_ROM_DATA:
120 printk("(ROM data)\n"); 120 printk(KERN_CONT "(ROM data)\n");
121 break; 121 break;
122 case BOOT_MEM_RESERVED: 122 case BOOT_MEM_RESERVED:
123 printk("(reserved)\n"); 123 printk(KERN_CONT "(reserved)\n");
124 break; 124 break;
125 default: 125 default:
126 printk("type %lu\n", boot_mem_map.map[i].type); 126 printk(KERN_CONT "type %lu\n", boot_mem_map.map[i].type);
127 break; 127 break;
128 } 128 }
129 } 129 }
@@ -160,36 +160,39 @@ early_param("rd_size", rd_size_early);
160static unsigned long __init init_initrd(void) 160static unsigned long __init init_initrd(void)
161{ 161{
162 unsigned long end; 162 unsigned long end;
163 u32 *initrd_header;
164 163
165 /* 164 /*
166 * Board specific code or command line parser should have 165 * Board specific code or command line parser should have
167 * already set up initrd_start and initrd_end. In these cases 166 * already set up initrd_start and initrd_end. In these cases
168 * perfom sanity checks and use them if all looks good. 167 * perfom sanity checks and use them if all looks good.
169 */ 168 */
170 if (initrd_start && initrd_end > initrd_start) 169 if (!initrd_start || initrd_end <= initrd_start) {
171 goto sanitize; 170#ifdef CONFIG_PROBE_INITRD_HEADER
171 u32 *initrd_header;
172 172
173 /* 173 /*
174 * See if initrd has been added to the kernel image by 174 * See if initrd has been added to the kernel image by
175 * arch/mips/boot/addinitrd.c. In that case a header is 175 * arch/mips/boot/addinitrd.c. In that case a header is
176 * prepended to initrd and is made up by 8 bytes. The fisrt 176 * prepended to initrd and is made up by 8 bytes. The first
177 * word is a magic number and the second one is the size of 177 * word is a magic number and the second one is the size of
178 * initrd. Initrd start must be page aligned in any cases. 178 * initrd. Initrd start must be page aligned in any cases.
179 */ 179 */
180 initrd_header = __va(PAGE_ALIGN(__pa_symbol(&_end) + 8)) - 8; 180 initrd_header = __va(PAGE_ALIGN(__pa_symbol(&_end) + 8)) - 8;
181 if (initrd_header[0] != 0x494E5244) 181 if (initrd_header[0] != 0x494E5244)
182 goto disable;
183 initrd_start = (unsigned long)(initrd_header + 2);
184 initrd_end = initrd_start + initrd_header[1];
185#else
182 goto disable; 186 goto disable;
183 initrd_start = (unsigned long)(initrd_header + 2); 187#endif
184 initrd_end = initrd_start + initrd_header[1]; 188 }
185 189
186sanitize:
187 if (initrd_start & ~PAGE_MASK) { 190 if (initrd_start & ~PAGE_MASK) {
188 printk(KERN_ERR "initrd start must be page aligned\n"); 191 pr_err("initrd start must be page aligned\n");
189 goto disable; 192 goto disable;
190 } 193 }
191 if (initrd_start < PAGE_OFFSET) { 194 if (initrd_start < PAGE_OFFSET) {
192 printk(KERN_ERR "initrd start < PAGE_OFFSET\n"); 195 pr_err("initrd start < PAGE_OFFSET\n");
193 goto disable; 196 goto disable;
194 } 197 }
195 198
@@ -221,18 +224,18 @@ static void __init finalize_initrd(void)
221 goto disable; 224 goto disable;
222 } 225 }
223 if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) { 226 if (__pa(initrd_end) > PFN_PHYS(max_low_pfn)) {
224 printk("Initrd extends beyond end of memory"); 227 printk(KERN_ERR "Initrd extends beyond end of memory");
225 goto disable; 228 goto disable;
226 } 229 }
227 230
228 reserve_bootmem(__pa(initrd_start), size, BOOTMEM_DEFAULT); 231 reserve_bootmem(__pa(initrd_start), size, BOOTMEM_DEFAULT);
229 initrd_below_start_ok = 1; 232 initrd_below_start_ok = 1;
230 233
231 printk(KERN_INFO "Initial ramdisk at: 0x%lx (%lu bytes)\n", 234 pr_info("Initial ramdisk at: 0x%lx (%lu bytes)\n",
232 initrd_start, size); 235 initrd_start, size);
233 return; 236 return;
234disable: 237disable:
235 printk(" - disabling initrd\n"); 238 printk(KERN_CONT " - disabling initrd\n");
236 initrd_start = 0; 239 initrd_start = 0;
237 initrd_end = 0; 240 initrd_end = 0;
238} 241}
@@ -310,14 +313,12 @@ static void __init bootmem_init(void)
310 if (min_low_pfn >= max_low_pfn) 313 if (min_low_pfn >= max_low_pfn)
311 panic("Incorrect memory mapping !!!"); 314 panic("Incorrect memory mapping !!!");
312 if (min_low_pfn > ARCH_PFN_OFFSET) { 315 if (min_low_pfn > ARCH_PFN_OFFSET) {
313 printk(KERN_INFO 316 pr_info("Wasting %lu bytes for tracking %lu unused pages\n",
314 "Wasting %lu bytes for tracking %lu unused pages\n", 317 (min_low_pfn - ARCH_PFN_OFFSET) * sizeof(struct page),
315 (min_low_pfn - ARCH_PFN_OFFSET) * sizeof(struct page), 318 min_low_pfn - ARCH_PFN_OFFSET);
316 min_low_pfn - ARCH_PFN_OFFSET);
317 } else if (min_low_pfn < ARCH_PFN_OFFSET) { 319 } else if (min_low_pfn < ARCH_PFN_OFFSET) {
318 printk(KERN_INFO 320 pr_info("%lu free pages won't be used\n",
319 "%lu free pages won't be used\n", 321 ARCH_PFN_OFFSET - min_low_pfn);
320 ARCH_PFN_OFFSET - min_low_pfn);
321 } 322 }
322 min_low_pfn = ARCH_PFN_OFFSET; 323 min_low_pfn = ARCH_PFN_OFFSET;
323 324
@@ -471,7 +472,7 @@ static void __init arch_mem_init(char **cmdline_p)
471 /* call board setup routine */ 472 /* call board setup routine */
472 plat_mem_setup(); 473 plat_mem_setup();
473 474
474 printk("Determined physical RAM map:\n"); 475 pr_info("Determined physical RAM map:\n");
475 print_memory_map(); 476 print_memory_map();
476 477
477 strlcpy(command_line, arcs_cmdline, sizeof(command_line)); 478 strlcpy(command_line, arcs_cmdline, sizeof(command_line));
@@ -482,7 +483,7 @@ static void __init arch_mem_init(char **cmdline_p)
482 parse_early_param(); 483 parse_early_param();
483 484
484 if (usermem) { 485 if (usermem) {
485 printk("User-defined physical RAM map:\n"); 486 pr_info("User-defined physical RAM map:\n");
486 print_memory_map(); 487 print_memory_map();
487 } 488 }
488 489
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 426cced1e9dc..6bee29097a56 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -373,8 +373,8 @@ void __noreturn die(const char * str, const struct pt_regs * regs)
373 do_exit(SIGSEGV); 373 do_exit(SIGSEGV);
374} 374}
375 375
376extern const struct exception_table_entry __start___dbe_table[]; 376extern struct exception_table_entry __start___dbe_table[];
377extern const struct exception_table_entry __stop___dbe_table[]; 377extern struct exception_table_entry __stop___dbe_table[];
378 378
379__asm__( 379__asm__(
380" .section __dbe_table, \"a\"\n" 380" .section __dbe_table, \"a\"\n"
@@ -1200,7 +1200,7 @@ void *set_except_vector(int n, void *addr)
1200 if (n == 0 && cpu_has_divec) { 1200 if (n == 0 && cpu_has_divec) {
1201 *(u32 *)(ebase + 0x200) = 0x08000000 | 1201 *(u32 *)(ebase + 0x200) = 0x08000000 |
1202 (0x03ffffff & (handler >> 2)); 1202 (0x03ffffff & (handler >> 2));
1203 flush_icache_range(ebase + 0x200, ebase + 0x204); 1203 local_flush_icache_range(ebase + 0x200, ebase + 0x204);
1204 } 1204 }
1205 return (void *)old_handler; 1205 return (void *)old_handler;
1206} 1206}
@@ -1283,7 +1283,8 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1283 *w = (*w & 0xffff0000) | (((u32)handler >> 16) & 0xffff); 1283 *w = (*w & 0xffff0000) | (((u32)handler >> 16) & 0xffff);
1284 w = (u32 *)(b + ori_offset); 1284 w = (u32 *)(b + ori_offset);
1285 *w = (*w & 0xffff0000) | ((u32)handler & 0xffff); 1285 *w = (*w & 0xffff0000) | ((u32)handler & 0xffff);
1286 flush_icache_range((unsigned long)b, (unsigned long)(b+handler_len)); 1286 local_flush_icache_range((unsigned long)b,
1287 (unsigned long)(b+handler_len));
1287 } 1288 }
1288 else { 1289 else {
1289 /* 1290 /*
@@ -1295,7 +1296,8 @@ static void *set_vi_srs_handler(int n, vi_handler_t addr, int srs)
1295 w = (u32 *)b; 1296 w = (u32 *)b;
1296 *w++ = 0x08000000 | (((u32)handler >> 2) & 0x03fffff); /* j handler */ 1297 *w++ = 0x08000000 | (((u32)handler >> 2) & 0x03fffff); /* j handler */
1297 *w = 0; 1298 *w = 0;
1298 flush_icache_range((unsigned long)b, (unsigned long)(b+8)); 1299 local_flush_icache_range((unsigned long)b,
1300 (unsigned long)(b+8));
1299 } 1301 }
1300 1302
1301 return (void *)old_handler; 1303 return (void *)old_handler;
@@ -1515,7 +1517,7 @@ void __cpuinit per_cpu_trap_init(void)
1515void __init set_handler(unsigned long offset, void *addr, unsigned long size) 1517void __init set_handler(unsigned long offset, void *addr, unsigned long size)
1516{ 1518{
1517 memcpy((void *)(ebase + offset), addr, size); 1519 memcpy((void *)(ebase + offset), addr, size);
1518 flush_icache_range(ebase + offset, ebase + offset + size); 1520 local_flush_icache_range(ebase + offset, ebase + offset + size);
1519} 1521}
1520 1522
1521static char panic_null_cerr[] __cpuinitdata = 1523static char panic_null_cerr[] __cpuinitdata =
@@ -1680,6 +1682,8 @@ void __init trap_init(void)
1680 signal32_init(); 1682 signal32_init();
1681#endif 1683#endif
1682 1684
1683 flush_icache_range(ebase, ebase + 0x400); 1685 local_flush_icache_range(ebase, ebase + 0x400);
1684 flush_tlb_handlers(); 1686 flush_tlb_handlers();
1687
1688 sort_extable(__start___dbe_table, __stop___dbe_table);
1685} 1689}
diff --git a/arch/mips/mm/c-r3k.c b/arch/mips/mm/c-r3k.c
index 27a5b466c85c..5500c20c79ae 100644
--- a/arch/mips/mm/c-r3k.c
+++ b/arch/mips/mm/c-r3k.c
@@ -320,6 +320,7 @@ void __cpuinit r3k_cache_init(void)
320 flush_cache_range = r3k_flush_cache_range; 320 flush_cache_range = r3k_flush_cache_range;
321 flush_cache_page = r3k_flush_cache_page; 321 flush_cache_page = r3k_flush_cache_page;
322 flush_icache_range = r3k_flush_icache_range; 322 flush_icache_range = r3k_flush_icache_range;
323 local_flush_icache_range = r3k_flush_icache_range;
323 324
324 flush_cache_sigtramp = r3k_flush_cache_sigtramp; 325 flush_cache_sigtramp = r3k_flush_cache_sigtramp;
325 local_flush_data_cache_page = local_r3k_flush_data_cache_page; 326 local_flush_data_cache_page = local_r3k_flush_data_cache_page;
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 71df3390c07b..6e99665ae860 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -543,12 +543,8 @@ struct flush_icache_range_args {
543 unsigned long end; 543 unsigned long end;
544}; 544};
545 545
546static inline void local_r4k_flush_icache_range(void *args) 546static inline void local_r4k_flush_icache_range(unsigned long start, unsigned long end)
547{ 547{
548 struct flush_icache_range_args *fir_args = args;
549 unsigned long start = fir_args->start;
550 unsigned long end = fir_args->end;
551
552 if (!cpu_has_ic_fills_f_dc) { 548 if (!cpu_has_ic_fills_f_dc) {
553 if (end - start >= dcache_size) { 549 if (end - start >= dcache_size) {
554 r4k_blast_dcache(); 550 r4k_blast_dcache();
@@ -564,6 +560,15 @@ static inline void local_r4k_flush_icache_range(void *args)
564 protected_blast_icache_range(start, end); 560 protected_blast_icache_range(start, end);
565} 561}
566 562
563static inline void local_r4k_flush_icache_range_ipi(void *args)
564{
565 struct flush_icache_range_args *fir_args = args;
566 unsigned long start = fir_args->start;
567 unsigned long end = fir_args->end;
568
569 local_r4k_flush_icache_range(start, end);
570}
571
567static void r4k_flush_icache_range(unsigned long start, unsigned long end) 572static void r4k_flush_icache_range(unsigned long start, unsigned long end)
568{ 573{
569 struct flush_icache_range_args args; 574 struct flush_icache_range_args args;
@@ -571,7 +576,7 @@ static void r4k_flush_icache_range(unsigned long start, unsigned long end)
571 args.start = start; 576 args.start = start;
572 args.end = end; 577 args.end = end;
573 578
574 r4k_on_each_cpu(local_r4k_flush_icache_range, &args, 1); 579 r4k_on_each_cpu(local_r4k_flush_icache_range_ipi, &args, 1);
575 instruction_hazard(); 580 instruction_hazard();
576} 581}
577 582
@@ -1375,6 +1380,7 @@ void __cpuinit r4k_cache_init(void)
1375 local_flush_data_cache_page = local_r4k_flush_data_cache_page; 1380 local_flush_data_cache_page = local_r4k_flush_data_cache_page;
1376 flush_data_cache_page = r4k_flush_data_cache_page; 1381 flush_data_cache_page = r4k_flush_data_cache_page;
1377 flush_icache_range = r4k_flush_icache_range; 1382 flush_icache_range = r4k_flush_icache_range;
1383 local_flush_icache_range = local_r4k_flush_icache_range;
1378 1384
1379#if defined(CONFIG_DMA_NONCOHERENT) 1385#if defined(CONFIG_DMA_NONCOHERENT)
1380 if (coherentio) { 1386 if (coherentio) {
diff --git a/arch/mips/mm/c-tx39.c b/arch/mips/mm/c-tx39.c
index a9f7f1f5e9b4..f7c8f9ce39c1 100644
--- a/arch/mips/mm/c-tx39.c
+++ b/arch/mips/mm/c-tx39.c
@@ -362,6 +362,7 @@ void __cpuinit tx39_cache_init(void)
362 flush_cache_range = (void *) tx39h_flush_icache_all; 362 flush_cache_range = (void *) tx39h_flush_icache_all;
363 flush_cache_page = (void *) tx39h_flush_icache_all; 363 flush_cache_page = (void *) tx39h_flush_icache_all;
364 flush_icache_range = (void *) tx39h_flush_icache_all; 364 flush_icache_range = (void *) tx39h_flush_icache_all;
365 local_flush_icache_range = (void *) tx39h_flush_icache_all;
365 366
366 flush_cache_sigtramp = (void *) tx39h_flush_icache_all; 367 flush_cache_sigtramp = (void *) tx39h_flush_icache_all;
367 local_flush_data_cache_page = (void *) tx39h_flush_icache_all; 368 local_flush_data_cache_page = (void *) tx39h_flush_icache_all;
@@ -390,6 +391,7 @@ void __cpuinit tx39_cache_init(void)
390 flush_cache_range = tx39_flush_cache_range; 391 flush_cache_range = tx39_flush_cache_range;
391 flush_cache_page = tx39_flush_cache_page; 392 flush_cache_page = tx39_flush_cache_page;
392 flush_icache_range = tx39_flush_icache_range; 393 flush_icache_range = tx39_flush_icache_range;
394 local_flush_icache_range = tx39_flush_icache_range;
393 395
394 flush_cache_sigtramp = tx39_flush_cache_sigtramp; 396 flush_cache_sigtramp = tx39_flush_cache_sigtramp;
395 local_flush_data_cache_page = local_tx39_flush_data_cache_page; 397 local_flush_data_cache_page = local_tx39_flush_data_cache_page;
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 034e8506f6ea..1eb7c71e3d6a 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -29,6 +29,7 @@ void (*flush_cache_range)(struct vm_area_struct *vma, unsigned long start,
29void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, 29void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page,
30 unsigned long pfn); 30 unsigned long pfn);
31void (*flush_icache_range)(unsigned long start, unsigned long end); 31void (*flush_icache_range)(unsigned long start, unsigned long end);
32void (*local_flush_icache_range)(unsigned long start, unsigned long end);
32 33
33void (*__flush_cache_vmap)(void); 34void (*__flush_cache_vmap)(void);
34void (*__flush_cache_vunmap)(void); 35void (*__flush_cache_vunmap)(void);
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index 76da73a5ab3c..979cf9197282 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -1273,10 +1273,10 @@ void __cpuinit build_tlb_refill_handler(void)
1273 1273
1274void __cpuinit flush_tlb_handlers(void) 1274void __cpuinit flush_tlb_handlers(void)
1275{ 1275{
1276 flush_icache_range((unsigned long)handle_tlbl, 1276 local_flush_icache_range((unsigned long)handle_tlbl,
1277 (unsigned long)handle_tlbl + sizeof(handle_tlbl)); 1277 (unsigned long)handle_tlbl + sizeof(handle_tlbl));
1278 flush_icache_range((unsigned long)handle_tlbs, 1278 local_flush_icache_range((unsigned long)handle_tlbs,
1279 (unsigned long)handle_tlbs + sizeof(handle_tlbs)); 1279 (unsigned long)handle_tlbs + sizeof(handle_tlbs));
1280 flush_icache_range((unsigned long)handle_tlbm, 1280 local_flush_icache_range((unsigned long)handle_tlbm,
1281 (unsigned long)handle_tlbm + sizeof(handle_tlbm)); 1281 (unsigned long)handle_tlbm + sizeof(handle_tlbm));
1282} 1282}
diff --git a/arch/mips/pci/pci-ip27.c b/arch/mips/pci/pci-ip27.c
index ce92f82b16d2..bd78368c82bf 100644
--- a/arch/mips/pci/pci-ip27.c
+++ b/arch/mips/pci/pci-ip27.c
@@ -205,6 +205,7 @@ int pcibus_to_node(struct pci_bus *bus)
205 205
206 return bc->nasid; 206 return bc->nasid;
207} 207}
208EXPORT_SYMBOL(pcibus_to_node);
208 209
209DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_IOC3, 210DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SGI, PCI_DEVICE_ID_SGI_IOC3,
210 pci_fixup_ioc3); 211 pci_fixup_ioc3);
diff --git a/arch/mips/rb532/devices.c b/arch/mips/rb532/devices.c
index 44fb0a62877f..82ab395efa33 100644
--- a/arch/mips/rb532/devices.c
+++ b/arch/mips/rb532/devices.c
@@ -49,8 +49,6 @@
49#define GPIO_ALE (1 << 0x0a) 49#define GPIO_ALE (1 << 0x0a)
50#define GPIO_CLE (1 << 0x0b) 50#define GPIO_CLE (1 << 0x0b)
51 51
52extern char *board_type;
53
54static struct resource korina_dev0_res[] = { 52static struct resource korina_dev0_res[] = {
55 { 53 {
56 .name = "korina_regs", 54 .name = "korina_regs",
@@ -265,14 +263,6 @@ static void __init parse_mac_addr(char *macstr)
265} 263}
266 264
267 265
268/* DEVICE CONTROLLER 1 */
269#define CFG_DC_DEV1 ((void *)0xb8010010)
270#define CFG_DC_DEV2 ((void *)0xb8010020)
271#define CFG_DC_DEVBASE 0x0
272#define CFG_DC_DEVMASK 0x4
273#define CFG_DC_DEVC 0x8
274#define CFG_DC_DEVTC 0xC
275
276/* NAND definitions */ 266/* NAND definitions */
277#define NAND_CHIP_DELAY 25 267#define NAND_CHIP_DELAY 25
278 268
@@ -301,16 +291,16 @@ static void __init rb532_nand_setup(void)
301static int __init plat_setup_devices(void) 291static int __init plat_setup_devices(void)
302{ 292{
303 /* Look for the CF card reader */ 293 /* Look for the CF card reader */
304 if (!readl(CFG_DC_DEV1 + CFG_DC_DEVMASK)) 294 if (!readl(IDT434_REG_BASE + DEV1MASK))
305 rb532_devs[1] = NULL; 295 rb532_devs[1] = NULL;
306 else { 296 else {
307 cf_slot0_res[0].start = 297 cf_slot0_res[0].start =
308 readl(CFG_DC_DEV1 + CFG_DC_DEVBASE); 298 readl(IDT434_REG_BASE + DEV1BASE);
309 cf_slot0_res[0].end = cf_slot0_res[0].start + 0x1000; 299 cf_slot0_res[0].end = cf_slot0_res[0].start + 0x1000;
310 } 300 }
311 301
312 /* Read the NAND resources from the device controller */ 302 /* Read the NAND resources from the device controller */
313 nand_slot0_res[0].start = readl(CFG_DC_DEV2 + CFG_DC_DEVBASE); 303 nand_slot0_res[0].start = readl(IDT434_REG_BASE + DEV2BASE);
314 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000; 304 nand_slot0_res[0].end = nand_slot0_res[0].start + 0x1000;
315 305
316 /* Initialise the NAND device */ 306 /* Initialise the NAND device */
diff --git a/arch/mips/sgi-ip22/ip22-platform.c b/arch/mips/sgi-ip22/ip22-platform.c
index 60141235ec40..52486c4d2b01 100644
--- a/arch/mips/sgi-ip22/ip22-platform.c
+++ b/arch/mips/sgi-ip22/ip22-platform.c
@@ -150,7 +150,7 @@ static int __init sgiseeq_devinit(void)
150 return res; 150 return res;
151 151
152 /* Second HPC is missing? */ 152 /* Second HPC is missing? */
153 if (!ip22_is_fullhouse() || 153 if (ip22_is_fullhouse() ||
154 get_dbe(tmp, (unsigned int *)&hpc3c1->pbdma[1])) 154 get_dbe(tmp, (unsigned int *)&hpc3c1->pbdma[1]))
155 return 0; 155 return 0;
156 156
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index 1bc57d0f4c5c..fe6bee09cece 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -53,6 +53,7 @@ txx9_reg_res_init(unsigned int pcode, unsigned long base, unsigned long size)
53 txx9_ce_res[i].name = txx9_ce_res_name[i]; 53 txx9_ce_res[i].name = txx9_ce_res_name[i];
54 } 54 }
55 55
56 txx9_pcode = pcode;
56 sprintf(txx9_pcode_str, "TX%x", pcode); 57 sprintf(txx9_pcode_str, "TX%x", pcode);
57 if (base) { 58 if (base) {
58 txx9_reg_res.start = base & 0xfffffffffULL; 59 txx9_reg_res.start = base & 0xfffffffffULL;
@@ -328,6 +329,9 @@ void __init arch_init_irq(void)
328 329
329void __init plat_time_init(void) 330void __init plat_time_init(void)
330{ 331{
332#ifdef CONFIG_CPU_TX49XX
333 mips_hpt_frequency = txx9_cpu_clock / 2;
334#endif
331 txx9_board_vec->time_init(); 335 txx9_board_vec->time_init();
332} 336}
333 337
diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
index cba36a247e32..92dd1a0ca352 100644
--- a/arch/mips/vr41xx/common/irq.c
+++ b/arch/mips/vr41xx/common/irq.c
@@ -72,6 +72,7 @@ static void irq_dispatch(unsigned int irq)
72 cascade = irq_cascade + irq; 72 cascade = irq_cascade + irq;
73 if (cascade->get_irq != NULL) { 73 if (cascade->get_irq != NULL) {
74 unsigned int source_irq = irq; 74 unsigned int source_irq = irq;
75 int ret;
75 desc = irq_desc + source_irq; 76 desc = irq_desc + source_irq;
76 if (desc->chip->mask_ack) 77 if (desc->chip->mask_ack)
77 desc->chip->mask_ack(source_irq); 78 desc->chip->mask_ack(source_irq);
@@ -79,8 +80,9 @@ static void irq_dispatch(unsigned int irq)
79 desc->chip->mask(source_irq); 80 desc->chip->mask(source_irq);
80 desc->chip->ack(source_irq); 81 desc->chip->ack(source_irq);
81 } 82 }
82 irq = cascade->get_irq(irq); 83 ret = cascade->get_irq(irq);
83 if (irq < 0) 84 irq = ret;
85 if (ret < 0)
84 atomic_inc(&irq_err_count); 86 atomic_inc(&irq_err_count);
85 else 87 else
86 irq_dispatch(irq); 88 irq_dispatch(irq);
diff --git a/arch/mn10300/mm/fault.c b/arch/mn10300/mm/fault.c
index 78f092ca0316..33cf25025dac 100644
--- a/arch/mn10300/mm/fault.c
+++ b/arch/mn10300/mm/fault.c
@@ -174,7 +174,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long fault_code,
174 * If we're in an interrupt or have no user 174 * If we're in an interrupt or have no user
175 * context, we must not take the fault.. 175 * context, we must not take the fault..
176 */ 176 */
177 if (in_interrupt() || !mm) 177 if (in_atomic() || !mm)
178 goto no_context; 178 goto no_context;
179 179
180 down_read(&mm->mmap_sem); 180 down_read(&mm->mmap_sem);
diff --git a/arch/parisc/hpux/fs.c b/arch/parisc/hpux/fs.c
index 1263f00dc35d..12c04c5e558b 100644
--- a/arch/parisc/hpux/fs.c
+++ b/arch/parisc/hpux/fs.c
@@ -84,22 +84,28 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset,
84 if (reclen > buf->count) 84 if (reclen > buf->count)
85 return -EINVAL; 85 return -EINVAL;
86 d_ino = ino; 86 d_ino = ino;
87 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 87 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
88 buf->error = -EOVERFLOW;
88 return -EOVERFLOW; 89 return -EOVERFLOW;
90 }
89 dirent = buf->previous; 91 dirent = buf->previous;
90 if (dirent) 92 if (dirent)
91 put_user(offset, &dirent->d_off); 93 if (put_user(offset, &dirent->d_off))
94 goto Efault;
92 dirent = buf->current_dir; 95 dirent = buf->current_dir;
96 if (put_user(d_ino, &dirent->d_ino) ||
97 put_user(reclen, &dirent->d_reclen) ||
98 put_user(namlen, &dirent->d_namlen) ||
99 copy_to_user(dirent->d_name, name, namlen) ||
100 put_user(0, dirent->d_name + namlen))
101 goto Efault;
93 buf->previous = dirent; 102 buf->previous = dirent;
94 put_user(d_ino, &dirent->d_ino); 103 buf->current_dir = (void __user *)dirent + reclen;
95 put_user(reclen, &dirent->d_reclen);
96 put_user(namlen, &dirent->d_namlen);
97 copy_to_user(dirent->d_name, name, namlen);
98 put_user(0, dirent->d_name + namlen);
99 dirent = (void __user *)dirent + reclen;
100 buf->current_dir = dirent;
101 buf->count -= reclen; 104 buf->count -= reclen;
102 return 0; 105 return 0;
106Efault:
107 buf->error = -EFAULT;
108 return -EFAULT;
103} 109}
104 110
105#undef NAME_OFFSET 111#undef NAME_OFFSET
@@ -126,8 +132,10 @@ int hpux_getdents(unsigned int fd, struct hpux_dirent __user *dirent, unsigned i
126 error = buf.error; 132 error = buf.error;
127 lastdirent = buf.previous; 133 lastdirent = buf.previous;
128 if (lastdirent) { 134 if (lastdirent) {
129 put_user(file->f_pos, &lastdirent->d_off); 135 if (put_user(file->f_pos, &lastdirent->d_off))
130 error = count - buf.count; 136 error = -EFAULT;
137 else
138 error = count - buf.count;
131 } 139 }
132 140
133out_putf: 141out_putf:
diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
index fdacdd4341c9..44138c3e6ea7 100644
--- a/arch/parisc/kernel/module.c
+++ b/arch/parisc/kernel/module.c
@@ -47,7 +47,9 @@
47#include <linux/string.h> 47#include <linux/string.h>
48#include <linux/kernel.h> 48#include <linux/kernel.h>
49#include <linux/bug.h> 49#include <linux/bug.h>
50#include <linux/uaccess.h>
50 51
52#include <asm/sections.h>
51#include <asm/unwind.h> 53#include <asm/unwind.h>
52 54
53#if 0 55#if 0
@@ -860,3 +862,15 @@ void module_arch_cleanup(struct module *mod)
860 deregister_unwind_table(mod); 862 deregister_unwind_table(mod);
861 module_bug_cleanup(mod); 863 module_bug_cleanup(mod);
862} 864}
865
866#ifdef CONFIG_64BIT
867void *dereference_function_descriptor(void *ptr)
868{
869 Elf64_Fdesc *desc = ptr;
870 void *p;
871
872 if (!probe_kernel_address(&desc->addr, p))
873 ptr = p;
874 return ptr;
875}
876#endif
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9155c9312c1e..c6be19e9ceae 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -116,6 +116,11 @@ ifeq ($(CONFIG_6xx),y)
116KBUILD_CFLAGS += -mcpu=powerpc 116KBUILD_CFLAGS += -mcpu=powerpc
117endif 117endif
118 118
119# Work around a gcc code-gen bug with -fno-omit-frame-pointer.
120ifeq ($(CONFIG_FTRACE),y)
121KBUILD_CFLAGS += -mno-sched-epilog
122endif
123
119cpu-as-$(CONFIG_4xx) += -Wa,-m405 124cpu-as-$(CONFIG_4xx) += -Wa,-m405
120cpu-as-$(CONFIG_6xx) += -Wa,-maltivec 125cpu-as-$(CONFIG_6xx) += -Wa,-maltivec
121cpu-as-$(CONFIG_POWER4) += -Wa,-maltivec 126cpu-as-$(CONFIG_POWER4) += -Wa,-maltivec
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index 14174aa24074..717a3bc1352e 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -49,7 +49,7 @@ zlib := inffast.c inflate.c inftrees.c
49zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h 49zlibheader := inffast.h inffixed.h inflate.h inftrees.h infutil.h
50zliblinuxheader := zlib.h zconf.h zutil.h 50zliblinuxheader := zlib.h zconf.h zutil.h
51 51
52$(addprefix $(obj)/,$(zlib) gunzip_util.o main.o): \ 52$(addprefix $(obj)/,$(zlib) cuboot-c2k.o gunzip_util.o main.o prpmc2800.o): \
53 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader)) 53 $(addprefix $(obj)/,$(zliblinuxheader)) $(addprefix $(obj)/,$(zlibheader))
54 54
55src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c 55src-libfdt := fdt.c fdt_ro.c fdt_wip.c fdt_sw.c fdt_rw.c fdt_strerror.c
diff --git a/arch/powerpc/boot/dts/mpc8641_hpcn.dts b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
index ae08761ffff1..d665e767822a 100644
--- a/arch/powerpc/boot/dts/mpc8641_hpcn.dts
+++ b/arch/powerpc/boot/dts/mpc8641_hpcn.dts
@@ -411,7 +411,7 @@
411 0xe000 0 0 1 &i8259 12 2 411 0xe000 0 0 1 &i8259 12 2
412 0xe100 0 0 2 &i8259 9 2 412 0xe100 0 0 2 &i8259 9 2
413 0xe200 0 0 3 &i8259 10 2 413 0xe200 0 0 3 &i8259 10 2
414 0xe300 0 0 4 &i8259 112 414 0xe300 0 0 4 &i8259 11 2
415 415
416 // IDSEL 0x1d Audio 416 // IDSEL 0x1d Audio
417 0xe800 0 0 1 &i8259 6 2 417 0xe800 0 0 1 &i8259 6 2
diff --git a/arch/powerpc/boot/dts/tqm8548-bigflash.dts b/arch/powerpc/boot/dts/tqm8548-bigflash.dts
index 64d2d5bbcdf1..4199e89b4e50 100644
--- a/arch/powerpc/boot/dts/tqm8548-bigflash.dts
+++ b/arch/powerpc/boot/dts/tqm8548-bigflash.dts
@@ -50,13 +50,14 @@
50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot 50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot
51 }; 51 };
52 52
53 soc8548@a0000000 { 53 soc@a0000000 {
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <1>; 55 #size-cells = <1>;
56 device_type = "soc"; 56 device_type = "soc";
57 ranges = <0x0 0xa0000000 0x100000>; 57 ranges = <0x0 0xa0000000 0x100000>;
58 reg = <0xa0000000 0x1000>; // CCSRBAR 58 reg = <0xa0000000 0x1000>; // CCSRBAR
59 bus-frequency = <0>; 59 bus-frequency = <0>;
60 compatible = "fsl,mpc8548-immr", "simple-bus";
60 61
61 memory-controller@2000 { 62 memory-controller@2000 {
62 compatible = "fsl,mpc8548-memory-controller"; 63 compatible = "fsl,mpc8548-memory-controller";
@@ -83,6 +84,11 @@
83 interrupts = <43 2>; 84 interrupts = <43 2>;
84 interrupt-parent = <&mpic>; 85 interrupt-parent = <&mpic>;
85 dfsrr; 86 dfsrr;
87
88 rtc@68 {
89 compatible = "dallas,ds1337";
90 reg = <0x68>;
91 };
86 }; 92 };
87 93
88 i2c@3100 { 94 i2c@3100 {
diff --git a/arch/powerpc/boot/dts/tqm8548.dts b/arch/powerpc/boot/dts/tqm8548.dts
index 2563112cabd3..58ee4185454b 100644
--- a/arch/powerpc/boot/dts/tqm8548.dts
+++ b/arch/powerpc/boot/dts/tqm8548.dts
@@ -50,13 +50,14 @@
50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot 50 reg = <0x00000000 0x00000000>; // Filled in by U-Boot
51 }; 51 };
52 52
53 soc8548@e0000000 { 53 soc@e0000000 {
54 #address-cells = <1>; 54 #address-cells = <1>;
55 #size-cells = <1>; 55 #size-cells = <1>;
56 device_type = "soc"; 56 device_type = "soc";
57 ranges = <0x0 0xe0000000 0x100000>; 57 ranges = <0x0 0xe0000000 0x100000>;
58 reg = <0xe0000000 0x1000>; // CCSRBAR 58 reg = <0xe0000000 0x1000>; // CCSRBAR
59 bus-frequency = <0>; 59 bus-frequency = <0>;
60 compatible = "fsl,mpc8548-immr", "simple-bus";
60 61
61 memory-controller@2000 { 62 memory-controller@2000 {
62 compatible = "fsl,mpc8548-memory-controller"; 63 compatible = "fsl,mpc8548-memory-controller";
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
index 644bf9d4ea00..965c237c122d 100755
--- a/arch/powerpc/boot/wrapper
+++ b/arch/powerpc/boot/wrapper
@@ -165,7 +165,7 @@ cuboot*)
165 binary=y 165 binary=y
166 gzip= 166 gzip=
167 case "$platform" in 167 case "$platform" in
168 *-mpc885ads|*-adder875*|*-ep88xc) 168 *-mpc866ads|*-mpc885ads|*-adder875*|*-ep88xc)
169 platformo=$object/cuboot-8xx.o 169 platformo=$object/cuboot-8xx.o
170 ;; 170 ;;
171 *5200*|*-motionpro) 171 *5200*|*-motionpro)
diff --git a/arch/powerpc/configs/asp8347_defconfig b/arch/powerpc/configs/83xx/asp8347_defconfig
index 60bb4d106c87..5e6780a088ce 100644
--- a/arch/powerpc/configs/asp8347_defconfig
+++ b/arch/powerpc/configs/83xx/asp8347_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.25-rc6 3# Linux kernel version: 2.6.27-rc4
4# Tue May 6 02:21:00 2008 4# Thu Aug 21 00:52:01 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18CONFIG_FSL_EMB_PERFMON=y 18CONFIG_FSL_EMB_PERFMON=y
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -31,6 +32,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
36CONFIG_GENERIC_HWEIGHT=y 40CONFIG_GENERIC_HWEIGHT=y
@@ -50,6 +54,9 @@ CONFIG_AUDIT_ARCH=y
50CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
51# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
52CONFIG_REDBOOT=y 56CONFIG_REDBOOT=y
57CONFIG_HIBERNATE_32=y
58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
59CONFIG_ARCH_SUSPEND_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -92,6 +99,7 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 99CONFIG_PRINTK=y
93CONFIG_BUG=y 100CONFIG_BUG=y
94CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
95CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
96CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -109,24 +117,33 @@ CONFIG_SLUB=y
109# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
112CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
114CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
115CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
116CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
117# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=0 133CONFIG_BASE_SMALL=0
119CONFIG_MODULES=y 134CONFIG_MODULES=y
135# CONFIG_MODULE_FORCE_LOAD is not set
120CONFIG_MODULE_UNLOAD=y 136CONFIG_MODULE_UNLOAD=y
121# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
122# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
123# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
124# CONFIG_KMOD is not set 140CONFIG_KMOD=y
125CONFIG_BLOCK=y 141CONFIG_BLOCK=y
126# CONFIG_LBD is not set 142# CONFIG_LBD is not set
127# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set 144# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
130 147
131# 148#
132# IO Schedulers 149# IO Schedulers
@@ -145,38 +162,49 @@ CONFIG_CLASSIC_RCU=y
145# 162#
146# Platform support 163# Platform support
147# 164#
148# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
149# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
150CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
151# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
152# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
153# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
154# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
155# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
156# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
157CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
158# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
159# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
160# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
161# CONFIG_MPC834x_MDS is not set 180# CONFIG_MPC834x_MDS is not set
162# CONFIG_MPC834x_ITX is not set 181# CONFIG_MPC834x_ITX is not set
163# CONFIG_MPC836x_MDS is not set 182# CONFIG_MPC836x_MDS is not set
183# CONFIG_MPC836x_RDK is not set
164# CONFIG_MPC837x_MDS is not set 184# CONFIG_MPC837x_MDS is not set
165# CONFIG_MPC837x_RDB is not set 185# CONFIG_MPC837x_RDB is not set
166# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
167CONFIG_ASP834x=y 187CONFIG_ASP834x=y
168CONFIG_PPC_MPC834x=y 188CONFIG_PPC_MPC834x=y
189# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
169CONFIG_IPIC=y 193CONFIG_IPIC=y
170# CONFIG_MPIC is not set 194CONFIG_MPIC=y
171# CONFIG_MPIC_WEIRD is not set 195# CONFIG_MPIC_WEIRD is not set
172# CONFIG_PPC_I8259 is not set 196CONFIG_PPC_I8259=y
173# CONFIG_PPC_RTAS is not set 197CONFIG_PPC_RTAS=y
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
174# CONFIG_MMIO_NVRAM is not set 200# CONFIG_MMIO_NVRAM is not set
175# CONFIG_PPC_MPC106 is not set 201CONFIG_PPC_MPC106=y
176# CONFIG_PPC_970_NAP is not set 202# CONFIG_PPC_970_NAP is not set
177# CONFIG_PPC_INDIRECT_IO is not set 203# CONFIG_PPC_INDIRECT_IO is not set
178# CONFIG_GENERIC_IOMAP is not set 204# CONFIG_GENERIC_IOMAP is not set
179# CONFIG_CPU_FREQ is not set 205# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set
180# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
181 209
182# 210#
@@ -192,7 +220,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 220# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 221# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 222CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 223CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 224CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 225# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 226# CONFIG_PREEMPT is not set
@@ -202,6 +230,7 @@ CONFIG_BINFMT_ELF=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
203CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
205CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
206CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
207CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -212,13 +241,17 @@ CONFIG_FLATMEM=y
212CONFIG_FLAT_NODE_MEM_MAP=y 241CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_STATIC is not set 242# CONFIG_SPARSEMEM_STATIC is not set
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
244CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
219CONFIG_VIRT_TO_BUS=y 250CONFIG_VIRT_TO_BUS=y
251CONFIG_FORCE_MAX_ZONEORDER=11
220CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
221# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
222# CONFIG_PM is not set 255# CONFIG_PM is not set
223CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
224CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -226,10 +259,13 @@ CONFIG_ISA_DMA_API=y
226# 259#
227# Bus options 260# Bus options
228# 261#
262# CONFIG_ISA is not set
229CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
230CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
231CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
232CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
267CONFIG_FSL_PCI=y
268CONFIG_PPC_PCI_CHOICE=y
233CONFIG_PCI=y 269CONFIG_PCI=y
234CONFIG_PCI_DOMAINS=y 270CONFIG_PCI_DOMAINS=y
235CONFIG_PCI_SYSCALL=y 271CONFIG_PCI_SYSCALL=y
@@ -239,6 +275,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y
239CONFIG_PCI_LEGACY=y 275CONFIG_PCI_LEGACY=y
240# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
241# CONFIG_HOTPLUG_PCI is not set 277# CONFIG_HOTPLUG_PCI is not set
278# CONFIG_HAS_RAPIDIO is not set
242 279
243# 280#
244# Advanced setup 281# Advanced setup
@@ -248,15 +285,11 @@ CONFIG_PCI_LEGACY=y
248# 285#
249# Default settings for advanced configuration options are used 286# Default settings for advanced configuration options are used
250# 287#
251CONFIG_HIGHMEM_START=0xfe000000
252CONFIG_LOWMEM_SIZE=0x30000000 288CONFIG_LOWMEM_SIZE=0x30000000
289CONFIG_PAGE_OFFSET=0xc0000000
253CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
291CONFIG_PHYSICAL_START=0x00000000
254CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
255CONFIG_BOOT_LOAD=0x00800000
256
257#
258# Networking
259#
260CONFIG_NET=y 293CONFIG_NET=y
261 294
262# 295#
@@ -300,8 +333,6 @@ CONFIG_TCP_CONG_CUBIC=y
300CONFIG_DEFAULT_TCP_CONG="cubic" 333CONFIG_DEFAULT_TCP_CONG="cubic"
301# CONFIG_TCP_MD5SIG is not set 334# CONFIG_TCP_MD5SIG is not set
302# CONFIG_IPV6 is not set 335# CONFIG_IPV6 is not set
303# CONFIG_INET6_XFRM_TUNNEL is not set
304# CONFIG_INET6_TUNNEL is not set
305# CONFIG_NETWORK_SECMARK is not set 336# CONFIG_NETWORK_SECMARK is not set
306# CONFIG_NETFILTER is not set 337# CONFIG_NETFILTER is not set
307# CONFIG_IP_DCCP is not set 338# CONFIG_IP_DCCP is not set
@@ -363,6 +394,7 @@ CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
363# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set 394# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
364# CONFIG_MTD_CMDLINE_PARTS is not set 395# CONFIG_MTD_CMDLINE_PARTS is not set
365CONFIG_MTD_OF_PARTS=y 396CONFIG_MTD_OF_PARTS=y
397# CONFIG_MTD_AR7_PARTS is not set
366 398
367# 399#
368# User Modules And Translation Layers 400# User Modules And Translation Layers
@@ -434,9 +466,11 @@ CONFIG_MTD_PHYSMAP_OF=y
434# 466#
435# CONFIG_MTD_UBI is not set 467# CONFIG_MTD_UBI is not set
436CONFIG_OF_DEVICE=y 468CONFIG_OF_DEVICE=y
469CONFIG_OF_I2C=y
437# CONFIG_PARPORT is not set 470# CONFIG_PARPORT is not set
438CONFIG_BLK_DEV=y 471CONFIG_BLK_DEV=y
439# CONFIG_BLK_DEV_FD is not set 472# CONFIG_BLK_DEV_FD is not set
473# CONFIG_MAC_FLOPPY is not set
440# CONFIG_BLK_CPQ_DA is not set 474# CONFIG_BLK_CPQ_DA is not set
441# CONFIG_BLK_CPQ_CISS_DA is not set 475# CONFIG_BLK_CPQ_CISS_DA is not set
442# CONFIG_BLK_DEV_DAC960 is not set 476# CONFIG_BLK_DEV_DAC960 is not set
@@ -453,12 +487,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
453# CONFIG_BLK_DEV_XIP is not set 487# CONFIG_BLK_DEV_XIP is not set
454# CONFIG_CDROM_PKTCDVD is not set 488# CONFIG_CDROM_PKTCDVD is not set
455# CONFIG_ATA_OVER_ETH is not set 489# CONFIG_ATA_OVER_ETH is not set
490# CONFIG_BLK_DEV_HD is not set
456CONFIG_MISC_DEVICES=y 491CONFIG_MISC_DEVICES=y
457# CONFIG_PHANTOM is not set 492# CONFIG_PHANTOM is not set
458# CONFIG_EEPROM_93CX6 is not set 493# CONFIG_EEPROM_93CX6 is not set
459# CONFIG_SGI_IOC4 is not set 494# CONFIG_SGI_IOC4 is not set
460# CONFIG_TIFM_CORE is not set 495# CONFIG_TIFM_CORE is not set
461# CONFIG_ENCLOSURE_SERVICES is not set 496# CONFIG_ENCLOSURE_SERVICES is not set
497# CONFIG_HP_ILO is not set
462CONFIG_HAVE_IDE=y 498CONFIG_HAVE_IDE=y
463# CONFIG_IDE is not set 499# CONFIG_IDE is not set
464 500
@@ -476,12 +512,15 @@ CONFIG_HAVE_IDE=y
476# 512#
477# IEEE 1394 (FireWire) support 513# IEEE 1394 (FireWire) support
478# 514#
515
516#
517# Enable only one of the two stacks, unless you know what you are doing
518#
479# CONFIG_FIREWIRE is not set 519# CONFIG_FIREWIRE is not set
480# CONFIG_IEEE1394 is not set 520# CONFIG_IEEE1394 is not set
481# CONFIG_I2O is not set 521# CONFIG_I2O is not set
482# CONFIG_MACINTOSH_DRIVERS is not set 522# CONFIG_MACINTOSH_DRIVERS is not set
483CONFIG_NETDEVICES=y 523CONFIG_NETDEVICES=y
484# CONFIG_NETDEVICES_MULTIQUEUE is not set
485# CONFIG_DUMMY is not set 524# CONFIG_DUMMY is not set
486# CONFIG_BONDING is not set 525# CONFIG_BONDING is not set
487# CONFIG_MACVLAN is not set 526# CONFIG_MACVLAN is not set
@@ -508,6 +547,8 @@ CONFIG_PHYLIB=y
508# CONFIG_MDIO_BITBANG is not set 547# CONFIG_MDIO_BITBANG is not set
509CONFIG_NET_ETHERNET=y 548CONFIG_NET_ETHERNET=y
510CONFIG_MII=y 549CONFIG_MII=y
550# CONFIG_MACE is not set
551# CONFIG_BMAC is not set
511# CONFIG_HAPPYMEAL is not set 552# CONFIG_HAPPYMEAL is not set
512# CONFIG_SUNGEM is not set 553# CONFIG_SUNGEM is not set
513# CONFIG_CASSINI is not set 554# CONFIG_CASSINI is not set
@@ -525,7 +566,6 @@ CONFIG_NETDEV_1000=y
525# CONFIG_DL2K is not set 566# CONFIG_DL2K is not set
526# CONFIG_E1000 is not set 567# CONFIG_E1000 is not set
527# CONFIG_E1000E is not set 568# CONFIG_E1000E is not set
528# CONFIG_E1000E_ENABLED is not set
529# CONFIG_IP1000 is not set 569# CONFIG_IP1000 is not set
530# CONFIG_IGB is not set 570# CONFIG_IGB is not set
531# CONFIG_NS83820 is not set 571# CONFIG_NS83820 is not set
@@ -535,14 +575,14 @@ CONFIG_NETDEV_1000=y
535# CONFIG_SIS190 is not set 575# CONFIG_SIS190 is not set
536# CONFIG_SKGE is not set 576# CONFIG_SKGE is not set
537# CONFIG_SKY2 is not set 577# CONFIG_SKY2 is not set
538# CONFIG_SK98LIN is not set
539# CONFIG_VIA_VELOCITY is not set 578# CONFIG_VIA_VELOCITY is not set
540# CONFIG_TIGON3 is not set 579# CONFIG_TIGON3 is not set
541# CONFIG_BNX2 is not set 580# CONFIG_BNX2 is not set
542CONFIG_GIANFAR=y 581CONFIG_GIANFAR=y
543# CONFIG_GFAR_NAPI is not set 582# CONFIG_MV643XX_ETH is not set
544# CONFIG_QLA3XXX is not set 583# CONFIG_QLA3XXX is not set
545# CONFIG_ATL1 is not set 584# CONFIG_ATL1 is not set
585# CONFIG_ATL1E is not set
546# CONFIG_NETDEV_10000 is not set 586# CONFIG_NETDEV_10000 is not set
547# CONFIG_TR is not set 587# CONFIG_TR is not set
548 588
@@ -551,6 +591,7 @@ CONFIG_GIANFAR=y
551# 591#
552# CONFIG_WLAN_PRE80211 is not set 592# CONFIG_WLAN_PRE80211 is not set
553# CONFIG_WLAN_80211 is not set 593# CONFIG_WLAN_80211 is not set
594# CONFIG_IWLWIFI_LEDS is not set
554 595
555# 596#
556# USB Network Adapters 597# USB Network Adapters
@@ -606,6 +647,7 @@ CONFIG_INPUT=y
606# Character devices 647# Character devices
607# 648#
608# CONFIG_VT is not set 649# CONFIG_VT is not set
650CONFIG_DEVKMEM=y
609# CONFIG_SERIAL_NONSTANDARD is not set 651# CONFIG_SERIAL_NONSTANDARD is not set
610# CONFIG_NOZOMI is not set 652# CONFIG_NOZOMI is not set
611 653
@@ -625,16 +667,17 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
625# CONFIG_SERIAL_UARTLITE is not set 667# CONFIG_SERIAL_UARTLITE is not set
626CONFIG_SERIAL_CORE=y 668CONFIG_SERIAL_CORE=y
627CONFIG_SERIAL_CORE_CONSOLE=y 669CONFIG_SERIAL_CORE_CONSOLE=y
670# CONFIG_SERIAL_PMACZILOG is not set
628# CONFIG_SERIAL_JSM is not set 671# CONFIG_SERIAL_JSM is not set
629# CONFIG_SERIAL_OF_PLATFORM is not set 672# CONFIG_SERIAL_OF_PLATFORM is not set
630CONFIG_UNIX98_PTYS=y 673CONFIG_UNIX98_PTYS=y
631CONFIG_LEGACY_PTYS=y 674CONFIG_LEGACY_PTYS=y
632CONFIG_LEGACY_PTY_COUNT=256 675CONFIG_LEGACY_PTY_COUNT=256
676# CONFIG_BRIQ_PANEL is not set
677# CONFIG_HVC_RTAS is not set
633# CONFIG_IPMI_HANDLER is not set 678# CONFIG_IPMI_HANDLER is not set
634# CONFIG_HW_RANDOM is not set 679# CONFIG_HW_RANDOM is not set
635# CONFIG_NVRAM is not set 680# CONFIG_NVRAM is not set
636CONFIG_GEN_RTC=y
637# CONFIG_GEN_RTC_X is not set
638# CONFIG_R3964 is not set 681# CONFIG_R3964 is not set
639# CONFIG_APPLICOM is not set 682# CONFIG_APPLICOM is not set
640# CONFIG_RAW_DRIVER is not set 683# CONFIG_RAW_DRIVER is not set
@@ -643,16 +686,14 @@ CONFIG_DEVPORT=y
643CONFIG_I2C=y 686CONFIG_I2C=y
644CONFIG_I2C_BOARDINFO=y 687CONFIG_I2C_BOARDINFO=y
645CONFIG_I2C_CHARDEV=y 688CONFIG_I2C_CHARDEV=y
689CONFIG_I2C_HELPER_AUTO=y
646 690
647# 691#
648# I2C Algorithms 692# I2C Hardware Bus support
649# 693#
650# CONFIG_I2C_ALGOBIT is not set
651# CONFIG_I2C_ALGOPCF is not set
652# CONFIG_I2C_ALGOPCA is not set
653 694
654# 695#
655# I2C Hardware Bus support 696# PC SMBus host controller drivers
656# 697#
657# CONFIG_I2C_ALI1535 is not set 698# CONFIG_I2C_ALI1535 is not set
658# CONFIG_I2C_ALI1563 is not set 699# CONFIG_I2C_ALI1563 is not set
@@ -660,50 +701,70 @@ CONFIG_I2C_CHARDEV=y
660# CONFIG_I2C_AMD756 is not set 701# CONFIG_I2C_AMD756 is not set
661# CONFIG_I2C_AMD8111 is not set 702# CONFIG_I2C_AMD8111 is not set
662# CONFIG_I2C_I801 is not set 703# CONFIG_I2C_I801 is not set
663# CONFIG_I2C_I810 is not set 704# CONFIG_I2C_ISCH is not set
664# CONFIG_I2C_PIIX4 is not set 705# CONFIG_I2C_PIIX4 is not set
665CONFIG_I2C_MPC=y
666# CONFIG_I2C_NFORCE2 is not set 706# CONFIG_I2C_NFORCE2 is not set
667# CONFIG_I2C_OCORES is not set
668# CONFIG_I2C_PARPORT_LIGHT is not set
669# CONFIG_I2C_PROSAVAGE is not set
670# CONFIG_I2C_SAVAGE4 is not set
671# CONFIG_I2C_SIMTEC is not set
672# CONFIG_I2C_SIS5595 is not set 707# CONFIG_I2C_SIS5595 is not set
673# CONFIG_I2C_SIS630 is not set 708# CONFIG_I2C_SIS630 is not set
674# CONFIG_I2C_SIS96X is not set 709# CONFIG_I2C_SIS96X is not set
675# CONFIG_I2C_TAOS_EVM is not set
676# CONFIG_I2C_STUB is not set
677# CONFIG_I2C_TINY_USB is not set
678# CONFIG_I2C_VIA is not set 710# CONFIG_I2C_VIA is not set
679# CONFIG_I2C_VIAPRO is not set 711# CONFIG_I2C_VIAPRO is not set
712
713#
714# Mac SMBus host controller drivers
715#
716# CONFIG_I2C_HYDRA is not set
717CONFIG_I2C_POWERMAC=y
718
719#
720# I2C system bus drivers (mostly embedded / system-on-chip)
721#
722CONFIG_I2C_MPC=y
723# CONFIG_I2C_OCORES is not set
724# CONFIG_I2C_SIMTEC is not set
725
726#
727# External I2C/SMBus adapter drivers
728#
729# CONFIG_I2C_PARPORT_LIGHT is not set
730# CONFIG_I2C_TAOS_EVM is not set
731# CONFIG_I2C_TINY_USB is not set
732
733#
734# Graphics adapter I2C/DDC channel drivers
735#
680# CONFIG_I2C_VOODOO3 is not set 736# CONFIG_I2C_VOODOO3 is not set
681 737
682# 738#
739# Other I2C/SMBus bus drivers
740#
741# CONFIG_I2C_PCA_PLATFORM is not set
742# CONFIG_I2C_STUB is not set
743
744#
683# Miscellaneous I2C Chip support 745# Miscellaneous I2C Chip support
684# 746#
685# CONFIG_DS1682 is not set 747# CONFIG_DS1682 is not set
748# CONFIG_AT24 is not set
686# CONFIG_SENSORS_EEPROM is not set 749# CONFIG_SENSORS_EEPROM is not set
687# CONFIG_SENSORS_PCF8574 is not set 750# CONFIG_SENSORS_PCF8574 is not set
688# CONFIG_PCF8575 is not set 751# CONFIG_PCF8575 is not set
752# CONFIG_SENSORS_PCA9539 is not set
689# CONFIG_SENSORS_PCF8591 is not set 753# CONFIG_SENSORS_PCF8591 is not set
690# CONFIG_TPS65010 is not set
691# CONFIG_SENSORS_MAX6875 is not set 754# CONFIG_SENSORS_MAX6875 is not set
692# CONFIG_SENSORS_TSL2550 is not set 755# CONFIG_SENSORS_TSL2550 is not set
693# CONFIG_I2C_DEBUG_CORE is not set 756# CONFIG_I2C_DEBUG_CORE is not set
694# CONFIG_I2C_DEBUG_ALGO is not set 757# CONFIG_I2C_DEBUG_ALGO is not set
695# CONFIG_I2C_DEBUG_BUS is not set 758# CONFIG_I2C_DEBUG_BUS is not set
696# CONFIG_I2C_DEBUG_CHIP is not set 759# CONFIG_I2C_DEBUG_CHIP is not set
697
698#
699# SPI support
700#
701# CONFIG_SPI is not set 760# CONFIG_SPI is not set
702# CONFIG_SPI_MASTER is not set 761CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
762# CONFIG_GPIOLIB is not set
703# CONFIG_W1 is not set 763# CONFIG_W1 is not set
704# CONFIG_POWER_SUPPLY is not set 764# CONFIG_POWER_SUPPLY is not set
705CONFIG_HWMON=y 765CONFIG_HWMON=y
706# CONFIG_HWMON_VID is not set 766# CONFIG_HWMON_VID is not set
767# CONFIG_SENSORS_AD7414 is not set
707# CONFIG_SENSORS_AD7418 is not set 768# CONFIG_SENSORS_AD7418 is not set
708# CONFIG_SENSORS_ADM1021 is not set 769# CONFIG_SENSORS_ADM1021 is not set
709# CONFIG_SENSORS_ADM1025 is not set 770# CONFIG_SENSORS_ADM1025 is not set
@@ -713,6 +774,7 @@ CONFIG_HWMON=y
713# CONFIG_SENSORS_ADM9240 is not set 774# CONFIG_SENSORS_ADM9240 is not set
714# CONFIG_SENSORS_ADT7470 is not set 775# CONFIG_SENSORS_ADT7470 is not set
715# CONFIG_SENSORS_ADT7473 is not set 776# CONFIG_SENSORS_ADT7473 is not set
777# CONFIG_SENSORS_AMS is not set
716# CONFIG_SENSORS_ATXP1 is not set 778# CONFIG_SENSORS_ATXP1 is not set
717# CONFIG_SENSORS_DS1621 is not set 779# CONFIG_SENSORS_DS1621 is not set
718# CONFIG_SENSORS_I5K_AMB is not set 780# CONFIG_SENSORS_I5K_AMB is not set
@@ -757,6 +819,7 @@ CONFIG_HWMON=y
757# CONFIG_SENSORS_W83627EHF is not set 819# CONFIG_SENSORS_W83627EHF is not set
758# CONFIG_HWMON_DEBUG_CHIP is not set 820# CONFIG_HWMON_DEBUG_CHIP is not set
759CONFIG_THERMAL=y 821CONFIG_THERMAL=y
822# CONFIG_THERMAL_HWMON is not set
760CONFIG_WATCHDOG=y 823CONFIG_WATCHDOG=y
761# CONFIG_WATCHDOG_NOWAYOUT is not set 824# CONFIG_WATCHDOG_NOWAYOUT is not set
762 825
@@ -764,7 +827,9 @@ CONFIG_WATCHDOG=y
764# Watchdog Device Drivers 827# Watchdog Device Drivers
765# 828#
766# CONFIG_SOFT_WATCHDOG is not set 829# CONFIG_SOFT_WATCHDOG is not set
767CONFIG_83xx_WDT=y 830# CONFIG_ALIM7101_WDT is not set
831# CONFIG_8xxx_WDT is not set
832# CONFIG_WATCHDOG_RTAS is not set
768 833
769# 834#
770# PCI-based Watchdog Cards 835# PCI-based Watchdog Cards
@@ -786,13 +851,25 @@ CONFIG_SSB_POSSIBLE=y
786# 851#
787# Multifunction device drivers 852# Multifunction device drivers
788# 853#
854# CONFIG_MFD_CORE is not set
789# CONFIG_MFD_SM501 is not set 855# CONFIG_MFD_SM501 is not set
856# CONFIG_HTC_PASIC3 is not set
857# CONFIG_MFD_TMIO is not set
790 858
791# 859#
792# Multimedia devices 860# Multimedia devices
793# 861#
862
863#
864# Multimedia core support
865#
794# CONFIG_VIDEO_DEV is not set 866# CONFIG_VIDEO_DEV is not set
795# CONFIG_DVB_CORE is not set 867# CONFIG_DVB_CORE is not set
868# CONFIG_VIDEO_MEDIA is not set
869
870#
871# Multimedia drivers
872#
796CONFIG_DAB=y 873CONFIG_DAB=y
797# CONFIG_USB_DABUSB is not set 874# CONFIG_USB_DABUSB is not set
798 875
@@ -810,10 +887,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
810# Display device support 887# Display device support
811# 888#
812# CONFIG_DISPLAY_SUPPORT is not set 889# CONFIG_DISPLAY_SUPPORT is not set
813
814#
815# Sound
816#
817# CONFIG_SOUND is not set 890# CONFIG_SOUND is not set
818# CONFIG_HID_SUPPORT is not set 891# CONFIG_HID_SUPPORT is not set
819CONFIG_USB_SUPPORT=y 892CONFIG_USB_SUPPORT=y
@@ -831,16 +904,21 @@ CONFIG_USB=y
831CONFIG_USB_DEVICE_CLASS=y 904CONFIG_USB_DEVICE_CLASS=y
832# CONFIG_USB_DYNAMIC_MINORS is not set 905# CONFIG_USB_DYNAMIC_MINORS is not set
833# CONFIG_USB_OTG is not set 906# CONFIG_USB_OTG is not set
907# CONFIG_USB_OTG_WHITELIST is not set
908# CONFIG_USB_OTG_BLACKLIST_HUB is not set
909CONFIG_USB_MON=y
834 910
835# 911#
836# USB Host Controller Drivers 912# USB Host Controller Drivers
837# 913#
914# CONFIG_USB_C67X00_HCD is not set
838CONFIG_USB_EHCI_HCD=y 915CONFIG_USB_EHCI_HCD=y
839CONFIG_USB_EHCI_ROOT_HUB_TT=y 916CONFIG_USB_EHCI_ROOT_HUB_TT=y
840# CONFIG_USB_EHCI_TT_NEWSCHED is not set 917# CONFIG_USB_EHCI_TT_NEWSCHED is not set
841CONFIG_USB_EHCI_FSL=y 918CONFIG_USB_EHCI_FSL=y
842CONFIG_USB_EHCI_HCD_PPC_OF=y 919CONFIG_USB_EHCI_HCD_PPC_OF=y
843# CONFIG_USB_ISP116X_HCD is not set 920# CONFIG_USB_ISP116X_HCD is not set
921# CONFIG_USB_ISP1760_HCD is not set
844# CONFIG_USB_OHCI_HCD is not set 922# CONFIG_USB_OHCI_HCD is not set
845# CONFIG_USB_UHCI_HCD is not set 923# CONFIG_USB_UHCI_HCD is not set
846# CONFIG_USB_SL811_HCD is not set 924# CONFIG_USB_SL811_HCD is not set
@@ -851,6 +929,7 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
851# 929#
852# CONFIG_USB_ACM is not set 930# CONFIG_USB_ACM is not set
853# CONFIG_USB_PRINTER is not set 931# CONFIG_USB_PRINTER is not set
932# CONFIG_USB_WDM is not set
854 933
855# 934#
856# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 935# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -865,7 +944,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
865# USB Imaging devices 944# USB Imaging devices
866# 945#
867# CONFIG_USB_MDC800 is not set 946# CONFIG_USB_MDC800 is not set
868CONFIG_USB_MON=y
869 947
870# 948#
871# USB port drivers 949# USB port drivers
@@ -878,7 +956,6 @@ CONFIG_USB_MON=y
878# CONFIG_USB_EMI62 is not set 956# CONFIG_USB_EMI62 is not set
879# CONFIG_USB_EMI26 is not set 957# CONFIG_USB_EMI26 is not set
880# CONFIG_USB_ADUTUX is not set 958# CONFIG_USB_ADUTUX is not set
881# CONFIG_USB_AUERSWALD is not set
882# CONFIG_USB_RIO500 is not set 959# CONFIG_USB_RIO500 is not set
883# CONFIG_USB_LEGOTOWER is not set 960# CONFIG_USB_LEGOTOWER is not set
884# CONFIG_USB_LCD is not set 961# CONFIG_USB_LCD is not set
@@ -894,18 +971,16 @@ CONFIG_USB_MON=y
894# CONFIG_USB_LD is not set 971# CONFIG_USB_LD is not set
895# CONFIG_USB_TRANCEVIBRATOR is not set 972# CONFIG_USB_TRANCEVIBRATOR is not set
896# CONFIG_USB_IOWARRIOR is not set 973# CONFIG_USB_IOWARRIOR is not set
974# CONFIG_USB_ISIGHTFW is not set
897# CONFIG_USB_GADGET is not set 975# CONFIG_USB_GADGET is not set
898# CONFIG_MMC is not set 976# CONFIG_MMC is not set
899# CONFIG_MEMSTICK is not set 977# CONFIG_MEMSTICK is not set
900# CONFIG_NEW_LEDS is not set 978# CONFIG_NEW_LEDS is not set
979# CONFIG_ACCESSIBILITY is not set
901# CONFIG_INFINIBAND is not set 980# CONFIG_INFINIBAND is not set
902# CONFIG_EDAC is not set 981# CONFIG_EDAC is not set
903CONFIG_RTC_LIB=y 982CONFIG_RTC_LIB=y
904CONFIG_RTC_CLASS=y 983CONFIG_RTC_CLASS=y
905
906#
907# Conflicting RTC option has been selected, check GEN_RTC and RTC
908#
909CONFIG_RTC_HCTOSYS=y 984CONFIG_RTC_HCTOSYS=y
910CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 985CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
911# CONFIG_RTC_DEBUG is not set 986# CONFIG_RTC_DEBUG is not set
@@ -933,6 +1008,7 @@ CONFIG_RTC_DRV_DS1374=y
933# CONFIG_RTC_DRV_PCF8583 is not set 1008# CONFIG_RTC_DRV_PCF8583 is not set
934# CONFIG_RTC_DRV_M41T80 is not set 1009# CONFIG_RTC_DRV_M41T80 is not set
935# CONFIG_RTC_DRV_S35390A is not set 1010# CONFIG_RTC_DRV_S35390A is not set
1011# CONFIG_RTC_DRV_FM3130 is not set
936 1012
937# 1013#
938# SPI RTC drivers 1014# SPI RTC drivers
@@ -953,11 +1029,8 @@ CONFIG_RTC_DRV_DS1374=y
953# 1029#
954# on-CPU RTC drivers 1030# on-CPU RTC drivers
955# 1031#
1032# CONFIG_RTC_DRV_PPC is not set
956# CONFIG_DMADEVICES is not set 1033# CONFIG_DMADEVICES is not set
957
958#
959# Userspace I/O
960#
961# CONFIG_UIO is not set 1034# CONFIG_UIO is not set
962 1035
963# 1036#
@@ -977,7 +1050,6 @@ CONFIG_FS_MBCACHE=y
977# CONFIG_JFS_FS is not set 1050# CONFIG_JFS_FS is not set
978# CONFIG_FS_POSIX_ACL is not set 1051# CONFIG_FS_POSIX_ACL is not set
979# CONFIG_XFS_FS is not set 1052# CONFIG_XFS_FS is not set
980# CONFIG_GFS2_FS is not set
981# CONFIG_OCFS2_FS is not set 1053# CONFIG_OCFS2_FS is not set
982CONFIG_DNOTIFY=y 1054CONFIG_DNOTIFY=y
983CONFIG_INOTIFY=y 1055CONFIG_INOTIFY=y
@@ -1036,6 +1108,7 @@ CONFIG_JFFS2_RTIME=y
1036# CONFIG_CRAMFS is not set 1108# CONFIG_CRAMFS is not set
1037# CONFIG_VXFS_FS is not set 1109# CONFIG_VXFS_FS is not set
1038# CONFIG_MINIX_FS is not set 1110# CONFIG_MINIX_FS is not set
1111# CONFIG_OMFS_FS is not set
1039# CONFIG_HPFS_FS is not set 1112# CONFIG_HPFS_FS is not set
1040# CONFIG_QNX4FS_FS is not set 1113# CONFIG_QNX4FS_FS is not set
1041# CONFIG_ROMFS_FS is not set 1114# CONFIG_ROMFS_FS is not set
@@ -1046,15 +1119,13 @@ CONFIG_NFS_FS=y
1046CONFIG_NFS_V3=y 1119CONFIG_NFS_V3=y
1047# CONFIG_NFS_V3_ACL is not set 1120# CONFIG_NFS_V3_ACL is not set
1048CONFIG_NFS_V4=y 1121CONFIG_NFS_V4=y
1049# CONFIG_NFS_DIRECTIO is not set
1050# CONFIG_NFSD is not set
1051CONFIG_ROOT_NFS=y 1122CONFIG_ROOT_NFS=y
1123# CONFIG_NFSD is not set
1052CONFIG_LOCKD=y 1124CONFIG_LOCKD=y
1053CONFIG_LOCKD_V4=y 1125CONFIG_LOCKD_V4=y
1054CONFIG_NFS_COMMON=y 1126CONFIG_NFS_COMMON=y
1055CONFIG_SUNRPC=y 1127CONFIG_SUNRPC=y
1056CONFIG_SUNRPC_GSS=y 1128CONFIG_SUNRPC_GSS=y
1057# CONFIG_SUNRPC_BIND34 is not set
1058CONFIG_RPCSEC_GSS_KRB5=y 1129CONFIG_RPCSEC_GSS_KRB5=y
1059# CONFIG_RPCSEC_GSS_SPKM3 is not set 1130# CONFIG_RPCSEC_GSS_SPKM3 is not set
1060# CONFIG_SMB_FS is not set 1131# CONFIG_SMB_FS is not set
@@ -1126,8 +1197,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1126# Library routines 1197# Library routines
1127# 1198#
1128CONFIG_BITREVERSE=y 1199CONFIG_BITREVERSE=y
1200# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1129# CONFIG_CRC_CCITT is not set 1201# CONFIG_CRC_CCITT is not set
1130# CONFIG_CRC16 is not set 1202# CONFIG_CRC16 is not set
1203# CONFIG_CRC_T10DIF is not set
1131# CONFIG_CRC_ITU_T is not set 1204# CONFIG_CRC_ITU_T is not set
1132CONFIG_CRC32=y 1205CONFIG_CRC32=y
1133# CONFIG_CRC7 is not set 1206# CONFIG_CRC7 is not set
@@ -1146,6 +1219,7 @@ CONFIG_HAVE_LMB=y
1146# CONFIG_PRINTK_TIME is not set 1219# CONFIG_PRINTK_TIME is not set
1147CONFIG_ENABLE_WARN_DEPRECATED=y 1220CONFIG_ENABLE_WARN_DEPRECATED=y
1148CONFIG_ENABLE_MUST_CHECK=y 1221CONFIG_ENABLE_MUST_CHECK=y
1222CONFIG_FRAME_WARN=1024
1149# CONFIG_MAGIC_SYSRQ is not set 1223# CONFIG_MAGIC_SYSRQ is not set
1150# CONFIG_UNUSED_SYMBOLS is not set 1224# CONFIG_UNUSED_SYMBOLS is not set
1151# CONFIG_DEBUG_FS is not set 1225# CONFIG_DEBUG_FS is not set
@@ -1154,7 +1228,18 @@ CONFIG_ENABLE_MUST_CHECK=y
1154# CONFIG_SLUB_DEBUG_ON is not set 1228# CONFIG_SLUB_DEBUG_ON is not set
1155# CONFIG_SLUB_STATS is not set 1229# CONFIG_SLUB_STATS is not set
1156# CONFIG_DEBUG_BUGVERBOSE is not set 1230# CONFIG_DEBUG_BUGVERBOSE is not set
1231# CONFIG_DEBUG_MEMORY_INIT is not set
1232# CONFIG_LATENCYTOP is not set
1233# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1234CONFIG_HAVE_FTRACE=y
1235CONFIG_HAVE_DYNAMIC_FTRACE=y
1236# CONFIG_FTRACE is not set
1237# CONFIG_SCHED_TRACER is not set
1238# CONFIG_CONTEXT_SWITCH_TRACER is not set
1157# CONFIG_SAMPLES is not set 1239# CONFIG_SAMPLES is not set
1240CONFIG_HAVE_ARCH_KGDB=y
1241# CONFIG_IRQSTACKS is not set
1242# CONFIG_BOOTX_TEXT is not set
1158# CONFIG_PPC_EARLY_DEBUG is not set 1243# CONFIG_PPC_EARLY_DEBUG is not set
1159 1244
1160# 1245#
@@ -1164,51 +1249,86 @@ CONFIG_ENABLE_MUST_CHECK=y
1164# CONFIG_SECURITY is not set 1249# CONFIG_SECURITY is not set
1165# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1250# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1166CONFIG_CRYPTO=y 1251CONFIG_CRYPTO=y
1252
1253#
1254# Crypto core or helper
1255#
1167CONFIG_CRYPTO_ALGAPI=y 1256CONFIG_CRYPTO_ALGAPI=y
1168CONFIG_CRYPTO_BLKCIPHER=y 1257CONFIG_CRYPTO_BLKCIPHER=y
1169# CONFIG_CRYPTO_SEQIV is not set
1170CONFIG_CRYPTO_MANAGER=y 1258CONFIG_CRYPTO_MANAGER=y
1259# CONFIG_CRYPTO_GF128MUL is not set
1260# CONFIG_CRYPTO_NULL is not set
1261# CONFIG_CRYPTO_CRYPTD is not set
1262# CONFIG_CRYPTO_AUTHENC is not set
1263# CONFIG_CRYPTO_TEST is not set
1264
1265#
1266# Authenticated Encryption with Associated Data
1267#
1268# CONFIG_CRYPTO_CCM is not set
1269# CONFIG_CRYPTO_GCM is not set
1270# CONFIG_CRYPTO_SEQIV is not set
1271
1272#
1273# Block modes
1274#
1275CONFIG_CRYPTO_CBC=y
1276# CONFIG_CRYPTO_CTR is not set
1277# CONFIG_CRYPTO_CTS is not set
1278CONFIG_CRYPTO_ECB=m
1279# CONFIG_CRYPTO_LRW is not set
1280CONFIG_CRYPTO_PCBC=m
1281# CONFIG_CRYPTO_XTS is not set
1282
1283#
1284# Hash modes
1285#
1171# CONFIG_CRYPTO_HMAC is not set 1286# CONFIG_CRYPTO_HMAC is not set
1172# CONFIG_CRYPTO_XCBC is not set 1287# CONFIG_CRYPTO_XCBC is not set
1173# CONFIG_CRYPTO_NULL is not set 1288
1289#
1290# Digest
1291#
1292# CONFIG_CRYPTO_CRC32C is not set
1174# CONFIG_CRYPTO_MD4 is not set 1293# CONFIG_CRYPTO_MD4 is not set
1175CONFIG_CRYPTO_MD5=y 1294CONFIG_CRYPTO_MD5=y
1295# CONFIG_CRYPTO_MICHAEL_MIC is not set
1296# CONFIG_CRYPTO_RMD128 is not set
1297# CONFIG_CRYPTO_RMD160 is not set
1298# CONFIG_CRYPTO_RMD256 is not set
1299# CONFIG_CRYPTO_RMD320 is not set
1176# CONFIG_CRYPTO_SHA1 is not set 1300# CONFIG_CRYPTO_SHA1 is not set
1177# CONFIG_CRYPTO_SHA256 is not set 1301# CONFIG_CRYPTO_SHA256 is not set
1178# CONFIG_CRYPTO_SHA512 is not set 1302# CONFIG_CRYPTO_SHA512 is not set
1179# CONFIG_CRYPTO_WP512 is not set
1180# CONFIG_CRYPTO_TGR192 is not set 1303# CONFIG_CRYPTO_TGR192 is not set
1181# CONFIG_CRYPTO_GF128MUL is not set 1304# CONFIG_CRYPTO_WP512 is not set
1182CONFIG_CRYPTO_ECB=m 1305
1183CONFIG_CRYPTO_CBC=y 1306#
1184CONFIG_CRYPTO_PCBC=m 1307# Ciphers
1185# CONFIG_CRYPTO_LRW is not set 1308#
1186# CONFIG_CRYPTO_XTS is not set
1187# CONFIG_CRYPTO_CTR is not set
1188# CONFIG_CRYPTO_GCM is not set
1189# CONFIG_CRYPTO_CCM is not set
1190# CONFIG_CRYPTO_CRYPTD is not set
1191CONFIG_CRYPTO_DES=y
1192# CONFIG_CRYPTO_FCRYPT is not set
1193# CONFIG_CRYPTO_BLOWFISH is not set
1194# CONFIG_CRYPTO_TWOFISH is not set
1195# CONFIG_CRYPTO_SERPENT is not set
1196# CONFIG_CRYPTO_AES is not set 1309# CONFIG_CRYPTO_AES is not set
1310# CONFIG_CRYPTO_ANUBIS is not set
1311# CONFIG_CRYPTO_ARC4 is not set
1312# CONFIG_CRYPTO_BLOWFISH is not set
1313# CONFIG_CRYPTO_CAMELLIA is not set
1197# CONFIG_CRYPTO_CAST5 is not set 1314# CONFIG_CRYPTO_CAST5 is not set
1198# CONFIG_CRYPTO_CAST6 is not set 1315# CONFIG_CRYPTO_CAST6 is not set
1199# CONFIG_CRYPTO_TEA is not set 1316CONFIG_CRYPTO_DES=y
1200# CONFIG_CRYPTO_ARC4 is not set 1317# CONFIG_CRYPTO_FCRYPT is not set
1201# CONFIG_CRYPTO_KHAZAD is not set 1318# CONFIG_CRYPTO_KHAZAD is not set
1202# CONFIG_CRYPTO_ANUBIS is not set
1203# CONFIG_CRYPTO_SEED is not set
1204# CONFIG_CRYPTO_SALSA20 is not set 1319# CONFIG_CRYPTO_SALSA20 is not set
1320# CONFIG_CRYPTO_SEED is not set
1321# CONFIG_CRYPTO_SERPENT is not set
1322# CONFIG_CRYPTO_TEA is not set
1323# CONFIG_CRYPTO_TWOFISH is not set
1324
1325#
1326# Compression
1327#
1205# CONFIG_CRYPTO_DEFLATE is not set 1328# CONFIG_CRYPTO_DEFLATE is not set
1206# CONFIG_CRYPTO_MICHAEL_MIC is not set
1207# CONFIG_CRYPTO_CRC32C is not set
1208# CONFIG_CRYPTO_CAMELLIA is not set
1209# CONFIG_CRYPTO_TEST is not set
1210# CONFIG_CRYPTO_AUTHENC is not set
1211# CONFIG_CRYPTO_LZO is not set 1329# CONFIG_CRYPTO_LZO is not set
1212CONFIG_CRYPTO_HW=y 1330CONFIG_CRYPTO_HW=y
1213# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1331# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1332# CONFIG_CRYPTO_DEV_TALITOS is not set
1214# CONFIG_PPC_CLOCK is not set 1333# CONFIG_PPC_CLOCK is not set
1334# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
index 5428f9f5ed85..2028337868b4 100644
--- a/arch/powerpc/configs/83xx/mpc8313_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8313_rdb_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:21 2008 4# Thu Aug 21 00:52:17 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162CONFIG_MPC831x_RDB=y 176CONFIG_MPC831x_RDB=y
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC831x=y 187CONFIG_PPC_MPC831x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -260,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
262CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
263
264#
265# Networking
266#
267CONFIG_NET=y 293CONFIG_NET=y
268 294
269# 295#
@@ -452,9 +478,11 @@ CONFIG_MTD_NAND_FSL_ELBC=y
452# CONFIG_MTD_UBI is not set 478# CONFIG_MTD_UBI is not set
453CONFIG_OF_DEVICE=y 479CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y 480CONFIG_OF_I2C=y
481CONFIG_OF_SPI=y
455# CONFIG_PARPORT is not set 482# CONFIG_PARPORT is not set
456CONFIG_BLK_DEV=y 483CONFIG_BLK_DEV=y
457# CONFIG_BLK_DEV_FD is not set 484# CONFIG_BLK_DEV_FD is not set
485# CONFIG_MAC_FLOPPY is not set
458# CONFIG_BLK_CPQ_DA is not set 486# CONFIG_BLK_CPQ_DA is not set
459# CONFIG_BLK_CPQ_CISS_DA is not set 487# CONFIG_BLK_CPQ_CISS_DA is not set
460# CONFIG_BLK_DEV_DAC960 is not set 488# CONFIG_BLK_DEV_DAC960 is not set
@@ -471,12 +499,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
471# CONFIG_BLK_DEV_XIP is not set 499# CONFIG_BLK_DEV_XIP is not set
472# CONFIG_CDROM_PKTCDVD is not set 500# CONFIG_CDROM_PKTCDVD is not set
473# CONFIG_ATA_OVER_ETH is not set 501# CONFIG_ATA_OVER_ETH is not set
502# CONFIG_BLK_DEV_HD is not set
474CONFIG_MISC_DEVICES=y 503CONFIG_MISC_DEVICES=y
475# CONFIG_PHANTOM is not set 504# CONFIG_PHANTOM is not set
476# CONFIG_EEPROM_93CX6 is not set 505# CONFIG_EEPROM_93CX6 is not set
477# CONFIG_SGI_IOC4 is not set 506# CONFIG_SGI_IOC4 is not set
478# CONFIG_TIFM_CORE is not set 507# CONFIG_TIFM_CORE is not set
479# CONFIG_ENCLOSURE_SERVICES is not set 508# CONFIG_ENCLOSURE_SERVICES is not set
509# CONFIG_HP_ILO is not set
480CONFIG_HAVE_IDE=y 510CONFIG_HAVE_IDE=y
481# CONFIG_IDE is not set 511# CONFIG_IDE is not set
482 512
@@ -553,7 +583,10 @@ CONFIG_SCSI_LOWLEVEL=y
553# CONFIG_SCSI_DC390T is not set 583# CONFIG_SCSI_DC390T is not set
554# CONFIG_SCSI_NSP32 is not set 584# CONFIG_SCSI_NSP32 is not set
555# CONFIG_SCSI_DEBUG is not set 585# CONFIG_SCSI_DEBUG is not set
586# CONFIG_SCSI_MESH is not set
587# CONFIG_SCSI_MAC53C94 is not set
556# CONFIG_SCSI_SRP is not set 588# CONFIG_SCSI_SRP is not set
589# CONFIG_SCSI_DH is not set
557# CONFIG_ATA is not set 590# CONFIG_ATA is not set
558CONFIG_MD=y 591CONFIG_MD=y
559CONFIG_BLK_DEV_MD=y 592CONFIG_BLK_DEV_MD=y
@@ -570,12 +603,15 @@ CONFIG_MD_RAID1=y
570# 603#
571# IEEE 1394 (FireWire) support 604# IEEE 1394 (FireWire) support
572# 605#
606
607#
608# Enable only one of the two stacks, unless you know what you are doing
609#
573# CONFIG_FIREWIRE is not set 610# CONFIG_FIREWIRE is not set
574# CONFIG_IEEE1394 is not set 611# CONFIG_IEEE1394 is not set
575# CONFIG_I2O is not set 612# CONFIG_I2O is not set
576# CONFIG_MACINTOSH_DRIVERS is not set 613# CONFIG_MACINTOSH_DRIVERS is not set
577CONFIG_NETDEVICES=y 614CONFIG_NETDEVICES=y
578# CONFIG_NETDEVICES_MULTIQUEUE is not set
579# CONFIG_DUMMY is not set 615# CONFIG_DUMMY is not set
580# CONFIG_BONDING is not set 616# CONFIG_BONDING is not set
581# CONFIG_MACVLAN is not set 617# CONFIG_MACVLAN is not set
@@ -602,6 +638,8 @@ CONFIG_CICADA_PHY=y
602# CONFIG_MDIO_BITBANG is not set 638# CONFIG_MDIO_BITBANG is not set
603CONFIG_NET_ETHERNET=y 639CONFIG_NET_ETHERNET=y
604CONFIG_MII=y 640CONFIG_MII=y
641# CONFIG_MACE is not set
642# CONFIG_BMAC is not set
605# CONFIG_HAPPYMEAL is not set 643# CONFIG_HAPPYMEAL is not set
606# CONFIG_SUNGEM is not set 644# CONFIG_SUNGEM is not set
607# CONFIG_CASSINI is not set 645# CONFIG_CASSINI is not set
@@ -638,7 +676,6 @@ CONFIG_NETDEV_1000=y
638# CONFIG_DL2K is not set 676# CONFIG_DL2K is not set
639# CONFIG_E1000 is not set 677# CONFIG_E1000 is not set
640# CONFIG_E1000E is not set 678# CONFIG_E1000E is not set
641# CONFIG_E1000E_ENABLED is not set
642# CONFIG_IP1000 is not set 679# CONFIG_IP1000 is not set
643# CONFIG_IGB is not set 680# CONFIG_IGB is not set
644# CONFIG_NS83820 is not set 681# CONFIG_NS83820 is not set
@@ -652,9 +689,10 @@ CONFIG_NETDEV_1000=y
652# CONFIG_TIGON3 is not set 689# CONFIG_TIGON3 is not set
653# CONFIG_BNX2 is not set 690# CONFIG_BNX2 is not set
654CONFIG_GIANFAR=y 691CONFIG_GIANFAR=y
655CONFIG_GFAR_NAPI=y 692# CONFIG_MV643XX_ETH is not set
656# CONFIG_QLA3XXX is not set 693# CONFIG_QLA3XXX is not set
657# CONFIG_ATL1 is not set 694# CONFIG_ATL1 is not set
695# CONFIG_ATL1E is not set
658CONFIG_NETDEV_10000=y 696CONFIG_NETDEV_10000=y
659# CONFIG_CHELSIO_T1 is not set 697# CONFIG_CHELSIO_T1 is not set
660# CONFIG_CHELSIO_T3 is not set 698# CONFIG_CHELSIO_T3 is not set
@@ -752,11 +790,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
752# CONFIG_SERIAL_UARTLITE is not set 790# CONFIG_SERIAL_UARTLITE is not set
753CONFIG_SERIAL_CORE=y 791CONFIG_SERIAL_CORE=y
754CONFIG_SERIAL_CORE_CONSOLE=y 792CONFIG_SERIAL_CORE_CONSOLE=y
793# CONFIG_SERIAL_PMACZILOG is not set
755# CONFIG_SERIAL_JSM is not set 794# CONFIG_SERIAL_JSM is not set
756# CONFIG_SERIAL_OF_PLATFORM is not set 795# CONFIG_SERIAL_OF_PLATFORM is not set
757CONFIG_UNIX98_PTYS=y 796CONFIG_UNIX98_PTYS=y
758CONFIG_LEGACY_PTYS=y 797CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 798CONFIG_LEGACY_PTY_COUNT=256
799# CONFIG_BRIQ_PANEL is not set
800# CONFIG_HVC_RTAS is not set
760# CONFIG_IPMI_HANDLER is not set 801# CONFIG_IPMI_HANDLER is not set
761CONFIG_HW_RANDOM=y 802CONFIG_HW_RANDOM=y
762# CONFIG_NVRAM is not set 803# CONFIG_NVRAM is not set
@@ -768,43 +809,70 @@ CONFIG_DEVPORT=y
768CONFIG_I2C=y 809CONFIG_I2C=y
769CONFIG_I2C_BOARDINFO=y 810CONFIG_I2C_BOARDINFO=y
770CONFIG_I2C_CHARDEV=y 811CONFIG_I2C_CHARDEV=y
812CONFIG_I2C_HELPER_AUTO=y
771 813
772# 814#
773# I2C Hardware Bus support 815# I2C Hardware Bus support
774# 816#
817
818#
819# PC SMBus host controller drivers
820#
775# CONFIG_I2C_ALI1535 is not set 821# CONFIG_I2C_ALI1535 is not set
776# CONFIG_I2C_ALI1563 is not set 822# CONFIG_I2C_ALI1563 is not set
777# CONFIG_I2C_ALI15X3 is not set 823# CONFIG_I2C_ALI15X3 is not set
778# CONFIG_I2C_AMD756 is not set 824# CONFIG_I2C_AMD756 is not set
779# CONFIG_I2C_AMD8111 is not set 825# CONFIG_I2C_AMD8111 is not set
780# CONFIG_I2C_I801 is not set 826# CONFIG_I2C_I801 is not set
781# CONFIG_I2C_I810 is not set 827# CONFIG_I2C_ISCH is not set
782# CONFIG_I2C_PIIX4 is not set 828# CONFIG_I2C_PIIX4 is not set
783CONFIG_I2C_MPC=y
784# CONFIG_I2C_NFORCE2 is not set 829# CONFIG_I2C_NFORCE2 is not set
785# CONFIG_I2C_OCORES is not set
786# CONFIG_I2C_PARPORT_LIGHT is not set
787# CONFIG_I2C_PROSAVAGE is not set
788# CONFIG_I2C_SAVAGE4 is not set
789# CONFIG_I2C_SIMTEC is not set
790# CONFIG_I2C_SIS5595 is not set 830# CONFIG_I2C_SIS5595 is not set
791# CONFIG_I2C_SIS630 is not set 831# CONFIG_I2C_SIS630 is not set
792# CONFIG_I2C_SIS96X is not set 832# CONFIG_I2C_SIS96X is not set
793# CONFIG_I2C_TAOS_EVM is not set
794# CONFIG_I2C_STUB is not set
795# CONFIG_I2C_TINY_USB is not set
796# CONFIG_I2C_VIA is not set 833# CONFIG_I2C_VIA is not set
797# CONFIG_I2C_VIAPRO is not set 834# CONFIG_I2C_VIAPRO is not set
835
836#
837# Mac SMBus host controller drivers
838#
839# CONFIG_I2C_HYDRA is not set
840CONFIG_I2C_POWERMAC=y
841
842#
843# I2C system bus drivers (mostly embedded / system-on-chip)
844#
845CONFIG_I2C_MPC=y
846# CONFIG_I2C_OCORES is not set
847# CONFIG_I2C_SIMTEC is not set
848
849#
850# External I2C/SMBus adapter drivers
851#
852# CONFIG_I2C_PARPORT_LIGHT is not set
853# CONFIG_I2C_TAOS_EVM is not set
854# CONFIG_I2C_TINY_USB is not set
855
856#
857# Graphics adapter I2C/DDC channel drivers
858#
798# CONFIG_I2C_VOODOO3 is not set 859# CONFIG_I2C_VOODOO3 is not set
860
861#
862# Other I2C/SMBus bus drivers
863#
799# CONFIG_I2C_PCA_PLATFORM is not set 864# CONFIG_I2C_PCA_PLATFORM is not set
865# CONFIG_I2C_STUB is not set
800 866
801# 867#
802# Miscellaneous I2C Chip support 868# Miscellaneous I2C Chip support
803# 869#
804# CONFIG_DS1682 is not set 870# CONFIG_DS1682 is not set
871# CONFIG_AT24 is not set
805# CONFIG_SENSORS_EEPROM is not set 872# CONFIG_SENSORS_EEPROM is not set
806# CONFIG_SENSORS_PCF8574 is not set 873# CONFIG_SENSORS_PCF8574 is not set
807# CONFIG_PCF8575 is not set 874# CONFIG_PCF8575 is not set
875# CONFIG_SENSORS_PCA9539 is not set
808# CONFIG_SENSORS_PCF8591 is not set 876# CONFIG_SENSORS_PCF8591 is not set
809# CONFIG_SENSORS_MAX6875 is not set 877# CONFIG_SENSORS_MAX6875 is not set
810# CONFIG_SENSORS_TSL2550 is not set 878# CONFIG_SENSORS_TSL2550 is not set
@@ -828,11 +896,15 @@ CONFIG_SPI_MPC83xx=y
828# CONFIG_SPI_AT25 is not set 896# CONFIG_SPI_AT25 is not set
829# CONFIG_SPI_SPIDEV is not set 897# CONFIG_SPI_SPIDEV is not set
830# CONFIG_SPI_TLE62X0 is not set 898# CONFIG_SPI_TLE62X0 is not set
899CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
900# CONFIG_GPIOLIB is not set
831# CONFIG_W1 is not set 901# CONFIG_W1 is not set
832# CONFIG_POWER_SUPPLY is not set 902# CONFIG_POWER_SUPPLY is not set
833CONFIG_HWMON=y 903CONFIG_HWMON=y
834# CONFIG_HWMON_VID is not set 904# CONFIG_HWMON_VID is not set
905# CONFIG_SENSORS_AD7414 is not set
835# CONFIG_SENSORS_AD7418 is not set 906# CONFIG_SENSORS_AD7418 is not set
907# CONFIG_SENSORS_ADCXX is not set
836# CONFIG_SENSORS_ADM1021 is not set 908# CONFIG_SENSORS_ADM1021 is not set
837# CONFIG_SENSORS_ADM1025 is not set 909# CONFIG_SENSORS_ADM1025 is not set
838# CONFIG_SENSORS_ADM1026 is not set 910# CONFIG_SENSORS_ADM1026 is not set
@@ -841,6 +913,7 @@ CONFIG_HWMON=y
841# CONFIG_SENSORS_ADM9240 is not set 913# CONFIG_SENSORS_ADM9240 is not set
842# CONFIG_SENSORS_ADT7470 is not set 914# CONFIG_SENSORS_ADT7470 is not set
843# CONFIG_SENSORS_ADT7473 is not set 915# CONFIG_SENSORS_ADT7473 is not set
916# CONFIG_SENSORS_AMS is not set
844# CONFIG_SENSORS_ATXP1 is not set 917# CONFIG_SENSORS_ATXP1 is not set
845# CONFIG_SENSORS_DS1621 is not set 918# CONFIG_SENSORS_DS1621 is not set
846# CONFIG_SENSORS_I5K_AMB is not set 919# CONFIG_SENSORS_I5K_AMB is not set
@@ -886,6 +959,7 @@ CONFIG_HWMON=y
886# CONFIG_SENSORS_W83627EHF is not set 959# CONFIG_SENSORS_W83627EHF is not set
887# CONFIG_HWMON_DEBUG_CHIP is not set 960# CONFIG_HWMON_DEBUG_CHIP is not set
888# CONFIG_THERMAL is not set 961# CONFIG_THERMAL is not set
962# CONFIG_THERMAL_HWMON is not set
889CONFIG_WATCHDOG=y 963CONFIG_WATCHDOG=y
890# CONFIG_WATCHDOG_NOWAYOUT is not set 964# CONFIG_WATCHDOG_NOWAYOUT is not set
891 965
@@ -893,7 +967,9 @@ CONFIG_WATCHDOG=y
893# Watchdog Device Drivers 967# Watchdog Device Drivers
894# 968#
895# CONFIG_SOFT_WATCHDOG is not set 969# CONFIG_SOFT_WATCHDOG is not set
896CONFIG_83xx_WDT=y 970# CONFIG_ALIM7101_WDT is not set
971# CONFIG_8xxx_WDT is not set
972# CONFIG_WATCHDOG_RTAS is not set
897 973
898# 974#
899# PCI-based Watchdog Cards 975# PCI-based Watchdog Cards
@@ -915,8 +991,10 @@ CONFIG_SSB_POSSIBLE=y
915# 991#
916# Multifunction device drivers 992# Multifunction device drivers
917# 993#
994# CONFIG_MFD_CORE is not set
918# CONFIG_MFD_SM501 is not set 995# CONFIG_MFD_SM501 is not set
919# CONFIG_HTC_PASIC3 is not set 996# CONFIG_HTC_PASIC3 is not set
997# CONFIG_MFD_TMIO is not set
920 998
921# 999#
922# Multimedia devices 1000# Multimedia devices
@@ -949,10 +1027,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
949# Display device support 1027# Display device support
950# 1028#
951# CONFIG_DISPLAY_SUPPORT is not set 1029# CONFIG_DISPLAY_SUPPORT is not set
952
953#
954# Sound
955#
956# CONFIG_SOUND is not set 1030# CONFIG_SOUND is not set
957CONFIG_HID_SUPPORT=y 1031CONFIG_HID_SUPPORT=y
958CONFIG_HID=y 1032CONFIG_HID=y
@@ -986,6 +1060,7 @@ CONFIG_USB_DEVICE_CLASS=y
986# CONFIG_USB_OTG is not set 1060# CONFIG_USB_OTG is not set
987# CONFIG_USB_OTG_WHITELIST is not set 1061# CONFIG_USB_OTG_WHITELIST is not set
988# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1062# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1063CONFIG_USB_MON=y
989 1064
990# 1065#
991# USB Host Controller Drivers 1066# USB Host Controller Drivers
@@ -1009,6 +1084,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1009CONFIG_USB_UHCI_HCD=y 1084CONFIG_USB_UHCI_HCD=y
1010# CONFIG_USB_SL811_HCD is not set 1085# CONFIG_USB_SL811_HCD is not set
1011# CONFIG_USB_R8A66597_HCD is not set 1086# CONFIG_USB_R8A66597_HCD is not set
1087# CONFIG_USB_GADGET_MUSB_HDRC is not set
1012 1088
1013# 1089#
1014# USB Device Class drivers 1090# USB Device Class drivers
@@ -1037,6 +1113,7 @@ CONFIG_USB_STORAGE=y
1037# CONFIG_USB_STORAGE_ALAUDA is not set 1113# CONFIG_USB_STORAGE_ALAUDA is not set
1038# CONFIG_USB_STORAGE_ONETOUCH is not set 1114# CONFIG_USB_STORAGE_ONETOUCH is not set
1039# CONFIG_USB_STORAGE_KARMA is not set 1115# CONFIG_USB_STORAGE_KARMA is not set
1116# CONFIG_USB_STORAGE_SIERRA is not set
1040# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1117# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1041# CONFIG_USB_LIBUSUAL is not set 1118# CONFIG_USB_LIBUSUAL is not set
1042 1119
@@ -1045,7 +1122,6 @@ CONFIG_USB_STORAGE=y
1045# 1122#
1046# CONFIG_USB_MDC800 is not set 1123# CONFIG_USB_MDC800 is not set
1047# CONFIG_USB_MICROTEK is not set 1124# CONFIG_USB_MICROTEK is not set
1048CONFIG_USB_MON=y
1049 1125
1050# 1126#
1051# USB port drivers 1127# USB port drivers
@@ -1058,7 +1134,6 @@ CONFIG_USB_MON=y
1058# CONFIG_USB_EMI62 is not set 1134# CONFIG_USB_EMI62 is not set
1059# CONFIG_USB_EMI26 is not set 1135# CONFIG_USB_EMI26 is not set
1060# CONFIG_USB_ADUTUX is not set 1136# CONFIG_USB_ADUTUX is not set
1061# CONFIG_USB_AUERSWALD is not set
1062# CONFIG_USB_RIO500 is not set 1137# CONFIG_USB_RIO500 is not set
1063# CONFIG_USB_LEGOTOWER is not set 1138# CONFIG_USB_LEGOTOWER is not set
1064# CONFIG_USB_LCD is not set 1139# CONFIG_USB_LCD is not set
@@ -1085,7 +1160,7 @@ CONFIG_USB_GADGET_SELECTED=y
1085# CONFIG_USB_GADGET_FSL_USB2 is not set 1160# CONFIG_USB_GADGET_FSL_USB2 is not set
1086CONFIG_USB_GADGET_NET2280=y 1161CONFIG_USB_GADGET_NET2280=y
1087CONFIG_USB_NET2280=y 1162CONFIG_USB_NET2280=y
1088# CONFIG_USB_GADGET_PXA2XX is not set 1163# CONFIG_USB_GADGET_PXA25X is not set
1089# CONFIG_USB_GADGET_M66592 is not set 1164# CONFIG_USB_GADGET_M66592 is not set
1090# CONFIG_USB_GADGET_PXA27X is not set 1165# CONFIG_USB_GADGET_PXA27X is not set
1091# CONFIG_USB_GADGET_GOKU is not set 1166# CONFIG_USB_GADGET_GOKU is not set
@@ -1103,6 +1178,7 @@ CONFIG_USB_ETH_RNDIS=y
1103# CONFIG_USB_G_SERIAL is not set 1178# CONFIG_USB_G_SERIAL is not set
1104# CONFIG_USB_MIDI_GADGET is not set 1179# CONFIG_USB_MIDI_GADGET is not set
1105# CONFIG_USB_G_PRINTER is not set 1180# CONFIG_USB_G_PRINTER is not set
1181# CONFIG_USB_CDC_COMPOSITE is not set
1106# CONFIG_MMC is not set 1182# CONFIG_MMC is not set
1107# CONFIG_MEMSTICK is not set 1183# CONFIG_MEMSTICK is not set
1108# CONFIG_NEW_LEDS is not set 1184# CONFIG_NEW_LEDS is not set
@@ -1138,10 +1214,13 @@ CONFIG_RTC_DRV_DS1307=y
1138# CONFIG_RTC_DRV_PCF8583 is not set 1214# CONFIG_RTC_DRV_PCF8583 is not set
1139# CONFIG_RTC_DRV_M41T80 is not set 1215# CONFIG_RTC_DRV_M41T80 is not set
1140# CONFIG_RTC_DRV_S35390A is not set 1216# CONFIG_RTC_DRV_S35390A is not set
1217# CONFIG_RTC_DRV_FM3130 is not set
1141 1218
1142# 1219#
1143# SPI RTC drivers 1220# SPI RTC drivers
1144# 1221#
1222# CONFIG_RTC_DRV_M41T94 is not set
1223# CONFIG_RTC_DRV_DS1305 is not set
1145# CONFIG_RTC_DRV_MAX6902 is not set 1224# CONFIG_RTC_DRV_MAX6902 is not set
1146# CONFIG_RTC_DRV_R9701 is not set 1225# CONFIG_RTC_DRV_R9701 is not set
1147# CONFIG_RTC_DRV_RS5C348 is not set 1226# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1240,6 +1319,7 @@ CONFIG_JFFS2_RTIME=y
1240# CONFIG_CRAMFS is not set 1319# CONFIG_CRAMFS is not set
1241# CONFIG_VXFS_FS is not set 1320# CONFIG_VXFS_FS is not set
1242# CONFIG_MINIX_FS is not set 1321# CONFIG_MINIX_FS is not set
1322# CONFIG_OMFS_FS is not set
1243# CONFIG_HPFS_FS is not set 1323# CONFIG_HPFS_FS is not set
1244# CONFIG_QNX4FS_FS is not set 1324# CONFIG_QNX4FS_FS is not set
1245# CONFIG_ROMFS_FS is not set 1325# CONFIG_ROMFS_FS is not set
@@ -1250,14 +1330,13 @@ CONFIG_NFS_FS=y
1250CONFIG_NFS_V3=y 1330CONFIG_NFS_V3=y
1251# CONFIG_NFS_V3_ACL is not set 1331# CONFIG_NFS_V3_ACL is not set
1252CONFIG_NFS_V4=y 1332CONFIG_NFS_V4=y
1253# CONFIG_NFSD is not set
1254CONFIG_ROOT_NFS=y 1333CONFIG_ROOT_NFS=y
1334# CONFIG_NFSD is not set
1255CONFIG_LOCKD=y 1335CONFIG_LOCKD=y
1256CONFIG_LOCKD_V4=y 1336CONFIG_LOCKD_V4=y
1257CONFIG_NFS_COMMON=y 1337CONFIG_NFS_COMMON=y
1258CONFIG_SUNRPC=y 1338CONFIG_SUNRPC=y
1259CONFIG_SUNRPC_GSS=y 1339CONFIG_SUNRPC_GSS=y
1260# CONFIG_SUNRPC_BIND34 is not set
1261CONFIG_RPCSEC_GSS_KRB5=y 1340CONFIG_RPCSEC_GSS_KRB5=y
1262# CONFIG_RPCSEC_GSS_SPKM3 is not set 1341# CONFIG_RPCSEC_GSS_SPKM3 is not set
1263# CONFIG_SMB_FS is not set 1342# CONFIG_SMB_FS is not set
@@ -1297,6 +1376,7 @@ CONFIG_BITREVERSE=y
1297# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1376# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1298# CONFIG_CRC_CCITT is not set 1377# CONFIG_CRC_CCITT is not set
1299# CONFIG_CRC16 is not set 1378# CONFIG_CRC16 is not set
1379# CONFIG_CRC_T10DIF is not set
1300# CONFIG_CRC_ITU_T is not set 1380# CONFIG_CRC_ITU_T is not set
1301CONFIG_CRC32=y 1381CONFIG_CRC32=y
1302# CONFIG_CRC7 is not set 1382# CONFIG_CRC7 is not set
@@ -1323,6 +1403,8 @@ CONFIG_FRAME_WARN=1024
1323CONFIG_DEBUG_KERNEL=y 1403CONFIG_DEBUG_KERNEL=y
1324# CONFIG_DEBUG_SHIRQ is not set 1404# CONFIG_DEBUG_SHIRQ is not set
1325CONFIG_DETECT_SOFTLOCKUP=y 1405CONFIG_DETECT_SOFTLOCKUP=y
1406# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1407CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1326CONFIG_SCHED_DEBUG=y 1408CONFIG_SCHED_DEBUG=y
1327# CONFIG_SCHEDSTATS is not set 1409# CONFIG_SCHEDSTATS is not set
1328# CONFIG_TIMER_STATS is not set 1410# CONFIG_TIMER_STATS is not set
@@ -1340,19 +1422,32 @@ CONFIG_SCHED_DEBUG=y
1340# CONFIG_DEBUG_INFO is not set 1422# CONFIG_DEBUG_INFO is not set
1341# CONFIG_DEBUG_VM is not set 1423# CONFIG_DEBUG_VM is not set
1342# CONFIG_DEBUG_WRITECOUNT is not set 1424# CONFIG_DEBUG_WRITECOUNT is not set
1425# CONFIG_DEBUG_MEMORY_INIT is not set
1343# CONFIG_DEBUG_LIST is not set 1426# CONFIG_DEBUG_LIST is not set
1344# CONFIG_DEBUG_SG is not set 1427# CONFIG_DEBUG_SG is not set
1345# CONFIG_BOOT_PRINTK_DELAY is not set 1428# CONFIG_BOOT_PRINTK_DELAY is not set
1346# CONFIG_RCU_TORTURE_TEST is not set 1429# CONFIG_RCU_TORTURE_TEST is not set
1347# CONFIG_BACKTRACE_SELF_TEST is not set 1430# CONFIG_BACKTRACE_SELF_TEST is not set
1348# CONFIG_FAULT_INJECTION is not set 1431# CONFIG_FAULT_INJECTION is not set
1432# CONFIG_LATENCYTOP is not set
1433CONFIG_SYSCTL_SYSCALL_CHECK=y
1434CONFIG_HAVE_FTRACE=y
1435CONFIG_HAVE_DYNAMIC_FTRACE=y
1436# CONFIG_FTRACE is not set
1437# CONFIG_SCHED_TRACER is not set
1438# CONFIG_CONTEXT_SWITCH_TRACER is not set
1349# CONFIG_SAMPLES is not set 1439# CONFIG_SAMPLES is not set
1440CONFIG_HAVE_ARCH_KGDB=y
1441# CONFIG_KGDB is not set
1350# CONFIG_DEBUG_STACKOVERFLOW is not set 1442# CONFIG_DEBUG_STACKOVERFLOW is not set
1351# CONFIG_DEBUG_STACK_USAGE is not set 1443# CONFIG_DEBUG_STACK_USAGE is not set
1352# CONFIG_DEBUG_PAGEALLOC is not set 1444# CONFIG_DEBUG_PAGEALLOC is not set
1353# CONFIG_DEBUGGER is not set 1445# CONFIG_CODE_PATCHING_SELFTEST is not set
1446# CONFIG_FTR_FIXUP_SELFTEST is not set
1447# CONFIG_XMON is not set
1354# CONFIG_IRQSTACKS is not set 1448# CONFIG_IRQSTACKS is not set
1355# CONFIG_BDI_SWITCH is not set 1449# CONFIG_BDI_SWITCH is not set
1450# CONFIG_BOOTX_TEXT is not set
1356# CONFIG_PPC_EARLY_DEBUG is not set 1451# CONFIG_PPC_EARLY_DEBUG is not set
1357 1452
1358# 1453#
@@ -1406,6 +1501,10 @@ CONFIG_CRYPTO_PCBC=m
1406# CONFIG_CRYPTO_MD4 is not set 1501# CONFIG_CRYPTO_MD4 is not set
1407CONFIG_CRYPTO_MD5=y 1502CONFIG_CRYPTO_MD5=y
1408# CONFIG_CRYPTO_MICHAEL_MIC is not set 1503# CONFIG_CRYPTO_MICHAEL_MIC is not set
1504# CONFIG_CRYPTO_RMD128 is not set
1505# CONFIG_CRYPTO_RMD160 is not set
1506# CONFIG_CRYPTO_RMD256 is not set
1507# CONFIG_CRYPTO_RMD320 is not set
1409# CONFIG_CRYPTO_SHA1 is not set 1508# CONFIG_CRYPTO_SHA1 is not set
1410# CONFIG_CRYPTO_SHA256 is not set 1509# CONFIG_CRYPTO_SHA256 is not set
1411# CONFIG_CRYPTO_SHA512 is not set 1510# CONFIG_CRYPTO_SHA512 is not set
@@ -1438,5 +1537,6 @@ CONFIG_CRYPTO_DES=y
1438# CONFIG_CRYPTO_LZO is not set 1537# CONFIG_CRYPTO_LZO is not set
1439CONFIG_CRYPTO_HW=y 1538CONFIG_CRYPTO_HW=y
1440# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1539# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1540# CONFIG_CRYPTO_DEV_TALITOS is not set
1441# CONFIG_PPC_CLOCK is not set 1541# CONFIG_PPC_CLOCK is not set
1442# CONFIG_VIRTUALIZATION is not set 1542# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig b/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
index 9bc3a03ae264..dd80eb0a87a1 100644
--- a/arch/powerpc/configs/83xx/mpc8315_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc8315_rdb_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:21 2008 4# Thu Aug 21 00:52:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162CONFIG_MPC831x_RDB=y 176CONFIG_MPC831x_RDB=y
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC831x=y 187CONFIG_PPC_MPC831x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -260,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
260CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
262CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
263
264#
265# Networking
266#
267CONFIG_NET=y 293CONFIG_NET=y
268 294
269# 295#
@@ -452,9 +478,11 @@ CONFIG_MTD_NAND_IDS=y
452# CONFIG_MTD_UBI is not set 478# CONFIG_MTD_UBI is not set
453CONFIG_OF_DEVICE=y 479CONFIG_OF_DEVICE=y
454CONFIG_OF_I2C=y 480CONFIG_OF_I2C=y
481CONFIG_OF_SPI=y
455# CONFIG_PARPORT is not set 482# CONFIG_PARPORT is not set
456CONFIG_BLK_DEV=y 483CONFIG_BLK_DEV=y
457# CONFIG_BLK_DEV_FD is not set 484# CONFIG_BLK_DEV_FD is not set
485# CONFIG_MAC_FLOPPY is not set
458# CONFIG_BLK_CPQ_DA is not set 486# CONFIG_BLK_CPQ_DA is not set
459# CONFIG_BLK_CPQ_CISS_DA is not set 487# CONFIG_BLK_CPQ_CISS_DA is not set
460# CONFIG_BLK_DEV_DAC960 is not set 488# CONFIG_BLK_DEV_DAC960 is not set
@@ -471,12 +499,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
471# CONFIG_BLK_DEV_XIP is not set 499# CONFIG_BLK_DEV_XIP is not set
472# CONFIG_CDROM_PKTCDVD is not set 500# CONFIG_CDROM_PKTCDVD is not set
473# CONFIG_ATA_OVER_ETH is not set 501# CONFIG_ATA_OVER_ETH is not set
502# CONFIG_BLK_DEV_HD is not set
474CONFIG_MISC_DEVICES=y 503CONFIG_MISC_DEVICES=y
475# CONFIG_PHANTOM is not set 504# CONFIG_PHANTOM is not set
476# CONFIG_EEPROM_93CX6 is not set 505# CONFIG_EEPROM_93CX6 is not set
477# CONFIG_SGI_IOC4 is not set 506# CONFIG_SGI_IOC4 is not set
478# CONFIG_TIFM_CORE is not set 507# CONFIG_TIFM_CORE is not set
479# CONFIG_ENCLOSURE_SERVICES is not set 508# CONFIG_ENCLOSURE_SERVICES is not set
509# CONFIG_HP_ILO is not set
480CONFIG_HAVE_IDE=y 510CONFIG_HAVE_IDE=y
481# CONFIG_IDE is not set 511# CONFIG_IDE is not set
482 512
@@ -554,7 +584,10 @@ CONFIG_SCSI_LOWLEVEL=y
554# CONFIG_SCSI_DC390T is not set 584# CONFIG_SCSI_DC390T is not set
555# CONFIG_SCSI_NSP32 is not set 585# CONFIG_SCSI_NSP32 is not set
556# CONFIG_SCSI_DEBUG is not set 586# CONFIG_SCSI_DEBUG is not set
587# CONFIG_SCSI_MESH is not set
588# CONFIG_SCSI_MAC53C94 is not set
557# CONFIG_SCSI_SRP is not set 589# CONFIG_SCSI_SRP is not set
590# CONFIG_SCSI_DH is not set
558CONFIG_ATA=y 591CONFIG_ATA=y
559# CONFIG_ATA_NONSTANDARD is not set 592# CONFIG_ATA_NONSTANDARD is not set
560CONFIG_SATA_PMP=y 593CONFIG_SATA_PMP=y
@@ -631,12 +664,15 @@ CONFIG_MD_RAID1=y
631# 664#
632# IEEE 1394 (FireWire) support 665# IEEE 1394 (FireWire) support
633# 666#
667
668#
669# Enable only one of the two stacks, unless you know what you are doing
670#
634# CONFIG_FIREWIRE is not set 671# CONFIG_FIREWIRE is not set
635# CONFIG_IEEE1394 is not set 672# CONFIG_IEEE1394 is not set
636# CONFIG_I2O is not set 673# CONFIG_I2O is not set
637# CONFIG_MACINTOSH_DRIVERS is not set 674# CONFIG_MACINTOSH_DRIVERS is not set
638CONFIG_NETDEVICES=y 675CONFIG_NETDEVICES=y
639# CONFIG_NETDEVICES_MULTIQUEUE is not set
640# CONFIG_DUMMY is not set 676# CONFIG_DUMMY is not set
641# CONFIG_BONDING is not set 677# CONFIG_BONDING is not set
642# CONFIG_MACVLAN is not set 678# CONFIG_MACVLAN is not set
@@ -663,6 +699,8 @@ CONFIG_PHYLIB=y
663# CONFIG_MDIO_BITBANG is not set 699# CONFIG_MDIO_BITBANG is not set
664CONFIG_NET_ETHERNET=y 700CONFIG_NET_ETHERNET=y
665CONFIG_MII=y 701CONFIG_MII=y
702# CONFIG_MACE is not set
703# CONFIG_BMAC is not set
666# CONFIG_HAPPYMEAL is not set 704# CONFIG_HAPPYMEAL is not set
667# CONFIG_SUNGEM is not set 705# CONFIG_SUNGEM is not set
668# CONFIG_CASSINI is not set 706# CONFIG_CASSINI is not set
@@ -699,7 +737,6 @@ CONFIG_NETDEV_1000=y
699# CONFIG_DL2K is not set 737# CONFIG_DL2K is not set
700# CONFIG_E1000 is not set 738# CONFIG_E1000 is not set
701# CONFIG_E1000E is not set 739# CONFIG_E1000E is not set
702# CONFIG_E1000E_ENABLED is not set
703# CONFIG_IP1000 is not set 740# CONFIG_IP1000 is not set
704# CONFIG_IGB is not set 741# CONFIG_IGB is not set
705# CONFIG_NS83820 is not set 742# CONFIG_NS83820 is not set
@@ -713,9 +750,10 @@ CONFIG_NETDEV_1000=y
713# CONFIG_TIGON3 is not set 750# CONFIG_TIGON3 is not set
714# CONFIG_BNX2 is not set 751# CONFIG_BNX2 is not set
715CONFIG_GIANFAR=y 752CONFIG_GIANFAR=y
716CONFIG_GFAR_NAPI=y 753# CONFIG_MV643XX_ETH is not set
717# CONFIG_QLA3XXX is not set 754# CONFIG_QLA3XXX is not set
718# CONFIG_ATL1 is not set 755# CONFIG_ATL1 is not set
756# CONFIG_ATL1E is not set
719CONFIG_NETDEV_10000=y 757CONFIG_NETDEV_10000=y
720# CONFIG_CHELSIO_T1 is not set 758# CONFIG_CHELSIO_T1 is not set
721# CONFIG_CHELSIO_T3 is not set 759# CONFIG_CHELSIO_T3 is not set
@@ -813,11 +851,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
813# CONFIG_SERIAL_UARTLITE is not set 851# CONFIG_SERIAL_UARTLITE is not set
814CONFIG_SERIAL_CORE=y 852CONFIG_SERIAL_CORE=y
815CONFIG_SERIAL_CORE_CONSOLE=y 853CONFIG_SERIAL_CORE_CONSOLE=y
854# CONFIG_SERIAL_PMACZILOG is not set
816# CONFIG_SERIAL_JSM is not set 855# CONFIG_SERIAL_JSM is not set
817# CONFIG_SERIAL_OF_PLATFORM is not set 856# CONFIG_SERIAL_OF_PLATFORM is not set
818CONFIG_UNIX98_PTYS=y 857CONFIG_UNIX98_PTYS=y
819CONFIG_LEGACY_PTYS=y 858CONFIG_LEGACY_PTYS=y
820CONFIG_LEGACY_PTY_COUNT=256 859CONFIG_LEGACY_PTY_COUNT=256
860# CONFIG_BRIQ_PANEL is not set
861# CONFIG_HVC_RTAS is not set
821# CONFIG_IPMI_HANDLER is not set 862# CONFIG_IPMI_HANDLER is not set
822CONFIG_HW_RANDOM=y 863CONFIG_HW_RANDOM=y
823# CONFIG_NVRAM is not set 864# CONFIG_NVRAM is not set
@@ -829,43 +870,70 @@ CONFIG_DEVPORT=y
829CONFIG_I2C=y 870CONFIG_I2C=y
830CONFIG_I2C_BOARDINFO=y 871CONFIG_I2C_BOARDINFO=y
831CONFIG_I2C_CHARDEV=y 872CONFIG_I2C_CHARDEV=y
873CONFIG_I2C_HELPER_AUTO=y
832 874
833# 875#
834# I2C Hardware Bus support 876# I2C Hardware Bus support
835# 877#
878
879#
880# PC SMBus host controller drivers
881#
836# CONFIG_I2C_ALI1535 is not set 882# CONFIG_I2C_ALI1535 is not set
837# CONFIG_I2C_ALI1563 is not set 883# CONFIG_I2C_ALI1563 is not set
838# CONFIG_I2C_ALI15X3 is not set 884# CONFIG_I2C_ALI15X3 is not set
839# CONFIG_I2C_AMD756 is not set 885# CONFIG_I2C_AMD756 is not set
840# CONFIG_I2C_AMD8111 is not set 886# CONFIG_I2C_AMD8111 is not set
841# CONFIG_I2C_I801 is not set 887# CONFIG_I2C_I801 is not set
842# CONFIG_I2C_I810 is not set 888# CONFIG_I2C_ISCH is not set
843# CONFIG_I2C_PIIX4 is not set 889# CONFIG_I2C_PIIX4 is not set
844CONFIG_I2C_MPC=y
845# CONFIG_I2C_NFORCE2 is not set 890# CONFIG_I2C_NFORCE2 is not set
846# CONFIG_I2C_OCORES is not set
847# CONFIG_I2C_PARPORT_LIGHT is not set
848# CONFIG_I2C_PROSAVAGE is not set
849# CONFIG_I2C_SAVAGE4 is not set
850# CONFIG_I2C_SIMTEC is not set
851# CONFIG_I2C_SIS5595 is not set 891# CONFIG_I2C_SIS5595 is not set
852# CONFIG_I2C_SIS630 is not set 892# CONFIG_I2C_SIS630 is not set
853# CONFIG_I2C_SIS96X is not set 893# CONFIG_I2C_SIS96X is not set
854# CONFIG_I2C_TAOS_EVM is not set
855# CONFIG_I2C_STUB is not set
856# CONFIG_I2C_TINY_USB is not set
857# CONFIG_I2C_VIA is not set 894# CONFIG_I2C_VIA is not set
858# CONFIG_I2C_VIAPRO is not set 895# CONFIG_I2C_VIAPRO is not set
896
897#
898# Mac SMBus host controller drivers
899#
900# CONFIG_I2C_HYDRA is not set
901CONFIG_I2C_POWERMAC=y
902
903#
904# I2C system bus drivers (mostly embedded / system-on-chip)
905#
906CONFIG_I2C_MPC=y
907# CONFIG_I2C_OCORES is not set
908# CONFIG_I2C_SIMTEC is not set
909
910#
911# External I2C/SMBus adapter drivers
912#
913# CONFIG_I2C_PARPORT_LIGHT is not set
914# CONFIG_I2C_TAOS_EVM is not set
915# CONFIG_I2C_TINY_USB is not set
916
917#
918# Graphics adapter I2C/DDC channel drivers
919#
859# CONFIG_I2C_VOODOO3 is not set 920# CONFIG_I2C_VOODOO3 is not set
921
922#
923# Other I2C/SMBus bus drivers
924#
860# CONFIG_I2C_PCA_PLATFORM is not set 925# CONFIG_I2C_PCA_PLATFORM is not set
926# CONFIG_I2C_STUB is not set
861 927
862# 928#
863# Miscellaneous I2C Chip support 929# Miscellaneous I2C Chip support
864# 930#
865# CONFIG_DS1682 is not set 931# CONFIG_DS1682 is not set
932# CONFIG_AT24 is not set
866# CONFIG_SENSORS_EEPROM is not set 933# CONFIG_SENSORS_EEPROM is not set
867# CONFIG_SENSORS_PCF8574 is not set 934# CONFIG_SENSORS_PCF8574 is not set
868# CONFIG_PCF8575 is not set 935# CONFIG_PCF8575 is not set
936# CONFIG_SENSORS_PCA9539 is not set
869# CONFIG_SENSORS_PCF8591 is not set 937# CONFIG_SENSORS_PCF8591 is not set
870# CONFIG_SENSORS_MAX6875 is not set 938# CONFIG_SENSORS_MAX6875 is not set
871# CONFIG_SENSORS_TSL2550 is not set 939# CONFIG_SENSORS_TSL2550 is not set
@@ -889,11 +957,15 @@ CONFIG_SPI_MPC83xx=y
889# CONFIG_SPI_AT25 is not set 957# CONFIG_SPI_AT25 is not set
890# CONFIG_SPI_SPIDEV is not set 958# CONFIG_SPI_SPIDEV is not set
891# CONFIG_SPI_TLE62X0 is not set 959# CONFIG_SPI_TLE62X0 is not set
960CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
961# CONFIG_GPIOLIB is not set
892# CONFIG_W1 is not set 962# CONFIG_W1 is not set
893# CONFIG_POWER_SUPPLY is not set 963# CONFIG_POWER_SUPPLY is not set
894CONFIG_HWMON=y 964CONFIG_HWMON=y
895# CONFIG_HWMON_VID is not set 965# CONFIG_HWMON_VID is not set
966# CONFIG_SENSORS_AD7414 is not set
896# CONFIG_SENSORS_AD7418 is not set 967# CONFIG_SENSORS_AD7418 is not set
968# CONFIG_SENSORS_ADCXX is not set
897# CONFIG_SENSORS_ADM1021 is not set 969# CONFIG_SENSORS_ADM1021 is not set
898# CONFIG_SENSORS_ADM1025 is not set 970# CONFIG_SENSORS_ADM1025 is not set
899# CONFIG_SENSORS_ADM1026 is not set 971# CONFIG_SENSORS_ADM1026 is not set
@@ -902,6 +974,7 @@ CONFIG_HWMON=y
902# CONFIG_SENSORS_ADM9240 is not set 974# CONFIG_SENSORS_ADM9240 is not set
903# CONFIG_SENSORS_ADT7470 is not set 975# CONFIG_SENSORS_ADT7470 is not set
904# CONFIG_SENSORS_ADT7473 is not set 976# CONFIG_SENSORS_ADT7473 is not set
977# CONFIG_SENSORS_AMS is not set
905# CONFIG_SENSORS_ATXP1 is not set 978# CONFIG_SENSORS_ATXP1 is not set
906# CONFIG_SENSORS_DS1621 is not set 979# CONFIG_SENSORS_DS1621 is not set
907# CONFIG_SENSORS_I5K_AMB is not set 980# CONFIG_SENSORS_I5K_AMB is not set
@@ -947,6 +1020,7 @@ CONFIG_HWMON=y
947# CONFIG_SENSORS_W83627EHF is not set 1020# CONFIG_SENSORS_W83627EHF is not set
948# CONFIG_HWMON_DEBUG_CHIP is not set 1021# CONFIG_HWMON_DEBUG_CHIP is not set
949# CONFIG_THERMAL is not set 1022# CONFIG_THERMAL is not set
1023# CONFIG_THERMAL_HWMON is not set
950CONFIG_WATCHDOG=y 1024CONFIG_WATCHDOG=y
951# CONFIG_WATCHDOG_NOWAYOUT is not set 1025# CONFIG_WATCHDOG_NOWAYOUT is not set
952 1026
@@ -954,7 +1028,9 @@ CONFIG_WATCHDOG=y
954# Watchdog Device Drivers 1028# Watchdog Device Drivers
955# 1029#
956# CONFIG_SOFT_WATCHDOG is not set 1030# CONFIG_SOFT_WATCHDOG is not set
957CONFIG_83xx_WDT=y 1031# CONFIG_ALIM7101_WDT is not set
1032# CONFIG_8xxx_WDT is not set
1033# CONFIG_WATCHDOG_RTAS is not set
958 1034
959# 1035#
960# PCI-based Watchdog Cards 1036# PCI-based Watchdog Cards
@@ -976,8 +1052,10 @@ CONFIG_SSB_POSSIBLE=y
976# 1052#
977# Multifunction device drivers 1053# Multifunction device drivers
978# 1054#
1055# CONFIG_MFD_CORE is not set
979# CONFIG_MFD_SM501 is not set 1056# CONFIG_MFD_SM501 is not set
980# CONFIG_HTC_PASIC3 is not set 1057# CONFIG_HTC_PASIC3 is not set
1058# CONFIG_MFD_TMIO is not set
981 1059
982# 1060#
983# Multimedia devices 1061# Multimedia devices
@@ -1010,10 +1088,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1010# Display device support 1088# Display device support
1011# 1089#
1012# CONFIG_DISPLAY_SUPPORT is not set 1090# CONFIG_DISPLAY_SUPPORT is not set
1013
1014#
1015# Sound
1016#
1017# CONFIG_SOUND is not set 1091# CONFIG_SOUND is not set
1018CONFIG_HID_SUPPORT=y 1092CONFIG_HID_SUPPORT=y
1019CONFIG_HID=y 1093CONFIG_HID=y
@@ -1047,6 +1121,7 @@ CONFIG_USB_DEVICE_CLASS=y
1047# CONFIG_USB_OTG is not set 1121# CONFIG_USB_OTG is not set
1048# CONFIG_USB_OTG_WHITELIST is not set 1122# CONFIG_USB_OTG_WHITELIST is not set
1049# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1123# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1124CONFIG_USB_MON=y
1050 1125
1051# 1126#
1052# USB Host Controller Drivers 1127# USB Host Controller Drivers
@@ -1070,6 +1145,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1070CONFIG_USB_UHCI_HCD=y 1145CONFIG_USB_UHCI_HCD=y
1071# CONFIG_USB_SL811_HCD is not set 1146# CONFIG_USB_SL811_HCD is not set
1072# CONFIG_USB_R8A66597_HCD is not set 1147# CONFIG_USB_R8A66597_HCD is not set
1148# CONFIG_USB_GADGET_MUSB_HDRC is not set
1073 1149
1074# 1150#
1075# USB Device Class drivers 1151# USB Device Class drivers
@@ -1098,6 +1174,7 @@ CONFIG_USB_STORAGE=y
1098# CONFIG_USB_STORAGE_ALAUDA is not set 1174# CONFIG_USB_STORAGE_ALAUDA is not set
1099# CONFIG_USB_STORAGE_ONETOUCH is not set 1175# CONFIG_USB_STORAGE_ONETOUCH is not set
1100# CONFIG_USB_STORAGE_KARMA is not set 1176# CONFIG_USB_STORAGE_KARMA is not set
1177# CONFIG_USB_STORAGE_SIERRA is not set
1101# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1178# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1102# CONFIG_USB_LIBUSUAL is not set 1179# CONFIG_USB_LIBUSUAL is not set
1103 1180
@@ -1106,7 +1183,6 @@ CONFIG_USB_STORAGE=y
1106# 1183#
1107# CONFIG_USB_MDC800 is not set 1184# CONFIG_USB_MDC800 is not set
1108# CONFIG_USB_MICROTEK is not set 1185# CONFIG_USB_MICROTEK is not set
1109CONFIG_USB_MON=y
1110 1186
1111# 1187#
1112# USB port drivers 1188# USB port drivers
@@ -1119,7 +1195,6 @@ CONFIG_USB_MON=y
1119# CONFIG_USB_EMI62 is not set 1195# CONFIG_USB_EMI62 is not set
1120# CONFIG_USB_EMI26 is not set 1196# CONFIG_USB_EMI26 is not set
1121# CONFIG_USB_ADUTUX is not set 1197# CONFIG_USB_ADUTUX is not set
1122# CONFIG_USB_AUERSWALD is not set
1123# CONFIG_USB_RIO500 is not set 1198# CONFIG_USB_RIO500 is not set
1124# CONFIG_USB_LEGOTOWER is not set 1199# CONFIG_USB_LEGOTOWER is not set
1125# CONFIG_USB_LCD is not set 1200# CONFIG_USB_LCD is not set
@@ -1146,7 +1221,7 @@ CONFIG_USB_GADGET_SELECTED=y
1146# CONFIG_USB_GADGET_FSL_USB2 is not set 1221# CONFIG_USB_GADGET_FSL_USB2 is not set
1147CONFIG_USB_GADGET_NET2280=y 1222CONFIG_USB_GADGET_NET2280=y
1148CONFIG_USB_NET2280=y 1223CONFIG_USB_NET2280=y
1149# CONFIG_USB_GADGET_PXA2XX is not set 1224# CONFIG_USB_GADGET_PXA25X is not set
1150# CONFIG_USB_GADGET_M66592 is not set 1225# CONFIG_USB_GADGET_M66592 is not set
1151# CONFIG_USB_GADGET_PXA27X is not set 1226# CONFIG_USB_GADGET_PXA27X is not set
1152# CONFIG_USB_GADGET_GOKU is not set 1227# CONFIG_USB_GADGET_GOKU is not set
@@ -1164,6 +1239,7 @@ CONFIG_USB_ETH_RNDIS=y
1164# CONFIG_USB_G_SERIAL is not set 1239# CONFIG_USB_G_SERIAL is not set
1165# CONFIG_USB_MIDI_GADGET is not set 1240# CONFIG_USB_MIDI_GADGET is not set
1166# CONFIG_USB_G_PRINTER is not set 1241# CONFIG_USB_G_PRINTER is not set
1242# CONFIG_USB_CDC_COMPOSITE is not set
1167# CONFIG_MMC is not set 1243# CONFIG_MMC is not set
1168# CONFIG_MEMSTICK is not set 1244# CONFIG_MEMSTICK is not set
1169# CONFIG_NEW_LEDS is not set 1245# CONFIG_NEW_LEDS is not set
@@ -1199,10 +1275,13 @@ CONFIG_RTC_DRV_DS1307=y
1199# CONFIG_RTC_DRV_PCF8583 is not set 1275# CONFIG_RTC_DRV_PCF8583 is not set
1200# CONFIG_RTC_DRV_M41T80 is not set 1276# CONFIG_RTC_DRV_M41T80 is not set
1201# CONFIG_RTC_DRV_S35390A is not set 1277# CONFIG_RTC_DRV_S35390A is not set
1278# CONFIG_RTC_DRV_FM3130 is not set
1202 1279
1203# 1280#
1204# SPI RTC drivers 1281# SPI RTC drivers
1205# 1282#
1283# CONFIG_RTC_DRV_M41T94 is not set
1284# CONFIG_RTC_DRV_DS1305 is not set
1206# CONFIG_RTC_DRV_MAX6902 is not set 1285# CONFIG_RTC_DRV_MAX6902 is not set
1207# CONFIG_RTC_DRV_R9701 is not set 1286# CONFIG_RTC_DRV_R9701 is not set
1208# CONFIG_RTC_DRV_RS5C348 is not set 1287# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1301,6 +1380,7 @@ CONFIG_JFFS2_RTIME=y
1301# CONFIG_CRAMFS is not set 1380# CONFIG_CRAMFS is not set
1302# CONFIG_VXFS_FS is not set 1381# CONFIG_VXFS_FS is not set
1303# CONFIG_MINIX_FS is not set 1382# CONFIG_MINIX_FS is not set
1383# CONFIG_OMFS_FS is not set
1304# CONFIG_HPFS_FS is not set 1384# CONFIG_HPFS_FS is not set
1305# CONFIG_QNX4FS_FS is not set 1385# CONFIG_QNX4FS_FS is not set
1306# CONFIG_ROMFS_FS is not set 1386# CONFIG_ROMFS_FS is not set
@@ -1311,14 +1391,13 @@ CONFIG_NFS_FS=y
1311CONFIG_NFS_V3=y 1391CONFIG_NFS_V3=y
1312# CONFIG_NFS_V3_ACL is not set 1392# CONFIG_NFS_V3_ACL is not set
1313CONFIG_NFS_V4=y 1393CONFIG_NFS_V4=y
1314# CONFIG_NFSD is not set
1315CONFIG_ROOT_NFS=y 1394CONFIG_ROOT_NFS=y
1395# CONFIG_NFSD is not set
1316CONFIG_LOCKD=y 1396CONFIG_LOCKD=y
1317CONFIG_LOCKD_V4=y 1397CONFIG_LOCKD_V4=y
1318CONFIG_NFS_COMMON=y 1398CONFIG_NFS_COMMON=y
1319CONFIG_SUNRPC=y 1399CONFIG_SUNRPC=y
1320CONFIG_SUNRPC_GSS=y 1400CONFIG_SUNRPC_GSS=y
1321# CONFIG_SUNRPC_BIND34 is not set
1322CONFIG_RPCSEC_GSS_KRB5=y 1401CONFIG_RPCSEC_GSS_KRB5=y
1323# CONFIG_RPCSEC_GSS_SPKM3 is not set 1402# CONFIG_RPCSEC_GSS_SPKM3 is not set
1324# CONFIG_SMB_FS is not set 1403# CONFIG_SMB_FS is not set
@@ -1358,6 +1437,7 @@ CONFIG_BITREVERSE=y
1358# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1437# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1359# CONFIG_CRC_CCITT is not set 1438# CONFIG_CRC_CCITT is not set
1360# CONFIG_CRC16 is not set 1439# CONFIG_CRC16 is not set
1440# CONFIG_CRC_T10DIF is not set
1361# CONFIG_CRC_ITU_T is not set 1441# CONFIG_CRC_ITU_T is not set
1362CONFIG_CRC32=y 1442CONFIG_CRC32=y
1363# CONFIG_CRC7 is not set 1443# CONFIG_CRC7 is not set
@@ -1384,6 +1464,8 @@ CONFIG_FRAME_WARN=1024
1384CONFIG_DEBUG_KERNEL=y 1464CONFIG_DEBUG_KERNEL=y
1385# CONFIG_DEBUG_SHIRQ is not set 1465# CONFIG_DEBUG_SHIRQ is not set
1386CONFIG_DETECT_SOFTLOCKUP=y 1466CONFIG_DETECT_SOFTLOCKUP=y
1467# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1468CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1387CONFIG_SCHED_DEBUG=y 1469CONFIG_SCHED_DEBUG=y
1388# CONFIG_SCHEDSTATS is not set 1470# CONFIG_SCHEDSTATS is not set
1389# CONFIG_TIMER_STATS is not set 1471# CONFIG_TIMER_STATS is not set
@@ -1401,19 +1483,32 @@ CONFIG_SCHED_DEBUG=y
1401# CONFIG_DEBUG_INFO is not set 1483# CONFIG_DEBUG_INFO is not set
1402# CONFIG_DEBUG_VM is not set 1484# CONFIG_DEBUG_VM is not set
1403# CONFIG_DEBUG_WRITECOUNT is not set 1485# CONFIG_DEBUG_WRITECOUNT is not set
1486# CONFIG_DEBUG_MEMORY_INIT is not set
1404# CONFIG_DEBUG_LIST is not set 1487# CONFIG_DEBUG_LIST is not set
1405# CONFIG_DEBUG_SG is not set 1488# CONFIG_DEBUG_SG is not set
1406# CONFIG_BOOT_PRINTK_DELAY is not set 1489# CONFIG_BOOT_PRINTK_DELAY is not set
1407# CONFIG_RCU_TORTURE_TEST is not set 1490# CONFIG_RCU_TORTURE_TEST is not set
1408# CONFIG_BACKTRACE_SELF_TEST is not set 1491# CONFIG_BACKTRACE_SELF_TEST is not set
1409# CONFIG_FAULT_INJECTION is not set 1492# CONFIG_FAULT_INJECTION is not set
1493# CONFIG_LATENCYTOP is not set
1494CONFIG_SYSCTL_SYSCALL_CHECK=y
1495CONFIG_HAVE_FTRACE=y
1496CONFIG_HAVE_DYNAMIC_FTRACE=y
1497# CONFIG_FTRACE is not set
1498# CONFIG_SCHED_TRACER is not set
1499# CONFIG_CONTEXT_SWITCH_TRACER is not set
1410# CONFIG_SAMPLES is not set 1500# CONFIG_SAMPLES is not set
1501CONFIG_HAVE_ARCH_KGDB=y
1502# CONFIG_KGDB is not set
1411# CONFIG_DEBUG_STACKOVERFLOW is not set 1503# CONFIG_DEBUG_STACKOVERFLOW is not set
1412# CONFIG_DEBUG_STACK_USAGE is not set 1504# CONFIG_DEBUG_STACK_USAGE is not set
1413# CONFIG_DEBUG_PAGEALLOC is not set 1505# CONFIG_DEBUG_PAGEALLOC is not set
1414# CONFIG_DEBUGGER is not set 1506# CONFIG_CODE_PATCHING_SELFTEST is not set
1507# CONFIG_FTR_FIXUP_SELFTEST is not set
1508# CONFIG_XMON is not set
1415# CONFIG_IRQSTACKS is not set 1509# CONFIG_IRQSTACKS is not set
1416# CONFIG_BDI_SWITCH is not set 1510# CONFIG_BDI_SWITCH is not set
1511# CONFIG_BOOTX_TEXT is not set
1417# CONFIG_PPC_EARLY_DEBUG is not set 1512# CONFIG_PPC_EARLY_DEBUG is not set
1418 1513
1419# 1514#
@@ -1467,6 +1562,10 @@ CONFIG_CRYPTO_PCBC=m
1467# CONFIG_CRYPTO_MD4 is not set 1562# CONFIG_CRYPTO_MD4 is not set
1468CONFIG_CRYPTO_MD5=y 1563CONFIG_CRYPTO_MD5=y
1469# CONFIG_CRYPTO_MICHAEL_MIC is not set 1564# CONFIG_CRYPTO_MICHAEL_MIC is not set
1565# CONFIG_CRYPTO_RMD128 is not set
1566# CONFIG_CRYPTO_RMD160 is not set
1567# CONFIG_CRYPTO_RMD256 is not set
1568# CONFIG_CRYPTO_RMD320 is not set
1470# CONFIG_CRYPTO_SHA1 is not set 1569# CONFIG_CRYPTO_SHA1 is not set
1471# CONFIG_CRYPTO_SHA256 is not set 1570# CONFIG_CRYPTO_SHA256 is not set
1472# CONFIG_CRYPTO_SHA512 is not set 1571# CONFIG_CRYPTO_SHA512 is not set
@@ -1499,5 +1598,6 @@ CONFIG_CRYPTO_DES=y
1499# CONFIG_CRYPTO_LZO is not set 1598# CONFIG_CRYPTO_LZO is not set
1500CONFIG_CRYPTO_HW=y 1599CONFIG_CRYPTO_HW=y
1501# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1600# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1601# CONFIG_CRYPTO_DEV_TALITOS is not set
1502# CONFIG_PPC_CLOCK is not set 1602# CONFIG_PPC_CLOCK is not set
1503# CONFIG_VIRTUALIZATION is not set 1603# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig b/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
index 1eca26f3659a..bdf50c8a17e6 100644
--- a/arch/powerpc/configs/83xx/mpc832x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_mds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:22 2008 4# Thu Aug 21 00:52:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163CONFIG_MPC832x_MDS=y 177CONFIG_MPC832x_MDS=y
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC832x=y 187CONFIG_PPC_MPC832x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183CONFIG_QUICC_ENGINE=y 207CONFIG_QUICC_ENGINE=y
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
@@ -196,7 +220,7 @@ CONFIG_HZ_250=y
196# CONFIG_HZ_300 is not set 220# CONFIG_HZ_300 is not set
197# CONFIG_HZ_1000 is not set 221# CONFIG_HZ_1000 is not set
198CONFIG_HZ=250 222CONFIG_HZ=250
199# CONFIG_SCHED_HRTICK is not set 223CONFIG_SCHED_HRTICK=y
200CONFIG_PREEMPT_NONE=y 224CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 225# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 226# CONFIG_PREEMPT is not set
@@ -207,6 +231,7 @@ CONFIG_MATH_EMULATION=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y 232CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 233CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
234# CONFIG_KEXEC is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 235CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 236CONFIG_ARCH_POPULATES_NODE_MAP=y
212CONFIG_SELECT_MEMORY_MODEL=y 237CONFIG_SELECT_MEMORY_MODEL=y
@@ -219,6 +244,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 245CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 246CONFIG_SPLIT_PTLOCK_CPUS=4
247CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 248# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 249CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
@@ -226,6 +252,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
255CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 256# CONFIG_PM is not set
230CONFIG_SECCOMP=y 257CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 258CONFIG_ISA_DMA_API=y
@@ -233,10 +260,13 @@ CONFIG_ISA_DMA_API=y
233# 260#
234# Bus options 261# Bus options
235# 262#
263# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 264CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 265CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 266CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 267CONFIG_FSL_SOC=y
268CONFIG_FSL_PCI=y
269CONFIG_PPC_PCI_CHOICE=y
240CONFIG_PCI=y 270CONFIG_PCI=y
241CONFIG_PCI_DOMAINS=y 271CONFIG_PCI_DOMAINS=y
242CONFIG_PCI_SYSCALL=y 272CONFIG_PCI_SYSCALL=y
@@ -261,10 +291,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
261CONFIG_KERNEL_START=0xc0000000 291CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000 292CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0xc0000000 293CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 294CONFIG_NET=y
269 295
270# 296#
@@ -365,6 +391,7 @@ CONFIG_OF_I2C=y
365# CONFIG_PARPORT is not set 391# CONFIG_PARPORT is not set
366CONFIG_BLK_DEV=y 392CONFIG_BLK_DEV=y
367# CONFIG_BLK_DEV_FD is not set 393# CONFIG_BLK_DEV_FD is not set
394# CONFIG_MAC_FLOPPY is not set
368# CONFIG_BLK_CPQ_DA is not set 395# CONFIG_BLK_CPQ_DA is not set
369# CONFIG_BLK_CPQ_CISS_DA is not set 396# CONFIG_BLK_CPQ_CISS_DA is not set
370# CONFIG_BLK_DEV_DAC960 is not set 397# CONFIG_BLK_DEV_DAC960 is not set
@@ -380,12 +407,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
380# CONFIG_BLK_DEV_XIP is not set 407# CONFIG_BLK_DEV_XIP is not set
381# CONFIG_CDROM_PKTCDVD is not set 408# CONFIG_CDROM_PKTCDVD is not set
382# CONFIG_ATA_OVER_ETH is not set 409# CONFIG_ATA_OVER_ETH is not set
410# CONFIG_BLK_DEV_HD is not set
383CONFIG_MISC_DEVICES=y 411CONFIG_MISC_DEVICES=y
384# CONFIG_PHANTOM is not set 412# CONFIG_PHANTOM is not set
385# CONFIG_EEPROM_93CX6 is not set 413# CONFIG_EEPROM_93CX6 is not set
386# CONFIG_SGI_IOC4 is not set 414# CONFIG_SGI_IOC4 is not set
387# CONFIG_TIFM_CORE is not set 415# CONFIG_TIFM_CORE is not set
388# CONFIG_ENCLOSURE_SERVICES is not set 416# CONFIG_ENCLOSURE_SERVICES is not set
417# CONFIG_HP_ILO is not set
389CONFIG_HAVE_IDE=y 418CONFIG_HAVE_IDE=y
390# CONFIG_IDE is not set 419# CONFIG_IDE is not set
391 420
@@ -462,7 +491,10 @@ CONFIG_SCSI_LOWLEVEL=y
462# CONFIG_SCSI_DC390T is not set 491# CONFIG_SCSI_DC390T is not set
463# CONFIG_SCSI_NSP32 is not set 492# CONFIG_SCSI_NSP32 is not set
464# CONFIG_SCSI_DEBUG is not set 493# CONFIG_SCSI_DEBUG is not set
494# CONFIG_SCSI_MESH is not set
495# CONFIG_SCSI_MAC53C94 is not set
465# CONFIG_SCSI_SRP is not set 496# CONFIG_SCSI_SRP is not set
497# CONFIG_SCSI_DH is not set
466# CONFIG_ATA is not set 498# CONFIG_ATA is not set
467# CONFIG_MD is not set 499# CONFIG_MD is not set
468# CONFIG_FUSION is not set 500# CONFIG_FUSION is not set
@@ -470,12 +502,15 @@ CONFIG_SCSI_LOWLEVEL=y
470# 502#
471# IEEE 1394 (FireWire) support 503# IEEE 1394 (FireWire) support
472# 504#
505
506#
507# Enable only one of the two stacks, unless you know what you are doing
508#
473# CONFIG_FIREWIRE is not set 509# CONFIG_FIREWIRE is not set
474# CONFIG_IEEE1394 is not set 510# CONFIG_IEEE1394 is not set
475# CONFIG_I2O is not set 511# CONFIG_I2O is not set
476# CONFIG_MACINTOSH_DRIVERS is not set 512# CONFIG_MACINTOSH_DRIVERS is not set
477CONFIG_NETDEVICES=y 513CONFIG_NETDEVICES=y
478# CONFIG_NETDEVICES_MULTIQUEUE is not set
479# CONFIG_DUMMY is not set 514# CONFIG_DUMMY is not set
480# CONFIG_BONDING is not set 515# CONFIG_BONDING is not set
481# CONFIG_MACVLAN is not set 516# CONFIG_MACVLAN is not set
@@ -502,6 +537,8 @@ CONFIG_DAVICOM_PHY=y
502# CONFIG_MDIO_BITBANG is not set 537# CONFIG_MDIO_BITBANG is not set
503CONFIG_NET_ETHERNET=y 538CONFIG_NET_ETHERNET=y
504CONFIG_MII=y 539CONFIG_MII=y
540# CONFIG_MACE is not set
541# CONFIG_BMAC is not set
505# CONFIG_HAPPYMEAL is not set 542# CONFIG_HAPPYMEAL is not set
506# CONFIG_SUNGEM is not set 543# CONFIG_SUNGEM is not set
507# CONFIG_CASSINI is not set 544# CONFIG_CASSINI is not set
@@ -519,7 +556,6 @@ CONFIG_NETDEV_1000=y
519# CONFIG_DL2K is not set 556# CONFIG_DL2K is not set
520# CONFIG_E1000 is not set 557# CONFIG_E1000 is not set
521# CONFIG_E1000E is not set 558# CONFIG_E1000E is not set
522# CONFIG_E1000E_ENABLED is not set
523# CONFIG_IP1000 is not set 559# CONFIG_IP1000 is not set
524# CONFIG_IGB is not set 560# CONFIG_IGB is not set
525# CONFIG_NS83820 is not set 561# CONFIG_NS83820 is not set
@@ -534,12 +570,13 @@ CONFIG_NETDEV_1000=y
534# CONFIG_BNX2 is not set 570# CONFIG_BNX2 is not set
535# CONFIG_GIANFAR is not set 571# CONFIG_GIANFAR is not set
536CONFIG_UCC_GETH=y 572CONFIG_UCC_GETH=y
537# CONFIG_UGETH_NAPI is not set
538# CONFIG_UGETH_MAGIC_PACKET is not set 573# CONFIG_UGETH_MAGIC_PACKET is not set
539# CONFIG_UGETH_FILTERING is not set 574# CONFIG_UGETH_FILTERING is not set
540# CONFIG_UGETH_TX_ON_DEMAND is not set 575# CONFIG_UGETH_TX_ON_DEMAND is not set
576# CONFIG_MV643XX_ETH is not set
541# CONFIG_QLA3XXX is not set 577# CONFIG_QLA3XXX is not set
542# CONFIG_ATL1 is not set 578# CONFIG_ATL1 is not set
579# CONFIG_ATL1E is not set
543CONFIG_NETDEV_10000=y 580CONFIG_NETDEV_10000=y
544# CONFIG_CHELSIO_T1 is not set 581# CONFIG_CHELSIO_T1 is not set
545# CONFIG_CHELSIO_T3 is not set 582# CONFIG_CHELSIO_T3 is not set
@@ -628,12 +665,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
628# CONFIG_SERIAL_UARTLITE is not set 665# CONFIG_SERIAL_UARTLITE is not set
629CONFIG_SERIAL_CORE=y 666CONFIG_SERIAL_CORE=y
630CONFIG_SERIAL_CORE_CONSOLE=y 667CONFIG_SERIAL_CORE_CONSOLE=y
668# CONFIG_SERIAL_PMACZILOG is not set
631# CONFIG_SERIAL_JSM is not set 669# CONFIG_SERIAL_JSM is not set
632# CONFIG_SERIAL_OF_PLATFORM is not set 670# CONFIG_SERIAL_OF_PLATFORM is not set
633# CONFIG_SERIAL_QE is not set 671# CONFIG_SERIAL_QE is not set
634CONFIG_UNIX98_PTYS=y 672CONFIG_UNIX98_PTYS=y
635CONFIG_LEGACY_PTYS=y 673CONFIG_LEGACY_PTYS=y
636CONFIG_LEGACY_PTY_COUNT=256 674CONFIG_LEGACY_PTY_COUNT=256
675# CONFIG_BRIQ_PANEL is not set
676# CONFIG_HVC_RTAS is not set
637# CONFIG_IPMI_HANDLER is not set 677# CONFIG_IPMI_HANDLER is not set
638CONFIG_HW_RANDOM=y 678CONFIG_HW_RANDOM=y
639# CONFIG_NVRAM is not set 679# CONFIG_NVRAM is not set
@@ -645,42 +685,69 @@ CONFIG_DEVPORT=y
645CONFIG_I2C=y 685CONFIG_I2C=y
646CONFIG_I2C_BOARDINFO=y 686CONFIG_I2C_BOARDINFO=y
647CONFIG_I2C_CHARDEV=y 687CONFIG_I2C_CHARDEV=y
688CONFIG_I2C_HELPER_AUTO=y
648 689
649# 690#
650# I2C Hardware Bus support 691# I2C Hardware Bus support
651# 692#
693
694#
695# PC SMBus host controller drivers
696#
652# CONFIG_I2C_ALI1535 is not set 697# CONFIG_I2C_ALI1535 is not set
653# CONFIG_I2C_ALI1563 is not set 698# CONFIG_I2C_ALI1563 is not set
654# CONFIG_I2C_ALI15X3 is not set 699# CONFIG_I2C_ALI15X3 is not set
655# CONFIG_I2C_AMD756 is not set 700# CONFIG_I2C_AMD756 is not set
656# CONFIG_I2C_AMD8111 is not set 701# CONFIG_I2C_AMD8111 is not set
657# CONFIG_I2C_I801 is not set 702# CONFIG_I2C_I801 is not set
658# CONFIG_I2C_I810 is not set 703# CONFIG_I2C_ISCH is not set
659# CONFIG_I2C_PIIX4 is not set 704# CONFIG_I2C_PIIX4 is not set
660CONFIG_I2C_MPC=y
661# CONFIG_I2C_NFORCE2 is not set 705# CONFIG_I2C_NFORCE2 is not set
662# CONFIG_I2C_OCORES is not set
663# CONFIG_I2C_PARPORT_LIGHT is not set
664# CONFIG_I2C_PROSAVAGE is not set
665# CONFIG_I2C_SAVAGE4 is not set
666# CONFIG_I2C_SIMTEC is not set
667# CONFIG_I2C_SIS5595 is not set 706# CONFIG_I2C_SIS5595 is not set
668# CONFIG_I2C_SIS630 is not set 707# CONFIG_I2C_SIS630 is not set
669# CONFIG_I2C_SIS96X is not set 708# CONFIG_I2C_SIS96X is not set
670# CONFIG_I2C_TAOS_EVM is not set
671# CONFIG_I2C_STUB is not set
672# CONFIG_I2C_VIA is not set 709# CONFIG_I2C_VIA is not set
673# CONFIG_I2C_VIAPRO is not set 710# CONFIG_I2C_VIAPRO is not set
711
712#
713# Mac SMBus host controller drivers
714#
715# CONFIG_I2C_HYDRA is not set
716CONFIG_I2C_POWERMAC=y
717
718#
719# I2C system bus drivers (mostly embedded / system-on-chip)
720#
721CONFIG_I2C_MPC=y
722# CONFIG_I2C_OCORES is not set
723# CONFIG_I2C_SIMTEC is not set
724
725#
726# External I2C/SMBus adapter drivers
727#
728# CONFIG_I2C_PARPORT_LIGHT is not set
729# CONFIG_I2C_TAOS_EVM is not set
730
731#
732# Graphics adapter I2C/DDC channel drivers
733#
674# CONFIG_I2C_VOODOO3 is not set 734# CONFIG_I2C_VOODOO3 is not set
735
736#
737# Other I2C/SMBus bus drivers
738#
675# CONFIG_I2C_PCA_PLATFORM is not set 739# CONFIG_I2C_PCA_PLATFORM is not set
740# CONFIG_I2C_STUB is not set
676 741
677# 742#
678# Miscellaneous I2C Chip support 743# Miscellaneous I2C Chip support
679# 744#
680# CONFIG_DS1682 is not set 745# CONFIG_DS1682 is not set
746# CONFIG_AT24 is not set
681# CONFIG_SENSORS_EEPROM is not set 747# CONFIG_SENSORS_EEPROM is not set
682# CONFIG_SENSORS_PCF8574 is not set 748# CONFIG_SENSORS_PCF8574 is not set
683# CONFIG_PCF8575 is not set 749# CONFIG_PCF8575 is not set
750# CONFIG_SENSORS_PCA9539 is not set
684# CONFIG_SENSORS_PCF8591 is not set 751# CONFIG_SENSORS_PCF8591 is not set
685# CONFIG_SENSORS_MAX6875 is not set 752# CONFIG_SENSORS_MAX6875 is not set
686# CONFIG_SENSORS_TSL2550 is not set 753# CONFIG_SENSORS_TSL2550 is not set
@@ -689,10 +756,13 @@ CONFIG_I2C_MPC=y
689# CONFIG_I2C_DEBUG_BUS is not set 756# CONFIG_I2C_DEBUG_BUS is not set
690# CONFIG_I2C_DEBUG_CHIP is not set 757# CONFIG_I2C_DEBUG_CHIP is not set
691# CONFIG_SPI is not set 758# CONFIG_SPI is not set
759CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
760# CONFIG_GPIOLIB is not set
692# CONFIG_W1 is not set 761# CONFIG_W1 is not set
693# CONFIG_POWER_SUPPLY is not set 762# CONFIG_POWER_SUPPLY is not set
694CONFIG_HWMON=y 763CONFIG_HWMON=y
695# CONFIG_HWMON_VID is not set 764# CONFIG_HWMON_VID is not set
765# CONFIG_SENSORS_AD7414 is not set
696# CONFIG_SENSORS_AD7418 is not set 766# CONFIG_SENSORS_AD7418 is not set
697# CONFIG_SENSORS_ADM1021 is not set 767# CONFIG_SENSORS_ADM1021 is not set
698# CONFIG_SENSORS_ADM1025 is not set 768# CONFIG_SENSORS_ADM1025 is not set
@@ -702,6 +772,7 @@ CONFIG_HWMON=y
702# CONFIG_SENSORS_ADM9240 is not set 772# CONFIG_SENSORS_ADM9240 is not set
703# CONFIG_SENSORS_ADT7470 is not set 773# CONFIG_SENSORS_ADT7470 is not set
704# CONFIG_SENSORS_ADT7473 is not set 774# CONFIG_SENSORS_ADT7473 is not set
775# CONFIG_SENSORS_AMS is not set
705# CONFIG_SENSORS_ATXP1 is not set 776# CONFIG_SENSORS_ATXP1 is not set
706# CONFIG_SENSORS_DS1621 is not set 777# CONFIG_SENSORS_DS1621 is not set
707# CONFIG_SENSORS_I5K_AMB is not set 778# CONFIG_SENSORS_I5K_AMB is not set
@@ -746,6 +817,7 @@ CONFIG_HWMON=y
746# CONFIG_SENSORS_W83627EHF is not set 817# CONFIG_SENSORS_W83627EHF is not set
747# CONFIG_HWMON_DEBUG_CHIP is not set 818# CONFIG_HWMON_DEBUG_CHIP is not set
748# CONFIG_THERMAL is not set 819# CONFIG_THERMAL is not set
820# CONFIG_THERMAL_HWMON is not set
749CONFIG_WATCHDOG=y 821CONFIG_WATCHDOG=y
750# CONFIG_WATCHDOG_NOWAYOUT is not set 822# CONFIG_WATCHDOG_NOWAYOUT is not set
751 823
@@ -753,7 +825,9 @@ CONFIG_WATCHDOG=y
753# Watchdog Device Drivers 825# Watchdog Device Drivers
754# 826#
755# CONFIG_SOFT_WATCHDOG is not set 827# CONFIG_SOFT_WATCHDOG is not set
756CONFIG_83xx_WDT=y 828# CONFIG_ALIM7101_WDT is not set
829# CONFIG_8xxx_WDT is not set
830# CONFIG_WATCHDOG_RTAS is not set
757 831
758# 832#
759# PCI-based Watchdog Cards 833# PCI-based Watchdog Cards
@@ -770,8 +844,10 @@ CONFIG_SSB_POSSIBLE=y
770# 844#
771# Multifunction device drivers 845# Multifunction device drivers
772# 846#
847# CONFIG_MFD_CORE is not set
773# CONFIG_MFD_SM501 is not set 848# CONFIG_MFD_SM501 is not set
774# CONFIG_HTC_PASIC3 is not set 849# CONFIG_HTC_PASIC3 is not set
850# CONFIG_MFD_TMIO is not set
775 851
776# 852#
777# Multimedia devices 853# Multimedia devices
@@ -803,10 +879,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
803# Display device support 879# Display device support
804# 880#
805# CONFIG_DISPLAY_SUPPORT is not set 881# CONFIG_DISPLAY_SUPPORT is not set
806
807#
808# Sound
809#
810# CONFIG_SOUND is not set 882# CONFIG_SOUND is not set
811CONFIG_HID_SUPPORT=y 883CONFIG_HID_SUPPORT=y
812CONFIG_HID=y 884CONFIG_HID=y
@@ -821,6 +893,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
821# CONFIG_USB_OTG_BLACKLIST_HUB is not set 893# CONFIG_USB_OTG_BLACKLIST_HUB is not set
822 894
823# 895#
896# Enable Host or Gadget support to see Inventra options
897#
898
899#
824# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 900# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
825# 901#
826# CONFIG_USB_GADGET is not set 902# CONFIG_USB_GADGET is not set
@@ -859,6 +935,7 @@ CONFIG_RTC_DRV_DS1374=y
859# CONFIG_RTC_DRV_PCF8583 is not set 935# CONFIG_RTC_DRV_PCF8583 is not set
860# CONFIG_RTC_DRV_M41T80 is not set 936# CONFIG_RTC_DRV_M41T80 is not set
861# CONFIG_RTC_DRV_S35390A is not set 937# CONFIG_RTC_DRV_S35390A is not set
938# CONFIG_RTC_DRV_FM3130 is not set
862 939
863# 940#
864# SPI RTC drivers 941# SPI RTC drivers
@@ -947,6 +1024,7 @@ CONFIG_TMPFS=y
947# CONFIG_CRAMFS is not set 1024# CONFIG_CRAMFS is not set
948# CONFIG_VXFS_FS is not set 1025# CONFIG_VXFS_FS is not set
949# CONFIG_MINIX_FS is not set 1026# CONFIG_MINIX_FS is not set
1027# CONFIG_OMFS_FS is not set
950# CONFIG_HPFS_FS is not set 1028# CONFIG_HPFS_FS is not set
951# CONFIG_QNX4FS_FS is not set 1029# CONFIG_QNX4FS_FS is not set
952# CONFIG_ROMFS_FS is not set 1030# CONFIG_ROMFS_FS is not set
@@ -957,14 +1035,13 @@ CONFIG_NFS_FS=y
957CONFIG_NFS_V3=y 1035CONFIG_NFS_V3=y
958# CONFIG_NFS_V3_ACL is not set 1036# CONFIG_NFS_V3_ACL is not set
959CONFIG_NFS_V4=y 1037CONFIG_NFS_V4=y
960# CONFIG_NFSD is not set
961CONFIG_ROOT_NFS=y 1038CONFIG_ROOT_NFS=y
1039# CONFIG_NFSD is not set
962CONFIG_LOCKD=y 1040CONFIG_LOCKD=y
963CONFIG_LOCKD_V4=y 1041CONFIG_LOCKD_V4=y
964CONFIG_NFS_COMMON=y 1042CONFIG_NFS_COMMON=y
965CONFIG_SUNRPC=y 1043CONFIG_SUNRPC=y
966CONFIG_SUNRPC_GSS=y 1044CONFIG_SUNRPC_GSS=y
967# CONFIG_SUNRPC_BIND34 is not set
968CONFIG_RPCSEC_GSS_KRB5=y 1045CONFIG_RPCSEC_GSS_KRB5=y
969# CONFIG_RPCSEC_GSS_SPKM3 is not set 1046# CONFIG_RPCSEC_GSS_SPKM3 is not set
970# CONFIG_SMB_FS is not set 1047# CONFIG_SMB_FS is not set
@@ -994,6 +1071,7 @@ CONFIG_PARTITION_ADVANCED=y
994# CONFIG_DLM is not set 1071# CONFIG_DLM is not set
995CONFIG_UCC_FAST=y 1072CONFIG_UCC_FAST=y
996CONFIG_UCC=y 1073CONFIG_UCC=y
1074# CONFIG_QE_GPIO is not set
997 1075
998# 1076#
999# Library routines 1077# Library routines
@@ -1002,6 +1080,7 @@ CONFIG_BITREVERSE=y
1002# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1080# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1003# CONFIG_CRC_CCITT is not set 1081# CONFIG_CRC_CCITT is not set
1004# CONFIG_CRC16 is not set 1082# CONFIG_CRC16 is not set
1083# CONFIG_CRC_T10DIF is not set
1005# CONFIG_CRC_ITU_T is not set 1084# CONFIG_CRC_ITU_T is not set
1006CONFIG_CRC32=y 1085CONFIG_CRC32=y
1007# CONFIG_CRC7 is not set 1086# CONFIG_CRC7 is not set
@@ -1027,8 +1106,18 @@ CONFIG_FRAME_WARN=1024
1027# CONFIG_SLUB_DEBUG_ON is not set 1106# CONFIG_SLUB_DEBUG_ON is not set
1028# CONFIG_SLUB_STATS is not set 1107# CONFIG_SLUB_STATS is not set
1029# CONFIG_DEBUG_BUGVERBOSE is not set 1108# CONFIG_DEBUG_BUGVERBOSE is not set
1109# CONFIG_DEBUG_MEMORY_INIT is not set
1110# CONFIG_LATENCYTOP is not set
1111CONFIG_SYSCTL_SYSCALL_CHECK=y
1112CONFIG_HAVE_FTRACE=y
1113CONFIG_HAVE_DYNAMIC_FTRACE=y
1114# CONFIG_FTRACE is not set
1115# CONFIG_SCHED_TRACER is not set
1116# CONFIG_CONTEXT_SWITCH_TRACER is not set
1030# CONFIG_SAMPLES is not set 1117# CONFIG_SAMPLES is not set
1118CONFIG_HAVE_ARCH_KGDB=y
1031# CONFIG_IRQSTACKS is not set 1119# CONFIG_IRQSTACKS is not set
1120# CONFIG_BOOTX_TEXT is not set
1032# CONFIG_PPC_EARLY_DEBUG is not set 1121# CONFIG_PPC_EARLY_DEBUG is not set
1033 1122
1034# 1123#
@@ -1082,6 +1171,10 @@ CONFIG_CRYPTO_PCBC=m
1082# CONFIG_CRYPTO_MD4 is not set 1171# CONFIG_CRYPTO_MD4 is not set
1083CONFIG_CRYPTO_MD5=y 1172CONFIG_CRYPTO_MD5=y
1084# CONFIG_CRYPTO_MICHAEL_MIC is not set 1173# CONFIG_CRYPTO_MICHAEL_MIC is not set
1174# CONFIG_CRYPTO_RMD128 is not set
1175# CONFIG_CRYPTO_RMD160 is not set
1176# CONFIG_CRYPTO_RMD256 is not set
1177# CONFIG_CRYPTO_RMD320 is not set
1085# CONFIG_CRYPTO_SHA1 is not set 1178# CONFIG_CRYPTO_SHA1 is not set
1086# CONFIG_CRYPTO_SHA256 is not set 1179# CONFIG_CRYPTO_SHA256 is not set
1087# CONFIG_CRYPTO_SHA512 is not set 1180# CONFIG_CRYPTO_SHA512 is not set
@@ -1114,6 +1207,7 @@ CONFIG_CRYPTO_DES=y
1114# CONFIG_CRYPTO_LZO is not set 1207# CONFIG_CRYPTO_LZO is not set
1115CONFIG_CRYPTO_HW=y 1208CONFIG_CRYPTO_HW=y
1116# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1209# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1210# CONFIG_CRYPTO_DEV_TALITOS is not set
1117# CONFIG_PPC_CLOCK is not set 1211# CONFIG_PPC_CLOCK is not set
1118CONFIG_PPC_LIB_RHEAP=y 1212CONFIG_PPC_LIB_RHEAP=y
1119# CONFIG_VIRTUALIZATION is not set 1213# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
index de95d327463c..4eef8c95480e 100644
--- a/arch/powerpc/configs/83xx/mpc832x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc832x_rdb_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:24 2008 4# Thu Aug 21 00:52:19 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164CONFIG_MPC832x_RDB=y 178CONFIG_MPC832x_RDB=y
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC832x=y 187CONFIG_PPC_MPC832x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183CONFIG_QUICC_ENGINE=y 207CONFIG_QUICC_ENGINE=y
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
@@ -196,7 +220,7 @@ CONFIG_HZ_250=y
196# CONFIG_HZ_300 is not set 220# CONFIG_HZ_300 is not set
197# CONFIG_HZ_1000 is not set 221# CONFIG_HZ_1000 is not set
198CONFIG_HZ=250 222CONFIG_HZ=250
199# CONFIG_SCHED_HRTICK is not set 223CONFIG_SCHED_HRTICK=y
200CONFIG_PREEMPT_NONE=y 224CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 225# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 226# CONFIG_PREEMPT is not set
@@ -207,6 +231,7 @@ CONFIG_MATH_EMULATION=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y 232CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 233CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
234# CONFIG_KEXEC is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 235CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 236CONFIG_ARCH_POPULATES_NODE_MAP=y
212CONFIG_SELECT_MEMORY_MODEL=y 237CONFIG_SELECT_MEMORY_MODEL=y
@@ -219,6 +244,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 245CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 246CONFIG_SPLIT_PTLOCK_CPUS=4
247CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 248# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 249CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 250CONFIG_BOUNCE=y
@@ -226,6 +252,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 252CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 253CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 254# CONFIG_CMDLINE_BOOL is not set
255CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 256# CONFIG_PM is not set
230CONFIG_SECCOMP=y 257CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 258CONFIG_ISA_DMA_API=y
@@ -233,10 +260,13 @@ CONFIG_ISA_DMA_API=y
233# 260#
234# Bus options 261# Bus options
235# 262#
263# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 264CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 265CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 266CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 267CONFIG_FSL_SOC=y
268CONFIG_FSL_PCI=y
269CONFIG_PPC_PCI_CHOICE=y
240CONFIG_PCI=y 270CONFIG_PCI=y
241CONFIG_PCI_DOMAINS=y 271CONFIG_PCI_DOMAINS=y
242CONFIG_PCI_SYSCALL=y 272CONFIG_PCI_SYSCALL=y
@@ -261,10 +291,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
261CONFIG_KERNEL_START=0xc0000000 291CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000 292CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0xc0000000 293CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 294CONFIG_NET=y
269 295
270# 296#
@@ -362,9 +388,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
362# CONFIG_MTD is not set 388# CONFIG_MTD is not set
363CONFIG_OF_DEVICE=y 389CONFIG_OF_DEVICE=y
364CONFIG_OF_I2C=y 390CONFIG_OF_I2C=y
391CONFIG_OF_SPI=y
365# CONFIG_PARPORT is not set 392# CONFIG_PARPORT is not set
366CONFIG_BLK_DEV=y 393CONFIG_BLK_DEV=y
367# CONFIG_BLK_DEV_FD is not set 394# CONFIG_BLK_DEV_FD is not set
395# CONFIG_MAC_FLOPPY is not set
368# CONFIG_BLK_CPQ_DA is not set 396# CONFIG_BLK_CPQ_DA is not set
369# CONFIG_BLK_CPQ_CISS_DA is not set 397# CONFIG_BLK_CPQ_CISS_DA is not set
370# CONFIG_BLK_DEV_DAC960 is not set 398# CONFIG_BLK_DEV_DAC960 is not set
@@ -381,12 +409,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
381# CONFIG_BLK_DEV_XIP is not set 409# CONFIG_BLK_DEV_XIP is not set
382# CONFIG_CDROM_PKTCDVD is not set 410# CONFIG_CDROM_PKTCDVD is not set
383# CONFIG_ATA_OVER_ETH is not set 411# CONFIG_ATA_OVER_ETH is not set
412# CONFIG_BLK_DEV_HD is not set
384CONFIG_MISC_DEVICES=y 413CONFIG_MISC_DEVICES=y
385# CONFIG_PHANTOM is not set 414# CONFIG_PHANTOM is not set
386# CONFIG_EEPROM_93CX6 is not set 415# CONFIG_EEPROM_93CX6 is not set
387# CONFIG_SGI_IOC4 is not set 416# CONFIG_SGI_IOC4 is not set
388# CONFIG_TIFM_CORE is not set 417# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 418# CONFIG_ENCLOSURE_SERVICES is not set
419# CONFIG_HP_ILO is not set
390CONFIG_HAVE_IDE=y 420CONFIG_HAVE_IDE=y
391# CONFIG_IDE is not set 421# CONFIG_IDE is not set
392 422
@@ -463,7 +493,10 @@ CONFIG_SCSI_LOWLEVEL=y
463# CONFIG_SCSI_DC390T is not set 493# CONFIG_SCSI_DC390T is not set
464# CONFIG_SCSI_NSP32 is not set 494# CONFIG_SCSI_NSP32 is not set
465# CONFIG_SCSI_DEBUG is not set 495# CONFIG_SCSI_DEBUG is not set
496# CONFIG_SCSI_MESH is not set
497# CONFIG_SCSI_MAC53C94 is not set
466# CONFIG_SCSI_SRP is not set 498# CONFIG_SCSI_SRP is not set
499# CONFIG_SCSI_DH is not set
467# CONFIG_ATA is not set 500# CONFIG_ATA is not set
468# CONFIG_MD is not set 501# CONFIG_MD is not set
469# CONFIG_FUSION is not set 502# CONFIG_FUSION is not set
@@ -471,12 +504,15 @@ CONFIG_SCSI_LOWLEVEL=y
471# 504#
472# IEEE 1394 (FireWire) support 505# IEEE 1394 (FireWire) support
473# 506#
507
508#
509# Enable only one of the two stacks, unless you know what you are doing
510#
474# CONFIG_FIREWIRE is not set 511# CONFIG_FIREWIRE is not set
475# CONFIG_IEEE1394 is not set 512# CONFIG_IEEE1394 is not set
476# CONFIG_I2O is not set 513# CONFIG_I2O is not set
477# CONFIG_MACINTOSH_DRIVERS is not set 514# CONFIG_MACINTOSH_DRIVERS is not set
478CONFIG_NETDEVICES=y 515CONFIG_NETDEVICES=y
479# CONFIG_NETDEVICES_MULTIQUEUE is not set
480# CONFIG_DUMMY is not set 516# CONFIG_DUMMY is not set
481# CONFIG_BONDING is not set 517# CONFIG_BONDING is not set
482# CONFIG_MACVLAN is not set 518# CONFIG_MACVLAN is not set
@@ -503,6 +539,8 @@ CONFIG_ICPLUS_PHY=y
503# CONFIG_MDIO_BITBANG is not set 539# CONFIG_MDIO_BITBANG is not set
504CONFIG_NET_ETHERNET=y 540CONFIG_NET_ETHERNET=y
505CONFIG_MII=y 541CONFIG_MII=y
542# CONFIG_MACE is not set
543# CONFIG_BMAC is not set
506# CONFIG_HAPPYMEAL is not set 544# CONFIG_HAPPYMEAL is not set
507# CONFIG_SUNGEM is not set 545# CONFIG_SUNGEM is not set
508# CONFIG_CASSINI is not set 546# CONFIG_CASSINI is not set
@@ -520,10 +558,8 @@ CONFIG_NETDEV_1000=y
520# CONFIG_ACENIC is not set 558# CONFIG_ACENIC is not set
521# CONFIG_DL2K is not set 559# CONFIG_DL2K is not set
522CONFIG_E1000=y 560CONFIG_E1000=y
523# CONFIG_E1000_NAPI is not set
524# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 561# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
525# CONFIG_E1000E is not set 562# CONFIG_E1000E is not set
526# CONFIG_E1000E_ENABLED is not set
527# CONFIG_IP1000 is not set 563# CONFIG_IP1000 is not set
528# CONFIG_IGB is not set 564# CONFIG_IGB is not set
529# CONFIG_NS83820 is not set 565# CONFIG_NS83820 is not set
@@ -538,12 +574,13 @@ CONFIG_E1000=y
538# CONFIG_BNX2 is not set 574# CONFIG_BNX2 is not set
539# CONFIG_GIANFAR is not set 575# CONFIG_GIANFAR is not set
540CONFIG_UCC_GETH=y 576CONFIG_UCC_GETH=y
541CONFIG_UGETH_NAPI=y
542# CONFIG_UGETH_MAGIC_PACKET is not set 577# CONFIG_UGETH_MAGIC_PACKET is not set
543# CONFIG_UGETH_FILTERING is not set 578# CONFIG_UGETH_FILTERING is not set
544# CONFIG_UGETH_TX_ON_DEMAND is not set 579# CONFIG_UGETH_TX_ON_DEMAND is not set
580# CONFIG_MV643XX_ETH is not set
545# CONFIG_QLA3XXX is not set 581# CONFIG_QLA3XXX is not set
546# CONFIG_ATL1 is not set 582# CONFIG_ATL1 is not set
583# CONFIG_ATL1E is not set
547CONFIG_NETDEV_10000=y 584CONFIG_NETDEV_10000=y
548# CONFIG_CHELSIO_T1 is not set 585# CONFIG_CHELSIO_T1 is not set
549# CONFIG_CHELSIO_T3 is not set 586# CONFIG_CHELSIO_T3 is not set
@@ -641,12 +678,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
641# CONFIG_SERIAL_UARTLITE is not set 678# CONFIG_SERIAL_UARTLITE is not set
642CONFIG_SERIAL_CORE=y 679CONFIG_SERIAL_CORE=y
643CONFIG_SERIAL_CORE_CONSOLE=y 680CONFIG_SERIAL_CORE_CONSOLE=y
681# CONFIG_SERIAL_PMACZILOG is not set
644# CONFIG_SERIAL_JSM is not set 682# CONFIG_SERIAL_JSM is not set
645# CONFIG_SERIAL_OF_PLATFORM is not set 683# CONFIG_SERIAL_OF_PLATFORM is not set
646# CONFIG_SERIAL_QE is not set 684# CONFIG_SERIAL_QE is not set
647CONFIG_UNIX98_PTYS=y 685CONFIG_UNIX98_PTYS=y
648CONFIG_LEGACY_PTYS=y 686CONFIG_LEGACY_PTYS=y
649CONFIG_LEGACY_PTY_COUNT=256 687CONFIG_LEGACY_PTY_COUNT=256
688# CONFIG_BRIQ_PANEL is not set
689# CONFIG_HVC_RTAS is not set
650# CONFIG_IPMI_HANDLER is not set 690# CONFIG_IPMI_HANDLER is not set
651CONFIG_HW_RANDOM=y 691CONFIG_HW_RANDOM=y
652# CONFIG_NVRAM is not set 692# CONFIG_NVRAM is not set
@@ -660,43 +700,70 @@ CONFIG_DEVPORT=y
660CONFIG_I2C=y 700CONFIG_I2C=y
661CONFIG_I2C_BOARDINFO=y 701CONFIG_I2C_BOARDINFO=y
662CONFIG_I2C_CHARDEV=y 702CONFIG_I2C_CHARDEV=y
703CONFIG_I2C_HELPER_AUTO=y
663 704
664# 705#
665# I2C Hardware Bus support 706# I2C Hardware Bus support
666# 707#
708
709#
710# PC SMBus host controller drivers
711#
667# CONFIG_I2C_ALI1535 is not set 712# CONFIG_I2C_ALI1535 is not set
668# CONFIG_I2C_ALI1563 is not set 713# CONFIG_I2C_ALI1563 is not set
669# CONFIG_I2C_ALI15X3 is not set 714# CONFIG_I2C_ALI15X3 is not set
670# CONFIG_I2C_AMD756 is not set 715# CONFIG_I2C_AMD756 is not set
671# CONFIG_I2C_AMD8111 is not set 716# CONFIG_I2C_AMD8111 is not set
672# CONFIG_I2C_I801 is not set 717# CONFIG_I2C_I801 is not set
673# CONFIG_I2C_I810 is not set 718# CONFIG_I2C_ISCH is not set
674# CONFIG_I2C_PIIX4 is not set 719# CONFIG_I2C_PIIX4 is not set
675CONFIG_I2C_MPC=y
676# CONFIG_I2C_NFORCE2 is not set 720# CONFIG_I2C_NFORCE2 is not set
677# CONFIG_I2C_OCORES is not set
678# CONFIG_I2C_PARPORT_LIGHT is not set
679# CONFIG_I2C_PROSAVAGE is not set
680# CONFIG_I2C_SAVAGE4 is not set
681# CONFIG_I2C_SIMTEC is not set
682# CONFIG_I2C_SIS5595 is not set 721# CONFIG_I2C_SIS5595 is not set
683# CONFIG_I2C_SIS630 is not set 722# CONFIG_I2C_SIS630 is not set
684# CONFIG_I2C_SIS96X is not set 723# CONFIG_I2C_SIS96X is not set
685# CONFIG_I2C_TAOS_EVM is not set
686# CONFIG_I2C_STUB is not set
687# CONFIG_I2C_TINY_USB is not set
688# CONFIG_I2C_VIA is not set 724# CONFIG_I2C_VIA is not set
689# CONFIG_I2C_VIAPRO is not set 725# CONFIG_I2C_VIAPRO is not set
726
727#
728# Mac SMBus host controller drivers
729#
730# CONFIG_I2C_HYDRA is not set
731CONFIG_I2C_POWERMAC=y
732
733#
734# I2C system bus drivers (mostly embedded / system-on-chip)
735#
736CONFIG_I2C_MPC=y
737# CONFIG_I2C_OCORES is not set
738# CONFIG_I2C_SIMTEC is not set
739
740#
741# External I2C/SMBus adapter drivers
742#
743# CONFIG_I2C_PARPORT_LIGHT is not set
744# CONFIG_I2C_TAOS_EVM is not set
745# CONFIG_I2C_TINY_USB is not set
746
747#
748# Graphics adapter I2C/DDC channel drivers
749#
690# CONFIG_I2C_VOODOO3 is not set 750# CONFIG_I2C_VOODOO3 is not set
751
752#
753# Other I2C/SMBus bus drivers
754#
691# CONFIG_I2C_PCA_PLATFORM is not set 755# CONFIG_I2C_PCA_PLATFORM is not set
756# CONFIG_I2C_STUB is not set
692 757
693# 758#
694# Miscellaneous I2C Chip support 759# Miscellaneous I2C Chip support
695# 760#
696# CONFIG_DS1682 is not set 761# CONFIG_DS1682 is not set
762# CONFIG_AT24 is not set
697# CONFIG_SENSORS_EEPROM is not set 763# CONFIG_SENSORS_EEPROM is not set
698# CONFIG_SENSORS_PCF8574 is not set 764# CONFIG_SENSORS_PCF8574 is not set
699# CONFIG_PCF8575 is not set 765# CONFIG_PCF8575 is not set
766# CONFIG_SENSORS_PCA9539 is not set
700# CONFIG_SENSORS_PCF8591 is not set 767# CONFIG_SENSORS_PCF8591 is not set
701# CONFIG_SENSORS_MAX6875 is not set 768# CONFIG_SENSORS_MAX6875 is not set
702# CONFIG_SENSORS_TSL2550 is not set 769# CONFIG_SENSORS_TSL2550 is not set
@@ -719,11 +786,15 @@ CONFIG_SPI_MPC83xx=y
719# CONFIG_SPI_AT25 is not set 786# CONFIG_SPI_AT25 is not set
720# CONFIG_SPI_SPIDEV is not set 787# CONFIG_SPI_SPIDEV is not set
721# CONFIG_SPI_TLE62X0 is not set 788# CONFIG_SPI_TLE62X0 is not set
789CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
790# CONFIG_GPIOLIB is not set
722# CONFIG_W1 is not set 791# CONFIG_W1 is not set
723# CONFIG_POWER_SUPPLY is not set 792# CONFIG_POWER_SUPPLY is not set
724CONFIG_HWMON=y 793CONFIG_HWMON=y
725# CONFIG_HWMON_VID is not set 794# CONFIG_HWMON_VID is not set
795# CONFIG_SENSORS_AD7414 is not set
726# CONFIG_SENSORS_AD7418 is not set 796# CONFIG_SENSORS_AD7418 is not set
797# CONFIG_SENSORS_ADCXX is not set
727# CONFIG_SENSORS_ADM1021 is not set 798# CONFIG_SENSORS_ADM1021 is not set
728# CONFIG_SENSORS_ADM1025 is not set 799# CONFIG_SENSORS_ADM1025 is not set
729# CONFIG_SENSORS_ADM1026 is not set 800# CONFIG_SENSORS_ADM1026 is not set
@@ -732,6 +803,7 @@ CONFIG_HWMON=y
732# CONFIG_SENSORS_ADM9240 is not set 803# CONFIG_SENSORS_ADM9240 is not set
733# CONFIG_SENSORS_ADT7470 is not set 804# CONFIG_SENSORS_ADT7470 is not set
734# CONFIG_SENSORS_ADT7473 is not set 805# CONFIG_SENSORS_ADT7473 is not set
806# CONFIG_SENSORS_AMS is not set
735# CONFIG_SENSORS_ATXP1 is not set 807# CONFIG_SENSORS_ATXP1 is not set
736# CONFIG_SENSORS_DS1621 is not set 808# CONFIG_SENSORS_DS1621 is not set
737# CONFIG_SENSORS_I5K_AMB is not set 809# CONFIG_SENSORS_I5K_AMB is not set
@@ -777,6 +849,7 @@ CONFIG_HWMON=y
777# CONFIG_SENSORS_W83627EHF is not set 849# CONFIG_SENSORS_W83627EHF is not set
778# CONFIG_HWMON_DEBUG_CHIP is not set 850# CONFIG_HWMON_DEBUG_CHIP is not set
779# CONFIG_THERMAL is not set 851# CONFIG_THERMAL is not set
852# CONFIG_THERMAL_HWMON is not set
780CONFIG_WATCHDOG=y 853CONFIG_WATCHDOG=y
781# CONFIG_WATCHDOG_NOWAYOUT is not set 854# CONFIG_WATCHDOG_NOWAYOUT is not set
782 855
@@ -784,7 +857,9 @@ CONFIG_WATCHDOG=y
784# Watchdog Device Drivers 857# Watchdog Device Drivers
785# 858#
786# CONFIG_SOFT_WATCHDOG is not set 859# CONFIG_SOFT_WATCHDOG is not set
787CONFIG_83xx_WDT=y 860# CONFIG_ALIM7101_WDT is not set
861# CONFIG_8xxx_WDT is not set
862# CONFIG_WATCHDOG_RTAS is not set
788 863
789# 864#
790# PCI-based Watchdog Cards 865# PCI-based Watchdog Cards
@@ -806,8 +881,10 @@ CONFIG_SSB_POSSIBLE=y
806# 881#
807# Multifunction device drivers 882# Multifunction device drivers
808# 883#
884# CONFIG_MFD_CORE is not set
809# CONFIG_MFD_SM501 is not set 885# CONFIG_MFD_SM501 is not set
810# CONFIG_HTC_PASIC3 is not set 886# CONFIG_HTC_PASIC3 is not set
887# CONFIG_MFD_TMIO is not set
811 888
812# 889#
813# Multimedia devices 890# Multimedia devices
@@ -840,10 +917,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
840# Display device support 917# Display device support
841# 918#
842# CONFIG_DISPLAY_SUPPORT is not set 919# CONFIG_DISPLAY_SUPPORT is not set
843
844#
845# Sound
846#
847# CONFIG_SOUND is not set 920# CONFIG_SOUND is not set
848CONFIG_HID_SUPPORT=y 921CONFIG_HID_SUPPORT=y
849CONFIG_HID=y 922CONFIG_HID=y
@@ -877,6 +950,7 @@ CONFIG_USB_DEVICE_CLASS=y
877# CONFIG_USB_OTG is not set 950# CONFIG_USB_OTG is not set
878# CONFIG_USB_OTG_WHITELIST is not set 951# CONFIG_USB_OTG_WHITELIST is not set
879# CONFIG_USB_OTG_BLACKLIST_HUB is not set 952# CONFIG_USB_OTG_BLACKLIST_HUB is not set
953CONFIG_USB_MON=y
880 954
881# 955#
882# USB Host Controller Drivers 956# USB Host Controller Drivers
@@ -928,6 +1002,7 @@ CONFIG_USB_STORAGE=y
928# CONFIG_USB_STORAGE_ALAUDA is not set 1002# CONFIG_USB_STORAGE_ALAUDA is not set
929# CONFIG_USB_STORAGE_ONETOUCH is not set 1003# CONFIG_USB_STORAGE_ONETOUCH is not set
930# CONFIG_USB_STORAGE_KARMA is not set 1004# CONFIG_USB_STORAGE_KARMA is not set
1005# CONFIG_USB_STORAGE_SIERRA is not set
931# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1006# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
932# CONFIG_USB_LIBUSUAL is not set 1007# CONFIG_USB_LIBUSUAL is not set
933 1008
@@ -936,7 +1011,6 @@ CONFIG_USB_STORAGE=y
936# 1011#
937# CONFIG_USB_MDC800 is not set 1012# CONFIG_USB_MDC800 is not set
938# CONFIG_USB_MICROTEK is not set 1013# CONFIG_USB_MICROTEK is not set
939CONFIG_USB_MON=y
940 1014
941# 1015#
942# USB port drivers 1016# USB port drivers
@@ -949,7 +1023,6 @@ CONFIG_USB_MON=y
949# CONFIG_USB_EMI62 is not set 1023# CONFIG_USB_EMI62 is not set
950# CONFIG_USB_EMI26 is not set 1024# CONFIG_USB_EMI26 is not set
951# CONFIG_USB_ADUTUX is not set 1025# CONFIG_USB_ADUTUX is not set
952# CONFIG_USB_AUERSWALD is not set
953# CONFIG_USB_RIO500 is not set 1026# CONFIG_USB_RIO500 is not set
954# CONFIG_USB_LEGOTOWER is not set 1027# CONFIG_USB_LEGOTOWER is not set
955# CONFIG_USB_LCD is not set 1028# CONFIG_USB_LCD is not set
@@ -1063,6 +1136,7 @@ CONFIG_TMPFS=y
1063# CONFIG_CRAMFS is not set 1136# CONFIG_CRAMFS is not set
1064# CONFIG_VXFS_FS is not set 1137# CONFIG_VXFS_FS is not set
1065# CONFIG_MINIX_FS is not set 1138# CONFIG_MINIX_FS is not set
1139# CONFIG_OMFS_FS is not set
1066# CONFIG_HPFS_FS is not set 1140# CONFIG_HPFS_FS is not set
1067# CONFIG_QNX4FS_FS is not set 1141# CONFIG_QNX4FS_FS is not set
1068# CONFIG_ROMFS_FS is not set 1142# CONFIG_ROMFS_FS is not set
@@ -1073,14 +1147,13 @@ CONFIG_NFS_FS=y
1073CONFIG_NFS_V3=y 1147CONFIG_NFS_V3=y
1074# CONFIG_NFS_V3_ACL is not set 1148# CONFIG_NFS_V3_ACL is not set
1075CONFIG_NFS_V4=y 1149CONFIG_NFS_V4=y
1076# CONFIG_NFSD is not set
1077CONFIG_ROOT_NFS=y 1150CONFIG_ROOT_NFS=y
1151# CONFIG_NFSD is not set
1078CONFIG_LOCKD=y 1152CONFIG_LOCKD=y
1079CONFIG_LOCKD_V4=y 1153CONFIG_LOCKD_V4=y
1080CONFIG_NFS_COMMON=y 1154CONFIG_NFS_COMMON=y
1081CONFIG_SUNRPC=y 1155CONFIG_SUNRPC=y
1082CONFIG_SUNRPC_GSS=y 1156CONFIG_SUNRPC_GSS=y
1083# CONFIG_SUNRPC_BIND34 is not set
1084CONFIG_RPCSEC_GSS_KRB5=y 1157CONFIG_RPCSEC_GSS_KRB5=y
1085# CONFIG_RPCSEC_GSS_SPKM3 is not set 1158# CONFIG_RPCSEC_GSS_SPKM3 is not set
1086# CONFIG_SMB_FS is not set 1159# CONFIG_SMB_FS is not set
@@ -1154,6 +1227,7 @@ CONFIG_NLS_ISO8859_1=y
1154# CONFIG_DLM is not set 1227# CONFIG_DLM is not set
1155CONFIG_UCC_FAST=y 1228CONFIG_UCC_FAST=y
1156CONFIG_UCC=y 1229CONFIG_UCC=y
1230# CONFIG_QE_GPIO is not set
1157 1231
1158# 1232#
1159# Library routines 1233# Library routines
@@ -1162,6 +1236,7 @@ CONFIG_BITREVERSE=y
1162# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1236# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1163# CONFIG_CRC_CCITT is not set 1237# CONFIG_CRC_CCITT is not set
1164# CONFIG_CRC16 is not set 1238# CONFIG_CRC16 is not set
1239CONFIG_CRC_T10DIF=y
1165CONFIG_CRC_ITU_T=y 1240CONFIG_CRC_ITU_T=y
1166CONFIG_CRC32=y 1241CONFIG_CRC32=y
1167CONFIG_CRC7=y 1242CONFIG_CRC7=y
@@ -1187,8 +1262,18 @@ CONFIG_FRAME_WARN=1024
1187# CONFIG_SLUB_DEBUG_ON is not set 1262# CONFIG_SLUB_DEBUG_ON is not set
1188# CONFIG_SLUB_STATS is not set 1263# CONFIG_SLUB_STATS is not set
1189# CONFIG_DEBUG_BUGVERBOSE is not set 1264# CONFIG_DEBUG_BUGVERBOSE is not set
1265# CONFIG_DEBUG_MEMORY_INIT is not set
1266# CONFIG_LATENCYTOP is not set
1267CONFIG_SYSCTL_SYSCALL_CHECK=y
1268CONFIG_HAVE_FTRACE=y
1269CONFIG_HAVE_DYNAMIC_FTRACE=y
1270# CONFIG_FTRACE is not set
1271# CONFIG_SCHED_TRACER is not set
1272# CONFIG_CONTEXT_SWITCH_TRACER is not set
1190# CONFIG_SAMPLES is not set 1273# CONFIG_SAMPLES is not set
1274CONFIG_HAVE_ARCH_KGDB=y
1191# CONFIG_IRQSTACKS is not set 1275# CONFIG_IRQSTACKS is not set
1276# CONFIG_BOOTX_TEXT is not set
1192# CONFIG_PPC_EARLY_DEBUG is not set 1277# CONFIG_PPC_EARLY_DEBUG is not set
1193 1278
1194# 1279#
@@ -1242,6 +1327,10 @@ CONFIG_CRYPTO_PCBC=m
1242# CONFIG_CRYPTO_MD4 is not set 1327# CONFIG_CRYPTO_MD4 is not set
1243CONFIG_CRYPTO_MD5=y 1328CONFIG_CRYPTO_MD5=y
1244# CONFIG_CRYPTO_MICHAEL_MIC is not set 1329# CONFIG_CRYPTO_MICHAEL_MIC is not set
1330# CONFIG_CRYPTO_RMD128 is not set
1331# CONFIG_CRYPTO_RMD160 is not set
1332# CONFIG_CRYPTO_RMD256 is not set
1333# CONFIG_CRYPTO_RMD320 is not set
1245# CONFIG_CRYPTO_SHA1 is not set 1334# CONFIG_CRYPTO_SHA1 is not set
1246# CONFIG_CRYPTO_SHA256 is not set 1335# CONFIG_CRYPTO_SHA256 is not set
1247# CONFIG_CRYPTO_SHA512 is not set 1336# CONFIG_CRYPTO_SHA512 is not set
@@ -1274,6 +1363,7 @@ CONFIG_CRYPTO_DES=y
1274# CONFIG_CRYPTO_LZO is not set 1363# CONFIG_CRYPTO_LZO is not set
1275CONFIG_CRYPTO_HW=y 1364CONFIG_CRYPTO_HW=y
1276# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1365# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1366# CONFIG_CRYPTO_DEV_TALITOS is not set
1277# CONFIG_PPC_CLOCK is not set 1367# CONFIG_PPC_CLOCK is not set
1278CONFIG_PPC_LIB_RHEAP=y 1368CONFIG_PPC_LIB_RHEAP=y
1279# CONFIG_VIRTUALIZATION is not set 1369# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig b/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
index b47fc9185708..8d6513931850 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itx_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itx_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:25 2008 4# Thu Aug 21 00:52:20 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166CONFIG_MPC834x_ITX=y 180CONFIG_MPC834x_ITX=y
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC834x=y 187CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -439,9 +465,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
439# CONFIG_MTD_UBI is not set 465# CONFIG_MTD_UBI is not set
440CONFIG_OF_DEVICE=y 466CONFIG_OF_DEVICE=y
441CONFIG_OF_I2C=y 467CONFIG_OF_I2C=y
468CONFIG_OF_SPI=y
442# CONFIG_PARPORT is not set 469# CONFIG_PARPORT is not set
443CONFIG_BLK_DEV=y 470CONFIG_BLK_DEV=y
444# CONFIG_BLK_DEV_FD is not set 471# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
445# CONFIG_BLK_CPQ_DA is not set 473# CONFIG_BLK_CPQ_DA is not set
446# CONFIG_BLK_CPQ_CISS_DA is not set 474# CONFIG_BLK_CPQ_CISS_DA is not set
447# CONFIG_BLK_DEV_DAC960 is not set 475# CONFIG_BLK_DEV_DAC960 is not set
@@ -458,18 +486,17 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
458# CONFIG_BLK_DEV_XIP is not set 486# CONFIG_BLK_DEV_XIP is not set
459# CONFIG_CDROM_PKTCDVD is not set 487# CONFIG_CDROM_PKTCDVD is not set
460# CONFIG_ATA_OVER_ETH is not set 488# CONFIG_ATA_OVER_ETH is not set
489# CONFIG_BLK_DEV_HD is not set
461CONFIG_MISC_DEVICES=y 490CONFIG_MISC_DEVICES=y
462# CONFIG_PHANTOM is not set 491# CONFIG_PHANTOM is not set
463# CONFIG_EEPROM_93CX6 is not set 492# CONFIG_EEPROM_93CX6 is not set
464# CONFIG_SGI_IOC4 is not set 493# CONFIG_SGI_IOC4 is not set
465# CONFIG_TIFM_CORE is not set 494# CONFIG_TIFM_CORE is not set
466# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_HP_ILO is not set
467CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
468CONFIG_IDE=y 498CONFIG_IDE=y
469CONFIG_IDE_MAX_HWIFS=4
470# CONFIG_BLK_DEV_IDE is not set 499# CONFIG_BLK_DEV_IDE is not set
471# CONFIG_BLK_DEV_HD_ONLY is not set
472# CONFIG_BLK_DEV_HD is not set
473 500
474# 501#
475# SCSI device support 502# SCSI device support
@@ -545,7 +572,10 @@ CONFIG_SCSI_LOWLEVEL=y
545# CONFIG_SCSI_DC390T is not set 572# CONFIG_SCSI_DC390T is not set
546# CONFIG_SCSI_NSP32 is not set 573# CONFIG_SCSI_NSP32 is not set
547# CONFIG_SCSI_DEBUG is not set 574# CONFIG_SCSI_DEBUG is not set
575# CONFIG_SCSI_MESH is not set
576# CONFIG_SCSI_MAC53C94 is not set
548# CONFIG_SCSI_SRP is not set 577# CONFIG_SCSI_SRP is not set
578# CONFIG_SCSI_DH is not set
549CONFIG_ATA=y 579CONFIG_ATA=y
550# CONFIG_ATA_NONSTANDARD is not set 580# CONFIG_ATA_NONSTANDARD is not set
551CONFIG_SATA_PMP=y 581CONFIG_SATA_PMP=y
@@ -623,12 +653,15 @@ CONFIG_MD_RAID1=y
623# 653#
624# IEEE 1394 (FireWire) support 654# IEEE 1394 (FireWire) support
625# 655#
656
657#
658# Enable only one of the two stacks, unless you know what you are doing
659#
626# CONFIG_FIREWIRE is not set 660# CONFIG_FIREWIRE is not set
627# CONFIG_IEEE1394 is not set 661# CONFIG_IEEE1394 is not set
628# CONFIG_I2O is not set 662# CONFIG_I2O is not set
629# CONFIG_MACINTOSH_DRIVERS is not set 663# CONFIG_MACINTOSH_DRIVERS is not set
630CONFIG_NETDEVICES=y 664CONFIG_NETDEVICES=y
631# CONFIG_NETDEVICES_MULTIQUEUE is not set
632# CONFIG_DUMMY is not set 665# CONFIG_DUMMY is not set
633# CONFIG_BONDING is not set 666# CONFIG_BONDING is not set
634# CONFIG_MACVLAN is not set 667# CONFIG_MACVLAN is not set
@@ -659,7 +692,6 @@ CONFIG_NETDEV_1000=y
659# CONFIG_DL2K is not set 692# CONFIG_DL2K is not set
660# CONFIG_E1000 is not set 693# CONFIG_E1000 is not set
661# CONFIG_E1000E is not set 694# CONFIG_E1000E is not set
662# CONFIG_E1000E_ENABLED is not set
663# CONFIG_IP1000 is not set 695# CONFIG_IP1000 is not set
664# CONFIG_IGB is not set 696# CONFIG_IGB is not set
665# CONFIG_NS83820 is not set 697# CONFIG_NS83820 is not set
@@ -673,9 +705,10 @@ CONFIG_NETDEV_1000=y
673# CONFIG_TIGON3 is not set 705# CONFIG_TIGON3 is not set
674# CONFIG_BNX2 is not set 706# CONFIG_BNX2 is not set
675CONFIG_GIANFAR=y 707CONFIG_GIANFAR=y
676CONFIG_GFAR_NAPI=y 708# CONFIG_MV643XX_ETH is not set
677# CONFIG_QLA3XXX is not set 709# CONFIG_QLA3XXX is not set
678# CONFIG_ATL1 is not set 710# CONFIG_ATL1 is not set
711# CONFIG_ATL1E is not set
679CONFIG_NETDEV_10000=y 712CONFIG_NETDEV_10000=y
680# CONFIG_CHELSIO_T1 is not set 713# CONFIG_CHELSIO_T1 is not set
681# CONFIG_CHELSIO_T3 is not set 714# CONFIG_CHELSIO_T3 is not set
@@ -753,11 +786,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
753# CONFIG_SERIAL_UARTLITE is not set 786# CONFIG_SERIAL_UARTLITE is not set
754CONFIG_SERIAL_CORE=y 787CONFIG_SERIAL_CORE=y
755CONFIG_SERIAL_CORE_CONSOLE=y 788CONFIG_SERIAL_CORE_CONSOLE=y
789# CONFIG_SERIAL_PMACZILOG is not set
756# CONFIG_SERIAL_JSM is not set 790# CONFIG_SERIAL_JSM is not set
757# CONFIG_SERIAL_OF_PLATFORM is not set 791# CONFIG_SERIAL_OF_PLATFORM is not set
758CONFIG_UNIX98_PTYS=y 792CONFIG_UNIX98_PTYS=y
759CONFIG_LEGACY_PTYS=y 793CONFIG_LEGACY_PTYS=y
760CONFIG_LEGACY_PTY_COUNT=256 794CONFIG_LEGACY_PTY_COUNT=256
795# CONFIG_BRIQ_PANEL is not set
796# CONFIG_HVC_RTAS is not set
761# CONFIG_IPMI_HANDLER is not set 797# CONFIG_IPMI_HANDLER is not set
762CONFIG_HW_RANDOM=y 798CONFIG_HW_RANDOM=y
763# CONFIG_NVRAM is not set 799# CONFIG_NVRAM is not set
@@ -769,43 +805,70 @@ CONFIG_DEVPORT=y
769CONFIG_I2C=y 805CONFIG_I2C=y
770CONFIG_I2C_BOARDINFO=y 806CONFIG_I2C_BOARDINFO=y
771CONFIG_I2C_CHARDEV=y 807CONFIG_I2C_CHARDEV=y
808CONFIG_I2C_HELPER_AUTO=y
772 809
773# 810#
774# I2C Hardware Bus support 811# I2C Hardware Bus support
775# 812#
813
814#
815# PC SMBus host controller drivers
816#
776# CONFIG_I2C_ALI1535 is not set 817# CONFIG_I2C_ALI1535 is not set
777# CONFIG_I2C_ALI1563 is not set 818# CONFIG_I2C_ALI1563 is not set
778# CONFIG_I2C_ALI15X3 is not set 819# CONFIG_I2C_ALI15X3 is not set
779# CONFIG_I2C_AMD756 is not set 820# CONFIG_I2C_AMD756 is not set
780# CONFIG_I2C_AMD8111 is not set 821# CONFIG_I2C_AMD8111 is not set
781# CONFIG_I2C_I801 is not set 822# CONFIG_I2C_I801 is not set
782# CONFIG_I2C_I810 is not set 823# CONFIG_I2C_ISCH is not set
783# CONFIG_I2C_PIIX4 is not set 824# CONFIG_I2C_PIIX4 is not set
784CONFIG_I2C_MPC=y
785# CONFIG_I2C_NFORCE2 is not set 825# CONFIG_I2C_NFORCE2 is not set
786# CONFIG_I2C_OCORES is not set
787# CONFIG_I2C_PARPORT_LIGHT is not set
788# CONFIG_I2C_PROSAVAGE is not set
789# CONFIG_I2C_SAVAGE4 is not set
790# CONFIG_I2C_SIMTEC is not set
791# CONFIG_I2C_SIS5595 is not set 826# CONFIG_I2C_SIS5595 is not set
792# CONFIG_I2C_SIS630 is not set 827# CONFIG_I2C_SIS630 is not set
793# CONFIG_I2C_SIS96X is not set 828# CONFIG_I2C_SIS96X is not set
794# CONFIG_I2C_TAOS_EVM is not set
795# CONFIG_I2C_STUB is not set
796# CONFIG_I2C_TINY_USB is not set
797# CONFIG_I2C_VIA is not set 829# CONFIG_I2C_VIA is not set
798# CONFIG_I2C_VIAPRO is not set 830# CONFIG_I2C_VIAPRO is not set
831
832#
833# Mac SMBus host controller drivers
834#
835# CONFIG_I2C_HYDRA is not set
836CONFIG_I2C_POWERMAC=y
837
838#
839# I2C system bus drivers (mostly embedded / system-on-chip)
840#
841CONFIG_I2C_MPC=y
842# CONFIG_I2C_OCORES is not set
843# CONFIG_I2C_SIMTEC is not set
844
845#
846# External I2C/SMBus adapter drivers
847#
848# CONFIG_I2C_PARPORT_LIGHT is not set
849# CONFIG_I2C_TAOS_EVM is not set
850# CONFIG_I2C_TINY_USB is not set
851
852#
853# Graphics adapter I2C/DDC channel drivers
854#
799# CONFIG_I2C_VOODOO3 is not set 855# CONFIG_I2C_VOODOO3 is not set
856
857#
858# Other I2C/SMBus bus drivers
859#
800# CONFIG_I2C_PCA_PLATFORM is not set 860# CONFIG_I2C_PCA_PLATFORM is not set
861# CONFIG_I2C_STUB is not set
801 862
802# 863#
803# Miscellaneous I2C Chip support 864# Miscellaneous I2C Chip support
804# 865#
805# CONFIG_DS1682 is not set 866# CONFIG_DS1682 is not set
867# CONFIG_AT24 is not set
806# CONFIG_SENSORS_EEPROM is not set 868# CONFIG_SENSORS_EEPROM is not set
807CONFIG_SENSORS_PCF8574=y 869CONFIG_SENSORS_PCF8574=y
808# CONFIG_PCF8575 is not set 870# CONFIG_PCF8575 is not set
871# CONFIG_SENSORS_PCA9539 is not set
809# CONFIG_SENSORS_PCF8591 is not set 872# CONFIG_SENSORS_PCF8591 is not set
810# CONFIG_SENSORS_MAX6875 is not set 873# CONFIG_SENSORS_MAX6875 is not set
811# CONFIG_SENSORS_TSL2550 is not set 874# CONFIG_SENSORS_TSL2550 is not set
@@ -828,10 +891,13 @@ CONFIG_SPI_MPC83xx=y
828# CONFIG_SPI_AT25 is not set 891# CONFIG_SPI_AT25 is not set
829# CONFIG_SPI_SPIDEV is not set 892# CONFIG_SPI_SPIDEV is not set
830# CONFIG_SPI_TLE62X0 is not set 893# CONFIG_SPI_TLE62X0 is not set
894CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
895# CONFIG_GPIOLIB is not set
831# CONFIG_W1 is not set 896# CONFIG_W1 is not set
832# CONFIG_POWER_SUPPLY is not set 897# CONFIG_POWER_SUPPLY is not set
833# CONFIG_HWMON is not set 898# CONFIG_HWMON is not set
834# CONFIG_THERMAL is not set 899# CONFIG_THERMAL is not set
900# CONFIG_THERMAL_HWMON is not set
835CONFIG_WATCHDOG=y 901CONFIG_WATCHDOG=y
836# CONFIG_WATCHDOG_NOWAYOUT is not set 902# CONFIG_WATCHDOG_NOWAYOUT is not set
837 903
@@ -839,7 +905,9 @@ CONFIG_WATCHDOG=y
839# Watchdog Device Drivers 905# Watchdog Device Drivers
840# 906#
841# CONFIG_SOFT_WATCHDOG is not set 907# CONFIG_SOFT_WATCHDOG is not set
842CONFIG_83xx_WDT=y 908# CONFIG_ALIM7101_WDT is not set
909# CONFIG_8xxx_WDT is not set
910# CONFIG_WATCHDOG_RTAS is not set
843 911
844# 912#
845# PCI-based Watchdog Cards 913# PCI-based Watchdog Cards
@@ -861,8 +929,10 @@ CONFIG_SSB_POSSIBLE=y
861# 929#
862# Multifunction device drivers 930# Multifunction device drivers
863# 931#
932# CONFIG_MFD_CORE is not set
864# CONFIG_MFD_SM501 is not set 933# CONFIG_MFD_SM501 is not set
865# CONFIG_HTC_PASIC3 is not set 934# CONFIG_HTC_PASIC3 is not set
935# CONFIG_MFD_TMIO is not set
866 936
867# 937#
868# Multimedia devices 938# Multimedia devices
@@ -895,10 +965,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
895# Display device support 965# Display device support
896# 966#
897# CONFIG_DISPLAY_SUPPORT is not set 967# CONFIG_DISPLAY_SUPPORT is not set
898
899#
900# Sound
901#
902# CONFIG_SOUND is not set 968# CONFIG_SOUND is not set
903CONFIG_USB_SUPPORT=y 969CONFIG_USB_SUPPORT=y
904CONFIG_USB_ARCH_HAS_HCD=y 970CONFIG_USB_ARCH_HAS_HCD=y
@@ -917,6 +983,7 @@ CONFIG_USB_DEVICE_CLASS=y
917# CONFIG_USB_OTG is not set 983# CONFIG_USB_OTG is not set
918# CONFIG_USB_OTG_WHITELIST is not set 984# CONFIG_USB_OTG_WHITELIST is not set
919# CONFIG_USB_OTG_BLACKLIST_HUB is not set 985# CONFIG_USB_OTG_BLACKLIST_HUB is not set
986CONFIG_USB_MON=y
920 987
921# 988#
922# USB Host Controller Drivers 989# USB Host Controller Drivers
@@ -960,6 +1027,7 @@ CONFIG_USB_STORAGE=y
960# CONFIG_USB_STORAGE_JUMPSHOT is not set 1027# CONFIG_USB_STORAGE_JUMPSHOT is not set
961# CONFIG_USB_STORAGE_ALAUDA is not set 1028# CONFIG_USB_STORAGE_ALAUDA is not set
962# CONFIG_USB_STORAGE_KARMA is not set 1029# CONFIG_USB_STORAGE_KARMA is not set
1030# CONFIG_USB_STORAGE_SIERRA is not set
963# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1031# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
964# CONFIG_USB_LIBUSUAL is not set 1032# CONFIG_USB_LIBUSUAL is not set
965 1033
@@ -968,7 +1036,6 @@ CONFIG_USB_STORAGE=y
968# 1036#
969# CONFIG_USB_MDC800 is not set 1037# CONFIG_USB_MDC800 is not set
970# CONFIG_USB_MICROTEK is not set 1038# CONFIG_USB_MICROTEK is not set
971CONFIG_USB_MON=y
972 1039
973# 1040#
974# USB port drivers 1041# USB port drivers
@@ -981,7 +1048,6 @@ CONFIG_USB_MON=y
981# CONFIG_USB_EMI62 is not set 1048# CONFIG_USB_EMI62 is not set
982# CONFIG_USB_EMI26 is not set 1049# CONFIG_USB_EMI26 is not set
983# CONFIG_USB_ADUTUX is not set 1050# CONFIG_USB_ADUTUX is not set
984# CONFIG_USB_AUERSWALD is not set
985# CONFIG_USB_RIO500 is not set 1051# CONFIG_USB_RIO500 is not set
986# CONFIG_USB_LEGOTOWER is not set 1052# CONFIG_USB_LEGOTOWER is not set
987# CONFIG_USB_LCD is not set 1053# CONFIG_USB_LCD is not set
@@ -1035,10 +1101,13 @@ CONFIG_RTC_DRV_DS1307=y
1035# CONFIG_RTC_DRV_PCF8583 is not set 1101# CONFIG_RTC_DRV_PCF8583 is not set
1036# CONFIG_RTC_DRV_M41T80 is not set 1102# CONFIG_RTC_DRV_M41T80 is not set
1037# CONFIG_RTC_DRV_S35390A is not set 1103# CONFIG_RTC_DRV_S35390A is not set
1104# CONFIG_RTC_DRV_FM3130 is not set
1038 1105
1039# 1106#
1040# SPI RTC drivers 1107# SPI RTC drivers
1041# 1108#
1109# CONFIG_RTC_DRV_M41T94 is not set
1110# CONFIG_RTC_DRV_DS1305 is not set
1042# CONFIG_RTC_DRV_MAX6902 is not set 1111# CONFIG_RTC_DRV_MAX6902 is not set
1043# CONFIG_RTC_DRV_R9701 is not set 1112# CONFIG_RTC_DRV_R9701 is not set
1044# CONFIG_RTC_DRV_RS5C348 is not set 1113# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1130,6 +1199,7 @@ CONFIG_TMPFS=y
1130# CONFIG_CRAMFS is not set 1199# CONFIG_CRAMFS is not set
1131# CONFIG_VXFS_FS is not set 1200# CONFIG_VXFS_FS is not set
1132# CONFIG_MINIX_FS is not set 1201# CONFIG_MINIX_FS is not set
1202# CONFIG_OMFS_FS is not set
1133# CONFIG_HPFS_FS is not set 1203# CONFIG_HPFS_FS is not set
1134# CONFIG_QNX4FS_FS is not set 1204# CONFIG_QNX4FS_FS is not set
1135# CONFIG_ROMFS_FS is not set 1205# CONFIG_ROMFS_FS is not set
@@ -1140,14 +1210,13 @@ CONFIG_NFS_FS=y
1140CONFIG_NFS_V3=y 1210CONFIG_NFS_V3=y
1141# CONFIG_NFS_V3_ACL is not set 1211# CONFIG_NFS_V3_ACL is not set
1142CONFIG_NFS_V4=y 1212CONFIG_NFS_V4=y
1143# CONFIG_NFSD is not set
1144CONFIG_ROOT_NFS=y 1213CONFIG_ROOT_NFS=y
1214# CONFIG_NFSD is not set
1145CONFIG_LOCKD=y 1215CONFIG_LOCKD=y
1146CONFIG_LOCKD_V4=y 1216CONFIG_LOCKD_V4=y
1147CONFIG_NFS_COMMON=y 1217CONFIG_NFS_COMMON=y
1148CONFIG_SUNRPC=y 1218CONFIG_SUNRPC=y
1149CONFIG_SUNRPC_GSS=y 1219CONFIG_SUNRPC_GSS=y
1150# CONFIG_SUNRPC_BIND34 is not set
1151CONFIG_RPCSEC_GSS_KRB5=y 1220CONFIG_RPCSEC_GSS_KRB5=y
1152# CONFIG_RPCSEC_GSS_SPKM3 is not set 1221# CONFIG_RPCSEC_GSS_SPKM3 is not set
1153# CONFIG_SMB_FS is not set 1222# CONFIG_SMB_FS is not set
@@ -1226,6 +1295,7 @@ CONFIG_BITREVERSE=y
1226# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1295# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1227# CONFIG_CRC_CCITT is not set 1296# CONFIG_CRC_CCITT is not set
1228# CONFIG_CRC16 is not set 1297# CONFIG_CRC16 is not set
1298CONFIG_CRC_T10DIF=y
1229# CONFIG_CRC_ITU_T is not set 1299# CONFIG_CRC_ITU_T is not set
1230CONFIG_CRC32=y 1300CONFIG_CRC32=y
1231# CONFIG_CRC7 is not set 1301# CONFIG_CRC7 is not set
@@ -1251,8 +1321,18 @@ CONFIG_FRAME_WARN=1024
1251# CONFIG_SLUB_DEBUG_ON is not set 1321# CONFIG_SLUB_DEBUG_ON is not set
1252# CONFIG_SLUB_STATS is not set 1322# CONFIG_SLUB_STATS is not set
1253# CONFIG_DEBUG_BUGVERBOSE is not set 1323# CONFIG_DEBUG_BUGVERBOSE is not set
1324# CONFIG_DEBUG_MEMORY_INIT is not set
1325# CONFIG_LATENCYTOP is not set
1326CONFIG_SYSCTL_SYSCALL_CHECK=y
1327CONFIG_HAVE_FTRACE=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329# CONFIG_FTRACE is not set
1330# CONFIG_SCHED_TRACER is not set
1331# CONFIG_CONTEXT_SWITCH_TRACER is not set
1254# CONFIG_SAMPLES is not set 1332# CONFIG_SAMPLES is not set
1333CONFIG_HAVE_ARCH_KGDB=y
1255# CONFIG_IRQSTACKS is not set 1334# CONFIG_IRQSTACKS is not set
1335# CONFIG_BOOTX_TEXT is not set
1256# CONFIG_PPC_EARLY_DEBUG is not set 1336# CONFIG_PPC_EARLY_DEBUG is not set
1257 1337
1258# 1338#
@@ -1306,6 +1386,10 @@ CONFIG_CRYPTO_PCBC=m
1306# CONFIG_CRYPTO_MD4 is not set 1386# CONFIG_CRYPTO_MD4 is not set
1307CONFIG_CRYPTO_MD5=y 1387CONFIG_CRYPTO_MD5=y
1308# CONFIG_CRYPTO_MICHAEL_MIC is not set 1388# CONFIG_CRYPTO_MICHAEL_MIC is not set
1389# CONFIG_CRYPTO_RMD128 is not set
1390# CONFIG_CRYPTO_RMD160 is not set
1391# CONFIG_CRYPTO_RMD256 is not set
1392# CONFIG_CRYPTO_RMD320 is not set
1309# CONFIG_CRYPTO_SHA1 is not set 1393# CONFIG_CRYPTO_SHA1 is not set
1310# CONFIG_CRYPTO_SHA256 is not set 1394# CONFIG_CRYPTO_SHA256 is not set
1311# CONFIG_CRYPTO_SHA512 is not set 1395# CONFIG_CRYPTO_SHA512 is not set
@@ -1338,5 +1422,6 @@ CONFIG_CRYPTO_DES=y
1338# CONFIG_CRYPTO_LZO is not set 1422# CONFIG_CRYPTO_LZO is not set
1339CONFIG_CRYPTO_HW=y 1423CONFIG_CRYPTO_HW=y
1340# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1424# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1425# CONFIG_CRYPTO_DEV_TALITOS is not set
1341# CONFIG_PPC_CLOCK is not set 1426# CONFIG_PPC_CLOCK is not set
1342# CONFIG_VIRTUALIZATION is not set 1427# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig b/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
index fdac4845bad9..a8afa39d6f76 100644
--- a/arch/powerpc/configs/83xx/mpc834x_itxgp_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_itxgp_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:26 2008 4# Thu Aug 21 00:52:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166CONFIG_MPC834x_ITX=y 180CONFIG_MPC834x_ITX=y
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC834x=y 187CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -439,9 +465,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
439# CONFIG_MTD_UBI is not set 465# CONFIG_MTD_UBI is not set
440CONFIG_OF_DEVICE=y 466CONFIG_OF_DEVICE=y
441CONFIG_OF_I2C=y 467CONFIG_OF_I2C=y
468CONFIG_OF_SPI=y
442# CONFIG_PARPORT is not set 469# CONFIG_PARPORT is not set
443CONFIG_BLK_DEV=y 470CONFIG_BLK_DEV=y
444# CONFIG_BLK_DEV_FD is not set 471# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
445# CONFIG_BLK_CPQ_DA is not set 473# CONFIG_BLK_CPQ_DA is not set
446# CONFIG_BLK_CPQ_CISS_DA is not set 474# CONFIG_BLK_CPQ_CISS_DA is not set
447# CONFIG_BLK_DEV_DAC960 is not set 475# CONFIG_BLK_DEV_DAC960 is not set
@@ -458,12 +486,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
458# CONFIG_BLK_DEV_XIP is not set 486# CONFIG_BLK_DEV_XIP is not set
459# CONFIG_CDROM_PKTCDVD is not set 487# CONFIG_CDROM_PKTCDVD is not set
460# CONFIG_ATA_OVER_ETH is not set 488# CONFIG_ATA_OVER_ETH is not set
489# CONFIG_BLK_DEV_HD is not set
461CONFIG_MISC_DEVICES=y 490CONFIG_MISC_DEVICES=y
462# CONFIG_PHANTOM is not set 491# CONFIG_PHANTOM is not set
463# CONFIG_EEPROM_93CX6 is not set 492# CONFIG_EEPROM_93CX6 is not set
464# CONFIG_SGI_IOC4 is not set 493# CONFIG_SGI_IOC4 is not set
465# CONFIG_TIFM_CORE is not set 494# CONFIG_TIFM_CORE is not set
466# CONFIG_ENCLOSURE_SERVICES is not set 495# CONFIG_ENCLOSURE_SERVICES is not set
496# CONFIG_HP_ILO is not set
467CONFIG_HAVE_IDE=y 497CONFIG_HAVE_IDE=y
468# CONFIG_IDE is not set 498# CONFIG_IDE is not set
469 499
@@ -540,7 +570,10 @@ CONFIG_SCSI_LOWLEVEL=y
540# CONFIG_SCSI_DC390T is not set 570# CONFIG_SCSI_DC390T is not set
541# CONFIG_SCSI_NSP32 is not set 571# CONFIG_SCSI_NSP32 is not set
542# CONFIG_SCSI_DEBUG is not set 572# CONFIG_SCSI_DEBUG is not set
573# CONFIG_SCSI_MESH is not set
574# CONFIG_SCSI_MAC53C94 is not set
543# CONFIG_SCSI_SRP is not set 575# CONFIG_SCSI_SRP is not set
576# CONFIG_SCSI_DH is not set
544# CONFIG_ATA is not set 577# CONFIG_ATA is not set
545# CONFIG_MD is not set 578# CONFIG_MD is not set
546# CONFIG_FUSION is not set 579# CONFIG_FUSION is not set
@@ -548,12 +581,15 @@ CONFIG_SCSI_LOWLEVEL=y
548# 581#
549# IEEE 1394 (FireWire) support 582# IEEE 1394 (FireWire) support
550# 583#
584
585#
586# Enable only one of the two stacks, unless you know what you are doing
587#
551# CONFIG_FIREWIRE is not set 588# CONFIG_FIREWIRE is not set
552# CONFIG_IEEE1394 is not set 589# CONFIG_IEEE1394 is not set
553# CONFIG_I2O is not set 590# CONFIG_I2O is not set
554# CONFIG_MACINTOSH_DRIVERS is not set 591# CONFIG_MACINTOSH_DRIVERS is not set
555CONFIG_NETDEVICES=y 592CONFIG_NETDEVICES=y
556# CONFIG_NETDEVICES_MULTIQUEUE is not set
557# CONFIG_DUMMY is not set 593# CONFIG_DUMMY is not set
558# CONFIG_BONDING is not set 594# CONFIG_BONDING is not set
559# CONFIG_MACVLAN is not set 595# CONFIG_MACVLAN is not set
@@ -584,7 +620,6 @@ CONFIG_NETDEV_1000=y
584# CONFIG_DL2K is not set 620# CONFIG_DL2K is not set
585# CONFIG_E1000 is not set 621# CONFIG_E1000 is not set
586# CONFIG_E1000E is not set 622# CONFIG_E1000E is not set
587# CONFIG_E1000E_ENABLED is not set
588# CONFIG_IP1000 is not set 623# CONFIG_IP1000 is not set
589# CONFIG_IGB is not set 624# CONFIG_IGB is not set
590# CONFIG_NS83820 is not set 625# CONFIG_NS83820 is not set
@@ -598,9 +633,10 @@ CONFIG_NETDEV_1000=y
598# CONFIG_TIGON3 is not set 633# CONFIG_TIGON3 is not set
599# CONFIG_BNX2 is not set 634# CONFIG_BNX2 is not set
600CONFIG_GIANFAR=y 635CONFIG_GIANFAR=y
601CONFIG_GFAR_NAPI=y 636# CONFIG_MV643XX_ETH is not set
602# CONFIG_QLA3XXX is not set 637# CONFIG_QLA3XXX is not set
603# CONFIG_ATL1 is not set 638# CONFIG_ATL1 is not set
639# CONFIG_ATL1E is not set
604CONFIG_NETDEV_10000=y 640CONFIG_NETDEV_10000=y
605# CONFIG_CHELSIO_T1 is not set 641# CONFIG_CHELSIO_T1 is not set
606# CONFIG_CHELSIO_T3 is not set 642# CONFIG_CHELSIO_T3 is not set
@@ -678,11 +714,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
678# CONFIG_SERIAL_UARTLITE is not set 714# CONFIG_SERIAL_UARTLITE is not set
679CONFIG_SERIAL_CORE=y 715CONFIG_SERIAL_CORE=y
680CONFIG_SERIAL_CORE_CONSOLE=y 716CONFIG_SERIAL_CORE_CONSOLE=y
717# CONFIG_SERIAL_PMACZILOG is not set
681# CONFIG_SERIAL_JSM is not set 718# CONFIG_SERIAL_JSM is not set
682# CONFIG_SERIAL_OF_PLATFORM is not set 719# CONFIG_SERIAL_OF_PLATFORM is not set
683CONFIG_UNIX98_PTYS=y 720CONFIG_UNIX98_PTYS=y
684CONFIG_LEGACY_PTYS=y 721CONFIG_LEGACY_PTYS=y
685CONFIG_LEGACY_PTY_COUNT=256 722CONFIG_LEGACY_PTY_COUNT=256
723# CONFIG_BRIQ_PANEL is not set
724# CONFIG_HVC_RTAS is not set
686# CONFIG_IPMI_HANDLER is not set 725# CONFIG_IPMI_HANDLER is not set
687CONFIG_HW_RANDOM=y 726CONFIG_HW_RANDOM=y
688# CONFIG_NVRAM is not set 727# CONFIG_NVRAM is not set
@@ -694,43 +733,70 @@ CONFIG_DEVPORT=y
694CONFIG_I2C=y 733CONFIG_I2C=y
695CONFIG_I2C_BOARDINFO=y 734CONFIG_I2C_BOARDINFO=y
696CONFIG_I2C_CHARDEV=y 735CONFIG_I2C_CHARDEV=y
736CONFIG_I2C_HELPER_AUTO=y
697 737
698# 738#
699# I2C Hardware Bus support 739# I2C Hardware Bus support
700# 740#
741
742#
743# PC SMBus host controller drivers
744#
701# CONFIG_I2C_ALI1535 is not set 745# CONFIG_I2C_ALI1535 is not set
702# CONFIG_I2C_ALI1563 is not set 746# CONFIG_I2C_ALI1563 is not set
703# CONFIG_I2C_ALI15X3 is not set 747# CONFIG_I2C_ALI15X3 is not set
704# CONFIG_I2C_AMD756 is not set 748# CONFIG_I2C_AMD756 is not set
705# CONFIG_I2C_AMD8111 is not set 749# CONFIG_I2C_AMD8111 is not set
706# CONFIG_I2C_I801 is not set 750# CONFIG_I2C_I801 is not set
707# CONFIG_I2C_I810 is not set 751# CONFIG_I2C_ISCH is not set
708# CONFIG_I2C_PIIX4 is not set 752# CONFIG_I2C_PIIX4 is not set
709CONFIG_I2C_MPC=y
710# CONFIG_I2C_NFORCE2 is not set 753# CONFIG_I2C_NFORCE2 is not set
711# CONFIG_I2C_OCORES is not set
712# CONFIG_I2C_PARPORT_LIGHT is not set
713# CONFIG_I2C_PROSAVAGE is not set
714# CONFIG_I2C_SAVAGE4 is not set
715# CONFIG_I2C_SIMTEC is not set
716# CONFIG_I2C_SIS5595 is not set 754# CONFIG_I2C_SIS5595 is not set
717# CONFIG_I2C_SIS630 is not set 755# CONFIG_I2C_SIS630 is not set
718# CONFIG_I2C_SIS96X is not set 756# CONFIG_I2C_SIS96X is not set
719# CONFIG_I2C_TAOS_EVM is not set
720# CONFIG_I2C_STUB is not set
721# CONFIG_I2C_TINY_USB is not set
722# CONFIG_I2C_VIA is not set 757# CONFIG_I2C_VIA is not set
723# CONFIG_I2C_VIAPRO is not set 758# CONFIG_I2C_VIAPRO is not set
759
760#
761# Mac SMBus host controller drivers
762#
763# CONFIG_I2C_HYDRA is not set
764CONFIG_I2C_POWERMAC=y
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769CONFIG_I2C_MPC=y
770# CONFIG_I2C_OCORES is not set
771# CONFIG_I2C_SIMTEC is not set
772
773#
774# External I2C/SMBus adapter drivers
775#
776# CONFIG_I2C_PARPORT_LIGHT is not set
777# CONFIG_I2C_TAOS_EVM is not set
778# CONFIG_I2C_TINY_USB is not set
779
780#
781# Graphics adapter I2C/DDC channel drivers
782#
724# CONFIG_I2C_VOODOO3 is not set 783# CONFIG_I2C_VOODOO3 is not set
784
785#
786# Other I2C/SMBus bus drivers
787#
725# CONFIG_I2C_PCA_PLATFORM is not set 788# CONFIG_I2C_PCA_PLATFORM is not set
789# CONFIG_I2C_STUB is not set
726 790
727# 791#
728# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
729# 793#
730# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
731# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
732CONFIG_SENSORS_PCF8574=y 797CONFIG_SENSORS_PCF8574=y
733# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
734# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
735# CONFIG_SENSORS_MAX6875 is not set 801# CONFIG_SENSORS_MAX6875 is not set
736# CONFIG_SENSORS_TSL2550 is not set 802# CONFIG_SENSORS_TSL2550 is not set
@@ -753,10 +819,13 @@ CONFIG_SPI_MPC83xx=y
753# CONFIG_SPI_AT25 is not set 819# CONFIG_SPI_AT25 is not set
754# CONFIG_SPI_SPIDEV is not set 820# CONFIG_SPI_SPIDEV is not set
755# CONFIG_SPI_TLE62X0 is not set 821# CONFIG_SPI_TLE62X0 is not set
822CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
823# CONFIG_GPIOLIB is not set
756# CONFIG_W1 is not set 824# CONFIG_W1 is not set
757# CONFIG_POWER_SUPPLY is not set 825# CONFIG_POWER_SUPPLY is not set
758# CONFIG_HWMON is not set 826# CONFIG_HWMON is not set
759# CONFIG_THERMAL is not set 827# CONFIG_THERMAL is not set
828# CONFIG_THERMAL_HWMON is not set
760CONFIG_WATCHDOG=y 829CONFIG_WATCHDOG=y
761# CONFIG_WATCHDOG_NOWAYOUT is not set 830# CONFIG_WATCHDOG_NOWAYOUT is not set
762 831
@@ -764,7 +833,9 @@ CONFIG_WATCHDOG=y
764# Watchdog Device Drivers 833# Watchdog Device Drivers
765# 834#
766# CONFIG_SOFT_WATCHDOG is not set 835# CONFIG_SOFT_WATCHDOG is not set
767CONFIG_83xx_WDT=y 836# CONFIG_ALIM7101_WDT is not set
837# CONFIG_8xxx_WDT is not set
838# CONFIG_WATCHDOG_RTAS is not set
768 839
769# 840#
770# PCI-based Watchdog Cards 841# PCI-based Watchdog Cards
@@ -786,8 +857,10 @@ CONFIG_SSB_POSSIBLE=y
786# 857#
787# Multifunction device drivers 858# Multifunction device drivers
788# 859#
860# CONFIG_MFD_CORE is not set
789# CONFIG_MFD_SM501 is not set 861# CONFIG_MFD_SM501 is not set
790# CONFIG_HTC_PASIC3 is not set 862# CONFIG_HTC_PASIC3 is not set
863# CONFIG_MFD_TMIO is not set
791 864
792# 865#
793# Multimedia devices 866# Multimedia devices
@@ -820,10 +893,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
820# Display device support 893# Display device support
821# 894#
822# CONFIG_DISPLAY_SUPPORT is not set 895# CONFIG_DISPLAY_SUPPORT is not set
823
824#
825# Sound
826#
827# CONFIG_SOUND is not set 896# CONFIG_SOUND is not set
828CONFIG_USB_SUPPORT=y 897CONFIG_USB_SUPPORT=y
829CONFIG_USB_ARCH_HAS_HCD=y 898CONFIG_USB_ARCH_HAS_HCD=y
@@ -842,6 +911,7 @@ CONFIG_USB_DEVICE_CLASS=y
842# CONFIG_USB_OTG is not set 911# CONFIG_USB_OTG is not set
843# CONFIG_USB_OTG_WHITELIST is not set 912# CONFIG_USB_OTG_WHITELIST is not set
844# CONFIG_USB_OTG_BLACKLIST_HUB is not set 913# CONFIG_USB_OTG_BLACKLIST_HUB is not set
914CONFIG_USB_MON=y
845 915
846# 916#
847# USB Host Controller Drivers 917# USB Host Controller Drivers
@@ -885,6 +955,7 @@ CONFIG_USB_STORAGE=y
885# CONFIG_USB_STORAGE_JUMPSHOT is not set 955# CONFIG_USB_STORAGE_JUMPSHOT is not set
886# CONFIG_USB_STORAGE_ALAUDA is not set 956# CONFIG_USB_STORAGE_ALAUDA is not set
887# CONFIG_USB_STORAGE_KARMA is not set 957# CONFIG_USB_STORAGE_KARMA is not set
958# CONFIG_USB_STORAGE_SIERRA is not set
888# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 959# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
889# CONFIG_USB_LIBUSUAL is not set 960# CONFIG_USB_LIBUSUAL is not set
890 961
@@ -893,7 +964,6 @@ CONFIG_USB_STORAGE=y
893# 964#
894# CONFIG_USB_MDC800 is not set 965# CONFIG_USB_MDC800 is not set
895# CONFIG_USB_MICROTEK is not set 966# CONFIG_USB_MICROTEK is not set
896CONFIG_USB_MON=y
897 967
898# 968#
899# USB port drivers 969# USB port drivers
@@ -906,7 +976,6 @@ CONFIG_USB_MON=y
906# CONFIG_USB_EMI62 is not set 976# CONFIG_USB_EMI62 is not set
907# CONFIG_USB_EMI26 is not set 977# CONFIG_USB_EMI26 is not set
908# CONFIG_USB_ADUTUX is not set 978# CONFIG_USB_ADUTUX is not set
909# CONFIG_USB_AUERSWALD is not set
910# CONFIG_USB_RIO500 is not set 979# CONFIG_USB_RIO500 is not set
911# CONFIG_USB_LEGOTOWER is not set 980# CONFIG_USB_LEGOTOWER is not set
912# CONFIG_USB_LCD is not set 981# CONFIG_USB_LCD is not set
@@ -959,10 +1028,13 @@ CONFIG_RTC_DRV_DS1307=y
959# CONFIG_RTC_DRV_PCF8583 is not set 1028# CONFIG_RTC_DRV_PCF8583 is not set
960# CONFIG_RTC_DRV_M41T80 is not set 1029# CONFIG_RTC_DRV_M41T80 is not set
961# CONFIG_RTC_DRV_S35390A is not set 1030# CONFIG_RTC_DRV_S35390A is not set
1031# CONFIG_RTC_DRV_FM3130 is not set
962 1032
963# 1033#
964# SPI RTC drivers 1034# SPI RTC drivers
965# 1035#
1036# CONFIG_RTC_DRV_M41T94 is not set
1037# CONFIG_RTC_DRV_DS1305 is not set
966# CONFIG_RTC_DRV_MAX6902 is not set 1038# CONFIG_RTC_DRV_MAX6902 is not set
967# CONFIG_RTC_DRV_R9701 is not set 1039# CONFIG_RTC_DRV_R9701 is not set
968# CONFIG_RTC_DRV_RS5C348 is not set 1040# CONFIG_RTC_DRV_RS5C348 is not set
@@ -1054,6 +1126,7 @@ CONFIG_TMPFS=y
1054# CONFIG_CRAMFS is not set 1126# CONFIG_CRAMFS is not set
1055# CONFIG_VXFS_FS is not set 1127# CONFIG_VXFS_FS is not set
1056# CONFIG_MINIX_FS is not set 1128# CONFIG_MINIX_FS is not set
1129# CONFIG_OMFS_FS is not set
1057# CONFIG_HPFS_FS is not set 1130# CONFIG_HPFS_FS is not set
1058# CONFIG_QNX4FS_FS is not set 1131# CONFIG_QNX4FS_FS is not set
1059# CONFIG_ROMFS_FS is not set 1132# CONFIG_ROMFS_FS is not set
@@ -1064,14 +1137,13 @@ CONFIG_NFS_FS=y
1064CONFIG_NFS_V3=y 1137CONFIG_NFS_V3=y
1065# CONFIG_NFS_V3_ACL is not set 1138# CONFIG_NFS_V3_ACL is not set
1066CONFIG_NFS_V4=y 1139CONFIG_NFS_V4=y
1067# CONFIG_NFSD is not set
1068CONFIG_ROOT_NFS=y 1140CONFIG_ROOT_NFS=y
1141# CONFIG_NFSD is not set
1069CONFIG_LOCKD=y 1142CONFIG_LOCKD=y
1070CONFIG_LOCKD_V4=y 1143CONFIG_LOCKD_V4=y
1071CONFIG_NFS_COMMON=y 1144CONFIG_NFS_COMMON=y
1072CONFIG_SUNRPC=y 1145CONFIG_SUNRPC=y
1073CONFIG_SUNRPC_GSS=y 1146CONFIG_SUNRPC_GSS=y
1074# CONFIG_SUNRPC_BIND34 is not set
1075CONFIG_RPCSEC_GSS_KRB5=y 1147CONFIG_RPCSEC_GSS_KRB5=y
1076# CONFIG_RPCSEC_GSS_SPKM3 is not set 1148# CONFIG_RPCSEC_GSS_SPKM3 is not set
1077# CONFIG_SMB_FS is not set 1149# CONFIG_SMB_FS is not set
@@ -1150,6 +1222,7 @@ CONFIG_BITREVERSE=y
1150# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1222# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1151# CONFIG_CRC_CCITT is not set 1223# CONFIG_CRC_CCITT is not set
1152# CONFIG_CRC16 is not set 1224# CONFIG_CRC16 is not set
1225CONFIG_CRC_T10DIF=y
1153# CONFIG_CRC_ITU_T is not set 1226# CONFIG_CRC_ITU_T is not set
1154CONFIG_CRC32=y 1227CONFIG_CRC32=y
1155# CONFIG_CRC7 is not set 1228# CONFIG_CRC7 is not set
@@ -1175,8 +1248,18 @@ CONFIG_FRAME_WARN=1024
1175# CONFIG_SLUB_DEBUG_ON is not set 1248# CONFIG_SLUB_DEBUG_ON is not set
1176# CONFIG_SLUB_STATS is not set 1249# CONFIG_SLUB_STATS is not set
1177# CONFIG_DEBUG_BUGVERBOSE is not set 1250# CONFIG_DEBUG_BUGVERBOSE is not set
1251# CONFIG_DEBUG_MEMORY_INIT is not set
1252# CONFIG_LATENCYTOP is not set
1253CONFIG_SYSCTL_SYSCALL_CHECK=y
1254CONFIG_HAVE_FTRACE=y
1255CONFIG_HAVE_DYNAMIC_FTRACE=y
1256# CONFIG_FTRACE is not set
1257# CONFIG_SCHED_TRACER is not set
1258# CONFIG_CONTEXT_SWITCH_TRACER is not set
1178# CONFIG_SAMPLES is not set 1259# CONFIG_SAMPLES is not set
1260CONFIG_HAVE_ARCH_KGDB=y
1179# CONFIG_IRQSTACKS is not set 1261# CONFIG_IRQSTACKS is not set
1262# CONFIG_BOOTX_TEXT is not set
1180# CONFIG_PPC_EARLY_DEBUG is not set 1263# CONFIG_PPC_EARLY_DEBUG is not set
1181 1264
1182# 1265#
@@ -1230,6 +1313,10 @@ CONFIG_CRYPTO_PCBC=m
1230# CONFIG_CRYPTO_MD4 is not set 1313# CONFIG_CRYPTO_MD4 is not set
1231CONFIG_CRYPTO_MD5=y 1314CONFIG_CRYPTO_MD5=y
1232# CONFIG_CRYPTO_MICHAEL_MIC is not set 1315# CONFIG_CRYPTO_MICHAEL_MIC is not set
1316# CONFIG_CRYPTO_RMD128 is not set
1317# CONFIG_CRYPTO_RMD160 is not set
1318# CONFIG_CRYPTO_RMD256 is not set
1319# CONFIG_CRYPTO_RMD320 is not set
1233# CONFIG_CRYPTO_SHA1 is not set 1320# CONFIG_CRYPTO_SHA1 is not set
1234# CONFIG_CRYPTO_SHA256 is not set 1321# CONFIG_CRYPTO_SHA256 is not set
1235# CONFIG_CRYPTO_SHA512 is not set 1322# CONFIG_CRYPTO_SHA512 is not set
@@ -1262,5 +1349,6 @@ CONFIG_CRYPTO_DES=y
1262# CONFIG_CRYPTO_LZO is not set 1349# CONFIG_CRYPTO_LZO is not set
1263CONFIG_CRYPTO_HW=y 1350CONFIG_CRYPTO_HW=y
1264# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1351# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1352# CONFIG_CRYPTO_DEV_TALITOS is not set
1265# CONFIG_PPC_CLOCK is not set 1353# CONFIG_PPC_CLOCK is not set
1266# CONFIG_VIRTUALIZATION is not set 1354# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig b/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
index c82e96e984fc..24c320a36670 100644
--- a/arch/powerpc/configs/83xx/mpc834x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc834x_mds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:26 2008 4# Thu Aug 21 00:52:21 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,37 +161,49 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165CONFIG_MPC834x_MDS=y 179CONFIG_MPC834x_MDS=y
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167# CONFIG_MPC836x_MDS is not set 181# CONFIG_MPC836x_MDS is not set
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
171CONFIG_PPC_MPC834x=y 187CONFIG_PPC_MPC834x=y
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_IPIC=y 192CONFIG_IPIC=y
173# CONFIG_MPIC is not set 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
185# 209#
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -363,6 +389,7 @@ CONFIG_OF_I2C=y
363# CONFIG_PARPORT is not set 389# CONFIG_PARPORT is not set
364CONFIG_BLK_DEV=y 390CONFIG_BLK_DEV=y
365# CONFIG_BLK_DEV_FD is not set 391# CONFIG_BLK_DEV_FD is not set
392# CONFIG_MAC_FLOPPY is not set
366# CONFIG_BLK_CPQ_DA is not set 393# CONFIG_BLK_CPQ_DA is not set
367# CONFIG_BLK_CPQ_CISS_DA is not set 394# CONFIG_BLK_CPQ_CISS_DA is not set
368# CONFIG_BLK_DEV_DAC960 is not set 395# CONFIG_BLK_DEV_DAC960 is not set
@@ -378,12 +405,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
378# CONFIG_BLK_DEV_XIP is not set 405# CONFIG_BLK_DEV_XIP is not set
379# CONFIG_CDROM_PKTCDVD is not set 406# CONFIG_CDROM_PKTCDVD is not set
380# CONFIG_ATA_OVER_ETH is not set 407# CONFIG_ATA_OVER_ETH is not set
408# CONFIG_BLK_DEV_HD is not set
381CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
382# CONFIG_PHANTOM is not set 410# CONFIG_PHANTOM is not set
383# CONFIG_EEPROM_93CX6 is not set 411# CONFIG_EEPROM_93CX6 is not set
384# CONFIG_SGI_IOC4 is not set 412# CONFIG_SGI_IOC4 is not set
385# CONFIG_TIFM_CORE is not set 413# CONFIG_TIFM_CORE is not set
386# CONFIG_ENCLOSURE_SERVICES is not set 414# CONFIG_ENCLOSURE_SERVICES is not set
415# CONFIG_HP_ILO is not set
387CONFIG_HAVE_IDE=y 416CONFIG_HAVE_IDE=y
388# CONFIG_IDE is not set 417# CONFIG_IDE is not set
389 418
@@ -401,12 +430,15 @@ CONFIG_HAVE_IDE=y
401# 430#
402# IEEE 1394 (FireWire) support 431# IEEE 1394 (FireWire) support
403# 432#
433
434#
435# Enable only one of the two stacks, unless you know what you are doing
436#
404# CONFIG_FIREWIRE is not set 437# CONFIG_FIREWIRE is not set
405# CONFIG_IEEE1394 is not set 438# CONFIG_IEEE1394 is not set
406# CONFIG_I2O is not set 439# CONFIG_I2O is not set
407# CONFIG_MACINTOSH_DRIVERS is not set 440# CONFIG_MACINTOSH_DRIVERS is not set
408CONFIG_NETDEVICES=y 441CONFIG_NETDEVICES=y
409# CONFIG_NETDEVICES_MULTIQUEUE is not set
410# CONFIG_DUMMY is not set 442# CONFIG_DUMMY is not set
411# CONFIG_BONDING is not set 443# CONFIG_BONDING is not set
412# CONFIG_MACVLAN is not set 444# CONFIG_MACVLAN is not set
@@ -433,6 +465,8 @@ CONFIG_MARVELL_PHY=y
433# CONFIG_MDIO_BITBANG is not set 465# CONFIG_MDIO_BITBANG is not set
434CONFIG_NET_ETHERNET=y 466CONFIG_NET_ETHERNET=y
435CONFIG_MII=y 467CONFIG_MII=y
468# CONFIG_MACE is not set
469# CONFIG_BMAC is not set
436# CONFIG_HAPPYMEAL is not set 470# CONFIG_HAPPYMEAL is not set
437# CONFIG_SUNGEM is not set 471# CONFIG_SUNGEM is not set
438# CONFIG_CASSINI is not set 472# CONFIG_CASSINI is not set
@@ -468,7 +502,6 @@ CONFIG_NETDEV_1000=y
468# CONFIG_DL2K is not set 502# CONFIG_DL2K is not set
469# CONFIG_E1000 is not set 503# CONFIG_E1000 is not set
470# CONFIG_E1000E is not set 504# CONFIG_E1000E is not set
471# CONFIG_E1000E_ENABLED is not set
472# CONFIG_IP1000 is not set 505# CONFIG_IP1000 is not set
473# CONFIG_IGB is not set 506# CONFIG_IGB is not set
474# CONFIG_NS83820 is not set 507# CONFIG_NS83820 is not set
@@ -482,9 +515,10 @@ CONFIG_NETDEV_1000=y
482# CONFIG_TIGON3 is not set 515# CONFIG_TIGON3 is not set
483# CONFIG_BNX2 is not set 516# CONFIG_BNX2 is not set
484CONFIG_GIANFAR=y 517CONFIG_GIANFAR=y
485# CONFIG_GFAR_NAPI is not set 518# CONFIG_MV643XX_ETH is not set
486# CONFIG_QLA3XXX is not set 519# CONFIG_QLA3XXX is not set
487# CONFIG_ATL1 is not set 520# CONFIG_ATL1 is not set
521# CONFIG_ATL1E is not set
488CONFIG_NETDEV_10000=y 522CONFIG_NETDEV_10000=y
489# CONFIG_CHELSIO_T1 is not set 523# CONFIG_CHELSIO_T1 is not set
490# CONFIG_CHELSIO_T3 is not set 524# CONFIG_CHELSIO_T3 is not set
@@ -572,11 +606,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
572# CONFIG_SERIAL_UARTLITE is not set 606# CONFIG_SERIAL_UARTLITE is not set
573CONFIG_SERIAL_CORE=y 607CONFIG_SERIAL_CORE=y
574CONFIG_SERIAL_CORE_CONSOLE=y 608CONFIG_SERIAL_CORE_CONSOLE=y
609# CONFIG_SERIAL_PMACZILOG is not set
575# CONFIG_SERIAL_JSM is not set 610# CONFIG_SERIAL_JSM is not set
576# CONFIG_SERIAL_OF_PLATFORM is not set 611# CONFIG_SERIAL_OF_PLATFORM is not set
577CONFIG_UNIX98_PTYS=y 612CONFIG_UNIX98_PTYS=y
578CONFIG_LEGACY_PTYS=y 613CONFIG_LEGACY_PTYS=y
579CONFIG_LEGACY_PTY_COUNT=256 614CONFIG_LEGACY_PTY_COUNT=256
615# CONFIG_BRIQ_PANEL is not set
616# CONFIG_HVC_RTAS is not set
580# CONFIG_IPMI_HANDLER is not set 617# CONFIG_IPMI_HANDLER is not set
581# CONFIG_HW_RANDOM is not set 618# CONFIG_HW_RANDOM is not set
582# CONFIG_NVRAM is not set 619# CONFIG_NVRAM is not set
@@ -588,42 +625,69 @@ CONFIG_DEVPORT=y
588CONFIG_I2C=y 625CONFIG_I2C=y
589CONFIG_I2C_BOARDINFO=y 626CONFIG_I2C_BOARDINFO=y
590CONFIG_I2C_CHARDEV=y 627CONFIG_I2C_CHARDEV=y
628CONFIG_I2C_HELPER_AUTO=y
591 629
592# 630#
593# I2C Hardware Bus support 631# I2C Hardware Bus support
594# 632#
633
634#
635# PC SMBus host controller drivers
636#
595# CONFIG_I2C_ALI1535 is not set 637# CONFIG_I2C_ALI1535 is not set
596# CONFIG_I2C_ALI1563 is not set 638# CONFIG_I2C_ALI1563 is not set
597# CONFIG_I2C_ALI15X3 is not set 639# CONFIG_I2C_ALI15X3 is not set
598# CONFIG_I2C_AMD756 is not set 640# CONFIG_I2C_AMD756 is not set
599# CONFIG_I2C_AMD8111 is not set 641# CONFIG_I2C_AMD8111 is not set
600# CONFIG_I2C_I801 is not set 642# CONFIG_I2C_I801 is not set
601# CONFIG_I2C_I810 is not set 643# CONFIG_I2C_ISCH is not set
602# CONFIG_I2C_PIIX4 is not set 644# CONFIG_I2C_PIIX4 is not set
603CONFIG_I2C_MPC=y
604# CONFIG_I2C_NFORCE2 is not set 645# CONFIG_I2C_NFORCE2 is not set
605# CONFIG_I2C_OCORES is not set
606# CONFIG_I2C_PARPORT_LIGHT is not set
607# CONFIG_I2C_PROSAVAGE is not set
608# CONFIG_I2C_SAVAGE4 is not set
609# CONFIG_I2C_SIMTEC is not set
610# CONFIG_I2C_SIS5595 is not set 646# CONFIG_I2C_SIS5595 is not set
611# CONFIG_I2C_SIS630 is not set 647# CONFIG_I2C_SIS630 is not set
612# CONFIG_I2C_SIS96X is not set 648# CONFIG_I2C_SIS96X is not set
613# CONFIG_I2C_TAOS_EVM is not set
614# CONFIG_I2C_STUB is not set
615# CONFIG_I2C_VIA is not set 649# CONFIG_I2C_VIA is not set
616# CONFIG_I2C_VIAPRO is not set 650# CONFIG_I2C_VIAPRO is not set
651
652#
653# Mac SMBus host controller drivers
654#
655# CONFIG_I2C_HYDRA is not set
656CONFIG_I2C_POWERMAC=y
657
658#
659# I2C system bus drivers (mostly embedded / system-on-chip)
660#
661CONFIG_I2C_MPC=y
662# CONFIG_I2C_OCORES is not set
663# CONFIG_I2C_SIMTEC is not set
664
665#
666# External I2C/SMBus adapter drivers
667#
668# CONFIG_I2C_PARPORT_LIGHT is not set
669# CONFIG_I2C_TAOS_EVM is not set
670
671#
672# Graphics adapter I2C/DDC channel drivers
673#
617# CONFIG_I2C_VOODOO3 is not set 674# CONFIG_I2C_VOODOO3 is not set
675
676#
677# Other I2C/SMBus bus drivers
678#
618# CONFIG_I2C_PCA_PLATFORM is not set 679# CONFIG_I2C_PCA_PLATFORM is not set
680# CONFIG_I2C_STUB is not set
619 681
620# 682#
621# Miscellaneous I2C Chip support 683# Miscellaneous I2C Chip support
622# 684#
623# CONFIG_DS1682 is not set 685# CONFIG_DS1682 is not set
686# CONFIG_AT24 is not set
624# CONFIG_SENSORS_EEPROM is not set 687# CONFIG_SENSORS_EEPROM is not set
625# CONFIG_SENSORS_PCF8574 is not set 688# CONFIG_SENSORS_PCF8574 is not set
626# CONFIG_PCF8575 is not set 689# CONFIG_PCF8575 is not set
690# CONFIG_SENSORS_PCA9539 is not set
627# CONFIG_SENSORS_PCF8591 is not set 691# CONFIG_SENSORS_PCF8591 is not set
628# CONFIG_SENSORS_MAX6875 is not set 692# CONFIG_SENSORS_MAX6875 is not set
629# CONFIG_SENSORS_TSL2550 is not set 693# CONFIG_SENSORS_TSL2550 is not set
@@ -632,10 +696,13 @@ CONFIG_I2C_MPC=y
632# CONFIG_I2C_DEBUG_BUS is not set 696# CONFIG_I2C_DEBUG_BUS is not set
633# CONFIG_I2C_DEBUG_CHIP is not set 697# CONFIG_I2C_DEBUG_CHIP is not set
634# CONFIG_SPI is not set 698# CONFIG_SPI is not set
699CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
700# CONFIG_GPIOLIB is not set
635# CONFIG_W1 is not set 701# CONFIG_W1 is not set
636# CONFIG_POWER_SUPPLY is not set 702# CONFIG_POWER_SUPPLY is not set
637CONFIG_HWMON=y 703CONFIG_HWMON=y
638# CONFIG_HWMON_VID is not set 704# CONFIG_HWMON_VID is not set
705# CONFIG_SENSORS_AD7414 is not set
639# CONFIG_SENSORS_AD7418 is not set 706# CONFIG_SENSORS_AD7418 is not set
640# CONFIG_SENSORS_ADM1021 is not set 707# CONFIG_SENSORS_ADM1021 is not set
641# CONFIG_SENSORS_ADM1025 is not set 708# CONFIG_SENSORS_ADM1025 is not set
@@ -645,6 +712,7 @@ CONFIG_HWMON=y
645# CONFIG_SENSORS_ADM9240 is not set 712# CONFIG_SENSORS_ADM9240 is not set
646# CONFIG_SENSORS_ADT7470 is not set 713# CONFIG_SENSORS_ADT7470 is not set
647# CONFIG_SENSORS_ADT7473 is not set 714# CONFIG_SENSORS_ADT7473 is not set
715# CONFIG_SENSORS_AMS is not set
648# CONFIG_SENSORS_ATXP1 is not set 716# CONFIG_SENSORS_ATXP1 is not set
649# CONFIG_SENSORS_DS1621 is not set 717# CONFIG_SENSORS_DS1621 is not set
650# CONFIG_SENSORS_I5K_AMB is not set 718# CONFIG_SENSORS_I5K_AMB is not set
@@ -689,6 +757,7 @@ CONFIG_HWMON=y
689# CONFIG_SENSORS_W83627EHF is not set 757# CONFIG_SENSORS_W83627EHF is not set
690# CONFIG_HWMON_DEBUG_CHIP is not set 758# CONFIG_HWMON_DEBUG_CHIP is not set
691# CONFIG_THERMAL is not set 759# CONFIG_THERMAL is not set
760# CONFIG_THERMAL_HWMON is not set
692CONFIG_WATCHDOG=y 761CONFIG_WATCHDOG=y
693# CONFIG_WATCHDOG_NOWAYOUT is not set 762# CONFIG_WATCHDOG_NOWAYOUT is not set
694 763
@@ -696,7 +765,9 @@ CONFIG_WATCHDOG=y
696# Watchdog Device Drivers 765# Watchdog Device Drivers
697# 766#
698# CONFIG_SOFT_WATCHDOG is not set 767# CONFIG_SOFT_WATCHDOG is not set
699CONFIG_83xx_WDT=y 768# CONFIG_ALIM7101_WDT is not set
769# CONFIG_8xxx_WDT is not set
770# CONFIG_WATCHDOG_RTAS is not set
700 771
701# 772#
702# PCI-based Watchdog Cards 773# PCI-based Watchdog Cards
@@ -713,8 +784,10 @@ CONFIG_SSB_POSSIBLE=y
713# 784#
714# Multifunction device drivers 785# Multifunction device drivers
715# 786#
787# CONFIG_MFD_CORE is not set
716# CONFIG_MFD_SM501 is not set 788# CONFIG_MFD_SM501 is not set
717# CONFIG_HTC_PASIC3 is not set 789# CONFIG_HTC_PASIC3 is not set
790# CONFIG_MFD_TMIO is not set
718 791
719# 792#
720# Multimedia devices 793# Multimedia devices
@@ -746,10 +819,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
746# Display device support 819# Display device support
747# 820#
748# CONFIG_DISPLAY_SUPPORT is not set 821# CONFIG_DISPLAY_SUPPORT is not set
749
750#
751# Sound
752#
753# CONFIG_SOUND is not set 822# CONFIG_SOUND is not set
754CONFIG_HID_SUPPORT=y 823CONFIG_HID_SUPPORT=y
755CONFIG_HID=y 824CONFIG_HID=y
@@ -764,6 +833,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
764# CONFIG_USB_OTG_BLACKLIST_HUB is not set 833# CONFIG_USB_OTG_BLACKLIST_HUB is not set
765 834
766# 835#
836# Enable Host or Gadget support to see Inventra options
837#
838
839#
767# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 840# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
768# 841#
769# CONFIG_USB_GADGET is not set 842# CONFIG_USB_GADGET is not set
@@ -802,6 +875,7 @@ CONFIG_RTC_DRV_DS1374=y
802# CONFIG_RTC_DRV_PCF8583 is not set 875# CONFIG_RTC_DRV_PCF8583 is not set
803# CONFIG_RTC_DRV_M41T80 is not set 876# CONFIG_RTC_DRV_M41T80 is not set
804# CONFIG_RTC_DRV_S35390A is not set 877# CONFIG_RTC_DRV_S35390A is not set
878# CONFIG_RTC_DRV_FM3130 is not set
805 879
806# 880#
807# SPI RTC drivers 881# SPI RTC drivers
@@ -890,6 +964,7 @@ CONFIG_TMPFS=y
890# CONFIG_CRAMFS is not set 964# CONFIG_CRAMFS is not set
891# CONFIG_VXFS_FS is not set 965# CONFIG_VXFS_FS is not set
892# CONFIG_MINIX_FS is not set 966# CONFIG_MINIX_FS is not set
967# CONFIG_OMFS_FS is not set
893# CONFIG_HPFS_FS is not set 968# CONFIG_HPFS_FS is not set
894# CONFIG_QNX4FS_FS is not set 969# CONFIG_QNX4FS_FS is not set
895# CONFIG_ROMFS_FS is not set 970# CONFIG_ROMFS_FS is not set
@@ -900,14 +975,13 @@ CONFIG_NFS_FS=y
900CONFIG_NFS_V3=y 975CONFIG_NFS_V3=y
901# CONFIG_NFS_V3_ACL is not set 976# CONFIG_NFS_V3_ACL is not set
902CONFIG_NFS_V4=y 977CONFIG_NFS_V4=y
903# CONFIG_NFSD is not set
904CONFIG_ROOT_NFS=y 978CONFIG_ROOT_NFS=y
979# CONFIG_NFSD is not set
905CONFIG_LOCKD=y 980CONFIG_LOCKD=y
906CONFIG_LOCKD_V4=y 981CONFIG_LOCKD_V4=y
907CONFIG_NFS_COMMON=y 982CONFIG_NFS_COMMON=y
908CONFIG_SUNRPC=y 983CONFIG_SUNRPC=y
909CONFIG_SUNRPC_GSS=y 984CONFIG_SUNRPC_GSS=y
910# CONFIG_SUNRPC_BIND34 is not set
911CONFIG_RPCSEC_GSS_KRB5=y 985CONFIG_RPCSEC_GSS_KRB5=y
912# CONFIG_RPCSEC_GSS_SPKM3 is not set 986# CONFIG_RPCSEC_GSS_SPKM3 is not set
913# CONFIG_SMB_FS is not set 987# CONFIG_SMB_FS is not set
@@ -943,6 +1017,7 @@ CONFIG_BITREVERSE=y
943# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1017# CONFIG_GENERIC_FIND_FIRST_BIT is not set
944# CONFIG_CRC_CCITT is not set 1018# CONFIG_CRC_CCITT is not set
945# CONFIG_CRC16 is not set 1019# CONFIG_CRC16 is not set
1020# CONFIG_CRC_T10DIF is not set
946# CONFIG_CRC_ITU_T is not set 1021# CONFIG_CRC_ITU_T is not set
947CONFIG_CRC32=y 1022CONFIG_CRC32=y
948# CONFIG_CRC7 is not set 1023# CONFIG_CRC7 is not set
@@ -968,8 +1043,18 @@ CONFIG_FRAME_WARN=1024
968# CONFIG_SLUB_DEBUG_ON is not set 1043# CONFIG_SLUB_DEBUG_ON is not set
969# CONFIG_SLUB_STATS is not set 1044# CONFIG_SLUB_STATS is not set
970# CONFIG_DEBUG_BUGVERBOSE is not set 1045# CONFIG_DEBUG_BUGVERBOSE is not set
1046# CONFIG_DEBUG_MEMORY_INIT is not set
1047# CONFIG_LATENCYTOP is not set
1048CONFIG_SYSCTL_SYSCALL_CHECK=y
1049CONFIG_HAVE_FTRACE=y
1050CONFIG_HAVE_DYNAMIC_FTRACE=y
1051# CONFIG_FTRACE is not set
1052# CONFIG_SCHED_TRACER is not set
1053# CONFIG_CONTEXT_SWITCH_TRACER is not set
971# CONFIG_SAMPLES is not set 1054# CONFIG_SAMPLES is not set
1055CONFIG_HAVE_ARCH_KGDB=y
972# CONFIG_IRQSTACKS is not set 1056# CONFIG_IRQSTACKS is not set
1057# CONFIG_BOOTX_TEXT is not set
973# CONFIG_PPC_EARLY_DEBUG is not set 1058# CONFIG_PPC_EARLY_DEBUG is not set
974 1059
975# 1060#
@@ -1023,6 +1108,10 @@ CONFIG_CRYPTO_PCBC=m
1023# CONFIG_CRYPTO_MD4 is not set 1108# CONFIG_CRYPTO_MD4 is not set
1024CONFIG_CRYPTO_MD5=y 1109CONFIG_CRYPTO_MD5=y
1025# CONFIG_CRYPTO_MICHAEL_MIC is not set 1110# CONFIG_CRYPTO_MICHAEL_MIC is not set
1111# CONFIG_CRYPTO_RMD128 is not set
1112# CONFIG_CRYPTO_RMD160 is not set
1113# CONFIG_CRYPTO_RMD256 is not set
1114# CONFIG_CRYPTO_RMD320 is not set
1026# CONFIG_CRYPTO_SHA1 is not set 1115# CONFIG_CRYPTO_SHA1 is not set
1027# CONFIG_CRYPTO_SHA256 is not set 1116# CONFIG_CRYPTO_SHA256 is not set
1028# CONFIG_CRYPTO_SHA512 is not set 1117# CONFIG_CRYPTO_SHA512 is not set
@@ -1055,5 +1144,6 @@ CONFIG_CRYPTO_DES=y
1055# CONFIG_CRYPTO_LZO is not set 1144# CONFIG_CRYPTO_LZO is not set
1056CONFIG_CRYPTO_HW=y 1145CONFIG_CRYPTO_HW=y
1057# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_CRYPTO_DEV_TALITOS is not set
1058# CONFIG_PPC_CLOCK is not set 1148# CONFIG_PPC_CLOCK is not set
1059# CONFIG_VIRTUALIZATION is not set 1149# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig b/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
index 20fd9f58cf42..e029e9e14622 100644
--- a/arch/powerpc/configs/83xx/mpc836x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_mds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:27 2008 4# Thu Aug 21 00:52:22 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -111,10 +116,16 @@ CONFIG_SLUB=y
111# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
114CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
115CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
116# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
117CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
118CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
119CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
120# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -125,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
125# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
126# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
127# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
128# CONFIG_KMOD is not set 139CONFIG_KMOD=y
129CONFIG_BLOCK=y 140CONFIG_BLOCK=y
130# CONFIG_LBD is not set 141# CONFIG_LBD is not set
131# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
132# CONFIG_LSF is not set 143# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
134 146
135# 147#
136# IO Schedulers 148# IO Schedulers
@@ -149,36 +161,48 @@ CONFIG_CLASSIC_RCU=y
149# 161#
150# Platform support 162# Platform support
151# 163#
152# CONFIG_PPC_MULTIPLATFORM is not set 164CONFIG_PPC_MULTIPLATFORM=y
153# CONFIG_PPC_82xx is not set 165CONFIG_CLASSIC32=y
154CONFIG_PPC_83xx=y 166CONFIG_PPC_CHRP=y
155# CONFIG_PPC_86xx is not set 167# CONFIG_MPC5121_ADS is not set
156# CONFIG_PPC_MPC512x is not set 168# CONFIG_MPC5121_GENERIC is not set
157# CONFIG_PPC_MPC5121 is not set 169# CONFIG_PPC_MPC52xx is not set
170CONFIG_PPC_PMAC=y
158# CONFIG_PPC_CELL is not set 171# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 172# CONFIG_PPC_CELL_NATIVE is not set
173# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 174# CONFIG_PQ2ADS is not set
161CONFIG_MPC83xx=y 175CONFIG_PPC_83xx=y
162# CONFIG_MPC831x_RDB is not set 176# CONFIG_MPC831x_RDB is not set
163# CONFIG_MPC832x_MDS is not set 177# CONFIG_MPC832x_MDS is not set
164# CONFIG_MPC832x_RDB is not set 178# CONFIG_MPC832x_RDB is not set
165# CONFIG_MPC834x_MDS is not set 179# CONFIG_MPC834x_MDS is not set
166# CONFIG_MPC834x_ITX is not set 180# CONFIG_MPC834x_ITX is not set
167CONFIG_MPC836x_MDS=y 181CONFIG_MPC836x_MDS=y
182# CONFIG_MPC836x_RDK is not set
168# CONFIG_MPC837x_MDS is not set 183# CONFIG_MPC837x_MDS is not set
169# CONFIG_MPC837x_RDB is not set 184# CONFIG_MPC837x_RDB is not set
170# CONFIG_SBC834x is not set 185# CONFIG_SBC834x is not set
186# CONFIG_ASP834x is not set
187# CONFIG_PPC_86xx is not set
188# CONFIG_EMBEDDED6xx is not set
189CONFIG_PPC_NATIVE=y
190# CONFIG_UDBG_RTAS_CONSOLE is not set
171CONFIG_IPIC=y 191CONFIG_IPIC=y
172# CONFIG_MPIC is not set 192CONFIG_MPIC=y
173# CONFIG_MPIC_WEIRD is not set 193# CONFIG_MPIC_WEIRD is not set
174# CONFIG_PPC_I8259 is not set 194CONFIG_PPC_I8259=y
175# CONFIG_PPC_RTAS is not set 195CONFIG_PPC_RTAS=y
196# CONFIG_RTAS_ERROR_LOGGING is not set
197CONFIG_RTAS_PROC=y
176# CONFIG_MMIO_NVRAM is not set 198# CONFIG_MMIO_NVRAM is not set
177# CONFIG_PPC_MPC106 is not set 199CONFIG_PPC_MPC106=y
178# CONFIG_PPC_970_NAP is not set 200# CONFIG_PPC_970_NAP is not set
179# CONFIG_PPC_INDIRECT_IO is not set 201# CONFIG_PPC_INDIRECT_IO is not set
180# CONFIG_GENERIC_IOMAP is not set 202# CONFIG_GENERIC_IOMAP is not set
181# CONFIG_CPU_FREQ is not set 203# CONFIG_CPU_FREQ is not set
204# CONFIG_PPC601_SYNC_FIX is not set
205# CONFIG_TAU is not set
182CONFIG_QUICC_ENGINE=y 206CONFIG_QUICC_ENGINE=y
183# CONFIG_FSL_ULI1575 is not set 207# CONFIG_FSL_ULI1575 is not set
184 208
@@ -195,7 +219,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 219# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 220# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 221CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 222CONFIG_SCHED_HRTICK=y
199CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
200# CONFIG_PREEMPT_VOLUNTARY is not set 224# CONFIG_PREEMPT_VOLUNTARY is not set
201# CONFIG_PREEMPT is not set 225# CONFIG_PREEMPT is not set
@@ -205,6 +229,7 @@ CONFIG_BINFMT_ELF=y
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 229CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
206CONFIG_ARCH_HAS_WALK_MEMORY=y 230CONFIG_ARCH_HAS_WALK_MEMORY=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 231CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
232# CONFIG_KEXEC is not set
208CONFIG_ARCH_FLATMEM_ENABLE=y 233CONFIG_ARCH_FLATMEM_ENABLE=y
209CONFIG_ARCH_POPULATES_NODE_MAP=y 234CONFIG_ARCH_POPULATES_NODE_MAP=y
210CONFIG_SELECT_MEMORY_MODEL=y 235CONFIG_SELECT_MEMORY_MODEL=y
@@ -217,6 +242,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 242# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 243CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 244CONFIG_SPLIT_PTLOCK_CPUS=4
245CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 246# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 247CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 248CONFIG_BOUNCE=y
@@ -224,6 +250,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 250CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 251CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 252# CONFIG_CMDLINE_BOOL is not set
253CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 254# CONFIG_PM is not set
228CONFIG_SECCOMP=y 255CONFIG_SECCOMP=y
229CONFIG_ISA_DMA_API=y 256CONFIG_ISA_DMA_API=y
@@ -231,10 +258,13 @@ CONFIG_ISA_DMA_API=y
231# 258#
232# Bus options 259# Bus options
233# 260#
261# CONFIG_ISA is not set
234CONFIG_ZONE_DMA=y 262CONFIG_ZONE_DMA=y
235CONFIG_GENERIC_ISA_DMA=y 263CONFIG_GENERIC_ISA_DMA=y
236CONFIG_PPC_INDIRECT_PCI=y 264CONFIG_PPC_INDIRECT_PCI=y
237CONFIG_FSL_SOC=y 265CONFIG_FSL_SOC=y
266CONFIG_FSL_PCI=y
267CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 268CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 269CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 270CONFIG_PCI_SYSCALL=y
@@ -259,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
259CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
260CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
261CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 292CONFIG_NET=y
267 293
268# 294#
@@ -363,6 +389,7 @@ CONFIG_OF_I2C=y
363# CONFIG_PARPORT is not set 389# CONFIG_PARPORT is not set
364CONFIG_BLK_DEV=y 390CONFIG_BLK_DEV=y
365# CONFIG_BLK_DEV_FD is not set 391# CONFIG_BLK_DEV_FD is not set
392# CONFIG_MAC_FLOPPY is not set
366# CONFIG_BLK_CPQ_DA is not set 393# CONFIG_BLK_CPQ_DA is not set
367# CONFIG_BLK_CPQ_CISS_DA is not set 394# CONFIG_BLK_CPQ_CISS_DA is not set
368# CONFIG_BLK_DEV_DAC960 is not set 395# CONFIG_BLK_DEV_DAC960 is not set
@@ -378,12 +405,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
378# CONFIG_BLK_DEV_XIP is not set 405# CONFIG_BLK_DEV_XIP is not set
379# CONFIG_CDROM_PKTCDVD is not set 406# CONFIG_CDROM_PKTCDVD is not set
380# CONFIG_ATA_OVER_ETH is not set 407# CONFIG_ATA_OVER_ETH is not set
408# CONFIG_BLK_DEV_HD is not set
381CONFIG_MISC_DEVICES=y 409CONFIG_MISC_DEVICES=y
382# CONFIG_PHANTOM is not set 410# CONFIG_PHANTOM is not set
383# CONFIG_EEPROM_93CX6 is not set 411# CONFIG_EEPROM_93CX6 is not set
384# CONFIG_SGI_IOC4 is not set 412# CONFIG_SGI_IOC4 is not set
385# CONFIG_TIFM_CORE is not set 413# CONFIG_TIFM_CORE is not set
386# CONFIG_ENCLOSURE_SERVICES is not set 414# CONFIG_ENCLOSURE_SERVICES is not set
415# CONFIG_HP_ILO is not set
387CONFIG_HAVE_IDE=y 416CONFIG_HAVE_IDE=y
388# CONFIG_IDE is not set 417# CONFIG_IDE is not set
389 418
@@ -460,7 +489,10 @@ CONFIG_SCSI_LOWLEVEL=y
460# CONFIG_SCSI_DC390T is not set 489# CONFIG_SCSI_DC390T is not set
461# CONFIG_SCSI_NSP32 is not set 490# CONFIG_SCSI_NSP32 is not set
462# CONFIG_SCSI_DEBUG is not set 491# CONFIG_SCSI_DEBUG is not set
492# CONFIG_SCSI_MESH is not set
493# CONFIG_SCSI_MAC53C94 is not set
463# CONFIG_SCSI_SRP is not set 494# CONFIG_SCSI_SRP is not set
495# CONFIG_SCSI_DH is not set
464# CONFIG_ATA is not set 496# CONFIG_ATA is not set
465# CONFIG_MD is not set 497# CONFIG_MD is not set
466# CONFIG_FUSION is not set 498# CONFIG_FUSION is not set
@@ -468,12 +500,15 @@ CONFIG_SCSI_LOWLEVEL=y
468# 500#
469# IEEE 1394 (FireWire) support 501# IEEE 1394 (FireWire) support
470# 502#
503
504#
505# Enable only one of the two stacks, unless you know what you are doing
506#
471# CONFIG_FIREWIRE is not set 507# CONFIG_FIREWIRE is not set
472# CONFIG_IEEE1394 is not set 508# CONFIG_IEEE1394 is not set
473# CONFIG_I2O is not set 509# CONFIG_I2O is not set
474# CONFIG_MACINTOSH_DRIVERS is not set 510# CONFIG_MACINTOSH_DRIVERS is not set
475CONFIG_NETDEVICES=y 511CONFIG_NETDEVICES=y
476# CONFIG_NETDEVICES_MULTIQUEUE is not set
477# CONFIG_DUMMY is not set 512# CONFIG_DUMMY is not set
478# CONFIG_BONDING is not set 513# CONFIG_BONDING is not set
479# CONFIG_MACVLAN is not set 514# CONFIG_MACVLAN is not set
@@ -500,6 +535,8 @@ CONFIG_MARVELL_PHY=y
500# CONFIG_MDIO_BITBANG is not set 535# CONFIG_MDIO_BITBANG is not set
501CONFIG_NET_ETHERNET=y 536CONFIG_NET_ETHERNET=y
502CONFIG_MII=y 537CONFIG_MII=y
538# CONFIG_MACE is not set
539# CONFIG_BMAC is not set
503# CONFIG_HAPPYMEAL is not set 540# CONFIG_HAPPYMEAL is not set
504# CONFIG_SUNGEM is not set 541# CONFIG_SUNGEM is not set
505# CONFIG_CASSINI is not set 542# CONFIG_CASSINI is not set
@@ -517,7 +554,6 @@ CONFIG_NETDEV_1000=y
517# CONFIG_DL2K is not set 554# CONFIG_DL2K is not set
518# CONFIG_E1000 is not set 555# CONFIG_E1000 is not set
519# CONFIG_E1000E is not set 556# CONFIG_E1000E is not set
520# CONFIG_E1000E_ENABLED is not set
521# CONFIG_IP1000 is not set 557# CONFIG_IP1000 is not set
522# CONFIG_IGB is not set 558# CONFIG_IGB is not set
523# CONFIG_NS83820 is not set 559# CONFIG_NS83820 is not set
@@ -532,12 +568,13 @@ CONFIG_NETDEV_1000=y
532# CONFIG_BNX2 is not set 568# CONFIG_BNX2 is not set
533# CONFIG_GIANFAR is not set 569# CONFIG_GIANFAR is not set
534CONFIG_UCC_GETH=y 570CONFIG_UCC_GETH=y
535# CONFIG_UGETH_NAPI is not set
536# CONFIG_UGETH_MAGIC_PACKET is not set 571# CONFIG_UGETH_MAGIC_PACKET is not set
537# CONFIG_UGETH_FILTERING is not set 572# CONFIG_UGETH_FILTERING is not set
538# CONFIG_UGETH_TX_ON_DEMAND is not set 573# CONFIG_UGETH_TX_ON_DEMAND is not set
574# CONFIG_MV643XX_ETH is not set
539# CONFIG_QLA3XXX is not set 575# CONFIG_QLA3XXX is not set
540# CONFIG_ATL1 is not set 576# CONFIG_ATL1 is not set
577# CONFIG_ATL1E is not set
541CONFIG_NETDEV_10000=y 578CONFIG_NETDEV_10000=y
542# CONFIG_CHELSIO_T1 is not set 579# CONFIG_CHELSIO_T1 is not set
543# CONFIG_CHELSIO_T3 is not set 580# CONFIG_CHELSIO_T3 is not set
@@ -626,12 +663,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
626# CONFIG_SERIAL_UARTLITE is not set 663# CONFIG_SERIAL_UARTLITE is not set
627CONFIG_SERIAL_CORE=y 664CONFIG_SERIAL_CORE=y
628CONFIG_SERIAL_CORE_CONSOLE=y 665CONFIG_SERIAL_CORE_CONSOLE=y
666# CONFIG_SERIAL_PMACZILOG is not set
629# CONFIG_SERIAL_JSM is not set 667# CONFIG_SERIAL_JSM is not set
630# CONFIG_SERIAL_OF_PLATFORM is not set 668# CONFIG_SERIAL_OF_PLATFORM is not set
631# CONFIG_SERIAL_QE is not set 669# CONFIG_SERIAL_QE is not set
632CONFIG_UNIX98_PTYS=y 670CONFIG_UNIX98_PTYS=y
633CONFIG_LEGACY_PTYS=y 671CONFIG_LEGACY_PTYS=y
634CONFIG_LEGACY_PTY_COUNT=256 672CONFIG_LEGACY_PTY_COUNT=256
673# CONFIG_BRIQ_PANEL is not set
674# CONFIG_HVC_RTAS is not set
635# CONFIG_IPMI_HANDLER is not set 675# CONFIG_IPMI_HANDLER is not set
636CONFIG_HW_RANDOM=y 676CONFIG_HW_RANDOM=y
637# CONFIG_NVRAM is not set 677# CONFIG_NVRAM is not set
@@ -643,42 +683,69 @@ CONFIG_DEVPORT=y
643CONFIG_I2C=y 683CONFIG_I2C=y
644CONFIG_I2C_BOARDINFO=y 684CONFIG_I2C_BOARDINFO=y
645CONFIG_I2C_CHARDEV=y 685CONFIG_I2C_CHARDEV=y
686CONFIG_I2C_HELPER_AUTO=y
646 687
647# 688#
648# I2C Hardware Bus support 689# I2C Hardware Bus support
649# 690#
691
692#
693# PC SMBus host controller drivers
694#
650# CONFIG_I2C_ALI1535 is not set 695# CONFIG_I2C_ALI1535 is not set
651# CONFIG_I2C_ALI1563 is not set 696# CONFIG_I2C_ALI1563 is not set
652# CONFIG_I2C_ALI15X3 is not set 697# CONFIG_I2C_ALI15X3 is not set
653# CONFIG_I2C_AMD756 is not set 698# CONFIG_I2C_AMD756 is not set
654# CONFIG_I2C_AMD8111 is not set 699# CONFIG_I2C_AMD8111 is not set
655# CONFIG_I2C_I801 is not set 700# CONFIG_I2C_I801 is not set
656# CONFIG_I2C_I810 is not set 701# CONFIG_I2C_ISCH is not set
657# CONFIG_I2C_PIIX4 is not set 702# CONFIG_I2C_PIIX4 is not set
658CONFIG_I2C_MPC=y
659# CONFIG_I2C_NFORCE2 is not set 703# CONFIG_I2C_NFORCE2 is not set
660# CONFIG_I2C_OCORES is not set
661# CONFIG_I2C_PARPORT_LIGHT is not set
662# CONFIG_I2C_PROSAVAGE is not set
663# CONFIG_I2C_SAVAGE4 is not set
664# CONFIG_I2C_SIMTEC is not set
665# CONFIG_I2C_SIS5595 is not set 704# CONFIG_I2C_SIS5595 is not set
666# CONFIG_I2C_SIS630 is not set 705# CONFIG_I2C_SIS630 is not set
667# CONFIG_I2C_SIS96X is not set 706# CONFIG_I2C_SIS96X is not set
668# CONFIG_I2C_TAOS_EVM is not set
669# CONFIG_I2C_STUB is not set
670# CONFIG_I2C_VIA is not set 707# CONFIG_I2C_VIA is not set
671# CONFIG_I2C_VIAPRO is not set 708# CONFIG_I2C_VIAPRO is not set
709
710#
711# Mac SMBus host controller drivers
712#
713# CONFIG_I2C_HYDRA is not set
714CONFIG_I2C_POWERMAC=y
715
716#
717# I2C system bus drivers (mostly embedded / system-on-chip)
718#
719CONFIG_I2C_MPC=y
720# CONFIG_I2C_OCORES is not set
721# CONFIG_I2C_SIMTEC is not set
722
723#
724# External I2C/SMBus adapter drivers
725#
726# CONFIG_I2C_PARPORT_LIGHT is not set
727# CONFIG_I2C_TAOS_EVM is not set
728
729#
730# Graphics adapter I2C/DDC channel drivers
731#
672# CONFIG_I2C_VOODOO3 is not set 732# CONFIG_I2C_VOODOO3 is not set
733
734#
735# Other I2C/SMBus bus drivers
736#
673# CONFIG_I2C_PCA_PLATFORM is not set 737# CONFIG_I2C_PCA_PLATFORM is not set
738# CONFIG_I2C_STUB is not set
674 739
675# 740#
676# Miscellaneous I2C Chip support 741# Miscellaneous I2C Chip support
677# 742#
678# CONFIG_DS1682 is not set 743# CONFIG_DS1682 is not set
744# CONFIG_AT24 is not set
679# CONFIG_SENSORS_EEPROM is not set 745# CONFIG_SENSORS_EEPROM is not set
680# CONFIG_SENSORS_PCF8574 is not set 746# CONFIG_SENSORS_PCF8574 is not set
681# CONFIG_PCF8575 is not set 747# CONFIG_PCF8575 is not set
748# CONFIG_SENSORS_PCA9539 is not set
682# CONFIG_SENSORS_PCF8591 is not set 749# CONFIG_SENSORS_PCF8591 is not set
683# CONFIG_SENSORS_MAX6875 is not set 750# CONFIG_SENSORS_MAX6875 is not set
684# CONFIG_SENSORS_TSL2550 is not set 751# CONFIG_SENSORS_TSL2550 is not set
@@ -687,10 +754,13 @@ CONFIG_I2C_MPC=y
687# CONFIG_I2C_DEBUG_BUS is not set 754# CONFIG_I2C_DEBUG_BUS is not set
688# CONFIG_I2C_DEBUG_CHIP is not set 755# CONFIG_I2C_DEBUG_CHIP is not set
689# CONFIG_SPI is not set 756# CONFIG_SPI is not set
757CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
758# CONFIG_GPIOLIB is not set
690# CONFIG_W1 is not set 759# CONFIG_W1 is not set
691# CONFIG_POWER_SUPPLY is not set 760# CONFIG_POWER_SUPPLY is not set
692CONFIG_HWMON=y 761CONFIG_HWMON=y
693# CONFIG_HWMON_VID is not set 762# CONFIG_HWMON_VID is not set
763# CONFIG_SENSORS_AD7414 is not set
694# CONFIG_SENSORS_AD7418 is not set 764# CONFIG_SENSORS_AD7418 is not set
695# CONFIG_SENSORS_ADM1021 is not set 765# CONFIG_SENSORS_ADM1021 is not set
696# CONFIG_SENSORS_ADM1025 is not set 766# CONFIG_SENSORS_ADM1025 is not set
@@ -700,6 +770,7 @@ CONFIG_HWMON=y
700# CONFIG_SENSORS_ADM9240 is not set 770# CONFIG_SENSORS_ADM9240 is not set
701# CONFIG_SENSORS_ADT7470 is not set 771# CONFIG_SENSORS_ADT7470 is not set
702# CONFIG_SENSORS_ADT7473 is not set 772# CONFIG_SENSORS_ADT7473 is not set
773# CONFIG_SENSORS_AMS is not set
703# CONFIG_SENSORS_ATXP1 is not set 774# CONFIG_SENSORS_ATXP1 is not set
704# CONFIG_SENSORS_DS1621 is not set 775# CONFIG_SENSORS_DS1621 is not set
705# CONFIG_SENSORS_I5K_AMB is not set 776# CONFIG_SENSORS_I5K_AMB is not set
@@ -744,6 +815,7 @@ CONFIG_HWMON=y
744# CONFIG_SENSORS_W83627EHF is not set 815# CONFIG_SENSORS_W83627EHF is not set
745# CONFIG_HWMON_DEBUG_CHIP is not set 816# CONFIG_HWMON_DEBUG_CHIP is not set
746# CONFIG_THERMAL is not set 817# CONFIG_THERMAL is not set
818# CONFIG_THERMAL_HWMON is not set
747CONFIG_WATCHDOG=y 819CONFIG_WATCHDOG=y
748# CONFIG_WATCHDOG_NOWAYOUT is not set 820# CONFIG_WATCHDOG_NOWAYOUT is not set
749 821
@@ -751,7 +823,9 @@ CONFIG_WATCHDOG=y
751# Watchdog Device Drivers 823# Watchdog Device Drivers
752# 824#
753# CONFIG_SOFT_WATCHDOG is not set 825# CONFIG_SOFT_WATCHDOG is not set
754CONFIG_83xx_WDT=y 826# CONFIG_ALIM7101_WDT is not set
827# CONFIG_8xxx_WDT is not set
828# CONFIG_WATCHDOG_RTAS is not set
755 829
756# 830#
757# PCI-based Watchdog Cards 831# PCI-based Watchdog Cards
@@ -768,8 +842,10 @@ CONFIG_SSB_POSSIBLE=y
768# 842#
769# Multifunction device drivers 843# Multifunction device drivers
770# 844#
845# CONFIG_MFD_CORE is not set
771# CONFIG_MFD_SM501 is not set 846# CONFIG_MFD_SM501 is not set
772# CONFIG_HTC_PASIC3 is not set 847# CONFIG_HTC_PASIC3 is not set
848# CONFIG_MFD_TMIO is not set
773 849
774# 850#
775# Multimedia devices 851# Multimedia devices
@@ -801,10 +877,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
801# Display device support 877# Display device support
802# 878#
803# CONFIG_DISPLAY_SUPPORT is not set 879# CONFIG_DISPLAY_SUPPORT is not set
804
805#
806# Sound
807#
808# CONFIG_SOUND is not set 880# CONFIG_SOUND is not set
809CONFIG_HID_SUPPORT=y 881CONFIG_HID_SUPPORT=y
810CONFIG_HID=y 882CONFIG_HID=y
@@ -819,6 +891,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
819# CONFIG_USB_OTG_BLACKLIST_HUB is not set 891# CONFIG_USB_OTG_BLACKLIST_HUB is not set
820 892
821# 893#
894# Enable Host or Gadget support to see Inventra options
895#
896
897#
822# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 898# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
823# 899#
824# CONFIG_USB_GADGET is not set 900# CONFIG_USB_GADGET is not set
@@ -857,6 +933,7 @@ CONFIG_RTC_DRV_DS1374=y
857# CONFIG_RTC_DRV_PCF8583 is not set 933# CONFIG_RTC_DRV_PCF8583 is not set
858# CONFIG_RTC_DRV_M41T80 is not set 934# CONFIG_RTC_DRV_M41T80 is not set
859# CONFIG_RTC_DRV_S35390A is not set 935# CONFIG_RTC_DRV_S35390A is not set
936# CONFIG_RTC_DRV_FM3130 is not set
860 937
861# 938#
862# SPI RTC drivers 939# SPI RTC drivers
@@ -945,6 +1022,7 @@ CONFIG_TMPFS=y
945# CONFIG_CRAMFS is not set 1022# CONFIG_CRAMFS is not set
946# CONFIG_VXFS_FS is not set 1023# CONFIG_VXFS_FS is not set
947# CONFIG_MINIX_FS is not set 1024# CONFIG_MINIX_FS is not set
1025# CONFIG_OMFS_FS is not set
948# CONFIG_HPFS_FS is not set 1026# CONFIG_HPFS_FS is not set
949# CONFIG_QNX4FS_FS is not set 1027# CONFIG_QNX4FS_FS is not set
950# CONFIG_ROMFS_FS is not set 1028# CONFIG_ROMFS_FS is not set
@@ -955,14 +1033,13 @@ CONFIG_NFS_FS=y
955CONFIG_NFS_V3=y 1033CONFIG_NFS_V3=y
956# CONFIG_NFS_V3_ACL is not set 1034# CONFIG_NFS_V3_ACL is not set
957CONFIG_NFS_V4=y 1035CONFIG_NFS_V4=y
958# CONFIG_NFSD is not set
959CONFIG_ROOT_NFS=y 1036CONFIG_ROOT_NFS=y
1037# CONFIG_NFSD is not set
960CONFIG_LOCKD=y 1038CONFIG_LOCKD=y
961CONFIG_LOCKD_V4=y 1039CONFIG_LOCKD_V4=y
962CONFIG_NFS_COMMON=y 1040CONFIG_NFS_COMMON=y
963CONFIG_SUNRPC=y 1041CONFIG_SUNRPC=y
964CONFIG_SUNRPC_GSS=y 1042CONFIG_SUNRPC_GSS=y
965# CONFIG_SUNRPC_BIND34 is not set
966CONFIG_RPCSEC_GSS_KRB5=y 1043CONFIG_RPCSEC_GSS_KRB5=y
967# CONFIG_RPCSEC_GSS_SPKM3 is not set 1044# CONFIG_RPCSEC_GSS_SPKM3 is not set
968# CONFIG_SMB_FS is not set 1045# CONFIG_SMB_FS is not set
@@ -992,6 +1069,7 @@ CONFIG_PARTITION_ADVANCED=y
992# CONFIG_DLM is not set 1069# CONFIG_DLM is not set
993CONFIG_UCC_FAST=y 1070CONFIG_UCC_FAST=y
994CONFIG_UCC=y 1071CONFIG_UCC=y
1072# CONFIG_QE_GPIO is not set
995 1073
996# 1074#
997# Library routines 1075# Library routines
@@ -1000,6 +1078,7 @@ CONFIG_BITREVERSE=y
1000# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1078# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1001# CONFIG_CRC_CCITT is not set 1079# CONFIG_CRC_CCITT is not set
1002# CONFIG_CRC16 is not set 1080# CONFIG_CRC16 is not set
1081# CONFIG_CRC_T10DIF is not set
1003# CONFIG_CRC_ITU_T is not set 1082# CONFIG_CRC_ITU_T is not set
1004CONFIG_CRC32=y 1083CONFIG_CRC32=y
1005# CONFIG_CRC7 is not set 1084# CONFIG_CRC7 is not set
@@ -1025,8 +1104,18 @@ CONFIG_FRAME_WARN=1024
1025# CONFIG_SLUB_DEBUG_ON is not set 1104# CONFIG_SLUB_DEBUG_ON is not set
1026# CONFIG_SLUB_STATS is not set 1105# CONFIG_SLUB_STATS is not set
1027# CONFIG_DEBUG_BUGVERBOSE is not set 1106# CONFIG_DEBUG_BUGVERBOSE is not set
1107# CONFIG_DEBUG_MEMORY_INIT is not set
1108# CONFIG_LATENCYTOP is not set
1109CONFIG_SYSCTL_SYSCALL_CHECK=y
1110CONFIG_HAVE_FTRACE=y
1111CONFIG_HAVE_DYNAMIC_FTRACE=y
1112# CONFIG_FTRACE is not set
1113# CONFIG_SCHED_TRACER is not set
1114# CONFIG_CONTEXT_SWITCH_TRACER is not set
1028# CONFIG_SAMPLES is not set 1115# CONFIG_SAMPLES is not set
1116CONFIG_HAVE_ARCH_KGDB=y
1029# CONFIG_IRQSTACKS is not set 1117# CONFIG_IRQSTACKS is not set
1118# CONFIG_BOOTX_TEXT is not set
1030# CONFIG_PPC_EARLY_DEBUG is not set 1119# CONFIG_PPC_EARLY_DEBUG is not set
1031 1120
1032# 1121#
@@ -1080,6 +1169,10 @@ CONFIG_CRYPTO_PCBC=m
1080# CONFIG_CRYPTO_MD4 is not set 1169# CONFIG_CRYPTO_MD4 is not set
1081CONFIG_CRYPTO_MD5=y 1170CONFIG_CRYPTO_MD5=y
1082# CONFIG_CRYPTO_MICHAEL_MIC is not set 1171# CONFIG_CRYPTO_MICHAEL_MIC is not set
1172# CONFIG_CRYPTO_RMD128 is not set
1173# CONFIG_CRYPTO_RMD160 is not set
1174# CONFIG_CRYPTO_RMD256 is not set
1175# CONFIG_CRYPTO_RMD320 is not set
1083# CONFIG_CRYPTO_SHA1 is not set 1176# CONFIG_CRYPTO_SHA1 is not set
1084# CONFIG_CRYPTO_SHA256 is not set 1177# CONFIG_CRYPTO_SHA256 is not set
1085# CONFIG_CRYPTO_SHA512 is not set 1178# CONFIG_CRYPTO_SHA512 is not set
@@ -1112,6 +1205,7 @@ CONFIG_CRYPTO_DES=y
1112# CONFIG_CRYPTO_LZO is not set 1205# CONFIG_CRYPTO_LZO is not set
1113CONFIG_CRYPTO_HW=y 1206CONFIG_CRYPTO_HW=y
1114# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1207# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1208# CONFIG_CRYPTO_DEV_TALITOS is not set
1115# CONFIG_PPC_CLOCK is not set 1209# CONFIG_PPC_CLOCK is not set
1116CONFIG_PPC_LIB_RHEAP=y 1210CONFIG_PPC_LIB_RHEAP=y
1117# CONFIG_VIRTUALIZATION is not set 1211# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig b/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
index d2c435f0da42..7d674be702fe 100644
--- a/arch/powerpc/configs/83xx/mpc836x_rdk_defconfig
+++ b/arch/powerpc/configs/83xx/mpc836x_rdk_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.26-rc2 3# Linux kernel version: 2.6.27-rc4
4# Mon May 19 21:12:32 2008 4# Thu Aug 21 00:52:24 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -52,6 +54,9 @@ CONFIG_PPC_UDBG_16550=y
52CONFIG_AUDIT_ARCH=y 54CONFIG_AUDIT_ARCH=y
53CONFIG_GENERIC_BUG=y 55CONFIG_GENERIC_BUG=y
54CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
57CONFIG_HIBERNATE_32=y
58CONFIG_ARCH_HIBERNATION_POSSIBLE=y
59CONFIG_ARCH_SUSPEND_POSSIBLE=y
55# CONFIG_PPC_DCR_NATIVE is not set 60# CONFIG_PPC_DCR_NATIVE is not set
56# CONFIG_PPC_DCR_MMIO is not set 61# CONFIG_PPC_DCR_MMIO is not set
57CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 62CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -89,12 +94,12 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 97# CONFIG_KALLSYMS is not set
94CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 99CONFIG_PRINTK=y
96CONFIG_BUG=y 100CONFIG_BUG=y
97CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -112,10 +117,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 117# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -126,12 +137,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 140CONFIG_KMOD=y
130CONFIG_BLOCK=y 141CONFIG_BLOCK=y
131# CONFIG_LBD is not set 142# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 144# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
135 147
136# 148#
137# IO Schedulers 149# IO Schedulers
@@ -150,16 +162,18 @@ CONFIG_CLASSIC_RCU=y
150# 162#
151# Platform support 163# Platform support
152# 164#
153# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
163# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
164# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
165# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
@@ -170,17 +184,26 @@ CONFIG_MPC836x_RDK=y
170# CONFIG_MPC837x_MDS is not set 184# CONFIG_MPC837x_MDS is not set
171# CONFIG_MPC837x_RDB is not set 185# CONFIG_MPC837x_RDB is not set
172# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
187# CONFIG_ASP834x is not set
188# CONFIG_PPC_86xx is not set
189# CONFIG_EMBEDDED6xx is not set
190CONFIG_PPC_NATIVE=y
191# CONFIG_UDBG_RTAS_CONSOLE is not set
173CONFIG_IPIC=y 192CONFIG_IPIC=y
174# CONFIG_MPIC is not set 193CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
176# CONFIG_PPC_I8259 is not set 195CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 196CONFIG_PPC_RTAS=y
197# CONFIG_RTAS_ERROR_LOGGING is not set
198CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 199# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 200CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 201# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 202# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 203# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 204# CONFIG_CPU_FREQ is not set
205# CONFIG_PPC601_SYNC_FIX is not set
206# CONFIG_TAU is not set
184CONFIG_QUICC_ENGINE=y 207CONFIG_QUICC_ENGINE=y
185# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
186 209
@@ -207,6 +230,7 @@ CONFIG_BINFMT_ELF=y
207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
212CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -219,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -226,6 +251,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 255# CONFIG_PM is not set
230CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -233,12 +259,15 @@ CONFIG_ISA_DMA_API=y
233# 259#
234# Bus options 260# Bus options
235# 261#
262# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
267CONFIG_FSL_PCI=y
240CONFIG_FSL_LBC=y 268CONFIG_FSL_LBC=y
241CONFIG_FSL_GTM=y 269CONFIG_FSL_GTM=y
270CONFIG_PPC_PCI_CHOICE=y
242CONFIG_PCI=y 271CONFIG_PCI=y
243CONFIG_PCI_DOMAINS=y 272CONFIG_PCI_DOMAINS=y
244CONFIG_PCI_SYSCALL=y 273CONFIG_PCI_SYSCALL=y
@@ -263,10 +292,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
263CONFIG_KERNEL_START=0xc0000000 292CONFIG_KERNEL_START=0xc0000000
264CONFIG_PHYSICAL_START=0x00000000 293CONFIG_PHYSICAL_START=0x00000000
265CONFIG_TASK_SIZE=0xc0000000 294CONFIG_TASK_SIZE=0xc0000000
266
267#
268# Networking
269#
270CONFIG_NET=y 295CONFIG_NET=y
271 296
272# 297#
@@ -359,6 +384,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
359CONFIG_STANDALONE=y 384CONFIG_STANDALONE=y
360CONFIG_PREVENT_FIRMWARE_BUILD=y 385CONFIG_PREVENT_FIRMWARE_BUILD=y
361CONFIG_FW_LOADER=y 386CONFIG_FW_LOADER=y
387CONFIG_FIRMWARE_IN_KERNEL=y
388CONFIG_EXTRA_FIRMWARE=""
362# CONFIG_SYS_HYPERVISOR is not set 389# CONFIG_SYS_HYPERVISOR is not set
363# CONFIG_CONNECTOR is not set 390# CONFIG_CONNECTOR is not set
364CONFIG_MTD=y 391CONFIG_MTD=y
@@ -449,9 +476,11 @@ CONFIG_MTD_PHYSMAP_OF=y
449CONFIG_OF_DEVICE=y 476CONFIG_OF_DEVICE=y
450CONFIG_OF_GPIO=y 477CONFIG_OF_GPIO=y
451CONFIG_OF_I2C=y 478CONFIG_OF_I2C=y
479CONFIG_OF_SPI=y
452# CONFIG_PARPORT is not set 480# CONFIG_PARPORT is not set
453CONFIG_BLK_DEV=y 481CONFIG_BLK_DEV=y
454# CONFIG_BLK_DEV_FD is not set 482# CONFIG_BLK_DEV_FD is not set
483# CONFIG_MAC_FLOPPY is not set
455# CONFIG_BLK_CPQ_DA is not set 484# CONFIG_BLK_CPQ_DA is not set
456# CONFIG_BLK_CPQ_CISS_DA is not set 485# CONFIG_BLK_CPQ_CISS_DA is not set
457# CONFIG_BLK_DEV_DAC960 is not set 486# CONFIG_BLK_DEV_DAC960 is not set
@@ -467,12 +496,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
467# CONFIG_BLK_DEV_XIP is not set 496# CONFIG_BLK_DEV_XIP is not set
468# CONFIG_CDROM_PKTCDVD is not set 497# CONFIG_CDROM_PKTCDVD is not set
469# CONFIG_ATA_OVER_ETH is not set 498# CONFIG_ATA_OVER_ETH is not set
499# CONFIG_BLK_DEV_HD is not set
470CONFIG_MISC_DEVICES=y 500CONFIG_MISC_DEVICES=y
471# CONFIG_PHANTOM is not set 501# CONFIG_PHANTOM is not set
472# CONFIG_EEPROM_93CX6 is not set 502# CONFIG_EEPROM_93CX6 is not set
473# CONFIG_SGI_IOC4 is not set 503# CONFIG_SGI_IOC4 is not set
474# CONFIG_TIFM_CORE is not set 504# CONFIG_TIFM_CORE is not set
475# CONFIG_ENCLOSURE_SERVICES is not set 505# CONFIG_ENCLOSURE_SERVICES is not set
506# CONFIG_HP_ILO is not set
476CONFIG_HAVE_IDE=y 507CONFIG_HAVE_IDE=y
477# CONFIG_IDE is not set 508# CONFIG_IDE is not set
478 509
@@ -490,12 +521,15 @@ CONFIG_HAVE_IDE=y
490# 521#
491# IEEE 1394 (FireWire) support 522# IEEE 1394 (FireWire) support
492# 523#
524
525#
526# Enable only one of the two stacks, unless you know what you are doing
527#
493# CONFIG_FIREWIRE is not set 528# CONFIG_FIREWIRE is not set
494# CONFIG_IEEE1394 is not set 529# CONFIG_IEEE1394 is not set
495# CONFIG_I2O is not set 530# CONFIG_I2O is not set
496# CONFIG_MACINTOSH_DRIVERS is not set 531# CONFIG_MACINTOSH_DRIVERS is not set
497CONFIG_NETDEVICES=y 532CONFIG_NETDEVICES=y
498# CONFIG_NETDEVICES_MULTIQUEUE is not set
499# CONFIG_DUMMY is not set 533# CONFIG_DUMMY is not set
500# CONFIG_BONDING is not set 534# CONFIG_BONDING is not set
501# CONFIG_MACVLAN is not set 535# CONFIG_MACVLAN is not set
@@ -526,7 +560,6 @@ CONFIG_NETDEV_1000=y
526# CONFIG_DL2K is not set 560# CONFIG_DL2K is not set
527# CONFIG_E1000 is not set 561# CONFIG_E1000 is not set
528# CONFIG_E1000E is not set 562# CONFIG_E1000E is not set
529# CONFIG_E1000E_ENABLED is not set
530# CONFIG_IP1000 is not set 563# CONFIG_IP1000 is not set
531# CONFIG_IGB is not set 564# CONFIG_IGB is not set
532# CONFIG_NS83820 is not set 565# CONFIG_NS83820 is not set
@@ -541,12 +574,13 @@ CONFIG_NETDEV_1000=y
541# CONFIG_BNX2 is not set 574# CONFIG_BNX2 is not set
542# CONFIG_GIANFAR is not set 575# CONFIG_GIANFAR is not set
543CONFIG_UCC_GETH=y 576CONFIG_UCC_GETH=y
544CONFIG_UGETH_NAPI=y
545# CONFIG_UGETH_MAGIC_PACKET is not set 577# CONFIG_UGETH_MAGIC_PACKET is not set
546# CONFIG_UGETH_FILTERING is not set 578# CONFIG_UGETH_FILTERING is not set
547# CONFIG_UGETH_TX_ON_DEMAND is not set 579# CONFIG_UGETH_TX_ON_DEMAND is not set
580# CONFIG_MV643XX_ETH is not set
548# CONFIG_QLA3XXX is not set 581# CONFIG_QLA3XXX is not set
549# CONFIG_ATL1 is not set 582# CONFIG_ATL1 is not set
583# CONFIG_ATL1E is not set
550# CONFIG_NETDEV_10000 is not set 584# CONFIG_NETDEV_10000 is not set
551# CONFIG_TR is not set 585# CONFIG_TR is not set
552 586
@@ -602,6 +636,7 @@ CONFIG_INPUT=y
602# Character devices 636# Character devices
603# 637#
604CONFIG_VT=y 638CONFIG_VT=y
639CONFIG_CONSOLE_TRANSLATIONS=y
605CONFIG_VT_CONSOLE=y 640CONFIG_VT_CONSOLE=y
606CONFIG_HW_CONSOLE=y 641CONFIG_HW_CONSOLE=y
607# CONFIG_VT_HW_CONSOLE_BINDING is not set 642# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -625,12 +660,15 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
625# CONFIG_SERIAL_UARTLITE is not set 660# CONFIG_SERIAL_UARTLITE is not set
626CONFIG_SERIAL_CORE=y 661CONFIG_SERIAL_CORE=y
627CONFIG_SERIAL_CORE_CONSOLE=y 662CONFIG_SERIAL_CORE_CONSOLE=y
663# CONFIG_SERIAL_PMACZILOG is not set
628# CONFIG_SERIAL_JSM is not set 664# CONFIG_SERIAL_JSM is not set
629# CONFIG_SERIAL_OF_PLATFORM is not set 665# CONFIG_SERIAL_OF_PLATFORM is not set
630CONFIG_SERIAL_QE=y 666CONFIG_SERIAL_QE=y
631CONFIG_UNIX98_PTYS=y 667CONFIG_UNIX98_PTYS=y
632CONFIG_LEGACY_PTYS=y 668CONFIG_LEGACY_PTYS=y
633CONFIG_LEGACY_PTY_COUNT=256 669CONFIG_LEGACY_PTY_COUNT=256
670# CONFIG_BRIQ_PANEL is not set
671# CONFIG_HVC_RTAS is not set
634# CONFIG_IPMI_HANDLER is not set 672# CONFIG_IPMI_HANDLER is not set
635CONFIG_HW_RANDOM=y 673CONFIG_HW_RANDOM=y
636# CONFIG_NVRAM is not set 674# CONFIG_NVRAM is not set
@@ -643,43 +681,70 @@ CONFIG_DEVPORT=y
643CONFIG_I2C=y 681CONFIG_I2C=y
644CONFIG_I2C_BOARDINFO=y 682CONFIG_I2C_BOARDINFO=y
645CONFIG_I2C_CHARDEV=y 683CONFIG_I2C_CHARDEV=y
684CONFIG_I2C_HELPER_AUTO=y
646 685
647# 686#
648# I2C Hardware Bus support 687# I2C Hardware Bus support
649# 688#
689
690#
691# PC SMBus host controller drivers
692#
650# CONFIG_I2C_ALI1535 is not set 693# CONFIG_I2C_ALI1535 is not set
651# CONFIG_I2C_ALI1563 is not set 694# CONFIG_I2C_ALI1563 is not set
652# CONFIG_I2C_ALI15X3 is not set 695# CONFIG_I2C_ALI15X3 is not set
653# CONFIG_I2C_AMD756 is not set 696# CONFIG_I2C_AMD756 is not set
654# CONFIG_I2C_AMD8111 is not set 697# CONFIG_I2C_AMD8111 is not set
655# CONFIG_I2C_GPIO is not set
656# CONFIG_I2C_I801 is not set 698# CONFIG_I2C_I801 is not set
657# CONFIG_I2C_I810 is not set 699# CONFIG_I2C_ISCH is not set
658# CONFIG_I2C_PIIX4 is not set 700# CONFIG_I2C_PIIX4 is not set
659CONFIG_I2C_MPC=y
660# CONFIG_I2C_NFORCE2 is not set 701# CONFIG_I2C_NFORCE2 is not set
661# CONFIG_I2C_OCORES is not set
662# CONFIG_I2C_PARPORT_LIGHT is not set
663# CONFIG_I2C_PROSAVAGE is not set
664# CONFIG_I2C_SAVAGE4 is not set
665# CONFIG_I2C_SIMTEC is not set
666# CONFIG_I2C_SIS5595 is not set 702# CONFIG_I2C_SIS5595 is not set
667# CONFIG_I2C_SIS630 is not set 703# CONFIG_I2C_SIS630 is not set
668# CONFIG_I2C_SIS96X is not set 704# CONFIG_I2C_SIS96X is not set
669# CONFIG_I2C_TAOS_EVM is not set
670# CONFIG_I2C_STUB is not set
671# CONFIG_I2C_VIA is not set 705# CONFIG_I2C_VIA is not set
672# CONFIG_I2C_VIAPRO is not set 706# CONFIG_I2C_VIAPRO is not set
707
708#
709# Mac SMBus host controller drivers
710#
711# CONFIG_I2C_HYDRA is not set
712CONFIG_I2C_POWERMAC=y
713
714#
715# I2C system bus drivers (mostly embedded / system-on-chip)
716#
717# CONFIG_I2C_GPIO is not set
718CONFIG_I2C_MPC=y
719# CONFIG_I2C_OCORES is not set
720# CONFIG_I2C_SIMTEC is not set
721
722#
723# External I2C/SMBus adapter drivers
724#
725# CONFIG_I2C_PARPORT_LIGHT is not set
726# CONFIG_I2C_TAOS_EVM is not set
727
728#
729# Graphics adapter I2C/DDC channel drivers
730#
673# CONFIG_I2C_VOODOO3 is not set 731# CONFIG_I2C_VOODOO3 is not set
732
733#
734# Other I2C/SMBus bus drivers
735#
674# CONFIG_I2C_PCA_PLATFORM is not set 736# CONFIG_I2C_PCA_PLATFORM is not set
737# CONFIG_I2C_STUB is not set
675 738
676# 739#
677# Miscellaneous I2C Chip support 740# Miscellaneous I2C Chip support
678# 741#
679# CONFIG_DS1682 is not set 742# CONFIG_DS1682 is not set
743# CONFIG_AT24 is not set
680# CONFIG_SENSORS_EEPROM is not set 744# CONFIG_SENSORS_EEPROM is not set
681# CONFIG_SENSORS_PCF8574 is not set 745# CONFIG_SENSORS_PCF8574 is not set
682# CONFIG_PCF8575 is not set 746# CONFIG_PCF8575 is not set
747# CONFIG_SENSORS_PCA9539 is not set
683# CONFIG_SENSORS_PCF8591 is not set 748# CONFIG_SENSORS_PCF8591 is not set
684# CONFIG_TPS65010 is not set 749# CONFIG_TPS65010 is not set
685# CONFIG_SENSORS_MAX6875 is not set 750# CONFIG_SENSORS_MAX6875 is not set
@@ -703,26 +768,33 @@ CONFIG_SPI_MPC83xx=y
703# CONFIG_SPI_AT25 is not set 768# CONFIG_SPI_AT25 is not set
704CONFIG_SPI_SPIDEV=y 769CONFIG_SPI_SPIDEV=y
705# CONFIG_SPI_TLE62X0 is not set 770# CONFIG_SPI_TLE62X0 is not set
706CONFIG_HAVE_GPIO_LIB=y 771CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
707 772CONFIG_ARCH_REQUIRE_GPIOLIB=y
708# 773CONFIG_GPIOLIB=y
709# GPIO Support 774# CONFIG_GPIO_SYSFS is not set
710#
711 775
712# 776#
713# I2C GPIO expanders: 777# I2C GPIO expanders:
714# 778#
779# CONFIG_GPIO_MAX732X is not set
715# CONFIG_GPIO_PCA953X is not set 780# CONFIG_GPIO_PCA953X is not set
716# CONFIG_GPIO_PCF857X is not set 781# CONFIG_GPIO_PCF857X is not set
717 782
718# 783#
784# PCI GPIO expanders:
785#
786# CONFIG_GPIO_BT8XX is not set
787
788#
719# SPI GPIO expanders: 789# SPI GPIO expanders:
720# 790#
791# CONFIG_GPIO_MAX7301 is not set
721# CONFIG_GPIO_MCP23S08 is not set 792# CONFIG_GPIO_MCP23S08 is not set
722# CONFIG_W1 is not set 793# CONFIG_W1 is not set
723# CONFIG_POWER_SUPPLY is not set 794# CONFIG_POWER_SUPPLY is not set
724# CONFIG_HWMON is not set 795# CONFIG_HWMON is not set
725# CONFIG_THERMAL is not set 796# CONFIG_THERMAL is not set
797# CONFIG_THERMAL_HWMON is not set
726CONFIG_WATCHDOG=y 798CONFIG_WATCHDOG=y
727# CONFIG_WATCHDOG_NOWAYOUT is not set 799# CONFIG_WATCHDOG_NOWAYOUT is not set
728 800
@@ -730,7 +802,9 @@ CONFIG_WATCHDOG=y
730# Watchdog Device Drivers 802# Watchdog Device Drivers
731# 803#
732# CONFIG_SOFT_WATCHDOG is not set 804# CONFIG_SOFT_WATCHDOG is not set
733CONFIG_83xx_WDT=y 805# CONFIG_ALIM7101_WDT is not set
806# CONFIG_8xxx_WDT is not set
807# CONFIG_WATCHDOG_RTAS is not set
734 808
735# 809#
736# PCI-based Watchdog Cards 810# PCI-based Watchdog Cards
@@ -747,9 +821,10 @@ CONFIG_SSB_POSSIBLE=y
747# 821#
748# Multifunction device drivers 822# Multifunction device drivers
749# 823#
824# CONFIG_MFD_CORE is not set
750# CONFIG_MFD_SM501 is not set 825# CONFIG_MFD_SM501 is not set
751# CONFIG_HTC_EGPIO is not set
752# CONFIG_HTC_PASIC3 is not set 826# CONFIG_HTC_PASIC3 is not set
827# CONFIG_MFD_TMIO is not set
753 828
754# 829#
755# Multimedia devices 830# Multimedia devices
@@ -799,6 +874,9 @@ CONFIG_FB_MACMODES=y
799# CONFIG_FB_PM2 is not set 874# CONFIG_FB_PM2 is not set
800# CONFIG_FB_CYBER2000 is not set 875# CONFIG_FB_CYBER2000 is not set
801CONFIG_FB_OF=y 876CONFIG_FB_OF=y
877# CONFIG_FB_CONTROL is not set
878# CONFIG_FB_PLATINUM is not set
879# CONFIG_FB_VALKYRIE is not set
802# CONFIG_FB_CT65550 is not set 880# CONFIG_FB_CT65550 is not set
803# CONFIG_FB_ASILIANT is not set 881# CONFIG_FB_ASILIANT is not set
804# CONFIG_FB_IMSTT is not set 882# CONFIG_FB_IMSTT is not set
@@ -821,6 +899,7 @@ CONFIG_FB_OF=y
821# CONFIG_FB_TRIDENT is not set 899# CONFIG_FB_TRIDENT is not set
822# CONFIG_FB_ARK is not set 900# CONFIG_FB_ARK is not set
823# CONFIG_FB_PM3 is not set 901# CONFIG_FB_PM3 is not set
902# CONFIG_FB_CARMINE is not set
824# CONFIG_FB_FSL_DIU is not set 903# CONFIG_FB_FSL_DIU is not set
825# CONFIG_FB_IBM_GXT4500 is not set 904# CONFIG_FB_IBM_GXT4500 is not set
826# CONFIG_FB_VIRTUAL is not set 905# CONFIG_FB_VIRTUAL is not set
@@ -846,10 +925,6 @@ CONFIG_LOGO=y
846# CONFIG_LOGO_LINUX_MONO is not set 925# CONFIG_LOGO_LINUX_MONO is not set
847CONFIG_LOGO_LINUX_VGA16=y 926CONFIG_LOGO_LINUX_VGA16=y
848CONFIG_LOGO_LINUX_CLUT224=y 927CONFIG_LOGO_LINUX_CLUT224=y
849
850#
851# Sound
852#
853# CONFIG_SOUND is not set 928# CONFIG_SOUND is not set
854CONFIG_HID_SUPPORT=y 929CONFIG_HID_SUPPORT=y
855CONFIG_HID=y 930CONFIG_HID=y
@@ -941,6 +1016,7 @@ CONFIG_JFFS2_RTIME=y
941# CONFIG_CRAMFS is not set 1016# CONFIG_CRAMFS is not set
942# CONFIG_VXFS_FS is not set 1017# CONFIG_VXFS_FS is not set
943# CONFIG_MINIX_FS is not set 1018# CONFIG_MINIX_FS is not set
1019# CONFIG_OMFS_FS is not set
944# CONFIG_HPFS_FS is not set 1020# CONFIG_HPFS_FS is not set
945# CONFIG_QNX4FS_FS is not set 1021# CONFIG_QNX4FS_FS is not set
946# CONFIG_ROMFS_FS is not set 1022# CONFIG_ROMFS_FS is not set
@@ -951,14 +1027,13 @@ CONFIG_NFS_FS=y
951CONFIG_NFS_V3=y 1027CONFIG_NFS_V3=y
952# CONFIG_NFS_V3_ACL is not set 1028# CONFIG_NFS_V3_ACL is not set
953CONFIG_NFS_V4=y 1029CONFIG_NFS_V4=y
954# CONFIG_NFSD is not set
955CONFIG_ROOT_NFS=y 1030CONFIG_ROOT_NFS=y
1031# CONFIG_NFSD is not set
956CONFIG_LOCKD=y 1032CONFIG_LOCKD=y
957CONFIG_LOCKD_V4=y 1033CONFIG_LOCKD_V4=y
958CONFIG_NFS_COMMON=y 1034CONFIG_NFS_COMMON=y
959CONFIG_SUNRPC=y 1035CONFIG_SUNRPC=y
960CONFIG_SUNRPC_GSS=y 1036CONFIG_SUNRPC_GSS=y
961# CONFIG_SUNRPC_BIND34 is not set
962CONFIG_RPCSEC_GSS_KRB5=y 1037CONFIG_RPCSEC_GSS_KRB5=y
963# CONFIG_RPCSEC_GSS_SPKM3 is not set 1038# CONFIG_RPCSEC_GSS_SPKM3 is not set
964# CONFIG_SMB_FS is not set 1039# CONFIG_SMB_FS is not set
@@ -998,6 +1073,7 @@ CONFIG_BITREVERSE=y
998# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1073# CONFIG_GENERIC_FIND_FIRST_BIT is not set
999# CONFIG_CRC_CCITT is not set 1074# CONFIG_CRC_CCITT is not set
1000# CONFIG_CRC16 is not set 1075# CONFIG_CRC16 is not set
1076# CONFIG_CRC_T10DIF is not set
1001# CONFIG_CRC_ITU_T is not set 1077# CONFIG_CRC_ITU_T is not set
1002CONFIG_CRC32=y 1078CONFIG_CRC32=y
1003# CONFIG_CRC7 is not set 1079# CONFIG_CRC7 is not set
@@ -1025,12 +1101,22 @@ CONFIG_FRAME_WARN=1024
1025# CONFIG_SLUB_DEBUG_ON is not set 1101# CONFIG_SLUB_DEBUG_ON is not set
1026# CONFIG_SLUB_STATS is not set 1102# CONFIG_SLUB_STATS is not set
1027# CONFIG_DEBUG_BUGVERBOSE is not set 1103# CONFIG_DEBUG_BUGVERBOSE is not set
1104# CONFIG_DEBUG_MEMORY_INIT is not set
1105# CONFIG_LATENCYTOP is not set
1106CONFIG_SYSCTL_SYSCALL_CHECK=y
1107CONFIG_HAVE_FTRACE=y
1108CONFIG_HAVE_DYNAMIC_FTRACE=y
1109# CONFIG_FTRACE is not set
1110# CONFIG_SCHED_TRACER is not set
1111# CONFIG_CONTEXT_SWITCH_TRACER is not set
1028# CONFIG_SAMPLES is not set 1112# CONFIG_SAMPLES is not set
1113CONFIG_HAVE_ARCH_KGDB=y
1029# CONFIG_IRQSTACKS is not set 1114# CONFIG_IRQSTACKS is not set
1115# CONFIG_BOOTX_TEXT is not set
1030CONFIG_PPC_EARLY_DEBUG=y 1116CONFIG_PPC_EARLY_DEBUG=y
1031# CONFIG_PPC_EARLY_DEBUG_LPAR is not set 1117# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
1032# CONFIG_PPC_EARLY_DEBUG_G5 is not set 1118# CONFIG_PPC_EARLY_DEBUG_G5 is not set
1033# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set 1119CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL=y
1034# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set 1120# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
1035# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set 1121# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
1036# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set 1122# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
@@ -1091,6 +1177,10 @@ CONFIG_CRYPTO_CBC=y
1091# CONFIG_CRYPTO_MD4 is not set 1177# CONFIG_CRYPTO_MD4 is not set
1092CONFIG_CRYPTO_MD5=y 1178CONFIG_CRYPTO_MD5=y
1093# CONFIG_CRYPTO_MICHAEL_MIC is not set 1179# CONFIG_CRYPTO_MICHAEL_MIC is not set
1180# CONFIG_CRYPTO_RMD128 is not set
1181# CONFIG_CRYPTO_RMD160 is not set
1182# CONFIG_CRYPTO_RMD256 is not set
1183# CONFIG_CRYPTO_RMD320 is not set
1094# CONFIG_CRYPTO_SHA1 is not set 1184# CONFIG_CRYPTO_SHA1 is not set
1095# CONFIG_CRYPTO_SHA256 is not set 1185# CONFIG_CRYPTO_SHA256 is not set
1096# CONFIG_CRYPTO_SHA512 is not set 1186# CONFIG_CRYPTO_SHA512 is not set
@@ -1123,6 +1213,7 @@ CONFIG_CRYPTO_DES=y
1123# CONFIG_CRYPTO_LZO is not set 1213# CONFIG_CRYPTO_LZO is not set
1124CONFIG_CRYPTO_HW=y 1214CONFIG_CRYPTO_HW=y
1125# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1215# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1216# CONFIG_CRYPTO_DEV_TALITOS is not set
1126# CONFIG_PPC_CLOCK is not set 1217# CONFIG_PPC_CLOCK is not set
1127CONFIG_PPC_LIB_RHEAP=y 1218CONFIG_PPC_LIB_RHEAP=y
1128# CONFIG_VIRTUALIZATION is not set 1219# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig b/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
index 0f94d9f56beb..de472022aa81 100644
--- a/arch/powerpc/configs/83xx/mpc837x_mds_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_mds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:28 2008 4# Thu Aug 21 00:52:23 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,13 +93,13 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 99CONFIG_PRINTK=y
96CONFIG_BUG=y 100CONFIG_BUG=y
97CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -112,10 +117,16 @@ CONFIG_SLAB=y
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -126,12 +137,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 140CONFIG_KMOD=y
130CONFIG_BLOCK=y 141CONFIG_BLOCK=y
131# CONFIG_LBD is not set 142# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 144# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
135 147
136# 148#
137# IO Schedulers 149# IO Schedulers
@@ -150,37 +162,49 @@ CONFIG_CLASSIC_RCU=y
150# 162#
151# Platform support 163# Platform support
152# 164#
153# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
163# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
164# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
165# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
166# CONFIG_MPC834x_MDS is not set 180# CONFIG_MPC834x_MDS is not set
167# CONFIG_MPC834x_ITX is not set 181# CONFIG_MPC834x_ITX is not set
168# CONFIG_MPC836x_MDS is not set 182# CONFIG_MPC836x_MDS is not set
183# CONFIG_MPC836x_RDK is not set
169CONFIG_MPC837x_MDS=y 184CONFIG_MPC837x_MDS=y
170# CONFIG_MPC837x_RDB is not set 185# CONFIG_MPC837x_RDB is not set
171# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
187# CONFIG_ASP834x is not set
172CONFIG_PPC_MPC837x=y 188CONFIG_PPC_MPC837x=y
189# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
173CONFIG_IPIC=y 193CONFIG_IPIC=y
174# CONFIG_MPIC is not set 194CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 195# CONFIG_MPIC_WEIRD is not set
176# CONFIG_PPC_I8259 is not set 196CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 197CONFIG_PPC_RTAS=y
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 200# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 201CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 202# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 203# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 204# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 205# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
186# 210#
@@ -206,6 +230,7 @@ CONFIG_BINFMT_ELF=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
209CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
210CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
211CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -218,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
221# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -225,6 +251,7 @@ CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
228# CONFIG_PM is not set 255# CONFIG_PM is not set
229CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
230CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -232,15 +259,22 @@ CONFIG_ISA_DMA_API=y
232# 259#
233# Bus options 260# Bus options
234# 261#
262# CONFIG_ISA is not set
235CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
236CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
237CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
238CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
239# CONFIG_PCI is not set 267CONFIG_FSL_PCI=y
240# CONFIG_PCI_DOMAINS is not set 268CONFIG_PPC_PCI_CHOICE=y
241# CONFIG_PCI_SYSCALL is not set 269CONFIG_PCI=y
242# CONFIG_ARCH_SUPPORTS_MSI is not set 270CONFIG_PCI_DOMAINS=y
271CONFIG_PCI_SYSCALL=y
272# CONFIG_PCIEPORTBUS is not set
273CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_MSI is not set
275CONFIG_PCI_LEGACY=y
243# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set
244# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
245 279
246# 280#
@@ -256,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
256CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
258CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 293CONFIG_NET=y
264 294
265# 295#
@@ -360,19 +390,30 @@ CONFIG_OF_I2C=y
360# CONFIG_PARPORT is not set 390# CONFIG_PARPORT is not set
361CONFIG_BLK_DEV=y 391CONFIG_BLK_DEV=y
362# CONFIG_BLK_DEV_FD is not set 392# CONFIG_BLK_DEV_FD is not set
393# CONFIG_MAC_FLOPPY is not set
394# CONFIG_BLK_CPQ_DA is not set
395# CONFIG_BLK_CPQ_CISS_DA is not set
396# CONFIG_BLK_DEV_DAC960 is not set
397# CONFIG_BLK_DEV_UMEM is not set
363# CONFIG_BLK_DEV_COW_COMMON is not set 398# CONFIG_BLK_DEV_COW_COMMON is not set
364CONFIG_BLK_DEV_LOOP=y 399CONFIG_BLK_DEV_LOOP=y
365# CONFIG_BLK_DEV_CRYPTOLOOP is not set 400# CONFIG_BLK_DEV_CRYPTOLOOP is not set
366# CONFIG_BLK_DEV_NBD is not set 401# CONFIG_BLK_DEV_NBD is not set
402# CONFIG_BLK_DEV_SX8 is not set
367CONFIG_BLK_DEV_RAM=y 403CONFIG_BLK_DEV_RAM=y
368CONFIG_BLK_DEV_RAM_COUNT=16 404CONFIG_BLK_DEV_RAM_COUNT=16
369CONFIG_BLK_DEV_RAM_SIZE=32768 405CONFIG_BLK_DEV_RAM_SIZE=32768
370# CONFIG_BLK_DEV_XIP is not set 406# CONFIG_BLK_DEV_XIP is not set
371# CONFIG_CDROM_PKTCDVD is not set 407# CONFIG_CDROM_PKTCDVD is not set
372# CONFIG_ATA_OVER_ETH is not set 408# CONFIG_ATA_OVER_ETH is not set
409# CONFIG_BLK_DEV_HD is not set
373CONFIG_MISC_DEVICES=y 410CONFIG_MISC_DEVICES=y
411# CONFIG_PHANTOM is not set
374# CONFIG_EEPROM_93CX6 is not set 412# CONFIG_EEPROM_93CX6 is not set
413# CONFIG_SGI_IOC4 is not set
414# CONFIG_TIFM_CORE is not set
375# CONFIG_ENCLOSURE_SERVICES is not set 415# CONFIG_ENCLOSURE_SERVICES is not set
416# CONFIG_HP_ILO is not set
376CONFIG_HAVE_IDE=y 417CONFIG_HAVE_IDE=y
377# CONFIG_IDE is not set 418# CONFIG_IDE is not set
378 419
@@ -415,24 +456,128 @@ CONFIG_SCSI_WAIT_SCAN=m
415# CONFIG_SCSI_SRP_ATTRS is not set 456# CONFIG_SCSI_SRP_ATTRS is not set
416CONFIG_SCSI_LOWLEVEL=y 457CONFIG_SCSI_LOWLEVEL=y
417# CONFIG_ISCSI_TCP is not set 458# CONFIG_ISCSI_TCP is not set
459# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
460# CONFIG_SCSI_3W_9XXX is not set
461# CONFIG_SCSI_ACARD is not set
462# CONFIG_SCSI_AACRAID is not set
463# CONFIG_SCSI_AIC7XXX is not set
464# CONFIG_SCSI_AIC7XXX_OLD is not set
465# CONFIG_SCSI_AIC79XX is not set
466# CONFIG_SCSI_AIC94XX is not set
467# CONFIG_SCSI_DPT_I2O is not set
468# CONFIG_SCSI_ADVANSYS is not set
469# CONFIG_SCSI_ARCMSR is not set
470# CONFIG_MEGARAID_NEWGEN is not set
471# CONFIG_MEGARAID_LEGACY is not set
472# CONFIG_MEGARAID_SAS is not set
473# CONFIG_SCSI_HPTIOP is not set
474# CONFIG_SCSI_BUSLOGIC is not set
475# CONFIG_SCSI_DMX3191D is not set
476# CONFIG_SCSI_EATA is not set
477# CONFIG_SCSI_FUTURE_DOMAIN is not set
478# CONFIG_SCSI_GDTH is not set
479# CONFIG_SCSI_IPS is not set
480# CONFIG_SCSI_INITIO is not set
481# CONFIG_SCSI_INIA100 is not set
482# CONFIG_SCSI_MVSAS is not set
483# CONFIG_SCSI_STEX is not set
484# CONFIG_SCSI_SYM53C8XX_2 is not set
485# CONFIG_SCSI_IPR is not set
486# CONFIG_SCSI_QLOGIC_1280 is not set
487# CONFIG_SCSI_QLA_FC is not set
488# CONFIG_SCSI_QLA_ISCSI is not set
489# CONFIG_SCSI_LPFC is not set
490# CONFIG_SCSI_DC395x is not set
491# CONFIG_SCSI_DC390T is not set
492# CONFIG_SCSI_NSP32 is not set
418# CONFIG_SCSI_DEBUG is not set 493# CONFIG_SCSI_DEBUG is not set
494# CONFIG_SCSI_MESH is not set
495# CONFIG_SCSI_MAC53C94 is not set
496# CONFIG_SCSI_SRP is not set
497# CONFIG_SCSI_DH is not set
419CONFIG_ATA=y 498CONFIG_ATA=y
420# CONFIG_ATA_NONSTANDARD is not set 499# CONFIG_ATA_NONSTANDARD is not set
421CONFIG_SATA_PMP=y 500CONFIG_SATA_PMP=y
501# CONFIG_SATA_AHCI is not set
502# CONFIG_SATA_SIL24 is not set
422CONFIG_SATA_FSL=y 503CONFIG_SATA_FSL=y
423CONFIG_ATA_SFF=y 504CONFIG_ATA_SFF=y
505# CONFIG_SATA_SVW is not set
506# CONFIG_ATA_PIIX is not set
424# CONFIG_SATA_MV is not set 507# CONFIG_SATA_MV is not set
508# CONFIG_SATA_NV is not set
509# CONFIG_PDC_ADMA is not set
510# CONFIG_SATA_QSTOR is not set
511# CONFIG_SATA_PROMISE is not set
512# CONFIG_SATA_SX4 is not set
513# CONFIG_SATA_SIL is not set
514# CONFIG_SATA_SIS is not set
515# CONFIG_SATA_ULI is not set
516# CONFIG_SATA_VIA is not set
517# CONFIG_SATA_VITESSE is not set
518# CONFIG_SATA_INIC162X is not set
519# CONFIG_PATA_ALI is not set
520# CONFIG_PATA_AMD is not set
521# CONFIG_PATA_ARTOP is not set
522# CONFIG_PATA_ATIIXP is not set
523# CONFIG_PATA_CMD640_PCI is not set
524# CONFIG_PATA_CMD64X is not set
525# CONFIG_PATA_CS5520 is not set
526# CONFIG_PATA_CS5530 is not set
527# CONFIG_PATA_CYPRESS is not set
528# CONFIG_PATA_EFAR is not set
529# CONFIG_ATA_GENERIC is not set
530# CONFIG_PATA_HPT366 is not set
531# CONFIG_PATA_HPT37X is not set
532# CONFIG_PATA_HPT3X2N is not set
533# CONFIG_PATA_HPT3X3 is not set
534# CONFIG_PATA_IT821X is not set
535# CONFIG_PATA_IT8213 is not set
536# CONFIG_PATA_JMICRON is not set
537# CONFIG_PATA_TRIFLEX is not set
538# CONFIG_PATA_MARVELL is not set
539# CONFIG_PATA_MPIIX is not set
540# CONFIG_PATA_OLDPIIX is not set
541# CONFIG_PATA_NETCELL is not set
542# CONFIG_PATA_NINJA32 is not set
543# CONFIG_PATA_NS87410 is not set
544# CONFIG_PATA_NS87415 is not set
545# CONFIG_PATA_OPTI is not set
546# CONFIG_PATA_OPTIDMA is not set
547# CONFIG_PATA_PDC_OLD is not set
548# CONFIG_PATA_RADISYS is not set
549# CONFIG_PATA_RZ1000 is not set
550# CONFIG_PATA_SC1200 is not set
551# CONFIG_PATA_SERVERWORKS is not set
552# CONFIG_PATA_PDC2027X is not set
553# CONFIG_PATA_SIL680 is not set
554# CONFIG_PATA_SIS is not set
555# CONFIG_PATA_VIA is not set
556# CONFIG_PATA_WINBOND is not set
425# CONFIG_PATA_PLATFORM is not set 557# CONFIG_PATA_PLATFORM is not set
558# CONFIG_PATA_SCH is not set
426# CONFIG_MD is not set 559# CONFIG_MD is not set
560# CONFIG_FUSION is not set
561
562#
563# IEEE 1394 (FireWire) support
564#
565
566#
567# Enable only one of the two stacks, unless you know what you are doing
568#
569# CONFIG_FIREWIRE is not set
570# CONFIG_IEEE1394 is not set
571# CONFIG_I2O is not set
427# CONFIG_MACINTOSH_DRIVERS is not set 572# CONFIG_MACINTOSH_DRIVERS is not set
428CONFIG_NETDEVICES=y 573CONFIG_NETDEVICES=y
429# CONFIG_NETDEVICES_MULTIQUEUE is not set
430# CONFIG_DUMMY is not set 574# CONFIG_DUMMY is not set
431# CONFIG_BONDING is not set 575# CONFIG_BONDING is not set
432# CONFIG_MACVLAN is not set 576# CONFIG_MACVLAN is not set
433# CONFIG_EQUALIZER is not set 577# CONFIG_EQUALIZER is not set
434# CONFIG_TUN is not set 578# CONFIG_TUN is not set
435# CONFIG_VETH is not set 579# CONFIG_VETH is not set
580# CONFIG_ARCNET is not set
436CONFIG_PHYLIB=y 581CONFIG_PHYLIB=y
437 582
438# 583#
@@ -452,16 +597,56 @@ CONFIG_MARVELL_PHY=y
452# CONFIG_MDIO_BITBANG is not set 597# CONFIG_MDIO_BITBANG is not set
453CONFIG_NET_ETHERNET=y 598CONFIG_NET_ETHERNET=y
454CONFIG_MII=y 599CONFIG_MII=y
600# CONFIG_MACE is not set
601# CONFIG_BMAC is not set
602# CONFIG_HAPPYMEAL is not set
603# CONFIG_SUNGEM is not set
604# CONFIG_CASSINI is not set
605# CONFIG_NET_VENDOR_3COM is not set
606# CONFIG_NET_TULIP is not set
607# CONFIG_HP100 is not set
455# CONFIG_IBM_NEW_EMAC_ZMII is not set 608# CONFIG_IBM_NEW_EMAC_ZMII is not set
456# CONFIG_IBM_NEW_EMAC_RGMII is not set 609# CONFIG_IBM_NEW_EMAC_RGMII is not set
457# CONFIG_IBM_NEW_EMAC_TAH is not set 610# CONFIG_IBM_NEW_EMAC_TAH is not set
458# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 611# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
612# CONFIG_NET_PCI is not set
459# CONFIG_B44 is not set 613# CONFIG_B44 is not set
460CONFIG_NETDEV_1000=y 614CONFIG_NETDEV_1000=y
461# CONFIG_E1000E_ENABLED is not set 615# CONFIG_ACENIC is not set
616# CONFIG_DL2K is not set
617# CONFIG_E1000 is not set
618# CONFIG_E1000E is not set
619# CONFIG_IP1000 is not set
620# CONFIG_IGB is not set
621# CONFIG_NS83820 is not set
622# CONFIG_HAMACHI is not set
623# CONFIG_YELLOWFIN is not set
624# CONFIG_R8169 is not set
625# CONFIG_SIS190 is not set
626# CONFIG_SKGE is not set
627# CONFIG_SKY2 is not set
628# CONFIG_VIA_VELOCITY is not set
629# CONFIG_TIGON3 is not set
630# CONFIG_BNX2 is not set
462CONFIG_GIANFAR=y 631CONFIG_GIANFAR=y
463# CONFIG_GFAR_NAPI is not set 632# CONFIG_MV643XX_ETH is not set
633# CONFIG_QLA3XXX is not set
634# CONFIG_ATL1 is not set
635# CONFIG_ATL1E is not set
464CONFIG_NETDEV_10000=y 636CONFIG_NETDEV_10000=y
637# CONFIG_CHELSIO_T1 is not set
638# CONFIG_CHELSIO_T3 is not set
639# CONFIG_IXGBE is not set
640# CONFIG_IXGB is not set
641# CONFIG_S2IO is not set
642# CONFIG_MYRI10GE is not set
643# CONFIG_NETXEN_NIC is not set
644# CONFIG_NIU is not set
645# CONFIG_MLX4_CORE is not set
646# CONFIG_TEHUTI is not set
647# CONFIG_BNX2X is not set
648# CONFIG_SFC is not set
649# CONFIG_TR is not set
465 650
466# 651#
467# Wireless LAN 652# Wireless LAN
@@ -470,8 +655,11 @@ CONFIG_NETDEV_10000=y
470# CONFIG_WLAN_80211 is not set 655# CONFIG_WLAN_80211 is not set
471# CONFIG_IWLWIFI_LEDS is not set 656# CONFIG_IWLWIFI_LEDS is not set
472# CONFIG_WAN is not set 657# CONFIG_WAN is not set
658# CONFIG_FDDI is not set
659# CONFIG_HIPPI is not set
473# CONFIG_PPP is not set 660# CONFIG_PPP is not set
474# CONFIG_SLIP is not set 661# CONFIG_SLIP is not set
662# CONFIG_NET_FC is not set
475# CONFIG_NETCONSOLE is not set 663# CONFIG_NETCONSOLE is not set
476# CONFIG_NETPOLL is not set 664# CONFIG_NETPOLL is not set
477# CONFIG_NET_POLL_CONTROLLER is not set 665# CONFIG_NET_POLL_CONTROLLER is not set
@@ -515,12 +703,14 @@ CONFIG_INPUT=y
515# CONFIG_VT is not set 703# CONFIG_VT is not set
516CONFIG_DEVKMEM=y 704CONFIG_DEVKMEM=y
517# CONFIG_SERIAL_NONSTANDARD is not set 705# CONFIG_SERIAL_NONSTANDARD is not set
706# CONFIG_NOZOMI is not set
518 707
519# 708#
520# Serial drivers 709# Serial drivers
521# 710#
522CONFIG_SERIAL_8250=y 711CONFIG_SERIAL_8250=y
523CONFIG_SERIAL_8250_CONSOLE=y 712CONFIG_SERIAL_8250_CONSOLE=y
713CONFIG_SERIAL_8250_PCI=y
524CONFIG_SERIAL_8250_NR_UARTS=4 714CONFIG_SERIAL_8250_NR_UARTS=4
525CONFIG_SERIAL_8250_RUNTIME_UARTS=4 715CONFIG_SERIAL_8250_RUNTIME_UARTS=4
526# CONFIG_SERIAL_8250_EXTENDED is not set 716# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -531,40 +721,90 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
531# CONFIG_SERIAL_UARTLITE is not set 721# CONFIG_SERIAL_UARTLITE is not set
532CONFIG_SERIAL_CORE=y 722CONFIG_SERIAL_CORE=y
533CONFIG_SERIAL_CORE_CONSOLE=y 723CONFIG_SERIAL_CORE_CONSOLE=y
724# CONFIG_SERIAL_PMACZILOG is not set
725# CONFIG_SERIAL_JSM is not set
534# CONFIG_SERIAL_OF_PLATFORM is not set 726# CONFIG_SERIAL_OF_PLATFORM is not set
535CONFIG_UNIX98_PTYS=y 727CONFIG_UNIX98_PTYS=y
536CONFIG_LEGACY_PTYS=y 728CONFIG_LEGACY_PTYS=y
537CONFIG_LEGACY_PTY_COUNT=256 729CONFIG_LEGACY_PTY_COUNT=256
730# CONFIG_BRIQ_PANEL is not set
731# CONFIG_HVC_RTAS is not set
538# CONFIG_IPMI_HANDLER is not set 732# CONFIG_IPMI_HANDLER is not set
539# CONFIG_HW_RANDOM is not set 733# CONFIG_HW_RANDOM is not set
540# CONFIG_NVRAM is not set 734# CONFIG_NVRAM is not set
541CONFIG_GEN_RTC=y 735CONFIG_GEN_RTC=y
542# CONFIG_GEN_RTC_X is not set 736# CONFIG_GEN_RTC_X is not set
543# CONFIG_R3964 is not set 737# CONFIG_R3964 is not set
738# CONFIG_APPLICOM is not set
544# CONFIG_RAW_DRIVER is not set 739# CONFIG_RAW_DRIVER is not set
545# CONFIG_TCG_TPM is not set 740# CONFIG_TCG_TPM is not set
741CONFIG_DEVPORT=y
546CONFIG_I2C=y 742CONFIG_I2C=y
547CONFIG_I2C_BOARDINFO=y 743CONFIG_I2C_BOARDINFO=y
548CONFIG_I2C_CHARDEV=y 744CONFIG_I2C_CHARDEV=y
745CONFIG_I2C_HELPER_AUTO=y
549 746
550# 747#
551# I2C Hardware Bus support 748# I2C Hardware Bus support
552# 749#
750
751#
752# PC SMBus host controller drivers
753#
754# CONFIG_I2C_ALI1535 is not set
755# CONFIG_I2C_ALI1563 is not set
756# CONFIG_I2C_ALI15X3 is not set
757# CONFIG_I2C_AMD756 is not set
758# CONFIG_I2C_AMD8111 is not set
759# CONFIG_I2C_I801 is not set
760# CONFIG_I2C_ISCH is not set
761# CONFIG_I2C_PIIX4 is not set
762# CONFIG_I2C_NFORCE2 is not set
763# CONFIG_I2C_SIS5595 is not set
764# CONFIG_I2C_SIS630 is not set
765# CONFIG_I2C_SIS96X is not set
766# CONFIG_I2C_VIA is not set
767# CONFIG_I2C_VIAPRO is not set
768
769#
770# Mac SMBus host controller drivers
771#
772# CONFIG_I2C_HYDRA is not set
773CONFIG_I2C_POWERMAC=y
774
775#
776# I2C system bus drivers (mostly embedded / system-on-chip)
777#
553CONFIG_I2C_MPC=y 778CONFIG_I2C_MPC=y
554# CONFIG_I2C_OCORES is not set 779# CONFIG_I2C_OCORES is not set
555# CONFIG_I2C_PARPORT_LIGHT is not set
556# CONFIG_I2C_SIMTEC is not set 780# CONFIG_I2C_SIMTEC is not set
781
782#
783# External I2C/SMBus adapter drivers
784#
785# CONFIG_I2C_PARPORT_LIGHT is not set
557# CONFIG_I2C_TAOS_EVM is not set 786# CONFIG_I2C_TAOS_EVM is not set
558# CONFIG_I2C_STUB is not set 787
788#
789# Graphics adapter I2C/DDC channel drivers
790#
791# CONFIG_I2C_VOODOO3 is not set
792
793#
794# Other I2C/SMBus bus drivers
795#
559# CONFIG_I2C_PCA_PLATFORM is not set 796# CONFIG_I2C_PCA_PLATFORM is not set
797# CONFIG_I2C_STUB is not set
560 798
561# 799#
562# Miscellaneous I2C Chip support 800# Miscellaneous I2C Chip support
563# 801#
564# CONFIG_DS1682 is not set 802# CONFIG_DS1682 is not set
803# CONFIG_AT24 is not set
565# CONFIG_SENSORS_EEPROM is not set 804# CONFIG_SENSORS_EEPROM is not set
566# CONFIG_SENSORS_PCF8574 is not set 805# CONFIG_SENSORS_PCF8574 is not set
567# CONFIG_PCF8575 is not set 806# CONFIG_PCF8575 is not set
807# CONFIG_SENSORS_PCA9539 is not set
568# CONFIG_SENSORS_PCF8591 is not set 808# CONFIG_SENSORS_PCF8591 is not set
569# CONFIG_SENSORS_MAX6875 is not set 809# CONFIG_SENSORS_MAX6875 is not set
570# CONFIG_SENSORS_TSL2550 is not set 810# CONFIG_SENSORS_TSL2550 is not set
@@ -573,10 +813,13 @@ CONFIG_I2C_MPC=y
573# CONFIG_I2C_DEBUG_BUS is not set 813# CONFIG_I2C_DEBUG_BUS is not set
574# CONFIG_I2C_DEBUG_CHIP is not set 814# CONFIG_I2C_DEBUG_CHIP is not set
575# CONFIG_SPI is not set 815# CONFIG_SPI is not set
816CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
817# CONFIG_GPIOLIB is not set
576# CONFIG_W1 is not set 818# CONFIG_W1 is not set
577# CONFIG_POWER_SUPPLY is not set 819# CONFIG_POWER_SUPPLY is not set
578CONFIG_HWMON=y 820CONFIG_HWMON=y
579# CONFIG_HWMON_VID is not set 821# CONFIG_HWMON_VID is not set
822# CONFIG_SENSORS_AD7414 is not set
580# CONFIG_SENSORS_AD7418 is not set 823# CONFIG_SENSORS_AD7418 is not set
581# CONFIG_SENSORS_ADM1021 is not set 824# CONFIG_SENSORS_ADM1021 is not set
582# CONFIG_SENSORS_ADM1025 is not set 825# CONFIG_SENSORS_ADM1025 is not set
@@ -586,8 +829,10 @@ CONFIG_HWMON=y
586# CONFIG_SENSORS_ADM9240 is not set 829# CONFIG_SENSORS_ADM9240 is not set
587# CONFIG_SENSORS_ADT7470 is not set 830# CONFIG_SENSORS_ADT7470 is not set
588# CONFIG_SENSORS_ADT7473 is not set 831# CONFIG_SENSORS_ADT7473 is not set
832# CONFIG_SENSORS_AMS is not set
589# CONFIG_SENSORS_ATXP1 is not set 833# CONFIG_SENSORS_ATXP1 is not set
590# CONFIG_SENSORS_DS1621 is not set 834# CONFIG_SENSORS_DS1621 is not set
835# CONFIG_SENSORS_I5K_AMB is not set
591# CONFIG_SENSORS_F71805F is not set 836# CONFIG_SENSORS_F71805F is not set
592# CONFIG_SENSORS_F71882FG is not set 837# CONFIG_SENSORS_F71882FG is not set
593# CONFIG_SENSORS_F75375S is not set 838# CONFIG_SENSORS_F75375S is not set
@@ -609,13 +854,16 @@ CONFIG_HWMON=y
609# CONFIG_SENSORS_MAX6650 is not set 854# CONFIG_SENSORS_MAX6650 is not set
610# CONFIG_SENSORS_PC87360 is not set 855# CONFIG_SENSORS_PC87360 is not set
611# CONFIG_SENSORS_PC87427 is not set 856# CONFIG_SENSORS_PC87427 is not set
857# CONFIG_SENSORS_SIS5595 is not set
612# CONFIG_SENSORS_DME1737 is not set 858# CONFIG_SENSORS_DME1737 is not set
613# CONFIG_SENSORS_SMSC47M1 is not set 859# CONFIG_SENSORS_SMSC47M1 is not set
614# CONFIG_SENSORS_SMSC47M192 is not set 860# CONFIG_SENSORS_SMSC47M192 is not set
615# CONFIG_SENSORS_SMSC47B397 is not set 861# CONFIG_SENSORS_SMSC47B397 is not set
616# CONFIG_SENSORS_ADS7828 is not set 862# CONFIG_SENSORS_ADS7828 is not set
617# CONFIG_SENSORS_THMC50 is not set 863# CONFIG_SENSORS_THMC50 is not set
864# CONFIG_SENSORS_VIA686A is not set
618# CONFIG_SENSORS_VT1211 is not set 865# CONFIG_SENSORS_VT1211 is not set
866# CONFIG_SENSORS_VT8231 is not set
619# CONFIG_SENSORS_W83781D is not set 867# CONFIG_SENSORS_W83781D is not set
620# CONFIG_SENSORS_W83791D is not set 868# CONFIG_SENSORS_W83791D is not set
621# CONFIG_SENSORS_W83792D is not set 869# CONFIG_SENSORS_W83792D is not set
@@ -626,6 +874,7 @@ CONFIG_HWMON=y
626# CONFIG_SENSORS_W83627EHF is not set 874# CONFIG_SENSORS_W83627EHF is not set
627# CONFIG_HWMON_DEBUG_CHIP is not set 875# CONFIG_HWMON_DEBUG_CHIP is not set
628# CONFIG_THERMAL is not set 876# CONFIG_THERMAL is not set
877# CONFIG_THERMAL_HWMON is not set
629CONFIG_WATCHDOG=y 878CONFIG_WATCHDOG=y
630# CONFIG_WATCHDOG_NOWAYOUT is not set 879# CONFIG_WATCHDOG_NOWAYOUT is not set
631 880
@@ -633,7 +882,15 @@ CONFIG_WATCHDOG=y
633# Watchdog Device Drivers 882# Watchdog Device Drivers
634# 883#
635# CONFIG_SOFT_WATCHDOG is not set 884# CONFIG_SOFT_WATCHDOG is not set
636CONFIG_83xx_WDT=y 885# CONFIG_ALIM7101_WDT is not set
886# CONFIG_8xxx_WDT is not set
887# CONFIG_WATCHDOG_RTAS is not set
888
889#
890# PCI-based Watchdog Cards
891#
892# CONFIG_PCIPCWATCHDOG is not set
893# CONFIG_WDTPCI is not set
637 894
638# 895#
639# Sonics Silicon Backplane 896# Sonics Silicon Backplane
@@ -644,8 +901,10 @@ CONFIG_SSB_POSSIBLE=y
644# 901#
645# Multifunction device drivers 902# Multifunction device drivers
646# 903#
904# CONFIG_MFD_CORE is not set
647# CONFIG_MFD_SM501 is not set 905# CONFIG_MFD_SM501 is not set
648# CONFIG_HTC_PASIC3 is not set 906# CONFIG_HTC_PASIC3 is not set
907# CONFIG_MFD_TMIO is not set
649 908
650# 909#
651# Multimedia devices 910# Multimedia devices
@@ -666,6 +925,8 @@ CONFIG_DAB=y
666# 925#
667# Graphics support 926# Graphics support
668# 927#
928# CONFIG_AGP is not set
929# CONFIG_DRM is not set
669# CONFIG_VGASTATE is not set 930# CONFIG_VGASTATE is not set
670CONFIG_VIDEO_OUTPUT_CONTROL=m 931CONFIG_VIDEO_OUTPUT_CONTROL=m
671# CONFIG_FB is not set 932# CONFIG_FB is not set
@@ -675,10 +936,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
675# Display device support 936# Display device support
676# 937#
677# CONFIG_DISPLAY_SUPPORT is not set 938# CONFIG_DISPLAY_SUPPORT is not set
678
679#
680# Sound
681#
682# CONFIG_SOUND is not set 939# CONFIG_SOUND is not set
683CONFIG_HID_SUPPORT=y 940CONFIG_HID_SUPPORT=y
684CONFIG_HID=y 941CONFIG_HID=y
@@ -686,13 +943,17 @@ CONFIG_HID=y
686# CONFIG_HIDRAW is not set 943# CONFIG_HIDRAW is not set
687CONFIG_USB_SUPPORT=y 944CONFIG_USB_SUPPORT=y
688CONFIG_USB_ARCH_HAS_HCD=y 945CONFIG_USB_ARCH_HAS_HCD=y
689# CONFIG_USB_ARCH_HAS_OHCI is not set 946CONFIG_USB_ARCH_HAS_OHCI=y
690CONFIG_USB_ARCH_HAS_EHCI=y 947CONFIG_USB_ARCH_HAS_EHCI=y
691# CONFIG_USB is not set 948# CONFIG_USB is not set
692# CONFIG_USB_OTG_WHITELIST is not set 949# CONFIG_USB_OTG_WHITELIST is not set
693# CONFIG_USB_OTG_BLACKLIST_HUB is not set 950# CONFIG_USB_OTG_BLACKLIST_HUB is not set
694 951
695# 952#
953# Enable Host or Gadget support to see Inventra options
954#
955
956#
696# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 957# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
697# 958#
698# CONFIG_USB_GADGET is not set 959# CONFIG_USB_GADGET is not set
@@ -700,6 +961,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
700# CONFIG_MEMSTICK is not set 961# CONFIG_MEMSTICK is not set
701# CONFIG_NEW_LEDS is not set 962# CONFIG_NEW_LEDS is not set
702# CONFIG_ACCESSIBILITY is not set 963# CONFIG_ACCESSIBILITY is not set
964# CONFIG_INFINIBAND is not set
703# CONFIG_EDAC is not set 965# CONFIG_EDAC is not set
704# CONFIG_RTC_CLASS is not set 966# CONFIG_RTC_CLASS is not set
705# CONFIG_DMADEVICES is not set 967# CONFIG_DMADEVICES is not set
@@ -769,6 +1031,7 @@ CONFIG_TMPFS=y
769# CONFIG_CRAMFS is not set 1031# CONFIG_CRAMFS is not set
770# CONFIG_VXFS_FS is not set 1032# CONFIG_VXFS_FS is not set
771# CONFIG_MINIX_FS is not set 1033# CONFIG_MINIX_FS is not set
1034# CONFIG_OMFS_FS is not set
772# CONFIG_HPFS_FS is not set 1035# CONFIG_HPFS_FS is not set
773# CONFIG_QNX4FS_FS is not set 1036# CONFIG_QNX4FS_FS is not set
774# CONFIG_ROMFS_FS is not set 1037# CONFIG_ROMFS_FS is not set
@@ -779,14 +1042,13 @@ CONFIG_NFS_FS=y
779CONFIG_NFS_V3=y 1042CONFIG_NFS_V3=y
780# CONFIG_NFS_V3_ACL is not set 1043# CONFIG_NFS_V3_ACL is not set
781CONFIG_NFS_V4=y 1044CONFIG_NFS_V4=y
782# CONFIG_NFSD is not set
783CONFIG_ROOT_NFS=y 1045CONFIG_ROOT_NFS=y
1046# CONFIG_NFSD is not set
784CONFIG_LOCKD=y 1047CONFIG_LOCKD=y
785CONFIG_LOCKD_V4=y 1048CONFIG_LOCKD_V4=y
786CONFIG_NFS_COMMON=y 1049CONFIG_NFS_COMMON=y
787CONFIG_SUNRPC=y 1050CONFIG_SUNRPC=y
788CONFIG_SUNRPC_GSS=y 1051CONFIG_SUNRPC_GSS=y
789# CONFIG_SUNRPC_BIND34 is not set
790CONFIG_RPCSEC_GSS_KRB5=y 1052CONFIG_RPCSEC_GSS_KRB5=y
791# CONFIG_RPCSEC_GSS_SPKM3 is not set 1053# CONFIG_RPCSEC_GSS_SPKM3 is not set
792# CONFIG_SMB_FS is not set 1054# CONFIG_SMB_FS is not set
@@ -826,6 +1088,7 @@ CONFIG_BITREVERSE=y
826# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1088# CONFIG_GENERIC_FIND_FIRST_BIT is not set
827# CONFIG_CRC_CCITT is not set 1089# CONFIG_CRC_CCITT is not set
828# CONFIG_CRC16 is not set 1090# CONFIG_CRC16 is not set
1091CONFIG_CRC_T10DIF=y
829# CONFIG_CRC_ITU_T is not set 1092# CONFIG_CRC_ITU_T is not set
830CONFIG_CRC32=y 1093CONFIG_CRC32=y
831# CONFIG_CRC7 is not set 1094# CONFIG_CRC7 is not set
@@ -849,8 +1112,18 @@ CONFIG_FRAME_WARN=1024
849# CONFIG_HEADERS_CHECK is not set 1112# CONFIG_HEADERS_CHECK is not set
850# CONFIG_DEBUG_KERNEL is not set 1113# CONFIG_DEBUG_KERNEL is not set
851# CONFIG_DEBUG_BUGVERBOSE is not set 1114# CONFIG_DEBUG_BUGVERBOSE is not set
1115# CONFIG_DEBUG_MEMORY_INIT is not set
1116# CONFIG_LATENCYTOP is not set
1117CONFIG_SYSCTL_SYSCALL_CHECK=y
1118CONFIG_HAVE_FTRACE=y
1119CONFIG_HAVE_DYNAMIC_FTRACE=y
1120# CONFIG_FTRACE is not set
1121# CONFIG_SCHED_TRACER is not set
1122# CONFIG_CONTEXT_SWITCH_TRACER is not set
852# CONFIG_SAMPLES is not set 1123# CONFIG_SAMPLES is not set
1124CONFIG_HAVE_ARCH_KGDB=y
853# CONFIG_IRQSTACKS is not set 1125# CONFIG_IRQSTACKS is not set
1126# CONFIG_BOOTX_TEXT is not set
854# CONFIG_PPC_EARLY_DEBUG is not set 1127# CONFIG_PPC_EARLY_DEBUG is not set
855 1128
856# 1129#
@@ -904,6 +1177,10 @@ CONFIG_CRYPTO_PCBC=m
904# CONFIG_CRYPTO_MD4 is not set 1177# CONFIG_CRYPTO_MD4 is not set
905CONFIG_CRYPTO_MD5=y 1178CONFIG_CRYPTO_MD5=y
906# CONFIG_CRYPTO_MICHAEL_MIC is not set 1179# CONFIG_CRYPTO_MICHAEL_MIC is not set
1180# CONFIG_CRYPTO_RMD128 is not set
1181# CONFIG_CRYPTO_RMD160 is not set
1182# CONFIG_CRYPTO_RMD256 is not set
1183# CONFIG_CRYPTO_RMD320 is not set
907# CONFIG_CRYPTO_SHA1 is not set 1184# CONFIG_CRYPTO_SHA1 is not set
908# CONFIG_CRYPTO_SHA256 is not set 1185# CONFIG_CRYPTO_SHA256 is not set
909# CONFIG_CRYPTO_SHA512 is not set 1186# CONFIG_CRYPTO_SHA512 is not set
@@ -935,5 +1212,7 @@ CONFIG_CRYPTO_DES=y
935# CONFIG_CRYPTO_DEFLATE is not set 1212# CONFIG_CRYPTO_DEFLATE is not set
936# CONFIG_CRYPTO_LZO is not set 1213# CONFIG_CRYPTO_LZO is not set
937CONFIG_CRYPTO_HW=y 1214CONFIG_CRYPTO_HW=y
1215# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1216# CONFIG_CRYPTO_DEV_TALITOS is not set
938# CONFIG_PPC_CLOCK is not set 1217# CONFIG_PPC_CLOCK is not set
939# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig b/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
index 0d448556f53a..e8d2d691d26c 100644
--- a/arch/powerpc/configs/83xx/mpc837x_rdb_defconfig
+++ b/arch/powerpc/configs/83xx/mpc837x_rdb_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Tue Jun 10 09:17:12 2008 4# Thu Aug 21 00:52:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,13 +93,13 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 98CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 99CONFIG_PRINTK=y
96CONFIG_BUG=y 100CONFIG_BUG=y
97CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 103CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 105CONFIG_FUTEX=y
@@ -112,10 +117,16 @@ CONFIG_SLAB=y
112# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -126,12 +137,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 137# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 138# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 139# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 140CONFIG_KMOD=y
130CONFIG_BLOCK=y 141CONFIG_BLOCK=y
131# CONFIG_LBD is not set 142# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 143# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 144# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
135 147
136# 148#
137# IO Schedulers 149# IO Schedulers
@@ -150,37 +162,49 @@ CONFIG_CLASSIC_RCU=y
150# 162#
151# Platform support 163# Platform support
152# 164#
153# CONFIG_PPC_MULTIPLATFORM is not set 165CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 166CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 167CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 168# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 169# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 170# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 172# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 173# CONFIG_PPC_CELL_NATIVE is not set
174# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 175# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 176CONFIG_PPC_83xx=y
163# CONFIG_MPC831x_RDB is not set 177# CONFIG_MPC831x_RDB is not set
164# CONFIG_MPC832x_MDS is not set 178# CONFIG_MPC832x_MDS is not set
165# CONFIG_MPC832x_RDB is not set 179# CONFIG_MPC832x_RDB is not set
166# CONFIG_MPC834x_MDS is not set 180# CONFIG_MPC834x_MDS is not set
167# CONFIG_MPC834x_ITX is not set 181# CONFIG_MPC834x_ITX is not set
168# CONFIG_MPC836x_MDS is not set 182# CONFIG_MPC836x_MDS is not set
183# CONFIG_MPC836x_RDK is not set
169# CONFIG_MPC837x_MDS is not set 184# CONFIG_MPC837x_MDS is not set
170CONFIG_MPC837x_RDB=y 185CONFIG_MPC837x_RDB=y
171# CONFIG_SBC834x is not set 186# CONFIG_SBC834x is not set
187# CONFIG_ASP834x is not set
172CONFIG_PPC_MPC837x=y 188CONFIG_PPC_MPC837x=y
189# CONFIG_PPC_86xx is not set
190# CONFIG_EMBEDDED6xx is not set
191CONFIG_PPC_NATIVE=y
192# CONFIG_UDBG_RTAS_CONSOLE is not set
173CONFIG_IPIC=y 193CONFIG_IPIC=y
174# CONFIG_MPIC is not set 194CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 195# CONFIG_MPIC_WEIRD is not set
176# CONFIG_PPC_I8259 is not set 196CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 197CONFIG_PPC_RTAS=y
198# CONFIG_RTAS_ERROR_LOGGING is not set
199CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 200# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 201CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 202# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 203# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 204# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 205# CONFIG_CPU_FREQ is not set
206# CONFIG_PPC601_SYNC_FIX is not set
207# CONFIG_TAU is not set
184# CONFIG_FSL_ULI1575 is not set 208# CONFIG_FSL_ULI1575 is not set
185 209
186# 210#
@@ -206,6 +230,7 @@ CONFIG_BINFMT_ELF=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 231CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 232CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
233# CONFIG_KEXEC is not set
209CONFIG_ARCH_FLATMEM_ENABLE=y 234CONFIG_ARCH_FLATMEM_ENABLE=y
210CONFIG_ARCH_POPULATES_NODE_MAP=y 235CONFIG_ARCH_POPULATES_NODE_MAP=y
211CONFIG_SELECT_MEMORY_MODEL=y 236CONFIG_SELECT_MEMORY_MODEL=y
@@ -218,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 243# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246CONFIG_MIGRATION=y
221# CONFIG_RESOURCES_64BIT is not set 247# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -225,6 +251,7 @@ CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11 251CONFIG_FORCE_MAX_ZONEORDER=11
226CONFIG_PROC_DEVICETREE=y 252CONFIG_PROC_DEVICETREE=y
227# CONFIG_CMDLINE_BOOL is not set 253# CONFIG_CMDLINE_BOOL is not set
254CONFIG_EXTRA_TARGETS=""
228# CONFIG_PM is not set 255# CONFIG_PM is not set
229CONFIG_SECCOMP=y 256CONFIG_SECCOMP=y
230CONFIG_ISA_DMA_API=y 257CONFIG_ISA_DMA_API=y
@@ -232,15 +259,22 @@ CONFIG_ISA_DMA_API=y
232# 259#
233# Bus options 260# Bus options
234# 261#
262# CONFIG_ISA is not set
235CONFIG_ZONE_DMA=y 263CONFIG_ZONE_DMA=y
236CONFIG_GENERIC_ISA_DMA=y 264CONFIG_GENERIC_ISA_DMA=y
237CONFIG_PPC_INDIRECT_PCI=y 265CONFIG_PPC_INDIRECT_PCI=y
238CONFIG_FSL_SOC=y 266CONFIG_FSL_SOC=y
239# CONFIG_PCI is not set 267CONFIG_FSL_PCI=y
240# CONFIG_PCI_DOMAINS is not set 268CONFIG_PPC_PCI_CHOICE=y
241# CONFIG_PCI_SYSCALL is not set 269CONFIG_PCI=y
242# CONFIG_ARCH_SUPPORTS_MSI is not set 270CONFIG_PCI_DOMAINS=y
271CONFIG_PCI_SYSCALL=y
272# CONFIG_PCIEPORTBUS is not set
273CONFIG_ARCH_SUPPORTS_MSI=y
274# CONFIG_PCI_MSI is not set
275CONFIG_PCI_LEGACY=y
243# CONFIG_PCCARD is not set 276# CONFIG_PCCARD is not set
277# CONFIG_HOTPLUG_PCI is not set
244# CONFIG_HAS_RAPIDIO is not set 278# CONFIG_HAS_RAPIDIO is not set
245 279
246# 280#
@@ -256,10 +290,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
256CONFIG_KERNEL_START=0xc0000000 290CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 291CONFIG_PHYSICAL_START=0x00000000
258CONFIG_TASK_SIZE=0xc0000000 292CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 293CONFIG_NET=y
264 294
265# 295#
@@ -355,10 +385,16 @@ CONFIG_OF_I2C=y
355# CONFIG_PARPORT is not set 385# CONFIG_PARPORT is not set
356CONFIG_BLK_DEV=y 386CONFIG_BLK_DEV=y
357# CONFIG_BLK_DEV_FD is not set 387# CONFIG_BLK_DEV_FD is not set
388# CONFIG_MAC_FLOPPY is not set
389# CONFIG_BLK_CPQ_DA is not set
390# CONFIG_BLK_CPQ_CISS_DA is not set
391# CONFIG_BLK_DEV_DAC960 is not set
392# CONFIG_BLK_DEV_UMEM is not set
358# CONFIG_BLK_DEV_COW_COMMON is not set 393# CONFIG_BLK_DEV_COW_COMMON is not set
359CONFIG_BLK_DEV_LOOP=y 394CONFIG_BLK_DEV_LOOP=y
360# CONFIG_BLK_DEV_CRYPTOLOOP is not set 395# CONFIG_BLK_DEV_CRYPTOLOOP is not set
361# CONFIG_BLK_DEV_NBD is not set 396# CONFIG_BLK_DEV_NBD is not set
397# CONFIG_BLK_DEV_SX8 is not set
362# CONFIG_BLK_DEV_UB is not set 398# CONFIG_BLK_DEV_UB is not set
363CONFIG_BLK_DEV_RAM=y 399CONFIG_BLK_DEV_RAM=y
364CONFIG_BLK_DEV_RAM_COUNT=16 400CONFIG_BLK_DEV_RAM_COUNT=16
@@ -366,9 +402,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
366# CONFIG_BLK_DEV_XIP is not set 402# CONFIG_BLK_DEV_XIP is not set
367# CONFIG_CDROM_PKTCDVD is not set 403# CONFIG_CDROM_PKTCDVD is not set
368# CONFIG_ATA_OVER_ETH is not set 404# CONFIG_ATA_OVER_ETH is not set
405# CONFIG_BLK_DEV_HD is not set
369CONFIG_MISC_DEVICES=y 406CONFIG_MISC_DEVICES=y
407# CONFIG_PHANTOM is not set
370# CONFIG_EEPROM_93CX6 is not set 408# CONFIG_EEPROM_93CX6 is not set
409# CONFIG_SGI_IOC4 is not set
410# CONFIG_TIFM_CORE is not set
371# CONFIG_ENCLOSURE_SERVICES is not set 411# CONFIG_ENCLOSURE_SERVICES is not set
412# CONFIG_HP_ILO is not set
372CONFIG_HAVE_IDE=y 413CONFIG_HAVE_IDE=y
373# CONFIG_IDE is not set 414# CONFIG_IDE is not set
374 415
@@ -411,14 +452,106 @@ CONFIG_SCSI_WAIT_SCAN=m
411# CONFIG_SCSI_SRP_ATTRS is not set 452# CONFIG_SCSI_SRP_ATTRS is not set
412CONFIG_SCSI_LOWLEVEL=y 453CONFIG_SCSI_LOWLEVEL=y
413# CONFIG_ISCSI_TCP is not set 454# CONFIG_ISCSI_TCP is not set
455# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
456# CONFIG_SCSI_3W_9XXX is not set
457# CONFIG_SCSI_ACARD is not set
458# CONFIG_SCSI_AACRAID is not set
459# CONFIG_SCSI_AIC7XXX is not set
460# CONFIG_SCSI_AIC7XXX_OLD is not set
461# CONFIG_SCSI_AIC79XX is not set
462# CONFIG_SCSI_AIC94XX is not set
463# CONFIG_SCSI_DPT_I2O is not set
464# CONFIG_SCSI_ADVANSYS is not set
465# CONFIG_SCSI_ARCMSR is not set
466# CONFIG_MEGARAID_NEWGEN is not set
467# CONFIG_MEGARAID_LEGACY is not set
468# CONFIG_MEGARAID_SAS is not set
469# CONFIG_SCSI_HPTIOP is not set
470# CONFIG_SCSI_BUSLOGIC is not set
471# CONFIG_SCSI_DMX3191D is not set
472# CONFIG_SCSI_EATA is not set
473# CONFIG_SCSI_FUTURE_DOMAIN is not set
474# CONFIG_SCSI_GDTH is not set
475# CONFIG_SCSI_IPS is not set
476# CONFIG_SCSI_INITIO is not set
477# CONFIG_SCSI_INIA100 is not set
478# CONFIG_SCSI_MVSAS is not set
479# CONFIG_SCSI_STEX is not set
480# CONFIG_SCSI_SYM53C8XX_2 is not set
481# CONFIG_SCSI_IPR is not set
482# CONFIG_SCSI_QLOGIC_1280 is not set
483# CONFIG_SCSI_QLA_FC is not set
484# CONFIG_SCSI_QLA_ISCSI is not set
485# CONFIG_SCSI_LPFC is not set
486# CONFIG_SCSI_DC395x is not set
487# CONFIG_SCSI_DC390T is not set
488# CONFIG_SCSI_NSP32 is not set
414# CONFIG_SCSI_DEBUG is not set 489# CONFIG_SCSI_DEBUG is not set
490# CONFIG_SCSI_MESH is not set
491# CONFIG_SCSI_MAC53C94 is not set
492# CONFIG_SCSI_SRP is not set
493# CONFIG_SCSI_DH is not set
415CONFIG_ATA=y 494CONFIG_ATA=y
416# CONFIG_ATA_NONSTANDARD is not set 495# CONFIG_ATA_NONSTANDARD is not set
417CONFIG_SATA_PMP=y 496CONFIG_SATA_PMP=y
497# CONFIG_SATA_AHCI is not set
498# CONFIG_SATA_SIL24 is not set
418CONFIG_SATA_FSL=y 499CONFIG_SATA_FSL=y
419CONFIG_ATA_SFF=y 500CONFIG_ATA_SFF=y
501# CONFIG_SATA_SVW is not set
502# CONFIG_ATA_PIIX is not set
420# CONFIG_SATA_MV is not set 503# CONFIG_SATA_MV is not set
504# CONFIG_SATA_NV is not set
505# CONFIG_PDC_ADMA is not set
506# CONFIG_SATA_QSTOR is not set
507# CONFIG_SATA_PROMISE is not set
508# CONFIG_SATA_SX4 is not set
509# CONFIG_SATA_SIL is not set
510# CONFIG_SATA_SIS is not set
511# CONFIG_SATA_ULI is not set
512# CONFIG_SATA_VIA is not set
513# CONFIG_SATA_VITESSE is not set
514# CONFIG_SATA_INIC162X is not set
515# CONFIG_PATA_ALI is not set
516# CONFIG_PATA_AMD is not set
517# CONFIG_PATA_ARTOP is not set
518# CONFIG_PATA_ATIIXP is not set
519# CONFIG_PATA_CMD640_PCI is not set
520# CONFIG_PATA_CMD64X is not set
521# CONFIG_PATA_CS5520 is not set
522# CONFIG_PATA_CS5530 is not set
523# CONFIG_PATA_CYPRESS is not set
524# CONFIG_PATA_EFAR is not set
525# CONFIG_ATA_GENERIC is not set
526# CONFIG_PATA_HPT366 is not set
527# CONFIG_PATA_HPT37X is not set
528# CONFIG_PATA_HPT3X2N is not set
529# CONFIG_PATA_HPT3X3 is not set
530# CONFIG_PATA_IT821X is not set
531# CONFIG_PATA_IT8213 is not set
532# CONFIG_PATA_JMICRON is not set
533# CONFIG_PATA_TRIFLEX is not set
534# CONFIG_PATA_MARVELL is not set
535# CONFIG_PATA_MPIIX is not set
536# CONFIG_PATA_OLDPIIX is not set
537# CONFIG_PATA_NETCELL is not set
538# CONFIG_PATA_NINJA32 is not set
539# CONFIG_PATA_NS87410 is not set
540# CONFIG_PATA_NS87415 is not set
541# CONFIG_PATA_OPTI is not set
542# CONFIG_PATA_OPTIDMA is not set
543# CONFIG_PATA_PDC_OLD is not set
544# CONFIG_PATA_RADISYS is not set
545# CONFIG_PATA_RZ1000 is not set
546# CONFIG_PATA_SC1200 is not set
547# CONFIG_PATA_SERVERWORKS is not set
548# CONFIG_PATA_PDC2027X is not set
549# CONFIG_PATA_SIL680 is not set
550# CONFIG_PATA_SIS is not set
551# CONFIG_PATA_VIA is not set
552# CONFIG_PATA_WINBOND is not set
421# CONFIG_PATA_PLATFORM is not set 553# CONFIG_PATA_PLATFORM is not set
554# CONFIG_PATA_SCH is not set
422CONFIG_MD=y 555CONFIG_MD=y
423CONFIG_BLK_DEV_MD=y 556CONFIG_BLK_DEV_MD=y
424# CONFIG_MD_LINEAR is not set 557# CONFIG_MD_LINEAR is not set
@@ -430,15 +563,27 @@ CONFIG_MD_RAID5_RESHAPE=y
430# CONFIG_MD_MULTIPATH is not set 563# CONFIG_MD_MULTIPATH is not set
431# CONFIG_MD_FAULTY is not set 564# CONFIG_MD_FAULTY is not set
432# CONFIG_BLK_DEV_DM is not set 565# CONFIG_BLK_DEV_DM is not set
566# CONFIG_FUSION is not set
567
568#
569# IEEE 1394 (FireWire) support
570#
571
572#
573# Enable only one of the two stacks, unless you know what you are doing
574#
575# CONFIG_FIREWIRE is not set
576# CONFIG_IEEE1394 is not set
577# CONFIG_I2O is not set
433# CONFIG_MACINTOSH_DRIVERS is not set 578# CONFIG_MACINTOSH_DRIVERS is not set
434CONFIG_NETDEVICES=y 579CONFIG_NETDEVICES=y
435# CONFIG_NETDEVICES_MULTIQUEUE is not set
436# CONFIG_DUMMY is not set 580# CONFIG_DUMMY is not set
437# CONFIG_BONDING is not set 581# CONFIG_BONDING is not set
438# CONFIG_MACVLAN is not set 582# CONFIG_MACVLAN is not set
439# CONFIG_EQUALIZER is not set 583# CONFIG_EQUALIZER is not set
440# CONFIG_TUN is not set 584# CONFIG_TUN is not set
441# CONFIG_VETH is not set 585# CONFIG_VETH is not set
586# CONFIG_ARCNET is not set
442CONFIG_PHYLIB=y 587CONFIG_PHYLIB=y
443 588
444# 589#
@@ -458,16 +603,44 @@ CONFIG_FIXED_PHY=y
458# CONFIG_MDIO_BITBANG is not set 603# CONFIG_MDIO_BITBANG is not set
459CONFIG_NET_ETHERNET=y 604CONFIG_NET_ETHERNET=y
460CONFIG_MII=y 605CONFIG_MII=y
606# CONFIG_MACE is not set
607# CONFIG_BMAC is not set
608# CONFIG_HAPPYMEAL is not set
609# CONFIG_SUNGEM is not set
610# CONFIG_CASSINI is not set
611# CONFIG_NET_VENDOR_3COM is not set
612# CONFIG_NET_TULIP is not set
613# CONFIG_HP100 is not set
461# CONFIG_IBM_NEW_EMAC_ZMII is not set 614# CONFIG_IBM_NEW_EMAC_ZMII is not set
462# CONFIG_IBM_NEW_EMAC_RGMII is not set 615# CONFIG_IBM_NEW_EMAC_RGMII is not set
463# CONFIG_IBM_NEW_EMAC_TAH is not set 616# CONFIG_IBM_NEW_EMAC_TAH is not set
464# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 617# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
618# CONFIG_NET_PCI is not set
465# CONFIG_B44 is not set 619# CONFIG_B44 is not set
466CONFIG_NETDEV_1000=y 620CONFIG_NETDEV_1000=y
467# CONFIG_E1000E_ENABLED is not set 621# CONFIG_ACENIC is not set
622# CONFIG_DL2K is not set
623# CONFIG_E1000 is not set
624# CONFIG_E1000E is not set
625# CONFIG_IP1000 is not set
626# CONFIG_IGB is not set
627# CONFIG_NS83820 is not set
628# CONFIG_HAMACHI is not set
629# CONFIG_YELLOWFIN is not set
630# CONFIG_R8169 is not set
631# CONFIG_SIS190 is not set
632# CONFIG_SKGE is not set
633# CONFIG_SKY2 is not set
634# CONFIG_VIA_VELOCITY is not set
635# CONFIG_TIGON3 is not set
636# CONFIG_BNX2 is not set
468CONFIG_GIANFAR=y 637CONFIG_GIANFAR=y
469CONFIG_GFAR_NAPI=y 638# CONFIG_MV643XX_ETH is not set
639# CONFIG_QLA3XXX is not set
640# CONFIG_ATL1 is not set
641# CONFIG_ATL1E is not set
470# CONFIG_NETDEV_10000 is not set 642# CONFIG_NETDEV_10000 is not set
643# CONFIG_TR is not set
471 644
472# 645#
473# Wireless LAN 646# Wireless LAN
@@ -485,8 +658,11 @@ CONFIG_GFAR_NAPI=y
485# CONFIG_USB_RTL8150 is not set 658# CONFIG_USB_RTL8150 is not set
486# CONFIG_USB_USBNET is not set 659# CONFIG_USB_USBNET is not set
487# CONFIG_WAN is not set 660# CONFIG_WAN is not set
661# CONFIG_FDDI is not set
662# CONFIG_HIPPI is not set
488# CONFIG_PPP is not set 663# CONFIG_PPP is not set
489# CONFIG_SLIP is not set 664# CONFIG_SLIP is not set
665# CONFIG_NET_FC is not set
490# CONFIG_NETCONSOLE is not set 666# CONFIG_NETCONSOLE is not set
491# CONFIG_NETPOLL is not set 667# CONFIG_NETPOLL is not set
492# CONFIG_NET_POLL_CONTROLLER is not set 668# CONFIG_NET_POLL_CONTROLLER is not set
@@ -530,12 +706,14 @@ CONFIG_INPUT=y
530# CONFIG_VT is not set 706# CONFIG_VT is not set
531CONFIG_DEVKMEM=y 707CONFIG_DEVKMEM=y
532# CONFIG_SERIAL_NONSTANDARD is not set 708# CONFIG_SERIAL_NONSTANDARD is not set
709# CONFIG_NOZOMI is not set
533 710
534# 711#
535# Serial drivers 712# Serial drivers
536# 713#
537CONFIG_SERIAL_8250=y 714CONFIG_SERIAL_8250=y
538CONFIG_SERIAL_8250_CONSOLE=y 715CONFIG_SERIAL_8250_CONSOLE=y
716CONFIG_SERIAL_8250_PCI=y
539CONFIG_SERIAL_8250_NR_UARTS=4 717CONFIG_SERIAL_8250_NR_UARTS=4
540CONFIG_SERIAL_8250_RUNTIME_UARTS=4 718CONFIG_SERIAL_8250_RUNTIME_UARTS=4
541# CONFIG_SERIAL_8250_EXTENDED is not set 719# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -546,41 +724,91 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
546# CONFIG_SERIAL_UARTLITE is not set 724# CONFIG_SERIAL_UARTLITE is not set
547CONFIG_SERIAL_CORE=y 725CONFIG_SERIAL_CORE=y
548CONFIG_SERIAL_CORE_CONSOLE=y 726CONFIG_SERIAL_CORE_CONSOLE=y
727# CONFIG_SERIAL_PMACZILOG is not set
728# CONFIG_SERIAL_JSM is not set
549# CONFIG_SERIAL_OF_PLATFORM is not set 729# CONFIG_SERIAL_OF_PLATFORM is not set
550CONFIG_UNIX98_PTYS=y 730CONFIG_UNIX98_PTYS=y
551CONFIG_LEGACY_PTYS=y 731CONFIG_LEGACY_PTYS=y
552CONFIG_LEGACY_PTY_COUNT=256 732CONFIG_LEGACY_PTY_COUNT=256
733# CONFIG_BRIQ_PANEL is not set
734# CONFIG_HVC_RTAS is not set
553# CONFIG_IPMI_HANDLER is not set 735# CONFIG_IPMI_HANDLER is not set
554# CONFIG_HW_RANDOM is not set 736# CONFIG_HW_RANDOM is not set
555# CONFIG_NVRAM is not set 737# CONFIG_NVRAM is not set
556CONFIG_GEN_RTC=y 738CONFIG_GEN_RTC=y
557# CONFIG_GEN_RTC_X is not set 739# CONFIG_GEN_RTC_X is not set
558# CONFIG_R3964 is not set 740# CONFIG_R3964 is not set
741# CONFIG_APPLICOM is not set
559# CONFIG_RAW_DRIVER is not set 742# CONFIG_RAW_DRIVER is not set
560# CONFIG_TCG_TPM is not set 743# CONFIG_TCG_TPM is not set
744CONFIG_DEVPORT=y
561CONFIG_I2C=y 745CONFIG_I2C=y
562CONFIG_I2C_BOARDINFO=y 746CONFIG_I2C_BOARDINFO=y
563CONFIG_I2C_CHARDEV=y 747CONFIG_I2C_CHARDEV=y
748CONFIG_I2C_HELPER_AUTO=y
564 749
565# 750#
566# I2C Hardware Bus support 751# I2C Hardware Bus support
567# 752#
753
754#
755# PC SMBus host controller drivers
756#
757# CONFIG_I2C_ALI1535 is not set
758# CONFIG_I2C_ALI1563 is not set
759# CONFIG_I2C_ALI15X3 is not set
760# CONFIG_I2C_AMD756 is not set
761# CONFIG_I2C_AMD8111 is not set
762# CONFIG_I2C_I801 is not set
763# CONFIG_I2C_ISCH is not set
764# CONFIG_I2C_PIIX4 is not set
765# CONFIG_I2C_NFORCE2 is not set
766# CONFIG_I2C_SIS5595 is not set
767# CONFIG_I2C_SIS630 is not set
768# CONFIG_I2C_SIS96X is not set
769# CONFIG_I2C_VIA is not set
770# CONFIG_I2C_VIAPRO is not set
771
772#
773# Mac SMBus host controller drivers
774#
775# CONFIG_I2C_HYDRA is not set
776CONFIG_I2C_POWERMAC=y
777
778#
779# I2C system bus drivers (mostly embedded / system-on-chip)
780#
568CONFIG_I2C_MPC=y 781CONFIG_I2C_MPC=y
569# CONFIG_I2C_OCORES is not set 782# CONFIG_I2C_OCORES is not set
570# CONFIG_I2C_PARPORT_LIGHT is not set
571# CONFIG_I2C_SIMTEC is not set 783# CONFIG_I2C_SIMTEC is not set
784
785#
786# External I2C/SMBus adapter drivers
787#
788# CONFIG_I2C_PARPORT_LIGHT is not set
572# CONFIG_I2C_TAOS_EVM is not set 789# CONFIG_I2C_TAOS_EVM is not set
573# CONFIG_I2C_STUB is not set
574# CONFIG_I2C_TINY_USB is not set 790# CONFIG_I2C_TINY_USB is not set
791
792#
793# Graphics adapter I2C/DDC channel drivers
794#
795# CONFIG_I2C_VOODOO3 is not set
796
797#
798# Other I2C/SMBus bus drivers
799#
575# CONFIG_I2C_PCA_PLATFORM is not set 800# CONFIG_I2C_PCA_PLATFORM is not set
801# CONFIG_I2C_STUB is not set
576 802
577# 803#
578# Miscellaneous I2C Chip support 804# Miscellaneous I2C Chip support
579# 805#
580# CONFIG_DS1682 is not set 806# CONFIG_DS1682 is not set
807# CONFIG_AT24 is not set
581# CONFIG_SENSORS_EEPROM is not set 808# CONFIG_SENSORS_EEPROM is not set
582# CONFIG_SENSORS_PCF8574 is not set 809# CONFIG_SENSORS_PCF8574 is not set
583# CONFIG_PCF8575 is not set 810# CONFIG_PCF8575 is not set
811# CONFIG_SENSORS_PCA9539 is not set
584# CONFIG_SENSORS_PCF8591 is not set 812# CONFIG_SENSORS_PCF8591 is not set
585# CONFIG_SENSORS_MAX6875 is not set 813# CONFIG_SENSORS_MAX6875 is not set
586# CONFIG_SENSORS_TSL2550 is not set 814# CONFIG_SENSORS_TSL2550 is not set
@@ -589,10 +817,13 @@ CONFIG_I2C_MPC=y
589# CONFIG_I2C_DEBUG_BUS is not set 817# CONFIG_I2C_DEBUG_BUS is not set
590# CONFIG_I2C_DEBUG_CHIP is not set 818# CONFIG_I2C_DEBUG_CHIP is not set
591# CONFIG_SPI is not set 819# CONFIG_SPI is not set
820CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
821# CONFIG_GPIOLIB is not set
592# CONFIG_W1 is not set 822# CONFIG_W1 is not set
593# CONFIG_POWER_SUPPLY is not set 823# CONFIG_POWER_SUPPLY is not set
594CONFIG_HWMON=y 824CONFIG_HWMON=y
595# CONFIG_HWMON_VID is not set 825# CONFIG_HWMON_VID is not set
826# CONFIG_SENSORS_AD7414 is not set
596# CONFIG_SENSORS_AD7418 is not set 827# CONFIG_SENSORS_AD7418 is not set
597# CONFIG_SENSORS_ADM1021 is not set 828# CONFIG_SENSORS_ADM1021 is not set
598# CONFIG_SENSORS_ADM1025 is not set 829# CONFIG_SENSORS_ADM1025 is not set
@@ -602,8 +833,10 @@ CONFIG_HWMON=y
602# CONFIG_SENSORS_ADM9240 is not set 833# CONFIG_SENSORS_ADM9240 is not set
603# CONFIG_SENSORS_ADT7470 is not set 834# CONFIG_SENSORS_ADT7470 is not set
604# CONFIG_SENSORS_ADT7473 is not set 835# CONFIG_SENSORS_ADT7473 is not set
836# CONFIG_SENSORS_AMS is not set
605# CONFIG_SENSORS_ATXP1 is not set 837# CONFIG_SENSORS_ATXP1 is not set
606# CONFIG_SENSORS_DS1621 is not set 838# CONFIG_SENSORS_DS1621 is not set
839# CONFIG_SENSORS_I5K_AMB is not set
607# CONFIG_SENSORS_F71805F is not set 840# CONFIG_SENSORS_F71805F is not set
608# CONFIG_SENSORS_F71882FG is not set 841# CONFIG_SENSORS_F71882FG is not set
609# CONFIG_SENSORS_F75375S is not set 842# CONFIG_SENSORS_F75375S is not set
@@ -625,13 +858,16 @@ CONFIG_HWMON=y
625# CONFIG_SENSORS_MAX6650 is not set 858# CONFIG_SENSORS_MAX6650 is not set
626# CONFIG_SENSORS_PC87360 is not set 859# CONFIG_SENSORS_PC87360 is not set
627# CONFIG_SENSORS_PC87427 is not set 860# CONFIG_SENSORS_PC87427 is not set
861# CONFIG_SENSORS_SIS5595 is not set
628# CONFIG_SENSORS_DME1737 is not set 862# CONFIG_SENSORS_DME1737 is not set
629# CONFIG_SENSORS_SMSC47M1 is not set 863# CONFIG_SENSORS_SMSC47M1 is not set
630# CONFIG_SENSORS_SMSC47M192 is not set 864# CONFIG_SENSORS_SMSC47M192 is not set
631# CONFIG_SENSORS_SMSC47B397 is not set 865# CONFIG_SENSORS_SMSC47B397 is not set
632# CONFIG_SENSORS_ADS7828 is not set 866# CONFIG_SENSORS_ADS7828 is not set
633# CONFIG_SENSORS_THMC50 is not set 867# CONFIG_SENSORS_THMC50 is not set
868# CONFIG_SENSORS_VIA686A is not set
634# CONFIG_SENSORS_VT1211 is not set 869# CONFIG_SENSORS_VT1211 is not set
870# CONFIG_SENSORS_VT8231 is not set
635# CONFIG_SENSORS_W83781D is not set 871# CONFIG_SENSORS_W83781D is not set
636# CONFIG_SENSORS_W83791D is not set 872# CONFIG_SENSORS_W83791D is not set
637# CONFIG_SENSORS_W83792D is not set 873# CONFIG_SENSORS_W83792D is not set
@@ -642,6 +878,7 @@ CONFIG_HWMON=y
642# CONFIG_SENSORS_W83627EHF is not set 878# CONFIG_SENSORS_W83627EHF is not set
643# CONFIG_HWMON_DEBUG_CHIP is not set 879# CONFIG_HWMON_DEBUG_CHIP is not set
644# CONFIG_THERMAL is not set 880# CONFIG_THERMAL is not set
881# CONFIG_THERMAL_HWMON is not set
645CONFIG_WATCHDOG=y 882CONFIG_WATCHDOG=y
646# CONFIG_WATCHDOG_NOWAYOUT is not set 883# CONFIG_WATCHDOG_NOWAYOUT is not set
647 884
@@ -649,7 +886,15 @@ CONFIG_WATCHDOG=y
649# Watchdog Device Drivers 886# Watchdog Device Drivers
650# 887#
651# CONFIG_SOFT_WATCHDOG is not set 888# CONFIG_SOFT_WATCHDOG is not set
652CONFIG_83xx_WDT=y 889# CONFIG_ALIM7101_WDT is not set
890# CONFIG_8xxx_WDT is not set
891# CONFIG_WATCHDOG_RTAS is not set
892
893#
894# PCI-based Watchdog Cards
895#
896# CONFIG_PCIPCWATCHDOG is not set
897# CONFIG_WDTPCI is not set
653 898
654# 899#
655# USB-based Watchdog Cards 900# USB-based Watchdog Cards
@@ -665,8 +910,10 @@ CONFIG_SSB_POSSIBLE=y
665# 910#
666# Multifunction device drivers 911# Multifunction device drivers
667# 912#
913# CONFIG_MFD_CORE is not set
668# CONFIG_MFD_SM501 is not set 914# CONFIG_MFD_SM501 is not set
669# CONFIG_HTC_PASIC3 is not set 915# CONFIG_HTC_PASIC3 is not set
916# CONFIG_MFD_TMIO is not set
670 917
671# 918#
672# Multimedia devices 919# Multimedia devices
@@ -688,6 +935,8 @@ CONFIG_DAB=y
688# 935#
689# Graphics support 936# Graphics support
690# 937#
938# CONFIG_AGP is not set
939# CONFIG_DRM is not set
691# CONFIG_VGASTATE is not set 940# CONFIG_VGASTATE is not set
692CONFIG_VIDEO_OUTPUT_CONTROL=m 941CONFIG_VIDEO_OUTPUT_CONTROL=m
693# CONFIG_FB is not set 942# CONFIG_FB is not set
@@ -697,10 +946,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
697# Display device support 946# Display device support
698# 947#
699# CONFIG_DISPLAY_SUPPORT is not set 948# CONFIG_DISPLAY_SUPPORT is not set
700
701#
702# Sound
703#
704# CONFIG_SOUND is not set 949# CONFIG_SOUND is not set
705CONFIG_HID_SUPPORT=y 950CONFIG_HID_SUPPORT=y
706CONFIG_HID=y 951CONFIG_HID=y
@@ -716,7 +961,7 @@ CONFIG_USB_HID=y
716# CONFIG_USB_HIDDEV is not set 961# CONFIG_USB_HIDDEV is not set
717CONFIG_USB_SUPPORT=y 962CONFIG_USB_SUPPORT=y
718CONFIG_USB_ARCH_HAS_HCD=y 963CONFIG_USB_ARCH_HAS_HCD=y
719# CONFIG_USB_ARCH_HAS_OHCI is not set 964CONFIG_USB_ARCH_HAS_OHCI=y
720CONFIG_USB_ARCH_HAS_EHCI=y 965CONFIG_USB_ARCH_HAS_EHCI=y
721CONFIG_USB=y 966CONFIG_USB=y
722# CONFIG_USB_DEBUG is not set 967# CONFIG_USB_DEBUG is not set
@@ -731,6 +976,7 @@ CONFIG_USB_DEVICE_CLASS=y
731# CONFIG_USB_OTG is not set 976# CONFIG_USB_OTG is not set
732# CONFIG_USB_OTG_WHITELIST is not set 977# CONFIG_USB_OTG_WHITELIST is not set
733# CONFIG_USB_OTG_BLACKLIST_HUB is not set 978# CONFIG_USB_OTG_BLACKLIST_HUB is not set
979CONFIG_USB_MON=y
734 980
735# 981#
736# USB Host Controller Drivers 982# USB Host Controller Drivers
@@ -743,6 +989,8 @@ CONFIG_USB_EHCI_FSL=y
743CONFIG_USB_EHCI_HCD_PPC_OF=y 989CONFIG_USB_EHCI_HCD_PPC_OF=y
744# CONFIG_USB_ISP116X_HCD is not set 990# CONFIG_USB_ISP116X_HCD is not set
745# CONFIG_USB_ISP1760_HCD is not set 991# CONFIG_USB_ISP1760_HCD is not set
992# CONFIG_USB_OHCI_HCD is not set
993# CONFIG_USB_UHCI_HCD is not set
746# CONFIG_USB_SL811_HCD is not set 994# CONFIG_USB_SL811_HCD is not set
747# CONFIG_USB_R8A66597_HCD is not set 995# CONFIG_USB_R8A66597_HCD is not set
748 996
@@ -768,7 +1016,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
768# 1016#
769# CONFIG_USB_MDC800 is not set 1017# CONFIG_USB_MDC800 is not set
770# CONFIG_USB_MICROTEK is not set 1018# CONFIG_USB_MICROTEK is not set
771CONFIG_USB_MON=y
772 1019
773# 1020#
774# USB port drivers 1021# USB port drivers
@@ -781,7 +1028,6 @@ CONFIG_USB_MON=y
781# CONFIG_USB_EMI62 is not set 1028# CONFIG_USB_EMI62 is not set
782# CONFIG_USB_EMI26 is not set 1029# CONFIG_USB_EMI26 is not set
783# CONFIG_USB_ADUTUX is not set 1030# CONFIG_USB_ADUTUX is not set
784# CONFIG_USB_AUERSWALD is not set
785# CONFIG_USB_RIO500 is not set 1031# CONFIG_USB_RIO500 is not set
786# CONFIG_USB_LEGOTOWER is not set 1032# CONFIG_USB_LEGOTOWER is not set
787# CONFIG_USB_LCD is not set 1033# CONFIG_USB_LCD is not set
@@ -803,6 +1049,7 @@ CONFIG_USB_MON=y
803# CONFIG_MEMSTICK is not set 1049# CONFIG_MEMSTICK is not set
804# CONFIG_NEW_LEDS is not set 1050# CONFIG_NEW_LEDS is not set
805# CONFIG_ACCESSIBILITY is not set 1051# CONFIG_ACCESSIBILITY is not set
1052# CONFIG_INFINIBAND is not set
806# CONFIG_EDAC is not set 1053# CONFIG_EDAC is not set
807# CONFIG_RTC_CLASS is not set 1054# CONFIG_RTC_CLASS is not set
808# CONFIG_DMADEVICES is not set 1055# CONFIG_DMADEVICES is not set
@@ -872,6 +1119,7 @@ CONFIG_TMPFS=y
872# CONFIG_CRAMFS is not set 1119# CONFIG_CRAMFS is not set
873# CONFIG_VXFS_FS is not set 1120# CONFIG_VXFS_FS is not set
874# CONFIG_MINIX_FS is not set 1121# CONFIG_MINIX_FS is not set
1122# CONFIG_OMFS_FS is not set
875# CONFIG_HPFS_FS is not set 1123# CONFIG_HPFS_FS is not set
876# CONFIG_QNX4FS_FS is not set 1124# CONFIG_QNX4FS_FS is not set
877# CONFIG_ROMFS_FS is not set 1125# CONFIG_ROMFS_FS is not set
@@ -882,14 +1130,13 @@ CONFIG_NFS_FS=y
882CONFIG_NFS_V3=y 1130CONFIG_NFS_V3=y
883# CONFIG_NFS_V3_ACL is not set 1131# CONFIG_NFS_V3_ACL is not set
884CONFIG_NFS_V4=y 1132CONFIG_NFS_V4=y
885# CONFIG_NFSD is not set
886CONFIG_ROOT_NFS=y 1133CONFIG_ROOT_NFS=y
1134# CONFIG_NFSD is not set
887CONFIG_LOCKD=y 1135CONFIG_LOCKD=y
888CONFIG_LOCKD_V4=y 1136CONFIG_LOCKD_V4=y
889CONFIG_NFS_COMMON=y 1137CONFIG_NFS_COMMON=y
890CONFIG_SUNRPC=y 1138CONFIG_SUNRPC=y
891CONFIG_SUNRPC_GSS=y 1139CONFIG_SUNRPC_GSS=y
892# CONFIG_SUNRPC_BIND34 is not set
893CONFIG_RPCSEC_GSS_KRB5=y 1140CONFIG_RPCSEC_GSS_KRB5=y
894# CONFIG_RPCSEC_GSS_SPKM3 is not set 1141# CONFIG_RPCSEC_GSS_SPKM3 is not set
895# CONFIG_SMB_FS is not set 1142# CONFIG_SMB_FS is not set
@@ -929,6 +1176,7 @@ CONFIG_BITREVERSE=y
929# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1176# CONFIG_GENERIC_FIND_FIRST_BIT is not set
930# CONFIG_CRC_CCITT is not set 1177# CONFIG_CRC_CCITT is not set
931# CONFIG_CRC16 is not set 1178# CONFIG_CRC16 is not set
1179CONFIG_CRC_T10DIF=y
932# CONFIG_CRC_ITU_T is not set 1180# CONFIG_CRC_ITU_T is not set
933CONFIG_CRC32=y 1181CONFIG_CRC32=y
934# CONFIG_CRC7 is not set 1182# CONFIG_CRC7 is not set
@@ -952,8 +1200,18 @@ CONFIG_FRAME_WARN=1024
952# CONFIG_HEADERS_CHECK is not set 1200# CONFIG_HEADERS_CHECK is not set
953# CONFIG_DEBUG_KERNEL is not set 1201# CONFIG_DEBUG_KERNEL is not set
954# CONFIG_DEBUG_BUGVERBOSE is not set 1202# CONFIG_DEBUG_BUGVERBOSE is not set
1203# CONFIG_DEBUG_MEMORY_INIT is not set
1204# CONFIG_LATENCYTOP is not set
1205CONFIG_SYSCTL_SYSCALL_CHECK=y
1206CONFIG_HAVE_FTRACE=y
1207CONFIG_HAVE_DYNAMIC_FTRACE=y
1208# CONFIG_FTRACE is not set
1209# CONFIG_SCHED_TRACER is not set
1210# CONFIG_CONTEXT_SWITCH_TRACER is not set
955# CONFIG_SAMPLES is not set 1211# CONFIG_SAMPLES is not set
1212CONFIG_HAVE_ARCH_KGDB=y
956# CONFIG_IRQSTACKS is not set 1213# CONFIG_IRQSTACKS is not set
1214# CONFIG_BOOTX_TEXT is not set
957# CONFIG_PPC_EARLY_DEBUG is not set 1215# CONFIG_PPC_EARLY_DEBUG is not set
958 1216
959# 1217#
@@ -1011,6 +1269,10 @@ CONFIG_CRYPTO_PCBC=m
1011# CONFIG_CRYPTO_MD4 is not set 1269# CONFIG_CRYPTO_MD4 is not set
1012CONFIG_CRYPTO_MD5=y 1270CONFIG_CRYPTO_MD5=y
1013# CONFIG_CRYPTO_MICHAEL_MIC is not set 1271# CONFIG_CRYPTO_MICHAEL_MIC is not set
1272# CONFIG_CRYPTO_RMD128 is not set
1273# CONFIG_CRYPTO_RMD160 is not set
1274# CONFIG_CRYPTO_RMD256 is not set
1275# CONFIG_CRYPTO_RMD320 is not set
1014# CONFIG_CRYPTO_SHA1 is not set 1276# CONFIG_CRYPTO_SHA1 is not set
1015# CONFIG_CRYPTO_SHA256 is not set 1277# CONFIG_CRYPTO_SHA256 is not set
1016# CONFIG_CRYPTO_SHA512 is not set 1278# CONFIG_CRYPTO_SHA512 is not set
@@ -1042,5 +1304,7 @@ CONFIG_CRYPTO_DES=y
1042# CONFIG_CRYPTO_DEFLATE is not set 1304# CONFIG_CRYPTO_DEFLATE is not set
1043# CONFIG_CRYPTO_LZO is not set 1305# CONFIG_CRYPTO_LZO is not set
1044CONFIG_CRYPTO_HW=y 1306CONFIG_CRYPTO_HW=y
1307# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1308# CONFIG_CRYPTO_DEV_TALITOS is not set
1045# CONFIG_PPC_CLOCK is not set 1309# CONFIG_PPC_CLOCK is not set
1046# CONFIG_VIRTUALIZATION is not set 1310# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/83xx/sbc834x_defconfig b/arch/powerpc/configs/83xx/sbc834x_defconfig
index 1752918be2c1..9245a67da200 100644
--- a/arch/powerpc/configs/83xx/sbc834x_defconfig
+++ b/arch/powerpc/configs/83xx/sbc834x_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:30 2008 4# Thu Aug 21 00:52:27 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -51,6 +53,9 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
58CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 59# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 60# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 61CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,12 +93,12 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92# CONFIG_KALLSYMS is not set 96# CONFIG_KALLSYMS is not set
93CONFIG_HOTPLUG=y 97CONFIG_HOTPLUG=y
94CONFIG_PRINTK=y 98CONFIG_PRINTK=y
95CONFIG_BUG=y 99CONFIG_BUG=y
96CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101CONFIG_PCSPKR_PLATFORM=y
97CONFIG_COMPAT_BRK=y 102CONFIG_COMPAT_BRK=y
98CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 104CONFIG_FUTEX=y
@@ -110,10 +115,16 @@ CONFIG_SLAB=y
110# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y
115# CONFIG_HAVE_DMA_ATTRS is not set 123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
116CONFIG_PROC_PAGE_MONITOR=y 126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
117CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 130# CONFIG_TINY_SHMEM is not set
@@ -124,12 +135,13 @@ CONFIG_MODULE_UNLOAD=y
124# CONFIG_MODULE_FORCE_UNLOAD is not set 135# CONFIG_MODULE_FORCE_UNLOAD is not set
125# CONFIG_MODVERSIONS is not set 136# CONFIG_MODVERSIONS is not set
126# CONFIG_MODULE_SRCVERSION_ALL is not set 137# CONFIG_MODULE_SRCVERSION_ALL is not set
127# CONFIG_KMOD is not set 138CONFIG_KMOD=y
128CONFIG_BLOCK=y 139CONFIG_BLOCK=y
129# CONFIG_LBD is not set 140# CONFIG_LBD is not set
130# CONFIG_BLK_DEV_IO_TRACE is not set 141# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set 142# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 143# CONFIG_BLK_DEV_BSG is not set
144# CONFIG_BLK_DEV_INTEGRITY is not set
133 145
134# 146#
135# IO Schedulers 147# IO Schedulers
@@ -148,37 +160,49 @@ CONFIG_CLASSIC_RCU=y
148# 160#
149# Platform support 161# Platform support
150# 162#
151# CONFIG_PPC_MULTIPLATFORM is not set 163CONFIG_PPC_MULTIPLATFORM=y
152# CONFIG_PPC_82xx is not set 164CONFIG_CLASSIC32=y
153CONFIG_PPC_83xx=y 165CONFIG_PPC_CHRP=y
154# CONFIG_PPC_86xx is not set 166# CONFIG_MPC5121_ADS is not set
155# CONFIG_PPC_MPC512x is not set 167# CONFIG_MPC5121_GENERIC is not set
156# CONFIG_PPC_MPC5121 is not set 168# CONFIG_PPC_MPC52xx is not set
169CONFIG_PPC_PMAC=y
157# CONFIG_PPC_CELL is not set 170# CONFIG_PPC_CELL is not set
158# CONFIG_PPC_CELL_NATIVE is not set 171# CONFIG_PPC_CELL_NATIVE is not set
172# CONFIG_PPC_82xx is not set
159# CONFIG_PQ2ADS is not set 173# CONFIG_PQ2ADS is not set
160CONFIG_MPC83xx=y 174CONFIG_PPC_83xx=y
161# CONFIG_MPC831x_RDB is not set 175# CONFIG_MPC831x_RDB is not set
162# CONFIG_MPC832x_MDS is not set 176# CONFIG_MPC832x_MDS is not set
163# CONFIG_MPC832x_RDB is not set 177# CONFIG_MPC832x_RDB is not set
164# CONFIG_MPC834x_MDS is not set 178# CONFIG_MPC834x_MDS is not set
165# CONFIG_MPC834x_ITX is not set 179# CONFIG_MPC834x_ITX is not set
166# CONFIG_MPC836x_MDS is not set 180# CONFIG_MPC836x_MDS is not set
181# CONFIG_MPC836x_RDK is not set
167# CONFIG_MPC837x_MDS is not set 182# CONFIG_MPC837x_MDS is not set
168# CONFIG_MPC837x_RDB is not set 183# CONFIG_MPC837x_RDB is not set
169CONFIG_SBC834x=y 184CONFIG_SBC834x=y
185# CONFIG_ASP834x is not set
170CONFIG_PPC_MPC834x=y 186CONFIG_PPC_MPC834x=y
187# CONFIG_PPC_86xx is not set
188# CONFIG_EMBEDDED6xx is not set
189CONFIG_PPC_NATIVE=y
190# CONFIG_UDBG_RTAS_CONSOLE is not set
171CONFIG_IPIC=y 191CONFIG_IPIC=y
172# CONFIG_MPIC is not set 192CONFIG_MPIC=y
173# CONFIG_MPIC_WEIRD is not set 193# CONFIG_MPIC_WEIRD is not set
174# CONFIG_PPC_I8259 is not set 194CONFIG_PPC_I8259=y
175# CONFIG_PPC_RTAS is not set 195CONFIG_PPC_RTAS=y
196# CONFIG_RTAS_ERROR_LOGGING is not set
197CONFIG_RTAS_PROC=y
176# CONFIG_MMIO_NVRAM is not set 198# CONFIG_MMIO_NVRAM is not set
177# CONFIG_PPC_MPC106 is not set 199CONFIG_PPC_MPC106=y
178# CONFIG_PPC_970_NAP is not set 200# CONFIG_PPC_970_NAP is not set
179# CONFIG_PPC_INDIRECT_IO is not set 201# CONFIG_PPC_INDIRECT_IO is not set
180# CONFIG_GENERIC_IOMAP is not set 202# CONFIG_GENERIC_IOMAP is not set
181# CONFIG_CPU_FREQ is not set 203# CONFIG_CPU_FREQ is not set
204# CONFIG_PPC601_SYNC_FIX is not set
205# CONFIG_TAU is not set
182# CONFIG_FSL_ULI1575 is not set 206# CONFIG_FSL_ULI1575 is not set
183 207
184# 208#
@@ -204,6 +228,7 @@ CONFIG_BINFMT_ELF=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 228CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
205CONFIG_ARCH_HAS_WALK_MEMORY=y 229CONFIG_ARCH_HAS_WALK_MEMORY=y
206CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 230CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
231# CONFIG_KEXEC is not set
207CONFIG_ARCH_FLATMEM_ENABLE=y 232CONFIG_ARCH_FLATMEM_ENABLE=y
208CONFIG_ARCH_POPULATES_NODE_MAP=y 233CONFIG_ARCH_POPULATES_NODE_MAP=y
209CONFIG_SELECT_MEMORY_MODEL=y 234CONFIG_SELECT_MEMORY_MODEL=y
@@ -216,6 +241,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 241# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 242CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 243CONFIG_SPLIT_PTLOCK_CPUS=4
244CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 245# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 246CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 247CONFIG_BOUNCE=y
@@ -223,6 +249,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 249CONFIG_FORCE_MAX_ZONEORDER=11
224CONFIG_PROC_DEVICETREE=y 250CONFIG_PROC_DEVICETREE=y
225# CONFIG_CMDLINE_BOOL is not set 251# CONFIG_CMDLINE_BOOL is not set
252CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 253# CONFIG_PM is not set
227CONFIG_SECCOMP=y 254CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 255CONFIG_ISA_DMA_API=y
@@ -230,15 +257,22 @@ CONFIG_ISA_DMA_API=y
230# 257#
231# Bus options 258# Bus options
232# 259#
260# CONFIG_ISA is not set
233CONFIG_ZONE_DMA=y 261CONFIG_ZONE_DMA=y
234CONFIG_GENERIC_ISA_DMA=y 262CONFIG_GENERIC_ISA_DMA=y
235CONFIG_PPC_INDIRECT_PCI=y 263CONFIG_PPC_INDIRECT_PCI=y
236CONFIG_FSL_SOC=y 264CONFIG_FSL_SOC=y
237# CONFIG_PCI is not set 265CONFIG_FSL_PCI=y
238# CONFIG_PCI_DOMAINS is not set 266CONFIG_PPC_PCI_CHOICE=y
239# CONFIG_PCI_SYSCALL is not set 267CONFIG_PCI=y
240# CONFIG_ARCH_SUPPORTS_MSI is not set 268CONFIG_PCI_DOMAINS=y
269CONFIG_PCI_SYSCALL=y
270# CONFIG_PCIEPORTBUS is not set
271CONFIG_ARCH_SUPPORTS_MSI=y
272# CONFIG_PCI_MSI is not set
273CONFIG_PCI_LEGACY=y
241# CONFIG_PCCARD is not set 274# CONFIG_PCCARD is not set
275# CONFIG_HOTPLUG_PCI is not set
242# CONFIG_HAS_RAPIDIO is not set 276# CONFIG_HAS_RAPIDIO is not set
243 277
244# 278#
@@ -254,10 +288,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
254CONFIG_KERNEL_START=0xc0000000 288CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000 289CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0xc0000000 290CONFIG_TASK_SIZE=0xc0000000
257
258#
259# Networking
260#
261CONFIG_NET=y 291CONFIG_NET=y
262 292
263# 293#
@@ -358,19 +388,30 @@ CONFIG_OF_I2C=y
358# CONFIG_PARPORT is not set 388# CONFIG_PARPORT is not set
359CONFIG_BLK_DEV=y 389CONFIG_BLK_DEV=y
360# CONFIG_BLK_DEV_FD is not set 390# CONFIG_BLK_DEV_FD is not set
391# CONFIG_MAC_FLOPPY is not set
392# CONFIG_BLK_CPQ_DA is not set
393# CONFIG_BLK_CPQ_CISS_DA is not set
394# CONFIG_BLK_DEV_DAC960 is not set
395# CONFIG_BLK_DEV_UMEM is not set
361# CONFIG_BLK_DEV_COW_COMMON is not set 396# CONFIG_BLK_DEV_COW_COMMON is not set
362CONFIG_BLK_DEV_LOOP=y 397CONFIG_BLK_DEV_LOOP=y
363# CONFIG_BLK_DEV_CRYPTOLOOP is not set 398# CONFIG_BLK_DEV_CRYPTOLOOP is not set
364# CONFIG_BLK_DEV_NBD is not set 399# CONFIG_BLK_DEV_NBD is not set
400# CONFIG_BLK_DEV_SX8 is not set
365CONFIG_BLK_DEV_RAM=y 401CONFIG_BLK_DEV_RAM=y
366CONFIG_BLK_DEV_RAM_COUNT=16 402CONFIG_BLK_DEV_RAM_COUNT=16
367CONFIG_BLK_DEV_RAM_SIZE=32768 403CONFIG_BLK_DEV_RAM_SIZE=32768
368# CONFIG_BLK_DEV_XIP is not set 404# CONFIG_BLK_DEV_XIP is not set
369# CONFIG_CDROM_PKTCDVD is not set 405# CONFIG_CDROM_PKTCDVD is not set
370# CONFIG_ATA_OVER_ETH is not set 406# CONFIG_ATA_OVER_ETH is not set
407# CONFIG_BLK_DEV_HD is not set
371CONFIG_MISC_DEVICES=y 408CONFIG_MISC_DEVICES=y
409# CONFIG_PHANTOM is not set
372# CONFIG_EEPROM_93CX6 is not set 410# CONFIG_EEPROM_93CX6 is not set
411# CONFIG_SGI_IOC4 is not set
412# CONFIG_TIFM_CORE is not set
373# CONFIG_ENCLOSURE_SERVICES is not set 413# CONFIG_ENCLOSURE_SERVICES is not set
414# CONFIG_HP_ILO is not set
374CONFIG_HAVE_IDE=y 415CONFIG_HAVE_IDE=y
375# CONFIG_IDE is not set 416# CONFIG_IDE is not set
376 417
@@ -383,15 +424,27 @@ CONFIG_HAVE_IDE=y
383# CONFIG_SCSI_NETLINK is not set 424# CONFIG_SCSI_NETLINK is not set
384# CONFIG_ATA is not set 425# CONFIG_ATA is not set
385# CONFIG_MD is not set 426# CONFIG_MD is not set
427# CONFIG_FUSION is not set
428
429#
430# IEEE 1394 (FireWire) support
431#
432
433#
434# Enable only one of the two stacks, unless you know what you are doing
435#
436# CONFIG_FIREWIRE is not set
437# CONFIG_IEEE1394 is not set
438# CONFIG_I2O is not set
386# CONFIG_MACINTOSH_DRIVERS is not set 439# CONFIG_MACINTOSH_DRIVERS is not set
387CONFIG_NETDEVICES=y 440CONFIG_NETDEVICES=y
388# CONFIG_NETDEVICES_MULTIQUEUE is not set
389# CONFIG_DUMMY is not set 441# CONFIG_DUMMY is not set
390# CONFIG_BONDING is not set 442# CONFIG_BONDING is not set
391# CONFIG_MACVLAN is not set 443# CONFIG_MACVLAN is not set
392# CONFIG_EQUALIZER is not set 444# CONFIG_EQUALIZER is not set
393# CONFIG_TUN is not set 445# CONFIG_TUN is not set
394# CONFIG_VETH is not set 446# CONFIG_VETH is not set
447# CONFIG_ARCNET is not set
395CONFIG_PHYLIB=y 448CONFIG_PHYLIB=y
396 449
397# 450#
@@ -411,16 +464,44 @@ CONFIG_BROADCOM_PHY=y
411# CONFIG_MDIO_BITBANG is not set 464# CONFIG_MDIO_BITBANG is not set
412CONFIG_NET_ETHERNET=y 465CONFIG_NET_ETHERNET=y
413CONFIG_MII=y 466CONFIG_MII=y
467# CONFIG_MACE is not set
468# CONFIG_BMAC is not set
469# CONFIG_HAPPYMEAL is not set
470# CONFIG_SUNGEM is not set
471# CONFIG_CASSINI is not set
472# CONFIG_NET_VENDOR_3COM is not set
473# CONFIG_NET_TULIP is not set
474# CONFIG_HP100 is not set
414# CONFIG_IBM_NEW_EMAC_ZMII is not set 475# CONFIG_IBM_NEW_EMAC_ZMII is not set
415# CONFIG_IBM_NEW_EMAC_RGMII is not set 476# CONFIG_IBM_NEW_EMAC_RGMII is not set
416# CONFIG_IBM_NEW_EMAC_TAH is not set 477# CONFIG_IBM_NEW_EMAC_TAH is not set
417# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 478# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
479# CONFIG_NET_PCI is not set
418# CONFIG_B44 is not set 480# CONFIG_B44 is not set
419CONFIG_NETDEV_1000=y 481CONFIG_NETDEV_1000=y
420# CONFIG_E1000E_ENABLED is not set 482# CONFIG_ACENIC is not set
483# CONFIG_DL2K is not set
484# CONFIG_E1000 is not set
485# CONFIG_E1000E is not set
486# CONFIG_IP1000 is not set
487# CONFIG_IGB is not set
488# CONFIG_NS83820 is not set
489# CONFIG_HAMACHI is not set
490# CONFIG_YELLOWFIN is not set
491# CONFIG_R8169 is not set
492# CONFIG_SIS190 is not set
493# CONFIG_SKGE is not set
494# CONFIG_SKY2 is not set
495# CONFIG_VIA_VELOCITY is not set
496# CONFIG_TIGON3 is not set
497# CONFIG_BNX2 is not set
421CONFIG_GIANFAR=y 498CONFIG_GIANFAR=y
422# CONFIG_GFAR_NAPI is not set 499# CONFIG_MV643XX_ETH is not set
500# CONFIG_QLA3XXX is not set
501# CONFIG_ATL1 is not set
502# CONFIG_ATL1E is not set
423# CONFIG_NETDEV_10000 is not set 503# CONFIG_NETDEV_10000 is not set
504# CONFIG_TR is not set
424 505
425# 506#
426# Wireless LAN 507# Wireless LAN
@@ -429,6 +510,8 @@ CONFIG_GIANFAR=y
429# CONFIG_WLAN_80211 is not set 510# CONFIG_WLAN_80211 is not set
430# CONFIG_IWLWIFI_LEDS is not set 511# CONFIG_IWLWIFI_LEDS is not set
431# CONFIG_WAN is not set 512# CONFIG_WAN is not set
513# CONFIG_FDDI is not set
514# CONFIG_HIPPI is not set
432# CONFIG_PPP is not set 515# CONFIG_PPP is not set
433# CONFIG_SLIP is not set 516# CONFIG_SLIP is not set
434# CONFIG_NETCONSOLE is not set 517# CONFIG_NETCONSOLE is not set
@@ -474,12 +557,14 @@ CONFIG_INPUT=y
474# CONFIG_VT is not set 557# CONFIG_VT is not set
475CONFIG_DEVKMEM=y 558CONFIG_DEVKMEM=y
476# CONFIG_SERIAL_NONSTANDARD is not set 559# CONFIG_SERIAL_NONSTANDARD is not set
560# CONFIG_NOZOMI is not set
477 561
478# 562#
479# Serial drivers 563# Serial drivers
480# 564#
481CONFIG_SERIAL_8250=y 565CONFIG_SERIAL_8250=y
482CONFIG_SERIAL_8250_CONSOLE=y 566CONFIG_SERIAL_8250_CONSOLE=y
567CONFIG_SERIAL_8250_PCI=y
483CONFIG_SERIAL_8250_NR_UARTS=4 568CONFIG_SERIAL_8250_NR_UARTS=4
484CONFIG_SERIAL_8250_RUNTIME_UARTS=4 569CONFIG_SERIAL_8250_RUNTIME_UARTS=4
485# CONFIG_SERIAL_8250_EXTENDED is not set 570# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -490,40 +575,90 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
490# CONFIG_SERIAL_UARTLITE is not set 575# CONFIG_SERIAL_UARTLITE is not set
491CONFIG_SERIAL_CORE=y 576CONFIG_SERIAL_CORE=y
492CONFIG_SERIAL_CORE_CONSOLE=y 577CONFIG_SERIAL_CORE_CONSOLE=y
578# CONFIG_SERIAL_PMACZILOG is not set
579# CONFIG_SERIAL_JSM is not set
493# CONFIG_SERIAL_OF_PLATFORM is not set 580# CONFIG_SERIAL_OF_PLATFORM is not set
494CONFIG_UNIX98_PTYS=y 581CONFIG_UNIX98_PTYS=y
495CONFIG_LEGACY_PTYS=y 582CONFIG_LEGACY_PTYS=y
496CONFIG_LEGACY_PTY_COUNT=256 583CONFIG_LEGACY_PTY_COUNT=256
584# CONFIG_BRIQ_PANEL is not set
585# CONFIG_HVC_RTAS is not set
497# CONFIG_IPMI_HANDLER is not set 586# CONFIG_IPMI_HANDLER is not set
498# CONFIG_HW_RANDOM is not set 587# CONFIG_HW_RANDOM is not set
499# CONFIG_NVRAM is not set 588# CONFIG_NVRAM is not set
500CONFIG_GEN_RTC=y 589CONFIG_GEN_RTC=y
501# CONFIG_GEN_RTC_X is not set 590# CONFIG_GEN_RTC_X is not set
502# CONFIG_R3964 is not set 591# CONFIG_R3964 is not set
592# CONFIG_APPLICOM is not set
503# CONFIG_RAW_DRIVER is not set 593# CONFIG_RAW_DRIVER is not set
504# CONFIG_TCG_TPM is not set 594# CONFIG_TCG_TPM is not set
595CONFIG_DEVPORT=y
505CONFIG_I2C=y 596CONFIG_I2C=y
506CONFIG_I2C_BOARDINFO=y 597CONFIG_I2C_BOARDINFO=y
507CONFIG_I2C_CHARDEV=y 598CONFIG_I2C_CHARDEV=y
599CONFIG_I2C_HELPER_AUTO=y
508 600
509# 601#
510# I2C Hardware Bus support 602# I2C Hardware Bus support
511# 603#
604
605#
606# PC SMBus host controller drivers
607#
608# CONFIG_I2C_ALI1535 is not set
609# CONFIG_I2C_ALI1563 is not set
610# CONFIG_I2C_ALI15X3 is not set
611# CONFIG_I2C_AMD756 is not set
612# CONFIG_I2C_AMD8111 is not set
613# CONFIG_I2C_I801 is not set
614# CONFIG_I2C_ISCH is not set
615# CONFIG_I2C_PIIX4 is not set
616# CONFIG_I2C_NFORCE2 is not set
617# CONFIG_I2C_SIS5595 is not set
618# CONFIG_I2C_SIS630 is not set
619# CONFIG_I2C_SIS96X is not set
620# CONFIG_I2C_VIA is not set
621# CONFIG_I2C_VIAPRO is not set
622
623#
624# Mac SMBus host controller drivers
625#
626# CONFIG_I2C_HYDRA is not set
627CONFIG_I2C_POWERMAC=y
628
629#
630# I2C system bus drivers (mostly embedded / system-on-chip)
631#
512CONFIG_I2C_MPC=y 632CONFIG_I2C_MPC=y
513# CONFIG_I2C_OCORES is not set 633# CONFIG_I2C_OCORES is not set
514# CONFIG_I2C_PARPORT_LIGHT is not set
515# CONFIG_I2C_SIMTEC is not set 634# CONFIG_I2C_SIMTEC is not set
635
636#
637# External I2C/SMBus adapter drivers
638#
639# CONFIG_I2C_PARPORT_LIGHT is not set
516# CONFIG_I2C_TAOS_EVM is not set 640# CONFIG_I2C_TAOS_EVM is not set
517# CONFIG_I2C_STUB is not set 641
642#
643# Graphics adapter I2C/DDC channel drivers
644#
645# CONFIG_I2C_VOODOO3 is not set
646
647#
648# Other I2C/SMBus bus drivers
649#
518# CONFIG_I2C_PCA_PLATFORM is not set 650# CONFIG_I2C_PCA_PLATFORM is not set
651# CONFIG_I2C_STUB is not set
519 652
520# 653#
521# Miscellaneous I2C Chip support 654# Miscellaneous I2C Chip support
522# 655#
523# CONFIG_DS1682 is not set 656# CONFIG_DS1682 is not set
657# CONFIG_AT24 is not set
524# CONFIG_SENSORS_EEPROM is not set 658# CONFIG_SENSORS_EEPROM is not set
525# CONFIG_SENSORS_PCF8574 is not set 659# CONFIG_SENSORS_PCF8574 is not set
526# CONFIG_PCF8575 is not set 660# CONFIG_PCF8575 is not set
661# CONFIG_SENSORS_PCA9539 is not set
527# CONFIG_SENSORS_PCF8591 is not set 662# CONFIG_SENSORS_PCF8591 is not set
528# CONFIG_SENSORS_MAX6875 is not set 663# CONFIG_SENSORS_MAX6875 is not set
529# CONFIG_SENSORS_TSL2550 is not set 664# CONFIG_SENSORS_TSL2550 is not set
@@ -532,10 +667,13 @@ CONFIG_I2C_MPC=y
532# CONFIG_I2C_DEBUG_BUS is not set 667# CONFIG_I2C_DEBUG_BUS is not set
533# CONFIG_I2C_DEBUG_CHIP is not set 668# CONFIG_I2C_DEBUG_CHIP is not set
534# CONFIG_SPI is not set 669# CONFIG_SPI is not set
670CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
671# CONFIG_GPIOLIB is not set
535# CONFIG_W1 is not set 672# CONFIG_W1 is not set
536# CONFIG_POWER_SUPPLY is not set 673# CONFIG_POWER_SUPPLY is not set
537CONFIG_HWMON=y 674CONFIG_HWMON=y
538# CONFIG_HWMON_VID is not set 675# CONFIG_HWMON_VID is not set
676# CONFIG_SENSORS_AD7414 is not set
539# CONFIG_SENSORS_AD7418 is not set 677# CONFIG_SENSORS_AD7418 is not set
540# CONFIG_SENSORS_ADM1021 is not set 678# CONFIG_SENSORS_ADM1021 is not set
541# CONFIG_SENSORS_ADM1025 is not set 679# CONFIG_SENSORS_ADM1025 is not set
@@ -545,8 +683,10 @@ CONFIG_HWMON=y
545# CONFIG_SENSORS_ADM9240 is not set 683# CONFIG_SENSORS_ADM9240 is not set
546# CONFIG_SENSORS_ADT7470 is not set 684# CONFIG_SENSORS_ADT7470 is not set
547# CONFIG_SENSORS_ADT7473 is not set 685# CONFIG_SENSORS_ADT7473 is not set
686# CONFIG_SENSORS_AMS is not set
548# CONFIG_SENSORS_ATXP1 is not set 687# CONFIG_SENSORS_ATXP1 is not set
549# CONFIG_SENSORS_DS1621 is not set 688# CONFIG_SENSORS_DS1621 is not set
689# CONFIG_SENSORS_I5K_AMB is not set
550# CONFIG_SENSORS_F71805F is not set 690# CONFIG_SENSORS_F71805F is not set
551# CONFIG_SENSORS_F71882FG is not set 691# CONFIG_SENSORS_F71882FG is not set
552# CONFIG_SENSORS_F75375S is not set 692# CONFIG_SENSORS_F75375S is not set
@@ -568,13 +708,16 @@ CONFIG_HWMON=y
568# CONFIG_SENSORS_MAX6650 is not set 708# CONFIG_SENSORS_MAX6650 is not set
569# CONFIG_SENSORS_PC87360 is not set 709# CONFIG_SENSORS_PC87360 is not set
570# CONFIG_SENSORS_PC87427 is not set 710# CONFIG_SENSORS_PC87427 is not set
711# CONFIG_SENSORS_SIS5595 is not set
571# CONFIG_SENSORS_DME1737 is not set 712# CONFIG_SENSORS_DME1737 is not set
572# CONFIG_SENSORS_SMSC47M1 is not set 713# CONFIG_SENSORS_SMSC47M1 is not set
573# CONFIG_SENSORS_SMSC47M192 is not set 714# CONFIG_SENSORS_SMSC47M192 is not set
574# CONFIG_SENSORS_SMSC47B397 is not set 715# CONFIG_SENSORS_SMSC47B397 is not set
575# CONFIG_SENSORS_ADS7828 is not set 716# CONFIG_SENSORS_ADS7828 is not set
576# CONFIG_SENSORS_THMC50 is not set 717# CONFIG_SENSORS_THMC50 is not set
718# CONFIG_SENSORS_VIA686A is not set
577# CONFIG_SENSORS_VT1211 is not set 719# CONFIG_SENSORS_VT1211 is not set
720# CONFIG_SENSORS_VT8231 is not set
578# CONFIG_SENSORS_W83781D is not set 721# CONFIG_SENSORS_W83781D is not set
579# CONFIG_SENSORS_W83791D is not set 722# CONFIG_SENSORS_W83791D is not set
580# CONFIG_SENSORS_W83792D is not set 723# CONFIG_SENSORS_W83792D is not set
@@ -585,6 +728,7 @@ CONFIG_HWMON=y
585# CONFIG_SENSORS_W83627EHF is not set 728# CONFIG_SENSORS_W83627EHF is not set
586# CONFIG_HWMON_DEBUG_CHIP is not set 729# CONFIG_HWMON_DEBUG_CHIP is not set
587# CONFIG_THERMAL is not set 730# CONFIG_THERMAL is not set
731# CONFIG_THERMAL_HWMON is not set
588CONFIG_WATCHDOG=y 732CONFIG_WATCHDOG=y
589# CONFIG_WATCHDOG_NOWAYOUT is not set 733# CONFIG_WATCHDOG_NOWAYOUT is not set
590 734
@@ -592,7 +736,15 @@ CONFIG_WATCHDOG=y
592# Watchdog Device Drivers 736# Watchdog Device Drivers
593# 737#
594# CONFIG_SOFT_WATCHDOG is not set 738# CONFIG_SOFT_WATCHDOG is not set
595CONFIG_83xx_WDT=y 739# CONFIG_ALIM7101_WDT is not set
740# CONFIG_8xxx_WDT is not set
741# CONFIG_WATCHDOG_RTAS is not set
742
743#
744# PCI-based Watchdog Cards
745#
746# CONFIG_PCIPCWATCHDOG is not set
747# CONFIG_WDTPCI is not set
596 748
597# 749#
598# Sonics Silicon Backplane 750# Sonics Silicon Backplane
@@ -603,8 +755,10 @@ CONFIG_SSB_POSSIBLE=y
603# 755#
604# Multifunction device drivers 756# Multifunction device drivers
605# 757#
758# CONFIG_MFD_CORE is not set
606# CONFIG_MFD_SM501 is not set 759# CONFIG_MFD_SM501 is not set
607# CONFIG_HTC_PASIC3 is not set 760# CONFIG_HTC_PASIC3 is not set
761# CONFIG_MFD_TMIO is not set
608 762
609# 763#
610# Multimedia devices 764# Multimedia devices
@@ -625,6 +779,8 @@ CONFIG_SSB_POSSIBLE=y
625# 779#
626# Graphics support 780# Graphics support
627# 781#
782# CONFIG_AGP is not set
783# CONFIG_DRM is not set
628# CONFIG_VGASTATE is not set 784# CONFIG_VGASTATE is not set
629# CONFIG_VIDEO_OUTPUT_CONTROL is not set 785# CONFIG_VIDEO_OUTPUT_CONTROL is not set
630# CONFIG_FB is not set 786# CONFIG_FB is not set
@@ -634,10 +790,6 @@ CONFIG_SSB_POSSIBLE=y
634# Display device support 790# Display device support
635# 791#
636# CONFIG_DISPLAY_SUPPORT is not set 792# CONFIG_DISPLAY_SUPPORT is not set
637
638#
639# Sound
640#
641# CONFIG_SOUND is not set 793# CONFIG_SOUND is not set
642CONFIG_HID_SUPPORT=y 794CONFIG_HID_SUPPORT=y
643CONFIG_HID=y 795CONFIG_HID=y
@@ -648,6 +800,7 @@ CONFIG_HID=y
648# CONFIG_MEMSTICK is not set 800# CONFIG_MEMSTICK is not set
649# CONFIG_NEW_LEDS is not set 801# CONFIG_NEW_LEDS is not set
650# CONFIG_ACCESSIBILITY is not set 802# CONFIG_ACCESSIBILITY is not set
803# CONFIG_INFINIBAND is not set
651# CONFIG_EDAC is not set 804# CONFIG_EDAC is not set
652# CONFIG_RTC_CLASS is not set 805# CONFIG_RTC_CLASS is not set
653# CONFIG_DMADEVICES is not set 806# CONFIG_DMADEVICES is not set
@@ -710,6 +863,7 @@ CONFIG_TMPFS=y
710# CONFIG_CRAMFS is not set 863# CONFIG_CRAMFS is not set
711# CONFIG_VXFS_FS is not set 864# CONFIG_VXFS_FS is not set
712# CONFIG_MINIX_FS is not set 865# CONFIG_MINIX_FS is not set
866# CONFIG_OMFS_FS is not set
713# CONFIG_HPFS_FS is not set 867# CONFIG_HPFS_FS is not set
714# CONFIG_QNX4FS_FS is not set 868# CONFIG_QNX4FS_FS is not set
715# CONFIG_ROMFS_FS is not set 869# CONFIG_ROMFS_FS is not set
@@ -720,14 +874,13 @@ CONFIG_NFS_FS=y
720CONFIG_NFS_V3=y 874CONFIG_NFS_V3=y
721# CONFIG_NFS_V3_ACL is not set 875# CONFIG_NFS_V3_ACL is not set
722CONFIG_NFS_V4=y 876CONFIG_NFS_V4=y
723# CONFIG_NFSD is not set
724CONFIG_ROOT_NFS=y 877CONFIG_ROOT_NFS=y
878# CONFIG_NFSD is not set
725CONFIG_LOCKD=y 879CONFIG_LOCKD=y
726CONFIG_LOCKD_V4=y 880CONFIG_LOCKD_V4=y
727CONFIG_NFS_COMMON=y 881CONFIG_NFS_COMMON=y
728CONFIG_SUNRPC=y 882CONFIG_SUNRPC=y
729CONFIG_SUNRPC_GSS=y 883CONFIG_SUNRPC_GSS=y
730# CONFIG_SUNRPC_BIND34 is not set
731CONFIG_RPCSEC_GSS_KRB5=y 884CONFIG_RPCSEC_GSS_KRB5=y
732# CONFIG_RPCSEC_GSS_SPKM3 is not set 885# CONFIG_RPCSEC_GSS_SPKM3 is not set
733# CONFIG_SMB_FS is not set 886# CONFIG_SMB_FS is not set
@@ -740,6 +893,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
740# Partition Types 893# Partition Types
741# 894#
742# CONFIG_PARTITION_ADVANCED is not set 895# CONFIG_PARTITION_ADVANCED is not set
896CONFIG_MAC_PARTITION=y
743CONFIG_MSDOS_PARTITION=y 897CONFIG_MSDOS_PARTITION=y
744# CONFIG_NLS is not set 898# CONFIG_NLS is not set
745# CONFIG_DLM is not set 899# CONFIG_DLM is not set
@@ -751,6 +905,7 @@ CONFIG_BITREVERSE=y
751# CONFIG_GENERIC_FIND_FIRST_BIT is not set 905# CONFIG_GENERIC_FIND_FIRST_BIT is not set
752# CONFIG_CRC_CCITT is not set 906# CONFIG_CRC_CCITT is not set
753# CONFIG_CRC16 is not set 907# CONFIG_CRC16 is not set
908# CONFIG_CRC_T10DIF is not set
754# CONFIG_CRC_ITU_T is not set 909# CONFIG_CRC_ITU_T is not set
755CONFIG_CRC32=y 910CONFIG_CRC32=y
756# CONFIG_CRC7 is not set 911# CONFIG_CRC7 is not set
@@ -774,8 +929,18 @@ CONFIG_FRAME_WARN=1024
774# CONFIG_HEADERS_CHECK is not set 929# CONFIG_HEADERS_CHECK is not set
775# CONFIG_DEBUG_KERNEL is not set 930# CONFIG_DEBUG_KERNEL is not set
776# CONFIG_DEBUG_BUGVERBOSE is not set 931# CONFIG_DEBUG_BUGVERBOSE is not set
932# CONFIG_DEBUG_MEMORY_INIT is not set
933# CONFIG_LATENCYTOP is not set
934CONFIG_SYSCTL_SYSCALL_CHECK=y
935CONFIG_HAVE_FTRACE=y
936CONFIG_HAVE_DYNAMIC_FTRACE=y
937# CONFIG_FTRACE is not set
938# CONFIG_SCHED_TRACER is not set
939# CONFIG_CONTEXT_SWITCH_TRACER is not set
777# CONFIG_SAMPLES is not set 940# CONFIG_SAMPLES is not set
941CONFIG_HAVE_ARCH_KGDB=y
778# CONFIG_IRQSTACKS is not set 942# CONFIG_IRQSTACKS is not set
943# CONFIG_BOOTX_TEXT is not set
779# CONFIG_PPC_EARLY_DEBUG is not set 944# CONFIG_PPC_EARLY_DEBUG is not set
780 945
781# 946#
@@ -829,6 +994,10 @@ CONFIG_CRYPTO_PCBC=m
829# CONFIG_CRYPTO_MD4 is not set 994# CONFIG_CRYPTO_MD4 is not set
830CONFIG_CRYPTO_MD5=y 995CONFIG_CRYPTO_MD5=y
831# CONFIG_CRYPTO_MICHAEL_MIC is not set 996# CONFIG_CRYPTO_MICHAEL_MIC is not set
997# CONFIG_CRYPTO_RMD128 is not set
998# CONFIG_CRYPTO_RMD160 is not set
999# CONFIG_CRYPTO_RMD256 is not set
1000# CONFIG_CRYPTO_RMD320 is not set
832# CONFIG_CRYPTO_SHA1 is not set 1001# CONFIG_CRYPTO_SHA1 is not set
833# CONFIG_CRYPTO_SHA256 is not set 1002# CONFIG_CRYPTO_SHA256 is not set
834# CONFIG_CRYPTO_SHA512 is not set 1003# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/85xx/ksi8560_defconfig b/arch/powerpc/configs/85xx/ksi8560_defconfig
index b82bb042308a..8bb89f26a20d 100644
--- a/arch/powerpc/configs/85xx/ksi8560_defconfig
+++ b/arch/powerpc/configs/85xx/ksi8560_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:30 2008 4# Thu Aug 21 00:52:28 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -85,7 +88,6 @@ CONFIG_INITRAMFS_SOURCE=""
85CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
86CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
87CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
88CONFIG_SYSCTL_SYSCALL_CHECK=y
89CONFIG_KALLSYMS=y 91CONFIG_KALLSYMS=y
90# CONFIG_KALLSYMS_ALL is not set 92# CONFIG_KALLSYMS_ALL is not set
91# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -110,10 +112,16 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y
115# CONFIG_HAVE_DMA_ATTRS is not set 120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122CONFIG_HAVE_CLK=y
116CONFIG_PROC_PAGE_MONITOR=y 123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
117CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
@@ -124,6 +132,7 @@ CONFIG_BLOCK=y
124# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
125# CONFIG_LSF is not set 133# CONFIG_LSF is not set
126# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set
127 136
128# 137#
129# IO Schedulers 138# IO Schedulers
@@ -142,8 +151,6 @@ CONFIG_CLASSIC_RCU=y
142# 151#
143# Platform support 152# Platform support
144# 153#
145# CONFIG_PPC_MPC512x is not set
146# CONFIG_PPC_MPC5121 is not set
147# CONFIG_PPC_CELL is not set 154# CONFIG_PPC_CELL is not set
148# CONFIG_PPC_CELL_NATIVE is not set 155# CONFIG_PPC_CELL_NATIVE is not set
149# CONFIG_PQ2ADS is not set 156# CONFIG_PQ2ADS is not set
@@ -152,11 +159,13 @@ CONFIG_MPC85xx=y
152# CONFIG_MPC8560_ADS is not set 159# CONFIG_MPC8560_ADS is not set
153# CONFIG_MPC85xx_CDS is not set 160# CONFIG_MPC85xx_CDS is not set
154# CONFIG_MPC85xx_MDS is not set 161# CONFIG_MPC85xx_MDS is not set
162# CONFIG_MPC8536_DS is not set
155# CONFIG_MPC85xx_DS is not set 163# CONFIG_MPC85xx_DS is not set
156CONFIG_KSI8560=y 164CONFIG_KSI8560=y
157# CONFIG_STX_GP3 is not set 165# CONFIG_STX_GP3 is not set
158# CONFIG_TQM8540 is not set 166# CONFIG_TQM8540 is not set
159# CONFIG_TQM8541 is not set 167# CONFIG_TQM8541 is not set
168# CONFIG_TQM8548 is not set
160# CONFIG_TQM8555 is not set 169# CONFIG_TQM8555 is not set
161# CONFIG_TQM8560 is not set 170# CONFIG_TQM8560 is not set
162# CONFIG_SBC8548 is not set 171# CONFIG_SBC8548 is not set
@@ -173,7 +182,6 @@ CONFIG_MPIC=y
173# CONFIG_GENERIC_IOMAP is not set 182# CONFIG_GENERIC_IOMAP is not set
174# CONFIG_CPU_FREQ is not set 183# CONFIG_CPU_FREQ is not set
175CONFIG_CPM2=y 184CONFIG_CPM2=y
176CONFIG_PPC_CPM_NEW_BINDING=y
177# CONFIG_FSL_ULI1575 is not set 185# CONFIG_FSL_ULI1575 is not set
178CONFIG_CPM=y 186CONFIG_CPM=y
179 187
@@ -213,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
214CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -220,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
220CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
221# CONFIG_PROC_DEVICETREE is not set 230# CONFIG_PROC_DEVICETREE is not set
222# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
223# CONFIG_PM is not set 233# CONFIG_PM is not set
224# CONFIG_SECCOMP is not set 234# CONFIG_SECCOMP is not set
225CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -229,6 +239,7 @@ CONFIG_ISA_DMA_API=y
229# 239#
230CONFIG_ZONE_DMA=y 240CONFIG_ZONE_DMA=y
231CONFIG_FSL_SOC=y 241CONFIG_FSL_SOC=y
242CONFIG_PPC_PCI_CHOICE=y
232# CONFIG_PCI is not set 243# CONFIG_PCI is not set
233# CONFIG_PCI_DOMAINS is not set 244# CONFIG_PCI_DOMAINS is not set
234# CONFIG_PCI_SYSCALL is not set 245# CONFIG_PCI_SYSCALL is not set
@@ -250,10 +261,6 @@ CONFIG_KERNEL_START=0xc0000000
250CONFIG_PHYSICAL_START=0x00000000 261CONFIG_PHYSICAL_START=0x00000000
251CONFIG_PHYSICAL_ALIGN=0x10000000 262CONFIG_PHYSICAL_ALIGN=0x10000000
252CONFIG_TASK_SIZE=0xc0000000 263CONFIG_TASK_SIZE=0xc0000000
253
254#
255# Networking
256#
257CONFIG_NET=y 264CONFIG_NET=y
258 265
259# 266#
@@ -427,6 +434,7 @@ CONFIG_MTD_PHYSMAP_OF=y
427# 434#
428# CONFIG_MTD_UBI is not set 435# CONFIG_MTD_UBI is not set
429CONFIG_OF_DEVICE=y 436CONFIG_OF_DEVICE=y
437CONFIG_OF_GPIO=y
430# CONFIG_PARPORT is not set 438# CONFIG_PARPORT is not set
431CONFIG_BLK_DEV=y 439CONFIG_BLK_DEV=y
432# CONFIG_BLK_DEV_FD is not set 440# CONFIG_BLK_DEV_FD is not set
@@ -440,12 +448,12 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
440# CONFIG_BLK_DEV_XIP is not set 448# CONFIG_BLK_DEV_XIP is not set
441# CONFIG_CDROM_PKTCDVD is not set 449# CONFIG_CDROM_PKTCDVD is not set
442# CONFIG_ATA_OVER_ETH is not set 450# CONFIG_ATA_OVER_ETH is not set
451# CONFIG_BLK_DEV_HD is not set
443CONFIG_MISC_DEVICES=y 452CONFIG_MISC_DEVICES=y
444# CONFIG_EEPROM_93CX6 is not set 453# CONFIG_EEPROM_93CX6 is not set
445# CONFIG_ENCLOSURE_SERVICES is not set 454# CONFIG_ENCLOSURE_SERVICES is not set
446CONFIG_HAVE_IDE=y 455CONFIG_HAVE_IDE=y
447CONFIG_IDE=y 456CONFIG_IDE=y
448CONFIG_IDE_MAX_HWIFS=4
449CONFIG_BLK_DEV_IDE=y 457CONFIG_BLK_DEV_IDE=y
450 458
451# 459#
@@ -463,11 +471,8 @@ CONFIG_IDE_PROC_FS=y
463# 471#
464# IDE chipset support/bugfixes 472# IDE chipset support/bugfixes
465# 473#
466CONFIG_IDE_GENERIC=y
467# CONFIG_BLK_DEV_PLATFORM is not set 474# CONFIG_BLK_DEV_PLATFORM is not set
468# CONFIG_BLK_DEV_IDEDMA is not set 475# CONFIG_BLK_DEV_IDEDMA is not set
469# CONFIG_BLK_DEV_HD_ONLY is not set
470# CONFIG_BLK_DEV_HD is not set
471 476
472# 477#
473# SCSI device support 478# SCSI device support
@@ -480,7 +485,6 @@ CONFIG_IDE_GENERIC=y
480# CONFIG_MD is not set 485# CONFIG_MD is not set
481# CONFIG_MACINTOSH_DRIVERS is not set 486# CONFIG_MACINTOSH_DRIVERS is not set
482CONFIG_NETDEVICES=y 487CONFIG_NETDEVICES=y
483# CONFIG_NETDEVICES_MULTIQUEUE is not set
484# CONFIG_DUMMY is not set 488# CONFIG_DUMMY is not set
485# CONFIG_BONDING is not set 489# CONFIG_BONDING is not set
486# CONFIG_MACVLAN is not set 490# CONFIG_MACVLAN is not set
@@ -504,6 +508,7 @@ CONFIG_MARVELL_PHY=y
504# CONFIG_REALTEK_PHY is not set 508# CONFIG_REALTEK_PHY is not set
505# CONFIG_FIXED_PHY is not set 509# CONFIG_FIXED_PHY is not set
506CONFIG_MDIO_BITBANG=y 510CONFIG_MDIO_BITBANG=y
511# CONFIG_MDIO_OF_GPIO is not set
507CONFIG_NET_ETHERNET=y 512CONFIG_NET_ETHERNET=y
508CONFIG_MII=y 513CONFIG_MII=y
509# CONFIG_IBM_NEW_EMAC_ZMII is not set 514# CONFIG_IBM_NEW_EMAC_ZMII is not set
@@ -516,9 +521,7 @@ CONFIG_FS_ENET=y
516CONFIG_FS_ENET_HAS_FCC=y 521CONFIG_FS_ENET_HAS_FCC=y
517CONFIG_FS_ENET_MDIO_FCC=y 522CONFIG_FS_ENET_MDIO_FCC=y
518CONFIG_NETDEV_1000=y 523CONFIG_NETDEV_1000=y
519# CONFIG_E1000E_ENABLED is not set
520CONFIG_GIANFAR=y 524CONFIG_GIANFAR=y
521CONFIG_GFAR_NAPI=y
522CONFIG_NETDEV_10000=y 525CONFIG_NETDEV_10000=y
523 526
524# 527#
@@ -606,6 +609,23 @@ CONFIG_GEN_RTC=y
606# CONFIG_TCG_TPM is not set 609# CONFIG_TCG_TPM is not set
607# CONFIG_I2C is not set 610# CONFIG_I2C is not set
608# CONFIG_SPI is not set 611# CONFIG_SPI is not set
612CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
613CONFIG_ARCH_REQUIRE_GPIOLIB=y
614CONFIG_GPIOLIB=y
615# CONFIG_DEBUG_GPIO is not set
616# CONFIG_GPIO_SYSFS is not set
617
618#
619# I2C GPIO expanders:
620#
621
622#
623# PCI GPIO expanders:
624#
625
626#
627# SPI GPIO expanders:
628#
609# CONFIG_W1 is not set 629# CONFIG_W1 is not set
610# CONFIG_POWER_SUPPLY is not set 630# CONFIG_POWER_SUPPLY is not set
611CONFIG_HWMON=y 631CONFIG_HWMON=y
@@ -622,6 +642,7 @@ CONFIG_HWMON=y
622# CONFIG_SENSORS_W83627EHF is not set 642# CONFIG_SENSORS_W83627EHF is not set
623# CONFIG_HWMON_DEBUG_CHIP is not set 643# CONFIG_HWMON_DEBUG_CHIP is not set
624# CONFIG_THERMAL is not set 644# CONFIG_THERMAL is not set
645# CONFIG_THERMAL_HWMON is not set
625# CONFIG_WATCHDOG is not set 646# CONFIG_WATCHDOG is not set
626 647
627# 648#
@@ -633,8 +654,10 @@ CONFIG_SSB_POSSIBLE=y
633# 654#
634# Multifunction device drivers 655# Multifunction device drivers
635# 656#
657# CONFIG_MFD_CORE is not set
636# CONFIG_MFD_SM501 is not set 658# CONFIG_MFD_SM501 is not set
637# CONFIG_HTC_PASIC3 is not set 659# CONFIG_HTC_PASIC3 is not set
660# CONFIG_MFD_TMIO is not set
638 661
639# 662#
640# Multimedia devices 663# Multimedia devices
@@ -664,10 +687,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
664# Display device support 687# Display device support
665# 688#
666# CONFIG_DISPLAY_SUPPORT is not set 689# CONFIG_DISPLAY_SUPPORT is not set
667
668#
669# Sound
670#
671# CONFIG_SOUND is not set 690# CONFIG_SOUND is not set
672CONFIG_HID_SUPPORT=y 691CONFIG_HID_SUPPORT=y
673CONFIG_HID=y 692CONFIG_HID=y
@@ -681,6 +700,10 @@ CONFIG_USB_SUPPORT=y
681# CONFIG_USB_OTG_BLACKLIST_HUB is not set 700# CONFIG_USB_OTG_BLACKLIST_HUB is not set
682 701
683# 702#
703# Enable Host or Gadget support to see Inventra options
704#
705
706#
684# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 707# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
685# 708#
686# CONFIG_USB_GADGET is not set 709# CONFIG_USB_GADGET is not set
@@ -759,6 +782,7 @@ CONFIG_TMPFS=y
759# CONFIG_CRAMFS is not set 782# CONFIG_CRAMFS is not set
760# CONFIG_VXFS_FS is not set 783# CONFIG_VXFS_FS is not set
761# CONFIG_MINIX_FS is not set 784# CONFIG_MINIX_FS is not set
785# CONFIG_OMFS_FS is not set
762# CONFIG_HPFS_FS is not set 786# CONFIG_HPFS_FS is not set
763# CONFIG_QNX4FS_FS is not set 787# CONFIG_QNX4FS_FS is not set
764# CONFIG_ROMFS_FS is not set 788# CONFIG_ROMFS_FS is not set
@@ -768,12 +792,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
768CONFIG_NFS_FS=y 792CONFIG_NFS_FS=y
769# CONFIG_NFS_V3 is not set 793# CONFIG_NFS_V3 is not set
770# CONFIG_NFS_V4 is not set 794# CONFIG_NFS_V4 is not set
771# CONFIG_NFSD is not set
772CONFIG_ROOT_NFS=y 795CONFIG_ROOT_NFS=y
796# CONFIG_NFSD is not set
773CONFIG_LOCKD=y 797CONFIG_LOCKD=y
774CONFIG_NFS_COMMON=y 798CONFIG_NFS_COMMON=y
775CONFIG_SUNRPC=y 799CONFIG_SUNRPC=y
776# CONFIG_SUNRPC_BIND34 is not set
777# CONFIG_RPCSEC_GSS_KRB5 is not set 800# CONFIG_RPCSEC_GSS_KRB5 is not set
778# CONFIG_RPCSEC_GSS_SPKM3 is not set 801# CONFIG_RPCSEC_GSS_SPKM3 is not set
779# CONFIG_SMB_FS is not set 802# CONFIG_SMB_FS is not set
@@ -809,6 +832,7 @@ CONFIG_BITREVERSE=y
809# CONFIG_GENERIC_FIND_FIRST_BIT is not set 832# CONFIG_GENERIC_FIND_FIRST_BIT is not set
810# CONFIG_CRC_CCITT is not set 833# CONFIG_CRC_CCITT is not set
811# CONFIG_CRC16 is not set 834# CONFIG_CRC16 is not set
835# CONFIG_CRC_T10DIF is not set
812# CONFIG_CRC_ITU_T is not set 836# CONFIG_CRC_ITU_T is not set
813CONFIG_CRC32=y 837CONFIG_CRC32=y
814# CONFIG_CRC7 is not set 838# CONFIG_CRC7 is not set
@@ -833,6 +857,8 @@ CONFIG_DEBUG_FS=y
833CONFIG_DEBUG_KERNEL=y 857CONFIG_DEBUG_KERNEL=y
834# CONFIG_DEBUG_SHIRQ is not set 858# CONFIG_DEBUG_SHIRQ is not set
835CONFIG_DETECT_SOFTLOCKUP=y 859CONFIG_DETECT_SOFTLOCKUP=y
860# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
861CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
836CONFIG_SCHED_DEBUG=y 862CONFIG_SCHED_DEBUG=y
837# CONFIG_SCHEDSTATS is not set 863# CONFIG_SCHEDSTATS is not set
838# CONFIG_TIMER_STATS is not set 864# CONFIG_TIMER_STATS is not set
@@ -851,17 +877,29 @@ CONFIG_DEBUG_MUTEXES=y
851# CONFIG_DEBUG_INFO is not set 877# CONFIG_DEBUG_INFO is not set
852# CONFIG_DEBUG_VM is not set 878# CONFIG_DEBUG_VM is not set
853# CONFIG_DEBUG_WRITECOUNT is not set 879# CONFIG_DEBUG_WRITECOUNT is not set
880# CONFIG_DEBUG_MEMORY_INIT is not set
854# CONFIG_DEBUG_LIST is not set 881# CONFIG_DEBUG_LIST is not set
855# CONFIG_DEBUG_SG is not set 882# CONFIG_DEBUG_SG is not set
856# CONFIG_BOOT_PRINTK_DELAY is not set 883# CONFIG_BOOT_PRINTK_DELAY is not set
884# CONFIG_RCU_TORTURE_TEST is not set
857# CONFIG_BACKTRACE_SELF_TEST is not set 885# CONFIG_BACKTRACE_SELF_TEST is not set
858# CONFIG_FAULT_INJECTION is not set 886# CONFIG_FAULT_INJECTION is not set
887# CONFIG_LATENCYTOP is not set
888CONFIG_SYSCTL_SYSCALL_CHECK=y
889CONFIG_HAVE_FTRACE=y
890CONFIG_HAVE_DYNAMIC_FTRACE=y
891# CONFIG_FTRACE is not set
892# CONFIG_SCHED_TRACER is not set
893# CONFIG_CONTEXT_SWITCH_TRACER is not set
859# CONFIG_SAMPLES is not set 894# CONFIG_SAMPLES is not set
895CONFIG_HAVE_ARCH_KGDB=y
896# CONFIG_KGDB is not set
860# CONFIG_DEBUG_STACKOVERFLOW is not set 897# CONFIG_DEBUG_STACKOVERFLOW is not set
861# CONFIG_DEBUG_STACK_USAGE is not set 898# CONFIG_DEBUG_STACK_USAGE is not set
862# CONFIG_DEBUG_PAGEALLOC is not set 899# CONFIG_DEBUG_PAGEALLOC is not set
863# CONFIG_DEBUGGER is not set 900# CONFIG_CODE_PATCHING_SELFTEST is not set
864# CONFIG_KGDB_CONSOLE is not set 901# CONFIG_FTR_FIXUP_SELFTEST is not set
902# CONFIG_XMON is not set
865# CONFIG_IRQSTACKS is not set 903# CONFIG_IRQSTACKS is not set
866# CONFIG_VIRQ_DEBUG is not set 904# CONFIG_VIRQ_DEBUG is not set
867# CONFIG_BDI_SWITCH is not set 905# CONFIG_BDI_SWITCH is not set
@@ -915,6 +953,10 @@ CONFIG_CRYPTO=y
915# CONFIG_CRYPTO_MD4 is not set 953# CONFIG_CRYPTO_MD4 is not set
916# CONFIG_CRYPTO_MD5 is not set 954# CONFIG_CRYPTO_MD5 is not set
917# CONFIG_CRYPTO_MICHAEL_MIC is not set 955# CONFIG_CRYPTO_MICHAEL_MIC is not set
956# CONFIG_CRYPTO_RMD128 is not set
957# CONFIG_CRYPTO_RMD160 is not set
958# CONFIG_CRYPTO_RMD256 is not set
959# CONFIG_CRYPTO_RMD320 is not set
918# CONFIG_CRYPTO_SHA1 is not set 960# CONFIG_CRYPTO_SHA1 is not set
919# CONFIG_CRYPTO_SHA256 is not set 961# CONFIG_CRYPTO_SHA256 is not set
920# CONFIG_CRYPTO_SHA512 is not set 962# CONFIG_CRYPTO_SHA512 is not set
@@ -946,6 +988,7 @@ CONFIG_CRYPTO=y
946# CONFIG_CRYPTO_DEFLATE is not set 988# CONFIG_CRYPTO_DEFLATE is not set
947# CONFIG_CRYPTO_LZO is not set 989# CONFIG_CRYPTO_LZO is not set
948CONFIG_CRYPTO_HW=y 990CONFIG_CRYPTO_HW=y
949# CONFIG_PPC_CLOCK is not set 991# CONFIG_CRYPTO_DEV_TALITOS is not set
992CONFIG_PPC_CLOCK=y
950CONFIG_PPC_LIB_RHEAP=y 993CONFIG_PPC_LIB_RHEAP=y
951# CONFIG_VIRTUALIZATION is not set 994# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8536_ds_defconfig b/arch/powerpc/configs/85xx/mpc8536_ds_defconfig
index f1e2931de5da..6b516bea6e75 100644
--- a/arch/powerpc/configs/mpc8536_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8536_ds_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.26-rc8 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 2 01:34:26 2008 4# Thu Aug 21 07:18:18 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -93,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
93CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
94CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
95CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
99CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -119,10 +119,16 @@ CONFIG_SLUB=y
119# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
125CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -139,6 +145,7 @@ CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set 146# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
142 149
143# 150#
144# IO Schedulers 151# IO Schedulers
@@ -157,8 +164,6 @@ CONFIG_CLASSIC_RCU=y
157# 164#
158# Platform support 165# Platform support
159# 166#
160# CONFIG_PPC_MPC512x is not set
161# CONFIG_PPC_MPC5121 is not set
162# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
163# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
164# CONFIG_PQ2ADS is not set 169# CONFIG_PQ2ADS is not set
@@ -205,7 +210,7 @@ CONFIG_HZ_250=y
205# CONFIG_HZ_300 is not set 210# CONFIG_HZ_300 is not set
206# CONFIG_HZ_1000 is not set 211# CONFIG_HZ_1000 is not set
207CONFIG_HZ=250 212CONFIG_HZ=250
208# CONFIG_SCHED_HRTICK is not set 213CONFIG_SCHED_HRTICK=y
209CONFIG_PREEMPT_NONE=y 214CONFIG_PREEMPT_NONE=y
210# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
211# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
@@ -228,6 +233,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
229CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
230CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y
231# CONFIG_RESOURCES_64BIT is not set 237# CONFIG_RESOURCES_64BIT is not set
232CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
233CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
@@ -235,6 +241,7 @@ CONFIG_VIRT_TO_BUS=y
235CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
236CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
237# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
244CONFIG_EXTRA_TARGETS=""
238# CONFIG_PM is not set 245# CONFIG_PM is not set
239CONFIG_SECCOMP=y 246CONFIG_SECCOMP=y
240CONFIG_ISA_DMA_API=y 247CONFIG_ISA_DMA_API=y
@@ -246,6 +253,7 @@ CONFIG_ZONE_DMA=y
246CONFIG_PPC_INDIRECT_PCI=y 253CONFIG_PPC_INDIRECT_PCI=y
247CONFIG_FSL_SOC=y 254CONFIG_FSL_SOC=y
248CONFIG_FSL_PCI=y 255CONFIG_FSL_PCI=y
256CONFIG_PPC_PCI_CHOICE=y
249CONFIG_PCI=y 257CONFIG_PCI=y
250CONFIG_PCI_DOMAINS=y 258CONFIG_PCI_DOMAINS=y
251CONFIG_PCI_SYSCALL=y 259CONFIG_PCI_SYSCALL=y
@@ -272,10 +280,6 @@ CONFIG_KERNEL_START=0xc0000000
272CONFIG_PHYSICAL_START=0x00000000 280CONFIG_PHYSICAL_START=0x00000000
273CONFIG_PHYSICAL_ALIGN=0x10000000 281CONFIG_PHYSICAL_ALIGN=0x10000000
274CONFIG_TASK_SIZE=0xc0000000 282CONFIG_TASK_SIZE=0xc0000000
275
276#
277# Networking
278#
279CONFIG_NET=y 283CONFIG_NET=y
280 284
281# 285#
@@ -401,6 +405,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
401CONFIG_STANDALONE=y 405CONFIG_STANDALONE=y
402CONFIG_PREVENT_FIRMWARE_BUILD=y 406CONFIG_PREVENT_FIRMWARE_BUILD=y
403CONFIG_FW_LOADER=y 407CONFIG_FW_LOADER=y
408CONFIG_FIRMWARE_IN_KERNEL=y
409CONFIG_EXTRA_FIRMWARE=""
404# CONFIG_DEBUG_DRIVER is not set 410# CONFIG_DEBUG_DRIVER is not set
405# CONFIG_DEBUG_DEVRES is not set 411# CONFIG_DEBUG_DEVRES is not set
406# CONFIG_SYS_HYPERVISOR is not set 412# CONFIG_SYS_HYPERVISOR is not set
@@ -427,12 +433,14 @@ CONFIG_BLK_DEV_RAM_SIZE=524288
427# CONFIG_BLK_DEV_XIP is not set 433# CONFIG_BLK_DEV_XIP is not set
428# CONFIG_CDROM_PKTCDVD is not set 434# CONFIG_CDROM_PKTCDVD is not set
429# CONFIG_ATA_OVER_ETH is not set 435# CONFIG_ATA_OVER_ETH is not set
436# CONFIG_BLK_DEV_HD is not set
430CONFIG_MISC_DEVICES=y 437CONFIG_MISC_DEVICES=y
431# CONFIG_PHANTOM is not set 438# CONFIG_PHANTOM is not set
432# CONFIG_EEPROM_93CX6 is not set 439# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_SGI_IOC4 is not set 440# CONFIG_SGI_IOC4 is not set
434# CONFIG_TIFM_CORE is not set 441# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set 442# CONFIG_ENCLOSURE_SERVICES is not set
443# CONFIG_HP_ILO is not set
436CONFIG_HAVE_IDE=y 444CONFIG_HAVE_IDE=y
437# CONFIG_IDE is not set 445# CONFIG_IDE is not set
438 446
@@ -512,6 +520,7 @@ CONFIG_SCSI_LOWLEVEL=y
512# CONFIG_SCSI_NSP32 is not set 520# CONFIG_SCSI_NSP32 is not set
513# CONFIG_SCSI_DEBUG is not set 521# CONFIG_SCSI_DEBUG is not set
514# CONFIG_SCSI_SRP is not set 522# CONFIG_SCSI_SRP is not set
523# CONFIG_SCSI_DH is not set
515CONFIG_ATA=y 524CONFIG_ATA=y
516# CONFIG_ATA_NONSTANDARD is not set 525# CONFIG_ATA_NONSTANDARD is not set
517CONFIG_SATA_PMP=y 526CONFIG_SATA_PMP=y
@@ -588,7 +597,6 @@ CONFIG_SATA_SIL=y
588# CONFIG_I2O is not set 597# CONFIG_I2O is not set
589# CONFIG_MACINTOSH_DRIVERS is not set 598# CONFIG_MACINTOSH_DRIVERS is not set
590CONFIG_NETDEVICES=y 599CONFIG_NETDEVICES=y
591# CONFIG_NETDEVICES_MULTIQUEUE is not set
592CONFIG_DUMMY=y 600CONFIG_DUMMY=y
593# CONFIG_BONDING is not set 601# CONFIG_BONDING is not set
594# CONFIG_MACVLAN is not set 602# CONFIG_MACVLAN is not set
@@ -632,7 +640,6 @@ CONFIG_NETDEV_1000=y
632# CONFIG_DL2K is not set 640# CONFIG_DL2K is not set
633# CONFIG_E1000 is not set 641# CONFIG_E1000 is not set
634# CONFIG_E1000E is not set 642# CONFIG_E1000E is not set
635# CONFIG_E1000E_ENABLED is not set
636# CONFIG_IP1000 is not set 643# CONFIG_IP1000 is not set
637# CONFIG_IGB is not set 644# CONFIG_IGB is not set
638# CONFIG_NS83820 is not set 645# CONFIG_NS83820 is not set
@@ -648,9 +655,9 @@ CONFIG_SKY2=y
648# CONFIG_TIGON3 is not set 655# CONFIG_TIGON3 is not set
649# CONFIG_BNX2 is not set 656# CONFIG_BNX2 is not set
650CONFIG_GIANFAR=y 657CONFIG_GIANFAR=y
651CONFIG_GFAR_NAPI=y
652# CONFIG_QLA3XXX is not set 658# CONFIG_QLA3XXX is not set
653# CONFIG_ATL1 is not set 659# CONFIG_ATL1 is not set
660# CONFIG_ATL1E is not set
654CONFIG_NETDEV_10000=y 661CONFIG_NETDEV_10000=y
655# CONFIG_CHELSIO_T1 is not set 662# CONFIG_CHELSIO_T1 is not set
656# CONFIG_CHELSIO_T3 is not set 663# CONFIG_CHELSIO_T3 is not set
@@ -727,12 +734,14 @@ CONFIG_SERIO_SERPORT=y
727# CONFIG_SERIO_PCIPS2 is not set 734# CONFIG_SERIO_PCIPS2 is not set
728CONFIG_SERIO_LIBPS2=y 735CONFIG_SERIO_LIBPS2=y
729# CONFIG_SERIO_RAW is not set 736# CONFIG_SERIO_RAW is not set
737# CONFIG_SERIO_XILINX_XPS_PS2 is not set
730# CONFIG_GAMEPORT is not set 738# CONFIG_GAMEPORT is not set
731 739
732# 740#
733# Character devices 741# Character devices
734# 742#
735CONFIG_VT=y 743CONFIG_VT=y
744CONFIG_CONSOLE_TRANSLATIONS=y
736CONFIG_VT_CONSOLE=y 745CONFIG_VT_CONSOLE=y
737CONFIG_HW_CONSOLE=y 746CONFIG_HW_CONSOLE=y
738# CONFIG_VT_HW_CONSOLE_BINDING is not set 747# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -766,7 +775,7 @@ CONFIG_UNIX98_PTYS=y
766CONFIG_LEGACY_PTYS=y 775CONFIG_LEGACY_PTYS=y
767CONFIG_LEGACY_PTY_COUNT=256 776CONFIG_LEGACY_PTY_COUNT=256
768# CONFIG_IPMI_HANDLER is not set 777# CONFIG_IPMI_HANDLER is not set
769# CONFIG_HW_RANDOM is not set 778CONFIG_HW_RANDOM=y
770# CONFIG_NVRAM is not set 779# CONFIG_NVRAM is not set
771# CONFIG_R3964 is not set 780# CONFIG_R3964 is not set
772# CONFIG_APPLICOM is not set 781# CONFIG_APPLICOM is not set
@@ -776,43 +785,64 @@ CONFIG_DEVPORT=y
776CONFIG_I2C=y 785CONFIG_I2C=y
777CONFIG_I2C_BOARDINFO=y 786CONFIG_I2C_BOARDINFO=y
778# CONFIG_I2C_CHARDEV is not set 787# CONFIG_I2C_CHARDEV is not set
788CONFIG_I2C_HELPER_AUTO=y
779 789
780# 790#
781# I2C Hardware Bus support 791# I2C Hardware Bus support
782# 792#
793
794#
795# PC SMBus host controller drivers
796#
783# CONFIG_I2C_ALI1535 is not set 797# CONFIG_I2C_ALI1535 is not set
784# CONFIG_I2C_ALI1563 is not set 798# CONFIG_I2C_ALI1563 is not set
785# CONFIG_I2C_ALI15X3 is not set 799# CONFIG_I2C_ALI15X3 is not set
786# CONFIG_I2C_AMD756 is not set 800# CONFIG_I2C_AMD756 is not set
787# CONFIG_I2C_AMD8111 is not set 801# CONFIG_I2C_AMD8111 is not set
788# CONFIG_I2C_I801 is not set 802# CONFIG_I2C_I801 is not set
789# CONFIG_I2C_I810 is not set 803# CONFIG_I2C_ISCH is not set
790# CONFIG_I2C_PIIX4 is not set 804# CONFIG_I2C_PIIX4 is not set
791CONFIG_I2C_MPC=y
792# CONFIG_I2C_NFORCE2 is not set 805# CONFIG_I2C_NFORCE2 is not set
793# CONFIG_I2C_OCORES is not set
794# CONFIG_I2C_PARPORT_LIGHT is not set
795# CONFIG_I2C_PROSAVAGE is not set
796# CONFIG_I2C_SAVAGE4 is not set
797# CONFIG_I2C_SIMTEC is not set
798# CONFIG_I2C_SIS5595 is not set 806# CONFIG_I2C_SIS5595 is not set
799# CONFIG_I2C_SIS630 is not set 807# CONFIG_I2C_SIS630 is not set
800# CONFIG_I2C_SIS96X is not set 808# CONFIG_I2C_SIS96X is not set
801# CONFIG_I2C_TAOS_EVM is not set
802# CONFIG_I2C_STUB is not set
803# CONFIG_I2C_TINY_USB is not set
804# CONFIG_I2C_VIA is not set 809# CONFIG_I2C_VIA is not set
805# CONFIG_I2C_VIAPRO is not set 810# CONFIG_I2C_VIAPRO is not set
811
812#
813# I2C system bus drivers (mostly embedded / system-on-chip)
814#
815CONFIG_I2C_MPC=y
816# CONFIG_I2C_OCORES is not set
817# CONFIG_I2C_SIMTEC is not set
818
819#
820# External I2C/SMBus adapter drivers
821#
822# CONFIG_I2C_PARPORT_LIGHT is not set
823# CONFIG_I2C_TAOS_EVM is not set
824# CONFIG_I2C_TINY_USB is not set
825
826#
827# Graphics adapter I2C/DDC channel drivers
828#
806# CONFIG_I2C_VOODOO3 is not set 829# CONFIG_I2C_VOODOO3 is not set
830
831#
832# Other I2C/SMBus bus drivers
833#
807# CONFIG_I2C_PCA_PLATFORM is not set 834# CONFIG_I2C_PCA_PLATFORM is not set
835# CONFIG_I2C_STUB is not set
808 836
809# 837#
810# Miscellaneous I2C Chip support 838# Miscellaneous I2C Chip support
811# 839#
812# CONFIG_DS1682 is not set 840# CONFIG_DS1682 is not set
841# CONFIG_AT24 is not set
813CONFIG_SENSORS_EEPROM=y 842CONFIG_SENSORS_EEPROM=y
814# CONFIG_SENSORS_PCF8574 is not set 843# CONFIG_SENSORS_PCF8574 is not set
815# CONFIG_PCF8575 is not set 844# CONFIG_PCF8575 is not set
845# CONFIG_SENSORS_PCA9539 is not set
816# CONFIG_SENSORS_PCF8591 is not set 846# CONFIG_SENSORS_PCF8591 is not set
817# CONFIG_SENSORS_MAX6875 is not set 847# CONFIG_SENSORS_MAX6875 is not set
818# CONFIG_SENSORS_TSL2550 is not set 848# CONFIG_SENSORS_TSL2550 is not set
@@ -821,6 +851,8 @@ CONFIG_SENSORS_EEPROM=y
821# CONFIG_I2C_DEBUG_BUS is not set 851# CONFIG_I2C_DEBUG_BUS is not set
822# CONFIG_I2C_DEBUG_CHIP is not set 852# CONFIG_I2C_DEBUG_CHIP is not set
823# CONFIG_SPI is not set 853# CONFIG_SPI is not set
854CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
855# CONFIG_GPIOLIB is not set
824# CONFIG_W1 is not set 856# CONFIG_W1 is not set
825# CONFIG_POWER_SUPPLY is not set 857# CONFIG_POWER_SUPPLY is not set
826# CONFIG_HWMON is not set 858# CONFIG_HWMON is not set
@@ -836,8 +868,10 @@ CONFIG_SSB_POSSIBLE=y
836# 868#
837# Multifunction device drivers 869# Multifunction device drivers
838# 870#
871# CONFIG_MFD_CORE is not set
839# CONFIG_MFD_SM501 is not set 872# CONFIG_MFD_SM501 is not set
840# CONFIG_HTC_PASIC3 is not set 873# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set
841 875
842# 876#
843# Multimedia devices 877# Multimedia devices
@@ -879,6 +913,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
879# CONFIG_DVB_TTUSB_BUDGET is not set 913# CONFIG_DVB_TTUSB_BUDGET is not set
880# CONFIG_DVB_TTUSB_DEC is not set 914# CONFIG_DVB_TTUSB_DEC is not set
881# CONFIG_DVB_CINERGYT2 is not set 915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set
882 917
883# 918#
884# Supported FlexCopII (B2C2) Adapters 919# Supported FlexCopII (B2C2) Adapters
@@ -925,6 +960,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
925# CONFIG_DVB_SP887X is not set 960# CONFIG_DVB_SP887X is not set
926# CONFIG_DVB_CX22700 is not set 961# CONFIG_DVB_CX22700 is not set
927# CONFIG_DVB_CX22702 is not set 962# CONFIG_DVB_CX22702 is not set
963# CONFIG_DVB_DRX397XD is not set
928# CONFIG_DVB_L64781 is not set 964# CONFIG_DVB_L64781 is not set
929# CONFIG_DVB_TDA1004X is not set 965# CONFIG_DVB_TDA1004X is not set
930# CONFIG_DVB_NXT6000 is not set 966# CONFIG_DVB_NXT6000 is not set
@@ -992,15 +1028,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
992CONFIG_VGA_CONSOLE=y 1028CONFIG_VGA_CONSOLE=y
993# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set
994CONFIG_DUMMY_CONSOLE=y 1030CONFIG_DUMMY_CONSOLE=y
995
996#
997# Sound
998#
999CONFIG_SOUND=y 1031CONFIG_SOUND=y
1000
1001#
1002# Advanced Linux Sound Architecture
1003#
1004CONFIG_SND=y 1032CONFIG_SND=y
1005CONFIG_SND_TIMER=y 1033CONFIG_SND_TIMER=y
1006CONFIG_SND_PCM=y 1034CONFIG_SND_PCM=y
@@ -1012,19 +1040,15 @@ CONFIG_SND_SUPPORT_OLD_API=y
1012CONFIG_SND_VERBOSE_PROCFS=y 1040CONFIG_SND_VERBOSE_PROCFS=y
1013# CONFIG_SND_VERBOSE_PRINTK is not set 1041# CONFIG_SND_VERBOSE_PRINTK is not set
1014# CONFIG_SND_DEBUG is not set 1042# CONFIG_SND_DEBUG is not set
1015 1043CONFIG_SND_VMASTER=y
1016#
1017# Generic devices
1018#
1019CONFIG_SND_AC97_CODEC=y 1044CONFIG_SND_AC97_CODEC=y
1045CONFIG_SND_DRIVERS=y
1020# CONFIG_SND_DUMMY is not set 1046# CONFIG_SND_DUMMY is not set
1021# CONFIG_SND_MTPAV is not set 1047# CONFIG_SND_MTPAV is not set
1022# CONFIG_SND_SERIAL_U16550 is not set 1048# CONFIG_SND_SERIAL_U16550 is not set
1023# CONFIG_SND_MPU401 is not set 1049# CONFIG_SND_MPU401 is not set
1024 1050# CONFIG_SND_AC97_POWER_SAVE is not set
1025# 1051CONFIG_SND_PCI=y
1026# PCI devices
1027#
1028# CONFIG_SND_AD1889 is not set 1052# CONFIG_SND_AD1889 is not set
1029# CONFIG_SND_ALS300 is not set 1053# CONFIG_SND_ALS300 is not set
1030# CONFIG_SND_ALS4000 is not set 1054# CONFIG_SND_ALS4000 is not set
@@ -1086,39 +1110,12 @@ CONFIG_SND_INTEL8X0=y
1086# CONFIG_SND_VIRTUOSO is not set 1110# CONFIG_SND_VIRTUOSO is not set
1087# CONFIG_SND_VX222 is not set 1111# CONFIG_SND_VX222 is not set
1088# CONFIG_SND_YMFPCI is not set 1112# CONFIG_SND_YMFPCI is not set
1089# CONFIG_SND_AC97_POWER_SAVE is not set 1113CONFIG_SND_PPC=y
1090 1114CONFIG_SND_USB=y
1091#
1092# ALSA PowerMac devices
1093#
1094
1095#
1096# ALSA PowerPC devices
1097#
1098
1099#
1100# USB devices
1101#
1102# CONFIG_SND_USB_AUDIO is not set 1115# CONFIG_SND_USB_AUDIO is not set
1103# CONFIG_SND_USB_USX2Y is not set 1116# CONFIG_SND_USB_USX2Y is not set
1104# CONFIG_SND_USB_CAIAQ is not set 1117# CONFIG_SND_USB_CAIAQ is not set
1105
1106#
1107# System on Chip audio support
1108#
1109# CONFIG_SND_SOC is not set 1118# CONFIG_SND_SOC is not set
1110
1111#
1112# ALSA SoC audio for Freescale SOCs
1113#
1114
1115#
1116# SoC Audio for the Texas Instruments OMAP
1117#
1118
1119#
1120# Open Sound System
1121#
1122# CONFIG_SOUND_PRIME is not set 1119# CONFIG_SOUND_PRIME is not set
1123CONFIG_AC97_BUS=y 1120CONFIG_AC97_BUS=y
1124CONFIG_HID_SUPPORT=y 1121CONFIG_HID_SUPPORT=y
@@ -1150,6 +1147,7 @@ CONFIG_USB_DEVICE_CLASS=y
1150# CONFIG_USB_OTG is not set 1147# CONFIG_USB_OTG is not set
1151# CONFIG_USB_OTG_WHITELIST is not set 1148# CONFIG_USB_OTG_WHITELIST is not set
1152# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1149# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1150CONFIG_USB_MON=y
1153 1151
1154# 1152#
1155# USB Host Controller Drivers 1153# USB Host Controller Drivers
@@ -1201,6 +1199,7 @@ CONFIG_USB_STORAGE=y
1201# CONFIG_USB_STORAGE_ALAUDA is not set 1199# CONFIG_USB_STORAGE_ALAUDA is not set
1202# CONFIG_USB_STORAGE_ONETOUCH is not set 1200# CONFIG_USB_STORAGE_ONETOUCH is not set
1203# CONFIG_USB_STORAGE_KARMA is not set 1201# CONFIG_USB_STORAGE_KARMA is not set
1202# CONFIG_USB_STORAGE_SIERRA is not set
1204# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1203# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1205# CONFIG_USB_LIBUSUAL is not set 1204# CONFIG_USB_LIBUSUAL is not set
1206 1205
@@ -1209,7 +1208,6 @@ CONFIG_USB_STORAGE=y
1209# 1208#
1210# CONFIG_USB_MDC800 is not set 1209# CONFIG_USB_MDC800 is not set
1211# CONFIG_USB_MICROTEK is not set 1210# CONFIG_USB_MICROTEK is not set
1212CONFIG_USB_MON=y
1213 1211
1214# 1212#
1215# USB port drivers 1213# USB port drivers
@@ -1222,7 +1220,6 @@ CONFIG_USB_MON=y
1222# CONFIG_USB_EMI62 is not set 1220# CONFIG_USB_EMI62 is not set
1223# CONFIG_USB_EMI26 is not set 1221# CONFIG_USB_EMI26 is not set
1224# CONFIG_USB_ADUTUX is not set 1222# CONFIG_USB_ADUTUX is not set
1225# CONFIG_USB_AUERSWALD is not set
1226# CONFIG_USB_RIO500 is not set 1223# CONFIG_USB_RIO500 is not set
1227# CONFIG_USB_LEGOTOWER is not set 1224# CONFIG_USB_LEGOTOWER is not set
1228# CONFIG_USB_LCD is not set 1225# CONFIG_USB_LCD is not set
@@ -1310,6 +1307,7 @@ CONFIG_DMA_ENGINE=y
1310# DMA Clients 1307# DMA Clients
1311# 1308#
1312# CONFIG_NET_DMA is not set 1309# CONFIG_NET_DMA is not set
1310# CONFIG_DMATEST is not set
1313# CONFIG_UIO is not set 1311# CONFIG_UIO is not set
1314 1312
1315# 1313#
@@ -1387,6 +1385,7 @@ CONFIG_EFS_FS=m
1387CONFIG_CRAMFS=y 1385CONFIG_CRAMFS=y
1388CONFIG_VXFS_FS=m 1386CONFIG_VXFS_FS=m
1389# CONFIG_MINIX_FS is not set 1387# CONFIG_MINIX_FS is not set
1388# CONFIG_OMFS_FS is not set
1390CONFIG_HPFS_FS=m 1389CONFIG_HPFS_FS=m
1391CONFIG_QNX4FS_FS=m 1390CONFIG_QNX4FS_FS=m
1392# CONFIG_ROMFS_FS is not set 1391# CONFIG_ROMFS_FS is not set
@@ -1399,17 +1398,16 @@ CONFIG_NFS_FS=y
1399CONFIG_NFS_V3=y 1398CONFIG_NFS_V3=y
1400# CONFIG_NFS_V3_ACL is not set 1399# CONFIG_NFS_V3_ACL is not set
1401CONFIG_NFS_V4=y 1400CONFIG_NFS_V4=y
1401CONFIG_ROOT_NFS=y
1402CONFIG_NFSD=y 1402CONFIG_NFSD=y
1403# CONFIG_NFSD_V3 is not set 1403# CONFIG_NFSD_V3 is not set
1404# CONFIG_NFSD_V4 is not set 1404# CONFIG_NFSD_V4 is not set
1405CONFIG_ROOT_NFS=y
1406CONFIG_LOCKD=y 1405CONFIG_LOCKD=y
1407CONFIG_LOCKD_V4=y 1406CONFIG_LOCKD_V4=y
1408CONFIG_EXPORTFS=y 1407CONFIG_EXPORTFS=y
1409CONFIG_NFS_COMMON=y 1408CONFIG_NFS_COMMON=y
1410CONFIG_SUNRPC=y 1409CONFIG_SUNRPC=y
1411CONFIG_SUNRPC_GSS=y 1410CONFIG_SUNRPC_GSS=y
1412# CONFIG_SUNRPC_BIND34 is not set
1413CONFIG_RPCSEC_GSS_KRB5=y 1411CONFIG_RPCSEC_GSS_KRB5=y
1414# CONFIG_RPCSEC_GSS_SPKM3 is not set 1412# CONFIG_RPCSEC_GSS_SPKM3 is not set
1415# CONFIG_SMB_FS is not set 1413# CONFIG_SMB_FS is not set
@@ -1488,6 +1486,7 @@ CONFIG_BITREVERSE=y
1488# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1486# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1489# CONFIG_CRC_CCITT is not set 1487# CONFIG_CRC_CCITT is not set
1490# CONFIG_CRC16 is not set 1488# CONFIG_CRC16 is not set
1489CONFIG_CRC_T10DIF=y
1491CONFIG_CRC_ITU_T=m 1490CONFIG_CRC_ITU_T=m
1492CONFIG_CRC32=y 1491CONFIG_CRC32=y
1493# CONFIG_CRC7 is not set 1492# CONFIG_CRC7 is not set
@@ -1513,6 +1512,8 @@ CONFIG_DEBUG_FS=y
1513CONFIG_DEBUG_KERNEL=y 1512CONFIG_DEBUG_KERNEL=y
1514# CONFIG_DEBUG_SHIRQ is not set 1513# CONFIG_DEBUG_SHIRQ is not set
1515CONFIG_DETECT_SOFTLOCKUP=y 1514CONFIG_DETECT_SOFTLOCKUP=y
1515# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1516CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1516CONFIG_SCHED_DEBUG=y 1517CONFIG_SCHED_DEBUG=y
1517# CONFIG_SCHEDSTATS is not set 1518# CONFIG_SCHEDSTATS is not set
1518# CONFIG_TIMER_STATS is not set 1519# CONFIG_TIMER_STATS is not set
@@ -1531,19 +1532,29 @@ CONFIG_SCHED_DEBUG=y
1531CONFIG_DEBUG_INFO=y 1532CONFIG_DEBUG_INFO=y
1532# CONFIG_DEBUG_VM is not set 1533# CONFIG_DEBUG_VM is not set
1533# CONFIG_DEBUG_WRITECOUNT is not set 1534# CONFIG_DEBUG_WRITECOUNT is not set
1535# CONFIG_DEBUG_MEMORY_INIT is not set
1534# CONFIG_DEBUG_LIST is not set 1536# CONFIG_DEBUG_LIST is not set
1535# CONFIG_DEBUG_SG is not set 1537# CONFIG_DEBUG_SG is not set
1536# CONFIG_BOOT_PRINTK_DELAY is not set 1538# CONFIG_BOOT_PRINTK_DELAY is not set
1537# CONFIG_RCU_TORTURE_TEST is not set 1539# CONFIG_RCU_TORTURE_TEST is not set
1538# CONFIG_BACKTRACE_SELF_TEST is not set 1540# CONFIG_BACKTRACE_SELF_TEST is not set
1539# CONFIG_FAULT_INJECTION is not set 1541# CONFIG_FAULT_INJECTION is not set
1542# CONFIG_LATENCYTOP is not set
1543CONFIG_SYSCTL_SYSCALL_CHECK=y
1544CONFIG_HAVE_FTRACE=y
1545CONFIG_HAVE_DYNAMIC_FTRACE=y
1546# CONFIG_FTRACE is not set
1547# CONFIG_SCHED_TRACER is not set
1548# CONFIG_CONTEXT_SWITCH_TRACER is not set
1540# CONFIG_SAMPLES is not set 1549# CONFIG_SAMPLES is not set
1550CONFIG_HAVE_ARCH_KGDB=y
1551# CONFIG_KGDB is not set
1541# CONFIG_DEBUG_STACKOVERFLOW is not set 1552# CONFIG_DEBUG_STACKOVERFLOW is not set
1542# CONFIG_DEBUG_STACK_USAGE is not set 1553# CONFIG_DEBUG_STACK_USAGE is not set
1543# CONFIG_DEBUG_PAGEALLOC is not set 1554# CONFIG_DEBUG_PAGEALLOC is not set
1544# CONFIG_DEBUGGER is not set
1545# CONFIG_CODE_PATCHING_SELFTEST is not set 1555# CONFIG_CODE_PATCHING_SELFTEST is not set
1546# CONFIG_FTR_FIXUP_SELFTEST is not set 1556# CONFIG_FTR_FIXUP_SELFTEST is not set
1557# CONFIG_XMON is not set
1547# CONFIG_IRQSTACKS is not set 1558# CONFIG_IRQSTACKS is not set
1548# CONFIG_VIRQ_DEBUG is not set 1559# CONFIG_VIRQ_DEBUG is not set
1549# CONFIG_BDI_SWITCH is not set 1560# CONFIG_BDI_SWITCH is not set
@@ -1561,13 +1572,14 @@ CONFIG_CRYPTO=y
1561# Crypto core or helper 1572# Crypto core or helper
1562# 1573#
1563CONFIG_CRYPTO_ALGAPI=y 1574CONFIG_CRYPTO_ALGAPI=y
1575CONFIG_CRYPTO_AEAD=y
1564CONFIG_CRYPTO_BLKCIPHER=y 1576CONFIG_CRYPTO_BLKCIPHER=y
1565CONFIG_CRYPTO_HASH=y 1577CONFIG_CRYPTO_HASH=y
1566CONFIG_CRYPTO_MANAGER=y 1578CONFIG_CRYPTO_MANAGER=y
1567# CONFIG_CRYPTO_GF128MUL is not set 1579# CONFIG_CRYPTO_GF128MUL is not set
1568# CONFIG_CRYPTO_NULL is not set 1580# CONFIG_CRYPTO_NULL is not set
1569# CONFIG_CRYPTO_CRYPTD is not set 1581# CONFIG_CRYPTO_CRYPTD is not set
1570# CONFIG_CRYPTO_AUTHENC is not set 1582CONFIG_CRYPTO_AUTHENC=y
1571# CONFIG_CRYPTO_TEST is not set 1583# CONFIG_CRYPTO_TEST is not set
1572 1584
1573# 1585#
@@ -1601,6 +1613,10 @@ CONFIG_CRYPTO_HMAC=y
1601# CONFIG_CRYPTO_MD4 is not set 1613# CONFIG_CRYPTO_MD4 is not set
1602CONFIG_CRYPTO_MD5=y 1614CONFIG_CRYPTO_MD5=y
1603# CONFIG_CRYPTO_MICHAEL_MIC is not set 1615# CONFIG_CRYPTO_MICHAEL_MIC is not set
1616# CONFIG_CRYPTO_RMD128 is not set
1617# CONFIG_CRYPTO_RMD160 is not set
1618# CONFIG_CRYPTO_RMD256 is not set
1619# CONFIG_CRYPTO_RMD320 is not set
1604CONFIG_CRYPTO_SHA1=m 1620CONFIG_CRYPTO_SHA1=m
1605# CONFIG_CRYPTO_SHA256 is not set 1621# CONFIG_CRYPTO_SHA256 is not set
1606# CONFIG_CRYPTO_SHA512 is not set 1622# CONFIG_CRYPTO_SHA512 is not set
@@ -1633,5 +1649,6 @@ CONFIG_CRYPTO_DES=y
1633# CONFIG_CRYPTO_LZO is not set 1649# CONFIG_CRYPTO_LZO is not set
1634CONFIG_CRYPTO_HW=y 1650CONFIG_CRYPTO_HW=y
1635# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1651# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1652CONFIG_CRYPTO_DEV_TALITOS=y
1636# CONFIG_PPC_CLOCK is not set 1653# CONFIG_PPC_CLOCK is not set
1637# CONFIG_VIRTUALIZATION is not set 1654# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig b/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
index f33fd516fd54..1ea181f826f1 100644
--- a/arch/powerpc/configs/85xx/mpc8540_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8540_ads_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:31 2008 4# Thu Aug 21 00:52:30 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -114,10 +115,16 @@ CONFIG_SLUB=y
114# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y
119# CONFIG_HAVE_DMA_ATTRS is not set 123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
120CONFIG_PROC_PAGE_MONITOR=y 126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 130# CONFIG_TINY_SHMEM is not set
@@ -128,6 +135,7 @@ CONFIG_BLOCK=y
128# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set 136# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set
131 139
132# 140#
133# IO Schedulers 141# IO Schedulers
@@ -146,8 +154,6 @@ CONFIG_CLASSIC_RCU=y
146# 154#
147# Platform support 155# Platform support
148# 156#
149# CONFIG_PPC_MPC512x is not set
150# CONFIG_PPC_MPC5121 is not set
151# CONFIG_PPC_CELL is not set 157# CONFIG_PPC_CELL is not set
152# CONFIG_PPC_CELL_NATIVE is not set 158# CONFIG_PPC_CELL_NATIVE is not set
153# CONFIG_PQ2ADS is not set 159# CONFIG_PQ2ADS is not set
@@ -156,11 +162,13 @@ CONFIG_MPC8540_ADS=y
156# CONFIG_MPC8560_ADS is not set 162# CONFIG_MPC8560_ADS is not set
157# CONFIG_MPC85xx_CDS is not set 163# CONFIG_MPC85xx_CDS is not set
158# CONFIG_MPC85xx_MDS is not set 164# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set
159# CONFIG_MPC85xx_DS is not set 166# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set 167# CONFIG_KSI8560 is not set
161# CONFIG_STX_GP3 is not set 168# CONFIG_STX_GP3 is not set
162# CONFIG_TQM8540 is not set 169# CONFIG_TQM8540 is not set
163# CONFIG_TQM8541 is not set 170# CONFIG_TQM8541 is not set
171# CONFIG_TQM8548 is not set
164# CONFIG_TQM8555 is not set 172# CONFIG_TQM8555 is not set
165# CONFIG_TQM8560 is not set 173# CONFIG_TQM8560 is not set
166# CONFIG_SBC8548 is not set 174# CONFIG_SBC8548 is not set
@@ -192,7 +200,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 200# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 201# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 202CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 203CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 204CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
@@ -215,6 +223,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 224CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
@@ -222,6 +231,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 235# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 236# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 237CONFIG_ISA_DMA_API=y
@@ -231,6 +241,7 @@ CONFIG_ISA_DMA_API=y
231# 241#
232CONFIG_ZONE_DMA=y 242CONFIG_ZONE_DMA=y
233CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
244CONFIG_PPC_PCI_CHOICE=y
234# CONFIG_PCI is not set 245# CONFIG_PCI is not set
235# CONFIG_PCI_DOMAINS is not set 246# CONFIG_PCI_DOMAINS is not set
236# CONFIG_PCI_SYSCALL is not set 247# CONFIG_PCI_SYSCALL is not set
@@ -252,10 +263,6 @@ CONFIG_KERNEL_START=0xc0000000
252CONFIG_PHYSICAL_START=0x00000000 263CONFIG_PHYSICAL_START=0x00000000
253CONFIG_PHYSICAL_ALIGN=0x10000000 264CONFIG_PHYSICAL_ALIGN=0x10000000
254CONFIG_TASK_SIZE=0xc0000000 265CONFIG_TASK_SIZE=0xc0000000
255
256#
257# Networking
258#
259CONFIG_NET=y 266CONFIG_NET=y
260 267
261# 268#
@@ -367,6 +374,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
367# CONFIG_BLK_DEV_XIP is not set 374# CONFIG_BLK_DEV_XIP is not set
368# CONFIG_CDROM_PKTCDVD is not set 375# CONFIG_CDROM_PKTCDVD is not set
369# CONFIG_ATA_OVER_ETH is not set 376# CONFIG_ATA_OVER_ETH is not set
377# CONFIG_BLK_DEV_HD is not set
370CONFIG_MISC_DEVICES=y 378CONFIG_MISC_DEVICES=y
371# CONFIG_EEPROM_93CX6 is not set 379# CONFIG_EEPROM_93CX6 is not set
372# CONFIG_ENCLOSURE_SERVICES is not set 380# CONFIG_ENCLOSURE_SERVICES is not set
@@ -384,7 +392,6 @@ CONFIG_HAVE_IDE=y
384# CONFIG_MD is not set 392# CONFIG_MD is not set
385# CONFIG_MACINTOSH_DRIVERS is not set 393# CONFIG_MACINTOSH_DRIVERS is not set
386CONFIG_NETDEVICES=y 394CONFIG_NETDEVICES=y
387# CONFIG_NETDEVICES_MULTIQUEUE is not set
388# CONFIG_DUMMY is not set 395# CONFIG_DUMMY is not set
389# CONFIG_BONDING is not set 396# CONFIG_BONDING is not set
390# CONFIG_MACVLAN is not set 397# CONFIG_MACVLAN is not set
@@ -416,9 +423,7 @@ CONFIG_MII=y
416# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 423# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
417# CONFIG_B44 is not set 424# CONFIG_B44 is not set
418CONFIG_NETDEV_1000=y 425CONFIG_NETDEV_1000=y
419# CONFIG_E1000E_ENABLED is not set
420CONFIG_GIANFAR=y 426CONFIG_GIANFAR=y
421CONFIG_GFAR_NAPI=y
422CONFIG_NETDEV_10000=y 427CONFIG_NETDEV_10000=y
423 428
424# 429#
@@ -504,6 +509,8 @@ CONFIG_GEN_RTC=y
504# CONFIG_TCG_TPM is not set 509# CONFIG_TCG_TPM is not set
505# CONFIG_I2C is not set 510# CONFIG_I2C is not set
506# CONFIG_SPI is not set 511# CONFIG_SPI is not set
512CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
513# CONFIG_GPIOLIB is not set
507# CONFIG_W1 is not set 514# CONFIG_W1 is not set
508# CONFIG_POWER_SUPPLY is not set 515# CONFIG_POWER_SUPPLY is not set
509CONFIG_HWMON=y 516CONFIG_HWMON=y
@@ -520,6 +527,7 @@ CONFIG_HWMON=y
520# CONFIG_SENSORS_W83627EHF is not set 527# CONFIG_SENSORS_W83627EHF is not set
521# CONFIG_HWMON_DEBUG_CHIP is not set 528# CONFIG_HWMON_DEBUG_CHIP is not set
522# CONFIG_THERMAL is not set 529# CONFIG_THERMAL is not set
530# CONFIG_THERMAL_HWMON is not set
523# CONFIG_WATCHDOG is not set 531# CONFIG_WATCHDOG is not set
524 532
525# 533#
@@ -531,8 +539,10 @@ CONFIG_SSB_POSSIBLE=y
531# 539#
532# Multifunction device drivers 540# Multifunction device drivers
533# 541#
542# CONFIG_MFD_CORE is not set
534# CONFIG_MFD_SM501 is not set 543# CONFIG_MFD_SM501 is not set
535# CONFIG_HTC_PASIC3 is not set 544# CONFIG_HTC_PASIC3 is not set
545# CONFIG_MFD_TMIO is not set
536 546
537# 547#
538# Multimedia devices 548# Multimedia devices
@@ -562,10 +572,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
562# Display device support 572# Display device support
563# 573#
564# CONFIG_DISPLAY_SUPPORT is not set 574# CONFIG_DISPLAY_SUPPORT is not set
565
566#
567# Sound
568#
569# CONFIG_SOUND is not set 575# CONFIG_SOUND is not set
570CONFIG_HID_SUPPORT=y 576CONFIG_HID_SUPPORT=y
571CONFIG_HID=y 577CONFIG_HID=y
@@ -579,6 +585,10 @@ CONFIG_USB_SUPPORT=y
579# CONFIG_USB_OTG_BLACKLIST_HUB is not set 585# CONFIG_USB_OTG_BLACKLIST_HUB is not set
580 586
581# 587#
588# Enable Host or Gadget support to see Inventra options
589#
590
591#
582# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 592# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
583# 593#
584# CONFIG_USB_GADGET is not set 594# CONFIG_USB_GADGET is not set
@@ -655,6 +665,7 @@ CONFIG_TMPFS=y
655# CONFIG_CRAMFS is not set 665# CONFIG_CRAMFS is not set
656# CONFIG_VXFS_FS is not set 666# CONFIG_VXFS_FS is not set
657# CONFIG_MINIX_FS is not set 667# CONFIG_MINIX_FS is not set
668# CONFIG_OMFS_FS is not set
658# CONFIG_HPFS_FS is not set 669# CONFIG_HPFS_FS is not set
659# CONFIG_QNX4FS_FS is not set 670# CONFIG_QNX4FS_FS is not set
660# CONFIG_ROMFS_FS is not set 671# CONFIG_ROMFS_FS is not set
@@ -664,12 +675,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
664CONFIG_NFS_FS=y 675CONFIG_NFS_FS=y
665# CONFIG_NFS_V3 is not set 676# CONFIG_NFS_V3 is not set
666# CONFIG_NFS_V4 is not set 677# CONFIG_NFS_V4 is not set
667# CONFIG_NFSD is not set
668CONFIG_ROOT_NFS=y 678CONFIG_ROOT_NFS=y
679# CONFIG_NFSD is not set
669CONFIG_LOCKD=y 680CONFIG_LOCKD=y
670CONFIG_NFS_COMMON=y 681CONFIG_NFS_COMMON=y
671CONFIG_SUNRPC=y 682CONFIG_SUNRPC=y
672# CONFIG_SUNRPC_BIND34 is not set
673# CONFIG_RPCSEC_GSS_KRB5 is not set 683# CONFIG_RPCSEC_GSS_KRB5 is not set
674# CONFIG_RPCSEC_GSS_SPKM3 is not set 684# CONFIG_RPCSEC_GSS_SPKM3 is not set
675# CONFIG_SMB_FS is not set 685# CONFIG_SMB_FS is not set
@@ -705,6 +715,7 @@ CONFIG_BITREVERSE=y
705# CONFIG_GENERIC_FIND_FIRST_BIT is not set 715# CONFIG_GENERIC_FIND_FIRST_BIT is not set
706# CONFIG_CRC_CCITT is not set 716# CONFIG_CRC_CCITT is not set
707# CONFIG_CRC16 is not set 717# CONFIG_CRC16 is not set
718# CONFIG_CRC_T10DIF is not set
708# CONFIG_CRC_ITU_T is not set 719# CONFIG_CRC_ITU_T is not set
709CONFIG_CRC32=y 720CONFIG_CRC32=y
710# CONFIG_CRC7 is not set 721# CONFIG_CRC7 is not set
@@ -729,6 +740,8 @@ CONFIG_FRAME_WARN=1024
729CONFIG_DEBUG_KERNEL=y 740CONFIG_DEBUG_KERNEL=y
730# CONFIG_DEBUG_SHIRQ is not set 741# CONFIG_DEBUG_SHIRQ is not set
731CONFIG_DETECT_SOFTLOCKUP=y 742CONFIG_DETECT_SOFTLOCKUP=y
743# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
744CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
732CONFIG_SCHED_DEBUG=y 745CONFIG_SCHED_DEBUG=y
733# CONFIG_SCHEDSTATS is not set 746# CONFIG_SCHEDSTATS is not set
734# CONFIG_TIMER_STATS is not set 747# CONFIG_TIMER_STATS is not set
@@ -746,16 +759,29 @@ CONFIG_DEBUG_MUTEXES=y
746# CONFIG_DEBUG_INFO is not set 759# CONFIG_DEBUG_INFO is not set
747# CONFIG_DEBUG_VM is not set 760# CONFIG_DEBUG_VM is not set
748# CONFIG_DEBUG_WRITECOUNT is not set 761# CONFIG_DEBUG_WRITECOUNT is not set
762# CONFIG_DEBUG_MEMORY_INIT is not set
749# CONFIG_DEBUG_LIST is not set 763# CONFIG_DEBUG_LIST is not set
750# CONFIG_DEBUG_SG is not set 764# CONFIG_DEBUG_SG is not set
751# CONFIG_BOOT_PRINTK_DELAY is not set 765# CONFIG_BOOT_PRINTK_DELAY is not set
766# CONFIG_RCU_TORTURE_TEST is not set
752# CONFIG_BACKTRACE_SELF_TEST is not set 767# CONFIG_BACKTRACE_SELF_TEST is not set
753# CONFIG_FAULT_INJECTION is not set 768# CONFIG_FAULT_INJECTION is not set
769# CONFIG_LATENCYTOP is not set
770CONFIG_SYSCTL_SYSCALL_CHECK=y
771CONFIG_HAVE_FTRACE=y
772CONFIG_HAVE_DYNAMIC_FTRACE=y
773# CONFIG_FTRACE is not set
774# CONFIG_SCHED_TRACER is not set
775# CONFIG_CONTEXT_SWITCH_TRACER is not set
754# CONFIG_SAMPLES is not set 776# CONFIG_SAMPLES is not set
777CONFIG_HAVE_ARCH_KGDB=y
778# CONFIG_KGDB is not set
755# CONFIG_DEBUG_STACKOVERFLOW is not set 779# CONFIG_DEBUG_STACKOVERFLOW is not set
756# CONFIG_DEBUG_STACK_USAGE is not set 780# CONFIG_DEBUG_STACK_USAGE is not set
757# CONFIG_DEBUG_PAGEALLOC is not set 781# CONFIG_DEBUG_PAGEALLOC is not set
758# CONFIG_DEBUGGER is not set 782# CONFIG_CODE_PATCHING_SELFTEST is not set
783# CONFIG_FTR_FIXUP_SELFTEST is not set
784# CONFIG_XMON is not set
759# CONFIG_IRQSTACKS is not set 785# CONFIG_IRQSTACKS is not set
760# CONFIG_BDI_SWITCH is not set 786# CONFIG_BDI_SWITCH is not set
761# CONFIG_PPC_EARLY_DEBUG is not set 787# CONFIG_PPC_EARLY_DEBUG is not set
@@ -808,6 +834,10 @@ CONFIG_CRYPTO=y
808# CONFIG_CRYPTO_MD4 is not set 834# CONFIG_CRYPTO_MD4 is not set
809# CONFIG_CRYPTO_MD5 is not set 835# CONFIG_CRYPTO_MD5 is not set
810# CONFIG_CRYPTO_MICHAEL_MIC is not set 836# CONFIG_CRYPTO_MICHAEL_MIC is not set
837# CONFIG_CRYPTO_RMD128 is not set
838# CONFIG_CRYPTO_RMD160 is not set
839# CONFIG_CRYPTO_RMD256 is not set
840# CONFIG_CRYPTO_RMD320 is not set
811# CONFIG_CRYPTO_SHA1 is not set 841# CONFIG_CRYPTO_SHA1 is not set
812# CONFIG_CRYPTO_SHA256 is not set 842# CONFIG_CRYPTO_SHA256 is not set
813# CONFIG_CRYPTO_SHA512 is not set 843# CONFIG_CRYPTO_SHA512 is not set
@@ -839,5 +869,6 @@ CONFIG_CRYPTO=y
839# CONFIG_CRYPTO_DEFLATE is not set 869# CONFIG_CRYPTO_DEFLATE is not set
840# CONFIG_CRYPTO_LZO is not set 870# CONFIG_CRYPTO_LZO is not set
841CONFIG_CRYPTO_HW=y 871CONFIG_CRYPTO_HW=y
872# CONFIG_CRYPTO_DEV_TALITOS is not set
842# CONFIG_PPC_CLOCK is not set 873# CONFIG_PPC_CLOCK is not set
843# CONFIG_VIRTUALIZATION is not set 874# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig b/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
index a0583e5119f5..1aecdeab9841 100644
--- a/arch/powerpc/configs/85xx/mpc8544_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8544_ds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:32 2008 4# Thu Aug 21 07:20:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -92,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +119,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -138,6 +145,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 146# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
141 149
142# 150#
143# IO Schedulers 151# IO Schedulers
@@ -156,8 +164,6 @@ CONFIG_CLASSIC_RCU=y
156# 164#
157# Platform support 165# Platform support
158# 166#
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
162# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PQ2ADS is not set 169# CONFIG_PQ2ADS is not set
@@ -166,11 +172,13 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC8560_ADS is not set 172# CONFIG_MPC8560_ADS is not set
167# CONFIG_MPC85xx_CDS is not set 173# CONFIG_MPC85xx_CDS is not set
168# CONFIG_MPC85xx_MDS is not set 174# CONFIG_MPC85xx_MDS is not set
175# CONFIG_MPC8536_DS is not set
169CONFIG_MPC85xx_DS=y 176CONFIG_MPC85xx_DS=y
170# CONFIG_KSI8560 is not set 177# CONFIG_KSI8560 is not set
171# CONFIG_STX_GP3 is not set 178# CONFIG_STX_GP3 is not set
172# CONFIG_TQM8540 is not set 179# CONFIG_TQM8540 is not set
173# CONFIG_TQM8541 is not set 180# CONFIG_TQM8541 is not set
181# CONFIG_TQM8548 is not set
174# CONFIG_TQM8555 is not set 182# CONFIG_TQM8555 is not set
175# CONFIG_TQM8560 is not set 183# CONFIG_TQM8560 is not set
176# CONFIG_SBC8548 is not set 184# CONFIG_SBC8548 is not set
@@ -202,7 +210,7 @@ CONFIG_HZ_250=y
202# CONFIG_HZ_300 is not set 210# CONFIG_HZ_300 is not set
203# CONFIG_HZ_1000 is not set 211# CONFIG_HZ_1000 is not set
204CONFIG_HZ=250 212CONFIG_HZ=250
205# CONFIG_SCHED_HRTICK is not set 213CONFIG_SCHED_HRTICK=y
206CONFIG_PREEMPT_NONE=y 214CONFIG_PREEMPT_NONE=y
207# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
208# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
@@ -225,6 +233,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 237# CONFIG_RESOURCES_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
@@ -232,6 +241,7 @@ CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
233CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
234# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
244CONFIG_EXTRA_TARGETS=""
235# CONFIG_PM is not set 245# CONFIG_PM is not set
236CONFIG_SECCOMP=y 246CONFIG_SECCOMP=y
237CONFIG_ISA_DMA_API=y 247CONFIG_ISA_DMA_API=y
@@ -244,6 +254,7 @@ CONFIG_GENERIC_ISA_DMA=y
244CONFIG_PPC_INDIRECT_PCI=y 254CONFIG_PPC_INDIRECT_PCI=y
245CONFIG_FSL_SOC=y 255CONFIG_FSL_SOC=y
246CONFIG_FSL_PCI=y 256CONFIG_FSL_PCI=y
257CONFIG_PPC_PCI_CHOICE=y
247CONFIG_PCI=y 258CONFIG_PCI=y
248CONFIG_PCI_DOMAINS=y 259CONFIG_PCI_DOMAINS=y
249CONFIG_PCI_SYSCALL=y 260CONFIG_PCI_SYSCALL=y
@@ -270,10 +281,6 @@ CONFIG_KERNEL_START=0xc0000000
270CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
271CONFIG_PHYSICAL_ALIGN=0x10000000 282CONFIG_PHYSICAL_ALIGN=0x10000000
272CONFIG_TASK_SIZE=0xc0000000 283CONFIG_TASK_SIZE=0xc0000000
273
274#
275# Networking
276#
277CONFIG_NET=y 284CONFIG_NET=y
278 285
279# 286#
@@ -399,6 +406,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
399CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
400CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
401CONFIG_FW_LOADER=y 408CONFIG_FW_LOADER=y
409CONFIG_FIRMWARE_IN_KERNEL=y
410CONFIG_EXTRA_FIRMWARE=""
402# CONFIG_DEBUG_DRIVER is not set 411# CONFIG_DEBUG_DRIVER is not set
403# CONFIG_DEBUG_DEVRES is not set 412# CONFIG_DEBUG_DEVRES is not set
404# CONFIG_SYS_HYPERVISOR is not set 413# CONFIG_SYS_HYPERVISOR is not set
@@ -425,12 +434,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
425# CONFIG_BLK_DEV_XIP is not set 434# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 435# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 436# CONFIG_ATA_OVER_ETH is not set
437# CONFIG_BLK_DEV_HD is not set
428CONFIG_MISC_DEVICES=y 438CONFIG_MISC_DEVICES=y
429# CONFIG_PHANTOM is not set 439# CONFIG_PHANTOM is not set
430# CONFIG_EEPROM_93CX6 is not set 440# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 441# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 442# CONFIG_TIFM_CORE is not set
433# CONFIG_ENCLOSURE_SERVICES is not set 443# CONFIG_ENCLOSURE_SERVICES is not set
444# CONFIG_HP_ILO is not set
434CONFIG_HAVE_IDE=y 445CONFIG_HAVE_IDE=y
435# CONFIG_IDE is not set 446# CONFIG_IDE is not set
436 447
@@ -510,6 +521,7 @@ CONFIG_SCSI_LOWLEVEL=y
510# CONFIG_SCSI_NSP32 is not set 521# CONFIG_SCSI_NSP32 is not set
511# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
512# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
524# CONFIG_SCSI_DH is not set
513CONFIG_ATA=y 525CONFIG_ATA=y
514# CONFIG_ATA_NONSTANDARD is not set 526# CONFIG_ATA_NONSTANDARD is not set
515CONFIG_SATA_PMP=y 527CONFIG_SATA_PMP=y
@@ -577,12 +589,15 @@ CONFIG_PATA_ALI=y
577# 589#
578# IEEE 1394 (FireWire) support 590# IEEE 1394 (FireWire) support
579# 591#
592
593#
594# Enable only one of the two stacks, unless you know what you are doing
595#
580# CONFIG_FIREWIRE is not set 596# CONFIG_FIREWIRE is not set
581# CONFIG_IEEE1394 is not set 597# CONFIG_IEEE1394 is not set
582# CONFIG_I2O is not set 598# CONFIG_I2O is not set
583# CONFIG_MACINTOSH_DRIVERS is not set 599# CONFIG_MACINTOSH_DRIVERS is not set
584CONFIG_NETDEVICES=y 600CONFIG_NETDEVICES=y
585# CONFIG_NETDEVICES_MULTIQUEUE is not set
586CONFIG_DUMMY=y 601CONFIG_DUMMY=y
587# CONFIG_BONDING is not set 602# CONFIG_BONDING is not set
588# CONFIG_MACVLAN is not set 603# CONFIG_MACVLAN is not set
@@ -626,7 +641,6 @@ CONFIG_NETDEV_1000=y
626# CONFIG_DL2K is not set 641# CONFIG_DL2K is not set
627# CONFIG_E1000 is not set 642# CONFIG_E1000 is not set
628# CONFIG_E1000E is not set 643# CONFIG_E1000E is not set
629# CONFIG_E1000E_ENABLED is not set
630# CONFIG_IP1000 is not set 644# CONFIG_IP1000 is not set
631# CONFIG_IGB is not set 645# CONFIG_IGB is not set
632# CONFIG_NS83820 is not set 646# CONFIG_NS83820 is not set
@@ -640,9 +654,9 @@ CONFIG_NETDEV_1000=y
640# CONFIG_TIGON3 is not set 654# CONFIG_TIGON3 is not set
641# CONFIG_BNX2 is not set 655# CONFIG_BNX2 is not set
642CONFIG_GIANFAR=y 656CONFIG_GIANFAR=y
643CONFIG_GFAR_NAPI=y
644# CONFIG_QLA3XXX is not set 657# CONFIG_QLA3XXX is not set
645# CONFIG_ATL1 is not set 658# CONFIG_ATL1 is not set
659# CONFIG_ATL1E is not set
646CONFIG_NETDEV_10000=y 660CONFIG_NETDEV_10000=y
647# CONFIG_CHELSIO_T1 is not set 661# CONFIG_CHELSIO_T1 is not set
648# CONFIG_CHELSIO_T3 is not set 662# CONFIG_CHELSIO_T3 is not set
@@ -719,12 +733,14 @@ CONFIG_SERIO_SERPORT=y
719# CONFIG_SERIO_PCIPS2 is not set 733# CONFIG_SERIO_PCIPS2 is not set
720CONFIG_SERIO_LIBPS2=y 734CONFIG_SERIO_LIBPS2=y
721# CONFIG_SERIO_RAW is not set 735# CONFIG_SERIO_RAW is not set
736# CONFIG_SERIO_XILINX_XPS_PS2 is not set
722# CONFIG_GAMEPORT is not set 737# CONFIG_GAMEPORT is not set
723 738
724# 739#
725# Character devices 740# Character devices
726# 741#
727CONFIG_VT=y 742CONFIG_VT=y
743CONFIG_CONSOLE_TRANSLATIONS=y
728CONFIG_VT_CONSOLE=y 744CONFIG_VT_CONSOLE=y
729CONFIG_HW_CONSOLE=y 745CONFIG_HW_CONSOLE=y
730# CONFIG_VT_HW_CONSOLE_BINDING is not set 746# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -758,7 +774,7 @@ CONFIG_UNIX98_PTYS=y
758CONFIG_LEGACY_PTYS=y 774CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 775CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 776# CONFIG_IPMI_HANDLER is not set
761# CONFIG_HW_RANDOM is not set 777CONFIG_HW_RANDOM=y
762CONFIG_NVRAM=y 778CONFIG_NVRAM=y
763# CONFIG_R3964 is not set 779# CONFIG_R3964 is not set
764# CONFIG_APPLICOM is not set 780# CONFIG_APPLICOM is not set
@@ -768,43 +784,64 @@ CONFIG_DEVPORT=y
768CONFIG_I2C=y 784CONFIG_I2C=y
769CONFIG_I2C_BOARDINFO=y 785CONFIG_I2C_BOARDINFO=y
770# CONFIG_I2C_CHARDEV is not set 786# CONFIG_I2C_CHARDEV is not set
787CONFIG_I2C_HELPER_AUTO=y
771 788
772# 789#
773# I2C Hardware Bus support 790# I2C Hardware Bus support
774# 791#
792
793#
794# PC SMBus host controller drivers
795#
775# CONFIG_I2C_ALI1535 is not set 796# CONFIG_I2C_ALI1535 is not set
776# CONFIG_I2C_ALI1563 is not set 797# CONFIG_I2C_ALI1563 is not set
777# CONFIG_I2C_ALI15X3 is not set 798# CONFIG_I2C_ALI15X3 is not set
778# CONFIG_I2C_AMD756 is not set 799# CONFIG_I2C_AMD756 is not set
779# CONFIG_I2C_AMD8111 is not set 800# CONFIG_I2C_AMD8111 is not set
780# CONFIG_I2C_I801 is not set 801# CONFIG_I2C_I801 is not set
781# CONFIG_I2C_I810 is not set 802# CONFIG_I2C_ISCH is not set
782# CONFIG_I2C_PIIX4 is not set 803# CONFIG_I2C_PIIX4 is not set
783CONFIG_I2C_MPC=y
784# CONFIG_I2C_NFORCE2 is not set 804# CONFIG_I2C_NFORCE2 is not set
785# CONFIG_I2C_OCORES is not set
786# CONFIG_I2C_PARPORT_LIGHT is not set
787# CONFIG_I2C_PROSAVAGE is not set
788# CONFIG_I2C_SAVAGE4 is not set
789# CONFIG_I2C_SIMTEC is not set
790# CONFIG_I2C_SIS5595 is not set 805# CONFIG_I2C_SIS5595 is not set
791# CONFIG_I2C_SIS630 is not set 806# CONFIG_I2C_SIS630 is not set
792# CONFIG_I2C_SIS96X is not set 807# CONFIG_I2C_SIS96X is not set
793# CONFIG_I2C_TAOS_EVM is not set
794# CONFIG_I2C_STUB is not set
795# CONFIG_I2C_TINY_USB is not set
796# CONFIG_I2C_VIA is not set 808# CONFIG_I2C_VIA is not set
797# CONFIG_I2C_VIAPRO is not set 809# CONFIG_I2C_VIAPRO is not set
810
811#
812# I2C system bus drivers (mostly embedded / system-on-chip)
813#
814CONFIG_I2C_MPC=y
815# CONFIG_I2C_OCORES is not set
816# CONFIG_I2C_SIMTEC is not set
817
818#
819# External I2C/SMBus adapter drivers
820#
821# CONFIG_I2C_PARPORT_LIGHT is not set
822# CONFIG_I2C_TAOS_EVM is not set
823# CONFIG_I2C_TINY_USB is not set
824
825#
826# Graphics adapter I2C/DDC channel drivers
827#
798# CONFIG_I2C_VOODOO3 is not set 828# CONFIG_I2C_VOODOO3 is not set
829
830#
831# Other I2C/SMBus bus drivers
832#
799# CONFIG_I2C_PCA_PLATFORM is not set 833# CONFIG_I2C_PCA_PLATFORM is not set
834# CONFIG_I2C_STUB is not set
800 835
801# 836#
802# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
803# 838#
804# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
840# CONFIG_AT24 is not set
805CONFIG_SENSORS_EEPROM=y 841CONFIG_SENSORS_EEPROM=y
806# CONFIG_SENSORS_PCF8574 is not set 842# CONFIG_SENSORS_PCF8574 is not set
807# CONFIG_PCF8575 is not set 843# CONFIG_PCF8575 is not set
844# CONFIG_SENSORS_PCA9539 is not set
808# CONFIG_SENSORS_PCF8591 is not set 845# CONFIG_SENSORS_PCF8591 is not set
809# CONFIG_SENSORS_MAX6875 is not set 846# CONFIG_SENSORS_MAX6875 is not set
810# CONFIG_SENSORS_TSL2550 is not set 847# CONFIG_SENSORS_TSL2550 is not set
@@ -813,10 +850,13 @@ CONFIG_SENSORS_EEPROM=y
813# CONFIG_I2C_DEBUG_BUS is not set 850# CONFIG_I2C_DEBUG_BUS is not set
814# CONFIG_I2C_DEBUG_CHIP is not set 851# CONFIG_I2C_DEBUG_CHIP is not set
815# CONFIG_SPI is not set 852# CONFIG_SPI is not set
853CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
854# CONFIG_GPIOLIB is not set
816# CONFIG_W1 is not set 855# CONFIG_W1 is not set
817# CONFIG_POWER_SUPPLY is not set 856# CONFIG_POWER_SUPPLY is not set
818# CONFIG_HWMON is not set 857# CONFIG_HWMON is not set
819# CONFIG_THERMAL is not set 858# CONFIG_THERMAL is not set
859# CONFIG_THERMAL_HWMON is not set
820# CONFIG_WATCHDOG is not set 860# CONFIG_WATCHDOG is not set
821 861
822# 862#
@@ -828,8 +868,10 @@ CONFIG_SSB_POSSIBLE=y
828# 868#
829# Multifunction device drivers 869# Multifunction device drivers
830# 870#
871# CONFIG_MFD_CORE is not set
831# CONFIG_MFD_SM501 is not set 872# CONFIG_MFD_SM501 is not set
832# CONFIG_HTC_PASIC3 is not set 873# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set
833 875
834# 876#
835# Multimedia devices 877# Multimedia devices
@@ -871,6 +913,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
871# CONFIG_DVB_TTUSB_BUDGET is not set 913# CONFIG_DVB_TTUSB_BUDGET is not set
872# CONFIG_DVB_TTUSB_DEC is not set 914# CONFIG_DVB_TTUSB_DEC is not set
873# CONFIG_DVB_CINERGYT2 is not set 915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set
874 917
875# 918#
876# Supported FlexCopII (B2C2) Adapters 919# Supported FlexCopII (B2C2) Adapters
@@ -917,6 +960,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
917# CONFIG_DVB_SP887X is not set 960# CONFIG_DVB_SP887X is not set
918# CONFIG_DVB_CX22700 is not set 961# CONFIG_DVB_CX22700 is not set
919# CONFIG_DVB_CX22702 is not set 962# CONFIG_DVB_CX22702 is not set
963# CONFIG_DVB_DRX397XD is not set
920# CONFIG_DVB_L64781 is not set 964# CONFIG_DVB_L64781 is not set
921# CONFIG_DVB_TDA1004X is not set 965# CONFIG_DVB_TDA1004X is not set
922# CONFIG_DVB_NXT6000 is not set 966# CONFIG_DVB_NXT6000 is not set
@@ -984,15 +1028,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
984CONFIG_VGA_CONSOLE=y 1028CONFIG_VGA_CONSOLE=y
985# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set
986CONFIG_DUMMY_CONSOLE=y 1030CONFIG_DUMMY_CONSOLE=y
987
988#
989# Sound
990#
991CONFIG_SOUND=y 1031CONFIG_SOUND=y
992
993#
994# Advanced Linux Sound Architecture
995#
996CONFIG_SND=y 1032CONFIG_SND=y
997CONFIG_SND_TIMER=y 1033CONFIG_SND_TIMER=y
998CONFIG_SND_PCM=y 1034CONFIG_SND_PCM=y
@@ -1006,19 +1042,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1006CONFIG_SND_VERBOSE_PROCFS=y 1042CONFIG_SND_VERBOSE_PROCFS=y
1007# CONFIG_SND_VERBOSE_PRINTK is not set 1043# CONFIG_SND_VERBOSE_PRINTK is not set
1008# CONFIG_SND_DEBUG is not set 1044# CONFIG_SND_DEBUG is not set
1009 1045CONFIG_SND_VMASTER=y
1010#
1011# Generic devices
1012#
1013CONFIG_SND_AC97_CODEC=y 1046CONFIG_SND_AC97_CODEC=y
1047CONFIG_SND_DRIVERS=y
1014# CONFIG_SND_DUMMY is not set 1048# CONFIG_SND_DUMMY is not set
1015# CONFIG_SND_MTPAV is not set 1049# CONFIG_SND_MTPAV is not set
1016# CONFIG_SND_SERIAL_U16550 is not set 1050# CONFIG_SND_SERIAL_U16550 is not set
1017# CONFIG_SND_MPU401 is not set 1051# CONFIG_SND_MPU401 is not set
1018 1052# CONFIG_SND_AC97_POWER_SAVE is not set
1019# 1053CONFIG_SND_PCI=y
1020# PCI devices
1021#
1022# CONFIG_SND_AD1889 is not set 1054# CONFIG_SND_AD1889 is not set
1023# CONFIG_SND_ALS300 is not set 1055# CONFIG_SND_ALS300 is not set
1024# CONFIG_SND_ALS4000 is not set 1056# CONFIG_SND_ALS4000 is not set
@@ -1080,39 +1112,12 @@ CONFIG_SND_INTEL8X0=y
1080# CONFIG_SND_VIRTUOSO is not set 1112# CONFIG_SND_VIRTUOSO is not set
1081# CONFIG_SND_VX222 is not set 1113# CONFIG_SND_VX222 is not set
1082# CONFIG_SND_YMFPCI is not set 1114# CONFIG_SND_YMFPCI is not set
1083# CONFIG_SND_AC97_POWER_SAVE is not set 1115CONFIG_SND_PPC=y
1084 1116CONFIG_SND_USB=y
1085#
1086# ALSA PowerMac devices
1087#
1088
1089#
1090# ALSA PowerPC devices
1091#
1092
1093#
1094# USB devices
1095#
1096# CONFIG_SND_USB_AUDIO is not set 1117# CONFIG_SND_USB_AUDIO is not set
1097# CONFIG_SND_USB_USX2Y is not set 1118# CONFIG_SND_USB_USX2Y is not set
1098# CONFIG_SND_USB_CAIAQ is not set 1119# CONFIG_SND_USB_CAIAQ is not set
1099
1100#
1101# System on Chip audio support
1102#
1103# CONFIG_SND_SOC is not set 1120# CONFIG_SND_SOC is not set
1104
1105#
1106# ALSA SoC audio for Freescale SOCs
1107#
1108
1109#
1110# SoC Audio for the Texas Instruments OMAP
1111#
1112
1113#
1114# Open Sound System
1115#
1116# CONFIG_SOUND_PRIME is not set 1121# CONFIG_SOUND_PRIME is not set
1117CONFIG_AC97_BUS=y 1122CONFIG_AC97_BUS=y
1118CONFIG_HID_SUPPORT=y 1123CONFIG_HID_SUPPORT=y
@@ -1144,6 +1149,7 @@ CONFIG_USB_DEVICE_CLASS=y
1144# CONFIG_USB_OTG is not set 1149# CONFIG_USB_OTG is not set
1145# CONFIG_USB_OTG_WHITELIST is not set 1150# CONFIG_USB_OTG_WHITELIST is not set
1146# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1151# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1152CONFIG_USB_MON=y
1147 1153
1148# 1154#
1149# USB Host Controller Drivers 1155# USB Host Controller Drivers
@@ -1195,6 +1201,7 @@ CONFIG_USB_STORAGE=y
1195# CONFIG_USB_STORAGE_ALAUDA is not set 1201# CONFIG_USB_STORAGE_ALAUDA is not set
1196# CONFIG_USB_STORAGE_ONETOUCH is not set 1202# CONFIG_USB_STORAGE_ONETOUCH is not set
1197# CONFIG_USB_STORAGE_KARMA is not set 1203# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_SIERRA is not set
1198# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1205# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1199# CONFIG_USB_LIBUSUAL is not set 1206# CONFIG_USB_LIBUSUAL is not set
1200 1207
@@ -1203,7 +1210,6 @@ CONFIG_USB_STORAGE=y
1203# 1210#
1204# CONFIG_USB_MDC800 is not set 1211# CONFIG_USB_MDC800 is not set
1205# CONFIG_USB_MICROTEK is not set 1212# CONFIG_USB_MICROTEK is not set
1206CONFIG_USB_MON=y
1207 1213
1208# 1214#
1209# USB port drivers 1215# USB port drivers
@@ -1216,7 +1222,6 @@ CONFIG_USB_MON=y
1216# CONFIG_USB_EMI62 is not set 1222# CONFIG_USB_EMI62 is not set
1217# CONFIG_USB_EMI26 is not set 1223# CONFIG_USB_EMI26 is not set
1218# CONFIG_USB_ADUTUX is not set 1224# CONFIG_USB_ADUTUX is not set
1219# CONFIG_USB_AUERSWALD is not set
1220# CONFIG_USB_RIO500 is not set 1225# CONFIG_USB_RIO500 is not set
1221# CONFIG_USB_LEGOTOWER is not set 1226# CONFIG_USB_LEGOTOWER is not set
1222# CONFIG_USB_LCD is not set 1227# CONFIG_USB_LCD is not set
@@ -1270,6 +1275,7 @@ CONFIG_RTC_INTF_DEV=y
1270# CONFIG_RTC_DRV_PCF8583 is not set 1275# CONFIG_RTC_DRV_PCF8583 is not set
1271# CONFIG_RTC_DRV_M41T80 is not set 1276# CONFIG_RTC_DRV_M41T80 is not set
1272# CONFIG_RTC_DRV_S35390A is not set 1277# CONFIG_RTC_DRV_S35390A is not set
1278# CONFIG_RTC_DRV_FM3130 is not set
1273 1279
1274# 1280#
1275# SPI RTC drivers 1281# SPI RTC drivers
@@ -1303,6 +1309,7 @@ CONFIG_DMA_ENGINE=y
1303# DMA Clients 1309# DMA Clients
1304# 1310#
1305# CONFIG_NET_DMA is not set 1311# CONFIG_NET_DMA is not set
1312# CONFIG_DMATEST is not set
1306# CONFIG_UIO is not set 1313# CONFIG_UIO is not set
1307 1314
1308# 1315#
@@ -1379,6 +1386,7 @@ CONFIG_EFS_FS=m
1379CONFIG_CRAMFS=y 1386CONFIG_CRAMFS=y
1380CONFIG_VXFS_FS=m 1387CONFIG_VXFS_FS=m
1381# CONFIG_MINIX_FS is not set 1388# CONFIG_MINIX_FS is not set
1389# CONFIG_OMFS_FS is not set
1382CONFIG_HPFS_FS=m 1390CONFIG_HPFS_FS=m
1383CONFIG_QNX4FS_FS=m 1391CONFIG_QNX4FS_FS=m
1384# CONFIG_ROMFS_FS is not set 1392# CONFIG_ROMFS_FS is not set
@@ -1391,17 +1399,16 @@ CONFIG_NFS_FS=y
1391CONFIG_NFS_V3=y 1399CONFIG_NFS_V3=y
1392# CONFIG_NFS_V3_ACL is not set 1400# CONFIG_NFS_V3_ACL is not set
1393CONFIG_NFS_V4=y 1401CONFIG_NFS_V4=y
1402CONFIG_ROOT_NFS=y
1394CONFIG_NFSD=y 1403CONFIG_NFSD=y
1395# CONFIG_NFSD_V3 is not set 1404# CONFIG_NFSD_V3 is not set
1396# CONFIG_NFSD_V4 is not set 1405# CONFIG_NFSD_V4 is not set
1397CONFIG_ROOT_NFS=y
1398CONFIG_LOCKD=y 1406CONFIG_LOCKD=y
1399CONFIG_LOCKD_V4=y 1407CONFIG_LOCKD_V4=y
1400CONFIG_EXPORTFS=y 1408CONFIG_EXPORTFS=y
1401CONFIG_NFS_COMMON=y 1409CONFIG_NFS_COMMON=y
1402CONFIG_SUNRPC=y 1410CONFIG_SUNRPC=y
1403CONFIG_SUNRPC_GSS=y 1411CONFIG_SUNRPC_GSS=y
1404# CONFIG_SUNRPC_BIND34 is not set
1405CONFIG_RPCSEC_GSS_KRB5=y 1412CONFIG_RPCSEC_GSS_KRB5=y
1406# CONFIG_RPCSEC_GSS_SPKM3 is not set 1413# CONFIG_RPCSEC_GSS_SPKM3 is not set
1407# CONFIG_SMB_FS is not set 1414# CONFIG_SMB_FS is not set
@@ -1480,6 +1487,7 @@ CONFIG_BITREVERSE=y
1480# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1487# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1481# CONFIG_CRC_CCITT is not set 1488# CONFIG_CRC_CCITT is not set
1482# CONFIG_CRC16 is not set 1489# CONFIG_CRC16 is not set
1490CONFIG_CRC_T10DIF=y
1483CONFIG_CRC_ITU_T=m 1491CONFIG_CRC_ITU_T=m
1484CONFIG_CRC32=y 1492CONFIG_CRC32=y
1485# CONFIG_CRC7 is not set 1493# CONFIG_CRC7 is not set
@@ -1505,6 +1513,8 @@ CONFIG_FRAME_WARN=1024
1505CONFIG_DEBUG_KERNEL=y 1513CONFIG_DEBUG_KERNEL=y
1506# CONFIG_DEBUG_SHIRQ is not set 1514# CONFIG_DEBUG_SHIRQ is not set
1507CONFIG_DETECT_SOFTLOCKUP=y 1515CONFIG_DETECT_SOFTLOCKUP=y
1516# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1517CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1508CONFIG_SCHED_DEBUG=y 1518CONFIG_SCHED_DEBUG=y
1509# CONFIG_SCHEDSTATS is not set 1519# CONFIG_SCHEDSTATS is not set
1510# CONFIG_TIMER_STATS is not set 1520# CONFIG_TIMER_STATS is not set
@@ -1523,17 +1533,29 @@ CONFIG_SCHED_DEBUG=y
1523CONFIG_DEBUG_INFO=y 1533CONFIG_DEBUG_INFO=y
1524# CONFIG_DEBUG_VM is not set 1534# CONFIG_DEBUG_VM is not set
1525# CONFIG_DEBUG_WRITECOUNT is not set 1535# CONFIG_DEBUG_WRITECOUNT is not set
1536# CONFIG_DEBUG_MEMORY_INIT is not set
1526# CONFIG_DEBUG_LIST is not set 1537# CONFIG_DEBUG_LIST is not set
1527# CONFIG_DEBUG_SG is not set 1538# CONFIG_DEBUG_SG is not set
1528# CONFIG_BOOT_PRINTK_DELAY is not set 1539# CONFIG_BOOT_PRINTK_DELAY is not set
1529# CONFIG_RCU_TORTURE_TEST is not set 1540# CONFIG_RCU_TORTURE_TEST is not set
1530# CONFIG_BACKTRACE_SELF_TEST is not set 1541# CONFIG_BACKTRACE_SELF_TEST is not set
1531# CONFIG_FAULT_INJECTION is not set 1542# CONFIG_FAULT_INJECTION is not set
1543# CONFIG_LATENCYTOP is not set
1544CONFIG_SYSCTL_SYSCALL_CHECK=y
1545CONFIG_HAVE_FTRACE=y
1546CONFIG_HAVE_DYNAMIC_FTRACE=y
1547# CONFIG_FTRACE is not set
1548# CONFIG_SCHED_TRACER is not set
1549# CONFIG_CONTEXT_SWITCH_TRACER is not set
1532# CONFIG_SAMPLES is not set 1550# CONFIG_SAMPLES is not set
1551CONFIG_HAVE_ARCH_KGDB=y
1552# CONFIG_KGDB is not set
1533# CONFIG_DEBUG_STACKOVERFLOW is not set 1553# CONFIG_DEBUG_STACKOVERFLOW is not set
1534# CONFIG_DEBUG_STACK_USAGE is not set 1554# CONFIG_DEBUG_STACK_USAGE is not set
1535# CONFIG_DEBUG_PAGEALLOC is not set 1555# CONFIG_DEBUG_PAGEALLOC is not set
1536# CONFIG_DEBUGGER is not set 1556# CONFIG_CODE_PATCHING_SELFTEST is not set
1557# CONFIG_FTR_FIXUP_SELFTEST is not set
1558# CONFIG_XMON is not set
1537# CONFIG_IRQSTACKS is not set 1559# CONFIG_IRQSTACKS is not set
1538# CONFIG_BDI_SWITCH is not set 1560# CONFIG_BDI_SWITCH is not set
1539# CONFIG_PPC_EARLY_DEBUG is not set 1561# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1550,13 +1572,14 @@ CONFIG_CRYPTO=y
1550# Crypto core or helper 1572# Crypto core or helper
1551# 1573#
1552CONFIG_CRYPTO_ALGAPI=y 1574CONFIG_CRYPTO_ALGAPI=y
1575CONFIG_CRYPTO_AEAD=y
1553CONFIG_CRYPTO_BLKCIPHER=y 1576CONFIG_CRYPTO_BLKCIPHER=y
1554CONFIG_CRYPTO_HASH=y 1577CONFIG_CRYPTO_HASH=y
1555CONFIG_CRYPTO_MANAGER=y 1578CONFIG_CRYPTO_MANAGER=y
1556# CONFIG_CRYPTO_GF128MUL is not set 1579# CONFIG_CRYPTO_GF128MUL is not set
1557# CONFIG_CRYPTO_NULL is not set 1580# CONFIG_CRYPTO_NULL is not set
1558# CONFIG_CRYPTO_CRYPTD is not set 1581# CONFIG_CRYPTO_CRYPTD is not set
1559# CONFIG_CRYPTO_AUTHENC is not set 1582CONFIG_CRYPTO_AUTHENC=y
1560# CONFIG_CRYPTO_TEST is not set 1583# CONFIG_CRYPTO_TEST is not set
1561 1584
1562# 1585#
@@ -1590,6 +1613,10 @@ CONFIG_CRYPTO_HMAC=y
1590# CONFIG_CRYPTO_MD4 is not set 1613# CONFIG_CRYPTO_MD4 is not set
1591CONFIG_CRYPTO_MD5=y 1614CONFIG_CRYPTO_MD5=y
1592# CONFIG_CRYPTO_MICHAEL_MIC is not set 1615# CONFIG_CRYPTO_MICHAEL_MIC is not set
1616# CONFIG_CRYPTO_RMD128 is not set
1617# CONFIG_CRYPTO_RMD160 is not set
1618# CONFIG_CRYPTO_RMD256 is not set
1619# CONFIG_CRYPTO_RMD320 is not set
1593CONFIG_CRYPTO_SHA1=m 1620CONFIG_CRYPTO_SHA1=m
1594# CONFIG_CRYPTO_SHA256 is not set 1621# CONFIG_CRYPTO_SHA256 is not set
1595# CONFIG_CRYPTO_SHA512 is not set 1622# CONFIG_CRYPTO_SHA512 is not set
@@ -1622,5 +1649,6 @@ CONFIG_CRYPTO_DES=y
1622# CONFIG_CRYPTO_LZO is not set 1649# CONFIG_CRYPTO_LZO is not set
1623CONFIG_CRYPTO_HW=y 1650CONFIG_CRYPTO_HW=y
1624# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1651# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1652CONFIG_CRYPTO_DEV_TALITOS=y
1625# CONFIG_PPC_CLOCK is not set 1653# CONFIG_PPC_CLOCK is not set
1626# CONFIG_VIRTUALIZATION is not set 1654# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig b/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
index e19592b42043..06e26d906f65 100644
--- a/arch/powerpc/configs/85xx/mpc8560_ads_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8560_ads_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:33 2008 4# Thu Aug 21 00:52:32 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 96# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -114,10 +116,16 @@ CONFIG_SLUB=y
114# CONFIG_PROFILING is not set 116# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
119# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126CONFIG_HAVE_CLK=y
120CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -128,6 +136,7 @@ CONFIG_BLOCK=y
128# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set 137# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set
131 140
132# 141#
133# IO Schedulers 142# IO Schedulers
@@ -146,8 +155,6 @@ CONFIG_CLASSIC_RCU=y
146# 155#
147# Platform support 156# Platform support
148# 157#
149# CONFIG_PPC_MPC512x is not set
150# CONFIG_PPC_MPC5121 is not set
151# CONFIG_PPC_CELL is not set 158# CONFIG_PPC_CELL is not set
152# CONFIG_PPC_CELL_NATIVE is not set 159# CONFIG_PPC_CELL_NATIVE is not set
153# CONFIG_PQ2ADS is not set 160# CONFIG_PQ2ADS is not set
@@ -156,11 +163,13 @@ CONFIG_MPC85xx=y
156CONFIG_MPC8560_ADS=y 163CONFIG_MPC8560_ADS=y
157# CONFIG_MPC85xx_CDS is not set 164# CONFIG_MPC85xx_CDS is not set
158# CONFIG_MPC85xx_MDS is not set 165# CONFIG_MPC85xx_MDS is not set
166# CONFIG_MPC8536_DS is not set
159# CONFIG_MPC85xx_DS is not set 167# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set 168# CONFIG_KSI8560 is not set
161# CONFIG_STX_GP3 is not set 169# CONFIG_STX_GP3 is not set
162# CONFIG_TQM8540 is not set 170# CONFIG_TQM8540 is not set
163# CONFIG_TQM8541 is not set 171# CONFIG_TQM8541 is not set
172# CONFIG_TQM8548 is not set
164# CONFIG_TQM8555 is not set 173# CONFIG_TQM8555 is not set
165# CONFIG_TQM8560 is not set 174# CONFIG_TQM8560 is not set
166# CONFIG_SBC8548 is not set 175# CONFIG_SBC8548 is not set
@@ -177,7 +186,6 @@ CONFIG_MPIC=y
177# CONFIG_GENERIC_IOMAP is not set 186# CONFIG_GENERIC_IOMAP is not set
178# CONFIG_CPU_FREQ is not set 187# CONFIG_CPU_FREQ is not set
179CONFIG_CPM2=y 188CONFIG_CPM2=y
180CONFIG_PPC_CPM_NEW_BINDING=y
181# CONFIG_FSL_ULI1575 is not set 189# CONFIG_FSL_ULI1575 is not set
182CONFIG_CPM=y 190CONFIG_CPM=y
183 191
@@ -217,6 +225,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 226CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 227CONFIG_SPLIT_PTLOCK_CPUS=4
228CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 229# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 230CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 231CONFIG_BOUNCE=y
@@ -224,6 +233,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 233CONFIG_FORCE_MAX_ZONEORDER=11
225# CONFIG_PROC_DEVICETREE is not set 234# CONFIG_PROC_DEVICETREE is not set
226# CONFIG_CMDLINE_BOOL is not set 235# CONFIG_CMDLINE_BOOL is not set
236CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 237# CONFIG_PM is not set
228# CONFIG_SECCOMP is not set 238# CONFIG_SECCOMP is not set
229CONFIG_ISA_DMA_API=y 239CONFIG_ISA_DMA_API=y
@@ -235,6 +245,7 @@ CONFIG_ZONE_DMA=y
235CONFIG_PPC_INDIRECT_PCI=y 245CONFIG_PPC_INDIRECT_PCI=y
236CONFIG_FSL_SOC=y 246CONFIG_FSL_SOC=y
237CONFIG_FSL_PCI=y 247CONFIG_FSL_PCI=y
248CONFIG_PPC_PCI_CHOICE=y
238CONFIG_PCI=y 249CONFIG_PCI=y
239CONFIG_PCI_DOMAINS=y 250CONFIG_PCI_DOMAINS=y
240CONFIG_PCI_SYSCALL=y 251CONFIG_PCI_SYSCALL=y
@@ -261,10 +272,6 @@ CONFIG_KERNEL_START=0xc0000000
261CONFIG_PHYSICAL_START=0x00000000 272CONFIG_PHYSICAL_START=0x00000000
262CONFIG_PHYSICAL_ALIGN=0x10000000 273CONFIG_PHYSICAL_ALIGN=0x10000000
263CONFIG_TASK_SIZE=0xc0000000 274CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 275CONFIG_NET=y
269 276
270# 277#
@@ -363,6 +370,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
363# CONFIG_CONNECTOR is not set 370# CONFIG_CONNECTOR is not set
364# CONFIG_MTD is not set 371# CONFIG_MTD is not set
365CONFIG_OF_DEVICE=y 372CONFIG_OF_DEVICE=y
373CONFIG_OF_GPIO=y
366# CONFIG_PARPORT is not set 374# CONFIG_PARPORT is not set
367CONFIG_BLK_DEV=y 375CONFIG_BLK_DEV=y
368# CONFIG_BLK_DEV_FD is not set 376# CONFIG_BLK_DEV_FD is not set
@@ -381,12 +389,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
381# CONFIG_BLK_DEV_XIP is not set 389# CONFIG_BLK_DEV_XIP is not set
382# CONFIG_CDROM_PKTCDVD is not set 390# CONFIG_CDROM_PKTCDVD is not set
383# CONFIG_ATA_OVER_ETH is not set 391# CONFIG_ATA_OVER_ETH is not set
392# CONFIG_BLK_DEV_HD is not set
384CONFIG_MISC_DEVICES=y 393CONFIG_MISC_DEVICES=y
385# CONFIG_PHANTOM is not set 394# CONFIG_PHANTOM is not set
386# CONFIG_EEPROM_93CX6 is not set 395# CONFIG_EEPROM_93CX6 is not set
387# CONFIG_SGI_IOC4 is not set 396# CONFIG_SGI_IOC4 is not set
388# CONFIG_TIFM_CORE is not set 397# CONFIG_TIFM_CORE is not set
389# CONFIG_ENCLOSURE_SERVICES is not set 398# CONFIG_ENCLOSURE_SERVICES is not set
399# CONFIG_HP_ILO is not set
390CONFIG_HAVE_IDE=y 400CONFIG_HAVE_IDE=y
391# CONFIG_IDE is not set 401# CONFIG_IDE is not set
392 402
@@ -404,12 +414,15 @@ CONFIG_HAVE_IDE=y
404# 414#
405# IEEE 1394 (FireWire) support 415# IEEE 1394 (FireWire) support
406# 416#
417
418#
419# Enable only one of the two stacks, unless you know what you are doing
420#
407# CONFIG_FIREWIRE is not set 421# CONFIG_FIREWIRE is not set
408# CONFIG_IEEE1394 is not set 422# CONFIG_IEEE1394 is not set
409# CONFIG_I2O is not set 423# CONFIG_I2O is not set
410# CONFIG_MACINTOSH_DRIVERS is not set 424# CONFIG_MACINTOSH_DRIVERS is not set
411CONFIG_NETDEVICES=y 425CONFIG_NETDEVICES=y
412# CONFIG_NETDEVICES_MULTIQUEUE is not set
413# CONFIG_DUMMY is not set 426# CONFIG_DUMMY is not set
414# CONFIG_BONDING is not set 427# CONFIG_BONDING is not set
415# CONFIG_MACVLAN is not set 428# CONFIG_MACVLAN is not set
@@ -456,10 +469,8 @@ CONFIG_NETDEV_1000=y
456# CONFIG_ACENIC is not set 469# CONFIG_ACENIC is not set
457# CONFIG_DL2K is not set 470# CONFIG_DL2K is not set
458CONFIG_E1000=y 471CONFIG_E1000=y
459CONFIG_E1000_NAPI=y
460# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 472# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
461# CONFIG_E1000E is not set 473# CONFIG_E1000E is not set
462# CONFIG_E1000E_ENABLED is not set
463# CONFIG_IP1000 is not set 474# CONFIG_IP1000 is not set
464# CONFIG_IGB is not set 475# CONFIG_IGB is not set
465# CONFIG_NS83820 is not set 476# CONFIG_NS83820 is not set
@@ -473,9 +484,9 @@ CONFIG_E1000_NAPI=y
473# CONFIG_TIGON3 is not set 484# CONFIG_TIGON3 is not set
474# CONFIG_BNX2 is not set 485# CONFIG_BNX2 is not set
475CONFIG_GIANFAR=y 486CONFIG_GIANFAR=y
476CONFIG_GFAR_NAPI=y
477# CONFIG_QLA3XXX is not set 487# CONFIG_QLA3XXX is not set
478# CONFIG_ATL1 is not set 488# CONFIG_ATL1 is not set
489# CONFIG_ATL1E is not set
479CONFIG_NETDEV_10000=y 490CONFIG_NETDEV_10000=y
480# CONFIG_CHELSIO_T1 is not set 491# CONFIG_CHELSIO_T1 is not set
481# CONFIG_CHELSIO_T3 is not set 492# CONFIG_CHELSIO_T3 is not set
@@ -582,6 +593,24 @@ CONFIG_GEN_RTC=y
582CONFIG_DEVPORT=y 593CONFIG_DEVPORT=y
583# CONFIG_I2C is not set 594# CONFIG_I2C is not set
584# CONFIG_SPI is not set 595# CONFIG_SPI is not set
596CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
597CONFIG_ARCH_REQUIRE_GPIOLIB=y
598CONFIG_GPIOLIB=y
599# CONFIG_DEBUG_GPIO is not set
600# CONFIG_GPIO_SYSFS is not set
601
602#
603# I2C GPIO expanders:
604#
605
606#
607# PCI GPIO expanders:
608#
609# CONFIG_GPIO_BT8XX is not set
610
611#
612# SPI GPIO expanders:
613#
585# CONFIG_W1 is not set 614# CONFIG_W1 is not set
586# CONFIG_POWER_SUPPLY is not set 615# CONFIG_POWER_SUPPLY is not set
587CONFIG_HWMON=y 616CONFIG_HWMON=y
@@ -602,6 +631,7 @@ CONFIG_HWMON=y
602# CONFIG_SENSORS_W83627EHF is not set 631# CONFIG_SENSORS_W83627EHF is not set
603# CONFIG_HWMON_DEBUG_CHIP is not set 632# CONFIG_HWMON_DEBUG_CHIP is not set
604# CONFIG_THERMAL is not set 633# CONFIG_THERMAL is not set
634# CONFIG_THERMAL_HWMON is not set
605# CONFIG_WATCHDOG is not set 635# CONFIG_WATCHDOG is not set
606 636
607# 637#
@@ -613,8 +643,10 @@ CONFIG_SSB_POSSIBLE=y
613# 643#
614# Multifunction device drivers 644# Multifunction device drivers
615# 645#
646# CONFIG_MFD_CORE is not set
616# CONFIG_MFD_SM501 is not set 647# CONFIG_MFD_SM501 is not set
617# CONFIG_HTC_PASIC3 is not set 648# CONFIG_HTC_PASIC3 is not set
649# CONFIG_MFD_TMIO is not set
618 650
619# 651#
620# Multimedia devices 652# Multimedia devices
@@ -646,10 +678,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
646# Display device support 678# Display device support
647# 679#
648# CONFIG_DISPLAY_SUPPORT is not set 680# CONFIG_DISPLAY_SUPPORT is not set
649
650#
651# Sound
652#
653# CONFIG_SOUND is not set 681# CONFIG_SOUND is not set
654CONFIG_HID_SUPPORT=y 682CONFIG_HID_SUPPORT=y
655CONFIG_HID=y 683CONFIG_HID=y
@@ -664,6 +692,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
664# CONFIG_USB_OTG_BLACKLIST_HUB is not set 692# CONFIG_USB_OTG_BLACKLIST_HUB is not set
665 693
666# 694#
695# Enable Host or Gadget support to see Inventra options
696#
697
698#
667# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 699# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
668# 700#
669# CONFIG_USB_GADGET is not set 701# CONFIG_USB_GADGET is not set
@@ -741,6 +773,7 @@ CONFIG_TMPFS=y
741# CONFIG_CRAMFS is not set 773# CONFIG_CRAMFS is not set
742# CONFIG_VXFS_FS is not set 774# CONFIG_VXFS_FS is not set
743# CONFIG_MINIX_FS is not set 775# CONFIG_MINIX_FS is not set
776# CONFIG_OMFS_FS is not set
744# CONFIG_HPFS_FS is not set 777# CONFIG_HPFS_FS is not set
745# CONFIG_QNX4FS_FS is not set 778# CONFIG_QNX4FS_FS is not set
746# CONFIG_ROMFS_FS is not set 779# CONFIG_ROMFS_FS is not set
@@ -750,12 +783,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
750CONFIG_NFS_FS=y 783CONFIG_NFS_FS=y
751# CONFIG_NFS_V3 is not set 784# CONFIG_NFS_V3 is not set
752# CONFIG_NFS_V4 is not set 785# CONFIG_NFS_V4 is not set
753# CONFIG_NFSD is not set
754CONFIG_ROOT_NFS=y 786CONFIG_ROOT_NFS=y
787# CONFIG_NFSD is not set
755CONFIG_LOCKD=y 788CONFIG_LOCKD=y
756CONFIG_NFS_COMMON=y 789CONFIG_NFS_COMMON=y
757CONFIG_SUNRPC=y 790CONFIG_SUNRPC=y
758# CONFIG_SUNRPC_BIND34 is not set
759# CONFIG_RPCSEC_GSS_KRB5 is not set 791# CONFIG_RPCSEC_GSS_KRB5 is not set
760# CONFIG_RPCSEC_GSS_SPKM3 is not set 792# CONFIG_RPCSEC_GSS_SPKM3 is not set
761# CONFIG_SMB_FS is not set 793# CONFIG_SMB_FS is not set
@@ -791,6 +823,7 @@ CONFIG_BITREVERSE=y
791# CONFIG_GENERIC_FIND_FIRST_BIT is not set 823# CONFIG_GENERIC_FIND_FIRST_BIT is not set
792# CONFIG_CRC_CCITT is not set 824# CONFIG_CRC_CCITT is not set
793# CONFIG_CRC16 is not set 825# CONFIG_CRC16 is not set
826# CONFIG_CRC_T10DIF is not set
794# CONFIG_CRC_ITU_T is not set 827# CONFIG_CRC_ITU_T is not set
795CONFIG_CRC32=y 828CONFIG_CRC32=y
796# CONFIG_CRC7 is not set 829# CONFIG_CRC7 is not set
@@ -815,6 +848,8 @@ CONFIG_FRAME_WARN=1024
815CONFIG_DEBUG_KERNEL=y 848CONFIG_DEBUG_KERNEL=y
816# CONFIG_DEBUG_SHIRQ is not set 849# CONFIG_DEBUG_SHIRQ is not set
817CONFIG_DETECT_SOFTLOCKUP=y 850CONFIG_DETECT_SOFTLOCKUP=y
851# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
852CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
818CONFIG_SCHED_DEBUG=y 853CONFIG_SCHED_DEBUG=y
819# CONFIG_SCHEDSTATS is not set 854# CONFIG_SCHEDSTATS is not set
820# CONFIG_TIMER_STATS is not set 855# CONFIG_TIMER_STATS is not set
@@ -832,17 +867,29 @@ CONFIG_DEBUG_MUTEXES=y
832# CONFIG_DEBUG_INFO is not set 867# CONFIG_DEBUG_INFO is not set
833# CONFIG_DEBUG_VM is not set 868# CONFIG_DEBUG_VM is not set
834# CONFIG_DEBUG_WRITECOUNT is not set 869# CONFIG_DEBUG_WRITECOUNT is not set
870# CONFIG_DEBUG_MEMORY_INIT is not set
835# CONFIG_DEBUG_LIST is not set 871# CONFIG_DEBUG_LIST is not set
836# CONFIG_DEBUG_SG is not set 872# CONFIG_DEBUG_SG is not set
837# CONFIG_BOOT_PRINTK_DELAY is not set 873# CONFIG_BOOT_PRINTK_DELAY is not set
874# CONFIG_RCU_TORTURE_TEST is not set
838# CONFIG_BACKTRACE_SELF_TEST is not set 875# CONFIG_BACKTRACE_SELF_TEST is not set
839# CONFIG_FAULT_INJECTION is not set 876# CONFIG_FAULT_INJECTION is not set
877# CONFIG_LATENCYTOP is not set
878CONFIG_SYSCTL_SYSCALL_CHECK=y
879CONFIG_HAVE_FTRACE=y
880CONFIG_HAVE_DYNAMIC_FTRACE=y
881# CONFIG_FTRACE is not set
882# CONFIG_SCHED_TRACER is not set
883# CONFIG_CONTEXT_SWITCH_TRACER is not set
840# CONFIG_SAMPLES is not set 884# CONFIG_SAMPLES is not set
885CONFIG_HAVE_ARCH_KGDB=y
886# CONFIG_KGDB is not set
841# CONFIG_DEBUG_STACKOVERFLOW is not set 887# CONFIG_DEBUG_STACKOVERFLOW is not set
842# CONFIG_DEBUG_STACK_USAGE is not set 888# CONFIG_DEBUG_STACK_USAGE is not set
843# CONFIG_DEBUG_PAGEALLOC is not set 889# CONFIG_DEBUG_PAGEALLOC is not set
844# CONFIG_DEBUGGER is not set 890# CONFIG_CODE_PATCHING_SELFTEST is not set
845# CONFIG_KGDB_CONSOLE is not set 891# CONFIG_FTR_FIXUP_SELFTEST is not set
892# CONFIG_XMON is not set
846# CONFIG_IRQSTACKS is not set 893# CONFIG_IRQSTACKS is not set
847# CONFIG_BDI_SWITCH is not set 894# CONFIG_BDI_SWITCH is not set
848# CONFIG_PPC_EARLY_DEBUG is not set 895# CONFIG_PPC_EARLY_DEBUG is not set
@@ -895,6 +942,10 @@ CONFIG_CRYPTO=y
895# CONFIG_CRYPTO_MD4 is not set 942# CONFIG_CRYPTO_MD4 is not set
896# CONFIG_CRYPTO_MD5 is not set 943# CONFIG_CRYPTO_MD5 is not set
897# CONFIG_CRYPTO_MICHAEL_MIC is not set 944# CONFIG_CRYPTO_MICHAEL_MIC is not set
945# CONFIG_CRYPTO_RMD128 is not set
946# CONFIG_CRYPTO_RMD160 is not set
947# CONFIG_CRYPTO_RMD256 is not set
948# CONFIG_CRYPTO_RMD320 is not set
898# CONFIG_CRYPTO_SHA1 is not set 949# CONFIG_CRYPTO_SHA1 is not set
899# CONFIG_CRYPTO_SHA256 is not set 950# CONFIG_CRYPTO_SHA256 is not set
900# CONFIG_CRYPTO_SHA512 is not set 951# CONFIG_CRYPTO_SHA512 is not set
@@ -927,6 +978,7 @@ CONFIG_CRYPTO=y
927# CONFIG_CRYPTO_LZO is not set 978# CONFIG_CRYPTO_LZO is not set
928CONFIG_CRYPTO_HW=y 979CONFIG_CRYPTO_HW=y
929# CONFIG_CRYPTO_DEV_HIFN_795X is not set 980# CONFIG_CRYPTO_DEV_HIFN_795X is not set
930# CONFIG_PPC_CLOCK is not set 981# CONFIG_CRYPTO_DEV_TALITOS is not set
982CONFIG_PPC_CLOCK=y
931CONFIG_PPC_LIB_RHEAP=y 983CONFIG_PPC_LIB_RHEAP=y
932# CONFIG_VIRTUALIZATION is not set 984# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8568mds_defconfig b/arch/powerpc/configs/85xx/mpc8568mds_defconfig
index 28004e93aeee..dc27c74955fa 100644
--- a/arch/powerpc/configs/85xx/mpc8568mds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8568mds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:34 2008 4# Thu Aug 21 00:52:33 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 94# CONFIG_KALLSYMS is not set
94CONFIG_HOTPLUG=y 95CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -112,10 +113,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 114# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 128# CONFIG_TINY_SHMEM is not set
@@ -126,12 +133,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 133# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 134# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 135# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 136CONFIG_KMOD=y
130CONFIG_BLOCK=y 137CONFIG_BLOCK=y
131# CONFIG_LBD is not set 138# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 139# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 140# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 141# CONFIG_BLK_DEV_BSG is not set
142# CONFIG_BLK_DEV_INTEGRITY is not set
135 143
136# 144#
137# IO Schedulers 145# IO Schedulers
@@ -150,8 +158,6 @@ CONFIG_CLASSIC_RCU=y
150# 158#
151# Platform support 159# Platform support
152# 160#
153# CONFIG_PPC_MPC512x is not set
154# CONFIG_PPC_MPC5121 is not set
155# CONFIG_PPC_CELL is not set 161# CONFIG_PPC_CELL is not set
156# CONFIG_PPC_CELL_NATIVE is not set 162# CONFIG_PPC_CELL_NATIVE is not set
157# CONFIG_PQ2ADS is not set 163# CONFIG_PQ2ADS is not set
@@ -160,11 +166,13 @@ CONFIG_MPC85xx=y
160# CONFIG_MPC8560_ADS is not set 166# CONFIG_MPC8560_ADS is not set
161# CONFIG_MPC85xx_CDS is not set 167# CONFIG_MPC85xx_CDS is not set
162CONFIG_MPC85xx_MDS=y 168CONFIG_MPC85xx_MDS=y
169# CONFIG_MPC8536_DS is not set
163# CONFIG_MPC85xx_DS is not set 170# CONFIG_MPC85xx_DS is not set
164# CONFIG_KSI8560 is not set 171# CONFIG_KSI8560 is not set
165# CONFIG_STX_GP3 is not set 172# CONFIG_STX_GP3 is not set
166# CONFIG_TQM8540 is not set 173# CONFIG_TQM8540 is not set
167# CONFIG_TQM8541 is not set 174# CONFIG_TQM8541 is not set
175# CONFIG_TQM8548 is not set
168# CONFIG_TQM8555 is not set 176# CONFIG_TQM8555 is not set
169# CONFIG_TQM8560 is not set 177# CONFIG_TQM8560 is not set
170# CONFIG_SBC8548 is not set 178# CONFIG_SBC8548 is not set
@@ -197,7 +205,7 @@ CONFIG_HZ_250=y
197# CONFIG_HZ_300 is not set 205# CONFIG_HZ_300 is not set
198# CONFIG_HZ_1000 is not set 206# CONFIG_HZ_1000 is not set
199CONFIG_HZ=250 207CONFIG_HZ=250
200# CONFIG_SCHED_HRTICK is not set 208CONFIG_SCHED_HRTICK=y
201CONFIG_PREEMPT_NONE=y 209CONFIG_PREEMPT_NONE=y
202# CONFIG_PREEMPT_VOLUNTARY is not set 210# CONFIG_PREEMPT_VOLUNTARY is not set
203# CONFIG_PREEMPT is not set 211# CONFIG_PREEMPT is not set
@@ -220,6 +228,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
220# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
221CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
222CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y
223# CONFIG_RESOURCES_64BIT is not set 232# CONFIG_RESOURCES_64BIT is not set
224CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
225CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
@@ -227,6 +236,7 @@ CONFIG_VIRT_TO_BUS=y
227CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
228CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
229# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
239CONFIG_EXTRA_TARGETS=""
230# CONFIG_PM is not set 240# CONFIG_PM is not set
231CONFIG_SECCOMP=y 241CONFIG_SECCOMP=y
232CONFIG_ISA_DMA_API=y 242CONFIG_ISA_DMA_API=y
@@ -238,6 +248,7 @@ CONFIG_ZONE_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 248CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 249CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 250CONFIG_FSL_PCI=y
251CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 252CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 253CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 254CONFIG_PCI_SYSCALL=y
@@ -264,10 +275,6 @@ CONFIG_KERNEL_START=0xc0000000
264CONFIG_PHYSICAL_START=0x00000000 275CONFIG_PHYSICAL_START=0x00000000
265CONFIG_PHYSICAL_ALIGN=0x10000000 276CONFIG_PHYSICAL_ALIGN=0x10000000
266CONFIG_TASK_SIZE=0xc0000000 277CONFIG_TASK_SIZE=0xc0000000
267
268#
269# Networking
270#
271CONFIG_NET=y 278CONFIG_NET=y
272 279
273# 280#
@@ -385,12 +392,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
385# CONFIG_BLK_DEV_XIP is not set 392# CONFIG_BLK_DEV_XIP is not set
386# CONFIG_CDROM_PKTCDVD is not set 393# CONFIG_CDROM_PKTCDVD is not set
387# CONFIG_ATA_OVER_ETH is not set 394# CONFIG_ATA_OVER_ETH is not set
395# CONFIG_BLK_DEV_HD is not set
388CONFIG_MISC_DEVICES=y 396CONFIG_MISC_DEVICES=y
389# CONFIG_PHANTOM is not set 397# CONFIG_PHANTOM is not set
390# CONFIG_EEPROM_93CX6 is not set 398# CONFIG_EEPROM_93CX6 is not set
391# CONFIG_SGI_IOC4 is not set 399# CONFIG_SGI_IOC4 is not set
392# CONFIG_TIFM_CORE is not set 400# CONFIG_TIFM_CORE is not set
393# CONFIG_ENCLOSURE_SERVICES is not set 401# CONFIG_ENCLOSURE_SERVICES is not set
402# CONFIG_HP_ILO is not set
394CONFIG_HAVE_IDE=y 403CONFIG_HAVE_IDE=y
395# CONFIG_IDE is not set 404# CONFIG_IDE is not set
396 405
@@ -468,6 +477,7 @@ CONFIG_SCSI_LOWLEVEL=y
468# CONFIG_SCSI_NSP32 is not set 477# CONFIG_SCSI_NSP32 is not set
469# CONFIG_SCSI_DEBUG is not set 478# CONFIG_SCSI_DEBUG is not set
470# CONFIG_SCSI_SRP is not set 479# CONFIG_SCSI_SRP is not set
480# CONFIG_SCSI_DH is not set
471# CONFIG_ATA is not set 481# CONFIG_ATA is not set
472# CONFIG_MD is not set 482# CONFIG_MD is not set
473# CONFIG_FUSION is not set 483# CONFIG_FUSION is not set
@@ -475,12 +485,15 @@ CONFIG_SCSI_LOWLEVEL=y
475# 485#
476# IEEE 1394 (FireWire) support 486# IEEE 1394 (FireWire) support
477# 487#
488
489#
490# Enable only one of the two stacks, unless you know what you are doing
491#
478# CONFIG_FIREWIRE is not set 492# CONFIG_FIREWIRE is not set
479# CONFIG_IEEE1394 is not set 493# CONFIG_IEEE1394 is not set
480# CONFIG_I2O is not set 494# CONFIG_I2O is not set
481# CONFIG_MACINTOSH_DRIVERS is not set 495# CONFIG_MACINTOSH_DRIVERS is not set
482CONFIG_NETDEVICES=y 496CONFIG_NETDEVICES=y
483# CONFIG_NETDEVICES_MULTIQUEUE is not set
484# CONFIG_DUMMY is not set 497# CONFIG_DUMMY is not set
485# CONFIG_BONDING is not set 498# CONFIG_BONDING is not set
486# CONFIG_MACVLAN is not set 499# CONFIG_MACVLAN is not set
@@ -524,7 +537,6 @@ CONFIG_NETDEV_1000=y
524# CONFIG_DL2K is not set 537# CONFIG_DL2K is not set
525# CONFIG_E1000 is not set 538# CONFIG_E1000 is not set
526# CONFIG_E1000E is not set 539# CONFIG_E1000E is not set
527# CONFIG_E1000E_ENABLED is not set
528# CONFIG_IP1000 is not set 540# CONFIG_IP1000 is not set
529# CONFIG_IGB is not set 541# CONFIG_IGB is not set
530# CONFIG_NS83820 is not set 542# CONFIG_NS83820 is not set
@@ -538,10 +550,10 @@ CONFIG_NETDEV_1000=y
538# CONFIG_TIGON3 is not set 550# CONFIG_TIGON3 is not set
539# CONFIG_BNX2 is not set 551# CONFIG_BNX2 is not set
540CONFIG_GIANFAR=y 552CONFIG_GIANFAR=y
541CONFIG_GFAR_NAPI=y
542# CONFIG_UCC_GETH is not set 553# CONFIG_UCC_GETH is not set
543# CONFIG_QLA3XXX is not set 554# CONFIG_QLA3XXX is not set
544# CONFIG_ATL1 is not set 555# CONFIG_ATL1 is not set
556# CONFIG_ATL1E is not set
545CONFIG_NETDEV_10000=y 557CONFIG_NETDEV_10000=y
546# CONFIG_CHELSIO_T1 is not set 558# CONFIG_CHELSIO_T1 is not set
547# CONFIG_CHELSIO_T3 is not set 559# CONFIG_CHELSIO_T3 is not set
@@ -648,42 +660,63 @@ CONFIG_DEVPORT=y
648CONFIG_I2C=y 660CONFIG_I2C=y
649CONFIG_I2C_BOARDINFO=y 661CONFIG_I2C_BOARDINFO=y
650CONFIG_I2C_CHARDEV=y 662CONFIG_I2C_CHARDEV=y
663CONFIG_I2C_HELPER_AUTO=y
651 664
652# 665#
653# I2C Hardware Bus support 666# I2C Hardware Bus support
654# 667#
668
669#
670# PC SMBus host controller drivers
671#
655# CONFIG_I2C_ALI1535 is not set 672# CONFIG_I2C_ALI1535 is not set
656# CONFIG_I2C_ALI1563 is not set 673# CONFIG_I2C_ALI1563 is not set
657# CONFIG_I2C_ALI15X3 is not set 674# CONFIG_I2C_ALI15X3 is not set
658# CONFIG_I2C_AMD756 is not set 675# CONFIG_I2C_AMD756 is not set
659# CONFIG_I2C_AMD8111 is not set 676# CONFIG_I2C_AMD8111 is not set
660# CONFIG_I2C_I801 is not set 677# CONFIG_I2C_I801 is not set
661# CONFIG_I2C_I810 is not set 678# CONFIG_I2C_ISCH is not set
662# CONFIG_I2C_PIIX4 is not set 679# CONFIG_I2C_PIIX4 is not set
663CONFIG_I2C_MPC=y
664# CONFIG_I2C_NFORCE2 is not set 680# CONFIG_I2C_NFORCE2 is not set
665# CONFIG_I2C_OCORES is not set
666# CONFIG_I2C_PARPORT_LIGHT is not set
667# CONFIG_I2C_PROSAVAGE is not set
668# CONFIG_I2C_SAVAGE4 is not set
669# CONFIG_I2C_SIMTEC is not set
670# CONFIG_I2C_SIS5595 is not set 681# CONFIG_I2C_SIS5595 is not set
671# CONFIG_I2C_SIS630 is not set 682# CONFIG_I2C_SIS630 is not set
672# CONFIG_I2C_SIS96X is not set 683# CONFIG_I2C_SIS96X is not set
673# CONFIG_I2C_TAOS_EVM is not set
674# CONFIG_I2C_STUB is not set
675# CONFIG_I2C_VIA is not set 684# CONFIG_I2C_VIA is not set
676# CONFIG_I2C_VIAPRO is not set 685# CONFIG_I2C_VIAPRO is not set
686
687#
688# I2C system bus drivers (mostly embedded / system-on-chip)
689#
690CONFIG_I2C_MPC=y
691# CONFIG_I2C_OCORES is not set
692# CONFIG_I2C_SIMTEC is not set
693
694#
695# External I2C/SMBus adapter drivers
696#
697# CONFIG_I2C_PARPORT_LIGHT is not set
698# CONFIG_I2C_TAOS_EVM is not set
699
700#
701# Graphics adapter I2C/DDC channel drivers
702#
677# CONFIG_I2C_VOODOO3 is not set 703# CONFIG_I2C_VOODOO3 is not set
704
705#
706# Other I2C/SMBus bus drivers
707#
678# CONFIG_I2C_PCA_PLATFORM is not set 708# CONFIG_I2C_PCA_PLATFORM is not set
709# CONFIG_I2C_STUB is not set
679 710
680# 711#
681# Miscellaneous I2C Chip support 712# Miscellaneous I2C Chip support
682# 713#
683# CONFIG_DS1682 is not set 714# CONFIG_DS1682 is not set
715# CONFIG_AT24 is not set
684# CONFIG_SENSORS_EEPROM is not set 716# CONFIG_SENSORS_EEPROM is not set
685# CONFIG_SENSORS_PCF8574 is not set 717# CONFIG_SENSORS_PCF8574 is not set
686# CONFIG_PCF8575 is not set 718# CONFIG_PCF8575 is not set
719# CONFIG_SENSORS_PCA9539 is not set
687# CONFIG_SENSORS_PCF8591 is not set 720# CONFIG_SENSORS_PCF8591 is not set
688# CONFIG_SENSORS_MAX6875 is not set 721# CONFIG_SENSORS_MAX6875 is not set
689# CONFIG_SENSORS_TSL2550 is not set 722# CONFIG_SENSORS_TSL2550 is not set
@@ -692,10 +725,13 @@ CONFIG_I2C_MPC=y
692# CONFIG_I2C_DEBUG_BUS is not set 725# CONFIG_I2C_DEBUG_BUS is not set
693# CONFIG_I2C_DEBUG_CHIP is not set 726# CONFIG_I2C_DEBUG_CHIP is not set
694# CONFIG_SPI is not set 727# CONFIG_SPI is not set
728CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
729# CONFIG_GPIOLIB is not set
695# CONFIG_W1 is not set 730# CONFIG_W1 is not set
696# CONFIG_POWER_SUPPLY is not set 731# CONFIG_POWER_SUPPLY is not set
697CONFIG_HWMON=y 732CONFIG_HWMON=y
698# CONFIG_HWMON_VID is not set 733# CONFIG_HWMON_VID is not set
734# CONFIG_SENSORS_AD7414 is not set
699# CONFIG_SENSORS_AD7418 is not set 735# CONFIG_SENSORS_AD7418 is not set
700# CONFIG_SENSORS_ADM1021 is not set 736# CONFIG_SENSORS_ADM1021 is not set
701# CONFIG_SENSORS_ADM1025 is not set 737# CONFIG_SENSORS_ADM1025 is not set
@@ -749,6 +785,7 @@ CONFIG_HWMON=y
749# CONFIG_SENSORS_W83627EHF is not set 785# CONFIG_SENSORS_W83627EHF is not set
750# CONFIG_HWMON_DEBUG_CHIP is not set 786# CONFIG_HWMON_DEBUG_CHIP is not set
751# CONFIG_THERMAL is not set 787# CONFIG_THERMAL is not set
788# CONFIG_THERMAL_HWMON is not set
752CONFIG_WATCHDOG=y 789CONFIG_WATCHDOG=y
753# CONFIG_WATCHDOG_NOWAYOUT is not set 790# CONFIG_WATCHDOG_NOWAYOUT is not set
754 791
@@ -756,6 +793,7 @@ CONFIG_WATCHDOG=y
756# Watchdog Device Drivers 793# Watchdog Device Drivers
757# 794#
758# CONFIG_SOFT_WATCHDOG is not set 795# CONFIG_SOFT_WATCHDOG is not set
796# CONFIG_ALIM7101_WDT is not set
759# CONFIG_BOOKE_WDT is not set 797# CONFIG_BOOKE_WDT is not set
760 798
761# 799#
@@ -773,8 +811,10 @@ CONFIG_SSB_POSSIBLE=y
773# 811#
774# Multifunction device drivers 812# Multifunction device drivers
775# 813#
814# CONFIG_MFD_CORE is not set
776# CONFIG_MFD_SM501 is not set 815# CONFIG_MFD_SM501 is not set
777# CONFIG_HTC_PASIC3 is not set 816# CONFIG_HTC_PASIC3 is not set
817# CONFIG_MFD_TMIO is not set
778 818
779# 819#
780# Multimedia devices 820# Multimedia devices
@@ -806,10 +846,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
806# Display device support 846# Display device support
807# 847#
808# CONFIG_DISPLAY_SUPPORT is not set 848# CONFIG_DISPLAY_SUPPORT is not set
809
810#
811# Sound
812#
813# CONFIG_SOUND is not set 849# CONFIG_SOUND is not set
814CONFIG_HID_SUPPORT=y 850CONFIG_HID_SUPPORT=y
815CONFIG_HID=y 851CONFIG_HID=y
@@ -824,6 +860,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
824# CONFIG_USB_OTG_BLACKLIST_HUB is not set 860# CONFIG_USB_OTG_BLACKLIST_HUB is not set
825 861
826# 862#
863# Enable Host or Gadget support to see Inventra options
864#
865
866#
827# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 867# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
828# 868#
829# CONFIG_USB_GADGET is not set 869# CONFIG_USB_GADGET is not set
@@ -862,6 +902,7 @@ CONFIG_RTC_DRV_DS1374=y
862# CONFIG_RTC_DRV_PCF8583 is not set 902# CONFIG_RTC_DRV_PCF8583 is not set
863# CONFIG_RTC_DRV_M41T80 is not set 903# CONFIG_RTC_DRV_M41T80 is not set
864# CONFIG_RTC_DRV_S35390A is not set 904# CONFIG_RTC_DRV_S35390A is not set
905# CONFIG_RTC_DRV_FM3130 is not set
865 906
866# 907#
867# SPI RTC drivers 908# SPI RTC drivers
@@ -950,6 +991,7 @@ CONFIG_TMPFS=y
950# CONFIG_CRAMFS is not set 991# CONFIG_CRAMFS is not set
951# CONFIG_VXFS_FS is not set 992# CONFIG_VXFS_FS is not set
952# CONFIG_MINIX_FS is not set 993# CONFIG_MINIX_FS is not set
994# CONFIG_OMFS_FS is not set
953# CONFIG_HPFS_FS is not set 995# CONFIG_HPFS_FS is not set
954# CONFIG_QNX4FS_FS is not set 996# CONFIG_QNX4FS_FS is not set
955# CONFIG_ROMFS_FS is not set 997# CONFIG_ROMFS_FS is not set
@@ -960,14 +1002,13 @@ CONFIG_NFS_FS=y
960CONFIG_NFS_V3=y 1002CONFIG_NFS_V3=y
961# CONFIG_NFS_V3_ACL is not set 1003# CONFIG_NFS_V3_ACL is not set
962CONFIG_NFS_V4=y 1004CONFIG_NFS_V4=y
963# CONFIG_NFSD is not set
964CONFIG_ROOT_NFS=y 1005CONFIG_ROOT_NFS=y
1006# CONFIG_NFSD is not set
965CONFIG_LOCKD=y 1007CONFIG_LOCKD=y
966CONFIG_LOCKD_V4=y 1008CONFIG_LOCKD_V4=y
967CONFIG_NFS_COMMON=y 1009CONFIG_NFS_COMMON=y
968CONFIG_SUNRPC=y 1010CONFIG_SUNRPC=y
969CONFIG_SUNRPC_GSS=y 1011CONFIG_SUNRPC_GSS=y
970# CONFIG_SUNRPC_BIND34 is not set
971CONFIG_RPCSEC_GSS_KRB5=y 1012CONFIG_RPCSEC_GSS_KRB5=y
972# CONFIG_RPCSEC_GSS_SPKM3 is not set 1013# CONFIG_RPCSEC_GSS_SPKM3 is not set
973# CONFIG_SMB_FS is not set 1014# CONFIG_SMB_FS is not set
@@ -995,6 +1036,7 @@ CONFIG_PARTITION_ADVANCED=y
995# CONFIG_SYSV68_PARTITION is not set 1036# CONFIG_SYSV68_PARTITION is not set
996# CONFIG_NLS is not set 1037# CONFIG_NLS is not set
997# CONFIG_DLM is not set 1038# CONFIG_DLM is not set
1039# CONFIG_QE_GPIO is not set
998 1040
999# 1041#
1000# Library routines 1042# Library routines
@@ -1003,6 +1045,7 @@ CONFIG_BITREVERSE=y
1003# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1045# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1004# CONFIG_CRC_CCITT is not set 1046# CONFIG_CRC_CCITT is not set
1005# CONFIG_CRC16 is not set 1047# CONFIG_CRC16 is not set
1048# CONFIG_CRC_T10DIF is not set
1006# CONFIG_CRC_ITU_T is not set 1049# CONFIG_CRC_ITU_T is not set
1007CONFIG_CRC32=y 1050CONFIG_CRC32=y
1008# CONFIG_CRC7 is not set 1051# CONFIG_CRC7 is not set
@@ -1027,6 +1070,8 @@ CONFIG_FRAME_WARN=1024
1027CONFIG_DEBUG_KERNEL=y 1070CONFIG_DEBUG_KERNEL=y
1028# CONFIG_DEBUG_SHIRQ is not set 1071# CONFIG_DEBUG_SHIRQ is not set
1029CONFIG_DETECT_SOFTLOCKUP=y 1072CONFIG_DETECT_SOFTLOCKUP=y
1073# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1074CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1030CONFIG_SCHED_DEBUG=y 1075CONFIG_SCHED_DEBUG=y
1031# CONFIG_SCHEDSTATS is not set 1076# CONFIG_SCHEDSTATS is not set
1032# CONFIG_TIMER_STATS is not set 1077# CONFIG_TIMER_STATS is not set
@@ -1044,17 +1089,28 @@ CONFIG_SCHED_DEBUG=y
1044# CONFIG_DEBUG_INFO is not set 1089# CONFIG_DEBUG_INFO is not set
1045# CONFIG_DEBUG_VM is not set 1090# CONFIG_DEBUG_VM is not set
1046# CONFIG_DEBUG_WRITECOUNT is not set 1091# CONFIG_DEBUG_WRITECOUNT is not set
1092# CONFIG_DEBUG_MEMORY_INIT is not set
1047# CONFIG_DEBUG_LIST is not set 1093# CONFIG_DEBUG_LIST is not set
1048# CONFIG_DEBUG_SG is not set 1094# CONFIG_DEBUG_SG is not set
1049# CONFIG_BOOT_PRINTK_DELAY is not set 1095# CONFIG_BOOT_PRINTK_DELAY is not set
1050# CONFIG_RCU_TORTURE_TEST is not set 1096# CONFIG_RCU_TORTURE_TEST is not set
1051# CONFIG_BACKTRACE_SELF_TEST is not set 1097# CONFIG_BACKTRACE_SELF_TEST is not set
1052# CONFIG_FAULT_INJECTION is not set 1098# CONFIG_FAULT_INJECTION is not set
1099# CONFIG_LATENCYTOP is not set
1100CONFIG_SYSCTL_SYSCALL_CHECK=y
1101CONFIG_HAVE_FTRACE=y
1102CONFIG_HAVE_DYNAMIC_FTRACE=y
1103# CONFIG_FTRACE is not set
1104# CONFIG_SCHED_TRACER is not set
1105# CONFIG_CONTEXT_SWITCH_TRACER is not set
1053# CONFIG_SAMPLES is not set 1106# CONFIG_SAMPLES is not set
1107CONFIG_HAVE_ARCH_KGDB=y
1108# CONFIG_KGDB is not set
1054# CONFIG_DEBUG_STACKOVERFLOW is not set 1109# CONFIG_DEBUG_STACKOVERFLOW is not set
1055# CONFIG_DEBUG_STACK_USAGE is not set 1110# CONFIG_DEBUG_STACK_USAGE is not set
1056# CONFIG_DEBUG_PAGEALLOC is not set 1111# CONFIG_DEBUG_PAGEALLOC is not set
1057CONFIG_DEBUGGER=y 1112# CONFIG_CODE_PATCHING_SELFTEST is not set
1113# CONFIG_FTR_FIXUP_SELFTEST is not set
1058# CONFIG_XMON is not set 1114# CONFIG_XMON is not set
1059# CONFIG_IRQSTACKS is not set 1115# CONFIG_IRQSTACKS is not set
1060# CONFIG_BDI_SWITCH is not set 1116# CONFIG_BDI_SWITCH is not set
@@ -1122,6 +1178,10 @@ CONFIG_CRYPTO_PCBC=m
1122# CONFIG_CRYPTO_MD4 is not set 1178# CONFIG_CRYPTO_MD4 is not set
1123CONFIG_CRYPTO_MD5=y 1179CONFIG_CRYPTO_MD5=y
1124# CONFIG_CRYPTO_MICHAEL_MIC is not set 1180# CONFIG_CRYPTO_MICHAEL_MIC is not set
1181# CONFIG_CRYPTO_RMD128 is not set
1182# CONFIG_CRYPTO_RMD160 is not set
1183# CONFIG_CRYPTO_RMD256 is not set
1184# CONFIG_CRYPTO_RMD320 is not set
1125# CONFIG_CRYPTO_SHA1 is not set 1185# CONFIG_CRYPTO_SHA1 is not set
1126# CONFIG_CRYPTO_SHA256 is not set 1186# CONFIG_CRYPTO_SHA256 is not set
1127# CONFIG_CRYPTO_SHA512 is not set 1187# CONFIG_CRYPTO_SHA512 is not set
@@ -1154,6 +1214,7 @@ CONFIG_CRYPTO_DES=y
1154# CONFIG_CRYPTO_LZO is not set 1214# CONFIG_CRYPTO_LZO is not set
1155CONFIG_CRYPTO_HW=y 1215CONFIG_CRYPTO_HW=y
1156# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1216# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1217# CONFIG_CRYPTO_DEV_TALITOS is not set
1157# CONFIG_PPC_CLOCK is not set 1218# CONFIG_PPC_CLOCK is not set
1158CONFIG_PPC_LIB_RHEAP=y 1219CONFIG_PPC_LIB_RHEAP=y
1159# CONFIG_VIRTUALIZATION is not set 1220# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig b/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
index 164fd9606ee6..eda45bb8a13f 100644
--- a/arch/powerpc/configs/85xx/mpc8572_ds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc8572_ds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:35 2008 4# Thu Aug 21 07:21:42 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -92,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 95CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 98CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 99CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +119,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -138,6 +145,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 146# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
141 149
142# 150#
143# IO Schedulers 151# IO Schedulers
@@ -156,8 +164,6 @@ CONFIG_CLASSIC_RCU=y
156# 164#
157# Platform support 165# Platform support
158# 166#
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
162# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PQ2ADS is not set 169# CONFIG_PQ2ADS is not set
@@ -166,11 +172,13 @@ CONFIG_MPC85xx=y
166# CONFIG_MPC8560_ADS is not set 172# CONFIG_MPC8560_ADS is not set
167# CONFIG_MPC85xx_CDS is not set 173# CONFIG_MPC85xx_CDS is not set
168# CONFIG_MPC85xx_MDS is not set 174# CONFIG_MPC85xx_MDS is not set
175# CONFIG_MPC8536_DS is not set
169CONFIG_MPC85xx_DS=y 176CONFIG_MPC85xx_DS=y
170# CONFIG_KSI8560 is not set 177# CONFIG_KSI8560 is not set
171# CONFIG_STX_GP3 is not set 178# CONFIG_STX_GP3 is not set
172# CONFIG_TQM8540 is not set 179# CONFIG_TQM8540 is not set
173# CONFIG_TQM8541 is not set 180# CONFIG_TQM8541 is not set
181# CONFIG_TQM8548 is not set
174# CONFIG_TQM8555 is not set 182# CONFIG_TQM8555 is not set
175# CONFIG_TQM8560 is not set 183# CONFIG_TQM8560 is not set
176# CONFIG_SBC8548 is not set 184# CONFIG_SBC8548 is not set
@@ -202,7 +210,7 @@ CONFIG_HZ_250=y
202# CONFIG_HZ_300 is not set 210# CONFIG_HZ_300 is not set
203# CONFIG_HZ_1000 is not set 211# CONFIG_HZ_1000 is not set
204CONFIG_HZ=250 212CONFIG_HZ=250
205# CONFIG_SCHED_HRTICK is not set 213CONFIG_SCHED_HRTICK=y
206CONFIG_PREEMPT_NONE=y 214CONFIG_PREEMPT_NONE=y
207# CONFIG_PREEMPT_VOLUNTARY is not set 215# CONFIG_PREEMPT_VOLUNTARY is not set
208# CONFIG_PREEMPT is not set 216# CONFIG_PREEMPT is not set
@@ -225,6 +233,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 233# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y 234CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 235CONFIG_SPLIT_PTLOCK_CPUS=4
236CONFIG_MIGRATION=y
228# CONFIG_RESOURCES_64BIT is not set 237# CONFIG_RESOURCES_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 238CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 239CONFIG_BOUNCE=y
@@ -232,6 +241,7 @@ CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11 241CONFIG_FORCE_MAX_ZONEORDER=11
233CONFIG_PROC_DEVICETREE=y 242CONFIG_PROC_DEVICETREE=y
234# CONFIG_CMDLINE_BOOL is not set 243# CONFIG_CMDLINE_BOOL is not set
244CONFIG_EXTRA_TARGETS=""
235# CONFIG_PM is not set 245# CONFIG_PM is not set
236CONFIG_SECCOMP=y 246CONFIG_SECCOMP=y
237CONFIG_ISA_DMA_API=y 247CONFIG_ISA_DMA_API=y
@@ -244,6 +254,7 @@ CONFIG_GENERIC_ISA_DMA=y
244CONFIG_PPC_INDIRECT_PCI=y 254CONFIG_PPC_INDIRECT_PCI=y
245CONFIG_FSL_SOC=y 255CONFIG_FSL_SOC=y
246CONFIG_FSL_PCI=y 256CONFIG_FSL_PCI=y
257CONFIG_PPC_PCI_CHOICE=y
247CONFIG_PCI=y 258CONFIG_PCI=y
248CONFIG_PCI_DOMAINS=y 259CONFIG_PCI_DOMAINS=y
249CONFIG_PCI_SYSCALL=y 260CONFIG_PCI_SYSCALL=y
@@ -270,10 +281,6 @@ CONFIG_KERNEL_START=0xc0000000
270CONFIG_PHYSICAL_START=0x00000000 281CONFIG_PHYSICAL_START=0x00000000
271CONFIG_PHYSICAL_ALIGN=0x10000000 282CONFIG_PHYSICAL_ALIGN=0x10000000
272CONFIG_TASK_SIZE=0xc0000000 283CONFIG_TASK_SIZE=0xc0000000
273
274#
275# Networking
276#
277CONFIG_NET=y 284CONFIG_NET=y
278 285
279# 286#
@@ -399,6 +406,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
399CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
400CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
401CONFIG_FW_LOADER=y 408CONFIG_FW_LOADER=y
409CONFIG_FIRMWARE_IN_KERNEL=y
410CONFIG_EXTRA_FIRMWARE=""
402# CONFIG_DEBUG_DRIVER is not set 411# CONFIG_DEBUG_DRIVER is not set
403# CONFIG_DEBUG_DEVRES is not set 412# CONFIG_DEBUG_DEVRES is not set
404# CONFIG_SYS_HYPERVISOR is not set 413# CONFIG_SYS_HYPERVISOR is not set
@@ -425,12 +434,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
425# CONFIG_BLK_DEV_XIP is not set 434# CONFIG_BLK_DEV_XIP is not set
426# CONFIG_CDROM_PKTCDVD is not set 435# CONFIG_CDROM_PKTCDVD is not set
427# CONFIG_ATA_OVER_ETH is not set 436# CONFIG_ATA_OVER_ETH is not set
437# CONFIG_BLK_DEV_HD is not set
428CONFIG_MISC_DEVICES=y 438CONFIG_MISC_DEVICES=y
429# CONFIG_PHANTOM is not set 439# CONFIG_PHANTOM is not set
430# CONFIG_EEPROM_93CX6 is not set 440# CONFIG_EEPROM_93CX6 is not set
431# CONFIG_SGI_IOC4 is not set 441# CONFIG_SGI_IOC4 is not set
432# CONFIG_TIFM_CORE is not set 442# CONFIG_TIFM_CORE is not set
433# CONFIG_ENCLOSURE_SERVICES is not set 443# CONFIG_ENCLOSURE_SERVICES is not set
444# CONFIG_HP_ILO is not set
434CONFIG_HAVE_IDE=y 445CONFIG_HAVE_IDE=y
435# CONFIG_IDE is not set 446# CONFIG_IDE is not set
436 447
@@ -510,6 +521,7 @@ CONFIG_SCSI_LOWLEVEL=y
510# CONFIG_SCSI_NSP32 is not set 521# CONFIG_SCSI_NSP32 is not set
511# CONFIG_SCSI_DEBUG is not set 522# CONFIG_SCSI_DEBUG is not set
512# CONFIG_SCSI_SRP is not set 523# CONFIG_SCSI_SRP is not set
524# CONFIG_SCSI_DH is not set
513CONFIG_ATA=y 525CONFIG_ATA=y
514# CONFIG_ATA_NONSTANDARD is not set 526# CONFIG_ATA_NONSTANDARD is not set
515CONFIG_SATA_PMP=y 527CONFIG_SATA_PMP=y
@@ -577,12 +589,15 @@ CONFIG_PATA_ALI=y
577# 589#
578# IEEE 1394 (FireWire) support 590# IEEE 1394 (FireWire) support
579# 591#
592
593#
594# Enable only one of the two stacks, unless you know what you are doing
595#
580# CONFIG_FIREWIRE is not set 596# CONFIG_FIREWIRE is not set
581# CONFIG_IEEE1394 is not set 597# CONFIG_IEEE1394 is not set
582# CONFIG_I2O is not set 598# CONFIG_I2O is not set
583# CONFIG_MACINTOSH_DRIVERS is not set 599# CONFIG_MACINTOSH_DRIVERS is not set
584CONFIG_NETDEVICES=y 600CONFIG_NETDEVICES=y
585# CONFIG_NETDEVICES_MULTIQUEUE is not set
586CONFIG_DUMMY=y 601CONFIG_DUMMY=y
587# CONFIG_BONDING is not set 602# CONFIG_BONDING is not set
588# CONFIG_MACVLAN is not set 603# CONFIG_MACVLAN is not set
@@ -626,7 +641,6 @@ CONFIG_NETDEV_1000=y
626# CONFIG_DL2K is not set 641# CONFIG_DL2K is not set
627# CONFIG_E1000 is not set 642# CONFIG_E1000 is not set
628# CONFIG_E1000E is not set 643# CONFIG_E1000E is not set
629# CONFIG_E1000E_ENABLED is not set
630# CONFIG_IP1000 is not set 644# CONFIG_IP1000 is not set
631# CONFIG_IGB is not set 645# CONFIG_IGB is not set
632# CONFIG_NS83820 is not set 646# CONFIG_NS83820 is not set
@@ -640,9 +654,9 @@ CONFIG_NETDEV_1000=y
640# CONFIG_TIGON3 is not set 654# CONFIG_TIGON3 is not set
641# CONFIG_BNX2 is not set 655# CONFIG_BNX2 is not set
642CONFIG_GIANFAR=y 656CONFIG_GIANFAR=y
643CONFIG_GFAR_NAPI=y
644# CONFIG_QLA3XXX is not set 657# CONFIG_QLA3XXX is not set
645# CONFIG_ATL1 is not set 658# CONFIG_ATL1 is not set
659# CONFIG_ATL1E is not set
646CONFIG_NETDEV_10000=y 660CONFIG_NETDEV_10000=y
647# CONFIG_CHELSIO_T1 is not set 661# CONFIG_CHELSIO_T1 is not set
648# CONFIG_CHELSIO_T3 is not set 662# CONFIG_CHELSIO_T3 is not set
@@ -719,12 +733,14 @@ CONFIG_SERIO_SERPORT=y
719# CONFIG_SERIO_PCIPS2 is not set 733# CONFIG_SERIO_PCIPS2 is not set
720CONFIG_SERIO_LIBPS2=y 734CONFIG_SERIO_LIBPS2=y
721# CONFIG_SERIO_RAW is not set 735# CONFIG_SERIO_RAW is not set
736# CONFIG_SERIO_XILINX_XPS_PS2 is not set
722# CONFIG_GAMEPORT is not set 737# CONFIG_GAMEPORT is not set
723 738
724# 739#
725# Character devices 740# Character devices
726# 741#
727CONFIG_VT=y 742CONFIG_VT=y
743CONFIG_CONSOLE_TRANSLATIONS=y
728CONFIG_VT_CONSOLE=y 744CONFIG_VT_CONSOLE=y
729CONFIG_HW_CONSOLE=y 745CONFIG_HW_CONSOLE=y
730# CONFIG_VT_HW_CONSOLE_BINDING is not set 746# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -758,7 +774,7 @@ CONFIG_UNIX98_PTYS=y
758CONFIG_LEGACY_PTYS=y 774CONFIG_LEGACY_PTYS=y
759CONFIG_LEGACY_PTY_COUNT=256 775CONFIG_LEGACY_PTY_COUNT=256
760# CONFIG_IPMI_HANDLER is not set 776# CONFIG_IPMI_HANDLER is not set
761# CONFIG_HW_RANDOM is not set 777CONFIG_HW_RANDOM=y
762CONFIG_NVRAM=y 778CONFIG_NVRAM=y
763# CONFIG_R3964 is not set 779# CONFIG_R3964 is not set
764# CONFIG_APPLICOM is not set 780# CONFIG_APPLICOM is not set
@@ -768,43 +784,64 @@ CONFIG_DEVPORT=y
768CONFIG_I2C=y 784CONFIG_I2C=y
769CONFIG_I2C_BOARDINFO=y 785CONFIG_I2C_BOARDINFO=y
770# CONFIG_I2C_CHARDEV is not set 786# CONFIG_I2C_CHARDEV is not set
787CONFIG_I2C_HELPER_AUTO=y
771 788
772# 789#
773# I2C Hardware Bus support 790# I2C Hardware Bus support
774# 791#
792
793#
794# PC SMBus host controller drivers
795#
775# CONFIG_I2C_ALI1535 is not set 796# CONFIG_I2C_ALI1535 is not set
776# CONFIG_I2C_ALI1563 is not set 797# CONFIG_I2C_ALI1563 is not set
777# CONFIG_I2C_ALI15X3 is not set 798# CONFIG_I2C_ALI15X3 is not set
778# CONFIG_I2C_AMD756 is not set 799# CONFIG_I2C_AMD756 is not set
779# CONFIG_I2C_AMD8111 is not set 800# CONFIG_I2C_AMD8111 is not set
780# CONFIG_I2C_I801 is not set 801# CONFIG_I2C_I801 is not set
781# CONFIG_I2C_I810 is not set 802# CONFIG_I2C_ISCH is not set
782# CONFIG_I2C_PIIX4 is not set 803# CONFIG_I2C_PIIX4 is not set
783CONFIG_I2C_MPC=y
784# CONFIG_I2C_NFORCE2 is not set 804# CONFIG_I2C_NFORCE2 is not set
785# CONFIG_I2C_OCORES is not set
786# CONFIG_I2C_PARPORT_LIGHT is not set
787# CONFIG_I2C_PROSAVAGE is not set
788# CONFIG_I2C_SAVAGE4 is not set
789# CONFIG_I2C_SIMTEC is not set
790# CONFIG_I2C_SIS5595 is not set 805# CONFIG_I2C_SIS5595 is not set
791# CONFIG_I2C_SIS630 is not set 806# CONFIG_I2C_SIS630 is not set
792# CONFIG_I2C_SIS96X is not set 807# CONFIG_I2C_SIS96X is not set
793# CONFIG_I2C_TAOS_EVM is not set
794# CONFIG_I2C_STUB is not set
795# CONFIG_I2C_TINY_USB is not set
796# CONFIG_I2C_VIA is not set 808# CONFIG_I2C_VIA is not set
797# CONFIG_I2C_VIAPRO is not set 809# CONFIG_I2C_VIAPRO is not set
810
811#
812# I2C system bus drivers (mostly embedded / system-on-chip)
813#
814CONFIG_I2C_MPC=y
815# CONFIG_I2C_OCORES is not set
816# CONFIG_I2C_SIMTEC is not set
817
818#
819# External I2C/SMBus adapter drivers
820#
821# CONFIG_I2C_PARPORT_LIGHT is not set
822# CONFIG_I2C_TAOS_EVM is not set
823# CONFIG_I2C_TINY_USB is not set
824
825#
826# Graphics adapter I2C/DDC channel drivers
827#
798# CONFIG_I2C_VOODOO3 is not set 828# CONFIG_I2C_VOODOO3 is not set
829
830#
831# Other I2C/SMBus bus drivers
832#
799# CONFIG_I2C_PCA_PLATFORM is not set 833# CONFIG_I2C_PCA_PLATFORM is not set
834# CONFIG_I2C_STUB is not set
800 835
801# 836#
802# Miscellaneous I2C Chip support 837# Miscellaneous I2C Chip support
803# 838#
804# CONFIG_DS1682 is not set 839# CONFIG_DS1682 is not set
840# CONFIG_AT24 is not set
805CONFIG_SENSORS_EEPROM=y 841CONFIG_SENSORS_EEPROM=y
806# CONFIG_SENSORS_PCF8574 is not set 842# CONFIG_SENSORS_PCF8574 is not set
807# CONFIG_PCF8575 is not set 843# CONFIG_PCF8575 is not set
844# CONFIG_SENSORS_PCA9539 is not set
808# CONFIG_SENSORS_PCF8591 is not set 845# CONFIG_SENSORS_PCF8591 is not set
809# CONFIG_SENSORS_MAX6875 is not set 846# CONFIG_SENSORS_MAX6875 is not set
810# CONFIG_SENSORS_TSL2550 is not set 847# CONFIG_SENSORS_TSL2550 is not set
@@ -813,10 +850,13 @@ CONFIG_SENSORS_EEPROM=y
813# CONFIG_I2C_DEBUG_BUS is not set 850# CONFIG_I2C_DEBUG_BUS is not set
814# CONFIG_I2C_DEBUG_CHIP is not set 851# CONFIG_I2C_DEBUG_CHIP is not set
815# CONFIG_SPI is not set 852# CONFIG_SPI is not set
853CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
854# CONFIG_GPIOLIB is not set
816# CONFIG_W1 is not set 855# CONFIG_W1 is not set
817# CONFIG_POWER_SUPPLY is not set 856# CONFIG_POWER_SUPPLY is not set
818# CONFIG_HWMON is not set 857# CONFIG_HWMON is not set
819# CONFIG_THERMAL is not set 858# CONFIG_THERMAL is not set
859# CONFIG_THERMAL_HWMON is not set
820# CONFIG_WATCHDOG is not set 860# CONFIG_WATCHDOG is not set
821 861
822# 862#
@@ -828,8 +868,10 @@ CONFIG_SSB_POSSIBLE=y
828# 868#
829# Multifunction device drivers 869# Multifunction device drivers
830# 870#
871# CONFIG_MFD_CORE is not set
831# CONFIG_MFD_SM501 is not set 872# CONFIG_MFD_SM501 is not set
832# CONFIG_HTC_PASIC3 is not set 873# CONFIG_HTC_PASIC3 is not set
874# CONFIG_MFD_TMIO is not set
833 875
834# 876#
835# Multimedia devices 877# Multimedia devices
@@ -871,6 +913,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
871# CONFIG_DVB_TTUSB_BUDGET is not set 913# CONFIG_DVB_TTUSB_BUDGET is not set
872# CONFIG_DVB_TTUSB_DEC is not set 914# CONFIG_DVB_TTUSB_DEC is not set
873# CONFIG_DVB_CINERGYT2 is not set 915# CONFIG_DVB_CINERGYT2 is not set
916# CONFIG_DVB_SIANO_SMS1XXX is not set
874 917
875# 918#
876# Supported FlexCopII (B2C2) Adapters 919# Supported FlexCopII (B2C2) Adapters
@@ -917,6 +960,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
917# CONFIG_DVB_SP887X is not set 960# CONFIG_DVB_SP887X is not set
918# CONFIG_DVB_CX22700 is not set 961# CONFIG_DVB_CX22700 is not set
919# CONFIG_DVB_CX22702 is not set 962# CONFIG_DVB_CX22702 is not set
963# CONFIG_DVB_DRX397XD is not set
920# CONFIG_DVB_L64781 is not set 964# CONFIG_DVB_L64781 is not set
921# CONFIG_DVB_TDA1004X is not set 965# CONFIG_DVB_TDA1004X is not set
922# CONFIG_DVB_NXT6000 is not set 966# CONFIG_DVB_NXT6000 is not set
@@ -984,15 +1028,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
984CONFIG_VGA_CONSOLE=y 1028CONFIG_VGA_CONSOLE=y
985# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set
986CONFIG_DUMMY_CONSOLE=y 1030CONFIG_DUMMY_CONSOLE=y
987
988#
989# Sound
990#
991CONFIG_SOUND=y 1031CONFIG_SOUND=y
992
993#
994# Advanced Linux Sound Architecture
995#
996CONFIG_SND=y 1032CONFIG_SND=y
997CONFIG_SND_TIMER=y 1033CONFIG_SND_TIMER=y
998CONFIG_SND_PCM=y 1034CONFIG_SND_PCM=y
@@ -1006,19 +1042,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1006CONFIG_SND_VERBOSE_PROCFS=y 1042CONFIG_SND_VERBOSE_PROCFS=y
1007# CONFIG_SND_VERBOSE_PRINTK is not set 1043# CONFIG_SND_VERBOSE_PRINTK is not set
1008# CONFIG_SND_DEBUG is not set 1044# CONFIG_SND_DEBUG is not set
1009 1045CONFIG_SND_VMASTER=y
1010#
1011# Generic devices
1012#
1013CONFIG_SND_AC97_CODEC=y 1046CONFIG_SND_AC97_CODEC=y
1047CONFIG_SND_DRIVERS=y
1014# CONFIG_SND_DUMMY is not set 1048# CONFIG_SND_DUMMY is not set
1015# CONFIG_SND_MTPAV is not set 1049# CONFIG_SND_MTPAV is not set
1016# CONFIG_SND_SERIAL_U16550 is not set 1050# CONFIG_SND_SERIAL_U16550 is not set
1017# CONFIG_SND_MPU401 is not set 1051# CONFIG_SND_MPU401 is not set
1018 1052# CONFIG_SND_AC97_POWER_SAVE is not set
1019# 1053CONFIG_SND_PCI=y
1020# PCI devices
1021#
1022# CONFIG_SND_AD1889 is not set 1054# CONFIG_SND_AD1889 is not set
1023# CONFIG_SND_ALS300 is not set 1055# CONFIG_SND_ALS300 is not set
1024# CONFIG_SND_ALS4000 is not set 1056# CONFIG_SND_ALS4000 is not set
@@ -1080,39 +1112,12 @@ CONFIG_SND_INTEL8X0=y
1080# CONFIG_SND_VIRTUOSO is not set 1112# CONFIG_SND_VIRTUOSO is not set
1081# CONFIG_SND_VX222 is not set 1113# CONFIG_SND_VX222 is not set
1082# CONFIG_SND_YMFPCI is not set 1114# CONFIG_SND_YMFPCI is not set
1083# CONFIG_SND_AC97_POWER_SAVE is not set 1115CONFIG_SND_PPC=y
1084 1116CONFIG_SND_USB=y
1085#
1086# ALSA PowerMac devices
1087#
1088
1089#
1090# ALSA PowerPC devices
1091#
1092
1093#
1094# USB devices
1095#
1096# CONFIG_SND_USB_AUDIO is not set 1117# CONFIG_SND_USB_AUDIO is not set
1097# CONFIG_SND_USB_USX2Y is not set 1118# CONFIG_SND_USB_USX2Y is not set
1098# CONFIG_SND_USB_CAIAQ is not set 1119# CONFIG_SND_USB_CAIAQ is not set
1099
1100#
1101# System on Chip audio support
1102#
1103# CONFIG_SND_SOC is not set 1120# CONFIG_SND_SOC is not set
1104
1105#
1106# ALSA SoC audio for Freescale SOCs
1107#
1108
1109#
1110# SoC Audio for the Texas Instruments OMAP
1111#
1112
1113#
1114# Open Sound System
1115#
1116# CONFIG_SOUND_PRIME is not set 1121# CONFIG_SOUND_PRIME is not set
1117CONFIG_AC97_BUS=y 1122CONFIG_AC97_BUS=y
1118CONFIG_HID_SUPPORT=y 1123CONFIG_HID_SUPPORT=y
@@ -1144,6 +1149,7 @@ CONFIG_USB_DEVICE_CLASS=y
1144# CONFIG_USB_OTG is not set 1149# CONFIG_USB_OTG is not set
1145# CONFIG_USB_OTG_WHITELIST is not set 1150# CONFIG_USB_OTG_WHITELIST is not set
1146# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1151# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1152CONFIG_USB_MON=y
1147 1153
1148# 1154#
1149# USB Host Controller Drivers 1155# USB Host Controller Drivers
@@ -1195,6 +1201,7 @@ CONFIG_USB_STORAGE=y
1195# CONFIG_USB_STORAGE_ALAUDA is not set 1201# CONFIG_USB_STORAGE_ALAUDA is not set
1196# CONFIG_USB_STORAGE_ONETOUCH is not set 1202# CONFIG_USB_STORAGE_ONETOUCH is not set
1197# CONFIG_USB_STORAGE_KARMA is not set 1203# CONFIG_USB_STORAGE_KARMA is not set
1204# CONFIG_USB_STORAGE_SIERRA is not set
1198# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1205# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1199# CONFIG_USB_LIBUSUAL is not set 1206# CONFIG_USB_LIBUSUAL is not set
1200 1207
@@ -1203,7 +1210,6 @@ CONFIG_USB_STORAGE=y
1203# 1210#
1204# CONFIG_USB_MDC800 is not set 1211# CONFIG_USB_MDC800 is not set
1205# CONFIG_USB_MICROTEK is not set 1212# CONFIG_USB_MICROTEK is not set
1206CONFIG_USB_MON=y
1207 1213
1208# 1214#
1209# USB port drivers 1215# USB port drivers
@@ -1216,7 +1222,6 @@ CONFIG_USB_MON=y
1216# CONFIG_USB_EMI62 is not set 1222# CONFIG_USB_EMI62 is not set
1217# CONFIG_USB_EMI26 is not set 1223# CONFIG_USB_EMI26 is not set
1218# CONFIG_USB_ADUTUX is not set 1224# CONFIG_USB_ADUTUX is not set
1219# CONFIG_USB_AUERSWALD is not set
1220# CONFIG_USB_RIO500 is not set 1225# CONFIG_USB_RIO500 is not set
1221# CONFIG_USB_LEGOTOWER is not set 1226# CONFIG_USB_LEGOTOWER is not set
1222# CONFIG_USB_LCD is not set 1227# CONFIG_USB_LCD is not set
@@ -1270,6 +1275,7 @@ CONFIG_RTC_INTF_DEV=y
1270# CONFIG_RTC_DRV_PCF8583 is not set 1275# CONFIG_RTC_DRV_PCF8583 is not set
1271# CONFIG_RTC_DRV_M41T80 is not set 1276# CONFIG_RTC_DRV_M41T80 is not set
1272# CONFIG_RTC_DRV_S35390A is not set 1277# CONFIG_RTC_DRV_S35390A is not set
1278# CONFIG_RTC_DRV_FM3130 is not set
1273 1279
1274# 1280#
1275# SPI RTC drivers 1281# SPI RTC drivers
@@ -1368,6 +1374,7 @@ CONFIG_EFS_FS=m
1368CONFIG_CRAMFS=y 1374CONFIG_CRAMFS=y
1369CONFIG_VXFS_FS=m 1375CONFIG_VXFS_FS=m
1370# CONFIG_MINIX_FS is not set 1376# CONFIG_MINIX_FS is not set
1377# CONFIG_OMFS_FS is not set
1371CONFIG_HPFS_FS=m 1378CONFIG_HPFS_FS=m
1372CONFIG_QNX4FS_FS=m 1379CONFIG_QNX4FS_FS=m
1373# CONFIG_ROMFS_FS is not set 1380# CONFIG_ROMFS_FS is not set
@@ -1380,17 +1387,16 @@ CONFIG_NFS_FS=y
1380CONFIG_NFS_V3=y 1387CONFIG_NFS_V3=y
1381# CONFIG_NFS_V3_ACL is not set 1388# CONFIG_NFS_V3_ACL is not set
1382CONFIG_NFS_V4=y 1389CONFIG_NFS_V4=y
1390CONFIG_ROOT_NFS=y
1383CONFIG_NFSD=y 1391CONFIG_NFSD=y
1384# CONFIG_NFSD_V3 is not set 1392# CONFIG_NFSD_V3 is not set
1385# CONFIG_NFSD_V4 is not set 1393# CONFIG_NFSD_V4 is not set
1386CONFIG_ROOT_NFS=y
1387CONFIG_LOCKD=y 1394CONFIG_LOCKD=y
1388CONFIG_LOCKD_V4=y 1395CONFIG_LOCKD_V4=y
1389CONFIG_EXPORTFS=y 1396CONFIG_EXPORTFS=y
1390CONFIG_NFS_COMMON=y 1397CONFIG_NFS_COMMON=y
1391CONFIG_SUNRPC=y 1398CONFIG_SUNRPC=y
1392CONFIG_SUNRPC_GSS=y 1399CONFIG_SUNRPC_GSS=y
1393# CONFIG_SUNRPC_BIND34 is not set
1394CONFIG_RPCSEC_GSS_KRB5=y 1400CONFIG_RPCSEC_GSS_KRB5=y
1395# CONFIG_RPCSEC_GSS_SPKM3 is not set 1401# CONFIG_RPCSEC_GSS_SPKM3 is not set
1396# CONFIG_SMB_FS is not set 1402# CONFIG_SMB_FS is not set
@@ -1469,6 +1475,7 @@ CONFIG_BITREVERSE=y
1469# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1475# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1470# CONFIG_CRC_CCITT is not set 1476# CONFIG_CRC_CCITT is not set
1471# CONFIG_CRC16 is not set 1477# CONFIG_CRC16 is not set
1478CONFIG_CRC_T10DIF=y
1472CONFIG_CRC_ITU_T=m 1479CONFIG_CRC_ITU_T=m
1473CONFIG_CRC32=y 1480CONFIG_CRC32=y
1474# CONFIG_CRC7 is not set 1481# CONFIG_CRC7 is not set
@@ -1494,6 +1501,8 @@ CONFIG_FRAME_WARN=1024
1494CONFIG_DEBUG_KERNEL=y 1501CONFIG_DEBUG_KERNEL=y
1495# CONFIG_DEBUG_SHIRQ is not set 1502# CONFIG_DEBUG_SHIRQ is not set
1496CONFIG_DETECT_SOFTLOCKUP=y 1503CONFIG_DETECT_SOFTLOCKUP=y
1504# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1505CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1497CONFIG_SCHED_DEBUG=y 1506CONFIG_SCHED_DEBUG=y
1498# CONFIG_SCHEDSTATS is not set 1507# CONFIG_SCHEDSTATS is not set
1499# CONFIG_TIMER_STATS is not set 1508# CONFIG_TIMER_STATS is not set
@@ -1512,17 +1521,29 @@ CONFIG_SCHED_DEBUG=y
1512CONFIG_DEBUG_INFO=y 1521CONFIG_DEBUG_INFO=y
1513# CONFIG_DEBUG_VM is not set 1522# CONFIG_DEBUG_VM is not set
1514# CONFIG_DEBUG_WRITECOUNT is not set 1523# CONFIG_DEBUG_WRITECOUNT is not set
1524# CONFIG_DEBUG_MEMORY_INIT is not set
1515# CONFIG_DEBUG_LIST is not set 1525# CONFIG_DEBUG_LIST is not set
1516# CONFIG_DEBUG_SG is not set 1526# CONFIG_DEBUG_SG is not set
1517# CONFIG_BOOT_PRINTK_DELAY is not set 1527# CONFIG_BOOT_PRINTK_DELAY is not set
1518# CONFIG_RCU_TORTURE_TEST is not set 1528# CONFIG_RCU_TORTURE_TEST is not set
1519# CONFIG_BACKTRACE_SELF_TEST is not set 1529# CONFIG_BACKTRACE_SELF_TEST is not set
1520# CONFIG_FAULT_INJECTION is not set 1530# CONFIG_FAULT_INJECTION is not set
1531# CONFIG_LATENCYTOP is not set
1532CONFIG_SYSCTL_SYSCALL_CHECK=y
1533CONFIG_HAVE_FTRACE=y
1534CONFIG_HAVE_DYNAMIC_FTRACE=y
1535# CONFIG_FTRACE is not set
1536# CONFIG_SCHED_TRACER is not set
1537# CONFIG_CONTEXT_SWITCH_TRACER is not set
1521# CONFIG_SAMPLES is not set 1538# CONFIG_SAMPLES is not set
1539CONFIG_HAVE_ARCH_KGDB=y
1540# CONFIG_KGDB is not set
1522# CONFIG_DEBUG_STACKOVERFLOW is not set 1541# CONFIG_DEBUG_STACKOVERFLOW is not set
1523# CONFIG_DEBUG_STACK_USAGE is not set 1542# CONFIG_DEBUG_STACK_USAGE is not set
1524# CONFIG_DEBUG_PAGEALLOC is not set 1543# CONFIG_DEBUG_PAGEALLOC is not set
1525# CONFIG_DEBUGGER is not set 1544# CONFIG_CODE_PATCHING_SELFTEST is not set
1545# CONFIG_FTR_FIXUP_SELFTEST is not set
1546# CONFIG_XMON is not set
1526# CONFIG_IRQSTACKS is not set 1547# CONFIG_IRQSTACKS is not set
1527# CONFIG_BDI_SWITCH is not set 1548# CONFIG_BDI_SWITCH is not set
1528# CONFIG_PPC_EARLY_DEBUG is not set 1549# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1539,13 +1560,14 @@ CONFIG_CRYPTO=y
1539# Crypto core or helper 1560# Crypto core or helper
1540# 1561#
1541CONFIG_CRYPTO_ALGAPI=y 1562CONFIG_CRYPTO_ALGAPI=y
1563CONFIG_CRYPTO_AEAD=y
1542CONFIG_CRYPTO_BLKCIPHER=y 1564CONFIG_CRYPTO_BLKCIPHER=y
1543CONFIG_CRYPTO_HASH=y 1565CONFIG_CRYPTO_HASH=y
1544CONFIG_CRYPTO_MANAGER=y 1566CONFIG_CRYPTO_MANAGER=y
1545# CONFIG_CRYPTO_GF128MUL is not set 1567# CONFIG_CRYPTO_GF128MUL is not set
1546# CONFIG_CRYPTO_NULL is not set 1568# CONFIG_CRYPTO_NULL is not set
1547# CONFIG_CRYPTO_CRYPTD is not set 1569# CONFIG_CRYPTO_CRYPTD is not set
1548# CONFIG_CRYPTO_AUTHENC is not set 1570CONFIG_CRYPTO_AUTHENC=y
1549# CONFIG_CRYPTO_TEST is not set 1571# CONFIG_CRYPTO_TEST is not set
1550 1572
1551# 1573#
@@ -1579,6 +1601,10 @@ CONFIG_CRYPTO_HMAC=y
1579# CONFIG_CRYPTO_MD4 is not set 1601# CONFIG_CRYPTO_MD4 is not set
1580CONFIG_CRYPTO_MD5=y 1602CONFIG_CRYPTO_MD5=y
1581# CONFIG_CRYPTO_MICHAEL_MIC is not set 1603# CONFIG_CRYPTO_MICHAEL_MIC is not set
1604# CONFIG_CRYPTO_RMD128 is not set
1605# CONFIG_CRYPTO_RMD160 is not set
1606# CONFIG_CRYPTO_RMD256 is not set
1607# CONFIG_CRYPTO_RMD320 is not set
1582CONFIG_CRYPTO_SHA1=m 1608CONFIG_CRYPTO_SHA1=m
1583# CONFIG_CRYPTO_SHA256 is not set 1609# CONFIG_CRYPTO_SHA256 is not set
1584# CONFIG_CRYPTO_SHA512 is not set 1610# CONFIG_CRYPTO_SHA512 is not set
@@ -1611,5 +1637,6 @@ CONFIG_CRYPTO_DES=y
1611# CONFIG_CRYPTO_LZO is not set 1637# CONFIG_CRYPTO_LZO is not set
1612CONFIG_CRYPTO_HW=y 1638CONFIG_CRYPTO_HW=y
1613# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1639# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1640CONFIG_CRYPTO_DEV_TALITOS=y
1614# CONFIG_PPC_CLOCK is not set 1641# CONFIG_PPC_CLOCK is not set
1615# CONFIG_VIRTUALIZATION is not set 1642# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig b/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
index b09f0032a10b..97f3c4fe440b 100644
--- a/arch/powerpc/configs/85xx/mpc85xx_cds_defconfig
+++ b/arch/powerpc/configs/85xx/mpc85xx_cds_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:36 2008 4# Thu Aug 21 00:52:34 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -114,10 +115,16 @@ CONFIG_SLUB=y
114# CONFIG_PROFILING is not set 115# CONFIG_PROFILING is not set
115# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
119CONFIG_HAVE_IOREMAP_PROT=y
117CONFIG_HAVE_KPROBES=y 120CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y 121CONFIG_HAVE_KRETPROBES=y
122CONFIG_HAVE_ARCH_TRACEHOOK=y
119# CONFIG_HAVE_DMA_ATTRS is not set 123# CONFIG_HAVE_DMA_ATTRS is not set
124# CONFIG_USE_GENERIC_SMP_HELPERS is not set
125# CONFIG_HAVE_CLK is not set
120CONFIG_PROC_PAGE_MONITOR=y 126CONFIG_PROC_PAGE_MONITOR=y
127# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
121CONFIG_SLABINFO=y 128CONFIG_SLABINFO=y
122CONFIG_RT_MUTEXES=y 129CONFIG_RT_MUTEXES=y
123# CONFIG_TINY_SHMEM is not set 130# CONFIG_TINY_SHMEM is not set
@@ -128,6 +135,7 @@ CONFIG_BLOCK=y
128# CONFIG_BLK_DEV_IO_TRACE is not set 135# CONFIG_BLK_DEV_IO_TRACE is not set
129# CONFIG_LSF is not set 136# CONFIG_LSF is not set
130# CONFIG_BLK_DEV_BSG is not set 137# CONFIG_BLK_DEV_BSG is not set
138# CONFIG_BLK_DEV_INTEGRITY is not set
131 139
132# 140#
133# IO Schedulers 141# IO Schedulers
@@ -146,8 +154,6 @@ CONFIG_CLASSIC_RCU=y
146# 154#
147# Platform support 155# Platform support
148# 156#
149# CONFIG_PPC_MPC512x is not set
150# CONFIG_PPC_MPC5121 is not set
151# CONFIG_PPC_CELL is not set 157# CONFIG_PPC_CELL is not set
152# CONFIG_PPC_CELL_NATIVE is not set 158# CONFIG_PPC_CELL_NATIVE is not set
153# CONFIG_PQ2ADS is not set 159# CONFIG_PQ2ADS is not set
@@ -156,11 +162,13 @@ CONFIG_MPC85xx=y
156# CONFIG_MPC8560_ADS is not set 162# CONFIG_MPC8560_ADS is not set
157CONFIG_MPC85xx_CDS=y 163CONFIG_MPC85xx_CDS=y
158# CONFIG_MPC85xx_MDS is not set 164# CONFIG_MPC85xx_MDS is not set
165# CONFIG_MPC8536_DS is not set
159# CONFIG_MPC85xx_DS is not set 166# CONFIG_MPC85xx_DS is not set
160# CONFIG_KSI8560 is not set 167# CONFIG_KSI8560 is not set
161# CONFIG_STX_GP3 is not set 168# CONFIG_STX_GP3 is not set
162# CONFIG_TQM8540 is not set 169# CONFIG_TQM8540 is not set
163# CONFIG_TQM8541 is not set 170# CONFIG_TQM8541 is not set
171# CONFIG_TQM8548 is not set
164# CONFIG_TQM8555 is not set 172# CONFIG_TQM8555 is not set
165# CONFIG_TQM8560 is not set 173# CONFIG_TQM8560 is not set
166# CONFIG_SBC8548 is not set 174# CONFIG_SBC8548 is not set
@@ -192,7 +200,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 200# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 201# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 202CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 203CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 204CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
@@ -215,6 +223,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 224CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
@@ -222,6 +231,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 235# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 236# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 237CONFIG_ISA_DMA_API=y
@@ -233,6 +243,7 @@ CONFIG_ZONE_DMA=y
233CONFIG_PPC_INDIRECT_PCI=y 243CONFIG_PPC_INDIRECT_PCI=y
234CONFIG_FSL_SOC=y 244CONFIG_FSL_SOC=y
235CONFIG_FSL_PCI=y 245CONFIG_FSL_PCI=y
246CONFIG_PPC_PCI_CHOICE=y
236CONFIG_PCI=y 247CONFIG_PCI=y
237CONFIG_PCI_DOMAINS=y 248CONFIG_PCI_DOMAINS=y
238CONFIG_PCI_SYSCALL=y 249CONFIG_PCI_SYSCALL=y
@@ -259,10 +270,6 @@ CONFIG_KERNEL_START=0xc0000000
259CONFIG_PHYSICAL_START=0x00000000 270CONFIG_PHYSICAL_START=0x00000000
260CONFIG_PHYSICAL_ALIGN=0x10000000 271CONFIG_PHYSICAL_ALIGN=0x10000000
261CONFIG_TASK_SIZE=0xc0000000 272CONFIG_TASK_SIZE=0xc0000000
262
263#
264# Networking
265#
266CONFIG_NET=y 273CONFIG_NET=y
267 274
268# 275#
@@ -379,20 +386,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
379# CONFIG_BLK_DEV_XIP is not set 386# CONFIG_BLK_DEV_XIP is not set
380# CONFIG_CDROM_PKTCDVD is not set 387# CONFIG_CDROM_PKTCDVD is not set
381# CONFIG_ATA_OVER_ETH is not set 388# CONFIG_ATA_OVER_ETH is not set
389# CONFIG_BLK_DEV_HD is not set
382CONFIG_MISC_DEVICES=y 390CONFIG_MISC_DEVICES=y
383# CONFIG_PHANTOM is not set 391# CONFIG_PHANTOM is not set
384# CONFIG_EEPROM_93CX6 is not set 392# CONFIG_EEPROM_93CX6 is not set
385# CONFIG_SGI_IOC4 is not set 393# CONFIG_SGI_IOC4 is not set
386# CONFIG_TIFM_CORE is not set 394# CONFIG_TIFM_CORE is not set
387# CONFIG_ENCLOSURE_SERVICES is not set 395# CONFIG_ENCLOSURE_SERVICES is not set
396# CONFIG_HP_ILO is not set
388CONFIG_HAVE_IDE=y 397CONFIG_HAVE_IDE=y
389CONFIG_IDE=y 398CONFIG_IDE=y
390CONFIG_IDE_MAX_HWIFS=4
391CONFIG_BLK_DEV_IDE=y 399CONFIG_BLK_DEV_IDE=y
392 400
393# 401#
394# Please see Documentation/ide/ide.txt for help/info on IDE drives 402# Please see Documentation/ide/ide.txt for help/info on IDE drives
395# 403#
404CONFIG_IDE_TIMINGS=y
396# CONFIG_BLK_DEV_IDE_SATA is not set 405# CONFIG_BLK_DEV_IDE_SATA is not set
397# CONFIG_BLK_DEV_IDEDISK is not set 406# CONFIG_BLK_DEV_IDEDISK is not set
398# CONFIG_IDEDISK_MULTI_MODE is not set 407# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -405,7 +414,6 @@ CONFIG_IDE_PROC_FS=y
405# 414#
406# IDE chipset support/bugfixes 415# IDE chipset support/bugfixes
407# 416#
408CONFIG_IDE_GENERIC=y
409# CONFIG_BLK_DEV_PLATFORM is not set 417# CONFIG_BLK_DEV_PLATFORM is not set
410CONFIG_BLK_DEV_IDEDMA_SFF=y 418CONFIG_BLK_DEV_IDEDMA_SFF=y
411 419
@@ -423,10 +431,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
423# CONFIG_BLK_DEV_AMD74XX is not set 431# CONFIG_BLK_DEV_AMD74XX is not set
424# CONFIG_BLK_DEV_CMD64X is not set 432# CONFIG_BLK_DEV_CMD64X is not set
425# CONFIG_BLK_DEV_TRIFLEX is not set 433# CONFIG_BLK_DEV_TRIFLEX is not set
426# CONFIG_BLK_DEV_CY82C693 is not set
427# CONFIG_BLK_DEV_CS5520 is not set 434# CONFIG_BLK_DEV_CS5520 is not set
428# CONFIG_BLK_DEV_CS5530 is not set 435# CONFIG_BLK_DEV_CS5530 is not set
429# CONFIG_BLK_DEV_HPT34X is not set
430# CONFIG_BLK_DEV_HPT366 is not set 436# CONFIG_BLK_DEV_HPT366 is not set
431# CONFIG_BLK_DEV_JMICRON is not set 437# CONFIG_BLK_DEV_JMICRON is not set
432# CONFIG_BLK_DEV_SC1200 is not set 438# CONFIG_BLK_DEV_SC1200 is not set
@@ -444,8 +450,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
444CONFIG_BLK_DEV_VIA82CXXX=y 450CONFIG_BLK_DEV_VIA82CXXX=y
445# CONFIG_BLK_DEV_TC86C001 is not set 451# CONFIG_BLK_DEV_TC86C001 is not set
446CONFIG_BLK_DEV_IDEDMA=y 452CONFIG_BLK_DEV_IDEDMA=y
447# CONFIG_BLK_DEV_HD_ONLY is not set
448# CONFIG_BLK_DEV_HD is not set
449 453
450# 454#
451# SCSI device support 455# SCSI device support
@@ -461,12 +465,15 @@ CONFIG_BLK_DEV_IDEDMA=y
461# 465#
462# IEEE 1394 (FireWire) support 466# IEEE 1394 (FireWire) support
463# 467#
468
469#
470# Enable only one of the two stacks, unless you know what you are doing
471#
464# CONFIG_FIREWIRE is not set 472# CONFIG_FIREWIRE is not set
465# CONFIG_IEEE1394 is not set 473# CONFIG_IEEE1394 is not set
466# CONFIG_I2O is not set 474# CONFIG_I2O is not set
467# CONFIG_MACINTOSH_DRIVERS is not set 475# CONFIG_MACINTOSH_DRIVERS is not set
468CONFIG_NETDEVICES=y 476CONFIG_NETDEVICES=y
469# CONFIG_NETDEVICES_MULTIQUEUE is not set
470# CONFIG_DUMMY is not set 477# CONFIG_DUMMY is not set
471# CONFIG_BONDING is not set 478# CONFIG_BONDING is not set
472# CONFIG_MACVLAN is not set 479# CONFIG_MACVLAN is not set
@@ -509,10 +516,8 @@ CONFIG_NETDEV_1000=y
509# CONFIG_ACENIC is not set 516# CONFIG_ACENIC is not set
510# CONFIG_DL2K is not set 517# CONFIG_DL2K is not set
511CONFIG_E1000=y 518CONFIG_E1000=y
512CONFIG_E1000_NAPI=y
513# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 519# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
514# CONFIG_E1000E is not set 520# CONFIG_E1000E is not set
515# CONFIG_E1000E_ENABLED is not set
516# CONFIG_IP1000 is not set 521# CONFIG_IP1000 is not set
517# CONFIG_IGB is not set 522# CONFIG_IGB is not set
518# CONFIG_NS83820 is not set 523# CONFIG_NS83820 is not set
@@ -526,9 +531,9 @@ CONFIG_E1000_NAPI=y
526# CONFIG_TIGON3 is not set 531# CONFIG_TIGON3 is not set
527# CONFIG_BNX2 is not set 532# CONFIG_BNX2 is not set
528CONFIG_GIANFAR=y 533CONFIG_GIANFAR=y
529CONFIG_GFAR_NAPI=y
530# CONFIG_QLA3XXX is not set 534# CONFIG_QLA3XXX is not set
531# CONFIG_ATL1 is not set 535# CONFIG_ATL1 is not set
536# CONFIG_ATL1E is not set
532CONFIG_NETDEV_10000=y 537CONFIG_NETDEV_10000=y
533# CONFIG_CHELSIO_T1 is not set 538# CONFIG_CHELSIO_T1 is not set
534# CONFIG_CHELSIO_T3 is not set 539# CONFIG_CHELSIO_T3 is not set
@@ -634,6 +639,8 @@ CONFIG_GEN_RTC=y
634CONFIG_DEVPORT=y 639CONFIG_DEVPORT=y
635# CONFIG_I2C is not set 640# CONFIG_I2C is not set
636# CONFIG_SPI is not set 641# CONFIG_SPI is not set
642CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
643# CONFIG_GPIOLIB is not set
637# CONFIG_W1 is not set 644# CONFIG_W1 is not set
638# CONFIG_POWER_SUPPLY is not set 645# CONFIG_POWER_SUPPLY is not set
639CONFIG_HWMON=y 646CONFIG_HWMON=y
@@ -654,6 +661,7 @@ CONFIG_HWMON=y
654# CONFIG_SENSORS_W83627EHF is not set 661# CONFIG_SENSORS_W83627EHF is not set
655# CONFIG_HWMON_DEBUG_CHIP is not set 662# CONFIG_HWMON_DEBUG_CHIP is not set
656# CONFIG_THERMAL is not set 663# CONFIG_THERMAL is not set
664# CONFIG_THERMAL_HWMON is not set
657# CONFIG_WATCHDOG is not set 665# CONFIG_WATCHDOG is not set
658 666
659# 667#
@@ -665,8 +673,10 @@ CONFIG_SSB_POSSIBLE=y
665# 673#
666# Multifunction device drivers 674# Multifunction device drivers
667# 675#
676# CONFIG_MFD_CORE is not set
668# CONFIG_MFD_SM501 is not set 677# CONFIG_MFD_SM501 is not set
669# CONFIG_HTC_PASIC3 is not set 678# CONFIG_HTC_PASIC3 is not set
679# CONFIG_MFD_TMIO is not set
670 680
671# 681#
672# Multimedia devices 682# Multimedia devices
@@ -698,10 +708,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
698# Display device support 708# Display device support
699# 709#
700# CONFIG_DISPLAY_SUPPORT is not set 710# CONFIG_DISPLAY_SUPPORT is not set
701
702#
703# Sound
704#
705# CONFIG_SOUND is not set 711# CONFIG_SOUND is not set
706CONFIG_HID_SUPPORT=y 712CONFIG_HID_SUPPORT=y
707CONFIG_HID=y 713CONFIG_HID=y
@@ -716,6 +722,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
716# CONFIG_USB_OTG_BLACKLIST_HUB is not set 722# CONFIG_USB_OTG_BLACKLIST_HUB is not set
717 723
718# 724#
725# Enable Host or Gadget support to see Inventra options
726#
727
728#
719# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 729# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
720# 730#
721# CONFIG_USB_GADGET is not set 731# CONFIG_USB_GADGET is not set
@@ -793,6 +803,7 @@ CONFIG_TMPFS=y
793# CONFIG_CRAMFS is not set 803# CONFIG_CRAMFS is not set
794# CONFIG_VXFS_FS is not set 804# CONFIG_VXFS_FS is not set
795# CONFIG_MINIX_FS is not set 805# CONFIG_MINIX_FS is not set
806# CONFIG_OMFS_FS is not set
796# CONFIG_HPFS_FS is not set 807# CONFIG_HPFS_FS is not set
797# CONFIG_QNX4FS_FS is not set 808# CONFIG_QNX4FS_FS is not set
798# CONFIG_ROMFS_FS is not set 809# CONFIG_ROMFS_FS is not set
@@ -802,12 +813,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
802CONFIG_NFS_FS=y 813CONFIG_NFS_FS=y
803# CONFIG_NFS_V3 is not set 814# CONFIG_NFS_V3 is not set
804# CONFIG_NFS_V4 is not set 815# CONFIG_NFS_V4 is not set
805# CONFIG_NFSD is not set
806CONFIG_ROOT_NFS=y 816CONFIG_ROOT_NFS=y
817# CONFIG_NFSD is not set
807CONFIG_LOCKD=y 818CONFIG_LOCKD=y
808CONFIG_NFS_COMMON=y 819CONFIG_NFS_COMMON=y
809CONFIG_SUNRPC=y 820CONFIG_SUNRPC=y
810# CONFIG_SUNRPC_BIND34 is not set
811# CONFIG_RPCSEC_GSS_KRB5 is not set 821# CONFIG_RPCSEC_GSS_KRB5 is not set
812# CONFIG_RPCSEC_GSS_SPKM3 is not set 822# CONFIG_RPCSEC_GSS_SPKM3 is not set
813# CONFIG_SMB_FS is not set 823# CONFIG_SMB_FS is not set
@@ -843,6 +853,7 @@ CONFIG_BITREVERSE=y
843# CONFIG_GENERIC_FIND_FIRST_BIT is not set 853# CONFIG_GENERIC_FIND_FIRST_BIT is not set
844# CONFIG_CRC_CCITT is not set 854# CONFIG_CRC_CCITT is not set
845# CONFIG_CRC16 is not set 855# CONFIG_CRC16 is not set
856# CONFIG_CRC_T10DIF is not set
846# CONFIG_CRC_ITU_T is not set 857# CONFIG_CRC_ITU_T is not set
847CONFIG_CRC32=y 858CONFIG_CRC32=y
848# CONFIG_CRC7 is not set 859# CONFIG_CRC7 is not set
@@ -867,6 +878,8 @@ CONFIG_FRAME_WARN=1024
867CONFIG_DEBUG_KERNEL=y 878CONFIG_DEBUG_KERNEL=y
868# CONFIG_DEBUG_SHIRQ is not set 879# CONFIG_DEBUG_SHIRQ is not set
869CONFIG_DETECT_SOFTLOCKUP=y 880CONFIG_DETECT_SOFTLOCKUP=y
881# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
882CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
870CONFIG_SCHED_DEBUG=y 883CONFIG_SCHED_DEBUG=y
871# CONFIG_SCHEDSTATS is not set 884# CONFIG_SCHEDSTATS is not set
872# CONFIG_TIMER_STATS is not set 885# CONFIG_TIMER_STATS is not set
@@ -884,16 +897,29 @@ CONFIG_DEBUG_MUTEXES=y
884# CONFIG_DEBUG_INFO is not set 897# CONFIG_DEBUG_INFO is not set
885# CONFIG_DEBUG_VM is not set 898# CONFIG_DEBUG_VM is not set
886# CONFIG_DEBUG_WRITECOUNT is not set 899# CONFIG_DEBUG_WRITECOUNT is not set
900# CONFIG_DEBUG_MEMORY_INIT is not set
887# CONFIG_DEBUG_LIST is not set 901# CONFIG_DEBUG_LIST is not set
888# CONFIG_DEBUG_SG is not set 902# CONFIG_DEBUG_SG is not set
889# CONFIG_BOOT_PRINTK_DELAY is not set 903# CONFIG_BOOT_PRINTK_DELAY is not set
904# CONFIG_RCU_TORTURE_TEST is not set
890# CONFIG_BACKTRACE_SELF_TEST is not set 905# CONFIG_BACKTRACE_SELF_TEST is not set
891# CONFIG_FAULT_INJECTION is not set 906# CONFIG_FAULT_INJECTION is not set
907# CONFIG_LATENCYTOP is not set
908CONFIG_SYSCTL_SYSCALL_CHECK=y
909CONFIG_HAVE_FTRACE=y
910CONFIG_HAVE_DYNAMIC_FTRACE=y
911# CONFIG_FTRACE is not set
912# CONFIG_SCHED_TRACER is not set
913# CONFIG_CONTEXT_SWITCH_TRACER is not set
892# CONFIG_SAMPLES is not set 914# CONFIG_SAMPLES is not set
915CONFIG_HAVE_ARCH_KGDB=y
916# CONFIG_KGDB is not set
893# CONFIG_DEBUG_STACKOVERFLOW is not set 917# CONFIG_DEBUG_STACKOVERFLOW is not set
894# CONFIG_DEBUG_STACK_USAGE is not set 918# CONFIG_DEBUG_STACK_USAGE is not set
895# CONFIG_DEBUG_PAGEALLOC is not set 919# CONFIG_DEBUG_PAGEALLOC is not set
896# CONFIG_DEBUGGER is not set 920# CONFIG_CODE_PATCHING_SELFTEST is not set
921# CONFIG_FTR_FIXUP_SELFTEST is not set
922# CONFIG_XMON is not set
897# CONFIG_IRQSTACKS is not set 923# CONFIG_IRQSTACKS is not set
898# CONFIG_BDI_SWITCH is not set 924# CONFIG_BDI_SWITCH is not set
899# CONFIG_PPC_EARLY_DEBUG is not set 925# CONFIG_PPC_EARLY_DEBUG is not set
@@ -946,6 +972,10 @@ CONFIG_CRYPTO=y
946# CONFIG_CRYPTO_MD4 is not set 972# CONFIG_CRYPTO_MD4 is not set
947# CONFIG_CRYPTO_MD5 is not set 973# CONFIG_CRYPTO_MD5 is not set
948# CONFIG_CRYPTO_MICHAEL_MIC is not set 974# CONFIG_CRYPTO_MICHAEL_MIC is not set
975# CONFIG_CRYPTO_RMD128 is not set
976# CONFIG_CRYPTO_RMD160 is not set
977# CONFIG_CRYPTO_RMD256 is not set
978# CONFIG_CRYPTO_RMD320 is not set
949# CONFIG_CRYPTO_SHA1 is not set 979# CONFIG_CRYPTO_SHA1 is not set
950# CONFIG_CRYPTO_SHA256 is not set 980# CONFIG_CRYPTO_SHA256 is not set
951# CONFIG_CRYPTO_SHA512 is not set 981# CONFIG_CRYPTO_SHA512 is not set
@@ -978,5 +1008,6 @@ CONFIG_CRYPTO=y
978# CONFIG_CRYPTO_LZO is not set 1008# CONFIG_CRYPTO_LZO is not set
979CONFIG_CRYPTO_HW=y 1009CONFIG_CRYPTO_HW=y
980# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1010# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1011# CONFIG_CRYPTO_DEV_TALITOS is not set
981# CONFIG_PPC_CLOCK is not set 1012# CONFIG_PPC_CLOCK is not set
982# CONFIG_VIRTUALIZATION is not set 1013# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/sbc8548_defconfig b/arch/powerpc/configs/85xx/sbc8548_defconfig
index 24f7f44b4821..41cedc4b63f6 100644
--- a/arch/powerpc/configs/85xx/sbc8548_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8548_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:37 2008 4# Thu Aug 21 00:52:35 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_EXTRA_PASS is not set 95# CONFIG_KALLSYMS_EXTRA_PASS is not set
95CONFIG_HOTPLUG=y 96CONFIG_HOTPLUG=y
@@ -112,10 +113,16 @@ CONFIG_SLAB=y
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 114# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 128# CONFIG_TINY_SHMEM is not set
@@ -126,6 +133,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 134# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set
129 137
130# 138#
131# IO Schedulers 139# IO Schedulers
@@ -144,8 +152,6 @@ CONFIG_CLASSIC_RCU=y
144# 152#
145# Platform support 153# Platform support
146# 154#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 155# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 156# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 157# CONFIG_PQ2ADS is not set
@@ -154,11 +160,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 160# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 161# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 162# CONFIG_MPC85xx_MDS is not set
163# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 164# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 165# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 166# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 167# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set 168# CONFIG_TQM8541 is not set
169# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 170# CONFIG_TQM8555 is not set
163# CONFIG_TQM8560 is not set 171# CONFIG_TQM8560 is not set
164CONFIG_SBC8548=y 172CONFIG_SBC8548=y
@@ -213,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
213# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
214CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
215CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
216# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
217CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
218CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -220,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
220CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
221CONFIG_PROC_DEVICETREE=y 230CONFIG_PROC_DEVICETREE=y
222# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
223# CONFIG_PM is not set 233# CONFIG_PM is not set
224# CONFIG_SECCOMP is not set 234# CONFIG_SECCOMP is not set
225CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -231,6 +241,7 @@ CONFIG_ZONE_DMA=y
231CONFIG_PPC_INDIRECT_PCI=y 241CONFIG_PPC_INDIRECT_PCI=y
232CONFIG_FSL_SOC=y 242CONFIG_FSL_SOC=y
233CONFIG_FSL_PCI=y 243CONFIG_FSL_PCI=y
244CONFIG_PPC_PCI_CHOICE=y
234CONFIG_PCI=y 245CONFIG_PCI=y
235CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
236CONFIG_PCI_SYSCALL=y 247CONFIG_PCI_SYSCALL=y
@@ -256,10 +267,6 @@ CONFIG_KERNEL_START=0xc0000000
256CONFIG_PHYSICAL_START=0x00000000 267CONFIG_PHYSICAL_START=0x00000000
257CONFIG_PHYSICAL_ALIGN=0x10000000 268CONFIG_PHYSICAL_ALIGN=0x10000000
258CONFIG_TASK_SIZE=0xc0000000 269CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 270CONFIG_NET=y
264 271
265# 272#
@@ -374,12 +381,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
374# CONFIG_BLK_DEV_XIP is not set 381# CONFIG_BLK_DEV_XIP is not set
375# CONFIG_CDROM_PKTCDVD is not set 382# CONFIG_CDROM_PKTCDVD is not set
376# CONFIG_ATA_OVER_ETH is not set 383# CONFIG_ATA_OVER_ETH is not set
384# CONFIG_BLK_DEV_HD is not set
377CONFIG_MISC_DEVICES=y 385CONFIG_MISC_DEVICES=y
378# CONFIG_PHANTOM is not set 386# CONFIG_PHANTOM is not set
379# CONFIG_EEPROM_93CX6 is not set 387# CONFIG_EEPROM_93CX6 is not set
380# CONFIG_SGI_IOC4 is not set 388# CONFIG_SGI_IOC4 is not set
381# CONFIG_TIFM_CORE is not set 389# CONFIG_TIFM_CORE is not set
382# CONFIG_ENCLOSURE_SERVICES is not set 390# CONFIG_ENCLOSURE_SERVICES is not set
391# CONFIG_HP_ILO is not set
383CONFIG_HAVE_IDE=y 392CONFIG_HAVE_IDE=y
384# CONFIG_IDE is not set 393# CONFIG_IDE is not set
385 394
@@ -397,12 +406,15 @@ CONFIG_HAVE_IDE=y
397# 406#
398# IEEE 1394 (FireWire) support 407# IEEE 1394 (FireWire) support
399# 408#
409
410#
411# Enable only one of the two stacks, unless you know what you are doing
412#
400# CONFIG_FIREWIRE is not set 413# CONFIG_FIREWIRE is not set
401# CONFIG_IEEE1394 is not set 414# CONFIG_IEEE1394 is not set
402# CONFIG_I2O is not set 415# CONFIG_I2O is not set
403# CONFIG_MACINTOSH_DRIVERS is not set 416# CONFIG_MACINTOSH_DRIVERS is not set
404CONFIG_NETDEVICES=y 417CONFIG_NETDEVICES=y
405# CONFIG_NETDEVICES_MULTIQUEUE is not set
406# CONFIG_DUMMY is not set 418# CONFIG_DUMMY is not set
407# CONFIG_BONDING is not set 419# CONFIG_BONDING is not set
408# CONFIG_MACVLAN is not set 420# CONFIG_MACVLAN is not set
@@ -446,7 +458,6 @@ CONFIG_NETDEV_1000=y
446# CONFIG_DL2K is not set 458# CONFIG_DL2K is not set
447# CONFIG_E1000 is not set 459# CONFIG_E1000 is not set
448# CONFIG_E1000E is not set 460# CONFIG_E1000E is not set
449# CONFIG_E1000E_ENABLED is not set
450# CONFIG_IP1000 is not set 461# CONFIG_IP1000 is not set
451# CONFIG_IGB is not set 462# CONFIG_IGB is not set
452# CONFIG_NS83820 is not set 463# CONFIG_NS83820 is not set
@@ -460,9 +471,9 @@ CONFIG_NETDEV_1000=y
460# CONFIG_TIGON3 is not set 471# CONFIG_TIGON3 is not set
461# CONFIG_BNX2 is not set 472# CONFIG_BNX2 is not set
462CONFIG_GIANFAR=y 473CONFIG_GIANFAR=y
463CONFIG_GFAR_NAPI=y
464# CONFIG_QLA3XXX is not set 474# CONFIG_QLA3XXX is not set
465# CONFIG_ATL1 is not set 475# CONFIG_ATL1 is not set
476# CONFIG_ATL1E is not set
466CONFIG_NETDEV_10000=y 477CONFIG_NETDEV_10000=y
467# CONFIG_CHELSIO_T1 is not set 478# CONFIG_CHELSIO_T1 is not set
468# CONFIG_CHELSIO_T3 is not set 479# CONFIG_CHELSIO_T3 is not set
@@ -568,6 +579,8 @@ CONFIG_GEN_RTC=y
568CONFIG_DEVPORT=y 579CONFIG_DEVPORT=y
569# CONFIG_I2C is not set 580# CONFIG_I2C is not set
570# CONFIG_SPI is not set 581# CONFIG_SPI is not set
582CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
583# CONFIG_GPIOLIB is not set
571# CONFIG_W1 is not set 584# CONFIG_W1 is not set
572# CONFIG_POWER_SUPPLY is not set 585# CONFIG_POWER_SUPPLY is not set
573CONFIG_HWMON=y 586CONFIG_HWMON=y
@@ -588,6 +601,7 @@ CONFIG_HWMON=y
588# CONFIG_SENSORS_W83627EHF is not set 601# CONFIG_SENSORS_W83627EHF is not set
589# CONFIG_HWMON_DEBUG_CHIP is not set 602# CONFIG_HWMON_DEBUG_CHIP is not set
590# CONFIG_THERMAL is not set 603# CONFIG_THERMAL is not set
604# CONFIG_THERMAL_HWMON is not set
591# CONFIG_WATCHDOG is not set 605# CONFIG_WATCHDOG is not set
592 606
593# 607#
@@ -599,8 +613,10 @@ CONFIG_SSB_POSSIBLE=y
599# 613#
600# Multifunction device drivers 614# Multifunction device drivers
601# 615#
616# CONFIG_MFD_CORE is not set
602# CONFIG_MFD_SM501 is not set 617# CONFIG_MFD_SM501 is not set
603# CONFIG_HTC_PASIC3 is not set 618# CONFIG_HTC_PASIC3 is not set
619# CONFIG_MFD_TMIO is not set
604 620
605# 621#
606# Multimedia devices 622# Multimedia devices
@@ -632,10 +648,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
632# Display device support 648# Display device support
633# 649#
634# CONFIG_DISPLAY_SUPPORT is not set 650# CONFIG_DISPLAY_SUPPORT is not set
635
636#
637# Sound
638#
639# CONFIG_SOUND is not set 651# CONFIG_SOUND is not set
640# CONFIG_HID_SUPPORT is not set 652# CONFIG_HID_SUPPORT is not set
641# CONFIG_USB_SUPPORT is not set 653# CONFIG_USB_SUPPORT is not set
@@ -706,6 +718,7 @@ CONFIG_TMPFS=y
706# CONFIG_CRAMFS is not set 718# CONFIG_CRAMFS is not set
707# CONFIG_VXFS_FS is not set 719# CONFIG_VXFS_FS is not set
708# CONFIG_MINIX_FS is not set 720# CONFIG_MINIX_FS is not set
721# CONFIG_OMFS_FS is not set
709# CONFIG_HPFS_FS is not set 722# CONFIG_HPFS_FS is not set
710# CONFIG_QNX4FS_FS is not set 723# CONFIG_QNX4FS_FS is not set
711# CONFIG_ROMFS_FS is not set 724# CONFIG_ROMFS_FS is not set
@@ -715,12 +728,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
715CONFIG_NFS_FS=y 728CONFIG_NFS_FS=y
716# CONFIG_NFS_V3 is not set 729# CONFIG_NFS_V3 is not set
717# CONFIG_NFS_V4 is not set 730# CONFIG_NFS_V4 is not set
718# CONFIG_NFSD is not set
719CONFIG_ROOT_NFS=y 731CONFIG_ROOT_NFS=y
732# CONFIG_NFSD is not set
720CONFIG_LOCKD=y 733CONFIG_LOCKD=y
721CONFIG_NFS_COMMON=y 734CONFIG_NFS_COMMON=y
722CONFIG_SUNRPC=y 735CONFIG_SUNRPC=y
723# CONFIG_SUNRPC_BIND34 is not set
724# CONFIG_RPCSEC_GSS_KRB5 is not set 736# CONFIG_RPCSEC_GSS_KRB5 is not set
725# CONFIG_RPCSEC_GSS_SPKM3 is not set 737# CONFIG_RPCSEC_GSS_SPKM3 is not set
726# CONFIG_SMB_FS is not set 738# CONFIG_SMB_FS is not set
@@ -744,6 +756,7 @@ CONFIG_BITREVERSE=y
744# CONFIG_GENERIC_FIND_FIRST_BIT is not set 756# CONFIG_GENERIC_FIND_FIRST_BIT is not set
745# CONFIG_CRC_CCITT is not set 757# CONFIG_CRC_CCITT is not set
746# CONFIG_CRC16 is not set 758# CONFIG_CRC16 is not set
759# CONFIG_CRC_T10DIF is not set
747# CONFIG_CRC_ITU_T is not set 760# CONFIG_CRC_ITU_T is not set
748CONFIG_CRC32=y 761CONFIG_CRC32=y
749# CONFIG_CRC7 is not set 762# CONFIG_CRC7 is not set
@@ -767,7 +780,16 @@ CONFIG_FRAME_WARN=1024
767# CONFIG_HEADERS_CHECK is not set 780# CONFIG_HEADERS_CHECK is not set
768# CONFIG_DEBUG_KERNEL is not set 781# CONFIG_DEBUG_KERNEL is not set
769# CONFIG_DEBUG_BUGVERBOSE is not set 782# CONFIG_DEBUG_BUGVERBOSE is not set
783# CONFIG_DEBUG_MEMORY_INIT is not set
784# CONFIG_LATENCYTOP is not set
785CONFIG_SYSCTL_SYSCALL_CHECK=y
786CONFIG_HAVE_FTRACE=y
787CONFIG_HAVE_DYNAMIC_FTRACE=y
788# CONFIG_FTRACE is not set
789# CONFIG_SCHED_TRACER is not set
790# CONFIG_CONTEXT_SWITCH_TRACER is not set
770# CONFIG_SAMPLES is not set 791# CONFIG_SAMPLES is not set
792CONFIG_HAVE_ARCH_KGDB=y
771# CONFIG_IRQSTACKS is not set 793# CONFIG_IRQSTACKS is not set
772# CONFIG_PPC_EARLY_DEBUG is not set 794# CONFIG_PPC_EARLY_DEBUG is not set
773 795
@@ -819,6 +841,10 @@ CONFIG_CRYPTO=y
819# CONFIG_CRYPTO_MD4 is not set 841# CONFIG_CRYPTO_MD4 is not set
820# CONFIG_CRYPTO_MD5 is not set 842# CONFIG_CRYPTO_MD5 is not set
821# CONFIG_CRYPTO_MICHAEL_MIC is not set 843# CONFIG_CRYPTO_MICHAEL_MIC is not set
844# CONFIG_CRYPTO_RMD128 is not set
845# CONFIG_CRYPTO_RMD160 is not set
846# CONFIG_CRYPTO_RMD256 is not set
847# CONFIG_CRYPTO_RMD320 is not set
822# CONFIG_CRYPTO_SHA1 is not set 848# CONFIG_CRYPTO_SHA1 is not set
823# CONFIG_CRYPTO_SHA256 is not set 849# CONFIG_CRYPTO_SHA256 is not set
824# CONFIG_CRYPTO_SHA512 is not set 850# CONFIG_CRYPTO_SHA512 is not set
@@ -851,5 +877,6 @@ CONFIG_CRYPTO=y
851# CONFIG_CRYPTO_LZO is not set 877# CONFIG_CRYPTO_LZO is not set
852CONFIG_CRYPTO_HW=y 878CONFIG_CRYPTO_HW=y
853# CONFIG_CRYPTO_DEV_HIFN_795X is not set 879# CONFIG_CRYPTO_DEV_HIFN_795X is not set
880# CONFIG_CRYPTO_DEV_TALITOS is not set
854# CONFIG_PPC_CLOCK is not set 881# CONFIG_PPC_CLOCK is not set
855# CONFIG_VIRTUALIZATION is not set 882# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/sbc8560_defconfig b/arch/powerpc/configs/85xx/sbc8560_defconfig
index 655518dcd73f..daef36f41b42 100644
--- a/arch/powerpc/configs/85xx/sbc8560_defconfig
+++ b/arch/powerpc/configs/85xx/sbc8560_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:38 2008 4# Thu Aug 21 00:52:36 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -113,10 +114,16 @@ CONFIG_SLAB=y
113# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
114# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
115CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
116CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
117CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
118# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124# CONFIG_HAVE_CLK is not set
119CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
120CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
121CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
122# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -127,6 +134,7 @@ CONFIG_BLOCK=y
127# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
128# CONFIG_LSF is not set 135# CONFIG_LSF is not set
129# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
130 138
131# 139#
132# IO Schedulers 140# IO Schedulers
@@ -145,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
145# 153#
146# Platform support 154# Platform support
147# 155#
148# CONFIG_PPC_MPC512x is not set
149# CONFIG_PPC_MPC5121 is not set
150# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
151# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
152# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -155,11 +161,13 @@ CONFIG_MPC85xx=y
155# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
156# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
157# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
158# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
159# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
160# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
161# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
162# CONFIG_TQM8541 is not set 169# CONFIG_TQM8541 is not set
170# CONFIG_TQM8548 is not set
163# CONFIG_TQM8555 is not set 171# CONFIG_TQM8555 is not set
164# CONFIG_TQM8560 is not set 172# CONFIG_TQM8560 is not set
165# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -214,6 +222,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
215CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
216CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y
217# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
@@ -221,6 +230,7 @@ CONFIG_VIRT_TO_BUS=y
221CONFIG_FORCE_MAX_ZONEORDER=11 230CONFIG_FORCE_MAX_ZONEORDER=11
222CONFIG_PROC_DEVICETREE=y 231CONFIG_PROC_DEVICETREE=y
223# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
233CONFIG_EXTRA_TARGETS=""
224# CONFIG_PM is not set 234# CONFIG_PM is not set
225# CONFIG_SECCOMP is not set 235# CONFIG_SECCOMP is not set
226CONFIG_ISA_DMA_API=y 236CONFIG_ISA_DMA_API=y
@@ -230,6 +240,7 @@ CONFIG_ISA_DMA_API=y
230# 240#
231CONFIG_ZONE_DMA=y 241CONFIG_ZONE_DMA=y
232CONFIG_FSL_SOC=y 242CONFIG_FSL_SOC=y
243CONFIG_PPC_PCI_CHOICE=y
233# CONFIG_PCI is not set 244# CONFIG_PCI is not set
234# CONFIG_PCI_DOMAINS is not set 245# CONFIG_PCI_DOMAINS is not set
235# CONFIG_PCI_SYSCALL is not set 246# CONFIG_PCI_SYSCALL is not set
@@ -251,10 +262,6 @@ CONFIG_KERNEL_START=0xc0000000
251CONFIG_PHYSICAL_START=0x00000000 262CONFIG_PHYSICAL_START=0x00000000
252CONFIG_PHYSICAL_ALIGN=0x10000000 263CONFIG_PHYSICAL_ALIGN=0x10000000
253CONFIG_TASK_SIZE=0xc0000000 264CONFIG_TASK_SIZE=0xc0000000
254
255#
256# Networking
257#
258CONFIG_NET=y 265CONFIG_NET=y
259 266
260# 267#
@@ -366,6 +373,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
366# CONFIG_BLK_DEV_XIP is not set 373# CONFIG_BLK_DEV_XIP is not set
367# CONFIG_CDROM_PKTCDVD is not set 374# CONFIG_CDROM_PKTCDVD is not set
368# CONFIG_ATA_OVER_ETH is not set 375# CONFIG_ATA_OVER_ETH is not set
376# CONFIG_BLK_DEV_HD is not set
369CONFIG_MISC_DEVICES=y 377CONFIG_MISC_DEVICES=y
370# CONFIG_EEPROM_93CX6 is not set 378# CONFIG_EEPROM_93CX6 is not set
371# CONFIG_ENCLOSURE_SERVICES is not set 379# CONFIG_ENCLOSURE_SERVICES is not set
@@ -383,7 +391,6 @@ CONFIG_HAVE_IDE=y
383# CONFIG_MD is not set 391# CONFIG_MD is not set
384# CONFIG_MACINTOSH_DRIVERS is not set 392# CONFIG_MACINTOSH_DRIVERS is not set
385CONFIG_NETDEVICES=y 393CONFIG_NETDEVICES=y
386# CONFIG_NETDEVICES_MULTIQUEUE is not set
387# CONFIG_DUMMY is not set 394# CONFIG_DUMMY is not set
388# CONFIG_BONDING is not set 395# CONFIG_BONDING is not set
389# CONFIG_MACVLAN is not set 396# CONFIG_MACVLAN is not set
@@ -415,9 +422,7 @@ CONFIG_MII=y
415# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 422# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
416# CONFIG_B44 is not set 423# CONFIG_B44 is not set
417CONFIG_NETDEV_1000=y 424CONFIG_NETDEV_1000=y
418# CONFIG_E1000E_ENABLED is not set
419CONFIG_GIANFAR=y 425CONFIG_GIANFAR=y
420CONFIG_GFAR_NAPI=y
421CONFIG_NETDEV_10000=y 426CONFIG_NETDEV_10000=y
422 427
423# 428#
@@ -501,6 +506,8 @@ CONFIG_LEGACY_PTY_COUNT=256
501# CONFIG_TCG_TPM is not set 506# CONFIG_TCG_TPM is not set
502# CONFIG_I2C is not set 507# CONFIG_I2C is not set
503# CONFIG_SPI is not set 508# CONFIG_SPI is not set
509CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
510# CONFIG_GPIOLIB is not set
504# CONFIG_W1 is not set 511# CONFIG_W1 is not set
505# CONFIG_POWER_SUPPLY is not set 512# CONFIG_POWER_SUPPLY is not set
506CONFIG_HWMON=y 513CONFIG_HWMON=y
@@ -517,6 +524,7 @@ CONFIG_HWMON=y
517# CONFIG_SENSORS_W83627EHF is not set 524# CONFIG_SENSORS_W83627EHF is not set
518# CONFIG_HWMON_DEBUG_CHIP is not set 525# CONFIG_HWMON_DEBUG_CHIP is not set
519# CONFIG_THERMAL is not set 526# CONFIG_THERMAL is not set
527# CONFIG_THERMAL_HWMON is not set
520# CONFIG_WATCHDOG is not set 528# CONFIG_WATCHDOG is not set
521 529
522# 530#
@@ -528,8 +536,10 @@ CONFIG_SSB_POSSIBLE=y
528# 536#
529# Multifunction device drivers 537# Multifunction device drivers
530# 538#
539# CONFIG_MFD_CORE is not set
531# CONFIG_MFD_SM501 is not set 540# CONFIG_MFD_SM501 is not set
532# CONFIG_HTC_PASIC3 is not set 541# CONFIG_HTC_PASIC3 is not set
542# CONFIG_MFD_TMIO is not set
533 543
534# 544#
535# Multimedia devices 545# Multimedia devices
@@ -559,10 +569,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
559# Display device support 569# Display device support
560# 570#
561# CONFIG_DISPLAY_SUPPORT is not set 571# CONFIG_DISPLAY_SUPPORT is not set
562
563#
564# Sound
565#
566# CONFIG_SOUND is not set 572# CONFIG_SOUND is not set
567CONFIG_HID_SUPPORT=y 573CONFIG_HID_SUPPORT=y
568CONFIG_HID=y 574CONFIG_HID=y
@@ -576,6 +582,10 @@ CONFIG_USB_SUPPORT=y
576# CONFIG_USB_OTG_BLACKLIST_HUB is not set 582# CONFIG_USB_OTG_BLACKLIST_HUB is not set
577 583
578# 584#
585# Enable Host or Gadget support to see Inventra options
586#
587
588#
579# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 589# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
580# 590#
581# CONFIG_USB_GADGET is not set 591# CONFIG_USB_GADGET is not set
@@ -679,6 +689,7 @@ CONFIG_TMPFS=y
679# CONFIG_CRAMFS is not set 689# CONFIG_CRAMFS is not set
680# CONFIG_VXFS_FS is not set 690# CONFIG_VXFS_FS is not set
681# CONFIG_MINIX_FS is not set 691# CONFIG_MINIX_FS is not set
692# CONFIG_OMFS_FS is not set
682# CONFIG_HPFS_FS is not set 693# CONFIG_HPFS_FS is not set
683# CONFIG_QNX4FS_FS is not set 694# CONFIG_QNX4FS_FS is not set
684# CONFIG_ROMFS_FS is not set 695# CONFIG_ROMFS_FS is not set
@@ -688,12 +699,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
688CONFIG_NFS_FS=y 699CONFIG_NFS_FS=y
689# CONFIG_NFS_V3 is not set 700# CONFIG_NFS_V3 is not set
690# CONFIG_NFS_V4 is not set 701# CONFIG_NFS_V4 is not set
691# CONFIG_NFSD is not set
692CONFIG_ROOT_NFS=y 702CONFIG_ROOT_NFS=y
703# CONFIG_NFSD is not set
693CONFIG_LOCKD=y 704CONFIG_LOCKD=y
694CONFIG_NFS_COMMON=y 705CONFIG_NFS_COMMON=y
695CONFIG_SUNRPC=y 706CONFIG_SUNRPC=y
696# CONFIG_SUNRPC_BIND34 is not set
697# CONFIG_RPCSEC_GSS_KRB5 is not set 707# CONFIG_RPCSEC_GSS_KRB5 is not set
698# CONFIG_RPCSEC_GSS_SPKM3 is not set 708# CONFIG_RPCSEC_GSS_SPKM3 is not set
699# CONFIG_SMB_FS is not set 709# CONFIG_SMB_FS is not set
@@ -729,6 +739,7 @@ CONFIG_BITREVERSE=y
729# CONFIG_GENERIC_FIND_FIRST_BIT is not set 739# CONFIG_GENERIC_FIND_FIRST_BIT is not set
730# CONFIG_CRC_CCITT is not set 740# CONFIG_CRC_CCITT is not set
731# CONFIG_CRC16 is not set 741# CONFIG_CRC16 is not set
742# CONFIG_CRC_T10DIF is not set
732# CONFIG_CRC_ITU_T is not set 743# CONFIG_CRC_ITU_T is not set
733CONFIG_CRC32=y 744CONFIG_CRC32=y
734# CONFIG_CRC7 is not set 745# CONFIG_CRC7 is not set
@@ -753,6 +764,8 @@ CONFIG_MAGIC_SYSRQ=y
753CONFIG_DEBUG_KERNEL=y 764CONFIG_DEBUG_KERNEL=y
754# CONFIG_DEBUG_SHIRQ is not set 765# CONFIG_DEBUG_SHIRQ is not set
755CONFIG_DETECT_SOFTLOCKUP=y 766CONFIG_DETECT_SOFTLOCKUP=y
767# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
768CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
756CONFIG_SCHED_DEBUG=y 769CONFIG_SCHED_DEBUG=y
757# CONFIG_SCHEDSTATS is not set 770# CONFIG_SCHEDSTATS is not set
758# CONFIG_TIMER_STATS is not set 771# CONFIG_TIMER_STATS is not set
@@ -769,16 +782,29 @@ CONFIG_DEBUG_MUTEXES=y
769# CONFIG_DEBUG_INFO is not set 782# CONFIG_DEBUG_INFO is not set
770# CONFIG_DEBUG_VM is not set 783# CONFIG_DEBUG_VM is not set
771# CONFIG_DEBUG_WRITECOUNT is not set 784# CONFIG_DEBUG_WRITECOUNT is not set
785# CONFIG_DEBUG_MEMORY_INIT is not set
772# CONFIG_DEBUG_LIST is not set 786# CONFIG_DEBUG_LIST is not set
773# CONFIG_DEBUG_SG is not set 787# CONFIG_DEBUG_SG is not set
774# CONFIG_BOOT_PRINTK_DELAY is not set 788# CONFIG_BOOT_PRINTK_DELAY is not set
789# CONFIG_RCU_TORTURE_TEST is not set
775# CONFIG_BACKTRACE_SELF_TEST is not set 790# CONFIG_BACKTRACE_SELF_TEST is not set
776# CONFIG_FAULT_INJECTION is not set 791# CONFIG_FAULT_INJECTION is not set
792# CONFIG_LATENCYTOP is not set
793CONFIG_SYSCTL_SYSCALL_CHECK=y
794CONFIG_HAVE_FTRACE=y
795CONFIG_HAVE_DYNAMIC_FTRACE=y
796# CONFIG_FTRACE is not set
797# CONFIG_SCHED_TRACER is not set
798# CONFIG_CONTEXT_SWITCH_TRACER is not set
777# CONFIG_SAMPLES is not set 799# CONFIG_SAMPLES is not set
800CONFIG_HAVE_ARCH_KGDB=y
801# CONFIG_KGDB is not set
778# CONFIG_DEBUG_STACKOVERFLOW is not set 802# CONFIG_DEBUG_STACKOVERFLOW is not set
779# CONFIG_DEBUG_STACK_USAGE is not set 803# CONFIG_DEBUG_STACK_USAGE is not set
780# CONFIG_DEBUG_PAGEALLOC is not set 804# CONFIG_DEBUG_PAGEALLOC is not set
781# CONFIG_DEBUGGER is not set 805# CONFIG_CODE_PATCHING_SELFTEST is not set
806# CONFIG_FTR_FIXUP_SELFTEST is not set
807# CONFIG_XMON is not set
782# CONFIG_IRQSTACKS is not set 808# CONFIG_IRQSTACKS is not set
783# CONFIG_BDI_SWITCH is not set 809# CONFIG_BDI_SWITCH is not set
784CONFIG_PPC_EARLY_DEBUG=y 810CONFIG_PPC_EARLY_DEBUG=y
@@ -842,6 +868,10 @@ CONFIG_CRYPTO=y
842# CONFIG_CRYPTO_MD4 is not set 868# CONFIG_CRYPTO_MD4 is not set
843# CONFIG_CRYPTO_MD5 is not set 869# CONFIG_CRYPTO_MD5 is not set
844# CONFIG_CRYPTO_MICHAEL_MIC is not set 870# CONFIG_CRYPTO_MICHAEL_MIC is not set
871# CONFIG_CRYPTO_RMD128 is not set
872# CONFIG_CRYPTO_RMD160 is not set
873# CONFIG_CRYPTO_RMD256 is not set
874# CONFIG_CRYPTO_RMD320 is not set
845# CONFIG_CRYPTO_SHA1 is not set 875# CONFIG_CRYPTO_SHA1 is not set
846# CONFIG_CRYPTO_SHA256 is not set 876# CONFIG_CRYPTO_SHA256 is not set
847# CONFIG_CRYPTO_SHA512 is not set 877# CONFIG_CRYPTO_SHA512 is not set
@@ -873,5 +903,6 @@ CONFIG_CRYPTO=y
873# CONFIG_CRYPTO_DEFLATE is not set 903# CONFIG_CRYPTO_DEFLATE is not set
874# CONFIG_CRYPTO_LZO is not set 904# CONFIG_CRYPTO_LZO is not set
875CONFIG_CRYPTO_HW=y 905CONFIG_CRYPTO_HW=y
906# CONFIG_CRYPTO_DEV_TALITOS is not set
876# CONFIG_PPC_CLOCK is not set 907# CONFIG_PPC_CLOCK is not set
877# CONFIG_VIRTUALIZATION is not set 908# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/stx_gp3_defconfig b/arch/powerpc/configs/85xx/stx_gp3_defconfig
index 7804ca1ecc94..2b05d43f8f7e 100644
--- a/arch/powerpc/configs/85xx/stx_gp3_defconfig
+++ b/arch/powerpc/configs/85xx/stx_gp3_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:38 2008 4# Thu Aug 21 00:52:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
94# CONFIG_KALLSYMS_ALL is not set 96# CONFIG_KALLSYMS_ALL is not set
95# CONFIG_KALLSYMS_EXTRA_PASS is not set 97# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -115,10 +117,16 @@ CONFIG_SLUB=y
115# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
116CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
118CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
120# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126# CONFIG_USE_GENERIC_SMP_HELPERS is not set
127CONFIG_HAVE_CLK=y
121CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
122CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
123CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
124# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -134,6 +142,7 @@ CONFIG_BLOCK=y
134# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
135# CONFIG_LSF is not set 143# CONFIG_LSF is not set
136# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
137 146
138# 147#
139# IO Schedulers 148# IO Schedulers
@@ -152,8 +161,6 @@ CONFIG_CLASSIC_RCU=y
152# 161#
153# Platform support 162# Platform support
154# 163#
155# CONFIG_PPC_MPC512x is not set
156# CONFIG_PPC_MPC5121 is not set
157# CONFIG_PPC_CELL is not set 164# CONFIG_PPC_CELL is not set
158# CONFIG_PPC_CELL_NATIVE is not set 165# CONFIG_PPC_CELL_NATIVE is not set
159# CONFIG_PQ2ADS is not set 166# CONFIG_PQ2ADS is not set
@@ -162,11 +169,13 @@ CONFIG_MPC85xx=y
162# CONFIG_MPC8560_ADS is not set 169# CONFIG_MPC8560_ADS is not set
163# CONFIG_MPC85xx_CDS is not set 170# CONFIG_MPC85xx_CDS is not set
164# CONFIG_MPC85xx_MDS is not set 171# CONFIG_MPC85xx_MDS is not set
172# CONFIG_MPC8536_DS is not set
165# CONFIG_MPC85xx_DS is not set 173# CONFIG_MPC85xx_DS is not set
166# CONFIG_KSI8560 is not set 174# CONFIG_KSI8560 is not set
167CONFIG_STX_GP3=y 175CONFIG_STX_GP3=y
168# CONFIG_TQM8540 is not set 176# CONFIG_TQM8540 is not set
169# CONFIG_TQM8541 is not set 177# CONFIG_TQM8541 is not set
178# CONFIG_TQM8548 is not set
170# CONFIG_TQM8555 is not set 179# CONFIG_TQM8555 is not set
171# CONFIG_TQM8560 is not set 180# CONFIG_TQM8560 is not set
172# CONFIG_SBC8548 is not set 181# CONFIG_SBC8548 is not set
@@ -183,7 +192,6 @@ CONFIG_MPIC=y
183# CONFIG_GENERIC_IOMAP is not set 192# CONFIG_GENERIC_IOMAP is not set
184# CONFIG_CPU_FREQ is not set 193# CONFIG_CPU_FREQ is not set
185CONFIG_CPM2=y 194CONFIG_CPM2=y
186CONFIG_PPC_CPM_NEW_BINDING=y
187# CONFIG_FSL_ULI1575 is not set 195# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 196CONFIG_CPM=y
189 197
@@ -223,6 +231,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
@@ -230,6 +239,7 @@ CONFIG_VIRT_TO_BUS=y
230CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
242CONFIG_EXTRA_TARGETS=""
233# CONFIG_PM is not set 243# CONFIG_PM is not set
234CONFIG_SECCOMP=y 244CONFIG_SECCOMP=y
235CONFIG_ISA_DMA_API=y 245CONFIG_ISA_DMA_API=y
@@ -241,6 +251,7 @@ CONFIG_ZONE_DMA=y
241CONFIG_PPC_INDIRECT_PCI=y 251CONFIG_PPC_INDIRECT_PCI=y
242CONFIG_FSL_SOC=y 252CONFIG_FSL_SOC=y
243CONFIG_FSL_PCI=y 253CONFIG_FSL_PCI=y
254CONFIG_PPC_PCI_CHOICE=y
244CONFIG_PCI=y 255CONFIG_PCI=y
245CONFIG_PCI_DOMAINS=y 256CONFIG_PCI_DOMAINS=y
246CONFIG_PCI_SYSCALL=y 257CONFIG_PCI_SYSCALL=y
@@ -267,10 +278,6 @@ CONFIG_KERNEL_START=0xc0000000
267CONFIG_PHYSICAL_START=0x00000000 278CONFIG_PHYSICAL_START=0x00000000
268CONFIG_PHYSICAL_ALIGN=0x10000000 279CONFIG_PHYSICAL_ALIGN=0x10000000
269CONFIG_TASK_SIZE=0xc0000000 280CONFIG_TASK_SIZE=0xc0000000
270
271#
272# Networking
273#
274CONFIG_NET=y 281CONFIG_NET=y
275 282
276# 283#
@@ -426,6 +433,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
426# CONFIG_CONNECTOR is not set 433# CONFIG_CONNECTOR is not set
427# CONFIG_MTD is not set 434# CONFIG_MTD is not set
428CONFIG_OF_DEVICE=y 435CONFIG_OF_DEVICE=y
436CONFIG_OF_GPIO=y
429CONFIG_OF_I2C=m 437CONFIG_OF_I2C=m
430CONFIG_PARPORT=m 438CONFIG_PARPORT=m
431CONFIG_PARPORT_PC=m 439CONFIG_PARPORT_PC=m
@@ -452,15 +460,16 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
452# CONFIG_BLK_DEV_XIP is not set 460# CONFIG_BLK_DEV_XIP is not set
453# CONFIG_CDROM_PKTCDVD is not set 461# CONFIG_CDROM_PKTCDVD is not set
454# CONFIG_ATA_OVER_ETH is not set 462# CONFIG_ATA_OVER_ETH is not set
463# CONFIG_BLK_DEV_HD is not set
455CONFIG_MISC_DEVICES=y 464CONFIG_MISC_DEVICES=y
456# CONFIG_PHANTOM is not set 465# CONFIG_PHANTOM is not set
457# CONFIG_EEPROM_93CX6 is not set 466# CONFIG_EEPROM_93CX6 is not set
458# CONFIG_SGI_IOC4 is not set 467# CONFIG_SGI_IOC4 is not set
459# CONFIG_TIFM_CORE is not set 468# CONFIG_TIFM_CORE is not set
460# CONFIG_ENCLOSURE_SERVICES is not set 469# CONFIG_ENCLOSURE_SERVICES is not set
470# CONFIG_HP_ILO is not set
461CONFIG_HAVE_IDE=y 471CONFIG_HAVE_IDE=y
462CONFIG_IDE=y 472CONFIG_IDE=y
463CONFIG_IDE_MAX_HWIFS=4
464CONFIG_BLK_DEV_IDE=y 473CONFIG_BLK_DEV_IDE=y
465 474
466# 475#
@@ -480,7 +489,6 @@ CONFIG_IDE_PROC_FS=y
480# 489#
481# IDE chipset support/bugfixes 490# IDE chipset support/bugfixes
482# 491#
483CONFIG_IDE_GENERIC=y
484# CONFIG_BLK_DEV_PLATFORM is not set 492# CONFIG_BLK_DEV_PLATFORM is not set
485 493
486# 494#
@@ -493,10 +501,8 @@ CONFIG_IDE_GENERIC=y
493# CONFIG_BLK_DEV_AMD74XX is not set 501# CONFIG_BLK_DEV_AMD74XX is not set
494# CONFIG_BLK_DEV_CMD64X is not set 502# CONFIG_BLK_DEV_CMD64X is not set
495# CONFIG_BLK_DEV_TRIFLEX is not set 503# CONFIG_BLK_DEV_TRIFLEX is not set
496# CONFIG_BLK_DEV_CY82C693 is not set
497# CONFIG_BLK_DEV_CS5520 is not set 504# CONFIG_BLK_DEV_CS5520 is not set
498# CONFIG_BLK_DEV_CS5530 is not set 505# CONFIG_BLK_DEV_CS5530 is not set
499# CONFIG_BLK_DEV_HPT34X is not set
500# CONFIG_BLK_DEV_HPT366 is not set 506# CONFIG_BLK_DEV_HPT366 is not set
501# CONFIG_BLK_DEV_JMICRON is not set 507# CONFIG_BLK_DEV_JMICRON is not set
502# CONFIG_BLK_DEV_SC1200 is not set 508# CONFIG_BLK_DEV_SC1200 is not set
@@ -514,8 +520,6 @@ CONFIG_IDE_GENERIC=y
514# CONFIG_BLK_DEV_VIA82CXXX is not set 520# CONFIG_BLK_DEV_VIA82CXXX is not set
515# CONFIG_BLK_DEV_TC86C001 is not set 521# CONFIG_BLK_DEV_TC86C001 is not set
516# CONFIG_BLK_DEV_IDEDMA is not set 522# CONFIG_BLK_DEV_IDEDMA is not set
517# CONFIG_BLK_DEV_HD_ONLY is not set
518# CONFIG_BLK_DEV_HD is not set
519 523
520# 524#
521# SCSI device support 525# SCSI device support
@@ -594,6 +598,7 @@ CONFIG_SCSI_LOWLEVEL=y
594# CONFIG_SCSI_NSP32 is not set 598# CONFIG_SCSI_NSP32 is not set
595# CONFIG_SCSI_DEBUG is not set 599# CONFIG_SCSI_DEBUG is not set
596# CONFIG_SCSI_SRP is not set 600# CONFIG_SCSI_SRP is not set
601# CONFIG_SCSI_DH is not set
597# CONFIG_ATA is not set 602# CONFIG_ATA is not set
598# CONFIG_MD is not set 603# CONFIG_MD is not set
599# CONFIG_FUSION is not set 604# CONFIG_FUSION is not set
@@ -601,12 +606,15 @@ CONFIG_SCSI_LOWLEVEL=y
601# 606#
602# IEEE 1394 (FireWire) support 607# IEEE 1394 (FireWire) support
603# 608#
609
610#
611# Enable only one of the two stacks, unless you know what you are doing
612#
604# CONFIG_FIREWIRE is not set 613# CONFIG_FIREWIRE is not set
605# CONFIG_IEEE1394 is not set 614# CONFIG_IEEE1394 is not set
606# CONFIG_I2O is not set 615# CONFIG_I2O is not set
607# CONFIG_MACINTOSH_DRIVERS is not set 616# CONFIG_MACINTOSH_DRIVERS is not set
608CONFIG_NETDEVICES=y 617CONFIG_NETDEVICES=y
609# CONFIG_NETDEVICES_MULTIQUEUE is not set
610# CONFIG_DUMMY is not set 618# CONFIG_DUMMY is not set
611# CONFIG_BONDING is not set 619# CONFIG_BONDING is not set
612# CONFIG_MACVLAN is not set 620# CONFIG_MACVLAN is not set
@@ -652,7 +660,6 @@ CONFIG_NETDEV_1000=y
652# CONFIG_DL2K is not set 660# CONFIG_DL2K is not set
653# CONFIG_E1000 is not set 661# CONFIG_E1000 is not set
654# CONFIG_E1000E is not set 662# CONFIG_E1000E is not set
655# CONFIG_E1000E_ENABLED is not set
656# CONFIG_IP1000 is not set 663# CONFIG_IP1000 is not set
657# CONFIG_IGB is not set 664# CONFIG_IGB is not set
658# CONFIG_NS83820 is not set 665# CONFIG_NS83820 is not set
@@ -666,9 +673,9 @@ CONFIG_NETDEV_1000=y
666# CONFIG_TIGON3 is not set 673# CONFIG_TIGON3 is not set
667# CONFIG_BNX2 is not set 674# CONFIG_BNX2 is not set
668CONFIG_GIANFAR=y 675CONFIG_GIANFAR=y
669CONFIG_GFAR_NAPI=y
670# CONFIG_QLA3XXX is not set 676# CONFIG_QLA3XXX is not set
671# CONFIG_ATL1 is not set 677# CONFIG_ATL1 is not set
678# CONFIG_ATL1E is not set
672CONFIG_NETDEV_10000=y 679CONFIG_NETDEV_10000=y
673# CONFIG_CHELSIO_T1 is not set 680# CONFIG_CHELSIO_T1 is not set
674# CONFIG_CHELSIO_T3 is not set 681# CONFIG_CHELSIO_T3 is not set
@@ -731,6 +738,7 @@ CONFIG_KEYBOARD_ATKBD=y
731# CONFIG_KEYBOARD_XTKBD is not set 738# CONFIG_KEYBOARD_XTKBD is not set
732# CONFIG_KEYBOARD_NEWTON is not set 739# CONFIG_KEYBOARD_NEWTON is not set
733# CONFIG_KEYBOARD_STOWAWAY is not set 740# CONFIG_KEYBOARD_STOWAWAY is not set
741# CONFIG_KEYBOARD_GPIO is not set
734CONFIG_INPUT_MOUSE=y 742CONFIG_INPUT_MOUSE=y
735CONFIG_MOUSE_PS2=y 743CONFIG_MOUSE_PS2=y
736CONFIG_MOUSE_PS2_ALPS=y 744CONFIG_MOUSE_PS2_ALPS=y
@@ -741,7 +749,9 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
741# CONFIG_MOUSE_PS2_TOUCHKIT is not set 749# CONFIG_MOUSE_PS2_TOUCHKIT is not set
742# CONFIG_MOUSE_SERIAL is not set 750# CONFIG_MOUSE_SERIAL is not set
743# CONFIG_MOUSE_APPLETOUCH is not set 751# CONFIG_MOUSE_APPLETOUCH is not set
752# CONFIG_MOUSE_BCM5974 is not set
744# CONFIG_MOUSE_VSXXXAA is not set 753# CONFIG_MOUSE_VSXXXAA is not set
754# CONFIG_MOUSE_GPIO is not set
745# CONFIG_INPUT_JOYSTICK is not set 755# CONFIG_INPUT_JOYSTICK is not set
746# CONFIG_INPUT_TABLET is not set 756# CONFIG_INPUT_TABLET is not set
747# CONFIG_INPUT_TOUCHSCREEN is not set 757# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -757,6 +767,7 @@ CONFIG_SERIO_SERPORT=y
757# CONFIG_SERIO_PCIPS2 is not set 767# CONFIG_SERIO_PCIPS2 is not set
758CONFIG_SERIO_LIBPS2=y 768CONFIG_SERIO_LIBPS2=y
759# CONFIG_SERIO_RAW is not set 769# CONFIG_SERIO_RAW is not set
770# CONFIG_SERIO_XILINX_XPS_PS2 is not set
760# CONFIG_GAMEPORT is not set 771# CONFIG_GAMEPORT is not set
761 772
762# 773#
@@ -805,44 +816,68 @@ CONFIG_DEVPORT=y
805CONFIG_I2C=m 816CONFIG_I2C=m
806CONFIG_I2C_BOARDINFO=y 817CONFIG_I2C_BOARDINFO=y
807CONFIG_I2C_CHARDEV=m 818CONFIG_I2C_CHARDEV=m
819CONFIG_I2C_HELPER_AUTO=y
808 820
809# 821#
810# I2C Hardware Bus support 822# I2C Hardware Bus support
811# 823#
824
825#
826# PC SMBus host controller drivers
827#
812# CONFIG_I2C_ALI1535 is not set 828# CONFIG_I2C_ALI1535 is not set
813# CONFIG_I2C_ALI1563 is not set 829# CONFIG_I2C_ALI1563 is not set
814# CONFIG_I2C_ALI15X3 is not set 830# CONFIG_I2C_ALI15X3 is not set
815# CONFIG_I2C_AMD756 is not set 831# CONFIG_I2C_AMD756 is not set
816# CONFIG_I2C_AMD8111 is not set 832# CONFIG_I2C_AMD8111 is not set
817# CONFIG_I2C_I801 is not set 833# CONFIG_I2C_I801 is not set
818# CONFIG_I2C_I810 is not set 834# CONFIG_I2C_ISCH is not set
819# CONFIG_I2C_PIIX4 is not set 835# CONFIG_I2C_PIIX4 is not set
820# CONFIG_I2C_MPC is not set
821# CONFIG_I2C_NFORCE2 is not set 836# CONFIG_I2C_NFORCE2 is not set
822# CONFIG_I2C_OCORES is not set
823# CONFIG_I2C_PARPORT is not set
824# CONFIG_I2C_PARPORT_LIGHT is not set
825# CONFIG_I2C_PROSAVAGE is not set
826# CONFIG_I2C_SAVAGE4 is not set
827# CONFIG_I2C_SIMTEC is not set
828# CONFIG_I2C_SIS5595 is not set 837# CONFIG_I2C_SIS5595 is not set
829# CONFIG_I2C_SIS630 is not set 838# CONFIG_I2C_SIS630 is not set
830# CONFIG_I2C_SIS96X is not set 839# CONFIG_I2C_SIS96X is not set
831# CONFIG_I2C_TAOS_EVM is not set
832# CONFIG_I2C_STUB is not set
833# CONFIG_I2C_VIA is not set 840# CONFIG_I2C_VIA is not set
834# CONFIG_I2C_VIAPRO is not set 841# CONFIG_I2C_VIAPRO is not set
842
843#
844# I2C system bus drivers (mostly embedded / system-on-chip)
845#
846# CONFIG_I2C_CPM is not set
847# CONFIG_I2C_GPIO is not set
848# CONFIG_I2C_MPC is not set
849# CONFIG_I2C_OCORES is not set
850# CONFIG_I2C_SIMTEC is not set
851
852#
853# External I2C/SMBus adapter drivers
854#
855# CONFIG_I2C_PARPORT is not set
856# CONFIG_I2C_PARPORT_LIGHT is not set
857# CONFIG_I2C_TAOS_EVM is not set
858
859#
860# Graphics adapter I2C/DDC channel drivers
861#
835# CONFIG_I2C_VOODOO3 is not set 862# CONFIG_I2C_VOODOO3 is not set
863
864#
865# Other I2C/SMBus bus drivers
866#
836# CONFIG_I2C_PCA_PLATFORM is not set 867# CONFIG_I2C_PCA_PLATFORM is not set
868# CONFIG_I2C_STUB is not set
837 869
838# 870#
839# Miscellaneous I2C Chip support 871# Miscellaneous I2C Chip support
840# 872#
841# CONFIG_DS1682 is not set 873# CONFIG_DS1682 is not set
874# CONFIG_AT24 is not set
842# CONFIG_SENSORS_EEPROM is not set 875# CONFIG_SENSORS_EEPROM is not set
843# CONFIG_SENSORS_PCF8574 is not set 876# CONFIG_SENSORS_PCF8574 is not set
844# CONFIG_PCF8575 is not set 877# CONFIG_PCF8575 is not set
878# CONFIG_SENSORS_PCA9539 is not set
845# CONFIG_SENSORS_PCF8591 is not set 879# CONFIG_SENSORS_PCF8591 is not set
880# CONFIG_TPS65010 is not set
846# CONFIG_SENSORS_MAX6875 is not set 881# CONFIG_SENSORS_MAX6875 is not set
847# CONFIG_SENSORS_TSL2550 is not set 882# CONFIG_SENSORS_TSL2550 is not set
848# CONFIG_I2C_DEBUG_CORE is not set 883# CONFIG_I2C_DEBUG_CORE is not set
@@ -850,10 +885,32 @@ CONFIG_I2C_CHARDEV=m
850# CONFIG_I2C_DEBUG_BUS is not set 885# CONFIG_I2C_DEBUG_BUS is not set
851# CONFIG_I2C_DEBUG_CHIP is not set 886# CONFIG_I2C_DEBUG_CHIP is not set
852# CONFIG_SPI is not set 887# CONFIG_SPI is not set
888CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
889CONFIG_ARCH_REQUIRE_GPIOLIB=y
890CONFIG_GPIOLIB=y
891# CONFIG_DEBUG_GPIO is not set
892# CONFIG_GPIO_SYSFS is not set
893
894#
895# I2C GPIO expanders:
896#
897# CONFIG_GPIO_MAX732X is not set
898# CONFIG_GPIO_PCA953X is not set
899# CONFIG_GPIO_PCF857X is not set
900
901#
902# PCI GPIO expanders:
903#
904# CONFIG_GPIO_BT8XX is not set
905
906#
907# SPI GPIO expanders:
908#
853# CONFIG_W1 is not set 909# CONFIG_W1 is not set
854# CONFIG_POWER_SUPPLY is not set 910# CONFIG_POWER_SUPPLY is not set
855CONFIG_HWMON=y 911CONFIG_HWMON=y
856# CONFIG_HWMON_VID is not set 912# CONFIG_HWMON_VID is not set
913# CONFIG_SENSORS_AD7414 is not set
857# CONFIG_SENSORS_AD7418 is not set 914# CONFIG_SENSORS_AD7418 is not set
858# CONFIG_SENSORS_ADM1021 is not set 915# CONFIG_SENSORS_ADM1021 is not set
859# CONFIG_SENSORS_ADM1025 is not set 916# CONFIG_SENSORS_ADM1025 is not set
@@ -907,6 +964,7 @@ CONFIG_HWMON=y
907# CONFIG_SENSORS_W83627EHF is not set 964# CONFIG_SENSORS_W83627EHF is not set
908# CONFIG_HWMON_DEBUG_CHIP is not set 965# CONFIG_HWMON_DEBUG_CHIP is not set
909# CONFIG_THERMAL is not set 966# CONFIG_THERMAL is not set
967# CONFIG_THERMAL_HWMON is not set
910# CONFIG_WATCHDOG is not set 968# CONFIG_WATCHDOG is not set
911 969
912# 970#
@@ -918,8 +976,10 @@ CONFIG_SSB_POSSIBLE=y
918# 976#
919# Multifunction device drivers 977# Multifunction device drivers
920# 978#
979# CONFIG_MFD_CORE is not set
921# CONFIG_MFD_SM501 is not set 980# CONFIG_MFD_SM501 is not set
922# CONFIG_HTC_PASIC3 is not set 981# CONFIG_HTC_PASIC3 is not set
982# CONFIG_MFD_TMIO is not set
923 983
924# 984#
925# Multimedia devices 985# Multimedia devices
@@ -958,20 +1018,8 @@ CONFIG_DRM=m
958# Display device support 1018# Display device support
959# 1019#
960# CONFIG_DISPLAY_SUPPORT is not set 1020# CONFIG_DISPLAY_SUPPORT is not set
961
962#
963# Sound
964#
965CONFIG_SOUND=m 1021CONFIG_SOUND=m
966
967#
968# Advanced Linux Sound Architecture
969#
970# CONFIG_SND is not set 1022# CONFIG_SND is not set
971
972#
973# Open Sound System
974#
975# CONFIG_SOUND_PRIME is not set 1023# CONFIG_SOUND_PRIME is not set
976CONFIG_HID_SUPPORT=y 1024CONFIG_HID_SUPPORT=y
977CONFIG_HID=y 1025CONFIG_HID=y
@@ -986,6 +1034,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
986# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1034# CONFIG_USB_OTG_BLACKLIST_HUB is not set
987 1035
988# 1036#
1037# Enable Host or Gadget support to see Inventra options
1038#
1039
1040#
989# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1041# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
990# 1042#
991# CONFIG_USB_GADGET is not set 1043# CONFIG_USB_GADGET is not set
@@ -1070,6 +1122,7 @@ CONFIG_TMPFS=y
1070CONFIG_CRAMFS=m 1122CONFIG_CRAMFS=m
1071# CONFIG_VXFS_FS is not set 1123# CONFIG_VXFS_FS is not set
1072# CONFIG_MINIX_FS is not set 1124# CONFIG_MINIX_FS is not set
1125# CONFIG_OMFS_FS is not set
1073# CONFIG_HPFS_FS is not set 1126# CONFIG_HPFS_FS is not set
1074# CONFIG_QNX4FS_FS is not set 1127# CONFIG_QNX4FS_FS is not set
1075# CONFIG_ROMFS_FS is not set 1128# CONFIG_ROMFS_FS is not set
@@ -1080,13 +1133,12 @@ CONFIG_NFS_FS=y
1080CONFIG_NFS_V3=y 1133CONFIG_NFS_V3=y
1081# CONFIG_NFS_V3_ACL is not set 1134# CONFIG_NFS_V3_ACL is not set
1082# CONFIG_NFS_V4 is not set 1135# CONFIG_NFS_V4 is not set
1083# CONFIG_NFSD is not set
1084CONFIG_ROOT_NFS=y 1136CONFIG_ROOT_NFS=y
1137# CONFIG_NFSD is not set
1085CONFIG_LOCKD=y 1138CONFIG_LOCKD=y
1086CONFIG_LOCKD_V4=y 1139CONFIG_LOCKD_V4=y
1087CONFIG_NFS_COMMON=y 1140CONFIG_NFS_COMMON=y
1088CONFIG_SUNRPC=y 1141CONFIG_SUNRPC=y
1089# CONFIG_SUNRPC_BIND34 is not set
1090# CONFIG_RPCSEC_GSS_KRB5 is not set 1142# CONFIG_RPCSEC_GSS_KRB5 is not set
1091# CONFIG_RPCSEC_GSS_SPKM3 is not set 1143# CONFIG_RPCSEC_GSS_SPKM3 is not set
1092CONFIG_SMB_FS=m 1144CONFIG_SMB_FS=m
@@ -1150,6 +1202,7 @@ CONFIG_BITREVERSE=y
1150# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1202# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1151CONFIG_CRC_CCITT=y 1203CONFIG_CRC_CCITT=y
1152# CONFIG_CRC16 is not set 1204# CONFIG_CRC16 is not set
1205CONFIG_CRC_T10DIF=m
1153CONFIG_CRC_ITU_T=m 1206CONFIG_CRC_ITU_T=m
1154CONFIG_CRC32=y 1207CONFIG_CRC32=y
1155# CONFIG_CRC7 is not set 1208# CONFIG_CRC7 is not set
@@ -1175,6 +1228,8 @@ CONFIG_FRAME_WARN=1024
1175CONFIG_DEBUG_KERNEL=y 1228CONFIG_DEBUG_KERNEL=y
1176# CONFIG_DEBUG_SHIRQ is not set 1229# CONFIG_DEBUG_SHIRQ is not set
1177CONFIG_DETECT_SOFTLOCKUP=y 1230CONFIG_DETECT_SOFTLOCKUP=y
1231# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1232CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1178CONFIG_SCHED_DEBUG=y 1233CONFIG_SCHED_DEBUG=y
1179# CONFIG_SCHEDSTATS is not set 1234# CONFIG_SCHEDSTATS is not set
1180# CONFIG_TIMER_STATS is not set 1235# CONFIG_TIMER_STATS is not set
@@ -1193,18 +1248,29 @@ CONFIG_SCHED_DEBUG=y
1193# CONFIG_DEBUG_INFO is not set 1248# CONFIG_DEBUG_INFO is not set
1194# CONFIG_DEBUG_VM is not set 1249# CONFIG_DEBUG_VM is not set
1195# CONFIG_DEBUG_WRITECOUNT is not set 1250# CONFIG_DEBUG_WRITECOUNT is not set
1251# CONFIG_DEBUG_MEMORY_INIT is not set
1196# CONFIG_DEBUG_LIST is not set 1252# CONFIG_DEBUG_LIST is not set
1197# CONFIG_DEBUG_SG is not set 1253# CONFIG_DEBUG_SG is not set
1198# CONFIG_BOOT_PRINTK_DELAY is not set 1254# CONFIG_BOOT_PRINTK_DELAY is not set
1199# CONFIG_RCU_TORTURE_TEST is not set 1255# CONFIG_RCU_TORTURE_TEST is not set
1200# CONFIG_BACKTRACE_SELF_TEST is not set 1256# CONFIG_BACKTRACE_SELF_TEST is not set
1201# CONFIG_FAULT_INJECTION is not set 1257# CONFIG_FAULT_INJECTION is not set
1258# CONFIG_LATENCYTOP is not set
1259CONFIG_SYSCTL_SYSCALL_CHECK=y
1260CONFIG_HAVE_FTRACE=y
1261CONFIG_HAVE_DYNAMIC_FTRACE=y
1262# CONFIG_FTRACE is not set
1263# CONFIG_SCHED_TRACER is not set
1264# CONFIG_CONTEXT_SWITCH_TRACER is not set
1202# CONFIG_SAMPLES is not set 1265# CONFIG_SAMPLES is not set
1266CONFIG_HAVE_ARCH_KGDB=y
1267# CONFIG_KGDB is not set
1203# CONFIG_DEBUG_STACKOVERFLOW is not set 1268# CONFIG_DEBUG_STACKOVERFLOW is not set
1204# CONFIG_DEBUG_STACK_USAGE is not set 1269# CONFIG_DEBUG_STACK_USAGE is not set
1205# CONFIG_DEBUG_PAGEALLOC is not set 1270# CONFIG_DEBUG_PAGEALLOC is not set
1206# CONFIG_DEBUGGER is not set 1271# CONFIG_CODE_PATCHING_SELFTEST is not set
1207# CONFIG_KGDB_CONSOLE is not set 1272# CONFIG_FTR_FIXUP_SELFTEST is not set
1273# CONFIG_XMON is not set
1208# CONFIG_IRQSTACKS is not set 1274# CONFIG_IRQSTACKS is not set
1209CONFIG_BDI_SWITCH=y 1275CONFIG_BDI_SWITCH=y
1210# CONFIG_PPC_EARLY_DEBUG is not set 1276# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1258,6 +1324,10 @@ CONFIG_CRYPTO=y
1258# CONFIG_CRYPTO_MD4 is not set 1324# CONFIG_CRYPTO_MD4 is not set
1259# CONFIG_CRYPTO_MD5 is not set 1325# CONFIG_CRYPTO_MD5 is not set
1260# CONFIG_CRYPTO_MICHAEL_MIC is not set 1326# CONFIG_CRYPTO_MICHAEL_MIC is not set
1327# CONFIG_CRYPTO_RMD128 is not set
1328# CONFIG_CRYPTO_RMD160 is not set
1329# CONFIG_CRYPTO_RMD256 is not set
1330# CONFIG_CRYPTO_RMD320 is not set
1261# CONFIG_CRYPTO_SHA1 is not set 1331# CONFIG_CRYPTO_SHA1 is not set
1262# CONFIG_CRYPTO_SHA256 is not set 1332# CONFIG_CRYPTO_SHA256 is not set
1263# CONFIG_CRYPTO_SHA512 is not set 1333# CONFIG_CRYPTO_SHA512 is not set
@@ -1290,6 +1360,7 @@ CONFIG_CRYPTO=y
1290# CONFIG_CRYPTO_LZO is not set 1360# CONFIG_CRYPTO_LZO is not set
1291CONFIG_CRYPTO_HW=y 1361CONFIG_CRYPTO_HW=y
1292# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1362# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1293# CONFIG_PPC_CLOCK is not set 1363# CONFIG_CRYPTO_DEV_TALITOS is not set
1364CONFIG_PPC_CLOCK=y
1294CONFIG_PPC_LIB_RHEAP=y 1365CONFIG_PPC_LIB_RHEAP=y
1295# CONFIG_VIRTUALIZATION is not set 1366# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8540_defconfig b/arch/powerpc/configs/85xx/tqm8540_defconfig
index e0b5559e84aa..1b2d5d577915 100644
--- a/arch/powerpc/configs/85xx/tqm8540_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8540_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:39 2008 4# Thu Aug 21 00:52:37 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -89,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 94# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 95# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 96CONFIG_PRINTK=y
@@ -112,10 +113,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 113# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 114# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 115CONFIG_HAVE_OPROFILE=y
116CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
117CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 118CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 119CONFIG_HAVE_KRETPROBES=y
120CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 121# CONFIG_HAVE_DMA_ATTRS is not set
122# CONFIG_USE_GENERIC_SMP_HELPERS is not set
123# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 124CONFIG_PROC_PAGE_MONITOR=y
125# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 126CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 127CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 128# CONFIG_TINY_SHMEM is not set
@@ -126,6 +133,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 133# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 134# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 135# CONFIG_BLK_DEV_BSG is not set
136# CONFIG_BLK_DEV_INTEGRITY is not set
129 137
130# 138#
131# IO Schedulers 139# IO Schedulers
@@ -144,8 +152,6 @@ CONFIG_CLASSIC_RCU=y
144# 152#
145# Platform support 153# Platform support
146# 154#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 155# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 156# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 157# CONFIG_PQ2ADS is not set
@@ -154,11 +160,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 160# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 161# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 162# CONFIG_MPC85xx_MDS is not set
163# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 164# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 165# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 166# CONFIG_STX_GP3 is not set
160CONFIG_TQM8540=y 167CONFIG_TQM8540=y
161# CONFIG_TQM8541 is not set 168# CONFIG_TQM8541 is not set
169# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 170# CONFIG_TQM8555 is not set
163# CONFIG_TQM8560 is not set 171# CONFIG_TQM8560 is not set
164# CONFIG_SBC8548 is not set 172# CONFIG_SBC8548 is not set
@@ -214,6 +222,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
214# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
215CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
216CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y
217# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
218CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
219CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
@@ -221,6 +230,7 @@ CONFIG_VIRT_TO_BUS=y
221CONFIG_FORCE_MAX_ZONEORDER=11 230CONFIG_FORCE_MAX_ZONEORDER=11
222# CONFIG_PROC_DEVICETREE is not set 231# CONFIG_PROC_DEVICETREE is not set
223# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
233CONFIG_EXTRA_TARGETS=""
224# CONFIG_PM is not set 234# CONFIG_PM is not set
225CONFIG_SECCOMP=y 235CONFIG_SECCOMP=y
226CONFIG_ISA_DMA_API=y 236CONFIG_ISA_DMA_API=y
@@ -232,6 +242,7 @@ CONFIG_ZONE_DMA=y
232CONFIG_PPC_INDIRECT_PCI=y 242CONFIG_PPC_INDIRECT_PCI=y
233CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
234CONFIG_FSL_PCI=y 244CONFIG_FSL_PCI=y
245CONFIG_PPC_PCI_CHOICE=y
235CONFIG_PCI=y 246CONFIG_PCI=y
236CONFIG_PCI_DOMAINS=y 247CONFIG_PCI_DOMAINS=y
237CONFIG_PCI_SYSCALL=y 248CONFIG_PCI_SYSCALL=y
@@ -255,10 +266,6 @@ CONFIG_KERNEL_START=0xc0000000
255CONFIG_PHYSICAL_START=0x00000000 266CONFIG_PHYSICAL_START=0x00000000
256CONFIG_PHYSICAL_ALIGN=0x10000000 267CONFIG_PHYSICAL_ALIGN=0x10000000
257CONFIG_TASK_SIZE=0xc0000000 268CONFIG_TASK_SIZE=0xc0000000
258
259#
260# Networking
261#
262CONFIG_NET=y 269CONFIG_NET=y
263 270
264# 271#
@@ -449,20 +456,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
449# CONFIG_BLK_DEV_XIP is not set 456# CONFIG_BLK_DEV_XIP is not set
450# CONFIG_CDROM_PKTCDVD is not set 457# CONFIG_CDROM_PKTCDVD is not set
451# CONFIG_ATA_OVER_ETH is not set 458# CONFIG_ATA_OVER_ETH is not set
459# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 460CONFIG_MISC_DEVICES=y
453# CONFIG_PHANTOM is not set 461# CONFIG_PHANTOM is not set
454# CONFIG_EEPROM_93CX6 is not set 462# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_SGI_IOC4 is not set 463# CONFIG_SGI_IOC4 is not set
456# CONFIG_TIFM_CORE is not set 464# CONFIG_TIFM_CORE is not set
457# CONFIG_ENCLOSURE_SERVICES is not set 465# CONFIG_ENCLOSURE_SERVICES is not set
466# CONFIG_HP_ILO is not set
458CONFIG_HAVE_IDE=y 467CONFIG_HAVE_IDE=y
459CONFIG_IDE=y 468CONFIG_IDE=y
460CONFIG_IDE_MAX_HWIFS=4
461CONFIG_BLK_DEV_IDE=y 469CONFIG_BLK_DEV_IDE=y
462 470
463# 471#
464# Please see Documentation/ide/ide.txt for help/info on IDE drives 472# Please see Documentation/ide/ide.txt for help/info on IDE drives
465# 473#
474CONFIG_IDE_TIMINGS=y
466# CONFIG_BLK_DEV_IDE_SATA is not set 475# CONFIG_BLK_DEV_IDE_SATA is not set
467CONFIG_BLK_DEV_IDEDISK=y 476CONFIG_BLK_DEV_IDEDISK=y
468# CONFIG_IDEDISK_MULTI_MODE is not set 477# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -475,7 +484,6 @@ CONFIG_IDE_PROC_FS=y
475# 484#
476# IDE chipset support/bugfixes 485# IDE chipset support/bugfixes
477# 486#
478CONFIG_IDE_GENERIC=y
479# CONFIG_BLK_DEV_PLATFORM is not set 487# CONFIG_BLK_DEV_PLATFORM is not set
480CONFIG_BLK_DEV_IDEDMA_SFF=y 488CONFIG_BLK_DEV_IDEDMA_SFF=y
481 489
@@ -493,10 +501,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
493# CONFIG_BLK_DEV_AMD74XX is not set 501# CONFIG_BLK_DEV_AMD74XX is not set
494# CONFIG_BLK_DEV_CMD64X is not set 502# CONFIG_BLK_DEV_CMD64X is not set
495# CONFIG_BLK_DEV_TRIFLEX is not set 503# CONFIG_BLK_DEV_TRIFLEX is not set
496# CONFIG_BLK_DEV_CY82C693 is not set
497# CONFIG_BLK_DEV_CS5520 is not set 504# CONFIG_BLK_DEV_CS5520 is not set
498# CONFIG_BLK_DEV_CS5530 is not set 505# CONFIG_BLK_DEV_CS5530 is not set
499# CONFIG_BLK_DEV_HPT34X is not set
500# CONFIG_BLK_DEV_HPT366 is not set 506# CONFIG_BLK_DEV_HPT366 is not set
501# CONFIG_BLK_DEV_JMICRON is not set 507# CONFIG_BLK_DEV_JMICRON is not set
502# CONFIG_BLK_DEV_SC1200 is not set 508# CONFIG_BLK_DEV_SC1200 is not set
@@ -514,8 +520,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
514CONFIG_BLK_DEV_VIA82CXXX=y 520CONFIG_BLK_DEV_VIA82CXXX=y
515# CONFIG_BLK_DEV_TC86C001 is not set 521# CONFIG_BLK_DEV_TC86C001 is not set
516CONFIG_BLK_DEV_IDEDMA=y 522CONFIG_BLK_DEV_IDEDMA=y
517# CONFIG_BLK_DEV_HD_ONLY is not set
518# CONFIG_BLK_DEV_HD is not set
519 523
520# 524#
521# SCSI device support 525# SCSI device support
@@ -531,12 +535,15 @@ CONFIG_BLK_DEV_IDEDMA=y
531# 535#
532# IEEE 1394 (FireWire) support 536# IEEE 1394 (FireWire) support
533# 537#
538
539#
540# Enable only one of the two stacks, unless you know what you are doing
541#
534# CONFIG_FIREWIRE is not set 542# CONFIG_FIREWIRE is not set
535# CONFIG_IEEE1394 is not set 543# CONFIG_IEEE1394 is not set
536# CONFIG_I2O is not set 544# CONFIG_I2O is not set
537# CONFIG_MACINTOSH_DRIVERS is not set 545# CONFIG_MACINTOSH_DRIVERS is not set
538CONFIG_NETDEVICES=y 546CONFIG_NETDEVICES=y
539# CONFIG_NETDEVICES_MULTIQUEUE is not set
540# CONFIG_DUMMY is not set 547# CONFIG_DUMMY is not set
541# CONFIG_BONDING is not set 548# CONFIG_BONDING is not set
542# CONFIG_MACVLAN is not set 549# CONFIG_MACVLAN is not set
@@ -598,7 +605,6 @@ CONFIG_NETDEV_1000=y
598# CONFIG_DL2K is not set 605# CONFIG_DL2K is not set
599# CONFIG_E1000 is not set 606# CONFIG_E1000 is not set
600# CONFIG_E1000E is not set 607# CONFIG_E1000E is not set
601# CONFIG_E1000E_ENABLED is not set
602# CONFIG_IP1000 is not set 608# CONFIG_IP1000 is not set
603# CONFIG_IGB is not set 609# CONFIG_IGB is not set
604# CONFIG_NS83820 is not set 610# CONFIG_NS83820 is not set
@@ -612,9 +618,9 @@ CONFIG_NETDEV_1000=y
612# CONFIG_TIGON3 is not set 618# CONFIG_TIGON3 is not set
613# CONFIG_BNX2 is not set 619# CONFIG_BNX2 is not set
614CONFIG_GIANFAR=y 620CONFIG_GIANFAR=y
615CONFIG_GFAR_NAPI=y
616# CONFIG_QLA3XXX is not set 621# CONFIG_QLA3XXX is not set
617# CONFIG_ATL1 is not set 622# CONFIG_ATL1 is not set
623# CONFIG_ATL1E is not set
618CONFIG_NETDEV_10000=y 624CONFIG_NETDEV_10000=y
619# CONFIG_CHELSIO_T1 is not set 625# CONFIG_CHELSIO_T1 is not set
620# CONFIG_CHELSIO_T3 is not set 626# CONFIG_CHELSIO_T3 is not set
@@ -721,41 +727,62 @@ CONFIG_DEVPORT=y
721CONFIG_I2C=y 727CONFIG_I2C=y
722CONFIG_I2C_BOARDINFO=y 728CONFIG_I2C_BOARDINFO=y
723CONFIG_I2C_CHARDEV=y 729CONFIG_I2C_CHARDEV=y
730CONFIG_I2C_HELPER_AUTO=y
724 731
725# 732#
726# I2C Hardware Bus support 733# I2C Hardware Bus support
727# 734#
735
736#
737# PC SMBus host controller drivers
738#
728# CONFIG_I2C_ALI1535 is not set 739# CONFIG_I2C_ALI1535 is not set
729# CONFIG_I2C_ALI1563 is not set 740# CONFIG_I2C_ALI1563 is not set
730# CONFIG_I2C_ALI15X3 is not set 741# CONFIG_I2C_ALI15X3 is not set
731# CONFIG_I2C_AMD756 is not set 742# CONFIG_I2C_AMD756 is not set
732# CONFIG_I2C_AMD8111 is not set 743# CONFIG_I2C_AMD8111 is not set
733# CONFIG_I2C_I801 is not set 744# CONFIG_I2C_I801 is not set
734# CONFIG_I2C_I810 is not set 745# CONFIG_I2C_ISCH is not set
735# CONFIG_I2C_PIIX4 is not set 746# CONFIG_I2C_PIIX4 is not set
736CONFIG_I2C_MPC=y
737# CONFIG_I2C_NFORCE2 is not set 747# CONFIG_I2C_NFORCE2 is not set
738# CONFIG_I2C_OCORES is not set
739# CONFIG_I2C_PARPORT_LIGHT is not set
740# CONFIG_I2C_PROSAVAGE is not set
741# CONFIG_I2C_SAVAGE4 is not set
742# CONFIG_I2C_SIMTEC is not set
743# CONFIG_I2C_SIS5595 is not set 748# CONFIG_I2C_SIS5595 is not set
744# CONFIG_I2C_SIS630 is not set 749# CONFIG_I2C_SIS630 is not set
745# CONFIG_I2C_SIS96X is not set 750# CONFIG_I2C_SIS96X is not set
746# CONFIG_I2C_TAOS_EVM is not set
747# CONFIG_I2C_VIA is not set 751# CONFIG_I2C_VIA is not set
748# CONFIG_I2C_VIAPRO is not set 752# CONFIG_I2C_VIAPRO is not set
753
754#
755# I2C system bus drivers (mostly embedded / system-on-chip)
756#
757CONFIG_I2C_MPC=y
758# CONFIG_I2C_OCORES is not set
759# CONFIG_I2C_SIMTEC is not set
760
761#
762# External I2C/SMBus adapter drivers
763#
764# CONFIG_I2C_PARPORT_LIGHT is not set
765# CONFIG_I2C_TAOS_EVM is not set
766
767#
768# Graphics adapter I2C/DDC channel drivers
769#
749# CONFIG_I2C_VOODOO3 is not set 770# CONFIG_I2C_VOODOO3 is not set
771
772#
773# Other I2C/SMBus bus drivers
774#
750# CONFIG_I2C_PCA_PLATFORM is not set 775# CONFIG_I2C_PCA_PLATFORM is not set
751 776
752# 777#
753# Miscellaneous I2C Chip support 778# Miscellaneous I2C Chip support
754# 779#
755# CONFIG_DS1682 is not set 780# CONFIG_DS1682 is not set
781# CONFIG_AT24 is not set
756# CONFIG_SENSORS_EEPROM is not set 782# CONFIG_SENSORS_EEPROM is not set
757# CONFIG_SENSORS_PCF8574 is not set 783# CONFIG_SENSORS_PCF8574 is not set
758# CONFIG_PCF8575 is not set 784# CONFIG_PCF8575 is not set
785# CONFIG_SENSORS_PCA9539 is not set
759# CONFIG_SENSORS_PCF8591 is not set 786# CONFIG_SENSORS_PCF8591 is not set
760# CONFIG_SENSORS_MAX6875 is not set 787# CONFIG_SENSORS_MAX6875 is not set
761# CONFIG_SENSORS_TSL2550 is not set 788# CONFIG_SENSORS_TSL2550 is not set
@@ -764,10 +791,13 @@ CONFIG_I2C_MPC=y
764# CONFIG_I2C_DEBUG_BUS is not set 791# CONFIG_I2C_DEBUG_BUS is not set
765# CONFIG_I2C_DEBUG_CHIP is not set 792# CONFIG_I2C_DEBUG_CHIP is not set
766# CONFIG_SPI is not set 793# CONFIG_SPI is not set
794CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
795# CONFIG_GPIOLIB is not set
767# CONFIG_W1 is not set 796# CONFIG_W1 is not set
768# CONFIG_POWER_SUPPLY is not set 797# CONFIG_POWER_SUPPLY is not set
769CONFIG_HWMON=y 798CONFIG_HWMON=y
770# CONFIG_HWMON_VID is not set 799# CONFIG_HWMON_VID is not set
800# CONFIG_SENSORS_AD7414 is not set
771# CONFIG_SENSORS_AD7418 is not set 801# CONFIG_SENSORS_AD7418 is not set
772# CONFIG_SENSORS_ADM1021 is not set 802# CONFIG_SENSORS_ADM1021 is not set
773# CONFIG_SENSORS_ADM1025 is not set 803# CONFIG_SENSORS_ADM1025 is not set
@@ -821,6 +851,7 @@ CONFIG_SENSORS_LM75=y
821# CONFIG_SENSORS_W83627EHF is not set 851# CONFIG_SENSORS_W83627EHF is not set
822CONFIG_HWMON_DEBUG_CHIP=y 852CONFIG_HWMON_DEBUG_CHIP=y
823# CONFIG_THERMAL is not set 853# CONFIG_THERMAL is not set
854# CONFIG_THERMAL_HWMON is not set
824# CONFIG_WATCHDOG is not set 855# CONFIG_WATCHDOG is not set
825 856
826# 857#
@@ -832,8 +863,10 @@ CONFIG_SSB_POSSIBLE=y
832# 863#
833# Multifunction device drivers 864# Multifunction device drivers
834# 865#
866# CONFIG_MFD_CORE is not set
835# CONFIG_MFD_SM501 is not set 867# CONFIG_MFD_SM501 is not set
836# CONFIG_HTC_PASIC3 is not set 868# CONFIG_HTC_PASIC3 is not set
869# CONFIG_MFD_TMIO is not set
837 870
838# 871#
839# Multimedia devices 872# Multimedia devices
@@ -865,10 +898,6 @@ CONFIG_DAB=y
865# Display device support 898# Display device support
866# 899#
867# CONFIG_DISPLAY_SUPPORT is not set 900# CONFIG_DISPLAY_SUPPORT is not set
868
869#
870# Sound
871#
872# CONFIG_SOUND is not set 901# CONFIG_SOUND is not set
873CONFIG_HID_SUPPORT=y 902CONFIG_HID_SUPPORT=y
874CONFIG_HID=y 903CONFIG_HID=y
@@ -883,6 +912,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
883# CONFIG_USB_OTG_BLACKLIST_HUB is not set 912# CONFIG_USB_OTG_BLACKLIST_HUB is not set
884 913
885# 914#
915# Enable Host or Gadget support to see Inventra options
916#
917
918#
886# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 919# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
887# 920#
888# CONFIG_USB_GADGET is not set 921# CONFIG_USB_GADGET is not set
@@ -971,6 +1004,7 @@ CONFIG_JFFS2_RTIME=y
971CONFIG_CRAMFS=y 1004CONFIG_CRAMFS=y
972# CONFIG_VXFS_FS is not set 1005# CONFIG_VXFS_FS is not set
973# CONFIG_MINIX_FS is not set 1006# CONFIG_MINIX_FS is not set
1007# CONFIG_OMFS_FS is not set
974# CONFIG_HPFS_FS is not set 1008# CONFIG_HPFS_FS is not set
975# CONFIG_QNX4FS_FS is not set 1009# CONFIG_QNX4FS_FS is not set
976# CONFIG_ROMFS_FS is not set 1010# CONFIG_ROMFS_FS is not set
@@ -980,12 +1014,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
980CONFIG_NFS_FS=y 1014CONFIG_NFS_FS=y
981# CONFIG_NFS_V3 is not set 1015# CONFIG_NFS_V3 is not set
982# CONFIG_NFS_V4 is not set 1016# CONFIG_NFS_V4 is not set
983# CONFIG_NFSD is not set
984CONFIG_ROOT_NFS=y 1017CONFIG_ROOT_NFS=y
1018# CONFIG_NFSD is not set
985CONFIG_LOCKD=y 1019CONFIG_LOCKD=y
986CONFIG_NFS_COMMON=y 1020CONFIG_NFS_COMMON=y
987CONFIG_SUNRPC=y 1021CONFIG_SUNRPC=y
988# CONFIG_SUNRPC_BIND34 is not set
989# CONFIG_RPCSEC_GSS_KRB5 is not set 1022# CONFIG_RPCSEC_GSS_KRB5 is not set
990# CONFIG_RPCSEC_GSS_SPKM3 is not set 1023# CONFIG_RPCSEC_GSS_SPKM3 is not set
991# CONFIG_SMB_FS is not set 1024# CONFIG_SMB_FS is not set
@@ -1021,6 +1054,7 @@ CONFIG_BITREVERSE=y
1021# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1054# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1022# CONFIG_CRC_CCITT is not set 1055# CONFIG_CRC_CCITT is not set
1023# CONFIG_CRC16 is not set 1056# CONFIG_CRC16 is not set
1057# CONFIG_CRC_T10DIF is not set
1024# CONFIG_CRC_ITU_T is not set 1058# CONFIG_CRC_ITU_T is not set
1025CONFIG_CRC32=y 1059CONFIG_CRC32=y
1026# CONFIG_CRC7 is not set 1060# CONFIG_CRC7 is not set
@@ -1048,7 +1082,16 @@ CONFIG_FRAME_WARN=1024
1048# CONFIG_SLUB_DEBUG_ON is not set 1082# CONFIG_SLUB_DEBUG_ON is not set
1049# CONFIG_SLUB_STATS is not set 1083# CONFIG_SLUB_STATS is not set
1050# CONFIG_DEBUG_BUGVERBOSE is not set 1084# CONFIG_DEBUG_BUGVERBOSE is not set
1085# CONFIG_DEBUG_MEMORY_INIT is not set
1086# CONFIG_LATENCYTOP is not set
1087CONFIG_SYSCTL_SYSCALL_CHECK=y
1088CONFIG_HAVE_FTRACE=y
1089CONFIG_HAVE_DYNAMIC_FTRACE=y
1090# CONFIG_FTRACE is not set
1091# CONFIG_SCHED_TRACER is not set
1092# CONFIG_CONTEXT_SWITCH_TRACER is not set
1051# CONFIG_SAMPLES is not set 1093# CONFIG_SAMPLES is not set
1094CONFIG_HAVE_ARCH_KGDB=y
1052# CONFIG_IRQSTACKS is not set 1095# CONFIG_IRQSTACKS is not set
1053# CONFIG_PPC_EARLY_DEBUG is not set 1096# CONFIG_PPC_EARLY_DEBUG is not set
1054 1097
@@ -1100,6 +1143,10 @@ CONFIG_CRYPTO=y
1100# CONFIG_CRYPTO_MD4 is not set 1143# CONFIG_CRYPTO_MD4 is not set
1101# CONFIG_CRYPTO_MD5 is not set 1144# CONFIG_CRYPTO_MD5 is not set
1102# CONFIG_CRYPTO_MICHAEL_MIC is not set 1145# CONFIG_CRYPTO_MICHAEL_MIC is not set
1146# CONFIG_CRYPTO_RMD128 is not set
1147# CONFIG_CRYPTO_RMD160 is not set
1148# CONFIG_CRYPTO_RMD256 is not set
1149# CONFIG_CRYPTO_RMD320 is not set
1103# CONFIG_CRYPTO_SHA1 is not set 1150# CONFIG_CRYPTO_SHA1 is not set
1104# CONFIG_CRYPTO_SHA256 is not set 1151# CONFIG_CRYPTO_SHA256 is not set
1105# CONFIG_CRYPTO_SHA512 is not set 1152# CONFIG_CRYPTO_SHA512 is not set
@@ -1132,5 +1179,6 @@ CONFIG_CRYPTO=y
1132# CONFIG_CRYPTO_LZO is not set 1179# CONFIG_CRYPTO_LZO is not set
1133CONFIG_CRYPTO_HW=y 1180CONFIG_CRYPTO_HW=y
1134# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1181# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1182# CONFIG_CRYPTO_DEV_TALITOS is not set
1135# CONFIG_PPC_CLOCK is not set 1183# CONFIG_PPC_CLOCK is not set
1136# CONFIG_VIRTUALIZATION is not set 1184# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8541_defconfig b/arch/powerpc/configs/85xx/tqm8541_defconfig
index 6f9067b49e07..da841a09755c 100644
--- a/arch/powerpc/configs/85xx/tqm8541_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8541_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:40 2008 4# Thu Aug 21 00:52:39 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 95# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 96# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,10 +114,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y
118CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -126,6 +134,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 135# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
129 138
130# 139#
131# IO Schedulers 140# IO Schedulers
@@ -144,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
144# 153#
145# Platform support 154# Platform support
146# 155#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -154,11 +161,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
161CONFIG_TQM8541=y 169CONFIG_TQM8541=y
170# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 171# CONFIG_TQM8555 is not set
163# CONFIG_TQM8560 is not set 172# CONFIG_TQM8560 is not set
164# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -176,7 +185,6 @@ CONFIG_MPIC=y
176# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
178CONFIG_CPM2=y 187CONFIG_CPM2=y
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 189CONFIG_CPM=y
182 190
@@ -216,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -223,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
224# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
225# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 236# CONFIG_PM is not set
227CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -234,6 +244,7 @@ CONFIG_ZONE_DMA=y
234CONFIG_PPC_INDIRECT_PCI=y 244CONFIG_PPC_INDIRECT_PCI=y
235CONFIG_FSL_SOC=y 245CONFIG_FSL_SOC=y
236CONFIG_FSL_PCI=y 246CONFIG_FSL_PCI=y
247CONFIG_PPC_PCI_CHOICE=y
237CONFIG_PCI=y 248CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 249CONFIG_PCI_DOMAINS=y
239CONFIG_PCI_SYSCALL=y 250CONFIG_PCI_SYSCALL=y
@@ -257,10 +268,6 @@ CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 268CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000 269CONFIG_PHYSICAL_ALIGN=0x10000000
259CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
260
261#
262# Networking
263#
264CONFIG_NET=y 271CONFIG_NET=y
265 272
266# 273#
@@ -432,6 +439,7 @@ CONFIG_MTD_CFI_UTIL=y
432# 439#
433# CONFIG_MTD_UBI is not set 440# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 441CONFIG_OF_DEVICE=y
442CONFIG_OF_GPIO=y
435CONFIG_OF_I2C=y 443CONFIG_OF_I2C=y
436# CONFIG_PARPORT is not set 444# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y 445CONFIG_BLK_DEV=y
@@ -451,20 +459,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
451# CONFIG_BLK_DEV_XIP is not set 459# CONFIG_BLK_DEV_XIP is not set
452# CONFIG_CDROM_PKTCDVD is not set 460# CONFIG_CDROM_PKTCDVD is not set
453# CONFIG_ATA_OVER_ETH is not set 461# CONFIG_ATA_OVER_ETH is not set
462# CONFIG_BLK_DEV_HD is not set
454CONFIG_MISC_DEVICES=y 463CONFIG_MISC_DEVICES=y
455# CONFIG_PHANTOM is not set 464# CONFIG_PHANTOM is not set
456# CONFIG_EEPROM_93CX6 is not set 465# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_SGI_IOC4 is not set 466# CONFIG_SGI_IOC4 is not set
458# CONFIG_TIFM_CORE is not set 467# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
469# CONFIG_HP_ILO is not set
460CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
461CONFIG_IDE=y 471CONFIG_IDE=y
462CONFIG_IDE_MAX_HWIFS=4
463CONFIG_BLK_DEV_IDE=y 472CONFIG_BLK_DEV_IDE=y
464 473
465# 474#
466# Please see Documentation/ide/ide.txt for help/info on IDE drives 475# Please see Documentation/ide/ide.txt for help/info on IDE drives
467# 476#
477CONFIG_IDE_TIMINGS=y
468# CONFIG_BLK_DEV_IDE_SATA is not set 478# CONFIG_BLK_DEV_IDE_SATA is not set
469CONFIG_BLK_DEV_IDEDISK=y 479CONFIG_BLK_DEV_IDEDISK=y
470# CONFIG_IDEDISK_MULTI_MODE is not set 480# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,7 +487,6 @@ CONFIG_IDE_PROC_FS=y
477# 487#
478# IDE chipset support/bugfixes 488# IDE chipset support/bugfixes
479# 489#
480CONFIG_IDE_GENERIC=y
481# CONFIG_BLK_DEV_PLATFORM is not set 490# CONFIG_BLK_DEV_PLATFORM is not set
482CONFIG_BLK_DEV_IDEDMA_SFF=y 491CONFIG_BLK_DEV_IDEDMA_SFF=y
483 492
@@ -495,10 +504,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
495# CONFIG_BLK_DEV_AMD74XX is not set 504# CONFIG_BLK_DEV_AMD74XX is not set
496# CONFIG_BLK_DEV_CMD64X is not set 505# CONFIG_BLK_DEV_CMD64X is not set
497# CONFIG_BLK_DEV_TRIFLEX is not set 506# CONFIG_BLK_DEV_TRIFLEX is not set
498# CONFIG_BLK_DEV_CY82C693 is not set
499# CONFIG_BLK_DEV_CS5520 is not set 507# CONFIG_BLK_DEV_CS5520 is not set
500# CONFIG_BLK_DEV_CS5530 is not set 508# CONFIG_BLK_DEV_CS5530 is not set
501# CONFIG_BLK_DEV_HPT34X is not set
502# CONFIG_BLK_DEV_HPT366 is not set 509# CONFIG_BLK_DEV_HPT366 is not set
503# CONFIG_BLK_DEV_JMICRON is not set 510# CONFIG_BLK_DEV_JMICRON is not set
504# CONFIG_BLK_DEV_SC1200 is not set 511# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +523,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
516CONFIG_BLK_DEV_VIA82CXXX=y 523CONFIG_BLK_DEV_VIA82CXXX=y
517# CONFIG_BLK_DEV_TC86C001 is not set 524# CONFIG_BLK_DEV_TC86C001 is not set
518CONFIG_BLK_DEV_IDEDMA=y 525CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 526
522# 527#
523# SCSI device support 528# SCSI device support
@@ -533,12 +538,15 @@ CONFIG_BLK_DEV_IDEDMA=y
533# 538#
534# IEEE 1394 (FireWire) support 539# IEEE 1394 (FireWire) support
535# 540#
541
542#
543# Enable only one of the two stacks, unless you know what you are doing
544#
536# CONFIG_FIREWIRE is not set 545# CONFIG_FIREWIRE is not set
537# CONFIG_IEEE1394 is not set 546# CONFIG_IEEE1394 is not set
538# CONFIG_I2O is not set 547# CONFIG_I2O is not set
539# CONFIG_MACINTOSH_DRIVERS is not set 548# CONFIG_MACINTOSH_DRIVERS is not set
540CONFIG_NETDEVICES=y 549CONFIG_NETDEVICES=y
541# CONFIG_NETDEVICES_MULTIQUEUE is not set
542# CONFIG_DUMMY is not set 550# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 551# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 552# CONFIG_MACVLAN is not set
@@ -601,7 +609,6 @@ CONFIG_NETDEV_1000=y
601# CONFIG_DL2K is not set 609# CONFIG_DL2K is not set
602# CONFIG_E1000 is not set 610# CONFIG_E1000 is not set
603# CONFIG_E1000E is not set 611# CONFIG_E1000E is not set
604# CONFIG_E1000E_ENABLED is not set
605# CONFIG_IP1000 is not set 612# CONFIG_IP1000 is not set
606# CONFIG_IGB is not set 613# CONFIG_IGB is not set
607# CONFIG_NS83820 is not set 614# CONFIG_NS83820 is not set
@@ -615,9 +622,9 @@ CONFIG_NETDEV_1000=y
615# CONFIG_TIGON3 is not set 622# CONFIG_TIGON3 is not set
616# CONFIG_BNX2 is not set 623# CONFIG_BNX2 is not set
617CONFIG_GIANFAR=y 624CONFIG_GIANFAR=y
618CONFIG_GFAR_NAPI=y
619# CONFIG_QLA3XXX is not set 625# CONFIG_QLA3XXX is not set
620# CONFIG_ATL1 is not set 626# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set
621CONFIG_NETDEV_10000=y 628CONFIG_NETDEV_10000=y
622# CONFIG_CHELSIO_T1 is not set 629# CONFIG_CHELSIO_T1 is not set
623# CONFIG_CHELSIO_T3 is not set 630# CONFIG_CHELSIO_T3 is not set
@@ -732,42 +739,66 @@ CONFIG_DEVPORT=y
732CONFIG_I2C=y 739CONFIG_I2C=y
733CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
734CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
735 743
736# 744#
737# I2C Hardware Bus support 745# I2C Hardware Bus support
738# 746#
747
748#
749# PC SMBus host controller drivers
750#
739# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
740# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
741# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
742# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
743# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
744# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
745# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
746# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
747CONFIG_I2C_MPC=y
748# CONFIG_I2C_NFORCE2 is not set 759# CONFIG_I2C_NFORCE2 is not set
749# CONFIG_I2C_OCORES is not set
750# CONFIG_I2C_PARPORT_LIGHT is not set
751# CONFIG_I2C_PROSAVAGE is not set
752# CONFIG_I2C_SAVAGE4 is not set
753# CONFIG_I2C_SIMTEC is not set
754# CONFIG_I2C_SIS5595 is not set 760# CONFIG_I2C_SIS5595 is not set
755# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
756# CONFIG_I2C_SIS96X is not set 762# CONFIG_I2C_SIS96X is not set
757# CONFIG_I2C_TAOS_EVM is not set
758# CONFIG_I2C_VIA is not set 763# CONFIG_I2C_VIA is not set
759# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769# CONFIG_I2C_CPM is not set
770# CONFIG_I2C_GPIO is not set
771CONFIG_I2C_MPC=y
772# CONFIG_I2C_OCORES is not set
773# CONFIG_I2C_SIMTEC is not set
774
775#
776# External I2C/SMBus adapter drivers
777#
778# CONFIG_I2C_PARPORT_LIGHT is not set
779# CONFIG_I2C_TAOS_EVM is not set
780
781#
782# Graphics adapter I2C/DDC channel drivers
783#
760# CONFIG_I2C_VOODOO3 is not set 784# CONFIG_I2C_VOODOO3 is not set
785
786#
787# Other I2C/SMBus bus drivers
788#
761# CONFIG_I2C_PCA_PLATFORM is not set 789# CONFIG_I2C_PCA_PLATFORM is not set
762 790
763# 791#
764# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
765# 793#
766# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
768# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
770# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
801# CONFIG_TPS65010 is not set
771# CONFIG_SENSORS_MAX6875 is not set 802# CONFIG_SENSORS_MAX6875 is not set
772# CONFIG_SENSORS_TSL2550 is not set 803# CONFIG_SENSORS_TSL2550 is not set
773# CONFIG_I2C_DEBUG_CORE is not set 804# CONFIG_I2C_DEBUG_CORE is not set
@@ -775,10 +806,31 @@ CONFIG_I2C_MPC=y
775# CONFIG_I2C_DEBUG_BUS is not set 806# CONFIG_I2C_DEBUG_BUS is not set
776# CONFIG_I2C_DEBUG_CHIP is not set 807# CONFIG_I2C_DEBUG_CHIP is not set
777# CONFIG_SPI is not set 808# CONFIG_SPI is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
810CONFIG_ARCH_REQUIRE_GPIOLIB=y
811CONFIG_GPIOLIB=y
812# CONFIG_GPIO_SYSFS is not set
813
814#
815# I2C GPIO expanders:
816#
817# CONFIG_GPIO_MAX732X is not set
818# CONFIG_GPIO_PCA953X is not set
819# CONFIG_GPIO_PCF857X is not set
820
821#
822# PCI GPIO expanders:
823#
824# CONFIG_GPIO_BT8XX is not set
825
826#
827# SPI GPIO expanders:
828#
778# CONFIG_W1 is not set 829# CONFIG_W1 is not set
779# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
780CONFIG_HWMON=y 831CONFIG_HWMON=y
781# CONFIG_HWMON_VID is not set 832# CONFIG_HWMON_VID is not set
833# CONFIG_SENSORS_AD7414 is not set
782# CONFIG_SENSORS_AD7418 is not set 834# CONFIG_SENSORS_AD7418 is not set
783# CONFIG_SENSORS_ADM1021 is not set 835# CONFIG_SENSORS_ADM1021 is not set
784# CONFIG_SENSORS_ADM1025 is not set 836# CONFIG_SENSORS_ADM1025 is not set
@@ -832,6 +884,7 @@ CONFIG_SENSORS_LM75=y
832# CONFIG_SENSORS_W83627EHF is not set 884# CONFIG_SENSORS_W83627EHF is not set
833CONFIG_HWMON_DEBUG_CHIP=y 885CONFIG_HWMON_DEBUG_CHIP=y
834# CONFIG_THERMAL is not set 886# CONFIG_THERMAL is not set
887# CONFIG_THERMAL_HWMON is not set
835# CONFIG_WATCHDOG is not set 888# CONFIG_WATCHDOG is not set
836 889
837# 890#
@@ -843,8 +896,10 @@ CONFIG_SSB_POSSIBLE=y
843# 896#
844# Multifunction device drivers 897# Multifunction device drivers
845# 898#
899# CONFIG_MFD_CORE is not set
846# CONFIG_MFD_SM501 is not set 900# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 901# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set
848 903
849# 904#
850# Multimedia devices 905# Multimedia devices
@@ -876,10 +931,6 @@ CONFIG_DAB=y
876# Display device support 931# Display device support
877# 932#
878# CONFIG_DISPLAY_SUPPORT is not set 933# CONFIG_DISPLAY_SUPPORT is not set
879
880#
881# Sound
882#
883# CONFIG_SOUND is not set 934# CONFIG_SOUND is not set
884CONFIG_HID_SUPPORT=y 935CONFIG_HID_SUPPORT=y
885CONFIG_HID=y 936CONFIG_HID=y
@@ -894,6 +945,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set 945# CONFIG_USB_OTG_BLACKLIST_HUB is not set
895 946
896# 947#
948# Enable Host or Gadget support to see Inventra options
949#
950
951#
897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
898# 953#
899# CONFIG_USB_GADGET is not set 954# CONFIG_USB_GADGET is not set
@@ -982,6 +1037,7 @@ CONFIG_JFFS2_RTIME=y
982CONFIG_CRAMFS=y 1037CONFIG_CRAMFS=y
983# CONFIG_VXFS_FS is not set 1038# CONFIG_VXFS_FS is not set
984# CONFIG_MINIX_FS is not set 1039# CONFIG_MINIX_FS is not set
1040# CONFIG_OMFS_FS is not set
985# CONFIG_HPFS_FS is not set 1041# CONFIG_HPFS_FS is not set
986# CONFIG_QNX4FS_FS is not set 1042# CONFIG_QNX4FS_FS is not set
987# CONFIG_ROMFS_FS is not set 1043# CONFIG_ROMFS_FS is not set
@@ -991,12 +1047,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
991CONFIG_NFS_FS=y 1047CONFIG_NFS_FS=y
992# CONFIG_NFS_V3 is not set 1048# CONFIG_NFS_V3 is not set
993# CONFIG_NFS_V4 is not set 1049# CONFIG_NFS_V4 is not set
994# CONFIG_NFSD is not set
995CONFIG_ROOT_NFS=y 1050CONFIG_ROOT_NFS=y
1051# CONFIG_NFSD is not set
996CONFIG_LOCKD=y 1052CONFIG_LOCKD=y
997CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
998CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
999# CONFIG_SUNRPC_BIND34 is not set
1000# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1001# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1002# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1032,6 +1087,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1033# CONFIG_CRC_CCITT is not set 1088# CONFIG_CRC_CCITT is not set
1034# CONFIG_CRC16 is not set 1089# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set
1035# CONFIG_CRC_ITU_T is not set 1091# CONFIG_CRC_ITU_T is not set
1036CONFIG_CRC32=y 1092CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1093# CONFIG_CRC7 is not set
@@ -1059,8 +1115,16 @@ CONFIG_FRAME_WARN=1024
1059# CONFIG_SLUB_DEBUG_ON is not set 1115# CONFIG_SLUB_DEBUG_ON is not set
1060# CONFIG_SLUB_STATS is not set 1116# CONFIG_SLUB_STATS is not set
1061# CONFIG_DEBUG_BUGVERBOSE is not set 1117# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set
1119# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y
1123# CONFIG_FTRACE is not set
1124# CONFIG_SCHED_TRACER is not set
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set
1062# CONFIG_SAMPLES is not set 1126# CONFIG_SAMPLES is not set
1063# CONFIG_KGDB_CONSOLE is not set 1127CONFIG_HAVE_ARCH_KGDB=y
1064# CONFIG_IRQSTACKS is not set 1128# CONFIG_IRQSTACKS is not set
1065# CONFIG_PPC_EARLY_DEBUG is not set 1129# CONFIG_PPC_EARLY_DEBUG is not set
1066 1130
@@ -1112,6 +1176,10 @@ CONFIG_CRYPTO=y
1112# CONFIG_CRYPTO_MD4 is not set 1176# CONFIG_CRYPTO_MD4 is not set
1113# CONFIG_CRYPTO_MD5 is not set 1177# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set 1178# CONFIG_CRYPTO_MICHAEL_MIC is not set
1179# CONFIG_CRYPTO_RMD128 is not set
1180# CONFIG_CRYPTO_RMD160 is not set
1181# CONFIG_CRYPTO_RMD256 is not set
1182# CONFIG_CRYPTO_RMD320 is not set
1115# CONFIG_CRYPTO_SHA1 is not set 1183# CONFIG_CRYPTO_SHA1 is not set
1116# CONFIG_CRYPTO_SHA256 is not set 1184# CONFIG_CRYPTO_SHA256 is not set
1117# CONFIG_CRYPTO_SHA512 is not set 1185# CONFIG_CRYPTO_SHA512 is not set
@@ -1144,6 +1212,7 @@ CONFIG_CRYPTO=y
1144# CONFIG_CRYPTO_LZO is not set 1212# CONFIG_CRYPTO_LZO is not set
1145CONFIG_CRYPTO_HW=y 1213CONFIG_CRYPTO_HW=y
1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_PPC_CLOCK is not set 1215# CONFIG_CRYPTO_DEV_TALITOS is not set
1216CONFIG_PPC_CLOCK=y
1148CONFIG_PPC_LIB_RHEAP=y 1217CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8548_defconfig b/arch/powerpc/configs/85xx/tqm8548_defconfig
index b3b770be3cc9..ca1234d26855 100644
--- a/arch/powerpc/configs/85xx/tqm8548_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8548_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Thu Jun 26 14:40:02 2008 4# Thu Aug 21 00:52:40 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -90,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
91CONFIG_EMBEDDED=y 92CONFIG_EMBEDDED=y
92CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
93CONFIG_SYSCTL_SYSCALL_CHECK=y
94CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
96# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -116,10 +116,16 @@ CONFIG_SLUB=y
116# CONFIG_MARKERS is not set 116# CONFIG_MARKERS is not set
117CONFIG_HAVE_OPROFILE=y 117CONFIG_HAVE_OPROFILE=y
118# CONFIG_KPROBES is not set 118# CONFIG_KPROBES is not set
119CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
120CONFIG_HAVE_IOREMAP_PROT=y
119CONFIG_HAVE_KPROBES=y 121CONFIG_HAVE_KPROBES=y
120CONFIG_HAVE_KRETPROBES=y 122CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_ARCH_TRACEHOOK=y
121# CONFIG_HAVE_DMA_ATTRS is not set 124# CONFIG_HAVE_DMA_ATTRS is not set
125# CONFIG_USE_GENERIC_SMP_HELPERS is not set
126# CONFIG_HAVE_CLK is not set
122CONFIG_PROC_PAGE_MONITOR=y 127CONFIG_PROC_PAGE_MONITOR=y
128# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
123CONFIG_SLABINFO=y 129CONFIG_SLABINFO=y
124CONFIG_RT_MUTEXES=y 130CONFIG_RT_MUTEXES=y
125# CONFIG_TINY_SHMEM is not set 131# CONFIG_TINY_SHMEM is not set
@@ -130,12 +136,13 @@ CONFIG_MODULE_UNLOAD=y
130# CONFIG_MODULE_FORCE_UNLOAD is not set 136# CONFIG_MODULE_FORCE_UNLOAD is not set
131# CONFIG_MODVERSIONS is not set 137# CONFIG_MODVERSIONS is not set
132# CONFIG_MODULE_SRCVERSION_ALL is not set 138# CONFIG_MODULE_SRCVERSION_ALL is not set
133# CONFIG_KMOD is not set 139CONFIG_KMOD=y
134CONFIG_BLOCK=y 140CONFIG_BLOCK=y
135# CONFIG_LBD is not set 141# CONFIG_LBD is not set
136# CONFIG_BLK_DEV_IO_TRACE is not set 142# CONFIG_BLK_DEV_IO_TRACE is not set
137# CONFIG_LSF is not set 143# CONFIG_LSF is not set
138# CONFIG_BLK_DEV_BSG is not set 144# CONFIG_BLK_DEV_BSG is not set
145# CONFIG_BLK_DEV_INTEGRITY is not set
139 146
140# 147#
141# IO Schedulers 148# IO Schedulers
@@ -154,8 +161,6 @@ CONFIG_CLASSIC_RCU=y
154# 161#
155# Platform support 162# Platform support
156# 163#
157# CONFIG_PPC_MPC512x is not set
158# CONFIG_PPC_MPC5121 is not set
159# CONFIG_PPC_CELL is not set 164# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 165# CONFIG_PPC_CELL_NATIVE is not set
161# CONFIG_PQ2ADS is not set 166# CONFIG_PQ2ADS is not set
@@ -164,6 +169,7 @@ CONFIG_MPC85xx=y
164# CONFIG_MPC8560_ADS is not set 169# CONFIG_MPC8560_ADS is not set
165# CONFIG_MPC85xx_CDS is not set 170# CONFIG_MPC85xx_CDS is not set
166# CONFIG_MPC85xx_MDS is not set 171# CONFIG_MPC85xx_MDS is not set
172# CONFIG_MPC8536_DS is not set
167# CONFIG_MPC85xx_DS is not set 173# CONFIG_MPC85xx_DS is not set
168# CONFIG_KSI8560 is not set 174# CONFIG_KSI8560 is not set
169# CONFIG_STX_GP3 is not set 175# CONFIG_STX_GP3 is not set
@@ -187,7 +193,6 @@ CONFIG_MPIC=y
187# CONFIG_GENERIC_IOMAP is not set 193# CONFIG_GENERIC_IOMAP is not set
188# CONFIG_CPU_FREQ is not set 194# CONFIG_CPU_FREQ is not set
189# CONFIG_CPM2 is not set 195# CONFIG_CPM2 is not set
190CONFIG_PPC_CPM_NEW_BINDING=y
191# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
192 197
193# 198#
@@ -203,7 +208,7 @@ CONFIG_HZ_250=y
203# CONFIG_HZ_300 is not set 208# CONFIG_HZ_300 is not set
204# CONFIG_HZ_1000 is not set 209# CONFIG_HZ_1000 is not set
205CONFIG_HZ=250 210CONFIG_HZ=250
206# CONFIG_SCHED_HRTICK is not set 211CONFIG_SCHED_HRTICK=y
207CONFIG_PREEMPT_NONE=y 212CONFIG_PREEMPT_NONE=y
208# CONFIG_PREEMPT_VOLUNTARY is not set 213# CONFIG_PREEMPT_VOLUNTARY is not set
209# CONFIG_PREEMPT is not set 214# CONFIG_PREEMPT is not set
@@ -226,6 +231,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
226# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
227CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
228CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
234CONFIG_MIGRATION=y
229# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
230CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
231CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
@@ -233,6 +239,7 @@ CONFIG_VIRT_TO_BUS=y
233CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
234CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
235# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
242CONFIG_EXTRA_TARGETS=""
236# CONFIG_PM is not set 243# CONFIG_PM is not set
237# CONFIG_SECCOMP is not set 244# CONFIG_SECCOMP is not set
238CONFIG_ISA_DMA_API=y 245CONFIG_ISA_DMA_API=y
@@ -244,7 +251,7 @@ CONFIG_ZONE_DMA=y
244CONFIG_PPC_INDIRECT_PCI=y 251CONFIG_PPC_INDIRECT_PCI=y
245CONFIG_FSL_SOC=y 252CONFIG_FSL_SOC=y
246CONFIG_FSL_PCI=y 253CONFIG_FSL_PCI=y
247CONFIG_FSL_LBC=y 254CONFIG_PPC_PCI_CHOICE=y
248CONFIG_PCI=y 255CONFIG_PCI=y
249CONFIG_PCI_DOMAINS=y 256CONFIG_PCI_DOMAINS=y
250CONFIG_PCI_SYSCALL=y 257CONFIG_PCI_SYSCALL=y
@@ -273,10 +280,6 @@ CONFIG_KERNEL_START=0xc0000000
273CONFIG_PHYSICAL_START=0x00000000 280CONFIG_PHYSICAL_START=0x00000000
274CONFIG_PHYSICAL_ALIGN=0x10000000 281CONFIG_PHYSICAL_ALIGN=0x10000000
275CONFIG_TASK_SIZE=0xc0000000 282CONFIG_TASK_SIZE=0xc0000000
276
277#
278# Networking
279#
280CONFIG_NET=y 283CONFIG_NET=y
281 284
282# 285#
@@ -455,7 +458,6 @@ CONFIG_MTD_NAND_IDS=y
455# CONFIG_MTD_NAND_NANDSIM is not set 458# CONFIG_MTD_NAND_NANDSIM is not set
456# CONFIG_MTD_NAND_PLATFORM is not set 459# CONFIG_MTD_NAND_PLATFORM is not set
457# CONFIG_MTD_NAND_FSL_ELBC is not set 460# CONFIG_MTD_NAND_FSL_ELBC is not set
458CONFIG_MTD_NAND_FSL_UPM=y
459# CONFIG_MTD_ONENAND is not set 461# CONFIG_MTD_ONENAND is not set
460 462
461# 463#
@@ -490,20 +492,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
490# CONFIG_BLK_DEV_XIP is not set 492# CONFIG_BLK_DEV_XIP is not set
491# CONFIG_CDROM_PKTCDVD is not set 493# CONFIG_CDROM_PKTCDVD is not set
492# CONFIG_ATA_OVER_ETH is not set 494# CONFIG_ATA_OVER_ETH is not set
495# CONFIG_BLK_DEV_HD is not set
493CONFIG_MISC_DEVICES=y 496CONFIG_MISC_DEVICES=y
494# CONFIG_PHANTOM is not set 497# CONFIG_PHANTOM is not set
495# CONFIG_EEPROM_93CX6 is not set 498# CONFIG_EEPROM_93CX6 is not set
496# CONFIG_SGI_IOC4 is not set 499# CONFIG_SGI_IOC4 is not set
497# CONFIG_TIFM_CORE is not set 500# CONFIG_TIFM_CORE is not set
498# CONFIG_ENCLOSURE_SERVICES is not set 501# CONFIG_ENCLOSURE_SERVICES is not set
502# CONFIG_HP_ILO is not set
499CONFIG_HAVE_IDE=y 503CONFIG_HAVE_IDE=y
500CONFIG_IDE=y 504CONFIG_IDE=y
501CONFIG_IDE_MAX_HWIFS=4
502CONFIG_BLK_DEV_IDE=y 505CONFIG_BLK_DEV_IDE=y
503 506
504# 507#
505# Please see Documentation/ide/ide.txt for help/info on IDE drives 508# Please see Documentation/ide/ide.txt for help/info on IDE drives
506# 509#
510CONFIG_IDE_TIMINGS=y
507# CONFIG_BLK_DEV_IDE_SATA is not set 511# CONFIG_BLK_DEV_IDE_SATA is not set
508# CONFIG_BLK_DEV_IDEDISK is not set 512# CONFIG_BLK_DEV_IDEDISK is not set
509# CONFIG_IDEDISK_MULTI_MODE is not set 513# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -516,7 +520,6 @@ CONFIG_IDE_PROC_FS=y
516# 520#
517# IDE chipset support/bugfixes 521# IDE chipset support/bugfixes
518# 522#
519CONFIG_IDE_GENERIC=y
520# CONFIG_BLK_DEV_PLATFORM is not set 523# CONFIG_BLK_DEV_PLATFORM is not set
521CONFIG_BLK_DEV_IDEDMA_SFF=y 524CONFIG_BLK_DEV_IDEDMA_SFF=y
522 525
@@ -534,10 +537,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
534# CONFIG_BLK_DEV_AMD74XX is not set 537# CONFIG_BLK_DEV_AMD74XX is not set
535# CONFIG_BLK_DEV_CMD64X is not set 538# CONFIG_BLK_DEV_CMD64X is not set
536# CONFIG_BLK_DEV_TRIFLEX is not set 539# CONFIG_BLK_DEV_TRIFLEX is not set
537# CONFIG_BLK_DEV_CY82C693 is not set
538# CONFIG_BLK_DEV_CS5520 is not set 540# CONFIG_BLK_DEV_CS5520 is not set
539# CONFIG_BLK_DEV_CS5530 is not set 541# CONFIG_BLK_DEV_CS5530 is not set
540# CONFIG_BLK_DEV_HPT34X is not set
541# CONFIG_BLK_DEV_HPT366 is not set 542# CONFIG_BLK_DEV_HPT366 is not set
542# CONFIG_BLK_DEV_JMICRON is not set 543# CONFIG_BLK_DEV_JMICRON is not set
543# CONFIG_BLK_DEV_SC1200 is not set 544# CONFIG_BLK_DEV_SC1200 is not set
@@ -555,8 +556,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
555CONFIG_BLK_DEV_VIA82CXXX=y 556CONFIG_BLK_DEV_VIA82CXXX=y
556# CONFIG_BLK_DEV_TC86C001 is not set 557# CONFIG_BLK_DEV_TC86C001 is not set
557CONFIG_BLK_DEV_IDEDMA=y 558CONFIG_BLK_DEV_IDEDMA=y
558# CONFIG_BLK_DEV_HD_ONLY is not set
559# CONFIG_BLK_DEV_HD is not set
560 559
561# 560#
562# SCSI device support 561# SCSI device support
@@ -572,12 +571,15 @@ CONFIG_BLK_DEV_IDEDMA=y
572# 571#
573# IEEE 1394 (FireWire) support 572# IEEE 1394 (FireWire) support
574# 573#
574
575#
576# Enable only one of the two stacks, unless you know what you are doing
577#
575# CONFIG_FIREWIRE is not set 578# CONFIG_FIREWIRE is not set
576# CONFIG_IEEE1394 is not set 579# CONFIG_IEEE1394 is not set
577# CONFIG_I2O is not set 580# CONFIG_I2O is not set
578# CONFIG_MACINTOSH_DRIVERS is not set 581# CONFIG_MACINTOSH_DRIVERS is not set
579CONFIG_NETDEVICES=y 582CONFIG_NETDEVICES=y
580# CONFIG_NETDEVICES_MULTIQUEUE is not set
581# CONFIG_DUMMY is not set 583# CONFIG_DUMMY is not set
582# CONFIG_BONDING is not set 584# CONFIG_BONDING is not set
583# CONFIG_MACVLAN is not set 585# CONFIG_MACVLAN is not set
@@ -620,10 +622,8 @@ CONFIG_NETDEV_1000=y
620# CONFIG_ACENIC is not set 622# CONFIG_ACENIC is not set
621# CONFIG_DL2K is not set 623# CONFIG_DL2K is not set
622CONFIG_E1000=y 624CONFIG_E1000=y
623CONFIG_E1000_NAPI=y
624# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 625# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
625# CONFIG_E1000E is not set 626# CONFIG_E1000E is not set
626# CONFIG_E1000E_ENABLED is not set
627# CONFIG_IP1000 is not set 627# CONFIG_IP1000 is not set
628# CONFIG_IGB is not set 628# CONFIG_IGB is not set
629# CONFIG_NS83820 is not set 629# CONFIG_NS83820 is not set
@@ -637,9 +637,9 @@ CONFIG_E1000_NAPI=y
637# CONFIG_TIGON3 is not set 637# CONFIG_TIGON3 is not set
638# CONFIG_BNX2 is not set 638# CONFIG_BNX2 is not set
639CONFIG_GIANFAR=y 639CONFIG_GIANFAR=y
640CONFIG_GFAR_NAPI=y
641# CONFIG_QLA3XXX is not set 640# CONFIG_QLA3XXX is not set
642# CONFIG_ATL1 is not set 641# CONFIG_ATL1 is not set
642# CONFIG_ATL1E is not set
643CONFIG_NETDEV_10000=y 643CONFIG_NETDEV_10000=y
644# CONFIG_CHELSIO_T1 is not set 644# CONFIG_CHELSIO_T1 is not set
645# CONFIG_CHELSIO_T3 is not set 645# CONFIG_CHELSIO_T3 is not set
@@ -744,42 +744,63 @@ CONFIG_DEVPORT=y
744CONFIG_I2C=y 744CONFIG_I2C=y
745CONFIG_I2C_BOARDINFO=y 745CONFIG_I2C_BOARDINFO=y
746CONFIG_I2C_CHARDEV=y 746CONFIG_I2C_CHARDEV=y
747CONFIG_I2C_HELPER_AUTO=y
747 748
748# 749#
749# I2C Hardware Bus support 750# I2C Hardware Bus support
750# 751#
752
753#
754# PC SMBus host controller drivers
755#
751# CONFIG_I2C_ALI1535 is not set 756# CONFIG_I2C_ALI1535 is not set
752# CONFIG_I2C_ALI1563 is not set 757# CONFIG_I2C_ALI1563 is not set
753# CONFIG_I2C_ALI15X3 is not set 758# CONFIG_I2C_ALI15X3 is not set
754# CONFIG_I2C_AMD756 is not set 759# CONFIG_I2C_AMD756 is not set
755# CONFIG_I2C_AMD8111 is not set 760# CONFIG_I2C_AMD8111 is not set
756# CONFIG_I2C_I801 is not set 761# CONFIG_I2C_I801 is not set
757# CONFIG_I2C_I810 is not set 762# CONFIG_I2C_ISCH is not set
758# CONFIG_I2C_PIIX4 is not set 763# CONFIG_I2C_PIIX4 is not set
759CONFIG_I2C_MPC=y
760# CONFIG_I2C_NFORCE2 is not set 764# CONFIG_I2C_NFORCE2 is not set
761# CONFIG_I2C_OCORES is not set
762# CONFIG_I2C_PARPORT_LIGHT is not set
763# CONFIG_I2C_PROSAVAGE is not set
764# CONFIG_I2C_SAVAGE4 is not set
765# CONFIG_I2C_SIMTEC is not set
766# CONFIG_I2C_SIS5595 is not set 765# CONFIG_I2C_SIS5595 is not set
767# CONFIG_I2C_SIS630 is not set 766# CONFIG_I2C_SIS630 is not set
768# CONFIG_I2C_SIS96X is not set 767# CONFIG_I2C_SIS96X is not set
769# CONFIG_I2C_TAOS_EVM is not set
770# CONFIG_I2C_STUB is not set
771# CONFIG_I2C_VIA is not set 768# CONFIG_I2C_VIA is not set
772# CONFIG_I2C_VIAPRO is not set 769# CONFIG_I2C_VIAPRO is not set
770
771#
772# I2C system bus drivers (mostly embedded / system-on-chip)
773#
774CONFIG_I2C_MPC=y
775# CONFIG_I2C_OCORES is not set
776# CONFIG_I2C_SIMTEC is not set
777
778#
779# External I2C/SMBus adapter drivers
780#
781# CONFIG_I2C_PARPORT_LIGHT is not set
782# CONFIG_I2C_TAOS_EVM is not set
783
784#
785# Graphics adapter I2C/DDC channel drivers
786#
773# CONFIG_I2C_VOODOO3 is not set 787# CONFIG_I2C_VOODOO3 is not set
788
789#
790# Other I2C/SMBus bus drivers
791#
774# CONFIG_I2C_PCA_PLATFORM is not set 792# CONFIG_I2C_PCA_PLATFORM is not set
793# CONFIG_I2C_STUB is not set
775 794
776# 795#
777# Miscellaneous I2C Chip support 796# Miscellaneous I2C Chip support
778# 797#
779# CONFIG_DS1682 is not set 798# CONFIG_DS1682 is not set
799# CONFIG_AT24 is not set
780# CONFIG_SENSORS_EEPROM is not set 800# CONFIG_SENSORS_EEPROM is not set
781# CONFIG_SENSORS_PCF8574 is not set 801# CONFIG_SENSORS_PCF8574 is not set
782# CONFIG_PCF8575 is not set 802# CONFIG_PCF8575 is not set
803# CONFIG_SENSORS_PCA9539 is not set
783# CONFIG_SENSORS_PCF8591 is not set 804# CONFIG_SENSORS_PCF8591 is not set
784# CONFIG_SENSORS_MAX6875 is not set 805# CONFIG_SENSORS_MAX6875 is not set
785# CONFIG_SENSORS_TSL2550 is not set 806# CONFIG_SENSORS_TSL2550 is not set
@@ -788,10 +809,13 @@ CONFIG_I2C_MPC=y
788# CONFIG_I2C_DEBUG_BUS is not set 809# CONFIG_I2C_DEBUG_BUS is not set
789# CONFIG_I2C_DEBUG_CHIP is not set 810# CONFIG_I2C_DEBUG_CHIP is not set
790# CONFIG_SPI is not set 811# CONFIG_SPI is not set
812CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
813# CONFIG_GPIOLIB is not set
791# CONFIG_W1 is not set 814# CONFIG_W1 is not set
792# CONFIG_POWER_SUPPLY is not set 815# CONFIG_POWER_SUPPLY is not set
793CONFIG_HWMON=y 816CONFIG_HWMON=y
794# CONFIG_HWMON_VID is not set 817# CONFIG_HWMON_VID is not set
818# CONFIG_SENSORS_AD7414 is not set
795# CONFIG_SENSORS_AD7418 is not set 819# CONFIG_SENSORS_AD7418 is not set
796# CONFIG_SENSORS_ADM1021 is not set 820# CONFIG_SENSORS_ADM1021 is not set
797# CONFIG_SENSORS_ADM1025 is not set 821# CONFIG_SENSORS_ADM1025 is not set
@@ -845,6 +869,7 @@ CONFIG_SENSORS_LM75=y
845# CONFIG_SENSORS_W83627EHF is not set 869# CONFIG_SENSORS_W83627EHF is not set
846# CONFIG_HWMON_DEBUG_CHIP is not set 870# CONFIG_HWMON_DEBUG_CHIP is not set
847# CONFIG_THERMAL is not set 871# CONFIG_THERMAL is not set
872# CONFIG_THERMAL_HWMON is not set
848# CONFIG_WATCHDOG is not set 873# CONFIG_WATCHDOG is not set
849 874
850# 875#
@@ -856,8 +881,10 @@ CONFIG_SSB_POSSIBLE=y
856# 881#
857# Multifunction device drivers 882# Multifunction device drivers
858# 883#
884# CONFIG_MFD_CORE is not set
859# CONFIG_MFD_SM501 is not set 885# CONFIG_MFD_SM501 is not set
860# CONFIG_HTC_PASIC3 is not set 886# CONFIG_HTC_PASIC3 is not set
887# CONFIG_MFD_TMIO is not set
861 888
862# 889#
863# Multimedia devices 890# Multimedia devices
@@ -889,10 +916,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
889# Display device support 916# Display device support
890# 917#
891# CONFIG_DISPLAY_SUPPORT is not set 918# CONFIG_DISPLAY_SUPPORT is not set
892
893#
894# Sound
895#
896# CONFIG_SOUND is not set 919# CONFIG_SOUND is not set
897CONFIG_HID_SUPPORT=y 920CONFIG_HID_SUPPORT=y
898CONFIG_HID=y 921CONFIG_HID=y
@@ -907,6 +930,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
907# CONFIG_USB_OTG_BLACKLIST_HUB is not set 930# CONFIG_USB_OTG_BLACKLIST_HUB is not set
908 931
909# 932#
933# Enable Host or Gadget support to see Inventra options
934#
935
936#
910# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 937# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
911# 938#
912# CONFIG_USB_GADGET is not set 939# CONFIG_USB_GADGET is not set
@@ -945,6 +972,7 @@ CONFIG_RTC_DRV_DS1307=y
945# CONFIG_RTC_DRV_PCF8583 is not set 972# CONFIG_RTC_DRV_PCF8583 is not set
946# CONFIG_RTC_DRV_M41T80 is not set 973# CONFIG_RTC_DRV_M41T80 is not set
947# CONFIG_RTC_DRV_S35390A is not set 974# CONFIG_RTC_DRV_S35390A is not set
975# CONFIG_RTC_DRV_FM3130 is not set
948 976
949# 977#
950# SPI RTC drivers 978# SPI RTC drivers
@@ -1031,9 +1059,11 @@ CONFIG_TMPFS=y
1031# CONFIG_BFS_FS is not set 1059# CONFIG_BFS_FS is not set
1032# CONFIG_EFS_FS is not set 1060# CONFIG_EFS_FS is not set
1033# CONFIG_JFFS2_FS is not set 1061# CONFIG_JFFS2_FS is not set
1062# CONFIG_UBIFS_FS is not set
1034# CONFIG_CRAMFS is not set 1063# CONFIG_CRAMFS is not set
1035# CONFIG_VXFS_FS is not set 1064# CONFIG_VXFS_FS is not set
1036# CONFIG_MINIX_FS is not set 1065# CONFIG_MINIX_FS is not set
1066# CONFIG_OMFS_FS is not set
1037# CONFIG_HPFS_FS is not set 1067# CONFIG_HPFS_FS is not set
1038# CONFIG_QNX4FS_FS is not set 1068# CONFIG_QNX4FS_FS is not set
1039# CONFIG_ROMFS_FS is not set 1069# CONFIG_ROMFS_FS is not set
@@ -1043,12 +1073,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
1043CONFIG_NFS_FS=y 1073CONFIG_NFS_FS=y
1044# CONFIG_NFS_V3 is not set 1074# CONFIG_NFS_V3 is not set
1045# CONFIG_NFS_V4 is not set 1075# CONFIG_NFS_V4 is not set
1046# CONFIG_NFSD is not set
1047CONFIG_ROOT_NFS=y 1076CONFIG_ROOT_NFS=y
1077# CONFIG_NFSD is not set
1048CONFIG_LOCKD=y 1078CONFIG_LOCKD=y
1049CONFIG_NFS_COMMON=y 1079CONFIG_NFS_COMMON=y
1050CONFIG_SUNRPC=y 1080CONFIG_SUNRPC=y
1051# CONFIG_SUNRPC_BIND34 is not set
1052# CONFIG_RPCSEC_GSS_KRB5 is not set 1081# CONFIG_RPCSEC_GSS_KRB5 is not set
1053# CONFIG_RPCSEC_GSS_SPKM3 is not set 1082# CONFIG_RPCSEC_GSS_SPKM3 is not set
1054# CONFIG_SMB_FS is not set 1083# CONFIG_SMB_FS is not set
@@ -1084,6 +1113,7 @@ CONFIG_BITREVERSE=y
1084# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1113# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1085# CONFIG_CRC_CCITT is not set 1114# CONFIG_CRC_CCITT is not set
1086# CONFIG_CRC16 is not set 1115# CONFIG_CRC16 is not set
1116# CONFIG_CRC_T10DIF is not set
1087# CONFIG_CRC_ITU_T is not set 1117# CONFIG_CRC_ITU_T is not set
1088CONFIG_CRC32=y 1118CONFIG_CRC32=y
1089# CONFIG_CRC7 is not set 1119# CONFIG_CRC7 is not set
@@ -1108,6 +1138,8 @@ CONFIG_FRAME_WARN=1024
1108CONFIG_DEBUG_KERNEL=y 1138CONFIG_DEBUG_KERNEL=y
1109# CONFIG_DEBUG_SHIRQ is not set 1139# CONFIG_DEBUG_SHIRQ is not set
1110CONFIG_DETECT_SOFTLOCKUP=y 1140CONFIG_DETECT_SOFTLOCKUP=y
1141# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1142CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1111CONFIG_SCHED_DEBUG=y 1143CONFIG_SCHED_DEBUG=y
1112# CONFIG_SCHEDSTATS is not set 1144# CONFIG_SCHEDSTATS is not set
1113# CONFIG_TIMER_STATS is not set 1145# CONFIG_TIMER_STATS is not set
@@ -1125,17 +1157,29 @@ CONFIG_DEBUG_MUTEXES=y
1125# CONFIG_DEBUG_INFO is not set 1157# CONFIG_DEBUG_INFO is not set
1126# CONFIG_DEBUG_VM is not set 1158# CONFIG_DEBUG_VM is not set
1127# CONFIG_DEBUG_WRITECOUNT is not set 1159# CONFIG_DEBUG_WRITECOUNT is not set
1160# CONFIG_DEBUG_MEMORY_INIT is not set
1128# CONFIG_DEBUG_LIST is not set 1161# CONFIG_DEBUG_LIST is not set
1129# CONFIG_DEBUG_SG is not set 1162# CONFIG_DEBUG_SG is not set
1130# CONFIG_BOOT_PRINTK_DELAY is not set 1163# CONFIG_BOOT_PRINTK_DELAY is not set
1131# CONFIG_RCU_TORTURE_TEST is not set 1164# CONFIG_RCU_TORTURE_TEST is not set
1132# CONFIG_BACKTRACE_SELF_TEST is not set 1165# CONFIG_BACKTRACE_SELF_TEST is not set
1133# CONFIG_FAULT_INJECTION is not set 1166# CONFIG_FAULT_INJECTION is not set
1167# CONFIG_LATENCYTOP is not set
1168CONFIG_SYSCTL_SYSCALL_CHECK=y
1169CONFIG_HAVE_FTRACE=y
1170CONFIG_HAVE_DYNAMIC_FTRACE=y
1171# CONFIG_FTRACE is not set
1172# CONFIG_SCHED_TRACER is not set
1173# CONFIG_CONTEXT_SWITCH_TRACER is not set
1134# CONFIG_SAMPLES is not set 1174# CONFIG_SAMPLES is not set
1175CONFIG_HAVE_ARCH_KGDB=y
1176# CONFIG_KGDB is not set
1135# CONFIG_DEBUG_STACKOVERFLOW is not set 1177# CONFIG_DEBUG_STACKOVERFLOW is not set
1136# CONFIG_DEBUG_STACK_USAGE is not set 1178# CONFIG_DEBUG_STACK_USAGE is not set
1137# CONFIG_DEBUG_PAGEALLOC is not set 1179# CONFIG_DEBUG_PAGEALLOC is not set
1138# CONFIG_DEBUGGER is not set 1180# CONFIG_CODE_PATCHING_SELFTEST is not set
1181# CONFIG_FTR_FIXUP_SELFTEST is not set
1182# CONFIG_XMON is not set
1139# CONFIG_IRQSTACKS is not set 1183# CONFIG_IRQSTACKS is not set
1140# CONFIG_BDI_SWITCH is not set 1184# CONFIG_BDI_SWITCH is not set
1141# CONFIG_PPC_EARLY_DEBUG is not set 1185# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1189,6 +1233,10 @@ CONFIG_CRYPTO=y
1189# CONFIG_CRYPTO_MD4 is not set 1233# CONFIG_CRYPTO_MD4 is not set
1190# CONFIG_CRYPTO_MD5 is not set 1234# CONFIG_CRYPTO_MD5 is not set
1191# CONFIG_CRYPTO_MICHAEL_MIC is not set 1235# CONFIG_CRYPTO_MICHAEL_MIC is not set
1236# CONFIG_CRYPTO_RMD128 is not set
1237# CONFIG_CRYPTO_RMD160 is not set
1238# CONFIG_CRYPTO_RMD256 is not set
1239# CONFIG_CRYPTO_RMD320 is not set
1192# CONFIG_CRYPTO_SHA1 is not set 1240# CONFIG_CRYPTO_SHA1 is not set
1193# CONFIG_CRYPTO_SHA256 is not set 1241# CONFIG_CRYPTO_SHA256 is not set
1194# CONFIG_CRYPTO_SHA512 is not set 1242# CONFIG_CRYPTO_SHA512 is not set
@@ -1221,5 +1269,6 @@ CONFIG_CRYPTO=y
1221# CONFIG_CRYPTO_LZO is not set 1269# CONFIG_CRYPTO_LZO is not set
1222CONFIG_CRYPTO_HW=y 1270CONFIG_CRYPTO_HW=y
1223# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1271# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1272# CONFIG_CRYPTO_DEV_TALITOS is not set
1224# CONFIG_PPC_CLOCK is not set 1273# CONFIG_PPC_CLOCK is not set
1225# CONFIG_VIRTUALIZATION is not set 1274# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8555_defconfig b/arch/powerpc/configs/85xx/tqm8555_defconfig
index 03120b5b52fa..dcf9cfe28b55 100644
--- a/arch/powerpc/configs/85xx/tqm8555_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8555_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:41 2008 4# Thu Aug 21 00:52:42 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 95# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 96# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,10 +114,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y
118CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -126,6 +134,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 135# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
129 138
130# 139#
131# IO Schedulers 140# IO Schedulers
@@ -144,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
144# 153#
145# Platform support 154# Platform support
146# 155#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -154,11 +161,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set 169# CONFIG_TQM8541 is not set
170# CONFIG_TQM8548 is not set
162CONFIG_TQM8555=y 171CONFIG_TQM8555=y
163# CONFIG_TQM8560 is not set 172# CONFIG_TQM8560 is not set
164# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -176,7 +185,6 @@ CONFIG_MPIC=y
176# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
178CONFIG_CPM2=y 187CONFIG_CPM2=y
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 189CONFIG_CPM=y
182 190
@@ -216,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -223,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
224# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
225# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 236# CONFIG_PM is not set
227CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -234,6 +244,7 @@ CONFIG_ZONE_DMA=y
234CONFIG_PPC_INDIRECT_PCI=y 244CONFIG_PPC_INDIRECT_PCI=y
235CONFIG_FSL_SOC=y 245CONFIG_FSL_SOC=y
236CONFIG_FSL_PCI=y 246CONFIG_FSL_PCI=y
247CONFIG_PPC_PCI_CHOICE=y
237CONFIG_PCI=y 248CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 249CONFIG_PCI_DOMAINS=y
239CONFIG_PCI_SYSCALL=y 250CONFIG_PCI_SYSCALL=y
@@ -257,10 +268,6 @@ CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 268CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000 269CONFIG_PHYSICAL_ALIGN=0x10000000
259CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
260
261#
262# Networking
263#
264CONFIG_NET=y 271CONFIG_NET=y
265 272
266# 273#
@@ -432,6 +439,7 @@ CONFIG_MTD_CFI_UTIL=y
432# 439#
433# CONFIG_MTD_UBI is not set 440# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 441CONFIG_OF_DEVICE=y
442CONFIG_OF_GPIO=y
435CONFIG_OF_I2C=y 443CONFIG_OF_I2C=y
436# CONFIG_PARPORT is not set 444# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y 445CONFIG_BLK_DEV=y
@@ -451,20 +459,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
451# CONFIG_BLK_DEV_XIP is not set 459# CONFIG_BLK_DEV_XIP is not set
452# CONFIG_CDROM_PKTCDVD is not set 460# CONFIG_CDROM_PKTCDVD is not set
453# CONFIG_ATA_OVER_ETH is not set 461# CONFIG_ATA_OVER_ETH is not set
462# CONFIG_BLK_DEV_HD is not set
454CONFIG_MISC_DEVICES=y 463CONFIG_MISC_DEVICES=y
455# CONFIG_PHANTOM is not set 464# CONFIG_PHANTOM is not set
456# CONFIG_EEPROM_93CX6 is not set 465# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_SGI_IOC4 is not set 466# CONFIG_SGI_IOC4 is not set
458# CONFIG_TIFM_CORE is not set 467# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
469# CONFIG_HP_ILO is not set
460CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
461CONFIG_IDE=y 471CONFIG_IDE=y
462CONFIG_IDE_MAX_HWIFS=4
463CONFIG_BLK_DEV_IDE=y 472CONFIG_BLK_DEV_IDE=y
464 473
465# 474#
466# Please see Documentation/ide/ide.txt for help/info on IDE drives 475# Please see Documentation/ide/ide.txt for help/info on IDE drives
467# 476#
477CONFIG_IDE_TIMINGS=y
468# CONFIG_BLK_DEV_IDE_SATA is not set 478# CONFIG_BLK_DEV_IDE_SATA is not set
469CONFIG_BLK_DEV_IDEDISK=y 479CONFIG_BLK_DEV_IDEDISK=y
470# CONFIG_IDEDISK_MULTI_MODE is not set 480# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,7 +487,6 @@ CONFIG_IDE_PROC_FS=y
477# 487#
478# IDE chipset support/bugfixes 488# IDE chipset support/bugfixes
479# 489#
480CONFIG_IDE_GENERIC=y
481# CONFIG_BLK_DEV_PLATFORM is not set 490# CONFIG_BLK_DEV_PLATFORM is not set
482CONFIG_BLK_DEV_IDEDMA_SFF=y 491CONFIG_BLK_DEV_IDEDMA_SFF=y
483 492
@@ -495,10 +504,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
495# CONFIG_BLK_DEV_AMD74XX is not set 504# CONFIG_BLK_DEV_AMD74XX is not set
496# CONFIG_BLK_DEV_CMD64X is not set 505# CONFIG_BLK_DEV_CMD64X is not set
497# CONFIG_BLK_DEV_TRIFLEX is not set 506# CONFIG_BLK_DEV_TRIFLEX is not set
498# CONFIG_BLK_DEV_CY82C693 is not set
499# CONFIG_BLK_DEV_CS5520 is not set 507# CONFIG_BLK_DEV_CS5520 is not set
500# CONFIG_BLK_DEV_CS5530 is not set 508# CONFIG_BLK_DEV_CS5530 is not set
501# CONFIG_BLK_DEV_HPT34X is not set
502# CONFIG_BLK_DEV_HPT366 is not set 509# CONFIG_BLK_DEV_HPT366 is not set
503# CONFIG_BLK_DEV_JMICRON is not set 510# CONFIG_BLK_DEV_JMICRON is not set
504# CONFIG_BLK_DEV_SC1200 is not set 511# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +523,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
516CONFIG_BLK_DEV_VIA82CXXX=y 523CONFIG_BLK_DEV_VIA82CXXX=y
517# CONFIG_BLK_DEV_TC86C001 is not set 524# CONFIG_BLK_DEV_TC86C001 is not set
518CONFIG_BLK_DEV_IDEDMA=y 525CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 526
522# 527#
523# SCSI device support 528# SCSI device support
@@ -533,12 +538,15 @@ CONFIG_BLK_DEV_IDEDMA=y
533# 538#
534# IEEE 1394 (FireWire) support 539# IEEE 1394 (FireWire) support
535# 540#
541
542#
543# Enable only one of the two stacks, unless you know what you are doing
544#
536# CONFIG_FIREWIRE is not set 545# CONFIG_FIREWIRE is not set
537# CONFIG_IEEE1394 is not set 546# CONFIG_IEEE1394 is not set
538# CONFIG_I2O is not set 547# CONFIG_I2O is not set
539# CONFIG_MACINTOSH_DRIVERS is not set 548# CONFIG_MACINTOSH_DRIVERS is not set
540CONFIG_NETDEVICES=y 549CONFIG_NETDEVICES=y
541# CONFIG_NETDEVICES_MULTIQUEUE is not set
542# CONFIG_DUMMY is not set 550# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 551# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 552# CONFIG_MACVLAN is not set
@@ -601,7 +609,6 @@ CONFIG_NETDEV_1000=y
601# CONFIG_DL2K is not set 609# CONFIG_DL2K is not set
602# CONFIG_E1000 is not set 610# CONFIG_E1000 is not set
603# CONFIG_E1000E is not set 611# CONFIG_E1000E is not set
604# CONFIG_E1000E_ENABLED is not set
605# CONFIG_IP1000 is not set 612# CONFIG_IP1000 is not set
606# CONFIG_IGB is not set 613# CONFIG_IGB is not set
607# CONFIG_NS83820 is not set 614# CONFIG_NS83820 is not set
@@ -615,9 +622,9 @@ CONFIG_NETDEV_1000=y
615# CONFIG_TIGON3 is not set 622# CONFIG_TIGON3 is not set
616# CONFIG_BNX2 is not set 623# CONFIG_BNX2 is not set
617CONFIG_GIANFAR=y 624CONFIG_GIANFAR=y
618CONFIG_GFAR_NAPI=y
619# CONFIG_QLA3XXX is not set 625# CONFIG_QLA3XXX is not set
620# CONFIG_ATL1 is not set 626# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set
621CONFIG_NETDEV_10000=y 628CONFIG_NETDEV_10000=y
622# CONFIG_CHELSIO_T1 is not set 629# CONFIG_CHELSIO_T1 is not set
623# CONFIG_CHELSIO_T3 is not set 630# CONFIG_CHELSIO_T3 is not set
@@ -732,42 +739,66 @@ CONFIG_DEVPORT=y
732CONFIG_I2C=y 739CONFIG_I2C=y
733CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
734CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
735 743
736# 744#
737# I2C Hardware Bus support 745# I2C Hardware Bus support
738# 746#
747
748#
749# PC SMBus host controller drivers
750#
739# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
740# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
741# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
742# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
743# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
744# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
745# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
746# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
747CONFIG_I2C_MPC=y
748# CONFIG_I2C_NFORCE2 is not set 759# CONFIG_I2C_NFORCE2 is not set
749# CONFIG_I2C_OCORES is not set
750# CONFIG_I2C_PARPORT_LIGHT is not set
751# CONFIG_I2C_PROSAVAGE is not set
752# CONFIG_I2C_SAVAGE4 is not set
753# CONFIG_I2C_SIMTEC is not set
754# CONFIG_I2C_SIS5595 is not set 760# CONFIG_I2C_SIS5595 is not set
755# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
756# CONFIG_I2C_SIS96X is not set 762# CONFIG_I2C_SIS96X is not set
757# CONFIG_I2C_TAOS_EVM is not set
758# CONFIG_I2C_VIA is not set 763# CONFIG_I2C_VIA is not set
759# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769# CONFIG_I2C_CPM is not set
770# CONFIG_I2C_GPIO is not set
771CONFIG_I2C_MPC=y
772# CONFIG_I2C_OCORES is not set
773# CONFIG_I2C_SIMTEC is not set
774
775#
776# External I2C/SMBus adapter drivers
777#
778# CONFIG_I2C_PARPORT_LIGHT is not set
779# CONFIG_I2C_TAOS_EVM is not set
780
781#
782# Graphics adapter I2C/DDC channel drivers
783#
760# CONFIG_I2C_VOODOO3 is not set 784# CONFIG_I2C_VOODOO3 is not set
785
786#
787# Other I2C/SMBus bus drivers
788#
761# CONFIG_I2C_PCA_PLATFORM is not set 789# CONFIG_I2C_PCA_PLATFORM is not set
762 790
763# 791#
764# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
765# 793#
766# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
768# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
770# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
801# CONFIG_TPS65010 is not set
771# CONFIG_SENSORS_MAX6875 is not set 802# CONFIG_SENSORS_MAX6875 is not set
772# CONFIG_SENSORS_TSL2550 is not set 803# CONFIG_SENSORS_TSL2550 is not set
773# CONFIG_I2C_DEBUG_CORE is not set 804# CONFIG_I2C_DEBUG_CORE is not set
@@ -775,10 +806,31 @@ CONFIG_I2C_MPC=y
775# CONFIG_I2C_DEBUG_BUS is not set 806# CONFIG_I2C_DEBUG_BUS is not set
776# CONFIG_I2C_DEBUG_CHIP is not set 807# CONFIG_I2C_DEBUG_CHIP is not set
777# CONFIG_SPI is not set 808# CONFIG_SPI is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
810CONFIG_ARCH_REQUIRE_GPIOLIB=y
811CONFIG_GPIOLIB=y
812# CONFIG_GPIO_SYSFS is not set
813
814#
815# I2C GPIO expanders:
816#
817# CONFIG_GPIO_MAX732X is not set
818# CONFIG_GPIO_PCA953X is not set
819# CONFIG_GPIO_PCF857X is not set
820
821#
822# PCI GPIO expanders:
823#
824# CONFIG_GPIO_BT8XX is not set
825
826#
827# SPI GPIO expanders:
828#
778# CONFIG_W1 is not set 829# CONFIG_W1 is not set
779# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
780CONFIG_HWMON=y 831CONFIG_HWMON=y
781# CONFIG_HWMON_VID is not set 832# CONFIG_HWMON_VID is not set
833# CONFIG_SENSORS_AD7414 is not set
782# CONFIG_SENSORS_AD7418 is not set 834# CONFIG_SENSORS_AD7418 is not set
783# CONFIG_SENSORS_ADM1021 is not set 835# CONFIG_SENSORS_ADM1021 is not set
784# CONFIG_SENSORS_ADM1025 is not set 836# CONFIG_SENSORS_ADM1025 is not set
@@ -832,6 +884,7 @@ CONFIG_SENSORS_LM75=y
832# CONFIG_SENSORS_W83627EHF is not set 884# CONFIG_SENSORS_W83627EHF is not set
833CONFIG_HWMON_DEBUG_CHIP=y 885CONFIG_HWMON_DEBUG_CHIP=y
834# CONFIG_THERMAL is not set 886# CONFIG_THERMAL is not set
887# CONFIG_THERMAL_HWMON is not set
835# CONFIG_WATCHDOG is not set 888# CONFIG_WATCHDOG is not set
836 889
837# 890#
@@ -843,8 +896,10 @@ CONFIG_SSB_POSSIBLE=y
843# 896#
844# Multifunction device drivers 897# Multifunction device drivers
845# 898#
899# CONFIG_MFD_CORE is not set
846# CONFIG_MFD_SM501 is not set 900# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 901# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set
848 903
849# 904#
850# Multimedia devices 905# Multimedia devices
@@ -876,10 +931,6 @@ CONFIG_DAB=y
876# Display device support 931# Display device support
877# 932#
878# CONFIG_DISPLAY_SUPPORT is not set 933# CONFIG_DISPLAY_SUPPORT is not set
879
880#
881# Sound
882#
883# CONFIG_SOUND is not set 934# CONFIG_SOUND is not set
884CONFIG_HID_SUPPORT=y 935CONFIG_HID_SUPPORT=y
885CONFIG_HID=y 936CONFIG_HID=y
@@ -894,6 +945,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set 945# CONFIG_USB_OTG_BLACKLIST_HUB is not set
895 946
896# 947#
948# Enable Host or Gadget support to see Inventra options
949#
950
951#
897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
898# 953#
899# CONFIG_USB_GADGET is not set 954# CONFIG_USB_GADGET is not set
@@ -982,6 +1037,7 @@ CONFIG_JFFS2_RTIME=y
982CONFIG_CRAMFS=y 1037CONFIG_CRAMFS=y
983# CONFIG_VXFS_FS is not set 1038# CONFIG_VXFS_FS is not set
984# CONFIG_MINIX_FS is not set 1039# CONFIG_MINIX_FS is not set
1040# CONFIG_OMFS_FS is not set
985# CONFIG_HPFS_FS is not set 1041# CONFIG_HPFS_FS is not set
986# CONFIG_QNX4FS_FS is not set 1042# CONFIG_QNX4FS_FS is not set
987# CONFIG_ROMFS_FS is not set 1043# CONFIG_ROMFS_FS is not set
@@ -991,12 +1047,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
991CONFIG_NFS_FS=y 1047CONFIG_NFS_FS=y
992# CONFIG_NFS_V3 is not set 1048# CONFIG_NFS_V3 is not set
993# CONFIG_NFS_V4 is not set 1049# CONFIG_NFS_V4 is not set
994# CONFIG_NFSD is not set
995CONFIG_ROOT_NFS=y 1050CONFIG_ROOT_NFS=y
1051# CONFIG_NFSD is not set
996CONFIG_LOCKD=y 1052CONFIG_LOCKD=y
997CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
998CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
999# CONFIG_SUNRPC_BIND34 is not set
1000# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1001# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1002# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1032,6 +1087,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1033# CONFIG_CRC_CCITT is not set 1088# CONFIG_CRC_CCITT is not set
1034# CONFIG_CRC16 is not set 1089# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set
1035# CONFIG_CRC_ITU_T is not set 1091# CONFIG_CRC_ITU_T is not set
1036CONFIG_CRC32=y 1092CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1093# CONFIG_CRC7 is not set
@@ -1059,8 +1115,16 @@ CONFIG_FRAME_WARN=1024
1059# CONFIG_SLUB_DEBUG_ON is not set 1115# CONFIG_SLUB_DEBUG_ON is not set
1060# CONFIG_SLUB_STATS is not set 1116# CONFIG_SLUB_STATS is not set
1061# CONFIG_DEBUG_BUGVERBOSE is not set 1117# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set
1119# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y
1123# CONFIG_FTRACE is not set
1124# CONFIG_SCHED_TRACER is not set
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set
1062# CONFIG_SAMPLES is not set 1126# CONFIG_SAMPLES is not set
1063# CONFIG_KGDB_CONSOLE is not set 1127CONFIG_HAVE_ARCH_KGDB=y
1064# CONFIG_IRQSTACKS is not set 1128# CONFIG_IRQSTACKS is not set
1065# CONFIG_PPC_EARLY_DEBUG is not set 1129# CONFIG_PPC_EARLY_DEBUG is not set
1066 1130
@@ -1112,6 +1176,10 @@ CONFIG_CRYPTO=y
1112# CONFIG_CRYPTO_MD4 is not set 1176# CONFIG_CRYPTO_MD4 is not set
1113# CONFIG_CRYPTO_MD5 is not set 1177# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set 1178# CONFIG_CRYPTO_MICHAEL_MIC is not set
1179# CONFIG_CRYPTO_RMD128 is not set
1180# CONFIG_CRYPTO_RMD160 is not set
1181# CONFIG_CRYPTO_RMD256 is not set
1182# CONFIG_CRYPTO_RMD320 is not set
1115# CONFIG_CRYPTO_SHA1 is not set 1183# CONFIG_CRYPTO_SHA1 is not set
1116# CONFIG_CRYPTO_SHA256 is not set 1184# CONFIG_CRYPTO_SHA256 is not set
1117# CONFIG_CRYPTO_SHA512 is not set 1185# CONFIG_CRYPTO_SHA512 is not set
@@ -1144,6 +1212,7 @@ CONFIG_CRYPTO=y
1144# CONFIG_CRYPTO_LZO is not set 1212# CONFIG_CRYPTO_LZO is not set
1145CONFIG_CRYPTO_HW=y 1213CONFIG_CRYPTO_HW=y
1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_PPC_CLOCK is not set 1215# CONFIG_CRYPTO_DEV_TALITOS is not set
1216CONFIG_PPC_CLOCK=y
1148CONFIG_PPC_LIB_RHEAP=y 1217CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/85xx/tqm8560_defconfig b/arch/powerpc/configs/85xx/tqm8560_defconfig
index 3113257edf5a..8d676629cdb1 100644
--- a/arch/powerpc/configs/85xx/tqm8560_defconfig
+++ b/arch/powerpc/configs/85xx/tqm8560_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:42 2008 4# Thu Aug 21 00:52:43 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -89,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
89CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
90CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
91CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
92CONFIG_SYSCTL_SYSCALL_CHECK=y
93# CONFIG_KALLSYMS is not set 95# CONFIG_KALLSYMS is not set
94# CONFIG_HOTPLUG is not set 96# CONFIG_HOTPLUG is not set
95CONFIG_PRINTK=y 97CONFIG_PRINTK=y
@@ -112,10 +114,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 114# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 115# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 116CONFIG_HAVE_OPROFILE=y
117CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
118CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 119CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 120CONFIG_HAVE_KRETPROBES=y
121CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 122# CONFIG_HAVE_DMA_ATTRS is not set
123# CONFIG_USE_GENERIC_SMP_HELPERS is not set
124CONFIG_HAVE_CLK=y
118CONFIG_PROC_PAGE_MONITOR=y 125CONFIG_PROC_PAGE_MONITOR=y
126# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 127CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 128CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 129# CONFIG_TINY_SHMEM is not set
@@ -126,6 +134,7 @@ CONFIG_BLOCK=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 134# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 135# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 136# CONFIG_BLK_DEV_BSG is not set
137# CONFIG_BLK_DEV_INTEGRITY is not set
129 138
130# 139#
131# IO Schedulers 140# IO Schedulers
@@ -144,8 +153,6 @@ CONFIG_CLASSIC_RCU=y
144# 153#
145# Platform support 154# Platform support
146# 155#
147# CONFIG_PPC_MPC512x is not set
148# CONFIG_PPC_MPC5121 is not set
149# CONFIG_PPC_CELL is not set 156# CONFIG_PPC_CELL is not set
150# CONFIG_PPC_CELL_NATIVE is not set 157# CONFIG_PPC_CELL_NATIVE is not set
151# CONFIG_PQ2ADS is not set 158# CONFIG_PQ2ADS is not set
@@ -154,11 +161,13 @@ CONFIG_MPC85xx=y
154# CONFIG_MPC8560_ADS is not set 161# CONFIG_MPC8560_ADS is not set
155# CONFIG_MPC85xx_CDS is not set 162# CONFIG_MPC85xx_CDS is not set
156# CONFIG_MPC85xx_MDS is not set 163# CONFIG_MPC85xx_MDS is not set
164# CONFIG_MPC8536_DS is not set
157# CONFIG_MPC85xx_DS is not set 165# CONFIG_MPC85xx_DS is not set
158# CONFIG_KSI8560 is not set 166# CONFIG_KSI8560 is not set
159# CONFIG_STX_GP3 is not set 167# CONFIG_STX_GP3 is not set
160# CONFIG_TQM8540 is not set 168# CONFIG_TQM8540 is not set
161# CONFIG_TQM8541 is not set 169# CONFIG_TQM8541 is not set
170# CONFIG_TQM8548 is not set
162# CONFIG_TQM8555 is not set 171# CONFIG_TQM8555 is not set
163CONFIG_TQM8560=y 172CONFIG_TQM8560=y
164# CONFIG_SBC8548 is not set 173# CONFIG_SBC8548 is not set
@@ -176,7 +185,6 @@ CONFIG_MPIC=y
176# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
178CONFIG_CPM2=y 187CONFIG_CPM2=y
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 189CONFIG_CPM=y
182 190
@@ -216,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
216# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
217CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
218CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
219# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
220CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
221CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -223,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
223CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
224# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
225# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
226# CONFIG_PM is not set 236# CONFIG_PM is not set
227CONFIG_SECCOMP=y 237CONFIG_SECCOMP=y
228CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -234,6 +244,7 @@ CONFIG_ZONE_DMA=y
234CONFIG_PPC_INDIRECT_PCI=y 244CONFIG_PPC_INDIRECT_PCI=y
235CONFIG_FSL_SOC=y 245CONFIG_FSL_SOC=y
236CONFIG_FSL_PCI=y 246CONFIG_FSL_PCI=y
247CONFIG_PPC_PCI_CHOICE=y
237CONFIG_PCI=y 248CONFIG_PCI=y
238CONFIG_PCI_DOMAINS=y 249CONFIG_PCI_DOMAINS=y
239CONFIG_PCI_SYSCALL=y 250CONFIG_PCI_SYSCALL=y
@@ -257,10 +268,6 @@ CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 268CONFIG_PHYSICAL_START=0x00000000
258CONFIG_PHYSICAL_ALIGN=0x10000000 269CONFIG_PHYSICAL_ALIGN=0x10000000
259CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
260
261#
262# Networking
263#
264CONFIG_NET=y 271CONFIG_NET=y
265 272
266# 273#
@@ -432,6 +439,7 @@ CONFIG_MTD_CFI_UTIL=y
432# 439#
433# CONFIG_MTD_UBI is not set 440# CONFIG_MTD_UBI is not set
434CONFIG_OF_DEVICE=y 441CONFIG_OF_DEVICE=y
442CONFIG_OF_GPIO=y
435CONFIG_OF_I2C=y 443CONFIG_OF_I2C=y
436# CONFIG_PARPORT is not set 444# CONFIG_PARPORT is not set
437CONFIG_BLK_DEV=y 445CONFIG_BLK_DEV=y
@@ -451,20 +459,22 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
451# CONFIG_BLK_DEV_XIP is not set 459# CONFIG_BLK_DEV_XIP is not set
452# CONFIG_CDROM_PKTCDVD is not set 460# CONFIG_CDROM_PKTCDVD is not set
453# CONFIG_ATA_OVER_ETH is not set 461# CONFIG_ATA_OVER_ETH is not set
462# CONFIG_BLK_DEV_HD is not set
454CONFIG_MISC_DEVICES=y 463CONFIG_MISC_DEVICES=y
455# CONFIG_PHANTOM is not set 464# CONFIG_PHANTOM is not set
456# CONFIG_EEPROM_93CX6 is not set 465# CONFIG_EEPROM_93CX6 is not set
457# CONFIG_SGI_IOC4 is not set 466# CONFIG_SGI_IOC4 is not set
458# CONFIG_TIFM_CORE is not set 467# CONFIG_TIFM_CORE is not set
459# CONFIG_ENCLOSURE_SERVICES is not set 468# CONFIG_ENCLOSURE_SERVICES is not set
469# CONFIG_HP_ILO is not set
460CONFIG_HAVE_IDE=y 470CONFIG_HAVE_IDE=y
461CONFIG_IDE=y 471CONFIG_IDE=y
462CONFIG_IDE_MAX_HWIFS=4
463CONFIG_BLK_DEV_IDE=y 472CONFIG_BLK_DEV_IDE=y
464 473
465# 474#
466# Please see Documentation/ide/ide.txt for help/info on IDE drives 475# Please see Documentation/ide/ide.txt for help/info on IDE drives
467# 476#
477CONFIG_IDE_TIMINGS=y
468# CONFIG_BLK_DEV_IDE_SATA is not set 478# CONFIG_BLK_DEV_IDE_SATA is not set
469CONFIG_BLK_DEV_IDEDISK=y 479CONFIG_BLK_DEV_IDEDISK=y
470# CONFIG_IDEDISK_MULTI_MODE is not set 480# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -477,7 +487,6 @@ CONFIG_IDE_PROC_FS=y
477# 487#
478# IDE chipset support/bugfixes 488# IDE chipset support/bugfixes
479# 489#
480CONFIG_IDE_GENERIC=y
481# CONFIG_BLK_DEV_PLATFORM is not set 490# CONFIG_BLK_DEV_PLATFORM is not set
482CONFIG_BLK_DEV_IDEDMA_SFF=y 491CONFIG_BLK_DEV_IDEDMA_SFF=y
483 492
@@ -495,10 +504,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
495# CONFIG_BLK_DEV_AMD74XX is not set 504# CONFIG_BLK_DEV_AMD74XX is not set
496# CONFIG_BLK_DEV_CMD64X is not set 505# CONFIG_BLK_DEV_CMD64X is not set
497# CONFIG_BLK_DEV_TRIFLEX is not set 506# CONFIG_BLK_DEV_TRIFLEX is not set
498# CONFIG_BLK_DEV_CY82C693 is not set
499# CONFIG_BLK_DEV_CS5520 is not set 507# CONFIG_BLK_DEV_CS5520 is not set
500# CONFIG_BLK_DEV_CS5530 is not set 508# CONFIG_BLK_DEV_CS5530 is not set
501# CONFIG_BLK_DEV_HPT34X is not set
502# CONFIG_BLK_DEV_HPT366 is not set 509# CONFIG_BLK_DEV_HPT366 is not set
503# CONFIG_BLK_DEV_JMICRON is not set 510# CONFIG_BLK_DEV_JMICRON is not set
504# CONFIG_BLK_DEV_SC1200 is not set 511# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +523,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
516CONFIG_BLK_DEV_VIA82CXXX=y 523CONFIG_BLK_DEV_VIA82CXXX=y
517# CONFIG_BLK_DEV_TC86C001 is not set 524# CONFIG_BLK_DEV_TC86C001 is not set
518CONFIG_BLK_DEV_IDEDMA=y 525CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 526
522# 527#
523# SCSI device support 528# SCSI device support
@@ -533,12 +538,15 @@ CONFIG_BLK_DEV_IDEDMA=y
533# 538#
534# IEEE 1394 (FireWire) support 539# IEEE 1394 (FireWire) support
535# 540#
541
542#
543# Enable only one of the two stacks, unless you know what you are doing
544#
536# CONFIG_FIREWIRE is not set 545# CONFIG_FIREWIRE is not set
537# CONFIG_IEEE1394 is not set 546# CONFIG_IEEE1394 is not set
538# CONFIG_I2O is not set 547# CONFIG_I2O is not set
539# CONFIG_MACINTOSH_DRIVERS is not set 548# CONFIG_MACINTOSH_DRIVERS is not set
540CONFIG_NETDEVICES=y 549CONFIG_NETDEVICES=y
541# CONFIG_NETDEVICES_MULTIQUEUE is not set
542# CONFIG_DUMMY is not set 550# CONFIG_DUMMY is not set
543# CONFIG_BONDING is not set 551# CONFIG_BONDING is not set
544# CONFIG_MACVLAN is not set 552# CONFIG_MACVLAN is not set
@@ -601,7 +609,6 @@ CONFIG_NETDEV_1000=y
601# CONFIG_DL2K is not set 609# CONFIG_DL2K is not set
602# CONFIG_E1000 is not set 610# CONFIG_E1000 is not set
603# CONFIG_E1000E is not set 611# CONFIG_E1000E is not set
604# CONFIG_E1000E_ENABLED is not set
605# CONFIG_IP1000 is not set 612# CONFIG_IP1000 is not set
606# CONFIG_IGB is not set 613# CONFIG_IGB is not set
607# CONFIG_NS83820 is not set 614# CONFIG_NS83820 is not set
@@ -615,9 +622,9 @@ CONFIG_NETDEV_1000=y
615# CONFIG_TIGON3 is not set 622# CONFIG_TIGON3 is not set
616# CONFIG_BNX2 is not set 623# CONFIG_BNX2 is not set
617CONFIG_GIANFAR=y 624CONFIG_GIANFAR=y
618CONFIG_GFAR_NAPI=y
619# CONFIG_QLA3XXX is not set 625# CONFIG_QLA3XXX is not set
620# CONFIG_ATL1 is not set 626# CONFIG_ATL1 is not set
627# CONFIG_ATL1E is not set
621CONFIG_NETDEV_10000=y 628CONFIG_NETDEV_10000=y
622# CONFIG_CHELSIO_T1 is not set 629# CONFIG_CHELSIO_T1 is not set
623# CONFIG_CHELSIO_T3 is not set 630# CONFIG_CHELSIO_T3 is not set
@@ -732,42 +739,66 @@ CONFIG_DEVPORT=y
732CONFIG_I2C=y 739CONFIG_I2C=y
733CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
734CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
735 743
736# 744#
737# I2C Hardware Bus support 745# I2C Hardware Bus support
738# 746#
747
748#
749# PC SMBus host controller drivers
750#
739# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
740# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
741# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
742# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
743# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
744# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
745# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
746# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
747CONFIG_I2C_MPC=y
748# CONFIG_I2C_NFORCE2 is not set 759# CONFIG_I2C_NFORCE2 is not set
749# CONFIG_I2C_OCORES is not set
750# CONFIG_I2C_PARPORT_LIGHT is not set
751# CONFIG_I2C_PROSAVAGE is not set
752# CONFIG_I2C_SAVAGE4 is not set
753# CONFIG_I2C_SIMTEC is not set
754# CONFIG_I2C_SIS5595 is not set 760# CONFIG_I2C_SIS5595 is not set
755# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
756# CONFIG_I2C_SIS96X is not set 762# CONFIG_I2C_SIS96X is not set
757# CONFIG_I2C_TAOS_EVM is not set
758# CONFIG_I2C_VIA is not set 763# CONFIG_I2C_VIA is not set
759# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769# CONFIG_I2C_CPM is not set
770# CONFIG_I2C_GPIO is not set
771CONFIG_I2C_MPC=y
772# CONFIG_I2C_OCORES is not set
773# CONFIG_I2C_SIMTEC is not set
774
775#
776# External I2C/SMBus adapter drivers
777#
778# CONFIG_I2C_PARPORT_LIGHT is not set
779# CONFIG_I2C_TAOS_EVM is not set
780
781#
782# Graphics adapter I2C/DDC channel drivers
783#
760# CONFIG_I2C_VOODOO3 is not set 784# CONFIG_I2C_VOODOO3 is not set
785
786#
787# Other I2C/SMBus bus drivers
788#
761# CONFIG_I2C_PCA_PLATFORM is not set 789# CONFIG_I2C_PCA_PLATFORM is not set
762 790
763# 791#
764# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
765# 793#
766# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
767# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
768# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
769# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
770# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
801# CONFIG_TPS65010 is not set
771# CONFIG_SENSORS_MAX6875 is not set 802# CONFIG_SENSORS_MAX6875 is not set
772# CONFIG_SENSORS_TSL2550 is not set 803# CONFIG_SENSORS_TSL2550 is not set
773# CONFIG_I2C_DEBUG_CORE is not set 804# CONFIG_I2C_DEBUG_CORE is not set
@@ -775,10 +806,31 @@ CONFIG_I2C_MPC=y
775# CONFIG_I2C_DEBUG_BUS is not set 806# CONFIG_I2C_DEBUG_BUS is not set
776# CONFIG_I2C_DEBUG_CHIP is not set 807# CONFIG_I2C_DEBUG_CHIP is not set
777# CONFIG_SPI is not set 808# CONFIG_SPI is not set
809CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
810CONFIG_ARCH_REQUIRE_GPIOLIB=y
811CONFIG_GPIOLIB=y
812# CONFIG_GPIO_SYSFS is not set
813
814#
815# I2C GPIO expanders:
816#
817# CONFIG_GPIO_MAX732X is not set
818# CONFIG_GPIO_PCA953X is not set
819# CONFIG_GPIO_PCF857X is not set
820
821#
822# PCI GPIO expanders:
823#
824# CONFIG_GPIO_BT8XX is not set
825
826#
827# SPI GPIO expanders:
828#
778# CONFIG_W1 is not set 829# CONFIG_W1 is not set
779# CONFIG_POWER_SUPPLY is not set 830# CONFIG_POWER_SUPPLY is not set
780CONFIG_HWMON=y 831CONFIG_HWMON=y
781# CONFIG_HWMON_VID is not set 832# CONFIG_HWMON_VID is not set
833# CONFIG_SENSORS_AD7414 is not set
782# CONFIG_SENSORS_AD7418 is not set 834# CONFIG_SENSORS_AD7418 is not set
783# CONFIG_SENSORS_ADM1021 is not set 835# CONFIG_SENSORS_ADM1021 is not set
784# CONFIG_SENSORS_ADM1025 is not set 836# CONFIG_SENSORS_ADM1025 is not set
@@ -832,6 +884,7 @@ CONFIG_SENSORS_LM75=y
832# CONFIG_SENSORS_W83627EHF is not set 884# CONFIG_SENSORS_W83627EHF is not set
833CONFIG_HWMON_DEBUG_CHIP=y 885CONFIG_HWMON_DEBUG_CHIP=y
834# CONFIG_THERMAL is not set 886# CONFIG_THERMAL is not set
887# CONFIG_THERMAL_HWMON is not set
835# CONFIG_WATCHDOG is not set 888# CONFIG_WATCHDOG is not set
836 889
837# 890#
@@ -843,8 +896,10 @@ CONFIG_SSB_POSSIBLE=y
843# 896#
844# Multifunction device drivers 897# Multifunction device drivers
845# 898#
899# CONFIG_MFD_CORE is not set
846# CONFIG_MFD_SM501 is not set 900# CONFIG_MFD_SM501 is not set
847# CONFIG_HTC_PASIC3 is not set 901# CONFIG_HTC_PASIC3 is not set
902# CONFIG_MFD_TMIO is not set
848 903
849# 904#
850# Multimedia devices 905# Multimedia devices
@@ -876,10 +931,6 @@ CONFIG_DAB=y
876# Display device support 931# Display device support
877# 932#
878# CONFIG_DISPLAY_SUPPORT is not set 933# CONFIG_DISPLAY_SUPPORT is not set
879
880#
881# Sound
882#
883# CONFIG_SOUND is not set 934# CONFIG_SOUND is not set
884CONFIG_HID_SUPPORT=y 935CONFIG_HID_SUPPORT=y
885CONFIG_HID=y 936CONFIG_HID=y
@@ -894,6 +945,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
894# CONFIG_USB_OTG_BLACKLIST_HUB is not set 945# CONFIG_USB_OTG_BLACKLIST_HUB is not set
895 946
896# 947#
948# Enable Host or Gadget support to see Inventra options
949#
950
951#
897# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 952# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
898# 953#
899# CONFIG_USB_GADGET is not set 954# CONFIG_USB_GADGET is not set
@@ -982,6 +1037,7 @@ CONFIG_JFFS2_RTIME=y
982CONFIG_CRAMFS=y 1037CONFIG_CRAMFS=y
983# CONFIG_VXFS_FS is not set 1038# CONFIG_VXFS_FS is not set
984# CONFIG_MINIX_FS is not set 1039# CONFIG_MINIX_FS is not set
1040# CONFIG_OMFS_FS is not set
985# CONFIG_HPFS_FS is not set 1041# CONFIG_HPFS_FS is not set
986# CONFIG_QNX4FS_FS is not set 1042# CONFIG_QNX4FS_FS is not set
987# CONFIG_ROMFS_FS is not set 1043# CONFIG_ROMFS_FS is not set
@@ -991,12 +1047,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
991CONFIG_NFS_FS=y 1047CONFIG_NFS_FS=y
992# CONFIG_NFS_V3 is not set 1048# CONFIG_NFS_V3 is not set
993# CONFIG_NFS_V4 is not set 1049# CONFIG_NFS_V4 is not set
994# CONFIG_NFSD is not set
995CONFIG_ROOT_NFS=y 1050CONFIG_ROOT_NFS=y
1051# CONFIG_NFSD is not set
996CONFIG_LOCKD=y 1052CONFIG_LOCKD=y
997CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
998CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
999# CONFIG_SUNRPC_BIND34 is not set
1000# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1001# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1002# CONFIG_SMB_FS is not set 1057# CONFIG_SMB_FS is not set
@@ -1032,6 +1087,7 @@ CONFIG_BITREVERSE=y
1032# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1087# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1033# CONFIG_CRC_CCITT is not set 1088# CONFIG_CRC_CCITT is not set
1034# CONFIG_CRC16 is not set 1089# CONFIG_CRC16 is not set
1090# CONFIG_CRC_T10DIF is not set
1035# CONFIG_CRC_ITU_T is not set 1091# CONFIG_CRC_ITU_T is not set
1036CONFIG_CRC32=y 1092CONFIG_CRC32=y
1037# CONFIG_CRC7 is not set 1093# CONFIG_CRC7 is not set
@@ -1059,8 +1115,16 @@ CONFIG_FRAME_WARN=1024
1059# CONFIG_SLUB_DEBUG_ON is not set 1115# CONFIG_SLUB_DEBUG_ON is not set
1060# CONFIG_SLUB_STATS is not set 1116# CONFIG_SLUB_STATS is not set
1061# CONFIG_DEBUG_BUGVERBOSE is not set 1117# CONFIG_DEBUG_BUGVERBOSE is not set
1118# CONFIG_DEBUG_MEMORY_INIT is not set
1119# CONFIG_LATENCYTOP is not set
1120CONFIG_SYSCTL_SYSCALL_CHECK=y
1121CONFIG_HAVE_FTRACE=y
1122CONFIG_HAVE_DYNAMIC_FTRACE=y
1123# CONFIG_FTRACE is not set
1124# CONFIG_SCHED_TRACER is not set
1125# CONFIG_CONTEXT_SWITCH_TRACER is not set
1062# CONFIG_SAMPLES is not set 1126# CONFIG_SAMPLES is not set
1063# CONFIG_KGDB_CONSOLE is not set 1127CONFIG_HAVE_ARCH_KGDB=y
1064# CONFIG_IRQSTACKS is not set 1128# CONFIG_IRQSTACKS is not set
1065# CONFIG_PPC_EARLY_DEBUG is not set 1129# CONFIG_PPC_EARLY_DEBUG is not set
1066 1130
@@ -1112,6 +1176,10 @@ CONFIG_CRYPTO=y
1112# CONFIG_CRYPTO_MD4 is not set 1176# CONFIG_CRYPTO_MD4 is not set
1113# CONFIG_CRYPTO_MD5 is not set 1177# CONFIG_CRYPTO_MD5 is not set
1114# CONFIG_CRYPTO_MICHAEL_MIC is not set 1178# CONFIG_CRYPTO_MICHAEL_MIC is not set
1179# CONFIG_CRYPTO_RMD128 is not set
1180# CONFIG_CRYPTO_RMD160 is not set
1181# CONFIG_CRYPTO_RMD256 is not set
1182# CONFIG_CRYPTO_RMD320 is not set
1115# CONFIG_CRYPTO_SHA1 is not set 1183# CONFIG_CRYPTO_SHA1 is not set
1116# CONFIG_CRYPTO_SHA256 is not set 1184# CONFIG_CRYPTO_SHA256 is not set
1117# CONFIG_CRYPTO_SHA512 is not set 1185# CONFIG_CRYPTO_SHA512 is not set
@@ -1144,6 +1212,7 @@ CONFIG_CRYPTO=y
1144# CONFIG_CRYPTO_LZO is not set 1212# CONFIG_CRYPTO_LZO is not set
1145CONFIG_CRYPTO_HW=y 1213CONFIG_CRYPTO_HW=y
1146# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1214# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1147# CONFIG_PPC_CLOCK is not set 1215# CONFIG_CRYPTO_DEV_TALITOS is not set
1216CONFIG_PPC_CLOCK=y
1148CONFIG_PPC_LIB_RHEAP=y 1217CONFIG_PPC_LIB_RHEAP=y
1149# CONFIG_VIRTUALIZATION is not set 1218# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/adder875_defconfig b/arch/powerpc/configs/adder875_defconfig
index 6740f2a3aa3d..63cd51fbb4b9 100644
--- a/arch/powerpc/configs/adder875_defconfig
+++ b/arch/powerpc/configs/adder875_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:08 2008 4# Thu Aug 21 00:52:00 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -109,10 +110,16 @@ CONFIG_SLUB=y
109# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
110# CONFIG_MARKERS is not set 111# CONFIG_MARKERS is not set
111CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y
112CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
113CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y
114# CONFIG_HAVE_DMA_ATTRS is not set 118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120CONFIG_HAVE_CLK=y
115CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
116CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
117# CONFIG_TINY_SHMEM is not set 124# CONFIG_TINY_SHMEM is not set
118CONFIG_BASE_SMALL=1 125CONFIG_BASE_SMALL=1
@@ -122,6 +129,7 @@ CONFIG_BLOCK=y
122# CONFIG_BLK_DEV_IO_TRACE is not set 129# CONFIG_BLK_DEV_IO_TRACE is not set
123# CONFIG_LSF is not set 130# CONFIG_LSF is not set
124# CONFIG_BLK_DEV_BSG is not set 131# CONFIG_BLK_DEV_BSG is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set
125 133
126# 134#
127# IO Schedulers 135# IO Schedulers
@@ -140,8 +148,6 @@ CONFIG_CLASSIC_RCU=y
140# 148#
141# Platform support 149# Platform support
142# 150#
143# CONFIG_PPC_MPC512x is not set
144# CONFIG_PPC_MPC5121 is not set
145# CONFIG_PPC_CELL is not set 151# CONFIG_PPC_CELL is not set
146# CONFIG_PPC_CELL_NATIVE is not set 152# CONFIG_PPC_CELL_NATIVE is not set
147CONFIG_CPM1=y 153CONFIG_CPM1=y
@@ -159,6 +165,7 @@ CONFIG_PPC_ADDER875=y
159# Generic MPC8xx Options 165# Generic MPC8xx Options
160# 166#
161CONFIG_8xx_COPYBACK=y 167CONFIG_8xx_COPYBACK=y
168# CONFIG_8xx_GPIO is not set
162# CONFIG_8xx_CPU6 is not set 169# CONFIG_8xx_CPU6 is not set
163CONFIG_8xx_CPU15=y 170CONFIG_8xx_CPU15=y
164CONFIG_NO_UCODE_PATCH=y 171CONFIG_NO_UCODE_PATCH=y
@@ -177,7 +184,6 @@ CONFIG_NO_UCODE_PATCH=y
177# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
178# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
179# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
180CONFIG_PPC_CPM_NEW_BINDING=y
181# CONFIG_FSL_ULI1575 is not set 187# CONFIG_FSL_ULI1575 is not set
182CONFIG_CPM=y 188CONFIG_CPM=y
183 189
@@ -218,6 +224,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
218# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
219CONFIG_PAGEFLAGS_EXTENDED=y 225CONFIG_PAGEFLAGS_EXTENDED=y
220CONFIG_SPLIT_PTLOCK_CPUS=4 226CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y
221# CONFIG_RESOURCES_64BIT is not set 228# CONFIG_RESOURCES_64BIT is not set
222CONFIG_ZONE_DMA_FLAG=1 229CONFIG_ZONE_DMA_FLAG=1
223CONFIG_BOUNCE=y 230CONFIG_BOUNCE=y
@@ -225,6 +232,7 @@ CONFIG_VIRT_TO_BUS=y
225CONFIG_FORCE_MAX_ZONEORDER=11 232CONFIG_FORCE_MAX_ZONEORDER=11
226# CONFIG_PROC_DEVICETREE is not set 233# CONFIG_PROC_DEVICETREE is not set
227# CONFIG_CMDLINE_BOOL is not set 234# CONFIG_CMDLINE_BOOL is not set
235CONFIG_EXTRA_TARGETS=""
228# CONFIG_PM is not set 236# CONFIG_PM is not set
229# CONFIG_SECCOMP is not set 237# CONFIG_SECCOMP is not set
230CONFIG_ISA_DMA_API=y 238CONFIG_ISA_DMA_API=y
@@ -257,10 +265,6 @@ CONFIG_PHYSICAL_START=0x00000000
257CONFIG_TASK_SIZE=0x80000000 265CONFIG_TASK_SIZE=0x80000000
258CONFIG_CONSISTENT_START=0xfd000000 266CONFIG_CONSISTENT_START=0xfd000000
259CONFIG_CONSISTENT_SIZE=0x00200000 267CONFIG_CONSISTENT_SIZE=0x00200000
260
261#
262# Networking
263#
264CONFIG_NET=y 268CONFIG_NET=y
265 269
266# 270#
@@ -443,7 +447,6 @@ CONFIG_HAVE_IDE=y
443# CONFIG_MD is not set 447# CONFIG_MD is not set
444# CONFIG_MACINTOSH_DRIVERS is not set 448# CONFIG_MACINTOSH_DRIVERS is not set
445CONFIG_NETDEVICES=y 449CONFIG_NETDEVICES=y
446# CONFIG_NETDEVICES_MULTIQUEUE is not set
447# CONFIG_DUMMY is not set 450# CONFIG_DUMMY is not set
448# CONFIG_BONDING is not set 451# CONFIG_BONDING is not set
449# CONFIG_MACVLAN is not set 452# CONFIG_MACVLAN is not set
@@ -547,6 +550,7 @@ CONFIG_SERIO_I8042=y
547CONFIG_SERIO_SERPORT=y 550CONFIG_SERIO_SERPORT=y
548CONFIG_SERIO_LIBPS2=y 551CONFIG_SERIO_LIBPS2=y
549# CONFIG_SERIO_RAW is not set 552# CONFIG_SERIO_RAW is not set
553# CONFIG_SERIO_XILINX_XPS_PS2 is not set
550# CONFIG_GAMEPORT is not set 554# CONFIG_GAMEPORT is not set
551 555
552# 556#
@@ -587,6 +591,8 @@ CONFIG_GEN_RTC=y
587# CONFIG_TCG_TPM is not set 591# CONFIG_TCG_TPM is not set
588# CONFIG_I2C is not set 592# CONFIG_I2C is not set
589# CONFIG_SPI is not set 593# CONFIG_SPI is not set
594CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
595# CONFIG_GPIOLIB is not set
590# CONFIG_W1 is not set 596# CONFIG_W1 is not set
591# CONFIG_POWER_SUPPLY is not set 597# CONFIG_POWER_SUPPLY is not set
592# CONFIG_HWMON is not set 598# CONFIG_HWMON is not set
@@ -602,8 +608,10 @@ CONFIG_SSB_POSSIBLE=y
602# 608#
603# Multifunction device drivers 609# Multifunction device drivers
604# 610#
611# CONFIG_MFD_CORE is not set
605# CONFIG_MFD_SM501 is not set 612# CONFIG_MFD_SM501 is not set
606# CONFIG_HTC_PASIC3 is not set 613# CONFIG_HTC_PASIC3 is not set
614# CONFIG_MFD_TMIO is not set
607 615
608# 616#
609# Multimedia devices 617# Multimedia devices
@@ -633,10 +641,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
633# Display device support 641# Display device support
634# 642#
635# CONFIG_DISPLAY_SUPPORT is not set 643# CONFIG_DISPLAY_SUPPORT is not set
636
637#
638# Sound
639#
640# CONFIG_SOUND is not set 644# CONFIG_SOUND is not set
641# CONFIG_HID_SUPPORT is not set 645# CONFIG_HID_SUPPORT is not set
642# CONFIG_USB_SUPPORT is not set 646# CONFIG_USB_SUPPORT is not set
@@ -706,6 +710,7 @@ CONFIG_TMPFS=y
706CONFIG_CRAMFS=y 710CONFIG_CRAMFS=y
707# CONFIG_VXFS_FS is not set 711# CONFIG_VXFS_FS is not set
708# CONFIG_MINIX_FS is not set 712# CONFIG_MINIX_FS is not set
713# CONFIG_OMFS_FS is not set
709# CONFIG_HPFS_FS is not set 714# CONFIG_HPFS_FS is not set
710# CONFIG_QNX4FS_FS is not set 715# CONFIG_QNX4FS_FS is not set
711# CONFIG_ROMFS_FS is not set 716# CONFIG_ROMFS_FS is not set
@@ -716,13 +721,12 @@ CONFIG_NFS_FS=y
716CONFIG_NFS_V3=y 721CONFIG_NFS_V3=y
717# CONFIG_NFS_V3_ACL is not set 722# CONFIG_NFS_V3_ACL is not set
718# CONFIG_NFS_V4 is not set 723# CONFIG_NFS_V4 is not set
719# CONFIG_NFSD is not set
720CONFIG_ROOT_NFS=y 724CONFIG_ROOT_NFS=y
725# CONFIG_NFSD is not set
721CONFIG_LOCKD=y 726CONFIG_LOCKD=y
722CONFIG_LOCKD_V4=y 727CONFIG_LOCKD_V4=y
723CONFIG_NFS_COMMON=y 728CONFIG_NFS_COMMON=y
724CONFIG_SUNRPC=y 729CONFIG_SUNRPC=y
725# CONFIG_SUNRPC_BIND34 is not set
726# CONFIG_RPCSEC_GSS_KRB5 is not set 730# CONFIG_RPCSEC_GSS_KRB5 is not set
727# CONFIG_RPCSEC_GSS_SPKM3 is not set 731# CONFIG_RPCSEC_GSS_SPKM3 is not set
728# CONFIG_SMB_FS is not set 732# CONFIG_SMB_FS is not set
@@ -761,6 +765,7 @@ CONFIG_MSDOS_PARTITION=y
761# CONFIG_GENERIC_FIND_FIRST_BIT is not set 765# CONFIG_GENERIC_FIND_FIRST_BIT is not set
762# CONFIG_CRC_CCITT is not set 766# CONFIG_CRC_CCITT is not set
763# CONFIG_CRC16 is not set 767# CONFIG_CRC16 is not set
768# CONFIG_CRC_T10DIF is not set
764# CONFIG_CRC_ITU_T is not set 769# CONFIG_CRC_ITU_T is not set
765# CONFIG_CRC32 is not set 770# CONFIG_CRC32 is not set
766# CONFIG_CRC7 is not set 771# CONFIG_CRC7 is not set
@@ -785,6 +790,8 @@ CONFIG_DEBUG_FS=y
785CONFIG_DEBUG_KERNEL=y 790CONFIG_DEBUG_KERNEL=y
786# CONFIG_DEBUG_SHIRQ is not set 791# CONFIG_DEBUG_SHIRQ is not set
787CONFIG_DETECT_SOFTLOCKUP=y 792CONFIG_DETECT_SOFTLOCKUP=y
793# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
794CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
788CONFIG_SCHED_DEBUG=y 795CONFIG_SCHED_DEBUG=y
789# CONFIG_SCHEDSTATS is not set 796# CONFIG_SCHEDSTATS is not set
790# CONFIG_TIMER_STATS is not set 797# CONFIG_TIMER_STATS is not set
@@ -800,16 +807,28 @@ CONFIG_DEBUG_BUGVERBOSE=y
800CONFIG_DEBUG_INFO=y 807CONFIG_DEBUG_INFO=y
801# CONFIG_DEBUG_VM is not set 808# CONFIG_DEBUG_VM is not set
802# CONFIG_DEBUG_WRITECOUNT is not set 809# CONFIG_DEBUG_WRITECOUNT is not set
810# CONFIG_DEBUG_MEMORY_INIT is not set
803# CONFIG_DEBUG_LIST is not set 811# CONFIG_DEBUG_LIST is not set
804# CONFIG_DEBUG_SG is not set 812# CONFIG_DEBUG_SG is not set
805# CONFIG_BOOT_PRINTK_DELAY is not set 813# CONFIG_BOOT_PRINTK_DELAY is not set
814# CONFIG_RCU_TORTURE_TEST is not set
806# CONFIG_BACKTRACE_SELF_TEST is not set 815# CONFIG_BACKTRACE_SELF_TEST is not set
807# CONFIG_FAULT_INJECTION is not set 816# CONFIG_FAULT_INJECTION is not set
817# CONFIG_LATENCYTOP is not set
818CONFIG_HAVE_FTRACE=y
819CONFIG_HAVE_DYNAMIC_FTRACE=y
820# CONFIG_FTRACE is not set
821# CONFIG_SCHED_TRACER is not set
822# CONFIG_CONTEXT_SWITCH_TRACER is not set
808# CONFIG_SAMPLES is not set 823# CONFIG_SAMPLES is not set
824CONFIG_HAVE_ARCH_KGDB=y
825# CONFIG_KGDB is not set
809# CONFIG_DEBUG_STACKOVERFLOW is not set 826# CONFIG_DEBUG_STACKOVERFLOW is not set
810# CONFIG_DEBUG_STACK_USAGE is not set 827# CONFIG_DEBUG_STACK_USAGE is not set
811# CONFIG_DEBUG_PAGEALLOC is not set 828# CONFIG_DEBUG_PAGEALLOC is not set
812# CONFIG_DEBUGGER is not set 829# CONFIG_CODE_PATCHING_SELFTEST is not set
830# CONFIG_FTR_FIXUP_SELFTEST is not set
831# CONFIG_XMON is not set
813# CONFIG_IRQSTACKS is not set 832# CONFIG_IRQSTACKS is not set
814# CONFIG_VIRQ_DEBUG is not set 833# CONFIG_VIRQ_DEBUG is not set
815# CONFIG_BDI_SWITCH is not set 834# CONFIG_BDI_SWITCH is not set
@@ -822,6 +841,6 @@ CONFIG_DEBUG_INFO=y
822# CONFIG_SECURITY is not set 841# CONFIG_SECURITY is not set
823# CONFIG_SECURITY_FILE_CAPABILITIES is not set 842# CONFIG_SECURITY_FILE_CAPABILITIES is not set
824# CONFIG_CRYPTO is not set 843# CONFIG_CRYPTO is not set
825# CONFIG_PPC_CLOCK is not set 844CONFIG_PPC_CLOCK=y
826CONFIG_PPC_LIB_RHEAP=y 845CONFIG_PPC_LIB_RHEAP=y
827# CONFIG_VIRTUALIZATION is not set 846# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/c2k_defconfig b/arch/powerpc/configs/c2k_defconfig
index dc599c7e97d5..c16521ffb477 100644
--- a/arch/powerpc/configs/c2k_defconfig
+++ b/arch/powerpc/configs/c2k_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.26-rc2 3# Linux kernel version: 2.6.27-rc4
4# Thu May 15 11:00:14 2008 4# Thu Aug 21 00:52:02 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -97,7 +98,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
97CONFIG_SYSCTL=y 98CONFIG_SYSCTL=y
98# CONFIG_EMBEDDED is not set 99# CONFIG_EMBEDDED is not set
99CONFIG_SYSCTL_SYSCALL=y 100CONFIG_SYSCTL_SYSCALL=y
100CONFIG_SYSCTL_SYSCALL_CHECK=y
101CONFIG_KALLSYMS=y 101CONFIG_KALLSYMS=y
102# CONFIG_KALLSYMS_ALL is not set 102# CONFIG_KALLSYMS_ALL is not set
103CONFIG_KALLSYMS_EXTRA_PASS=y 103CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -124,11 +124,17 @@ CONFIG_PROFILING=y
124CONFIG_OPROFILE=m 124CONFIG_OPROFILE=m
125CONFIG_HAVE_OPROFILE=y 125CONFIG_HAVE_OPROFILE=y
126CONFIG_KPROBES=y 126CONFIG_KPROBES=y
127CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
127CONFIG_KRETPROBES=y 128CONFIG_KRETPROBES=y
129CONFIG_HAVE_IOREMAP_PROT=y
128CONFIG_HAVE_KPROBES=y 130CONFIG_HAVE_KPROBES=y
129CONFIG_HAVE_KRETPROBES=y 131CONFIG_HAVE_KRETPROBES=y
132CONFIG_HAVE_ARCH_TRACEHOOK=y
130# CONFIG_HAVE_DMA_ATTRS is not set 133# CONFIG_HAVE_DMA_ATTRS is not set
134# CONFIG_USE_GENERIC_SMP_HELPERS is not set
135# CONFIG_HAVE_CLK is not set
131CONFIG_PROC_PAGE_MONITOR=y 136CONFIG_PROC_PAGE_MONITOR=y
137# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
132CONFIG_SLABINFO=y 138CONFIG_SLABINFO=y
133CONFIG_RT_MUTEXES=y 139CONFIG_RT_MUTEXES=y
134# CONFIG_TINY_SHMEM is not set 140# CONFIG_TINY_SHMEM is not set
@@ -145,6 +151,7 @@ CONFIG_LBD=y
145# CONFIG_BLK_DEV_IO_TRACE is not set 151# CONFIG_BLK_DEV_IO_TRACE is not set
146# CONFIG_LSF is not set 152# CONFIG_LSF is not set
147# CONFIG_BLK_DEV_BSG is not set 153# CONFIG_BLK_DEV_BSG is not set
154# CONFIG_BLK_DEV_INTEGRITY is not set
148 155
149# 156#
150# IO Schedulers 157# IO Schedulers
@@ -164,19 +171,18 @@ CONFIG_CLASSIC_RCU=y
164# Platform support 171# Platform support
165# 172#
166CONFIG_PPC_MULTIPLATFORM=y 173CONFIG_PPC_MULTIPLATFORM=y
167# CONFIG_PPC_82xx is not set
168# CONFIG_PPC_83xx is not set
169# CONFIG_PPC_86xx is not set
170CONFIG_CLASSIC32=y 174CONFIG_CLASSIC32=y
171# CONFIG_PPC_CHRP is not set 175# CONFIG_PPC_CHRP is not set
172# CONFIG_PPC_MPC512x is not set
173# CONFIG_PPC_MPC5121 is not set
174# CONFIG_MPC5121_ADS is not set 176# CONFIG_MPC5121_ADS is not set
177# CONFIG_MPC5121_GENERIC is not set
175# CONFIG_PPC_MPC52xx is not set 178# CONFIG_PPC_MPC52xx is not set
176# CONFIG_PPC_PMAC is not set 179# CONFIG_PPC_PMAC is not set
177# CONFIG_PPC_CELL is not set 180# CONFIG_PPC_CELL is not set
178# CONFIG_PPC_CELL_NATIVE is not set 181# CONFIG_PPC_CELL_NATIVE is not set
182# CONFIG_PPC_82xx is not set
179# CONFIG_PQ2ADS is not set 183# CONFIG_PQ2ADS is not set
184# CONFIG_PPC_83xx is not set
185# CONFIG_PPC_86xx is not set
180CONFIG_EMBEDDED6xx=y 186CONFIG_EMBEDDED6xx=y
181# CONFIG_LINKSTATION is not set 187# CONFIG_LINKSTATION is not set
182# CONFIG_STORCENTER is not set 188# CONFIG_STORCENTER is not set
@@ -253,6 +259,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
253# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 259# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
254CONFIG_PAGEFLAGS_EXTENDED=y 260CONFIG_PAGEFLAGS_EXTENDED=y
255CONFIG_SPLIT_PTLOCK_CPUS=4 261CONFIG_SPLIT_PTLOCK_CPUS=4
262CONFIG_MIGRATION=y
256# CONFIG_RESOURCES_64BIT is not set 263# CONFIG_RESOURCES_64BIT is not set
257CONFIG_ZONE_DMA_FLAG=1 264CONFIG_ZONE_DMA_FLAG=1
258CONFIG_BOUNCE=y 265CONFIG_BOUNCE=y
@@ -260,6 +267,7 @@ CONFIG_VIRT_TO_BUS=y
260CONFIG_FORCE_MAX_ZONEORDER=11 267CONFIG_FORCE_MAX_ZONEORDER=11
261# CONFIG_PROC_DEVICETREE is not set 268# CONFIG_PROC_DEVICETREE is not set
262# CONFIG_CMDLINE_BOOL is not set 269# CONFIG_CMDLINE_BOOL is not set
270CONFIG_EXTRA_TARGETS=""
263CONFIG_PM=y 271CONFIG_PM=y
264# CONFIG_PM_DEBUG is not set 272# CONFIG_PM_DEBUG is not set
265CONFIG_SECCOMP=y 273CONFIG_SECCOMP=y
@@ -301,10 +309,6 @@ CONFIG_PHYSICAL_START=0x00000000
301CONFIG_TASK_SIZE=0xc0000000 309CONFIG_TASK_SIZE=0xc0000000
302CONFIG_CONSISTENT_START=0xff100000 310CONFIG_CONSISTENT_START=0xff100000
303CONFIG_CONSISTENT_SIZE=0x00200000 311CONFIG_CONSISTENT_SIZE=0x00200000
304
305#
306# Networking
307#
308CONFIG_NET=y 312CONFIG_NET=y
309 313
310# 314#
@@ -318,6 +322,7 @@ CONFIG_XFRM_USER=y
318# CONFIG_XFRM_SUB_POLICY is not set 322# CONFIG_XFRM_SUB_POLICY is not set
319# CONFIG_XFRM_MIGRATE is not set 323# CONFIG_XFRM_MIGRATE is not set
320# CONFIG_XFRM_STATISTICS is not set 324# CONFIG_XFRM_STATISTICS is not set
325CONFIG_XFRM_IPCOMP=m
321CONFIG_NET_KEY=m 326CONFIG_NET_KEY=m
322# CONFIG_NET_KEY_MIGRATE is not set 327# CONFIG_NET_KEY_MIGRATE is not set
323CONFIG_INET=y 328CONFIG_INET=y
@@ -349,7 +354,7 @@ CONFIG_INET_TUNNEL=m
349CONFIG_INET_XFRM_MODE_TRANSPORT=y 354CONFIG_INET_XFRM_MODE_TRANSPORT=y
350CONFIG_INET_XFRM_MODE_TUNNEL=y 355CONFIG_INET_XFRM_MODE_TUNNEL=y
351CONFIG_INET_XFRM_MODE_BEET=y 356CONFIG_INET_XFRM_MODE_BEET=y
352# CONFIG_INET_LRO is not set 357CONFIG_INET_LRO=m
353CONFIG_INET_DIAG=y 358CONFIG_INET_DIAG=y
354CONFIG_INET_TCP_DIAG=y 359CONFIG_INET_TCP_DIAG=y
355# CONFIG_TCP_CONG_ADVANCED is not set 360# CONFIG_TCP_CONG_ADVANCED is not set
@@ -472,6 +477,7 @@ CONFIG_IP_NF_MANGLE=m
472CONFIG_IP_NF_TARGET_ECN=m 477CONFIG_IP_NF_TARGET_ECN=m
473# CONFIG_IP_NF_TARGET_TTL is not set 478# CONFIG_IP_NF_TARGET_TTL is not set
474CONFIG_IP_NF_RAW=m 479CONFIG_IP_NF_RAW=m
480# CONFIG_IP_NF_SECURITY is not set
475CONFIG_IP_NF_ARPTABLES=m 481CONFIG_IP_NF_ARPTABLES=m
476CONFIG_IP_NF_ARPFILTER=m 482CONFIG_IP_NF_ARPFILTER=m
477CONFIG_IP_NF_ARP_MANGLE=m 483CONFIG_IP_NF_ARP_MANGLE=m
@@ -495,6 +501,7 @@ CONFIG_IP6_NF_TARGET_LOG=m
495CONFIG_IP6_NF_MANGLE=m 501CONFIG_IP6_NF_MANGLE=m
496# CONFIG_IP6_NF_TARGET_HL is not set 502# CONFIG_IP6_NF_TARGET_HL is not set
497CONFIG_IP6_NF_RAW=m 503CONFIG_IP6_NF_RAW=m
504# CONFIG_IP6_NF_SECURITY is not set
498 505
499# 506#
500# Bridge: Netfilter Configuration 507# Bridge: Netfilter Configuration
@@ -507,6 +514,7 @@ CONFIG_BRIDGE_EBT_802_3=m
507CONFIG_BRIDGE_EBT_AMONG=m 514CONFIG_BRIDGE_EBT_AMONG=m
508CONFIG_BRIDGE_EBT_ARP=m 515CONFIG_BRIDGE_EBT_ARP=m
509CONFIG_BRIDGE_EBT_IP=m 516CONFIG_BRIDGE_EBT_IP=m
517# CONFIG_BRIDGE_EBT_IP6 is not set
510CONFIG_BRIDGE_EBT_LIMIT=m 518CONFIG_BRIDGE_EBT_LIMIT=m
511CONFIG_BRIDGE_EBT_MARK=m 519CONFIG_BRIDGE_EBT_MARK=m
512CONFIG_BRIDGE_EBT_PKTTYPE=m 520CONFIG_BRIDGE_EBT_PKTTYPE=m
@@ -535,8 +543,10 @@ CONFIG_ATM_LANE=m
535# CONFIG_ATM_MPOA is not set 543# CONFIG_ATM_MPOA is not set
536CONFIG_ATM_BR2684=m 544CONFIG_ATM_BR2684=m
537# CONFIG_ATM_BR2684_IPFILTER is not set 545# CONFIG_ATM_BR2684_IPFILTER is not set
546CONFIG_STP=m
538CONFIG_BRIDGE=m 547CONFIG_BRIDGE=m
539CONFIG_VLAN_8021Q=m 548CONFIG_VLAN_8021Q=m
549# CONFIG_VLAN_8021Q_GVRP is not set
540# CONFIG_DECNET is not set 550# CONFIG_DECNET is not set
541CONFIG_LLC=m 551CONFIG_LLC=m
542# CONFIG_LLC2 is not set 552# CONFIG_LLC2 is not set
@@ -556,7 +566,6 @@ CONFIG_NET_SCH_HTB=m
556CONFIG_NET_SCH_HFSC=m 566CONFIG_NET_SCH_HFSC=m
557CONFIG_NET_SCH_ATM=m 567CONFIG_NET_SCH_ATM=m
558CONFIG_NET_SCH_PRIO=m 568CONFIG_NET_SCH_PRIO=m
559# CONFIG_NET_SCH_RR is not set
560CONFIG_NET_SCH_RED=m 569CONFIG_NET_SCH_RED=m
561CONFIG_NET_SCH_SFQ=m 570CONFIG_NET_SCH_SFQ=m
562CONFIG_NET_SCH_TEQL=m 571CONFIG_NET_SCH_TEQL=m
@@ -601,7 +610,6 @@ CONFIG_BT_RFCOMM_TTY=y
601CONFIG_BT_BNEP=m 610CONFIG_BT_BNEP=m
602CONFIG_BT_BNEP_MC_FILTER=y 611CONFIG_BT_BNEP_MC_FILTER=y
603CONFIG_BT_BNEP_PROTO_FILTER=y 612CONFIG_BT_BNEP_PROTO_FILTER=y
604CONFIG_BT_CMTP=m
605CONFIG_BT_HIDP=m 613CONFIG_BT_HIDP=m
606 614
607# 615#
@@ -609,6 +617,7 @@ CONFIG_BT_HIDP=m
609# 617#
610CONFIG_BT_HCIUSB=m 618CONFIG_BT_HCIUSB=m
611CONFIG_BT_HCIUSB_SCO=y 619CONFIG_BT_HCIUSB_SCO=y
620# CONFIG_BT_HCIBTUSB is not set
612CONFIG_BT_HCIUART=m 621CONFIG_BT_HCIUART=m
613CONFIG_BT_HCIUART_H4=y 622CONFIG_BT_HCIUART_H4=y
614CONFIG_BT_HCIUART_BCSP=y 623CONFIG_BT_HCIUART_BCSP=y
@@ -625,6 +634,7 @@ CONFIG_FIB_RULES=y
625# 634#
626# CONFIG_CFG80211 is not set 635# CONFIG_CFG80211 is not set
627CONFIG_WIRELESS_EXT=y 636CONFIG_WIRELESS_EXT=y
637CONFIG_WIRELESS_EXT_SYSFS=y
628# CONFIG_MAC80211 is not set 638# CONFIG_MAC80211 is not set
629CONFIG_IEEE80211=m 639CONFIG_IEEE80211=m
630# CONFIG_IEEE80211_DEBUG is not set 640# CONFIG_IEEE80211_DEBUG is not set
@@ -645,6 +655,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
645CONFIG_STANDALONE=y 655CONFIG_STANDALONE=y
646CONFIG_PREVENT_FIRMWARE_BUILD=y 656CONFIG_PREVENT_FIRMWARE_BUILD=y
647CONFIG_FW_LOADER=y 657CONFIG_FW_LOADER=y
658CONFIG_FIRMWARE_IN_KERNEL=y
659CONFIG_EXTRA_FIRMWARE=""
648# CONFIG_DEBUG_DRIVER is not set 660# CONFIG_DEBUG_DRIVER is not set
649# CONFIG_DEBUG_DEVRES is not set 661# CONFIG_DEBUG_DEVRES is not set
650# CONFIG_SYS_HYPERVISOR is not set 662# CONFIG_SYS_HYPERVISOR is not set
@@ -749,6 +761,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
749# CONFIG_BLK_DEV_XIP is not set 761# CONFIG_BLK_DEV_XIP is not set
750# CONFIG_CDROM_PKTCDVD is not set 762# CONFIG_CDROM_PKTCDVD is not set
751# CONFIG_ATA_OVER_ETH is not set 763# CONFIG_ATA_OVER_ETH is not set
764# CONFIG_BLK_DEV_HD is not set
752# CONFIG_MISC_DEVICES is not set 765# CONFIG_MISC_DEVICES is not set
753CONFIG_HAVE_IDE=y 766CONFIG_HAVE_IDE=y
754# CONFIG_IDE is not set 767# CONFIG_IDE is not set
@@ -844,6 +857,7 @@ CONFIG_SCSI_LPFC=m
844# CONFIG_SCSI_NSP32 is not set 857# CONFIG_SCSI_NSP32 is not set
845# CONFIG_SCSI_DEBUG is not set 858# CONFIG_SCSI_DEBUG is not set
846# CONFIG_SCSI_SRP is not set 859# CONFIG_SCSI_SRP is not set
860# CONFIG_SCSI_DH is not set
847# CONFIG_ATA is not set 861# CONFIG_ATA is not set
848# CONFIG_MD is not set 862# CONFIG_MD is not set
849# CONFIG_FUSION is not set 863# CONFIG_FUSION is not set
@@ -851,12 +865,15 @@ CONFIG_SCSI_LPFC=m
851# 865#
852# IEEE 1394 (FireWire) support 866# IEEE 1394 (FireWire) support
853# 867#
868
869#
870# Enable only one of the two stacks, unless you know what you are doing
871#
854# CONFIG_FIREWIRE is not set 872# CONFIG_FIREWIRE is not set
855# CONFIG_IEEE1394 is not set 873# CONFIG_IEEE1394 is not set
856# CONFIG_I2O is not set 874# CONFIG_I2O is not set
857# CONFIG_MACINTOSH_DRIVERS is not set 875# CONFIG_MACINTOSH_DRIVERS is not set
858CONFIG_NETDEVICES=y 876CONFIG_NETDEVICES=y
859# CONFIG_NETDEVICES_MULTIQUEUE is not set
860CONFIG_DUMMY=m 877CONFIG_DUMMY=m
861CONFIG_BONDING=m 878CONFIG_BONDING=m
862# CONFIG_MACVLAN is not set 879# CONFIG_MACVLAN is not set
@@ -900,7 +917,6 @@ CONFIG_NETDEV_1000=y
900# CONFIG_DL2K is not set 917# CONFIG_DL2K is not set
901# CONFIG_E1000 is not set 918# CONFIG_E1000 is not set
902# CONFIG_E1000E is not set 919# CONFIG_E1000E is not set
903# CONFIG_E1000E_ENABLED is not set
904# CONFIG_IP1000 is not set 920# CONFIG_IP1000 is not set
905# CONFIG_IGB is not set 921# CONFIG_IGB is not set
906# CONFIG_NS83820 is not set 922# CONFIG_NS83820 is not set
@@ -916,6 +932,7 @@ CONFIG_NETDEV_1000=y
916CONFIG_MV643XX_ETH=y 932CONFIG_MV643XX_ETH=y
917# CONFIG_QLA3XXX is not set 933# CONFIG_QLA3XXX is not set
918# CONFIG_ATL1 is not set 934# CONFIG_ATL1 is not set
935# CONFIG_ATL1E is not set
919# CONFIG_NETDEV_10000 is not set 936# CONFIG_NETDEV_10000 is not set
920# CONFIG_TR is not set 937# CONFIG_TR is not set
921 938
@@ -940,112 +957,13 @@ CONFIG_MV643XX_ETH=y
940# CONFIG_HIPPI is not set 957# CONFIG_HIPPI is not set
941# CONFIG_PPP is not set 958# CONFIG_PPP is not set
942# CONFIG_SLIP is not set 959# CONFIG_SLIP is not set
943CONFIG_SLHC=m
944# CONFIG_NET_FC is not set 960# CONFIG_NET_FC is not set
945CONFIG_NETCONSOLE=m 961CONFIG_NETCONSOLE=m
946# CONFIG_NETCONSOLE_DYNAMIC is not set 962# CONFIG_NETCONSOLE_DYNAMIC is not set
947CONFIG_NETPOLL=y 963CONFIG_NETPOLL=y
948CONFIG_NETPOLL_TRAP=y 964CONFIG_NETPOLL_TRAP=y
949CONFIG_NET_POLL_CONTROLLER=y 965CONFIG_NET_POLL_CONTROLLER=y
950CONFIG_ISDN=m 966# CONFIG_ISDN is not set
951CONFIG_ISDN_I4L=m
952CONFIG_ISDN_PPP=y
953CONFIG_ISDN_PPP_VJ=y
954CONFIG_ISDN_MPP=y
955CONFIG_IPPP_FILTER=y
956# CONFIG_ISDN_PPP_BSDCOMP is not set
957CONFIG_ISDN_AUDIO=y
958CONFIG_ISDN_TTY_FAX=y
959
960#
961# ISDN feature submodules
962#
963CONFIG_ISDN_DRV_LOOP=m
964# CONFIG_ISDN_DIVERSION is not set
965
966#
967# ISDN4Linux hardware drivers
968#
969
970#
971# Passive cards
972#
973CONFIG_ISDN_DRV_HISAX=m
974
975#
976# D-channel protocol features
977#
978CONFIG_HISAX_EURO=y
979CONFIG_DE_AOC=y
980CONFIG_HISAX_NO_SENDCOMPLETE=y
981CONFIG_HISAX_NO_LLC=y
982CONFIG_HISAX_NO_KEYPAD=y
983CONFIG_HISAX_1TR6=y
984CONFIG_HISAX_NI1=y
985CONFIG_HISAX_MAX_CARDS=8
986
987#
988# HiSax supported cards
989#
990CONFIG_HISAX_16_3=y
991CONFIG_HISAX_S0BOX=y
992CONFIG_HISAX_FRITZPCI=y
993CONFIG_HISAX_AVM_A1_PCMCIA=y
994CONFIG_HISAX_ELSA=y
995CONFIG_HISAX_DIEHLDIVA=y
996CONFIG_HISAX_SEDLBAUER=y
997CONFIG_HISAX_NICCY=y
998CONFIG_HISAX_BKM_A4T=y
999CONFIG_HISAX_SCT_QUADRO=y
1000CONFIG_HISAX_GAZEL=y
1001CONFIG_HISAX_W6692=y
1002CONFIG_HISAX_HFC_SX=y
1003# CONFIG_HISAX_DEBUG is not set
1004
1005#
1006# HiSax PCMCIA card service modules
1007#
1008
1009#
1010# HiSax sub driver modules
1011#
1012CONFIG_HISAX_ST5481=m
1013CONFIG_HISAX_HFCUSB=m
1014# CONFIG_HISAX_HFC4S8S is not set
1015CONFIG_HISAX_FRITZ_PCIPNP=m
1016CONFIG_HISAX_HDLC=y
1017
1018#
1019# Active cards
1020#
1021CONFIG_HYSDN=m
1022CONFIG_HYSDN_CAPI=y
1023# CONFIG_ISDN_DRV_GIGASET is not set
1024CONFIG_ISDN_CAPI=m
1025CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
1026CONFIG_CAPI_TRACE=y
1027CONFIG_ISDN_CAPI_MIDDLEWARE=y
1028CONFIG_ISDN_CAPI_CAPI20=m
1029CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
1030CONFIG_ISDN_CAPI_CAPIFS=m
1031CONFIG_ISDN_CAPI_CAPIDRV=m
1032
1033#
1034# CAPI hardware drivers
1035#
1036CONFIG_CAPI_AVM=y
1037CONFIG_ISDN_DRV_AVMB1_B1PCI=m
1038CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
1039CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
1040CONFIG_ISDN_DRV_AVMB1_T1PCI=m
1041CONFIG_ISDN_DRV_AVMB1_C4=m
1042CONFIG_CAPI_EICON=y
1043CONFIG_ISDN_DIVAS=m
1044CONFIG_ISDN_DIVAS_BRIPCI=y
1045CONFIG_ISDN_DIVAS_PRIPCI=y
1046CONFIG_ISDN_DIVAS_DIVACAPI=m
1047CONFIG_ISDN_DIVAS_USERIDI=m
1048CONFIG_ISDN_DIVAS_MAINT=m
1049# CONFIG_PHONE is not set 967# CONFIG_PHONE is not set
1050 968
1051# 969#
@@ -1092,6 +1010,7 @@ CONFIG_INPUT_UINPUT=m
1092# Character devices 1010# Character devices
1093# 1011#
1094CONFIG_VT=y 1012CONFIG_VT=y
1013CONFIG_CONSOLE_TRANSLATIONS=y
1095CONFIG_VT_CONSOLE=y 1014CONFIG_VT_CONSOLE=y
1096CONFIG_HW_CONSOLE=y 1015CONFIG_HW_CONSOLE=y
1097# CONFIG_VT_HW_CONSOLE_BINDING is not set 1016# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -1145,44 +1064,65 @@ CONFIG_DEVPORT=y
1145CONFIG_I2C=m 1064CONFIG_I2C=m
1146CONFIG_I2C_BOARDINFO=y 1065CONFIG_I2C_BOARDINFO=y
1147CONFIG_I2C_CHARDEV=m 1066CONFIG_I2C_CHARDEV=m
1067CONFIG_I2C_HELPER_AUTO=y
1148 1068
1149# 1069#
1150# I2C Hardware Bus support 1070# I2C Hardware Bus support
1151# 1071#
1072
1073#
1074# PC SMBus host controller drivers
1075#
1152# CONFIG_I2C_ALI1535 is not set 1076# CONFIG_I2C_ALI1535 is not set
1153# CONFIG_I2C_ALI1563 is not set 1077# CONFIG_I2C_ALI1563 is not set
1154# CONFIG_I2C_ALI15X3 is not set 1078# CONFIG_I2C_ALI15X3 is not set
1155# CONFIG_I2C_AMD756 is not set 1079# CONFIG_I2C_AMD756 is not set
1156# CONFIG_I2C_AMD8111 is not set 1080# CONFIG_I2C_AMD8111 is not set
1157# CONFIG_I2C_I801 is not set 1081# CONFIG_I2C_I801 is not set
1158# CONFIG_I2C_I810 is not set 1082# CONFIG_I2C_ISCH is not set
1159# CONFIG_I2C_PIIX4 is not set 1083# CONFIG_I2C_PIIX4 is not set
1160# CONFIG_I2C_MPC is not set
1161# CONFIG_I2C_NFORCE2 is not set 1084# CONFIG_I2C_NFORCE2 is not set
1162# CONFIG_I2C_OCORES is not set
1163# CONFIG_I2C_PARPORT_LIGHT is not set
1164# CONFIG_I2C_PROSAVAGE is not set
1165# CONFIG_I2C_SAVAGE4 is not set
1166# CONFIG_I2C_SIMTEC is not set
1167# CONFIG_I2C_SIS5595 is not set 1085# CONFIG_I2C_SIS5595 is not set
1168# CONFIG_I2C_SIS630 is not set 1086# CONFIG_I2C_SIS630 is not set
1169# CONFIG_I2C_SIS96X is not set 1087# CONFIG_I2C_SIS96X is not set
1170# CONFIG_I2C_TAOS_EVM is not set
1171# CONFIG_I2C_STUB is not set
1172# CONFIG_I2C_TINY_USB is not set
1173# CONFIG_I2C_VIA is not set 1088# CONFIG_I2C_VIA is not set
1174# CONFIG_I2C_VIAPRO is not set 1089# CONFIG_I2C_VIAPRO is not set
1090
1091#
1092# I2C system bus drivers (mostly embedded / system-on-chip)
1093#
1094# CONFIG_I2C_MPC is not set
1095CONFIG_I2C_MV64XXX=m
1096# CONFIG_I2C_OCORES is not set
1097# CONFIG_I2C_SIMTEC is not set
1098
1099#
1100# External I2C/SMBus adapter drivers
1101#
1102# CONFIG_I2C_PARPORT_LIGHT is not set
1103# CONFIG_I2C_TAOS_EVM is not set
1104# CONFIG_I2C_TINY_USB is not set
1105
1106#
1107# Graphics adapter I2C/DDC channel drivers
1108#
1175# CONFIG_I2C_VOODOO3 is not set 1109# CONFIG_I2C_VOODOO3 is not set
1110
1111#
1112# Other I2C/SMBus bus drivers
1113#
1176# CONFIG_I2C_PCA_PLATFORM is not set 1114# CONFIG_I2C_PCA_PLATFORM is not set
1177CONFIG_I2C_MV64XXX=m 1115# CONFIG_I2C_STUB is not set
1178 1116
1179# 1117#
1180# Miscellaneous I2C Chip support 1118# Miscellaneous I2C Chip support
1181# 1119#
1182# CONFIG_DS1682 is not set 1120# CONFIG_DS1682 is not set
1121# CONFIG_AT24 is not set
1183CONFIG_SENSORS_EEPROM=m 1122CONFIG_SENSORS_EEPROM=m
1184CONFIG_SENSORS_PCF8574=m 1123CONFIG_SENSORS_PCF8574=m
1185# CONFIG_PCF8575 is not set 1124# CONFIG_PCF8575 is not set
1125# CONFIG_SENSORS_PCA9539 is not set
1186CONFIG_SENSORS_PCF8591=m 1126CONFIG_SENSORS_PCF8591=m
1187# CONFIG_SENSORS_MAX6875 is not set 1127# CONFIG_SENSORS_MAX6875 is not set
1188# CONFIG_SENSORS_TSL2550 is not set 1128# CONFIG_SENSORS_TSL2550 is not set
@@ -1191,10 +1131,13 @@ CONFIG_SENSORS_PCF8591=m
1191# CONFIG_I2C_DEBUG_BUS is not set 1131# CONFIG_I2C_DEBUG_BUS is not set
1192# CONFIG_I2C_DEBUG_CHIP is not set 1132# CONFIG_I2C_DEBUG_CHIP is not set
1193# CONFIG_SPI is not set 1133# CONFIG_SPI is not set
1134CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1135# CONFIG_GPIOLIB is not set
1194# CONFIG_W1 is not set 1136# CONFIG_W1 is not set
1195# CONFIG_POWER_SUPPLY is not set 1137# CONFIG_POWER_SUPPLY is not set
1196CONFIG_HWMON=m 1138CONFIG_HWMON=m
1197CONFIG_HWMON_VID=m 1139CONFIG_HWMON_VID=m
1140# CONFIG_SENSORS_AD7414 is not set
1198# CONFIG_SENSORS_AD7418 is not set 1141# CONFIG_SENSORS_AD7418 is not set
1199CONFIG_SENSORS_ADM1021=m 1142CONFIG_SENSORS_ADM1021=m
1200CONFIG_SENSORS_ADM1025=m 1143CONFIG_SENSORS_ADM1025=m
@@ -1255,6 +1198,7 @@ CONFIG_WATCHDOG=y
1255# Watchdog Device Drivers 1198# Watchdog Device Drivers
1256# 1199#
1257CONFIG_SOFT_WATCHDOG=m 1200CONFIG_SOFT_WATCHDOG=m
1201# CONFIG_ALIM7101_WDT is not set
1258# CONFIG_MV64X60_WDT is not set 1202# CONFIG_MV64X60_WDT is not set
1259 1203
1260# 1204#
@@ -1278,8 +1222,10 @@ CONFIG_SSB_POSSIBLE=y
1278# 1222#
1279# Multifunction device drivers 1223# Multifunction device drivers
1280# 1224#
1225# CONFIG_MFD_CORE is not set
1281# CONFIG_MFD_SM501 is not set 1226# CONFIG_MFD_SM501 is not set
1282# CONFIG_HTC_PASIC3 is not set 1227# CONFIG_HTC_PASIC3 is not set
1228# CONFIG_MFD_TMIO is not set
1283 1229
1284# 1230#
1285# Multimedia devices 1231# Multimedia devices
@@ -1290,6 +1236,7 @@ CONFIG_SSB_POSSIBLE=y
1290# 1236#
1291# CONFIG_VIDEO_DEV is not set 1237# CONFIG_VIDEO_DEV is not set
1292# CONFIG_DVB_CORE is not set 1238# CONFIG_DVB_CORE is not set
1239# CONFIG_VIDEO_MEDIA is not set
1293 1240
1294# 1241#
1295# Multimedia drivers 1242# Multimedia drivers
@@ -1316,10 +1263,6 @@ CONFIG_SSB_POSSIBLE=y
1316# 1263#
1317# CONFIG_VGA_CONSOLE is not set 1264# CONFIG_VGA_CONSOLE is not set
1318CONFIG_DUMMY_CONSOLE=y 1265CONFIG_DUMMY_CONSOLE=y
1319
1320#
1321# Sound
1322#
1323# CONFIG_SOUND is not set 1266# CONFIG_SOUND is not set
1324# CONFIG_HID_SUPPORT is not set 1267# CONFIG_HID_SUPPORT is not set
1325CONFIG_HID=m 1268CONFIG_HID=m
@@ -1339,6 +1282,7 @@ CONFIG_USB_DEVICEFS=y
1339# CONFIG_USB_DYNAMIC_MINORS is not set 1282# CONFIG_USB_DYNAMIC_MINORS is not set
1340CONFIG_USB_SUSPEND=y 1283CONFIG_USB_SUSPEND=y
1341# CONFIG_USB_OTG is not set 1284# CONFIG_USB_OTG is not set
1285CONFIG_USB_MON=y
1342 1286
1343# 1287#
1344# USB Host Controller Drivers 1288# USB Host Controller Drivers
@@ -1363,10 +1307,15 @@ CONFIG_USB_UHCI_HCD=m
1363# CONFIG_USB_R8A66597_HCD is not set 1307# CONFIG_USB_R8A66597_HCD is not set
1364 1308
1365# 1309#
1310# Enable Host or Gadget support to see Inventra options
1311#
1312
1313#
1366# USB Device Class drivers 1314# USB Device Class drivers
1367# 1315#
1368CONFIG_USB_ACM=m 1316CONFIG_USB_ACM=m
1369CONFIG_USB_PRINTER=m 1317CONFIG_USB_PRINTER=m
1318# CONFIG_USB_WDM is not set
1370 1319
1371# 1320#
1372# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1321# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1388,6 +1337,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1388# CONFIG_USB_STORAGE_ALAUDA is not set 1337# CONFIG_USB_STORAGE_ALAUDA is not set
1389# CONFIG_USB_STORAGE_ONETOUCH is not set 1338# CONFIG_USB_STORAGE_ONETOUCH is not set
1390# CONFIG_USB_STORAGE_KARMA is not set 1339# CONFIG_USB_STORAGE_KARMA is not set
1340# CONFIG_USB_STORAGE_SIERRA is not set
1391# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1341# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1392# CONFIG_USB_LIBUSUAL is not set 1342# CONFIG_USB_LIBUSUAL is not set
1393 1343
@@ -1396,7 +1346,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1396# 1346#
1397CONFIG_USB_MDC800=m 1347CONFIG_USB_MDC800=m
1398CONFIG_USB_MICROTEK=m 1348CONFIG_USB_MICROTEK=m
1399CONFIG_USB_MON=y
1400 1349
1401# 1350#
1402# USB port drivers 1351# USB port drivers
@@ -1405,7 +1354,6 @@ CONFIG_USB_SERIAL=m
1405CONFIG_USB_EZUSB=y 1354CONFIG_USB_EZUSB=y
1406CONFIG_USB_SERIAL_GENERIC=y 1355CONFIG_USB_SERIAL_GENERIC=y
1407# CONFIG_USB_SERIAL_AIRCABLE is not set 1356# CONFIG_USB_SERIAL_AIRCABLE is not set
1408# CONFIG_USB_SERIAL_AIRPRIME is not set
1409# CONFIG_USB_SERIAL_ARK3116 is not set 1357# CONFIG_USB_SERIAL_ARK3116 is not set
1410CONFIG_USB_SERIAL_BELKIN=m 1358CONFIG_USB_SERIAL_BELKIN=m
1411# CONFIG_USB_SERIAL_CH341 is not set 1359# CONFIG_USB_SERIAL_CH341 is not set
@@ -1443,6 +1391,7 @@ CONFIG_USB_SERIAL_KOBIL_SCT=m
1443CONFIG_USB_SERIAL_MCT_U232=m 1391CONFIG_USB_SERIAL_MCT_U232=m
1444# CONFIG_USB_SERIAL_MOS7720 is not set 1392# CONFIG_USB_SERIAL_MOS7720 is not set
1445# CONFIG_USB_SERIAL_MOS7840 is not set 1393# CONFIG_USB_SERIAL_MOS7840 is not set
1394# CONFIG_USB_SERIAL_MOTOROLA is not set
1446# CONFIG_USB_SERIAL_NAVMAN is not set 1395# CONFIG_USB_SERIAL_NAVMAN is not set
1447CONFIG_USB_SERIAL_PL2303=m 1396CONFIG_USB_SERIAL_PL2303=m
1448# CONFIG_USB_SERIAL_OTI6858 is not set 1397# CONFIG_USB_SERIAL_OTI6858 is not set
@@ -1464,7 +1413,6 @@ CONFIG_USB_SERIAL_OMNINET=m
1464CONFIG_USB_EMI62=m 1413CONFIG_USB_EMI62=m
1465# CONFIG_USB_EMI26 is not set 1414# CONFIG_USB_EMI26 is not set
1466# CONFIG_USB_ADUTUX is not set 1415# CONFIG_USB_ADUTUX is not set
1467CONFIG_USB_AUERSWALD=m
1468CONFIG_USB_RIO500=m 1416CONFIG_USB_RIO500=m
1469CONFIG_USB_LEGOTOWER=m 1417CONFIG_USB_LEGOTOWER=m
1470CONFIG_USB_LCD=m 1418CONFIG_USB_LCD=m
@@ -1481,6 +1429,7 @@ CONFIG_USB_LED=m
1481# CONFIG_USB_TRANCEVIBRATOR is not set 1429# CONFIG_USB_TRANCEVIBRATOR is not set
1482# CONFIG_USB_IOWARRIOR is not set 1430# CONFIG_USB_IOWARRIOR is not set
1483CONFIG_USB_TEST=m 1431CONFIG_USB_TEST=m
1432# CONFIG_USB_ISIGHTFW is not set
1484CONFIG_USB_ATM=m 1433CONFIG_USB_ATM=m
1485CONFIG_USB_SPEEDTOUCH=m 1434CONFIG_USB_SPEEDTOUCH=m
1486# CONFIG_USB_CXACRU is not set 1435# CONFIG_USB_CXACRU is not set
@@ -1601,6 +1550,7 @@ CONFIG_JFFS2_RTIME=y
1601CONFIG_CRAMFS=m 1550CONFIG_CRAMFS=m
1602CONFIG_VXFS_FS=m 1551CONFIG_VXFS_FS=m
1603# CONFIG_MINIX_FS is not set 1552# CONFIG_MINIX_FS is not set
1553# CONFIG_OMFS_FS is not set
1604# CONFIG_HPFS_FS is not set 1554# CONFIG_HPFS_FS is not set
1605# CONFIG_QNX4FS_FS is not set 1555# CONFIG_QNX4FS_FS is not set
1606# CONFIG_ROMFS_FS is not set 1556# CONFIG_ROMFS_FS is not set
@@ -1611,8 +1561,8 @@ CONFIG_NFS_FS=y
1611CONFIG_NFS_V3=y 1561CONFIG_NFS_V3=y
1612CONFIG_NFS_V3_ACL=y 1562CONFIG_NFS_V3_ACL=y
1613CONFIG_NFS_V4=y 1563CONFIG_NFS_V4=y
1614# CONFIG_NFSD is not set
1615CONFIG_ROOT_NFS=y 1564CONFIG_ROOT_NFS=y
1565# CONFIG_NFSD is not set
1616CONFIG_LOCKD=y 1566CONFIG_LOCKD=y
1617CONFIG_LOCKD_V4=y 1567CONFIG_LOCKD_V4=y
1618CONFIG_NFS_ACL_SUPPORT=y 1568CONFIG_NFS_ACL_SUPPORT=y
@@ -1620,7 +1570,6 @@ CONFIG_NFS_COMMON=y
1620CONFIG_SUNRPC=y 1570CONFIG_SUNRPC=y
1621CONFIG_SUNRPC_GSS=y 1571CONFIG_SUNRPC_GSS=y
1622CONFIG_SUNRPC_XPRT_RDMA=m 1572CONFIG_SUNRPC_XPRT_RDMA=m
1623# CONFIG_SUNRPC_BIND34 is not set
1624CONFIG_RPCSEC_GSS_KRB5=y 1573CONFIG_RPCSEC_GSS_KRB5=y
1625CONFIG_RPCSEC_GSS_SPKM3=m 1574CONFIG_RPCSEC_GSS_SPKM3=m
1626# CONFIG_SMB_FS is not set 1575# CONFIG_SMB_FS is not set
@@ -1705,6 +1654,7 @@ CONFIG_BITREVERSE=y
1705# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1654# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1706CONFIG_CRC_CCITT=m 1655CONFIG_CRC_CCITT=m
1707# CONFIG_CRC16 is not set 1656# CONFIG_CRC16 is not set
1657CONFIG_CRC_T10DIF=m
1708CONFIG_CRC_ITU_T=m 1658CONFIG_CRC_ITU_T=m
1709CONFIG_CRC32=y 1659CONFIG_CRC32=y
1710# CONFIG_CRC7 is not set 1660# CONFIG_CRC7 is not set
@@ -1732,6 +1682,8 @@ CONFIG_MAGIC_SYSRQ=y
1732CONFIG_DEBUG_KERNEL=y 1682CONFIG_DEBUG_KERNEL=y
1733# CONFIG_DEBUG_SHIRQ is not set 1683# CONFIG_DEBUG_SHIRQ is not set
1734CONFIG_DETECT_SOFTLOCKUP=y 1684CONFIG_DETECT_SOFTLOCKUP=y
1685# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1686CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1735CONFIG_SCHED_DEBUG=y 1687CONFIG_SCHED_DEBUG=y
1736# CONFIG_SCHEDSTATS is not set 1688# CONFIG_SCHEDSTATS is not set
1737# CONFIG_TIMER_STATS is not set 1689# CONFIG_TIMER_STATS is not set
@@ -1750,6 +1702,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1750CONFIG_DEBUG_INFO=y 1702CONFIG_DEBUG_INFO=y
1751# CONFIG_DEBUG_VM is not set 1703# CONFIG_DEBUG_VM is not set
1752# CONFIG_DEBUG_WRITECOUNT is not set 1704# CONFIG_DEBUG_WRITECOUNT is not set
1705CONFIG_DEBUG_MEMORY_INIT=y
1753# CONFIG_DEBUG_LIST is not set 1706# CONFIG_DEBUG_LIST is not set
1754# CONFIG_DEBUG_SG is not set 1707# CONFIG_DEBUG_SG is not set
1755# CONFIG_BOOT_PRINTK_DELAY is not set 1708# CONFIG_BOOT_PRINTK_DELAY is not set
@@ -1758,11 +1711,22 @@ CONFIG_DEBUG_INFO=y
1758# CONFIG_BACKTRACE_SELF_TEST is not set 1711# CONFIG_BACKTRACE_SELF_TEST is not set
1759# CONFIG_LKDTM is not set 1712# CONFIG_LKDTM is not set
1760# CONFIG_FAULT_INJECTION is not set 1713# CONFIG_FAULT_INJECTION is not set
1714# CONFIG_LATENCYTOP is not set
1715CONFIG_SYSCTL_SYSCALL_CHECK=y
1716CONFIG_HAVE_FTRACE=y
1717CONFIG_HAVE_DYNAMIC_FTRACE=y
1718# CONFIG_FTRACE is not set
1719# CONFIG_SCHED_TRACER is not set
1720# CONFIG_CONTEXT_SWITCH_TRACER is not set
1761# CONFIG_SAMPLES is not set 1721# CONFIG_SAMPLES is not set
1722CONFIG_HAVE_ARCH_KGDB=y
1723# CONFIG_KGDB is not set
1762CONFIG_DEBUG_STACKOVERFLOW=y 1724CONFIG_DEBUG_STACKOVERFLOW=y
1763CONFIG_DEBUG_STACK_USAGE=y 1725CONFIG_DEBUG_STACK_USAGE=y
1764# CONFIG_DEBUG_PAGEALLOC is not set 1726# CONFIG_DEBUG_PAGEALLOC is not set
1765# CONFIG_DEBUGGER is not set 1727# CONFIG_CODE_PATCHING_SELFTEST is not set
1728# CONFIG_FTR_FIXUP_SELFTEST is not set
1729# CONFIG_XMON is not set
1766# CONFIG_IRQSTACKS is not set 1730# CONFIG_IRQSTACKS is not set
1767# CONFIG_BDI_SWITCH is not set 1731# CONFIG_BDI_SWITCH is not set
1768CONFIG_BOOTX_TEXT=y 1732CONFIG_BOOTX_TEXT=y
@@ -1776,7 +1740,6 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y
1776CONFIG_SECURITY=y 1740CONFIG_SECURITY=y
1777CONFIG_SECURITY_NETWORK=y 1741CONFIG_SECURITY_NETWORK=y
1778# CONFIG_SECURITY_NETWORK_XFRM is not set 1742# CONFIG_SECURITY_NETWORK_XFRM is not set
1779CONFIG_SECURITY_CAPABILITIES=y
1780# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1743# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1781CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1744CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1782CONFIG_SECURITY_SELINUX=y 1745CONFIG_SECURITY_SELINUX=y
@@ -1835,6 +1798,10 @@ CONFIG_CRYPTO_CRC32C=m
1835CONFIG_CRYPTO_MD4=m 1798CONFIG_CRYPTO_MD4=m
1836CONFIG_CRYPTO_MD5=y 1799CONFIG_CRYPTO_MD5=y
1837CONFIG_CRYPTO_MICHAEL_MIC=m 1800CONFIG_CRYPTO_MICHAEL_MIC=m
1801# CONFIG_CRYPTO_RMD128 is not set
1802# CONFIG_CRYPTO_RMD160 is not set
1803# CONFIG_CRYPTO_RMD256 is not set
1804# CONFIG_CRYPTO_RMD320 is not set
1838CONFIG_CRYPTO_SHA1=y 1805CONFIG_CRYPTO_SHA1=y
1839CONFIG_CRYPTO_SHA256=m 1806CONFIG_CRYPTO_SHA256=m
1840CONFIG_CRYPTO_SHA512=m 1807CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig
index 05360d4ef1b1..2e0ef8c18227 100644
--- a/arch/powerpc/configs/chrp32_defconfig
+++ b/arch/powerpc/configs/chrp32_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.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:00:44 2008 4# Tue Aug 26 13:12:40 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -33,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -90,7 +91,6 @@ CONFIG_INITRAMFS_SOURCE=""
90CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
91# CONFIG_EMBEDDED is not set 92# CONFIG_EMBEDDED is not set
92CONFIG_SYSCTL_SYSCALL=y 93CONFIG_SYSCTL_SYSCALL=y
93CONFIG_SYSCTL_SYSCALL_CHECK=y
94CONFIG_KALLSYMS=y 94CONFIG_KALLSYMS=y
95# CONFIG_KALLSYMS_ALL is not set 95# CONFIG_KALLSYMS_ALL is not set
96# CONFIG_KALLSYMS_EXTRA_PASS is not set 96# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -117,10 +117,16 @@ CONFIG_SLUB=y
117# CONFIG_MARKERS is not set 117# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set 125# CONFIG_HAVE_DMA_ATTRS is not set
126CONFIG_USE_GENERIC_SMP_HELPERS=y
127# CONFIG_HAVE_CLK is not set
123CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -138,6 +144,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 145# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 146# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set
141 148
142# 149#
143# IO Schedulers 150# IO Schedulers
@@ -157,19 +164,18 @@ CONFIG_CLASSIC_RCU=y
157# Platform support 164# Platform support
158# 165#
159CONFIG_PPC_MULTIPLATFORM=y 166CONFIG_PPC_MULTIPLATFORM=y
160# CONFIG_PPC_82xx is not set
161# CONFIG_PPC_83xx is not set
162# CONFIG_PPC_86xx is not set
163CONFIG_CLASSIC32=y 167CONFIG_CLASSIC32=y
164CONFIG_PPC_CHRP=y 168CONFIG_PPC_CHRP=y
165# CONFIG_PPC_MPC512x is not set
166# CONFIG_PPC_MPC5121 is not set
167# CONFIG_MPC5121_ADS is not set 169# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set
168# CONFIG_PPC_MPC52xx is not set 171# CONFIG_PPC_MPC52xx is not set
169# CONFIG_PPC_PMAC is not set 172# CONFIG_PPC_PMAC is not set
170# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
171# CONFIG_PPC_CELL_NATIVE is not set 174# CONFIG_PPC_CELL_NATIVE is not set
175# CONFIG_PPC_82xx is not set
172# CONFIG_PQ2ADS is not set 176# CONFIG_PQ2ADS is not set
177# CONFIG_PPC_83xx is not set
178# CONFIG_PPC_86xx is not set
173CONFIG_PPC_NATIVE=y 179CONFIG_PPC_NATIVE=y
174# CONFIG_UDBG_RTAS_CONSOLE is not set 180# CONFIG_UDBG_RTAS_CONSOLE is not set
175# CONFIG_IPIC is not set 181# CONFIG_IPIC is not set
@@ -201,7 +207,7 @@ CONFIG_HZ_250=y
201# CONFIG_HZ_300 is not set 207# CONFIG_HZ_300 is not set
202# CONFIG_HZ_1000 is not set 208# CONFIG_HZ_1000 is not set
203CONFIG_HZ=250 209CONFIG_HZ=250
204# CONFIG_SCHED_HRTICK is not set 210CONFIG_SCHED_HRTICK=y
205CONFIG_PREEMPT_NONE=y 211CONFIG_PREEMPT_NONE=y
206# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
207# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
@@ -225,6 +231,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
225# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 231# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
226CONFIG_PAGEFLAGS_EXTENDED=y 232CONFIG_PAGEFLAGS_EXTENDED=y
227CONFIG_SPLIT_PTLOCK_CPUS=4 233CONFIG_SPLIT_PTLOCK_CPUS=4
234# CONFIG_MIGRATION is not set
228# CONFIG_RESOURCES_64BIT is not set 235# CONFIG_RESOURCES_64BIT is not set
229CONFIG_ZONE_DMA_FLAG=1 236CONFIG_ZONE_DMA_FLAG=1
230CONFIG_BOUNCE=y 237CONFIG_BOUNCE=y
@@ -232,6 +239,7 @@ CONFIG_VIRT_TO_BUS=y
232CONFIG_FORCE_MAX_ZONEORDER=11 239CONFIG_FORCE_MAX_ZONEORDER=11
233CONFIG_PROC_DEVICETREE=y 240CONFIG_PROC_DEVICETREE=y
234# CONFIG_CMDLINE_BOOL is not set 241# CONFIG_CMDLINE_BOOL is not set
242CONFIG_EXTRA_TARGETS=""
235# CONFIG_PM is not set 243# CONFIG_PM is not set
236CONFIG_SECCOMP=y 244CONFIG_SECCOMP=y
237CONFIG_ISA_DMA_API=y 245CONFIG_ISA_DMA_API=y
@@ -268,10 +276,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
268CONFIG_KERNEL_START=0xc0000000 276CONFIG_KERNEL_START=0xc0000000
269CONFIG_PHYSICAL_START=0x00000000 277CONFIG_PHYSICAL_START=0x00000000
270CONFIG_TASK_SIZE=0xc0000000 278CONFIG_TASK_SIZE=0xc0000000
271
272#
273# Networking
274#
275CONFIG_NET=y 279CONFIG_NET=y
276 280
277# 281#
@@ -398,7 +402,9 @@ CONFIG_NF_NAT_SIP=m
398CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 402CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
399# CONFIG_STANDALONE is not set 403# CONFIG_STANDALONE is not set
400CONFIG_PREVENT_FIRMWARE_BUILD=y 404CONFIG_PREVENT_FIRMWARE_BUILD=y
401# CONFIG_FW_LOADER is not set 405CONFIG_FW_LOADER=y
406CONFIG_FIRMWARE_IN_KERNEL=y
407CONFIG_EXTRA_FIRMWARE=""
402# CONFIG_DEBUG_DRIVER is not set 408# CONFIG_DEBUG_DRIVER is not set
403# CONFIG_DEBUG_DEVRES is not set 409# CONFIG_DEBUG_DEVRES is not set
404# CONFIG_SYS_HYPERVISOR is not set 410# CONFIG_SYS_HYPERVISOR is not set
@@ -427,12 +433,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
427# CONFIG_BLK_DEV_XIP is not set 433# CONFIG_BLK_DEV_XIP is not set
428# CONFIG_CDROM_PKTCDVD is not set 434# CONFIG_CDROM_PKTCDVD is not set
429# CONFIG_ATA_OVER_ETH is not set 435# CONFIG_ATA_OVER_ETH is not set
436# CONFIG_BLK_DEV_HD is not set
430CONFIG_MISC_DEVICES=y 437CONFIG_MISC_DEVICES=y
431# CONFIG_PHANTOM is not set 438# CONFIG_PHANTOM is not set
432# CONFIG_EEPROM_93CX6 is not set 439# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_SGI_IOC4 is not set 440# CONFIG_SGI_IOC4 is not set
434# CONFIG_TIFM_CORE is not set 441# CONFIG_TIFM_CORE is not set
435# CONFIG_ENCLOSURE_SERVICES is not set 442# CONFIG_ENCLOSURE_SERVICES is not set
443# CONFIG_HP_ILO is not set
436CONFIG_HAVE_IDE=y 444CONFIG_HAVE_IDE=y
437CONFIG_IDE=y 445CONFIG_IDE=y
438CONFIG_BLK_DEV_IDE=y 446CONFIG_BLK_DEV_IDE=y
@@ -440,6 +448,7 @@ CONFIG_BLK_DEV_IDE=y
440# 448#
441# Please see Documentation/ide/ide.txt for help/info on IDE drives 449# Please see Documentation/ide/ide.txt for help/info on IDE drives
442# 450#
451CONFIG_IDE_TIMINGS=y
443# CONFIG_BLK_DEV_IDE_SATA is not set 452# CONFIG_BLK_DEV_IDE_SATA is not set
444CONFIG_BLK_DEV_IDEDISK=y 453CONFIG_BLK_DEV_IDEDISK=y
445CONFIG_IDEDISK_MULTI_MODE=y 454CONFIG_IDEDISK_MULTI_MODE=y
@@ -454,7 +463,6 @@ CONFIG_IDE_PROC_FS=y
454# 463#
455# IDE chipset support/bugfixes 464# IDE chipset support/bugfixes
456# 465#
457CONFIG_IDE_GENERIC=y
458# CONFIG_BLK_DEV_PLATFORM is not set 466# CONFIG_BLK_DEV_PLATFORM is not set
459CONFIG_BLK_DEV_IDEDMA_SFF=y 467CONFIG_BLK_DEV_IDEDMA_SFF=y
460 468
@@ -472,10 +480,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
472# CONFIG_BLK_DEV_AMD74XX is not set 480# CONFIG_BLK_DEV_AMD74XX is not set
473# CONFIG_BLK_DEV_CMD64X is not set 481# CONFIG_BLK_DEV_CMD64X is not set
474# CONFIG_BLK_DEV_TRIFLEX is not set 482# CONFIG_BLK_DEV_TRIFLEX is not set
475# CONFIG_BLK_DEV_CY82C693 is not set
476# CONFIG_BLK_DEV_CS5520 is not set 483# CONFIG_BLK_DEV_CS5520 is not set
477# CONFIG_BLK_DEV_CS5530 is not set 484# CONFIG_BLK_DEV_CS5530 is not set
478# CONFIG_BLK_DEV_HPT34X is not set
479# CONFIG_BLK_DEV_HPT366 is not set 485# CONFIG_BLK_DEV_HPT366 is not set
480# CONFIG_BLK_DEV_JMICRON is not set 486# CONFIG_BLK_DEV_JMICRON is not set
481# CONFIG_BLK_DEV_SC1200 is not set 487# CONFIG_BLK_DEV_SC1200 is not set
@@ -493,8 +499,6 @@ CONFIG_BLK_DEV_SL82C105=y
493CONFIG_BLK_DEV_VIA82CXXX=y 499CONFIG_BLK_DEV_VIA82CXXX=y
494# CONFIG_BLK_DEV_TC86C001 is not set 500# CONFIG_BLK_DEV_TC86C001 is not set
495CONFIG_BLK_DEV_IDEDMA=y 501CONFIG_BLK_DEV_IDEDMA=y
496# CONFIG_BLK_DEV_HD_ONLY is not set
497# CONFIG_BLK_DEV_HD is not set
498 502
499# 503#
500# SCSI device support 504# SCSI device support
@@ -588,6 +592,7 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y
588# CONFIG_SCSI_NSP32 is not set 592# CONFIG_SCSI_NSP32 is not set
589# CONFIG_SCSI_DEBUG is not set 593# CONFIG_SCSI_DEBUG is not set
590# CONFIG_SCSI_SRP is not set 594# CONFIG_SCSI_SRP is not set
595# CONFIG_SCSI_DH is not set
591# CONFIG_ATA is not set 596# CONFIG_ATA is not set
592# CONFIG_MD is not set 597# CONFIG_MD is not set
593# CONFIG_FUSION is not set 598# CONFIG_FUSION is not set
@@ -595,12 +600,15 @@ CONFIG_SCSI_SYM53C8XX_MMIO=y
595# 600#
596# IEEE 1394 (FireWire) support 601# IEEE 1394 (FireWire) support
597# 602#
603
604#
605# Enable only one of the two stacks, unless you know what you are doing
606#
598# CONFIG_FIREWIRE is not set 607# CONFIG_FIREWIRE is not set
599# CONFIG_IEEE1394 is not set 608# CONFIG_IEEE1394 is not set
600# CONFIG_I2O is not set 609# CONFIG_I2O is not set
601# CONFIG_MACINTOSH_DRIVERS is not set 610# CONFIG_MACINTOSH_DRIVERS is not set
602CONFIG_NETDEVICES=y 611CONFIG_NETDEVICES=y
603# CONFIG_NETDEVICES_MULTIQUEUE is not set
604# CONFIG_DUMMY is not set 612# CONFIG_DUMMY is not set
605# CONFIG_BONDING is not set 613# CONFIG_BONDING is not set
606# CONFIG_MACVLAN is not set 614# CONFIG_MACVLAN is not set
@@ -660,14 +668,12 @@ CONFIG_8139TOO=y
660# CONFIG_TLAN is not set 668# CONFIG_TLAN is not set
661CONFIG_VIA_RHINE=y 669CONFIG_VIA_RHINE=y
662# CONFIG_VIA_RHINE_MMIO is not set 670# CONFIG_VIA_RHINE_MMIO is not set
663# CONFIG_VIA_RHINE_NAPI is not set
664# CONFIG_SC92031 is not set 671# CONFIG_SC92031 is not set
665CONFIG_NETDEV_1000=y 672CONFIG_NETDEV_1000=y
666# CONFIG_ACENIC is not set 673# CONFIG_ACENIC is not set
667# CONFIG_DL2K is not set 674# CONFIG_DL2K is not set
668# CONFIG_E1000 is not set 675# CONFIG_E1000 is not set
669# CONFIG_E1000E is not set 676# CONFIG_E1000E is not set
670# CONFIG_E1000E_ENABLED is not set
671# CONFIG_IP1000 is not set 677# CONFIG_IP1000 is not set
672# CONFIG_IGB is not set 678# CONFIG_IGB is not set
673# CONFIG_NS83820 is not set 679# CONFIG_NS83820 is not set
@@ -683,6 +689,7 @@ CONFIG_NETDEV_1000=y
683CONFIG_MV643XX_ETH=y 689CONFIG_MV643XX_ETH=y
684# CONFIG_QLA3XXX is not set 690# CONFIG_QLA3XXX is not set
685# CONFIG_ATL1 is not set 691# CONFIG_ATL1 is not set
692# CONFIG_ATL1E is not set
686CONFIG_NETDEV_10000=y 693CONFIG_NETDEV_10000=y
687# CONFIG_CHELSIO_T1 is not set 694# CONFIG_CHELSIO_T1 is not set
688# CONFIG_CHELSIO_T3 is not set 695# CONFIG_CHELSIO_T3 is not set
@@ -773,6 +780,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
773# CONFIG_MOUSE_PS2_TOUCHKIT is not set 780# CONFIG_MOUSE_PS2_TOUCHKIT is not set
774# CONFIG_MOUSE_SERIAL is not set 781# CONFIG_MOUSE_SERIAL is not set
775# CONFIG_MOUSE_APPLETOUCH is not set 782# CONFIG_MOUSE_APPLETOUCH is not set
783# CONFIG_MOUSE_BCM5974 is not set
776# CONFIG_MOUSE_INPORT is not set 784# CONFIG_MOUSE_INPORT is not set
777# CONFIG_MOUSE_LOGIBM is not set 785# CONFIG_MOUSE_LOGIBM is not set
778# CONFIG_MOUSE_PC110PAD is not set 786# CONFIG_MOUSE_PC110PAD is not set
@@ -798,12 +806,14 @@ CONFIG_SERIO_SERPORT=y
798# CONFIG_SERIO_PCIPS2 is not set 806# CONFIG_SERIO_PCIPS2 is not set
799CONFIG_SERIO_LIBPS2=y 807CONFIG_SERIO_LIBPS2=y
800# CONFIG_SERIO_RAW is not set 808# CONFIG_SERIO_RAW is not set
809# CONFIG_SERIO_XILINX_XPS_PS2 is not set
801# CONFIG_GAMEPORT is not set 810# CONFIG_GAMEPORT is not set
802 811
803# 812#
804# Character devices 813# Character devices
805# 814#
806CONFIG_VT=y 815CONFIG_VT=y
816CONFIG_CONSOLE_TRANSLATIONS=y
807CONFIG_VT_CONSOLE=y 817CONFIG_VT_CONSOLE=y
808CONFIG_HW_CONSOLE=y 818CONFIG_HW_CONSOLE=y
809# CONFIG_VT_HW_CONSOLE_BINDING is not set 819# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -848,46 +858,71 @@ CONFIG_DEVPORT=y
848CONFIG_I2C=y 858CONFIG_I2C=y
849CONFIG_I2C_BOARDINFO=y 859CONFIG_I2C_BOARDINFO=y
850# CONFIG_I2C_CHARDEV is not set 860# CONFIG_I2C_CHARDEV is not set
861CONFIG_I2C_HELPER_AUTO=y
851CONFIG_I2C_ALGOBIT=y 862CONFIG_I2C_ALGOBIT=y
852 863
853# 864#
854# I2C Hardware Bus support 865# I2C Hardware Bus support
855# 866#
867
868#
869# PC SMBus host controller drivers
870#
856# CONFIG_I2C_ALI1535 is not set 871# CONFIG_I2C_ALI1535 is not set
857# CONFIG_I2C_ALI1563 is not set 872# CONFIG_I2C_ALI1563 is not set
858# CONFIG_I2C_ALI15X3 is not set 873# CONFIG_I2C_ALI15X3 is not set
859# CONFIG_I2C_AMD756 is not set 874# CONFIG_I2C_AMD756 is not set
860# CONFIG_I2C_AMD8111 is not set 875# CONFIG_I2C_AMD8111 is not set
861# CONFIG_I2C_HYDRA is not set
862# CONFIG_I2C_I801 is not set 876# CONFIG_I2C_I801 is not set
863# CONFIG_I2C_I810 is not set 877# CONFIG_I2C_ISCH is not set
864# CONFIG_I2C_PIIX4 is not set 878# CONFIG_I2C_PIIX4 is not set
865# CONFIG_I2C_MPC is not set
866# CONFIG_I2C_NFORCE2 is not set 879# CONFIG_I2C_NFORCE2 is not set
867# CONFIG_I2C_OCORES is not set
868# CONFIG_I2C_PARPORT_LIGHT is not set
869# CONFIG_I2C_PROSAVAGE is not set
870# CONFIG_I2C_SAVAGE4 is not set
871# CONFIG_I2C_SIMTEC is not set
872# CONFIG_I2C_SIS5595 is not set 880# CONFIG_I2C_SIS5595 is not set
873# CONFIG_I2C_SIS630 is not set 881# CONFIG_I2C_SIS630 is not set
874# CONFIG_I2C_SIS96X is not set 882# CONFIG_I2C_SIS96X is not set
875# CONFIG_I2C_TAOS_EVM is not set
876# CONFIG_I2C_STUB is not set
877# CONFIG_I2C_TINY_USB is not set
878# CONFIG_I2C_VIA is not set 883# CONFIG_I2C_VIA is not set
879# CONFIG_I2C_VIAPRO is not set 884# CONFIG_I2C_VIAPRO is not set
885
886#
887# Mac SMBus host controller drivers
888#
889# CONFIG_I2C_HYDRA is not set
890
891#
892# I2C system bus drivers (mostly embedded / system-on-chip)
893#
894# CONFIG_I2C_MPC is not set
895# CONFIG_I2C_OCORES is not set
896# CONFIG_I2C_SIMTEC is not set
897
898#
899# External I2C/SMBus adapter drivers
900#
901# CONFIG_I2C_PARPORT_LIGHT is not set
902# CONFIG_I2C_TAOS_EVM is not set
903# CONFIG_I2C_TINY_USB is not set
904
905#
906# Graphics adapter I2C/DDC channel drivers
907#
880# CONFIG_I2C_VOODOO3 is not set 908# CONFIG_I2C_VOODOO3 is not set
909
910#
911# Other I2C/SMBus bus drivers
912#
881# CONFIG_I2C_PCA_ISA is not set 913# CONFIG_I2C_PCA_ISA is not set
882# CONFIG_I2C_PCA_PLATFORM is not set 914# CONFIG_I2C_PCA_PLATFORM is not set
915# CONFIG_I2C_STUB is not set
883 916
884# 917#
885# Miscellaneous I2C Chip support 918# Miscellaneous I2C Chip support
886# 919#
887# CONFIG_DS1682 is not set 920# CONFIG_DS1682 is not set
921# CONFIG_AT24 is not set
888# CONFIG_SENSORS_EEPROM is not set 922# CONFIG_SENSORS_EEPROM is not set
889# CONFIG_SENSORS_PCF8574 is not set 923# CONFIG_SENSORS_PCF8574 is not set
890# CONFIG_PCF8575 is not set 924# CONFIG_PCF8575 is not set
925# CONFIG_SENSORS_PCA9539 is not set
891# CONFIG_SENSORS_PCF8591 is not set 926# CONFIG_SENSORS_PCF8591 is not set
892# CONFIG_SENSORS_MAX6875 is not set 927# CONFIG_SENSORS_MAX6875 is not set
893# CONFIG_SENSORS_TSL2550 is not set 928# CONFIG_SENSORS_TSL2550 is not set
@@ -896,10 +931,13 @@ CONFIG_I2C_ALGOBIT=y
896# CONFIG_I2C_DEBUG_BUS is not set 931# CONFIG_I2C_DEBUG_BUS is not set
897# CONFIG_I2C_DEBUG_CHIP is not set 932# CONFIG_I2C_DEBUG_CHIP is not set
898# CONFIG_SPI is not set 933# CONFIG_SPI is not set
934CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
935# CONFIG_GPIOLIB is not set
899# CONFIG_W1 is not set 936# CONFIG_W1 is not set
900# CONFIG_POWER_SUPPLY is not set 937# CONFIG_POWER_SUPPLY is not set
901# CONFIG_HWMON is not set 938# CONFIG_HWMON is not set
902# CONFIG_THERMAL is not set 939# CONFIG_THERMAL is not set
940# CONFIG_THERMAL_HWMON is not set
903# CONFIG_WATCHDOG is not set 941# CONFIG_WATCHDOG is not set
904 942
905# 943#
@@ -911,8 +949,10 @@ CONFIG_SSB_POSSIBLE=y
911# 949#
912# Multifunction device drivers 950# Multifunction device drivers
913# 951#
952# CONFIG_MFD_CORE is not set
914# CONFIG_MFD_SM501 is not set 953# CONFIG_MFD_SM501 is not set
915# CONFIG_HTC_PASIC3 is not set 954# CONFIG_HTC_PASIC3 is not set
955# CONFIG_MFD_TMIO is not set
916 956
917# 957#
918# Multimedia devices 958# Multimedia devices
@@ -997,10 +1037,13 @@ CONFIG_FB_3DFX=y
997# CONFIG_FB_TRIDENT is not set 1037# CONFIG_FB_TRIDENT is not set
998# CONFIG_FB_ARK is not set 1038# CONFIG_FB_ARK is not set
999# CONFIG_FB_PM3 is not set 1039# CONFIG_FB_PM3 is not set
1040# CONFIG_FB_CARMINE is not set
1000# CONFIG_FB_IBM_GXT4500 is not set 1041# CONFIG_FB_IBM_GXT4500 is not set
1001# CONFIG_FB_VIRTUAL is not set 1042# CONFIG_FB_VIRTUAL is not set
1002CONFIG_BACKLIGHT_LCD_SUPPORT=y 1043CONFIG_BACKLIGHT_LCD_SUPPORT=y
1003CONFIG_LCD_CLASS_DEVICE=m 1044CONFIG_LCD_CLASS_DEVICE=m
1045# CONFIG_LCD_ILI9320 is not set
1046# CONFIG_LCD_PLATFORM is not set
1004CONFIG_BACKLIGHT_CLASS_DEVICE=y 1047CONFIG_BACKLIGHT_CLASS_DEVICE=y
1005# CONFIG_BACKLIGHT_CORGI is not set 1048# CONFIG_BACKLIGHT_CORGI is not set
1006 1049
@@ -1030,10 +1073,6 @@ CONFIG_LOGO=y
1030CONFIG_LOGO_LINUX_MONO=y 1073CONFIG_LOGO_LINUX_MONO=y
1031CONFIG_LOGO_LINUX_VGA16=y 1074CONFIG_LOGO_LINUX_VGA16=y
1032CONFIG_LOGO_LINUX_CLUT224=y 1075CONFIG_LOGO_LINUX_CLUT224=y
1033
1034#
1035# Sound
1036#
1037# CONFIG_SOUND is not set 1076# CONFIG_SOUND is not set
1038CONFIG_HID_SUPPORT=y 1077CONFIG_HID_SUPPORT=y
1039CONFIG_HID=y 1078CONFIG_HID=y
@@ -1062,6 +1101,7 @@ CONFIG_USB_DEVICEFS=y
1062CONFIG_USB_DEVICE_CLASS=y 1101CONFIG_USB_DEVICE_CLASS=y
1063# CONFIG_USB_DYNAMIC_MINORS is not set 1102# CONFIG_USB_DYNAMIC_MINORS is not set
1064# CONFIG_USB_OTG is not set 1103# CONFIG_USB_OTG is not set
1104CONFIG_USB_MON=y
1065 1105
1066# 1106#
1067# USB Host Controller Drivers 1107# USB Host Controller Drivers
@@ -1087,6 +1127,7 @@ CONFIG_USB_UHCI_HCD=y
1087# 1127#
1088# CONFIG_USB_ACM is not set 1128# CONFIG_USB_ACM is not set
1089# CONFIG_USB_PRINTER is not set 1129# CONFIG_USB_PRINTER is not set
1130# CONFIG_USB_WDM is not set
1090 1131
1091# 1132#
1092# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1133# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1108,6 +1149,7 @@ CONFIG_USB_STORAGE=m
1108# CONFIG_USB_STORAGE_ALAUDA is not set 1149# CONFIG_USB_STORAGE_ALAUDA is not set
1109# CONFIG_USB_STORAGE_ONETOUCH is not set 1150# CONFIG_USB_STORAGE_ONETOUCH is not set
1110# CONFIG_USB_STORAGE_KARMA is not set 1151# CONFIG_USB_STORAGE_KARMA is not set
1152# CONFIG_USB_STORAGE_SIERRA is not set
1111# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1153# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1112# CONFIG_USB_LIBUSUAL is not set 1154# CONFIG_USB_LIBUSUAL is not set
1113 1155
@@ -1116,7 +1158,6 @@ CONFIG_USB_STORAGE=m
1116# 1158#
1117# CONFIG_USB_MDC800 is not set 1159# CONFIG_USB_MDC800 is not set
1118# CONFIG_USB_MICROTEK is not set 1160# CONFIG_USB_MICROTEK is not set
1119CONFIG_USB_MON=y
1120 1161
1121# 1162#
1122# USB port drivers 1163# USB port drivers
@@ -1129,7 +1170,6 @@ CONFIG_USB_MON=y
1129# CONFIG_USB_EMI62 is not set 1170# CONFIG_USB_EMI62 is not set
1130# CONFIG_USB_EMI26 is not set 1171# CONFIG_USB_EMI26 is not set
1131# CONFIG_USB_ADUTUX is not set 1172# CONFIG_USB_ADUTUX is not set
1132# CONFIG_USB_AUERSWALD is not set
1133# CONFIG_USB_RIO500 is not set 1173# CONFIG_USB_RIO500 is not set
1134# CONFIG_USB_LEGOTOWER is not set 1174# CONFIG_USB_LEGOTOWER is not set
1135# CONFIG_USB_LCD is not set 1175# CONFIG_USB_LCD is not set
@@ -1146,6 +1186,7 @@ CONFIG_USB_MON=y
1146# CONFIG_USB_TRANCEVIBRATOR is not set 1186# CONFIG_USB_TRANCEVIBRATOR is not set
1147# CONFIG_USB_IOWARRIOR is not set 1187# CONFIG_USB_IOWARRIOR is not set
1148# CONFIG_USB_TEST is not set 1188# CONFIG_USB_TEST is not set
1189# CONFIG_USB_ISIGHTFW is not set
1149# CONFIG_USB_GADGET is not set 1190# CONFIG_USB_GADGET is not set
1150# CONFIG_MMC is not set 1191# CONFIG_MMC is not set
1151# CONFIG_MEMSTICK is not set 1192# CONFIG_MEMSTICK is not set
@@ -1226,6 +1267,7 @@ CONFIG_TMPFS=y
1226# CONFIG_CRAMFS is not set 1267# CONFIG_CRAMFS is not set
1227# CONFIG_VXFS_FS is not set 1268# CONFIG_VXFS_FS is not set
1228# CONFIG_MINIX_FS is not set 1269# CONFIG_MINIX_FS is not set
1270# CONFIG_OMFS_FS is not set
1229# CONFIG_HPFS_FS is not set 1271# CONFIG_HPFS_FS is not set
1230# CONFIG_QNX4FS_FS is not set 1272# CONFIG_QNX4FS_FS is not set
1231# CONFIG_ROMFS_FS is not set 1273# CONFIG_ROMFS_FS is not set
@@ -1310,6 +1352,7 @@ CONFIG_BITREVERSE=y
1310# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1352# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1311CONFIG_CRC_CCITT=m 1353CONFIG_CRC_CCITT=m
1312# CONFIG_CRC16 is not set 1354# CONFIG_CRC16 is not set
1355CONFIG_CRC_T10DIF=y
1313# CONFIG_CRC_ITU_T is not set 1356# CONFIG_CRC_ITU_T is not set
1314CONFIG_CRC32=y 1357CONFIG_CRC32=y
1315# CONFIG_CRC7 is not set 1358# CONFIG_CRC7 is not set
@@ -1336,6 +1379,8 @@ CONFIG_MAGIC_SYSRQ=y
1336CONFIG_DEBUG_KERNEL=y 1379CONFIG_DEBUG_KERNEL=y
1337# CONFIG_DEBUG_SHIRQ is not set 1380# CONFIG_DEBUG_SHIRQ is not set
1338CONFIG_DETECT_SOFTLOCKUP=y 1381CONFIG_DETECT_SOFTLOCKUP=y
1382# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1383CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1339CONFIG_SCHED_DEBUG=y 1384CONFIG_SCHED_DEBUG=y
1340# CONFIG_SCHEDSTATS is not set 1385# CONFIG_SCHEDSTATS is not set
1341# CONFIG_TIMER_STATS is not set 1386# CONFIG_TIMER_STATS is not set
@@ -1354,20 +1399,32 @@ CONFIG_DEBUG_BUGVERBOSE=y
1354# CONFIG_DEBUG_INFO is not set 1399# CONFIG_DEBUG_INFO is not set
1355# CONFIG_DEBUG_VM is not set 1400# CONFIG_DEBUG_VM is not set
1356# CONFIG_DEBUG_WRITECOUNT is not set 1401# CONFIG_DEBUG_WRITECOUNT is not set
1402CONFIG_DEBUG_MEMORY_INIT=y
1357# CONFIG_DEBUG_LIST is not set 1403# CONFIG_DEBUG_LIST is not set
1358# CONFIG_DEBUG_SG is not set 1404# CONFIG_DEBUG_SG is not set
1359# CONFIG_BOOT_PRINTK_DELAY is not set 1405# CONFIG_BOOT_PRINTK_DELAY is not set
1360# CONFIG_RCU_TORTURE_TEST is not set 1406# CONFIG_RCU_TORTURE_TEST is not set
1361# CONFIG_BACKTRACE_SELF_TEST is not set 1407# CONFIG_BACKTRACE_SELF_TEST is not set
1362# CONFIG_FAULT_INJECTION is not set 1408# CONFIG_FAULT_INJECTION is not set
1409# CONFIG_LATENCYTOP is not set
1410CONFIG_SYSCTL_SYSCALL_CHECK=y
1411CONFIG_HAVE_FTRACE=y
1412CONFIG_HAVE_DYNAMIC_FTRACE=y
1413# CONFIG_FTRACE is not set
1414# CONFIG_SCHED_TRACER is not set
1415# CONFIG_CONTEXT_SWITCH_TRACER is not set
1363# CONFIG_SAMPLES is not set 1416# CONFIG_SAMPLES is not set
1417CONFIG_HAVE_ARCH_KGDB=y
1418# CONFIG_KGDB is not set
1364# CONFIG_DEBUG_STACKOVERFLOW is not set 1419# CONFIG_DEBUG_STACKOVERFLOW is not set
1365# CONFIG_DEBUG_STACK_USAGE is not set 1420# CONFIG_DEBUG_STACK_USAGE is not set
1366# CONFIG_DEBUG_PAGEALLOC is not set 1421# CONFIG_DEBUG_PAGEALLOC is not set
1367CONFIG_DEBUGGER=y 1422# CONFIG_CODE_PATCHING_SELFTEST is not set
1423# CONFIG_FTR_FIXUP_SELFTEST is not set
1368CONFIG_XMON=y 1424CONFIG_XMON=y
1369CONFIG_XMON_DEFAULT=y 1425CONFIG_XMON_DEFAULT=y
1370CONFIG_XMON_DISASSEMBLY=y 1426CONFIG_XMON_DISASSEMBLY=y
1427CONFIG_DEBUGGER=y
1371CONFIG_IRQSTACKS=y 1428CONFIG_IRQSTACKS=y
1372# CONFIG_BDI_SWITCH is not set 1429# CONFIG_BDI_SWITCH is not set
1373# CONFIG_BOOTX_TEXT is not set 1430# CONFIG_BOOTX_TEXT is not set
@@ -1424,6 +1481,10 @@ CONFIG_CRYPTO_PCBC=m
1424# CONFIG_CRYPTO_MD4 is not set 1481# CONFIG_CRYPTO_MD4 is not set
1425# CONFIG_CRYPTO_MD5 is not set 1482# CONFIG_CRYPTO_MD5 is not set
1426# CONFIG_CRYPTO_MICHAEL_MIC is not set 1483# CONFIG_CRYPTO_MICHAEL_MIC is not set
1484# CONFIG_CRYPTO_RMD128 is not set
1485# CONFIG_CRYPTO_RMD160 is not set
1486# CONFIG_CRYPTO_RMD256 is not set
1487# CONFIG_CRYPTO_RMD320 is not set
1427CONFIG_CRYPTO_SHA1=m 1488CONFIG_CRYPTO_SHA1=m
1428# CONFIG_CRYPTO_SHA256 is not set 1489# CONFIG_CRYPTO_SHA256 is not set
1429# CONFIG_CRYPTO_SHA512 is not set 1490# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/ep8248e_defconfig b/arch/powerpc/configs/ep8248e_defconfig
index ba2a463b9305..ef0c6e800508 100644
--- a/arch/powerpc/configs/ep8248e_defconfig
+++ b/arch/powerpc/configs/ep8248e_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:09 2008 4# Thu Aug 21 00:52:03 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -31,12 +32,14 @@ CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y 44CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -45,11 +48,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
47CONFIG_OF=y 50CONFIG_OF=y
48# CONFIG_PPC_UDBG_16550 is not set 51CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
52# CONFIG_DEFAULT_UIMAGE is not set 55# CONFIG_DEFAULT_UIMAGE is not set
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -81,7 +86,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
81CONFIG_SYSCTL=y 86CONFIG_SYSCTL=y
82CONFIG_EMBEDDED=y 87CONFIG_EMBEDDED=y
83CONFIG_SYSCTL_SYSCALL=y 88CONFIG_SYSCTL_SYSCALL=y
84CONFIG_SYSCTL_SYSCALL_CHECK=y
85CONFIG_KALLSYMS=y 89CONFIG_KALLSYMS=y
86CONFIG_KALLSYMS_ALL=y 90CONFIG_KALLSYMS_ALL=y
87# CONFIG_KALLSYMS_EXTRA_PASS is not set 91# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -89,6 +93,7 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 93CONFIG_PRINTK=y
90CONFIG_BUG=y 94CONFIG_BUG=y
91CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_PCSPKR_PLATFORM=y
92CONFIG_COMPAT_BRK=y 97CONFIG_COMPAT_BRK=y
93CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 99CONFIG_FUTEX=y
@@ -105,10 +110,16 @@ CONFIG_SLAB=y
105# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
106# CONFIG_MARKERS is not set 111# CONFIG_MARKERS is not set
107CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y
108CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
109CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y
110# CONFIG_HAVE_DMA_ATTRS is not set 118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120CONFIG_HAVE_CLK=y
111CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
112CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
113CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
114# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
@@ -118,6 +129,7 @@ CONFIG_BLOCK=y
118# CONFIG_LBD is not set 129# CONFIG_LBD is not set
119# CONFIG_BLK_DEV_IO_TRACE is not set 130# CONFIG_BLK_DEV_IO_TRACE is not set
120# CONFIG_LSF is not set 131# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_INTEGRITY is not set
121 133
122# 134#
123# IO Schedulers 135# IO Schedulers
@@ -136,33 +148,43 @@ CONFIG_CLASSIC_RCU=y
136# 148#
137# Platform support 149# Platform support
138# 150#
139# CONFIG_PPC_MULTIPLATFORM is not set 151CONFIG_PPC_MULTIPLATFORM=y
140CONFIG_PPC_82xx=y 152CONFIG_CLASSIC32=y
141# CONFIG_PPC_83xx is not set 153CONFIG_PPC_CHRP=y
142# CONFIG_PPC_86xx is not set 154# CONFIG_MPC5121_ADS is not set
143# CONFIG_PPC_MPC512x is not set 155# CONFIG_MPC5121_GENERIC is not set
144# CONFIG_PPC_MPC5121 is not set 156# CONFIG_PPC_MPC52xx is not set
157CONFIG_PPC_PMAC=y
145# CONFIG_PPC_CELL is not set 158# CONFIG_PPC_CELL is not set
146# CONFIG_PPC_CELL_NATIVE is not set 159# CONFIG_PPC_CELL_NATIVE is not set
160CONFIG_PPC_82xx=y
147# CONFIG_MPC8272_ADS is not set 161# CONFIG_MPC8272_ADS is not set
148# CONFIG_PQ2FADS is not set 162# CONFIG_PQ2FADS is not set
149CONFIG_EP8248E=y 163CONFIG_EP8248E=y
150# CONFIG_PQ2ADS is not set 164# CONFIG_PQ2ADS is not set
151CONFIG_8260=y 165CONFIG_8260=y
152CONFIG_8272=y 166CONFIG_8272=y
167# CONFIG_PPC_83xx is not set
168# CONFIG_PPC_86xx is not set
169# CONFIG_EMBEDDED6xx is not set
170CONFIG_PPC_NATIVE=y
171# CONFIG_UDBG_RTAS_CONSOLE is not set
153# CONFIG_IPIC is not set 172# CONFIG_IPIC is not set
154# CONFIG_MPIC is not set 173CONFIG_MPIC=y
155# CONFIG_MPIC_WEIRD is not set 174# CONFIG_MPIC_WEIRD is not set
156# CONFIG_PPC_I8259 is not set 175CONFIG_PPC_I8259=y
157# CONFIG_PPC_RTAS is not set 176CONFIG_PPC_RTAS=y
177# CONFIG_RTAS_ERROR_LOGGING is not set
178CONFIG_RTAS_PROC=y
158# CONFIG_MMIO_NVRAM is not set 179# CONFIG_MMIO_NVRAM is not set
159# CONFIG_PPC_MPC106 is not set 180CONFIG_PPC_MPC106=y
160# CONFIG_PPC_970_NAP is not set 181# CONFIG_PPC_970_NAP is not set
161# CONFIG_PPC_INDIRECT_IO is not set 182# CONFIG_PPC_INDIRECT_IO is not set
162# CONFIG_GENERIC_IOMAP is not set 183# CONFIG_GENERIC_IOMAP is not set
163# CONFIG_CPU_FREQ is not set 184# CONFIG_CPU_FREQ is not set
185# CONFIG_PPC601_SYNC_FIX is not set
186# CONFIG_TAU is not set
164CONFIG_CPM2=y 187CONFIG_CPM2=y
165CONFIG_PPC_CPM_NEW_BINDING=y
166# CONFIG_FSL_ULI1575 is not set 188# CONFIG_FSL_ULI1575 is not set
167CONFIG_CPM=y 189CONFIG_CPM=y
168 190
@@ -197,6 +219,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
197# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
198CONFIG_PAGEFLAGS_EXTENDED=y 220CONFIG_PAGEFLAGS_EXTENDED=y
199CONFIG_SPLIT_PTLOCK_CPUS=4 221CONFIG_SPLIT_PTLOCK_CPUS=4
222CONFIG_MIGRATION=y
200# CONFIG_RESOURCES_64BIT is not set 223# CONFIG_RESOURCES_64BIT is not set
201CONFIG_ZONE_DMA_FLAG=1 224CONFIG_ZONE_DMA_FLAG=1
202CONFIG_BOUNCE=y 225CONFIG_BOUNCE=y
@@ -204,6 +227,7 @@ CONFIG_VIRT_TO_BUS=y
204CONFIG_FORCE_MAX_ZONEORDER=11 227CONFIG_FORCE_MAX_ZONEORDER=11
205CONFIG_PROC_DEVICETREE=y 228CONFIG_PROC_DEVICETREE=y
206# CONFIG_CMDLINE_BOOL is not set 229# CONFIG_CMDLINE_BOOL is not set
230CONFIG_EXTRA_TARGETS=""
207# CONFIG_PM is not set 231# CONFIG_PM is not set
208# CONFIG_SECCOMP is not set 232# CONFIG_SECCOMP is not set
209CONFIG_ISA_DMA_API=y 233CONFIG_ISA_DMA_API=y
@@ -211,13 +235,22 @@ CONFIG_ISA_DMA_API=y
211# 235#
212# Bus options 236# Bus options
213# 237#
238# CONFIG_ISA is not set
214CONFIG_ZONE_DMA=y 239CONFIG_ZONE_DMA=y
240CONFIG_PPC_INDIRECT_PCI=y
215CONFIG_FSL_SOC=y 241CONFIG_FSL_SOC=y
216# CONFIG_PCI is not set 242CONFIG_PPC_PCI_CHOICE=y
217# CONFIG_PCI_DOMAINS is not set 243CONFIG_PCI=y
218# CONFIG_PCI_SYSCALL is not set 244CONFIG_PCI_DOMAINS=y
219# CONFIG_ARCH_SUPPORTS_MSI is not set 245CONFIG_PCI_SYSCALL=y
246CONFIG_PCI_8260=y
247# CONFIG_PCIEPORTBUS is not set
248CONFIG_ARCH_SUPPORTS_MSI=y
249# CONFIG_PCI_MSI is not set
250CONFIG_PCI_LEGACY=y
251# CONFIG_PCI_DEBUG is not set
220# CONFIG_PCCARD is not set 252# CONFIG_PCCARD is not set
253# CONFIG_HOTPLUG_PCI is not set
221# CONFIG_HAS_RAPIDIO is not set 254# CONFIG_HAS_RAPIDIO is not set
222 255
223# 256#
@@ -233,10 +266,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
233CONFIG_KERNEL_START=0xc0000000 266CONFIG_KERNEL_START=0xc0000000
234CONFIG_PHYSICAL_START=0x00000000 267CONFIG_PHYSICAL_START=0x00000000
235CONFIG_TASK_SIZE=0xc0000000 268CONFIG_TASK_SIZE=0xc0000000
236
237#
238# Networking
239#
240CONFIG_NET=y 269CONFIG_NET=y
241 270
242# 271#
@@ -410,11 +439,13 @@ CONFIG_MTD_CFI_UTIL=y
410# CONFIG_MTD_COMPLEX_MAPPINGS is not set 439# CONFIG_MTD_COMPLEX_MAPPINGS is not set
411# CONFIG_MTD_PHYSMAP is not set 440# CONFIG_MTD_PHYSMAP is not set
412CONFIG_MTD_PHYSMAP_OF=y 441CONFIG_MTD_PHYSMAP_OF=y
442# CONFIG_MTD_INTEL_VR_NOR is not set
413# CONFIG_MTD_PLATRAM is not set 443# CONFIG_MTD_PLATRAM is not set
414 444
415# 445#
416# Self-contained MTD device drivers 446# Self-contained MTD device drivers
417# 447#
448# CONFIG_MTD_PMC551 is not set
418# CONFIG_MTD_SLRAM is not set 449# CONFIG_MTD_SLRAM is not set
419# CONFIG_MTD_PHRAM is not set 450# CONFIG_MTD_PHRAM is not set
420# CONFIG_MTD_MTDRAM is not set 451# CONFIG_MTD_MTDRAM is not set
@@ -434,16 +465,23 @@ CONFIG_MTD_PHYSMAP_OF=y
434# 465#
435# CONFIG_MTD_UBI is not set 466# CONFIG_MTD_UBI is not set
436CONFIG_OF_DEVICE=y 467CONFIG_OF_DEVICE=y
468CONFIG_OF_GPIO=y
437# CONFIG_PARPORT is not set 469# CONFIG_PARPORT is not set
438CONFIG_BLK_DEV=y 470CONFIG_BLK_DEV=y
439# CONFIG_BLK_DEV_FD is not set 471# CONFIG_BLK_DEV_FD is not set
472# CONFIG_MAC_FLOPPY is not set
473# CONFIG_BLK_CPQ_DA is not set
474# CONFIG_BLK_CPQ_CISS_DA is not set
475# CONFIG_BLK_DEV_DAC960 is not set
440# CONFIG_BLK_DEV_COW_COMMON is not set 476# CONFIG_BLK_DEV_COW_COMMON is not set
441CONFIG_BLK_DEV_LOOP=y 477CONFIG_BLK_DEV_LOOP=y
442# CONFIG_BLK_DEV_CRYPTOLOOP is not set 478# CONFIG_BLK_DEV_CRYPTOLOOP is not set
443# CONFIG_BLK_DEV_NBD is not set 479# CONFIG_BLK_DEV_NBD is not set
480# CONFIG_BLK_DEV_SX8 is not set
444# CONFIG_BLK_DEV_RAM is not set 481# CONFIG_BLK_DEV_RAM is not set
445# CONFIG_CDROM_PKTCDVD is not set 482# CONFIG_CDROM_PKTCDVD is not set
446# CONFIG_ATA_OVER_ETH is not set 483# CONFIG_ATA_OVER_ETH is not set
484# CONFIG_BLK_DEV_HD is not set
447# CONFIG_MISC_DEVICES is not set 485# CONFIG_MISC_DEVICES is not set
448CONFIG_HAVE_IDE=y 486CONFIG_HAVE_IDE=y
449# CONFIG_IDE is not set 487# CONFIG_IDE is not set
@@ -457,14 +495,25 @@ CONFIG_HAVE_IDE=y
457# CONFIG_SCSI_NETLINK is not set 495# CONFIG_SCSI_NETLINK is not set
458# CONFIG_ATA is not set 496# CONFIG_ATA is not set
459# CONFIG_MD is not set 497# CONFIG_MD is not set
498# CONFIG_FUSION is not set
499
500#
501# IEEE 1394 (FireWire) support
502#
503
504#
505# A new alternative FireWire stack is available with EXPERIMENTAL=y
506#
507# CONFIG_IEEE1394 is not set
508# CONFIG_I2O is not set
460# CONFIG_MACINTOSH_DRIVERS is not set 509# CONFIG_MACINTOSH_DRIVERS is not set
461CONFIG_NETDEVICES=y 510CONFIG_NETDEVICES=y
462# CONFIG_NETDEVICES_MULTIQUEUE is not set
463# CONFIG_DUMMY is not set 511# CONFIG_DUMMY is not set
464# CONFIG_BONDING is not set 512# CONFIG_BONDING is not set
465# CONFIG_EQUALIZER is not set 513# CONFIG_EQUALIZER is not set
466# CONFIG_TUN is not set 514# CONFIG_TUN is not set
467# CONFIG_VETH is not set 515# CONFIG_VETH is not set
516# CONFIG_ARCNET is not set
468CONFIG_PHYLIB=y 517CONFIG_PHYLIB=y
469 518
470# 519#
@@ -482,21 +531,59 @@ CONFIG_DAVICOM_PHY=y
482# CONFIG_REALTEK_PHY is not set 531# CONFIG_REALTEK_PHY is not set
483# CONFIG_FIXED_PHY is not set 532# CONFIG_FIXED_PHY is not set
484CONFIG_MDIO_BITBANG=y 533CONFIG_MDIO_BITBANG=y
534# CONFIG_MDIO_OF_GPIO is not set
485CONFIG_NET_ETHERNET=y 535CONFIG_NET_ETHERNET=y
486CONFIG_MII=y 536CONFIG_MII=y
537# CONFIG_MACE is not set
538# CONFIG_BMAC is not set
539# CONFIG_HAPPYMEAL is not set
540# CONFIG_SUNGEM is not set
541# CONFIG_CASSINI is not set
542# CONFIG_NET_VENDOR_3COM is not set
543# CONFIG_NET_TULIP is not set
544# CONFIG_HP100 is not set
487# CONFIG_IBM_NEW_EMAC_ZMII is not set 545# CONFIG_IBM_NEW_EMAC_ZMII is not set
488# CONFIG_IBM_NEW_EMAC_RGMII is not set 546# CONFIG_IBM_NEW_EMAC_RGMII is not set
489# CONFIG_IBM_NEW_EMAC_TAH is not set 547# CONFIG_IBM_NEW_EMAC_TAH is not set
490# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 548# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
549# CONFIG_NET_PCI is not set
491# CONFIG_B44 is not set 550# CONFIG_B44 is not set
492CONFIG_FS_ENET=y 551CONFIG_FS_ENET=y
493# CONFIG_FS_ENET_HAS_SCC is not set 552# CONFIG_FS_ENET_HAS_SCC is not set
494CONFIG_FS_ENET_HAS_FCC=y 553CONFIG_FS_ENET_HAS_FCC=y
495# CONFIG_FS_ENET_MDIO_FCC is not set 554# CONFIG_FS_ENET_MDIO_FCC is not set
496CONFIG_NETDEV_1000=y 555CONFIG_NETDEV_1000=y
497# CONFIG_E1000E_ENABLED is not set 556# CONFIG_ACENIC is not set
557# CONFIG_DL2K is not set
558# CONFIG_E1000 is not set
559# CONFIG_E1000E is not set
560# CONFIG_IGB is not set
561# CONFIG_NS83820 is not set
562# CONFIG_HAMACHI is not set
563# CONFIG_R8169 is not set
564# CONFIG_SIS190 is not set
565# CONFIG_SKGE is not set
566# CONFIG_SKY2 is not set
567# CONFIG_VIA_VELOCITY is not set
568# CONFIG_TIGON3 is not set
569# CONFIG_BNX2 is not set
498# CONFIG_GIANFAR is not set 570# CONFIG_GIANFAR is not set
571# CONFIG_MV643XX_ETH is not set
572# CONFIG_QLA3XXX is not set
499CONFIG_NETDEV_10000=y 573CONFIG_NETDEV_10000=y
574# CONFIG_CHELSIO_T1 is not set
575# CONFIG_CHELSIO_T3 is not set
576# CONFIG_IXGBE is not set
577# CONFIG_IXGB is not set
578# CONFIG_S2IO is not set
579# CONFIG_MYRI10GE is not set
580# CONFIG_NETXEN_NIC is not set
581# CONFIG_NIU is not set
582# CONFIG_MLX4_CORE is not set
583# CONFIG_TEHUTI is not set
584# CONFIG_BNX2X is not set
585# CONFIG_SFC is not set
586# CONFIG_TR is not set
500 587
501# 588#
502# Wireless LAN 589# Wireless LAN
@@ -505,6 +592,7 @@ CONFIG_NETDEV_10000=y
505# CONFIG_WLAN_80211 is not set 592# CONFIG_WLAN_80211 is not set
506# CONFIG_IWLWIFI_LEDS is not set 593# CONFIG_IWLWIFI_LEDS is not set
507# CONFIG_WAN is not set 594# CONFIG_WAN is not set
595# CONFIG_FDDI is not set
508# CONFIG_PPP is not set 596# CONFIG_PPP is not set
509# CONFIG_SLIP is not set 597# CONFIG_SLIP is not set
510# CONFIG_NETPOLL is not set 598# CONFIG_NETPOLL is not set
@@ -541,6 +629,7 @@ CONFIG_DEVKMEM=y
541# CONFIG_SERIAL_UARTLITE is not set 629# CONFIG_SERIAL_UARTLITE is not set
542CONFIG_SERIAL_CORE=y 630CONFIG_SERIAL_CORE=y
543CONFIG_SERIAL_CORE_CONSOLE=y 631CONFIG_SERIAL_CORE_CONSOLE=y
632# CONFIG_SERIAL_PMACZILOG is not set
544CONFIG_SERIAL_CPM=y 633CONFIG_SERIAL_CPM=y
545CONFIG_SERIAL_CPM_CONSOLE=y 634CONFIG_SERIAL_CPM_CONSOLE=y
546CONFIG_SERIAL_CPM_SCC1=y 635CONFIG_SERIAL_CPM_SCC1=y
@@ -549,21 +638,44 @@ CONFIG_SERIAL_CPM_SCC1=y
549CONFIG_SERIAL_CPM_SCC4=y 638CONFIG_SERIAL_CPM_SCC4=y
550# CONFIG_SERIAL_CPM_SMC1 is not set 639# CONFIG_SERIAL_CPM_SMC1 is not set
551# CONFIG_SERIAL_CPM_SMC2 is not set 640# CONFIG_SERIAL_CPM_SMC2 is not set
641# CONFIG_SERIAL_JSM is not set
552CONFIG_UNIX98_PTYS=y 642CONFIG_UNIX98_PTYS=y
553CONFIG_LEGACY_PTYS=y 643CONFIG_LEGACY_PTYS=y
554CONFIG_LEGACY_PTY_COUNT=256 644CONFIG_LEGACY_PTY_COUNT=256
645# CONFIG_BRIQ_PANEL is not set
646# CONFIG_HVC_RTAS is not set
555# CONFIG_IPMI_HANDLER is not set 647# CONFIG_IPMI_HANDLER is not set
556CONFIG_HW_RANDOM=y 648CONFIG_HW_RANDOM=y
557# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
558# CONFIG_GEN_RTC is not set 650# CONFIG_GEN_RTC is not set
559# CONFIG_R3964 is not set 651# CONFIG_R3964 is not set
652# CONFIG_APPLICOM is not set
560# CONFIG_RAW_DRIVER is not set 653# CONFIG_RAW_DRIVER is not set
654CONFIG_DEVPORT=y
561# CONFIG_I2C is not set 655# CONFIG_I2C is not set
562# CONFIG_SPI is not set 656# CONFIG_SPI is not set
657CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
658CONFIG_ARCH_REQUIRE_GPIOLIB=y
659CONFIG_GPIOLIB=y
660# CONFIG_DEBUG_GPIO is not set
661
662#
663# I2C GPIO expanders:
664#
665
666#
667# PCI GPIO expanders:
668#
669# CONFIG_GPIO_BT8XX is not set
670
671#
672# SPI GPIO expanders:
673#
563# CONFIG_W1 is not set 674# CONFIG_W1 is not set
564# CONFIG_POWER_SUPPLY is not set 675# CONFIG_POWER_SUPPLY is not set
565# CONFIG_HWMON is not set 676# CONFIG_HWMON is not set
566# CONFIG_THERMAL is not set 677# CONFIG_THERMAL is not set
678# CONFIG_THERMAL_HWMON is not set
567# CONFIG_WATCHDOG is not set 679# CONFIG_WATCHDOG is not set
568 680
569# 681#
@@ -575,8 +687,10 @@ CONFIG_SSB_POSSIBLE=y
575# 687#
576# Multifunction device drivers 688# Multifunction device drivers
577# 689#
690# CONFIG_MFD_CORE is not set
578# CONFIG_MFD_SM501 is not set 691# CONFIG_MFD_SM501 is not set
579# CONFIG_HTC_PASIC3 is not set 692# CONFIG_HTC_PASIC3 is not set
693# CONFIG_MFD_TMIO is not set
580 694
581# 695#
582# Multimedia devices 696# Multimedia devices
@@ -597,6 +711,8 @@ CONFIG_DAB=y
597# 711#
598# Graphics support 712# Graphics support
599# 713#
714# CONFIG_AGP is not set
715# CONFIG_DRM is not set
600# CONFIG_VGASTATE is not set 716# CONFIG_VGASTATE is not set
601# CONFIG_VIDEO_OUTPUT_CONTROL is not set 717# CONFIG_VIDEO_OUTPUT_CONTROL is not set
602# CONFIG_FB is not set 718# CONFIG_FB is not set
@@ -606,16 +722,13 @@ CONFIG_DAB=y
606# Display device support 722# Display device support
607# 723#
608# CONFIG_DISPLAY_SUPPORT is not set 724# CONFIG_DISPLAY_SUPPORT is not set
609
610#
611# Sound
612#
613# CONFIG_SOUND is not set 725# CONFIG_SOUND is not set
614# CONFIG_USB_SUPPORT is not set 726# CONFIG_USB_SUPPORT is not set
615# CONFIG_MMC is not set 727# CONFIG_MMC is not set
616# CONFIG_MEMSTICK is not set 728# CONFIG_MEMSTICK is not set
617# CONFIG_NEW_LEDS is not set 729# CONFIG_NEW_LEDS is not set
618# CONFIG_ACCESSIBILITY is not set 730# CONFIG_ACCESSIBILITY is not set
731# CONFIG_INFINIBAND is not set
619# CONFIG_RTC_CLASS is not set 732# CONFIG_RTC_CLASS is not set
620# CONFIG_DMADEVICES is not set 733# CONFIG_DMADEVICES is not set
621# CONFIG_UIO is not set 734# CONFIG_UIO is not set
@@ -675,6 +788,7 @@ CONFIG_TMPFS=y
675CONFIG_CRAMFS=y 788CONFIG_CRAMFS=y
676# CONFIG_VXFS_FS is not set 789# CONFIG_VXFS_FS is not set
677# CONFIG_MINIX_FS is not set 790# CONFIG_MINIX_FS is not set
791# CONFIG_OMFS_FS is not set
678# CONFIG_HPFS_FS is not set 792# CONFIG_HPFS_FS is not set
679# CONFIG_QNX4FS_FS is not set 793# CONFIG_QNX4FS_FS is not set
680# CONFIG_ROMFS_FS is not set 794# CONFIG_ROMFS_FS is not set
@@ -684,8 +798,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
684CONFIG_NFS_FS=y 798CONFIG_NFS_FS=y
685CONFIG_NFS_V3=y 799CONFIG_NFS_V3=y
686# CONFIG_NFS_V3_ACL is not set 800# CONFIG_NFS_V3_ACL is not set
687# CONFIG_NFSD is not set
688CONFIG_ROOT_NFS=y 801CONFIG_ROOT_NFS=y
802# CONFIG_NFSD is not set
689CONFIG_LOCKD=y 803CONFIG_LOCKD=y
690CONFIG_LOCKD_V4=y 804CONFIG_LOCKD_V4=y
691CONFIG_NFS_COMMON=y 805CONFIG_NFS_COMMON=y
@@ -763,6 +877,7 @@ CONFIG_NLS_UTF8=y
763# CONFIG_GENERIC_FIND_FIRST_BIT is not set 877# CONFIG_GENERIC_FIND_FIRST_BIT is not set
764# CONFIG_CRC_CCITT is not set 878# CONFIG_CRC_CCITT is not set
765# CONFIG_CRC16 is not set 879# CONFIG_CRC16 is not set
880# CONFIG_CRC_T10DIF is not set
766# CONFIG_CRC_ITU_T is not set 881# CONFIG_CRC_ITU_T is not set
767# CONFIG_CRC32 is not set 882# CONFIG_CRC32 is not set
768# CONFIG_CRC7 is not set 883# CONFIG_CRC7 is not set
@@ -804,19 +919,31 @@ CONFIG_DEBUG_BUGVERBOSE=y
804CONFIG_DEBUG_INFO=y 919CONFIG_DEBUG_INFO=y
805# CONFIG_DEBUG_VM is not set 920# CONFIG_DEBUG_VM is not set
806# CONFIG_DEBUG_WRITECOUNT is not set 921# CONFIG_DEBUG_WRITECOUNT is not set
922# CONFIG_DEBUG_MEMORY_INIT is not set
807# CONFIG_DEBUG_LIST is not set 923# CONFIG_DEBUG_LIST is not set
808# CONFIG_DEBUG_SG is not set 924# CONFIG_DEBUG_SG is not set
809# CONFIG_BOOT_PRINTK_DELAY is not set 925# CONFIG_BOOT_PRINTK_DELAY is not set
926# CONFIG_RCU_TORTURE_TEST is not set
810# CONFIG_BACKTRACE_SELF_TEST is not set 927# CONFIG_BACKTRACE_SELF_TEST is not set
811# CONFIG_FAULT_INJECTION is not set 928# CONFIG_FAULT_INJECTION is not set
929# CONFIG_LATENCYTOP is not set
930CONFIG_SYSCTL_SYSCALL_CHECK=y
931CONFIG_HAVE_FTRACE=y
932CONFIG_HAVE_DYNAMIC_FTRACE=y
933# CONFIG_FTRACE is not set
934# CONFIG_SCHED_TRACER is not set
935# CONFIG_CONTEXT_SWITCH_TRACER is not set
812# CONFIG_SAMPLES is not set 936# CONFIG_SAMPLES is not set
937CONFIG_HAVE_ARCH_KGDB=y
813# CONFIG_DEBUG_STACKOVERFLOW is not set 938# CONFIG_DEBUG_STACKOVERFLOW is not set
814# CONFIG_DEBUG_STACK_USAGE is not set 939# CONFIG_DEBUG_STACK_USAGE is not set
815# CONFIG_DEBUG_PAGEALLOC is not set 940# CONFIG_DEBUG_PAGEALLOC is not set
816# CONFIG_DEBUGGER is not set 941# CONFIG_CODE_PATCHING_SELFTEST is not set
817# CONFIG_KGDB_CONSOLE is not set 942# CONFIG_FTR_FIXUP_SELFTEST is not set
943# CONFIG_XMON is not set
818# CONFIG_IRQSTACKS is not set 944# CONFIG_IRQSTACKS is not set
819CONFIG_BDI_SWITCH=y 945CONFIG_BDI_SWITCH=y
946# CONFIG_BOOTX_TEXT is not set
820# CONFIG_PPC_EARLY_DEBUG is not set 947# CONFIG_PPC_EARLY_DEBUG is not set
821 948
822# 949#
@@ -824,6 +951,7 @@ CONFIG_BDI_SWITCH=y
824# 951#
825# CONFIG_KEYS is not set 952# CONFIG_KEYS is not set
826# CONFIG_SECURITY is not set 953# CONFIG_SECURITY is not set
954# CONFIG_SECURITY_FILE_CAPABILITIES is not set
827CONFIG_CRYPTO=y 955CONFIG_CRYPTO=y
828 956
829# 957#
@@ -864,6 +992,10 @@ CONFIG_CRYPTO_PCBC=y
864# CONFIG_CRYPTO_MD4 is not set 992# CONFIG_CRYPTO_MD4 is not set
865CONFIG_CRYPTO_MD5=y 993CONFIG_CRYPTO_MD5=y
866# CONFIG_CRYPTO_MICHAEL_MIC is not set 994# CONFIG_CRYPTO_MICHAEL_MIC is not set
995# CONFIG_CRYPTO_RMD128 is not set
996# CONFIG_CRYPTO_RMD160 is not set
997# CONFIG_CRYPTO_RMD256 is not set
998# CONFIG_CRYPTO_RMD320 is not set
867# CONFIG_CRYPTO_SHA1 is not set 999# CONFIG_CRYPTO_SHA1 is not set
868# CONFIG_CRYPTO_SHA256 is not set 1000# CONFIG_CRYPTO_SHA256 is not set
869# CONFIG_CRYPTO_SHA512 is not set 1001# CONFIG_CRYPTO_SHA512 is not set
@@ -894,6 +1026,6 @@ CONFIG_CRYPTO_DES=y
894# CONFIG_CRYPTO_DEFLATE is not set 1026# CONFIG_CRYPTO_DEFLATE is not set
895# CONFIG_CRYPTO_LZO is not set 1027# CONFIG_CRYPTO_LZO is not set
896# CONFIG_CRYPTO_HW is not set 1028# CONFIG_CRYPTO_HW is not set
897# CONFIG_PPC_CLOCK is not set 1029CONFIG_PPC_CLOCK=y
898CONFIG_PPC_LIB_RHEAP=y 1030CONFIG_PPC_LIB_RHEAP=y
899# CONFIG_VIRTUALIZATION is not set 1031# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/ep88xc_defconfig b/arch/powerpc/configs/ep88xc_defconfig
index ac72b48542dc..480225be2f39 100644
--- a/arch/powerpc/configs/ep88xc_defconfig
+++ b/arch/powerpc/configs/ep88xc_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:09 2008 4# Thu Aug 21 00:52:04 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -108,10 +109,16 @@ CONFIG_SLUB=y
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set 110# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y
113# CONFIG_HAVE_DMA_ATTRS is not set 117# CONFIG_HAVE_DMA_ATTRS is not set
118# CONFIG_USE_GENERIC_SMP_HELPERS is not set
119CONFIG_HAVE_CLK=y
114CONFIG_PROC_PAGE_MONITOR=y 120CONFIG_PROC_PAGE_MONITOR=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
115CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
116# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=1 124CONFIG_BASE_SMALL=1
@@ -121,6 +128,7 @@ CONFIG_BLOCK=y
121# CONFIG_BLK_DEV_IO_TRACE is not set 128# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_LSF is not set 129# CONFIG_LSF is not set
123# CONFIG_BLK_DEV_BSG is not set 130# CONFIG_BLK_DEV_BSG is not set
131# CONFIG_BLK_DEV_INTEGRITY is not set
124 132
125# 133#
126# IO Schedulers 134# IO Schedulers
@@ -139,8 +147,6 @@ CONFIG_CLASSIC_RCU=y
139# 147#
140# Platform support 148# Platform support
141# 149#
142# CONFIG_PPC_MPC512x is not set
143# CONFIG_PPC_MPC5121 is not set
144# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
145# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
146CONFIG_CPM1=y 152CONFIG_CPM1=y
@@ -158,6 +164,7 @@ CONFIG_PPC_EP88XC=y
158# Generic MPC8xx Options 164# Generic MPC8xx Options
159# 165#
160CONFIG_8xx_COPYBACK=y 166CONFIG_8xx_COPYBACK=y
167# CONFIG_8xx_GPIO is not set
161# CONFIG_8xx_CPU6 is not set 168# CONFIG_8xx_CPU6 is not set
162CONFIG_8xx_CPU15=y 169CONFIG_8xx_CPU15=y
163CONFIG_NO_UCODE_PATCH=y 170CONFIG_NO_UCODE_PATCH=y
@@ -176,7 +183,6 @@ CONFIG_NO_UCODE_PATCH=y
176# CONFIG_PPC_INDIRECT_IO is not set 183# CONFIG_PPC_INDIRECT_IO is not set
177# CONFIG_GENERIC_IOMAP is not set 184# CONFIG_GENERIC_IOMAP is not set
178# CONFIG_CPU_FREQ is not set 185# CONFIG_CPU_FREQ is not set
179CONFIG_PPC_CPM_NEW_BINDING=y
180# CONFIG_FSL_ULI1575 is not set 186# CONFIG_FSL_ULI1575 is not set
181CONFIG_CPM=y 187CONFIG_CPM=y
182 188
@@ -193,7 +199,7 @@ CONFIG_HZ_100=y
193# CONFIG_HZ_300 is not set 199# CONFIG_HZ_300 is not set
194# CONFIG_HZ_1000 is not set 200# CONFIG_HZ_1000 is not set
195CONFIG_HZ=100 201CONFIG_HZ=100
196# CONFIG_SCHED_HRTICK is not set 202CONFIG_SCHED_HRTICK=y
197CONFIG_PREEMPT_NONE=y 203CONFIG_PREEMPT_NONE=y
198# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
199# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
@@ -217,6 +223,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
217# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
218CONFIG_PAGEFLAGS_EXTENDED=y 224CONFIG_PAGEFLAGS_EXTENDED=y
219CONFIG_SPLIT_PTLOCK_CPUS=4 225CONFIG_SPLIT_PTLOCK_CPUS=4
226CONFIG_MIGRATION=y
220# CONFIG_RESOURCES_64BIT is not set 227# CONFIG_RESOURCES_64BIT is not set
221CONFIG_ZONE_DMA_FLAG=1 228CONFIG_ZONE_DMA_FLAG=1
222CONFIG_BOUNCE=y 229CONFIG_BOUNCE=y
@@ -224,6 +231,7 @@ CONFIG_VIRT_TO_BUS=y
224CONFIG_FORCE_MAX_ZONEORDER=11 231CONFIG_FORCE_MAX_ZONEORDER=11
225CONFIG_PROC_DEVICETREE=y 232CONFIG_PROC_DEVICETREE=y
226# CONFIG_CMDLINE_BOOL is not set 233# CONFIG_CMDLINE_BOOL is not set
234CONFIG_EXTRA_TARGETS=""
227# CONFIG_PM is not set 235# CONFIG_PM is not set
228# CONFIG_SECCOMP is not set 236# CONFIG_SECCOMP is not set
229CONFIG_ISA_DMA_API=y 237CONFIG_ISA_DMA_API=y
@@ -256,10 +264,6 @@ CONFIG_PHYSICAL_START=0x00000000
256CONFIG_TASK_SIZE=0x80000000 264CONFIG_TASK_SIZE=0x80000000
257CONFIG_CONSISTENT_START=0xfd000000 265CONFIG_CONSISTENT_START=0xfd000000
258CONFIG_CONSISTENT_SIZE=0x00200000 266CONFIG_CONSISTENT_SIZE=0x00200000
259
260#
261# Networking
262#
263CONFIG_NET=y 267CONFIG_NET=y
264 268
265# 269#
@@ -442,7 +446,6 @@ CONFIG_HAVE_IDE=y
442# CONFIG_MD is not set 446# CONFIG_MD is not set
443# CONFIG_MACINTOSH_DRIVERS is not set 447# CONFIG_MACINTOSH_DRIVERS is not set
444CONFIG_NETDEVICES=y 448CONFIG_NETDEVICES=y
445# CONFIG_NETDEVICES_MULTIQUEUE is not set
446# CONFIG_DUMMY is not set 449# CONFIG_DUMMY is not set
447# CONFIG_BONDING is not set 450# CONFIG_BONDING is not set
448# CONFIG_MACVLAN is not set 451# CONFIG_MACVLAN is not set
@@ -544,10 +547,13 @@ CONFIG_GEN_RTC=y
544# CONFIG_TCG_TPM is not set 547# CONFIG_TCG_TPM is not set
545# CONFIG_I2C is not set 548# CONFIG_I2C is not set
546# CONFIG_SPI is not set 549# CONFIG_SPI is not set
550CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
551# CONFIG_GPIOLIB is not set
547# CONFIG_W1 is not set 552# CONFIG_W1 is not set
548# CONFIG_POWER_SUPPLY is not set 553# CONFIG_POWER_SUPPLY is not set
549# CONFIG_HWMON is not set 554# CONFIG_HWMON is not set
550# CONFIG_THERMAL is not set 555# CONFIG_THERMAL is not set
556# CONFIG_THERMAL_HWMON is not set
551# CONFIG_WATCHDOG is not set 557# CONFIG_WATCHDOG is not set
552 558
553# 559#
@@ -559,8 +565,10 @@ CONFIG_SSB_POSSIBLE=y
559# 565#
560# Multifunction device drivers 566# Multifunction device drivers
561# 567#
568# CONFIG_MFD_CORE is not set
562# CONFIG_MFD_SM501 is not set 569# CONFIG_MFD_SM501 is not set
563# CONFIG_HTC_PASIC3 is not set 570# CONFIG_HTC_PASIC3 is not set
571# CONFIG_MFD_TMIO is not set
564 572
565# 573#
566# Multimedia devices 574# Multimedia devices
@@ -590,10 +598,6 @@ CONFIG_DAB=y
590# Display device support 598# Display device support
591# 599#
592# CONFIG_DISPLAY_SUPPORT is not set 600# CONFIG_DISPLAY_SUPPORT is not set
593
594#
595# Sound
596#
597# CONFIG_SOUND is not set 601# CONFIG_SOUND is not set
598# CONFIG_USB_SUPPORT is not set 602# CONFIG_USB_SUPPORT is not set
599# CONFIG_MMC is not set 603# CONFIG_MMC is not set
@@ -662,6 +666,7 @@ CONFIG_TMPFS=y
662CONFIG_CRAMFS=y 666CONFIG_CRAMFS=y
663# CONFIG_VXFS_FS is not set 667# CONFIG_VXFS_FS is not set
664# CONFIG_MINIX_FS is not set 668# CONFIG_MINIX_FS is not set
669# CONFIG_OMFS_FS is not set
665# CONFIG_HPFS_FS is not set 670# CONFIG_HPFS_FS is not set
666# CONFIG_QNX4FS_FS is not set 671# CONFIG_QNX4FS_FS is not set
667# CONFIG_ROMFS_FS is not set 672# CONFIG_ROMFS_FS is not set
@@ -672,13 +677,12 @@ CONFIG_NFS_FS=y
672CONFIG_NFS_V3=y 677CONFIG_NFS_V3=y
673# CONFIG_NFS_V3_ACL is not set 678# CONFIG_NFS_V3_ACL is not set
674# CONFIG_NFS_V4 is not set 679# CONFIG_NFS_V4 is not set
675# CONFIG_NFSD is not set
676CONFIG_ROOT_NFS=y 680CONFIG_ROOT_NFS=y
681# CONFIG_NFSD is not set
677CONFIG_LOCKD=y 682CONFIG_LOCKD=y
678CONFIG_LOCKD_V4=y 683CONFIG_LOCKD_V4=y
679CONFIG_NFS_COMMON=y 684CONFIG_NFS_COMMON=y
680CONFIG_SUNRPC=y 685CONFIG_SUNRPC=y
681# CONFIG_SUNRPC_BIND34 is not set
682# CONFIG_RPCSEC_GSS_KRB5 is not set 686# CONFIG_RPCSEC_GSS_KRB5 is not set
683# CONFIG_RPCSEC_GSS_SPKM3 is not set 687# CONFIG_RPCSEC_GSS_SPKM3 is not set
684# CONFIG_SMB_FS is not set 688# CONFIG_SMB_FS is not set
@@ -717,6 +721,7 @@ CONFIG_MSDOS_PARTITION=y
717# CONFIG_GENERIC_FIND_FIRST_BIT is not set 721# CONFIG_GENERIC_FIND_FIRST_BIT is not set
718# CONFIG_CRC_CCITT is not set 722# CONFIG_CRC_CCITT is not set
719# CONFIG_CRC16 is not set 723# CONFIG_CRC16 is not set
724# CONFIG_CRC_T10DIF is not set
720# CONFIG_CRC_ITU_T is not set 725# CONFIG_CRC_ITU_T is not set
721# CONFIG_CRC32 is not set 726# CONFIG_CRC32 is not set
722# CONFIG_CRC7 is not set 727# CONFIG_CRC7 is not set
@@ -741,6 +746,8 @@ CONFIG_MAGIC_SYSRQ=y
741CONFIG_DEBUG_KERNEL=y 746CONFIG_DEBUG_KERNEL=y
742# CONFIG_DEBUG_SHIRQ is not set 747# CONFIG_DEBUG_SHIRQ is not set
743CONFIG_DETECT_SOFTLOCKUP=y 748CONFIG_DETECT_SOFTLOCKUP=y
749# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
750CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
744CONFIG_SCHED_DEBUG=y 751CONFIG_SCHED_DEBUG=y
745# CONFIG_SCHEDSTATS is not set 752# CONFIG_SCHEDSTATS is not set
746# CONFIG_TIMER_STATS is not set 753# CONFIG_TIMER_STATS is not set
@@ -756,16 +763,28 @@ CONFIG_DEBUG_BUGVERBOSE=y
756CONFIG_DEBUG_INFO=y 763CONFIG_DEBUG_INFO=y
757# CONFIG_DEBUG_VM is not set 764# CONFIG_DEBUG_VM is not set
758# CONFIG_DEBUG_WRITECOUNT is not set 765# CONFIG_DEBUG_WRITECOUNT is not set
766# CONFIG_DEBUG_MEMORY_INIT is not set
759# CONFIG_DEBUG_LIST is not set 767# CONFIG_DEBUG_LIST is not set
760# CONFIG_DEBUG_SG is not set 768# CONFIG_DEBUG_SG is not set
761# CONFIG_BOOT_PRINTK_DELAY is not set 769# CONFIG_BOOT_PRINTK_DELAY is not set
770# CONFIG_RCU_TORTURE_TEST is not set
762# CONFIG_BACKTRACE_SELF_TEST is not set 771# CONFIG_BACKTRACE_SELF_TEST is not set
763# CONFIG_FAULT_INJECTION is not set 772# CONFIG_FAULT_INJECTION is not set
773# CONFIG_LATENCYTOP is not set
774CONFIG_HAVE_FTRACE=y
775CONFIG_HAVE_DYNAMIC_FTRACE=y
776# CONFIG_FTRACE is not set
777# CONFIG_SCHED_TRACER is not set
778# CONFIG_CONTEXT_SWITCH_TRACER is not set
764# CONFIG_SAMPLES is not set 779# CONFIG_SAMPLES is not set
780CONFIG_HAVE_ARCH_KGDB=y
781# CONFIG_KGDB is not set
765# CONFIG_DEBUG_STACKOVERFLOW is not set 782# CONFIG_DEBUG_STACKOVERFLOW is not set
766# CONFIG_DEBUG_STACK_USAGE is not set 783# CONFIG_DEBUG_STACK_USAGE is not set
767# CONFIG_DEBUG_PAGEALLOC is not set 784# CONFIG_DEBUG_PAGEALLOC is not set
768# CONFIG_DEBUGGER is not set 785# CONFIG_CODE_PATCHING_SELFTEST is not set
786# CONFIG_FTR_FIXUP_SELFTEST is not set
787# CONFIG_XMON is not set
769# CONFIG_IRQSTACKS is not set 788# CONFIG_IRQSTACKS is not set
770# CONFIG_BDI_SWITCH is not set 789# CONFIG_BDI_SWITCH is not set
771# CONFIG_PPC_EARLY_DEBUG is not set 790# CONFIG_PPC_EARLY_DEBUG is not set
@@ -777,6 +796,6 @@ CONFIG_DEBUG_INFO=y
777# CONFIG_SECURITY is not set 796# CONFIG_SECURITY is not set
778# CONFIG_SECURITY_FILE_CAPABILITIES is not set 797# CONFIG_SECURITY_FILE_CAPABILITIES is not set
779# CONFIG_CRYPTO is not set 798# CONFIG_CRYPTO is not set
780# CONFIG_PPC_CLOCK is not set 799CONFIG_PPC_CLOCK=y
781CONFIG_PPC_LIB_RHEAP=y 800CONFIG_PPC_LIB_RHEAP=y
782# CONFIG_VIRTUALIZATION is not set 801# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig
index 0ccc6e493dcb..cfa5d053ee5e 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.26-rc6 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 16 21:08:31 2008 4# Tue Aug 26 13:15:06 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -13,6 +13,7 @@ CONFIG_POWER4=y
13# CONFIG_TUNE_CELL is not set 13# CONFIG_TUNE_CELL is not set
14CONFIG_PPC_FPU=y 14CONFIG_PPC_FPU=y
15CONFIG_ALTIVEC=y 15CONFIG_ALTIVEC=y
16# CONFIG_VSX is not set
16CONFIG_PPC_STD_MMU=y 17CONFIG_PPC_STD_MMU=y
17CONFIG_PPC_MM_SLICES=y 18CONFIG_PPC_MM_SLICES=y
18CONFIG_VIRT_CPU_ACCOUNTING=y 19CONFIG_VIRT_CPU_ACCOUNTING=y
@@ -30,6 +31,7 @@ CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y 31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_STACKTRACE_SUPPORT=y 33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_HAVE_LATENCYTOP_SUPPORT=y
33CONFIG_TRACE_IRQFLAGS_SUPPORT=y 35CONFIG_TRACE_IRQFLAGS_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -94,9 +96,8 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
94CONFIG_SYSCTL=y 96CONFIG_SYSCTL=y
95# CONFIG_EMBEDDED is not set 97# CONFIG_EMBEDDED is not set
96CONFIG_SYSCTL_SYSCALL=y 98CONFIG_SYSCTL_SYSCALL=y
97CONFIG_SYSCTL_SYSCALL_CHECK=y
98CONFIG_KALLSYMS=y 99CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_ALL is not set 100CONFIG_KALLSYMS_ALL=y
100# CONFIG_KALLSYMS_EXTRA_PASS is not set 101# CONFIG_KALLSYMS_EXTRA_PASS is not set
101CONFIG_HOTPLUG=y 102CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 103CONFIG_PRINTK=y
@@ -121,10 +122,16 @@ CONFIG_PROFILING=y
121CONFIG_OPROFILE=y 122CONFIG_OPROFILE=y
122CONFIG_HAVE_OPROFILE=y 123CONFIG_HAVE_OPROFILE=y
123# CONFIG_KPROBES is not set 124# CONFIG_KPROBES is not set
125CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
126CONFIG_HAVE_IOREMAP_PROT=y
124CONFIG_HAVE_KPROBES=y 127CONFIG_HAVE_KPROBES=y
125CONFIG_HAVE_KRETPROBES=y 128CONFIG_HAVE_KRETPROBES=y
126# CONFIG_HAVE_DMA_ATTRS is not set 129CONFIG_HAVE_ARCH_TRACEHOOK=y
130CONFIG_HAVE_DMA_ATTRS=y
131CONFIG_USE_GENERIC_SMP_HELPERS=y
132# CONFIG_HAVE_CLK is not set
127CONFIG_PROC_PAGE_MONITOR=y 133CONFIG_PROC_PAGE_MONITOR=y
134# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
128CONFIG_SLABINFO=y 135CONFIG_SLABINFO=y
129CONFIG_RT_MUTEXES=y 136CONFIG_RT_MUTEXES=y
130# CONFIG_TINY_SHMEM is not set 137# CONFIG_TINY_SHMEM is not set
@@ -140,6 +147,7 @@ CONFIG_STOP_MACHINE=y
140CONFIG_BLOCK=y 147CONFIG_BLOCK=y
141# CONFIG_BLK_DEV_IO_TRACE is not set 148# CONFIG_BLK_DEV_IO_TRACE is not set
142CONFIG_BLK_DEV_BSG=y 149CONFIG_BLK_DEV_BSG=y
150# CONFIG_BLK_DEV_INTEGRITY is not set
143CONFIG_BLOCK_COMPAT=y 151CONFIG_BLOCK_COMPAT=y
144 152
145# 153#
@@ -160,13 +168,8 @@ CONFIG_CLASSIC_RCU=y
160# Platform support 168# Platform support
161# 169#
162CONFIG_PPC_MULTIPLATFORM=y 170CONFIG_PPC_MULTIPLATFORM=y
163# CONFIG_PPC_82xx is not set
164# CONFIG_PPC_83xx is not set
165# CONFIG_PPC_86xx is not set
166# CONFIG_PPC_PSERIES is not set 171# CONFIG_PPC_PSERIES is not set
167# CONFIG_PPC_ISERIES is not set 172# CONFIG_PPC_ISERIES is not set
168# CONFIG_PPC_MPC512x is not set
169# CONFIG_PPC_MPC5121 is not set
170CONFIG_PPC_PMAC=y 173CONFIG_PPC_PMAC=y
171CONFIG_PPC_PMAC64=y 174CONFIG_PPC_PMAC64=y
172# CONFIG_PPC_MAPLE is not set 175# CONFIG_PPC_MAPLE is not set
@@ -224,7 +227,7 @@ CONFIG_HZ_250=y
224# CONFIG_HZ_300 is not set 227# CONFIG_HZ_300 is not set
225# CONFIG_HZ_1000 is not set 228# CONFIG_HZ_1000 is not set
226CONFIG_HZ=250 229CONFIG_HZ=250
227# CONFIG_SCHED_HRTICK is not set 230CONFIG_SCHED_HRTICK=y
228CONFIG_PREEMPT_NONE=y 231CONFIG_PREEMPT_NONE=y
229# CONFIG_PREEMPT_VOLUNTARY is not set 232# CONFIG_PREEMPT_VOLUNTARY is not set
230# CONFIG_PREEMPT is not set 233# CONFIG_PREEMPT is not set
@@ -256,6 +259,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
256CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 259CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
257CONFIG_PAGEFLAGS_EXTENDED=y 260CONFIG_PAGEFLAGS_EXTENDED=y
258CONFIG_SPLIT_PTLOCK_CPUS=4 261CONFIG_SPLIT_PTLOCK_CPUS=4
262# CONFIG_MIGRATION is not set
259CONFIG_RESOURCES_64BIT=y 263CONFIG_RESOURCES_64BIT=y
260CONFIG_ZONE_DMA_FLAG=1 264CONFIG_ZONE_DMA_FLAG=1
261CONFIG_BOUNCE=y 265CONFIG_BOUNCE=y
@@ -265,6 +269,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
265# CONFIG_SCHED_SMT is not set 269# CONFIG_SCHED_SMT is not set
266CONFIG_PROC_DEVICETREE=y 270CONFIG_PROC_DEVICETREE=y
267# CONFIG_CMDLINE_BOOL is not set 271# CONFIG_CMDLINE_BOOL is not set
272CONFIG_EXTRA_TARGETS=""
268CONFIG_ARCH_WANTS_FREEZER_CONTROL=y 273CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
269# CONFIG_PM is not set 274# CONFIG_PM is not set
270CONFIG_SECCOMP=y 275CONFIG_SECCOMP=y
@@ -290,10 +295,6 @@ CONFIG_PCI_MSI=y
290CONFIG_PAGE_OFFSET=0xc000000000000000 295CONFIG_PAGE_OFFSET=0xc000000000000000
291CONFIG_KERNEL_START=0xc000000000000000 296CONFIG_KERNEL_START=0xc000000000000000
292CONFIG_PHYSICAL_START=0x00000000 297CONFIG_PHYSICAL_START=0x00000000
293
294#
295# Networking
296#
297CONFIG_NET=y 298CONFIG_NET=y
298 299
299# 300#
@@ -307,6 +308,7 @@ CONFIG_XFRM_USER=m
307# CONFIG_XFRM_SUB_POLICY is not set 308# CONFIG_XFRM_SUB_POLICY is not set
308# CONFIG_XFRM_MIGRATE is not set 309# CONFIG_XFRM_MIGRATE is not set
309# CONFIG_XFRM_STATISTICS is not set 310# CONFIG_XFRM_STATISTICS is not set
311CONFIG_XFRM_IPCOMP=m
310CONFIG_NET_KEY=m 312CONFIG_NET_KEY=m
311# CONFIG_NET_KEY_MIGRATE is not set 313# CONFIG_NET_KEY_MIGRATE is not set
312CONFIG_INET=y 314CONFIG_INET=y
@@ -422,6 +424,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
422CONFIG_STANDALONE=y 424CONFIG_STANDALONE=y
423CONFIG_PREVENT_FIRMWARE_BUILD=y 425CONFIG_PREVENT_FIRMWARE_BUILD=y
424CONFIG_FW_LOADER=y 426CONFIG_FW_LOADER=y
427CONFIG_FIRMWARE_IN_KERNEL=y
428CONFIG_EXTRA_FIRMWARE=""
425# CONFIG_DEBUG_DRIVER is not set 429# CONFIG_DEBUG_DRIVER is not set
426# CONFIG_DEBUG_DEVRES is not set 430# CONFIG_DEBUG_DEVRES is not set
427# CONFIG_SYS_HYPERVISOR is not set 431# CONFIG_SYS_HYPERVISOR is not set
@@ -449,12 +453,14 @@ CONFIG_CDROM_PKTCDVD=m
449CONFIG_CDROM_PKTCDVD_BUFFERS=8 453CONFIG_CDROM_PKTCDVD_BUFFERS=8
450# CONFIG_CDROM_PKTCDVD_WCACHE is not set 454# CONFIG_CDROM_PKTCDVD_WCACHE is not set
451# CONFIG_ATA_OVER_ETH is not set 455# CONFIG_ATA_OVER_ETH is not set
456# CONFIG_BLK_DEV_HD is not set
452CONFIG_MISC_DEVICES=y 457CONFIG_MISC_DEVICES=y
453# CONFIG_PHANTOM is not set 458# CONFIG_PHANTOM is not set
454# CONFIG_EEPROM_93CX6 is not set 459# CONFIG_EEPROM_93CX6 is not set
455# CONFIG_SGI_IOC4 is not set 460# CONFIG_SGI_IOC4 is not set
456# CONFIG_TIFM_CORE is not set 461# CONFIG_TIFM_CORE is not set
457# CONFIG_ENCLOSURE_SERVICES is not set 462# CONFIG_ENCLOSURE_SERVICES is not set
463# CONFIG_HP_ILO is not set
458CONFIG_HAVE_IDE=y 464CONFIG_HAVE_IDE=y
459CONFIG_IDE=y 465CONFIG_IDE=y
460CONFIG_BLK_DEV_IDE=y 466CONFIG_BLK_DEV_IDE=y
@@ -462,6 +468,7 @@ CONFIG_BLK_DEV_IDE=y
462# 468#
463# Please see Documentation/ide/ide.txt for help/info on IDE drives 469# Please see Documentation/ide/ide.txt for help/info on IDE drives
464# 470#
471CONFIG_IDE_TIMINGS=y
465# CONFIG_BLK_DEV_IDE_SATA is not set 472# CONFIG_BLK_DEV_IDE_SATA is not set
466CONFIG_BLK_DEV_IDEDISK=y 473CONFIG_BLK_DEV_IDEDISK=y
467# CONFIG_IDEDISK_MULTI_MODE is not set 474# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -492,10 +499,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
492# CONFIG_BLK_DEV_AMD74XX is not set 499# CONFIG_BLK_DEV_AMD74XX is not set
493# CONFIG_BLK_DEV_CMD64X is not set 500# CONFIG_BLK_DEV_CMD64X is not set
494# CONFIG_BLK_DEV_TRIFLEX is not set 501# CONFIG_BLK_DEV_TRIFLEX is not set
495# CONFIG_BLK_DEV_CY82C693 is not set
496# CONFIG_BLK_DEV_CS5520 is not set 502# CONFIG_BLK_DEV_CS5520 is not set
497# CONFIG_BLK_DEV_CS5530 is not set 503# CONFIG_BLK_DEV_CS5530 is not set
498# CONFIG_BLK_DEV_HPT34X is not set
499# CONFIG_BLK_DEV_HPT366 is not set 504# CONFIG_BLK_DEV_HPT366 is not set
500# CONFIG_BLK_DEV_JMICRON is not set 505# CONFIG_BLK_DEV_JMICRON is not set
501# CONFIG_BLK_DEV_SC1200 is not set 506# CONFIG_BLK_DEV_SC1200 is not set
@@ -516,8 +521,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
516CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 521CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
517CONFIG_BLK_DEV_IDEDMA_PMAC=y 522CONFIG_BLK_DEV_IDEDMA_PMAC=y
518CONFIG_BLK_DEV_IDEDMA=y 523CONFIG_BLK_DEV_IDEDMA=y
519# CONFIG_BLK_DEV_HD_ONLY is not set
520# CONFIG_BLK_DEV_HD is not set
521 524
522# 525#
523# SCSI device support 526# SCSI device support
@@ -592,6 +595,7 @@ CONFIG_SCSI_LOWLEVEL=y
592# CONFIG_SCSI_DC390T is not set 595# CONFIG_SCSI_DC390T is not set
593# CONFIG_SCSI_DEBUG is not set 596# CONFIG_SCSI_DEBUG is not set
594# CONFIG_SCSI_SRP is not set 597# CONFIG_SCSI_SRP is not set
598# CONFIG_SCSI_DH is not set
595CONFIG_ATA=y 599CONFIG_ATA=y
596# CONFIG_ATA_NONSTANDARD is not set 600# CONFIG_ATA_NONSTANDARD is not set
597CONFIG_SATA_PMP=y 601CONFIG_SATA_PMP=y
@@ -675,29 +679,21 @@ CONFIG_DM_ZERO=m
675# 679#
676# IEEE 1394 (FireWire) support 680# IEEE 1394 (FireWire) support
677# 681#
678# CONFIG_FIREWIRE is not set
679CONFIG_IEEE1394=y
680
681#
682# Subsystem Options
683#
684# CONFIG_IEEE1394_VERBOSEDEBUG is not set
685 682
686# 683#
687# Controllers 684# Enable only one of the two stacks, unless you know what you are doing
688# 685#
689# CONFIG_IEEE1394_PCILYNX is not set 686# CONFIG_FIREWIRE is not set
687CONFIG_IEEE1394=y
690CONFIG_IEEE1394_OHCI1394=y 688CONFIG_IEEE1394_OHCI1394=y
691 689# CONFIG_IEEE1394_PCILYNX is not set
692#
693# Protocols
694#
695CONFIG_IEEE1394_VIDEO1394=m
696CONFIG_IEEE1394_SBP2=m 690CONFIG_IEEE1394_SBP2=m
697CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y 691CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
698CONFIG_IEEE1394_ETH1394=m 692CONFIG_IEEE1394_ETH1394=m
699CONFIG_IEEE1394_DV1394=m
700CONFIG_IEEE1394_RAWIO=y 693CONFIG_IEEE1394_RAWIO=y
694CONFIG_IEEE1394_VIDEO1394=m
695CONFIG_IEEE1394_DV1394=m
696# CONFIG_IEEE1394_VERBOSEDEBUG is not set
701# CONFIG_I2O is not set 697# CONFIG_I2O is not set
702CONFIG_MACINTOSH_DRIVERS=y 698CONFIG_MACINTOSH_DRIVERS=y
703CONFIG_ADB_PMU=y 699CONFIG_ADB_PMU=y
@@ -712,7 +708,6 @@ CONFIG_WINDFARM_PM112=y
712CONFIG_WINDFARM_PM121=y 708CONFIG_WINDFARM_PM121=y
713# CONFIG_PMAC_RACKMETER is not set 709# CONFIG_PMAC_RACKMETER is not set
714CONFIG_NETDEVICES=y 710CONFIG_NETDEVICES=y
715# CONFIG_NETDEVICES_MULTIQUEUE is not set
716CONFIG_DUMMY=m 711CONFIG_DUMMY=m
717CONFIG_BONDING=m 712CONFIG_BONDING=m
718# CONFIG_MACVLAN is not set 713# CONFIG_MACVLAN is not set
@@ -720,7 +715,23 @@ CONFIG_BONDING=m
720CONFIG_TUN=m 715CONFIG_TUN=m
721# CONFIG_VETH is not set 716# CONFIG_VETH is not set
722# CONFIG_ARCNET is not set 717# CONFIG_ARCNET is not set
723# CONFIG_PHYLIB is not set 718CONFIG_PHYLIB=y
719
720#
721# MII PHY device drivers
722#
723# CONFIG_MARVELL_PHY is not set
724# CONFIG_DAVICOM_PHY is not set
725# CONFIG_QSEMI_PHY is not set
726# CONFIG_LXT_PHY is not set
727# CONFIG_CICADA_PHY is not set
728# CONFIG_VITESSE_PHY is not set
729# CONFIG_SMSC_PHY is not set
730# CONFIG_BROADCOM_PHY is not set
731# CONFIG_ICPLUS_PHY is not set
732# CONFIG_REALTEK_PHY is not set
733# CONFIG_FIXED_PHY is not set
734# CONFIG_MDIO_BITBANG is not set
724CONFIG_NET_ETHERNET=y 735CONFIG_NET_ETHERNET=y
725CONFIG_MII=y 736CONFIG_MII=y
726# CONFIG_HAPPYMEAL is not set 737# CONFIG_HAPPYMEAL is not set
@@ -740,10 +751,8 @@ CONFIG_ACENIC=y
740CONFIG_ACENIC_OMIT_TIGON_I=y 751CONFIG_ACENIC_OMIT_TIGON_I=y
741# CONFIG_DL2K is not set 752# CONFIG_DL2K is not set
742CONFIG_E1000=y 753CONFIG_E1000=y
743# CONFIG_E1000_NAPI is not set
744# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 754# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
745# CONFIG_E1000E is not set 755# CONFIG_E1000E is not set
746# CONFIG_E1000E_ENABLED is not set
747# CONFIG_IP1000 is not set 756# CONFIG_IP1000 is not set
748# CONFIG_IGB is not set 757# CONFIG_IGB is not set
749# CONFIG_NS83820 is not set 758# CONFIG_NS83820 is not set
@@ -758,6 +767,7 @@ CONFIG_TIGON3=y
758# CONFIG_BNX2 is not set 767# CONFIG_BNX2 is not set
759# CONFIG_QLA3XXX is not set 768# CONFIG_QLA3XXX is not set
760# CONFIG_ATL1 is not set 769# CONFIG_ATL1 is not set
770# CONFIG_ATL1E is not set
761CONFIG_NETDEV_10000=y 771CONFIG_NETDEV_10000=y
762# CONFIG_CHELSIO_T1 is not set 772# CONFIG_CHELSIO_T1 is not set
763# CONFIG_CHELSIO_T3 is not set 773# CONFIG_CHELSIO_T3 is not set
@@ -855,6 +865,7 @@ CONFIG_INPUT_MOUSE=y
855# CONFIG_MOUSE_PS2 is not set 865# CONFIG_MOUSE_PS2 is not set
856# CONFIG_MOUSE_SERIAL is not set 866# CONFIG_MOUSE_SERIAL is not set
857# CONFIG_MOUSE_APPLETOUCH is not set 867# CONFIG_MOUSE_APPLETOUCH is not set
868# CONFIG_MOUSE_BCM5974 is not set
858# CONFIG_MOUSE_VSXXXAA is not set 869# CONFIG_MOUSE_VSXXXAA is not set
859# CONFIG_INPUT_JOYSTICK is not set 870# CONFIG_INPUT_JOYSTICK is not set
860# CONFIG_INPUT_TABLET is not set 871# CONFIG_INPUT_TABLET is not set
@@ -869,12 +880,14 @@ CONFIG_SERIO=y
869# CONFIG_SERIO_SERPORT is not set 880# CONFIG_SERIO_SERPORT is not set
870# CONFIG_SERIO_PCIPS2 is not set 881# CONFIG_SERIO_PCIPS2 is not set
871# CONFIG_SERIO_RAW is not set 882# CONFIG_SERIO_RAW is not set
883# CONFIG_SERIO_XILINX_XPS_PS2 is not set
872# CONFIG_GAMEPORT is not set 884# CONFIG_GAMEPORT is not set
873 885
874# 886#
875# Character devices 887# Character devices
876# 888#
877CONFIG_VT=y 889CONFIG_VT=y
890CONFIG_CONSOLE_TRANSLATIONS=y
878CONFIG_VT_CONSOLE=y 891CONFIG_VT_CONSOLE=y
879CONFIG_HW_CONSOLE=y 892CONFIG_HW_CONSOLE=y
880# CONFIG_VT_HW_CONSOLE_BINDING is not set 893# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -909,44 +922,69 @@ CONFIG_DEVPORT=y
909CONFIG_I2C=y 922CONFIG_I2C=y
910CONFIG_I2C_BOARDINFO=y 923CONFIG_I2C_BOARDINFO=y
911CONFIG_I2C_CHARDEV=y 924CONFIG_I2C_CHARDEV=y
925CONFIG_I2C_HELPER_AUTO=y
912CONFIG_I2C_ALGOBIT=y 926CONFIG_I2C_ALGOBIT=y
913 927
914# 928#
915# I2C Hardware Bus support 929# I2C Hardware Bus support
916# 930#
931
932#
933# PC SMBus host controller drivers
934#
917# CONFIG_I2C_ALI1535 is not set 935# CONFIG_I2C_ALI1535 is not set
918# CONFIG_I2C_ALI1563 is not set 936# CONFIG_I2C_ALI1563 is not set
919# CONFIG_I2C_ALI15X3 is not set 937# CONFIG_I2C_ALI15X3 is not set
920# CONFIG_I2C_AMD756 is not set 938# CONFIG_I2C_AMD756 is not set
921# CONFIG_I2C_AMD8111 is not set 939# CONFIG_I2C_AMD8111 is not set
922# CONFIG_I2C_I801 is not set 940# CONFIG_I2C_I801 is not set
923# CONFIG_I2C_I810 is not set 941# CONFIG_I2C_ISCH is not set
924# CONFIG_I2C_PIIX4 is not set 942# CONFIG_I2C_PIIX4 is not set
925CONFIG_I2C_POWERMAC=y
926# CONFIG_I2C_NFORCE2 is not set 943# CONFIG_I2C_NFORCE2 is not set
927# CONFIG_I2C_OCORES is not set
928# CONFIG_I2C_PARPORT_LIGHT is not set
929# CONFIG_I2C_PROSAVAGE is not set
930# CONFIG_I2C_SAVAGE4 is not set
931# CONFIG_I2C_SIMTEC is not set
932# CONFIG_I2C_SIS5595 is not set 944# CONFIG_I2C_SIS5595 is not set
933# CONFIG_I2C_SIS630 is not set 945# CONFIG_I2C_SIS630 is not set
934# CONFIG_I2C_SIS96X is not set 946# CONFIG_I2C_SIS96X is not set
935# CONFIG_I2C_TAOS_EVM is not set
936# CONFIG_I2C_STUB is not set
937# CONFIG_I2C_TINY_USB is not set
938# CONFIG_I2C_VIA is not set 947# CONFIG_I2C_VIA is not set
939# CONFIG_I2C_VIAPRO is not set 948# CONFIG_I2C_VIAPRO is not set
949
950#
951# Mac SMBus host controller drivers
952#
953CONFIG_I2C_POWERMAC=y
954
955#
956# I2C system bus drivers (mostly embedded / system-on-chip)
957#
958# CONFIG_I2C_OCORES is not set
959# CONFIG_I2C_SIMTEC is not set
960
961#
962# External I2C/SMBus adapter drivers
963#
964# CONFIG_I2C_PARPORT_LIGHT is not set
965# CONFIG_I2C_TAOS_EVM is not set
966# CONFIG_I2C_TINY_USB is not set
967
968#
969# Graphics adapter I2C/DDC channel drivers
970#
940# CONFIG_I2C_VOODOO3 is not set 971# CONFIG_I2C_VOODOO3 is not set
972
973#
974# Other I2C/SMBus bus drivers
975#
941# CONFIG_I2C_PCA_PLATFORM is not set 976# CONFIG_I2C_PCA_PLATFORM is not set
977# CONFIG_I2C_STUB is not set
942 978
943# 979#
944# Miscellaneous I2C Chip support 980# Miscellaneous I2C Chip support
945# 981#
946# CONFIG_DS1682 is not set 982# CONFIG_DS1682 is not set
983# CONFIG_AT24 is not set
947# CONFIG_SENSORS_EEPROM is not set 984# CONFIG_SENSORS_EEPROM is not set
948# CONFIG_SENSORS_PCF8574 is not set 985# CONFIG_SENSORS_PCF8574 is not set
949# CONFIG_PCF8575 is not set 986# CONFIG_PCF8575 is not set
987# CONFIG_SENSORS_PCA9539 is not set
950# CONFIG_SENSORS_PCF8591 is not set 988# CONFIG_SENSORS_PCF8591 is not set
951# CONFIG_SENSORS_MAX6875 is not set 989# CONFIG_SENSORS_MAX6875 is not set
952# CONFIG_SENSORS_TSL2550 is not set 990# CONFIG_SENSORS_TSL2550 is not set
@@ -955,10 +993,13 @@ CONFIG_I2C_POWERMAC=y
955# CONFIG_I2C_DEBUG_BUS is not set 993# CONFIG_I2C_DEBUG_BUS is not set
956# CONFIG_I2C_DEBUG_CHIP is not set 994# CONFIG_I2C_DEBUG_CHIP is not set
957# CONFIG_SPI is not set 995# CONFIG_SPI is not set
996CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
997# CONFIG_GPIOLIB is not set
958# CONFIG_W1 is not set 998# CONFIG_W1 is not set
959# CONFIG_POWER_SUPPLY is not set 999# CONFIG_POWER_SUPPLY is not set
960# CONFIG_HWMON is not set 1000# CONFIG_HWMON is not set
961# CONFIG_THERMAL is not set 1001# CONFIG_THERMAL is not set
1002# CONFIG_THERMAL_HWMON is not set
962# CONFIG_WATCHDOG is not set 1003# CONFIG_WATCHDOG is not set
963 1004
964# 1005#
@@ -970,8 +1011,10 @@ CONFIG_SSB_POSSIBLE=y
970# 1011#
971# Multifunction device drivers 1012# Multifunction device drivers
972# 1013#
1014# CONFIG_MFD_CORE is not set
973# CONFIG_MFD_SM501 is not set 1015# CONFIG_MFD_SM501 is not set
974# CONFIG_HTC_PASIC3 is not set 1016# CONFIG_HTC_PASIC3 is not set
1017# CONFIG_MFD_TMIO is not set
975 1018
976# 1019#
977# Multimedia devices 1020# Multimedia devices
@@ -1050,10 +1093,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1050# CONFIG_FB_TRIDENT is not set 1093# CONFIG_FB_TRIDENT is not set
1051# CONFIG_FB_ARK is not set 1094# CONFIG_FB_ARK is not set
1052# CONFIG_FB_PM3 is not set 1095# CONFIG_FB_PM3 is not set
1096# CONFIG_FB_CARMINE is not set
1053# CONFIG_FB_IBM_GXT4500 is not set 1097# CONFIG_FB_IBM_GXT4500 is not set
1054# CONFIG_FB_VIRTUAL is not set 1098# CONFIG_FB_VIRTUAL is not set
1055CONFIG_BACKLIGHT_LCD_SUPPORT=y 1099CONFIG_BACKLIGHT_LCD_SUPPORT=y
1056CONFIG_LCD_CLASS_DEVICE=m 1100CONFIG_LCD_CLASS_DEVICE=m
1101# CONFIG_LCD_ILI9320 is not set
1102# CONFIG_LCD_PLATFORM is not set
1057CONFIG_BACKLIGHT_CLASS_DEVICE=y 1103CONFIG_BACKLIGHT_CLASS_DEVICE=y
1058# CONFIG_BACKLIGHT_CORGI is not set 1104# CONFIG_BACKLIGHT_CORGI is not set
1059 1105
@@ -1077,15 +1123,7 @@ CONFIG_LOGO=y
1077CONFIG_LOGO_LINUX_MONO=y 1123CONFIG_LOGO_LINUX_MONO=y
1078CONFIG_LOGO_LINUX_VGA16=y 1124CONFIG_LOGO_LINUX_VGA16=y
1079CONFIG_LOGO_LINUX_CLUT224=y 1125CONFIG_LOGO_LINUX_CLUT224=y
1080
1081#
1082# Sound
1083#
1084CONFIG_SOUND=m 1126CONFIG_SOUND=m
1085
1086#
1087# Advanced Linux Sound Architecture
1088#
1089CONFIG_SND=m 1127CONFIG_SND=m
1090CONFIG_SND_TIMER=m 1128CONFIG_SND_TIMER=m
1091CONFIG_SND_PCM=m 1129CONFIG_SND_PCM=m
@@ -1103,19 +1141,13 @@ CONFIG_SND_SUPPORT_OLD_API=y
1103CONFIG_SND_VERBOSE_PROCFS=y 1141CONFIG_SND_VERBOSE_PROCFS=y
1104# CONFIG_SND_VERBOSE_PRINTK is not set 1142# CONFIG_SND_VERBOSE_PRINTK is not set
1105# CONFIG_SND_DEBUG is not set 1143# CONFIG_SND_DEBUG is not set
1106 1144CONFIG_SND_DRIVERS=y
1107#
1108# Generic devices
1109#
1110# CONFIG_SND_DUMMY is not set 1145# CONFIG_SND_DUMMY is not set
1111# CONFIG_SND_VIRMIDI is not set 1146# CONFIG_SND_VIRMIDI is not set
1112# CONFIG_SND_MTPAV is not set 1147# CONFIG_SND_MTPAV is not set
1113# CONFIG_SND_SERIAL_U16550 is not set 1148# CONFIG_SND_SERIAL_U16550 is not set
1114# CONFIG_SND_MPU401 is not set 1149# CONFIG_SND_MPU401 is not set
1115 1150CONFIG_SND_PCI=y
1116#
1117# PCI devices
1118#
1119# CONFIG_SND_AD1889 is not set 1151# CONFIG_SND_AD1889 is not set
1120# CONFIG_SND_ALS300 is not set 1152# CONFIG_SND_ALS300 is not set
1121# CONFIG_SND_ALS4000 is not set 1153# CONFIG_SND_ALS4000 is not set
@@ -1177,20 +1209,9 @@ CONFIG_SND_VERBOSE_PROCFS=y
1177# CONFIG_SND_VIRTUOSO is not set 1209# CONFIG_SND_VIRTUOSO is not set
1178# CONFIG_SND_VX222 is not set 1210# CONFIG_SND_VX222 is not set
1179# CONFIG_SND_YMFPCI is not set 1211# CONFIG_SND_YMFPCI is not set
1180 1212CONFIG_SND_PPC=y
1181#
1182# ALSA PowerMac devices
1183#
1184CONFIG_SND_POWERMAC=m 1213CONFIG_SND_POWERMAC=m
1185CONFIG_SND_POWERMAC_AUTO_DRC=y 1214CONFIG_SND_POWERMAC_AUTO_DRC=y
1186
1187#
1188# ALSA PowerPC devices
1189#
1190
1191#
1192# Apple Onboard Audio driver
1193#
1194CONFIG_SND_AOA=m 1215CONFIG_SND_AOA=m
1195CONFIG_SND_AOA_FABRIC_LAYOUT=m 1216CONFIG_SND_AOA_FABRIC_LAYOUT=m
1196CONFIG_SND_AOA_ONYX=m 1217CONFIG_SND_AOA_ONYX=m
@@ -1198,30 +1219,11 @@ CONFIG_SND_AOA_TAS=m
1198CONFIG_SND_AOA_TOONIE=m 1219CONFIG_SND_AOA_TOONIE=m
1199CONFIG_SND_AOA_SOUNDBUS=m 1220CONFIG_SND_AOA_SOUNDBUS=m
1200CONFIG_SND_AOA_SOUNDBUS_I2S=m 1221CONFIG_SND_AOA_SOUNDBUS_I2S=m
1201 1222CONFIG_SND_USB=y
1202#
1203# USB devices
1204#
1205CONFIG_SND_USB_AUDIO=m 1223CONFIG_SND_USB_AUDIO=m
1206# CONFIG_SND_USB_USX2Y is not set 1224# CONFIG_SND_USB_USX2Y is not set
1207# CONFIG_SND_USB_CAIAQ is not set 1225# CONFIG_SND_USB_CAIAQ is not set
1208
1209#
1210# System on Chip audio support
1211#
1212# CONFIG_SND_SOC is not set 1226# CONFIG_SND_SOC is not set
1213
1214#
1215# ALSA SoC audio for Freescale SOCs
1216#
1217
1218#
1219# SoC Audio for the Texas Instruments OMAP
1220#
1221
1222#
1223# Open Sound System
1224#
1225# CONFIG_SOUND_PRIME is not set 1227# CONFIG_SOUND_PRIME is not set
1226CONFIG_HID_SUPPORT=y 1228CONFIG_HID_SUPPORT=y
1227CONFIG_HID=y 1229CONFIG_HID=y
@@ -1256,6 +1258,7 @@ CONFIG_USB_DEVICEFS=y
1256CONFIG_USB_DEVICE_CLASS=y 1258CONFIG_USB_DEVICE_CLASS=y
1257# CONFIG_USB_DYNAMIC_MINORS is not set 1259# CONFIG_USB_DYNAMIC_MINORS is not set
1258# CONFIG_USB_OTG is not set 1260# CONFIG_USB_OTG is not set
1261CONFIG_USB_MON=y
1259 1262
1260# 1263#
1261# USB Host Controller Drivers 1264# USB Host Controller Drivers
@@ -1306,6 +1309,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1306# CONFIG_USB_STORAGE_ALAUDA is not set 1309# CONFIG_USB_STORAGE_ALAUDA is not set
1307# CONFIG_USB_STORAGE_ONETOUCH is not set 1310# CONFIG_USB_STORAGE_ONETOUCH is not set
1308# CONFIG_USB_STORAGE_KARMA is not set 1311# CONFIG_USB_STORAGE_KARMA is not set
1312# CONFIG_USB_STORAGE_SIERRA is not set
1309# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1313# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1310# CONFIG_USB_LIBUSUAL is not set 1314# CONFIG_USB_LIBUSUAL is not set
1311 1315
@@ -1314,7 +1318,6 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
1314# 1318#
1315# CONFIG_USB_MDC800 is not set 1319# CONFIG_USB_MDC800 is not set
1316# CONFIG_USB_MICROTEK is not set 1320# CONFIG_USB_MICROTEK is not set
1317CONFIG_USB_MON=y
1318 1321
1319# 1322#
1320# USB port drivers 1323# USB port drivers
@@ -1323,7 +1326,6 @@ CONFIG_USB_SERIAL=m
1323CONFIG_USB_EZUSB=y 1326CONFIG_USB_EZUSB=y
1324CONFIG_USB_SERIAL_GENERIC=y 1327CONFIG_USB_SERIAL_GENERIC=y
1325# CONFIG_USB_SERIAL_AIRCABLE is not set 1328# CONFIG_USB_SERIAL_AIRCABLE is not set
1326# CONFIG_USB_SERIAL_AIRPRIME is not set
1327# CONFIG_USB_SERIAL_ARK3116 is not set 1329# CONFIG_USB_SERIAL_ARK3116 is not set
1328CONFIG_USB_SERIAL_BELKIN=m 1330CONFIG_USB_SERIAL_BELKIN=m
1329# CONFIG_USB_SERIAL_CH341 is not set 1331# CONFIG_USB_SERIAL_CH341 is not set
@@ -1383,7 +1385,6 @@ CONFIG_USB_SERIAL_OMNINET=m
1383# CONFIG_USB_EMI62 is not set 1385# CONFIG_USB_EMI62 is not set
1384# CONFIG_USB_EMI26 is not set 1386# CONFIG_USB_EMI26 is not set
1385# CONFIG_USB_ADUTUX is not set 1387# CONFIG_USB_ADUTUX is not set
1386# CONFIG_USB_AUERSWALD is not set
1387# CONFIG_USB_RIO500 is not set 1388# CONFIG_USB_RIO500 is not set
1388# CONFIG_USB_LEGOTOWER is not set 1389# CONFIG_USB_LEGOTOWER is not set
1389# CONFIG_USB_LCD is not set 1390# CONFIG_USB_LCD is not set
@@ -1497,6 +1498,7 @@ CONFIG_HFSPLUS_FS=m
1497CONFIG_CRAMFS=y 1498CONFIG_CRAMFS=y
1498# CONFIG_VXFS_FS is not set 1499# CONFIG_VXFS_FS is not set
1499# CONFIG_MINIX_FS is not set 1500# CONFIG_MINIX_FS is not set
1501# CONFIG_OMFS_FS is not set
1500# CONFIG_HPFS_FS is not set 1502# CONFIG_HPFS_FS is not set
1501# CONFIG_QNX4FS_FS is not set 1503# CONFIG_QNX4FS_FS is not set
1502# CONFIG_ROMFS_FS is not set 1504# CONFIG_ROMFS_FS is not set
@@ -1519,7 +1521,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1519CONFIG_NFS_COMMON=y 1521CONFIG_NFS_COMMON=y
1520CONFIG_SUNRPC=y 1522CONFIG_SUNRPC=y
1521CONFIG_SUNRPC_GSS=y 1523CONFIG_SUNRPC_GSS=y
1522# CONFIG_SUNRPC_BIND34 is not set
1523CONFIG_RPCSEC_GSS_KRB5=y 1524CONFIG_RPCSEC_GSS_KRB5=y
1524# CONFIG_RPCSEC_GSS_SPKM3 is not set 1525# CONFIG_RPCSEC_GSS_SPKM3 is not set
1525# CONFIG_SMB_FS is not set 1526# CONFIG_SMB_FS is not set
@@ -1603,6 +1604,7 @@ CONFIG_BITREVERSE=y
1603# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1604# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1604CONFIG_CRC_CCITT=m 1605CONFIG_CRC_CCITT=m
1605# CONFIG_CRC16 is not set 1606# CONFIG_CRC16 is not set
1607CONFIG_CRC_T10DIF=y
1606CONFIG_CRC_ITU_T=m 1608CONFIG_CRC_ITU_T=m
1607CONFIG_CRC32=y 1609CONFIG_CRC32=y
1608# CONFIG_CRC7 is not set 1610# CONFIG_CRC7 is not set
@@ -1629,8 +1631,10 @@ CONFIG_DEBUG_FS=y
1629CONFIG_DEBUG_KERNEL=y 1631CONFIG_DEBUG_KERNEL=y
1630# CONFIG_DEBUG_SHIRQ is not set 1632# CONFIG_DEBUG_SHIRQ is not set
1631CONFIG_DETECT_SOFTLOCKUP=y 1633CONFIG_DETECT_SOFTLOCKUP=y
1634# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1635CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1632CONFIG_SCHED_DEBUG=y 1636CONFIG_SCHED_DEBUG=y
1633# CONFIG_SCHEDSTATS is not set 1637CONFIG_SCHEDSTATS=y
1634# CONFIG_TIMER_STATS is not set 1638# CONFIG_TIMER_STATS is not set
1635# CONFIG_DEBUG_OBJECTS is not set 1639# CONFIG_DEBUG_OBJECTS is not set
1636# CONFIG_SLUB_DEBUG_ON is not set 1640# CONFIG_SLUB_DEBUG_ON is not set
@@ -1644,22 +1648,37 @@ CONFIG_DEBUG_MUTEXES=y
1644# CONFIG_LOCK_STAT is not set 1648# CONFIG_LOCK_STAT is not set
1645# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1649# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1646# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1650# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1651CONFIG_STACKTRACE=y
1647# CONFIG_DEBUG_KOBJECT is not set 1652# CONFIG_DEBUG_KOBJECT is not set
1648CONFIG_DEBUG_BUGVERBOSE=y 1653CONFIG_DEBUG_BUGVERBOSE=y
1649# CONFIG_DEBUG_INFO is not set 1654# CONFIG_DEBUG_INFO is not set
1650# CONFIG_DEBUG_VM is not set 1655# CONFIG_DEBUG_VM is not set
1651# CONFIG_DEBUG_WRITECOUNT is not set 1656# CONFIG_DEBUG_WRITECOUNT is not set
1657CONFIG_DEBUG_MEMORY_INIT=y
1652# CONFIG_DEBUG_LIST is not set 1658# CONFIG_DEBUG_LIST is not set
1653# CONFIG_DEBUG_SG is not set 1659# CONFIG_DEBUG_SG is not set
1660CONFIG_FRAME_POINTER=y
1654# CONFIG_BOOT_PRINTK_DELAY is not set 1661# CONFIG_BOOT_PRINTK_DELAY is not set
1655# CONFIG_RCU_TORTURE_TEST is not set 1662# CONFIG_RCU_TORTURE_TEST is not set
1656# CONFIG_BACKTRACE_SELF_TEST is not set 1663# CONFIG_BACKTRACE_SELF_TEST is not set
1657# CONFIG_FAULT_INJECTION is not set 1664# CONFIG_FAULT_INJECTION is not set
1665CONFIG_LATENCYTOP=y
1666CONFIG_SYSCTL_SYSCALL_CHECK=y
1667CONFIG_HAVE_FTRACE=y
1668CONFIG_HAVE_DYNAMIC_FTRACE=y
1669# CONFIG_FTRACE is not set
1670# CONFIG_IRQSOFF_TRACER is not set
1671# CONFIG_SCHED_TRACER is not set
1672# CONFIG_CONTEXT_SWITCH_TRACER is not set
1658# CONFIG_SAMPLES is not set 1673# CONFIG_SAMPLES is not set
1674CONFIG_HAVE_ARCH_KGDB=y
1675# CONFIG_KGDB is not set
1659# CONFIG_DEBUG_STACKOVERFLOW is not set 1676# CONFIG_DEBUG_STACKOVERFLOW is not set
1660# CONFIG_DEBUG_STACK_USAGE is not set 1677# CONFIG_DEBUG_STACK_USAGE is not set
1661# CONFIG_DEBUG_PAGEALLOC is not set 1678# CONFIG_DEBUG_PAGEALLOC is not set
1662# CONFIG_DEBUGGER is not set 1679# CONFIG_CODE_PATCHING_SELFTEST is not set
1680# CONFIG_FTR_FIXUP_SELFTEST is not set
1681# CONFIG_XMON is not set
1663CONFIG_IRQSTACKS=y 1682CONFIG_IRQSTACKS=y
1664# CONFIG_VIRQ_DEBUG is not set 1683# CONFIG_VIRQ_DEBUG is not set
1665CONFIG_BOOTX_TEXT=y 1684CONFIG_BOOTX_TEXT=y
@@ -1718,6 +1737,10 @@ CONFIG_CRYPTO_CRC32C=m
1718CONFIG_CRYPTO_MD4=m 1737CONFIG_CRYPTO_MD4=m
1719CONFIG_CRYPTO_MD5=y 1738CONFIG_CRYPTO_MD5=y
1720CONFIG_CRYPTO_MICHAEL_MIC=m 1739CONFIG_CRYPTO_MICHAEL_MIC=m
1740# CONFIG_CRYPTO_RMD128 is not set
1741# CONFIG_CRYPTO_RMD160 is not set
1742# CONFIG_CRYPTO_RMD256 is not set
1743# CONFIG_CRYPTO_RMD320 is not set
1721CONFIG_CRYPTO_SHA1=m 1744CONFIG_CRYPTO_SHA1=m
1722CONFIG_CRYPTO_SHA256=m 1745CONFIG_CRYPTO_SHA256=m
1723CONFIG_CRYPTO_SHA512=m 1746CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig
index 63f0bdb6340d..2c3f13577f4b 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.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:01:36 2008 4# Tue Aug 26 13:15:49 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -31,6 +31,7 @@ CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y 31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
32CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 33CONFIG_STACKTRACE_SUPPORT=y
34CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y 35CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -94,9 +95,8 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
94CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
95# CONFIG_EMBEDDED is not set 96# CONFIG_EMBEDDED is not set
96CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
97CONFIG_SYSCTL_SYSCALL_CHECK=y
98CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_ALL is not set 99CONFIG_KALLSYMS_ALL=y
100# CONFIG_KALLSYMS_EXTRA_PASS is not set 100# CONFIG_KALLSYMS_EXTRA_PASS is not set
101CONFIG_HOTPLUG=y 101CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 102CONFIG_PRINTK=y
@@ -120,10 +120,16 @@ CONFIG_SLUB=y
120# CONFIG_MARKERS is not set 120# CONFIG_MARKERS is not set
121CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
125# CONFIG_HAVE_DMA_ATTRS is not set 127CONFIG_HAVE_ARCH_TRACEHOOK=y
128CONFIG_HAVE_DMA_ATTRS=y
129CONFIG_USE_GENERIC_SMP_HELPERS=y
130# CONFIG_HAVE_CLK is not set
126CONFIG_PROC_PAGE_MONITOR=y 131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set 135# CONFIG_TINY_SHMEM is not set
@@ -139,6 +145,7 @@ CONFIG_STOP_MACHINE=y
139CONFIG_BLOCK=y 145CONFIG_BLOCK=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
141CONFIG_BLK_DEV_BSG=y 147CONFIG_BLK_DEV_BSG=y
148# CONFIG_BLK_DEV_INTEGRITY is not set
142CONFIG_BLOCK_COMPAT=y 149CONFIG_BLOCK_COMPAT=y
143 150
144# 151#
@@ -159,9 +166,6 @@ CONFIG_CLASSIC_RCU=y
159# Platform support 166# Platform support
160# 167#
161CONFIG_PPC_MULTIPLATFORM=y 168CONFIG_PPC_MULTIPLATFORM=y
162# CONFIG_PPC_82xx is not set
163# CONFIG_PPC_83xx is not set
164# CONFIG_PPC_86xx is not set
165# CONFIG_PPC_PSERIES is not set 169# CONFIG_PPC_PSERIES is not set
166CONFIG_LPARCFG=y 170CONFIG_LPARCFG=y
167CONFIG_PPC_ISERIES=y 171CONFIG_PPC_ISERIES=y
@@ -173,8 +177,6 @@ CONFIG_VIODASD=y
173CONFIG_VIOCD=m 177CONFIG_VIOCD=m
174CONFIG_VIOTAPE=m 178CONFIG_VIOTAPE=m
175CONFIG_VIOPATH=y 179CONFIG_VIOPATH=y
176# CONFIG_PPC_MPC512x is not set
177# CONFIG_PPC_MPC5121 is not set
178# CONFIG_PPC_PMAC is not set 180# CONFIG_PPC_PMAC is not set
179# CONFIG_PPC_MAPLE is not set 181# CONFIG_PPC_MAPLE is not set
180# CONFIG_PPC_PASEMI is not set 182# CONFIG_PPC_PASEMI is not set
@@ -211,7 +213,7 @@ CONFIG_HZ_250=y
211# CONFIG_HZ_300 is not set 213# CONFIG_HZ_300 is not set
212# CONFIG_HZ_1000 is not set 214# CONFIG_HZ_1000 is not set
213CONFIG_HZ=250 215CONFIG_HZ=250
214# CONFIG_SCHED_HRTICK is not set 216CONFIG_SCHED_HRTICK=y
215CONFIG_PREEMPT_NONE=y 217CONFIG_PREEMPT_NONE=y
216# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
217# CONFIG_PREEMPT is not set 219# CONFIG_PREEMPT is not set
@@ -241,6 +243,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
241CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 243CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
242CONFIG_PAGEFLAGS_EXTENDED=y 244CONFIG_PAGEFLAGS_EXTENDED=y
243CONFIG_SPLIT_PTLOCK_CPUS=4 245CONFIG_SPLIT_PTLOCK_CPUS=4
246# CONFIG_MIGRATION is not set
244CONFIG_RESOURCES_64BIT=y 247CONFIG_RESOURCES_64BIT=y
245CONFIG_ZONE_DMA_FLAG=1 248CONFIG_ZONE_DMA_FLAG=1
246CONFIG_BOUNCE=y 249CONFIG_BOUNCE=y
@@ -250,6 +253,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
250# CONFIG_SCHED_SMT is not set 253# CONFIG_SCHED_SMT is not set
251CONFIG_PROC_DEVICETREE=y 254CONFIG_PROC_DEVICETREE=y
252# CONFIG_CMDLINE_BOOL is not set 255# CONFIG_CMDLINE_BOOL is not set
256CONFIG_EXTRA_TARGETS=""
253# CONFIG_PM is not set 257# CONFIG_PM is not set
254CONFIG_SECCOMP=y 258CONFIG_SECCOMP=y
255CONFIG_ISA_DMA_API=y 259CONFIG_ISA_DMA_API=y
@@ -274,10 +278,6 @@ CONFIG_ARCH_SUPPORTS_MSI=y
274CONFIG_PAGE_OFFSET=0xc000000000000000 278CONFIG_PAGE_OFFSET=0xc000000000000000
275CONFIG_KERNEL_START=0xc000000000000000 279CONFIG_KERNEL_START=0xc000000000000000
276CONFIG_PHYSICAL_START=0x00000000 280CONFIG_PHYSICAL_START=0x00000000
277
278#
279# Networking
280#
281CONFIG_NET=y 281CONFIG_NET=y
282 282
283# 283#
@@ -291,6 +291,7 @@ CONFIG_XFRM_USER=m
291CONFIG_XFRM_SUB_POLICY=y 291CONFIG_XFRM_SUB_POLICY=y
292# CONFIG_XFRM_MIGRATE is not set 292# CONFIG_XFRM_MIGRATE is not set
293# CONFIG_XFRM_STATISTICS is not set 293# CONFIG_XFRM_STATISTICS is not set
294CONFIG_XFRM_IPCOMP=m
294CONFIG_NET_KEY=m 295CONFIG_NET_KEY=m
295# CONFIG_NET_KEY_MIGRATE is not set 296# CONFIG_NET_KEY_MIGRATE is not set
296CONFIG_INET=y 297CONFIG_INET=y
@@ -480,7 +481,9 @@ CONFIG_NET_CLS_ROUTE=y
480CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 481CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
481CONFIG_STANDALONE=y 482CONFIG_STANDALONE=y
482CONFIG_PREVENT_FIRMWARE_BUILD=y 483CONFIG_PREVENT_FIRMWARE_BUILD=y
483CONFIG_FW_LOADER=m 484CONFIG_FW_LOADER=y
485CONFIG_FIRMWARE_IN_KERNEL=y
486CONFIG_EXTRA_FIRMWARE=""
484# CONFIG_DEBUG_DRIVER is not set 487# CONFIG_DEBUG_DRIVER is not set
485# CONFIG_DEBUG_DEVRES is not set 488# CONFIG_DEBUG_DEVRES is not set
486# CONFIG_SYS_HYPERVISOR is not set 489# CONFIG_SYS_HYPERVISOR is not set
@@ -504,12 +507,14 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
504# CONFIG_BLK_DEV_XIP is not set 507# CONFIG_BLK_DEV_XIP is not set
505# CONFIG_CDROM_PKTCDVD is not set 508# CONFIG_CDROM_PKTCDVD is not set
506# CONFIG_ATA_OVER_ETH is not set 509# CONFIG_ATA_OVER_ETH is not set
510# CONFIG_BLK_DEV_HD is not set
507CONFIG_MISC_DEVICES=y 511CONFIG_MISC_DEVICES=y
508# CONFIG_PHANTOM is not set 512# CONFIG_PHANTOM is not set
509# CONFIG_EEPROM_93CX6 is not set 513# CONFIG_EEPROM_93CX6 is not set
510# CONFIG_SGI_IOC4 is not set 514# CONFIG_SGI_IOC4 is not set
511# CONFIG_TIFM_CORE is not set 515# CONFIG_TIFM_CORE is not set
512# CONFIG_ENCLOSURE_SERVICES is not set 516# CONFIG_ENCLOSURE_SERVICES is not set
517# CONFIG_HP_ILO is not set
513CONFIG_HAVE_IDE=y 518CONFIG_HAVE_IDE=y
514# CONFIG_IDE is not set 519# CONFIG_IDE is not set
515 520
@@ -588,6 +593,7 @@ CONFIG_SCSI_IBMVSCSI=m
588# CONFIG_SCSI_DC390T is not set 593# CONFIG_SCSI_DC390T is not set
589# CONFIG_SCSI_DEBUG is not set 594# CONFIG_SCSI_DEBUG is not set
590# CONFIG_SCSI_SRP is not set 595# CONFIG_SCSI_SRP is not set
596# CONFIG_SCSI_DH is not set
591# CONFIG_ATA is not set 597# CONFIG_ATA is not set
592CONFIG_MD=y 598CONFIG_MD=y
593CONFIG_BLK_DEV_MD=y 599CONFIG_BLK_DEV_MD=y
@@ -612,12 +618,15 @@ CONFIG_DM_ZERO=m
612# 618#
613# IEEE 1394 (FireWire) support 619# IEEE 1394 (FireWire) support
614# 620#
621
622#
623# Enable only one of the two stacks, unless you know what you are doing
624#
615# CONFIG_FIREWIRE is not set 625# CONFIG_FIREWIRE is not set
616# CONFIG_IEEE1394 is not set 626# CONFIG_IEEE1394 is not set
617# CONFIG_I2O is not set 627# CONFIG_I2O is not set
618# CONFIG_MACINTOSH_DRIVERS is not set 628# CONFIG_MACINTOSH_DRIVERS is not set
619CONFIG_NETDEVICES=y 629CONFIG_NETDEVICES=y
620# CONFIG_NETDEVICES_MULTIQUEUE is not set
621CONFIG_DUMMY=m 630CONFIG_DUMMY=m
622CONFIG_BONDING=m 631CONFIG_BONDING=m
623# CONFIG_MACVLAN is not set 632# CONFIG_MACVLAN is not set
@@ -655,6 +664,7 @@ CONFIG_E100=y
655# CONFIG_SIS900 is not set 664# CONFIG_SIS900 is not set
656# CONFIG_EPIC100 is not set 665# CONFIG_EPIC100 is not set
657# CONFIG_SUNDANCE is not set 666# CONFIG_SUNDANCE is not set
667# CONFIG_TLAN is not set
658# CONFIG_VIA_RHINE is not set 668# CONFIG_VIA_RHINE is not set
659# CONFIG_SC92031 is not set 669# CONFIG_SC92031 is not set
660CONFIG_NETDEV_1000=y 670CONFIG_NETDEV_1000=y
@@ -662,10 +672,8 @@ CONFIG_ACENIC=m
662# CONFIG_ACENIC_OMIT_TIGON_I is not set 672# CONFIG_ACENIC_OMIT_TIGON_I is not set
663# CONFIG_DL2K is not set 673# CONFIG_DL2K is not set
664CONFIG_E1000=m 674CONFIG_E1000=m
665# CONFIG_E1000_NAPI is not set
666# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 675# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
667# CONFIG_E1000E is not set 676# CONFIG_E1000E is not set
668# CONFIG_E1000E_ENABLED is not set
669# CONFIG_IP1000 is not set 677# CONFIG_IP1000 is not set
670# CONFIG_IGB is not set 678# CONFIG_IGB is not set
671# CONFIG_NS83820 is not set 679# CONFIG_NS83820 is not set
@@ -680,6 +688,7 @@ CONFIG_E1000=m
680# CONFIG_BNX2 is not set 688# CONFIG_BNX2 is not set
681# CONFIG_QLA3XXX is not set 689# CONFIG_QLA3XXX is not set
682# CONFIG_ATL1 is not set 690# CONFIG_ATL1 is not set
691# CONFIG_ATL1E is not set
683CONFIG_NETDEV_10000=y 692CONFIG_NETDEV_10000=y
684# CONFIG_CHELSIO_T1 is not set 693# CONFIG_CHELSIO_T1 is not set
685# CONFIG_CHELSIO_T3 is not set 694# CONFIG_CHELSIO_T3 is not set
@@ -767,6 +776,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
767# Character devices 776# Character devices
768# 777#
769CONFIG_VT=y 778CONFIG_VT=y
779CONFIG_CONSOLE_TRANSLATIONS=y
770CONFIG_VT_CONSOLE=y 780CONFIG_VT_CONSOLE=y
771CONFIG_HW_CONSOLE=y 781CONFIG_HW_CONSOLE=y
772# CONFIG_VT_HW_CONSOLE_BINDING is not set 782# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -789,6 +799,7 @@ CONFIG_UNIX98_PTYS=y
789CONFIG_LEGACY_PTYS=y 799CONFIG_LEGACY_PTYS=y
790CONFIG_LEGACY_PTY_COUNT=256 800CONFIG_LEGACY_PTY_COUNT=256
791CONFIG_HVC_DRIVER=y 801CONFIG_HVC_DRIVER=y
802CONFIG_HVC_IRQ=y
792CONFIG_HVC_ISERIES=y 803CONFIG_HVC_ISERIES=y
793# CONFIG_IPMI_HANDLER is not set 804# CONFIG_IPMI_HANDLER is not set
794# CONFIG_HW_RANDOM is not set 805# CONFIG_HW_RANDOM is not set
@@ -803,10 +814,13 @@ CONFIG_MAX_RAW_DEVS=256
803CONFIG_DEVPORT=y 814CONFIG_DEVPORT=y
804# CONFIG_I2C is not set 815# CONFIG_I2C is not set
805# CONFIG_SPI is not set 816# CONFIG_SPI is not set
817CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
818# CONFIG_GPIOLIB is not set
806# CONFIG_W1 is not set 819# CONFIG_W1 is not set
807# CONFIG_POWER_SUPPLY is not set 820# CONFIG_POWER_SUPPLY is not set
808# CONFIG_HWMON is not set 821# CONFIG_HWMON is not set
809# CONFIG_THERMAL is not set 822# CONFIG_THERMAL is not set
823# CONFIG_THERMAL_HWMON is not set
810# CONFIG_WATCHDOG is not set 824# CONFIG_WATCHDOG is not set
811 825
812# 826#
@@ -818,8 +832,10 @@ CONFIG_SSB_POSSIBLE=y
818# 832#
819# Multifunction device drivers 833# Multifunction device drivers
820# 834#
835# CONFIG_MFD_CORE is not set
821# CONFIG_MFD_SM501 is not set 836# CONFIG_MFD_SM501 is not set
822# CONFIG_HTC_PASIC3 is not set 837# CONFIG_HTC_PASIC3 is not set
838# CONFIG_MFD_TMIO is not set
823 839
824# 840#
825# Multimedia devices 841# Multimedia devices
@@ -858,10 +874,6 @@ CONFIG_SSB_POSSIBLE=y
858CONFIG_VGA_CONSOLE=y 874CONFIG_VGA_CONSOLE=y
859# CONFIG_VGACON_SOFT_SCROLLBACK is not set 875# CONFIG_VGACON_SOFT_SCROLLBACK is not set
860CONFIG_DUMMY_CONSOLE=y 876CONFIG_DUMMY_CONSOLE=y
861
862#
863# Sound
864#
865# CONFIG_SOUND is not set 877# CONFIG_SOUND is not set
866# CONFIG_HID_SUPPORT is not set 878# CONFIG_HID_SUPPORT is not set
867# CONFIG_USB_SUPPORT is not set 879# CONFIG_USB_SUPPORT is not set
@@ -910,7 +922,6 @@ CONFIG_XFS_POSIX_ACL=y
910# CONFIG_XFS_RT is not set 922# CONFIG_XFS_RT is not set
911# CONFIG_XFS_DEBUG is not set 923# CONFIG_XFS_DEBUG is not set
912CONFIG_GFS2_FS=m 924CONFIG_GFS2_FS=m
913CONFIG_GFS2_FS_LOCKING_NOLOCK=m
914CONFIG_GFS2_FS_LOCKING_DLM=m 925CONFIG_GFS2_FS_LOCKING_DLM=m
915# CONFIG_OCFS2_FS is not set 926# CONFIG_OCFS2_FS is not set
916CONFIG_DNOTIFY=y 927CONFIG_DNOTIFY=y
@@ -967,6 +978,7 @@ CONFIG_CONFIGFS_FS=m
967CONFIG_CRAMFS=y 978CONFIG_CRAMFS=y
968# CONFIG_VXFS_FS is not set 979# CONFIG_VXFS_FS is not set
969# CONFIG_MINIX_FS is not set 980# CONFIG_MINIX_FS is not set
981# CONFIG_OMFS_FS is not set
970# CONFIG_HPFS_FS is not set 982# CONFIG_HPFS_FS is not set
971# CONFIG_QNX4FS_FS is not set 983# CONFIG_QNX4FS_FS is not set
972# CONFIG_ROMFS_FS is not set 984# CONFIG_ROMFS_FS is not set
@@ -989,7 +1001,6 @@ CONFIG_NFS_ACL_SUPPORT=y
989CONFIG_NFS_COMMON=y 1001CONFIG_NFS_COMMON=y
990CONFIG_SUNRPC=y 1002CONFIG_SUNRPC=y
991CONFIG_SUNRPC_GSS=y 1003CONFIG_SUNRPC_GSS=y
992# CONFIG_SUNRPC_BIND34 is not set
993CONFIG_RPCSEC_GSS_KRB5=y 1004CONFIG_RPCSEC_GSS_KRB5=y
994CONFIG_RPCSEC_GSS_SPKM3=m 1005CONFIG_RPCSEC_GSS_SPKM3=m
995# CONFIG_SMB_FS is not set 1006# CONFIG_SMB_FS is not set
@@ -1059,6 +1070,7 @@ CONFIG_BITREVERSE=y
1059# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1070# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1060CONFIG_CRC_CCITT=m 1071CONFIG_CRC_CCITT=m
1061# CONFIG_CRC16 is not set 1072# CONFIG_CRC16 is not set
1073CONFIG_CRC_T10DIF=y
1062CONFIG_CRC_ITU_T=m 1074CONFIG_CRC_ITU_T=m
1063CONFIG_CRC32=y 1075CONFIG_CRC32=y
1064# CONFIG_CRC7 is not set 1076# CONFIG_CRC7 is not set
@@ -1089,8 +1101,10 @@ CONFIG_DEBUG_FS=y
1089CONFIG_DEBUG_KERNEL=y 1101CONFIG_DEBUG_KERNEL=y
1090# CONFIG_DEBUG_SHIRQ is not set 1102# CONFIG_DEBUG_SHIRQ is not set
1091CONFIG_DETECT_SOFTLOCKUP=y 1103CONFIG_DETECT_SOFTLOCKUP=y
1104# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1105CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1092CONFIG_SCHED_DEBUG=y 1106CONFIG_SCHED_DEBUG=y
1093# CONFIG_SCHEDSTATS is not set 1107CONFIG_SCHEDSTATS=y
1094# CONFIG_TIMER_STATS is not set 1108# CONFIG_TIMER_STATS is not set
1095# CONFIG_DEBUG_OBJECTS is not set 1109# CONFIG_DEBUG_OBJECTS is not set
1096# CONFIG_SLUB_DEBUG_ON is not set 1110# CONFIG_SLUB_DEBUG_ON is not set
@@ -1104,22 +1118,37 @@ CONFIG_SCHED_DEBUG=y
1104# CONFIG_LOCK_STAT is not set 1118# CONFIG_LOCK_STAT is not set
1105# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1119# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1106# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1120# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1121CONFIG_STACKTRACE=y
1107# CONFIG_DEBUG_KOBJECT is not set 1122# CONFIG_DEBUG_KOBJECT is not set
1108CONFIG_DEBUG_BUGVERBOSE=y 1123CONFIG_DEBUG_BUGVERBOSE=y
1109# CONFIG_DEBUG_INFO is not set 1124# CONFIG_DEBUG_INFO is not set
1110# CONFIG_DEBUG_VM is not set 1125# CONFIG_DEBUG_VM is not set
1111# CONFIG_DEBUG_WRITECOUNT is not set 1126# CONFIG_DEBUG_WRITECOUNT is not set
1127CONFIG_DEBUG_MEMORY_INIT=y
1112# CONFIG_DEBUG_LIST is not set 1128# CONFIG_DEBUG_LIST is not set
1113# CONFIG_DEBUG_SG is not set 1129# CONFIG_DEBUG_SG is not set
1130CONFIG_FRAME_POINTER=y
1114# CONFIG_BOOT_PRINTK_DELAY is not set 1131# CONFIG_BOOT_PRINTK_DELAY is not set
1115# CONFIG_RCU_TORTURE_TEST is not set 1132# CONFIG_RCU_TORTURE_TEST is not set
1116# CONFIG_BACKTRACE_SELF_TEST is not set 1133# CONFIG_BACKTRACE_SELF_TEST is not set
1117# CONFIG_FAULT_INJECTION is not set 1134# CONFIG_FAULT_INJECTION is not set
1135CONFIG_LATENCYTOP=y
1136CONFIG_SYSCTL_SYSCALL_CHECK=y
1137CONFIG_HAVE_FTRACE=y
1138CONFIG_HAVE_DYNAMIC_FTRACE=y
1139# CONFIG_FTRACE is not set
1140# CONFIG_IRQSOFF_TRACER is not set
1141# CONFIG_SCHED_TRACER is not set
1142# CONFIG_CONTEXT_SWITCH_TRACER is not set
1118# CONFIG_SAMPLES is not set 1143# CONFIG_SAMPLES is not set
1144CONFIG_HAVE_ARCH_KGDB=y
1145# CONFIG_KGDB is not set
1119CONFIG_DEBUG_STACKOVERFLOW=y 1146CONFIG_DEBUG_STACKOVERFLOW=y
1120CONFIG_DEBUG_STACK_USAGE=y 1147CONFIG_DEBUG_STACK_USAGE=y
1121# CONFIG_DEBUG_PAGEALLOC is not set 1148# CONFIG_DEBUG_PAGEALLOC is not set
1122# CONFIG_DEBUGGER is not set 1149# CONFIG_CODE_PATCHING_SELFTEST is not set
1150# CONFIG_FTR_FIXUP_SELFTEST is not set
1151# CONFIG_XMON is not set
1123CONFIG_IRQSTACKS=y 1152CONFIG_IRQSTACKS=y
1124# CONFIG_VIRQ_DEBUG is not set 1153# CONFIG_VIRQ_DEBUG is not set
1125# CONFIG_BOOTX_TEXT is not set 1154# CONFIG_BOOTX_TEXT is not set
@@ -1178,6 +1207,10 @@ CONFIG_CRYPTO_CRC32C=m
1178CONFIG_CRYPTO_MD4=m 1207CONFIG_CRYPTO_MD4=m
1179CONFIG_CRYPTO_MD5=y 1208CONFIG_CRYPTO_MD5=y
1180CONFIG_CRYPTO_MICHAEL_MIC=m 1209CONFIG_CRYPTO_MICHAEL_MIC=m
1210# CONFIG_CRYPTO_RMD128 is not set
1211# CONFIG_CRYPTO_RMD160 is not set
1212# CONFIG_CRYPTO_RMD256 is not set
1213# CONFIG_CRYPTO_RMD320 is not set
1181CONFIG_CRYPTO_SHA1=m 1214CONFIG_CRYPTO_SHA1=m
1182CONFIG_CRYPTO_SHA256=m 1215CONFIG_CRYPTO_SHA256=m
1183CONFIG_CRYPTO_SHA512=m 1216CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/linkstation_defconfig b/arch/powerpc/configs/linkstation_defconfig
index 48434c2c7628..6fc4c2127757 100644
--- a/arch/powerpc/configs/linkstation_defconfig
+++ b/arch/powerpc/configs/linkstation_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:10 2008 4# Thu Aug 21 00:52:05 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -93,7 +94,6 @@ CONFIG_INITRAMFS_SOURCE=""
93CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
94# CONFIG_EMBEDDED is not set 95# CONFIG_EMBEDDED is not set
95CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 98# CONFIG_KALLSYMS_ALL is not set
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -119,10 +119,16 @@ CONFIG_SLUB=y
119# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
122CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
124# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
125CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -139,6 +145,7 @@ CONFIG_BLOCK=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set 146# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
142 149
143# 150#
144# IO Schedulers 151# IO Schedulers
@@ -158,25 +165,25 @@ CONFIG_CLASSIC_RCU=y
158# Platform support 165# Platform support
159# 166#
160CONFIG_PPC_MULTIPLATFORM=y 167CONFIG_PPC_MULTIPLATFORM=y
161# CONFIG_PPC_82xx is not set
162# CONFIG_PPC_83xx is not set
163# CONFIG_PPC_86xx is not set
164CONFIG_CLASSIC32=y 168CONFIG_CLASSIC32=y
165# CONFIG_PPC_CHRP is not set 169# CONFIG_PPC_CHRP is not set
166# CONFIG_PPC_MPC512x is not set
167# CONFIG_PPC_MPC5121 is not set
168# CONFIG_MPC5121_ADS is not set 170# CONFIG_MPC5121_ADS is not set
171# CONFIG_MPC5121_GENERIC is not set
169# CONFIG_PPC_MPC52xx is not set 172# CONFIG_PPC_MPC52xx is not set
170# CONFIG_PPC_PMAC is not set 173# CONFIG_PPC_PMAC is not set
171# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
172# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set
173# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
178# CONFIG_PPC_83xx is not set
179# CONFIG_PPC_86xx is not set
174CONFIG_EMBEDDED6xx=y 180CONFIG_EMBEDDED6xx=y
175CONFIG_LINKSTATION=y 181CONFIG_LINKSTATION=y
176# CONFIG_STORCENTER is not set 182# CONFIG_STORCENTER is not set
177# CONFIG_MPC7448HPC2 is not set 183# CONFIG_MPC7448HPC2 is not set
178# CONFIG_PPC_HOLLY is not set 184# CONFIG_PPC_HOLLY is not set
179# CONFIG_PPC_PRPMC2800 is not set 185# CONFIG_PPC_PRPMC2800 is not set
186# CONFIG_PPC_C2K is not set
180CONFIG_MPC10X_BRIDGE=y 187CONFIG_MPC10X_BRIDGE=y
181CONFIG_MPC10X_OPENPIC=y 188CONFIG_MPC10X_OPENPIC=y
182# CONFIG_MPC10X_STORE_GATHERING is not set 189# CONFIG_MPC10X_STORE_GATHERING is not set
@@ -207,7 +214,7 @@ CONFIG_HZ_100=y
207# CONFIG_HZ_300 is not set 214# CONFIG_HZ_300 is not set
208# CONFIG_HZ_1000 is not set 215# CONFIG_HZ_1000 is not set
209CONFIG_HZ=100 216CONFIG_HZ=100
210# CONFIG_SCHED_HRTICK is not set 217CONFIG_SCHED_HRTICK=y
211CONFIG_PREEMPT_NONE=y 218CONFIG_PREEMPT_NONE=y
212# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
213# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
@@ -230,6 +237,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 237# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
231CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set 241# CONFIG_RESOURCES_64BIT is not set
234CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
@@ -237,6 +245,7 @@ CONFIG_VIRT_TO_BUS=y
237CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
238CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
248CONFIG_EXTRA_TARGETS=""
240# CONFIG_PM is not set 249# CONFIG_PM is not set
241CONFIG_SECCOMP=y 250CONFIG_SECCOMP=y
242CONFIG_ISA_DMA_API=y 251CONFIG_ISA_DMA_API=y
@@ -273,10 +282,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
273CONFIG_KERNEL_START=0xc0000000 282CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000 283CONFIG_PHYSICAL_START=0x00000000
275CONFIG_TASK_SIZE=0xc0000000 284CONFIG_TASK_SIZE=0xc0000000
276
277#
278# Networking
279#
280CONFIG_NET=y 285CONFIG_NET=y
281 286
282# 287#
@@ -461,6 +466,7 @@ CONFIG_IP_NF_ARP_MANGLE=m
461# 466#
462# CONFIG_CFG80211 is not set 467# CONFIG_CFG80211 is not set
463CONFIG_WIRELESS_EXT=y 468CONFIG_WIRELESS_EXT=y
469CONFIG_WIRELESS_EXT_SYSFS=y
464# CONFIG_MAC80211 is not set 470# CONFIG_MAC80211 is not set
465CONFIG_IEEE80211=m 471CONFIG_IEEE80211=m
466CONFIG_IEEE80211_DEBUG=y 472CONFIG_IEEE80211_DEBUG=y
@@ -480,7 +486,9 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
480CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 486CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
481CONFIG_STANDALONE=y 487CONFIG_STANDALONE=y
482CONFIG_PREVENT_FIRMWARE_BUILD=y 488CONFIG_PREVENT_FIRMWARE_BUILD=y
483CONFIG_FW_LOADER=m 489CONFIG_FW_LOADER=y
490CONFIG_FIRMWARE_IN_KERNEL=y
491CONFIG_EXTRA_FIRMWARE=""
484# CONFIG_DEBUG_DRIVER is not set 492# CONFIG_DEBUG_DRIVER is not set
485# CONFIG_DEBUG_DEVRES is not set 493# CONFIG_DEBUG_DEVRES is not set
486# CONFIG_SYS_HYPERVISOR is not set 494# CONFIG_SYS_HYPERVISOR is not set
@@ -592,12 +600,14 @@ CONFIG_BLK_DEV_RAM_SIZE=8192
592# CONFIG_BLK_DEV_XIP is not set 600# CONFIG_BLK_DEV_XIP is not set
593# CONFIG_CDROM_PKTCDVD is not set 601# CONFIG_CDROM_PKTCDVD is not set
594# CONFIG_ATA_OVER_ETH is not set 602# CONFIG_ATA_OVER_ETH is not set
603# CONFIG_BLK_DEV_HD is not set
595CONFIG_MISC_DEVICES=y 604CONFIG_MISC_DEVICES=y
596# CONFIG_PHANTOM is not set 605# CONFIG_PHANTOM is not set
597# CONFIG_EEPROM_93CX6 is not set 606# CONFIG_EEPROM_93CX6 is not set
598# CONFIG_SGI_IOC4 is not set 607# CONFIG_SGI_IOC4 is not set
599# CONFIG_TIFM_CORE is not set 608# CONFIG_TIFM_CORE is not set
600# CONFIG_ENCLOSURE_SERVICES is not set 609# CONFIG_ENCLOSURE_SERVICES is not set
610# CONFIG_HP_ILO is not set
601CONFIG_HAVE_IDE=y 611CONFIG_HAVE_IDE=y
602# CONFIG_IDE is not set 612# CONFIG_IDE is not set
603 613
@@ -676,6 +686,7 @@ CONFIG_SCSI_LOWLEVEL=y
676# CONFIG_SCSI_NSP32 is not set 686# CONFIG_SCSI_NSP32 is not set
677# CONFIG_SCSI_DEBUG is not set 687# CONFIG_SCSI_DEBUG is not set
678# CONFIG_SCSI_SRP is not set 688# CONFIG_SCSI_SRP is not set
689# CONFIG_SCSI_DH is not set
679CONFIG_ATA=y 690CONFIG_ATA=y
680# CONFIG_ATA_NONSTANDARD is not set 691# CONFIG_ATA_NONSTANDARD is not set
681CONFIG_SATA_PMP=y 692CONFIG_SATA_PMP=y
@@ -743,12 +754,15 @@ CONFIG_PATA_SIL680=y
743# 754#
744# IEEE 1394 (FireWire) support 755# IEEE 1394 (FireWire) support
745# 756#
757
758#
759# Enable only one of the two stacks, unless you know what you are doing
760#
746# CONFIG_FIREWIRE is not set 761# CONFIG_FIREWIRE is not set
747# CONFIG_IEEE1394 is not set 762# CONFIG_IEEE1394 is not set
748# CONFIG_I2O is not set 763# CONFIG_I2O is not set
749# CONFIG_MACINTOSH_DRIVERS is not set 764# CONFIG_MACINTOSH_DRIVERS is not set
750CONFIG_NETDEVICES=y 765CONFIG_NETDEVICES=y
751# CONFIG_NETDEVICES_MULTIQUEUE is not set
752# CONFIG_DUMMY is not set 766# CONFIG_DUMMY is not set
753# CONFIG_BONDING is not set 767# CONFIG_BONDING is not set
754# CONFIG_MACVLAN is not set 768# CONFIG_MACVLAN is not set
@@ -785,14 +799,12 @@ CONFIG_NETDEV_1000=y
785# CONFIG_DL2K is not set 799# CONFIG_DL2K is not set
786# CONFIG_E1000 is not set 800# CONFIG_E1000 is not set
787# CONFIG_E1000E is not set 801# CONFIG_E1000E is not set
788# CONFIG_E1000E_ENABLED is not set
789# CONFIG_IP1000 is not set 802# CONFIG_IP1000 is not set
790# CONFIG_IGB is not set 803# CONFIG_IGB is not set
791# CONFIG_NS83820 is not set 804# CONFIG_NS83820 is not set
792# CONFIG_HAMACHI is not set 805# CONFIG_HAMACHI is not set
793# CONFIG_YELLOWFIN is not set 806# CONFIG_YELLOWFIN is not set
794CONFIG_R8169=y 807CONFIG_R8169=y
795# CONFIG_R8169_NAPI is not set
796# CONFIG_SIS190 is not set 808# CONFIG_SIS190 is not set
797# CONFIG_SKGE is not set 809# CONFIG_SKGE is not set
798# CONFIG_SKY2 is not set 810# CONFIG_SKY2 is not set
@@ -803,6 +815,7 @@ CONFIG_R8169=y
803# CONFIG_MV643XX_ETH is not set 815# CONFIG_MV643XX_ETH is not set
804# CONFIG_QLA3XXX is not set 816# CONFIG_QLA3XXX is not set
805# CONFIG_ATL1 is not set 817# CONFIG_ATL1 is not set
818# CONFIG_ATL1E is not set
806CONFIG_NETDEV_10000=y 819CONFIG_NETDEV_10000=y
807# CONFIG_CHELSIO_T1 is not set 820# CONFIG_CHELSIO_T1 is not set
808# CONFIG_CHELSIO_T3 is not set 821# CONFIG_CHELSIO_T3 is not set
@@ -889,12 +902,14 @@ CONFIG_SERIO=y
889CONFIG_SERIO_SERPORT=y 902CONFIG_SERIO_SERPORT=y
890# CONFIG_SERIO_PCIPS2 is not set 903# CONFIG_SERIO_PCIPS2 is not set
891# CONFIG_SERIO_RAW is not set 904# CONFIG_SERIO_RAW is not set
905# CONFIG_SERIO_XILINX_XPS_PS2 is not set
892# CONFIG_GAMEPORT is not set 906# CONFIG_GAMEPORT is not set
893 907
894# 908#
895# Character devices 909# Character devices
896# 910#
897CONFIG_VT=y 911CONFIG_VT=y
912CONFIG_CONSOLE_TRANSLATIONS=y
898CONFIG_VT_CONSOLE=y 913CONFIG_VT_CONSOLE=y
899CONFIG_HW_CONSOLE=y 914CONFIG_HW_CONSOLE=y
900# CONFIG_VT_HW_CONSOLE_BINDING is not set 915# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -934,43 +949,64 @@ CONFIG_DEVPORT=y
934CONFIG_I2C=y 949CONFIG_I2C=y
935CONFIG_I2C_BOARDINFO=y 950CONFIG_I2C_BOARDINFO=y
936CONFIG_I2C_CHARDEV=y 951CONFIG_I2C_CHARDEV=y
952CONFIG_I2C_HELPER_AUTO=y
937 953
938# 954#
939# I2C Hardware Bus support 955# I2C Hardware Bus support
940# 956#
957
958#
959# PC SMBus host controller drivers
960#
941# CONFIG_I2C_ALI1535 is not set 961# CONFIG_I2C_ALI1535 is not set
942# CONFIG_I2C_ALI1563 is not set 962# CONFIG_I2C_ALI1563 is not set
943# CONFIG_I2C_ALI15X3 is not set 963# CONFIG_I2C_ALI15X3 is not set
944# CONFIG_I2C_AMD756 is not set 964# CONFIG_I2C_AMD756 is not set
945# CONFIG_I2C_AMD8111 is not set 965# CONFIG_I2C_AMD8111 is not set
946# CONFIG_I2C_I801 is not set 966# CONFIG_I2C_I801 is not set
947# CONFIG_I2C_I810 is not set 967# CONFIG_I2C_ISCH is not set
948# CONFIG_I2C_PIIX4 is not set 968# CONFIG_I2C_PIIX4 is not set
949CONFIG_I2C_MPC=y
950# CONFIG_I2C_NFORCE2 is not set 969# CONFIG_I2C_NFORCE2 is not set
951# CONFIG_I2C_OCORES is not set
952# CONFIG_I2C_PARPORT_LIGHT is not set
953# CONFIG_I2C_PROSAVAGE is not set
954# CONFIG_I2C_SAVAGE4 is not set
955# CONFIG_I2C_SIMTEC is not set
956# CONFIG_I2C_SIS5595 is not set 970# CONFIG_I2C_SIS5595 is not set
957# CONFIG_I2C_SIS630 is not set 971# CONFIG_I2C_SIS630 is not set
958# CONFIG_I2C_SIS96X is not set 972# CONFIG_I2C_SIS96X is not set
959# CONFIG_I2C_TAOS_EVM is not set
960# CONFIG_I2C_STUB is not set
961# CONFIG_I2C_TINY_USB is not set
962# CONFIG_I2C_VIA is not set 973# CONFIG_I2C_VIA is not set
963# CONFIG_I2C_VIAPRO is not set 974# CONFIG_I2C_VIAPRO is not set
975
976#
977# I2C system bus drivers (mostly embedded / system-on-chip)
978#
979CONFIG_I2C_MPC=y
980# CONFIG_I2C_OCORES is not set
981# CONFIG_I2C_SIMTEC is not set
982
983#
984# External I2C/SMBus adapter drivers
985#
986# CONFIG_I2C_PARPORT_LIGHT is not set
987# CONFIG_I2C_TAOS_EVM is not set
988# CONFIG_I2C_TINY_USB is not set
989
990#
991# Graphics adapter I2C/DDC channel drivers
992#
964# CONFIG_I2C_VOODOO3 is not set 993# CONFIG_I2C_VOODOO3 is not set
994
995#
996# Other I2C/SMBus bus drivers
997#
965# CONFIG_I2C_PCA_PLATFORM is not set 998# CONFIG_I2C_PCA_PLATFORM is not set
999# CONFIG_I2C_STUB is not set
966 1000
967# 1001#
968# Miscellaneous I2C Chip support 1002# Miscellaneous I2C Chip support
969# 1003#
970# CONFIG_DS1682 is not set 1004# CONFIG_DS1682 is not set
1005# CONFIG_AT24 is not set
971CONFIG_SENSORS_EEPROM=m 1006CONFIG_SENSORS_EEPROM=m
972# CONFIG_SENSORS_PCF8574 is not set 1007# CONFIG_SENSORS_PCF8574 is not set
973# CONFIG_PCF8575 is not set 1008# CONFIG_PCF8575 is not set
1009# CONFIG_SENSORS_PCA9539 is not set
974# CONFIG_SENSORS_PCF8591 is not set 1010# CONFIG_SENSORS_PCF8591 is not set
975# CONFIG_SENSORS_MAX6875 is not set 1011# CONFIG_SENSORS_MAX6875 is not set
976# CONFIG_SENSORS_TSL2550 is not set 1012# CONFIG_SENSORS_TSL2550 is not set
@@ -979,10 +1015,13 @@ CONFIG_SENSORS_EEPROM=m
979# CONFIG_I2C_DEBUG_BUS is not set 1015# CONFIG_I2C_DEBUG_BUS is not set
980# CONFIG_I2C_DEBUG_CHIP is not set 1016# CONFIG_I2C_DEBUG_CHIP is not set
981# CONFIG_SPI is not set 1017# CONFIG_SPI is not set
1018CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1019# CONFIG_GPIOLIB is not set
982# CONFIG_W1 is not set 1020# CONFIG_W1 is not set
983# CONFIG_POWER_SUPPLY is not set 1021# CONFIG_POWER_SUPPLY is not set
984CONFIG_HWMON=y 1022CONFIG_HWMON=y
985# CONFIG_HWMON_VID is not set 1023# CONFIG_HWMON_VID is not set
1024# CONFIG_SENSORS_AD7414 is not set
986# CONFIG_SENSORS_AD7418 is not set 1025# CONFIG_SENSORS_AD7418 is not set
987# CONFIG_SENSORS_ADM1021 is not set 1026# CONFIG_SENSORS_ADM1021 is not set
988# CONFIG_SENSORS_ADM1025 is not set 1027# CONFIG_SENSORS_ADM1025 is not set
@@ -1036,6 +1075,7 @@ CONFIG_HWMON=y
1036# CONFIG_SENSORS_W83627EHF is not set 1075# CONFIG_SENSORS_W83627EHF is not set
1037# CONFIG_HWMON_DEBUG_CHIP is not set 1076# CONFIG_HWMON_DEBUG_CHIP is not set
1038# CONFIG_THERMAL is not set 1077# CONFIG_THERMAL is not set
1078# CONFIG_THERMAL_HWMON is not set
1039# CONFIG_WATCHDOG is not set 1079# CONFIG_WATCHDOG is not set
1040 1080
1041# 1081#
@@ -1047,8 +1087,10 @@ CONFIG_SSB_POSSIBLE=y
1047# 1087#
1048# Multifunction device drivers 1088# Multifunction device drivers
1049# 1089#
1090# CONFIG_MFD_CORE is not set
1050# CONFIG_MFD_SM501 is not set 1091# CONFIG_MFD_SM501 is not set
1051# CONFIG_HTC_PASIC3 is not set 1092# CONFIG_HTC_PASIC3 is not set
1093# CONFIG_MFD_TMIO is not set
1052 1094
1053# 1095#
1054# Multimedia devices 1096# Multimedia devices
@@ -1086,10 +1128,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1086# 1128#
1087# CONFIG_VGA_CONSOLE is not set 1129# CONFIG_VGA_CONSOLE is not set
1088CONFIG_DUMMY_CONSOLE=y 1130CONFIG_DUMMY_CONSOLE=y
1089
1090#
1091# Sound
1092#
1093# CONFIG_SOUND is not set 1131# CONFIG_SOUND is not set
1094CONFIG_HID_SUPPORT=y 1132CONFIG_HID_SUPPORT=y
1095CONFIG_HID=m 1133CONFIG_HID=m
@@ -1121,6 +1159,7 @@ CONFIG_USB_DEVICEFS=y
1121CONFIG_USB_DEVICE_CLASS=y 1159CONFIG_USB_DEVICE_CLASS=y
1122# CONFIG_USB_DYNAMIC_MINORS is not set 1160# CONFIG_USB_DYNAMIC_MINORS is not set
1123# CONFIG_USB_OTG is not set 1161# CONFIG_USB_OTG is not set
1162CONFIG_USB_MON=y
1124 1163
1125# 1164#
1126# USB Host Controller Drivers 1165# USB Host Controller Drivers
@@ -1172,6 +1211,7 @@ CONFIG_USB_STORAGE=m
1172# CONFIG_USB_STORAGE_ALAUDA is not set 1211# CONFIG_USB_STORAGE_ALAUDA is not set
1173# CONFIG_USB_STORAGE_ONETOUCH is not set 1212# CONFIG_USB_STORAGE_ONETOUCH is not set
1174# CONFIG_USB_STORAGE_KARMA is not set 1213# CONFIG_USB_STORAGE_KARMA is not set
1214# CONFIG_USB_STORAGE_SIERRA is not set
1175# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1215# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1176# CONFIG_USB_LIBUSUAL is not set 1216# CONFIG_USB_LIBUSUAL is not set
1177 1217
@@ -1180,7 +1220,6 @@ CONFIG_USB_STORAGE=m
1180# 1220#
1181# CONFIG_USB_MDC800 is not set 1221# CONFIG_USB_MDC800 is not set
1182# CONFIG_USB_MICROTEK is not set 1222# CONFIG_USB_MICROTEK is not set
1183CONFIG_USB_MON=y
1184 1223
1185# 1224#
1186# USB port drivers 1225# USB port drivers
@@ -1190,7 +1229,6 @@ CONFIG_USB_SERIAL_CONSOLE=y
1190# CONFIG_USB_EZUSB is not set 1229# CONFIG_USB_EZUSB is not set
1191# CONFIG_USB_SERIAL_GENERIC is not set 1230# CONFIG_USB_SERIAL_GENERIC is not set
1192# CONFIG_USB_SERIAL_AIRCABLE is not set 1231# CONFIG_USB_SERIAL_AIRCABLE is not set
1193# CONFIG_USB_SERIAL_AIRPRIME is not set
1194# CONFIG_USB_SERIAL_ARK3116 is not set 1232# CONFIG_USB_SERIAL_ARK3116 is not set
1195# CONFIG_USB_SERIAL_BELKIN is not set 1233# CONFIG_USB_SERIAL_BELKIN is not set
1196# CONFIG_USB_SERIAL_CH341 is not set 1234# CONFIG_USB_SERIAL_CH341 is not set
@@ -1237,7 +1275,6 @@ CONFIG_USB_SERIAL_FTDI_SIO=y
1237# CONFIG_USB_EMI62 is not set 1275# CONFIG_USB_EMI62 is not set
1238# CONFIG_USB_EMI26 is not set 1276# CONFIG_USB_EMI26 is not set
1239# CONFIG_USB_ADUTUX is not set 1277# CONFIG_USB_ADUTUX is not set
1240# CONFIG_USB_AUERSWALD is not set
1241# CONFIG_USB_RIO500 is not set 1278# CONFIG_USB_RIO500 is not set
1242# CONFIG_USB_LEGOTOWER is not set 1279# CONFIG_USB_LEGOTOWER is not set
1243# CONFIG_USB_LCD is not set 1280# CONFIG_USB_LCD is not set
@@ -1291,6 +1328,7 @@ CONFIG_RTC_DRV_RS5C372=y
1291# CONFIG_RTC_DRV_PCF8583 is not set 1328# CONFIG_RTC_DRV_PCF8583 is not set
1292# CONFIG_RTC_DRV_M41T80 is not set 1329# CONFIG_RTC_DRV_M41T80 is not set
1293# CONFIG_RTC_DRV_S35390A is not set 1330# CONFIG_RTC_DRV_S35390A is not set
1331# CONFIG_RTC_DRV_FM3130 is not set
1294 1332
1295# 1333#
1296# SPI RTC drivers 1334# SPI RTC drivers
@@ -1392,6 +1430,7 @@ CONFIG_TMPFS=y
1392# CONFIG_CRAMFS is not set 1430# CONFIG_CRAMFS is not set
1393# CONFIG_VXFS_FS is not set 1431# CONFIG_VXFS_FS is not set
1394# CONFIG_MINIX_FS is not set 1432# CONFIG_MINIX_FS is not set
1433# CONFIG_OMFS_FS is not set
1395# CONFIG_HPFS_FS is not set 1434# CONFIG_HPFS_FS is not set
1396# CONFIG_QNX4FS_FS is not set 1435# CONFIG_QNX4FS_FS is not set
1397# CONFIG_ROMFS_FS is not set 1436# CONFIG_ROMFS_FS is not set
@@ -1402,11 +1441,11 @@ CONFIG_NFS_FS=y
1402CONFIG_NFS_V3=y 1441CONFIG_NFS_V3=y
1403CONFIG_NFS_V3_ACL=y 1442CONFIG_NFS_V3_ACL=y
1404CONFIG_NFS_V4=y 1443CONFIG_NFS_V4=y
1444CONFIG_ROOT_NFS=y
1405CONFIG_NFSD=m 1445CONFIG_NFSD=m
1406CONFIG_NFSD_V3=y 1446CONFIG_NFSD_V3=y
1407# CONFIG_NFSD_V3_ACL is not set 1447# CONFIG_NFSD_V3_ACL is not set
1408# CONFIG_NFSD_V4 is not set 1448# CONFIG_NFSD_V4 is not set
1409CONFIG_ROOT_NFS=y
1410CONFIG_LOCKD=y 1449CONFIG_LOCKD=y
1411CONFIG_LOCKD_V4=y 1450CONFIG_LOCKD_V4=y
1412CONFIG_EXPORTFS=m 1451CONFIG_EXPORTFS=m
@@ -1414,7 +1453,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1414CONFIG_NFS_COMMON=y 1453CONFIG_NFS_COMMON=y
1415CONFIG_SUNRPC=y 1454CONFIG_SUNRPC=y
1416CONFIG_SUNRPC_GSS=y 1455CONFIG_SUNRPC_GSS=y
1417# CONFIG_SUNRPC_BIND34 is not set
1418CONFIG_RPCSEC_GSS_KRB5=y 1456CONFIG_RPCSEC_GSS_KRB5=y
1419# CONFIG_RPCSEC_GSS_SPKM3 is not set 1457# CONFIG_RPCSEC_GSS_SPKM3 is not set
1420# CONFIG_SMB_FS is not set 1458# CONFIG_SMB_FS is not set
@@ -1482,6 +1520,7 @@ CONFIG_BITREVERSE=y
1482# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1520# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1483CONFIG_CRC_CCITT=m 1521CONFIG_CRC_CCITT=m
1484# CONFIG_CRC16 is not set 1522# CONFIG_CRC16 is not set
1523CONFIG_CRC_T10DIF=y
1485CONFIG_CRC_ITU_T=m 1524CONFIG_CRC_ITU_T=m
1486CONFIG_CRC32=y 1525CONFIG_CRC32=y
1487# CONFIG_CRC7 is not set 1526# CONFIG_CRC7 is not set
@@ -1510,6 +1549,8 @@ CONFIG_MAGIC_SYSRQ=y
1510CONFIG_DEBUG_KERNEL=y 1549CONFIG_DEBUG_KERNEL=y
1511# CONFIG_DEBUG_SHIRQ is not set 1550# CONFIG_DEBUG_SHIRQ is not set
1512CONFIG_DETECT_SOFTLOCKUP=y 1551CONFIG_DETECT_SOFTLOCKUP=y
1552# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1553CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1513CONFIG_SCHED_DEBUG=y 1554CONFIG_SCHED_DEBUG=y
1514# CONFIG_SCHEDSTATS is not set 1555# CONFIG_SCHEDSTATS is not set
1515# CONFIG_TIMER_STATS is not set 1556# CONFIG_TIMER_STATS is not set
@@ -1527,17 +1568,29 @@ CONFIG_DEBUG_BUGVERBOSE=y
1527# CONFIG_DEBUG_INFO is not set 1568# CONFIG_DEBUG_INFO is not set
1528# CONFIG_DEBUG_VM is not set 1569# CONFIG_DEBUG_VM is not set
1529# CONFIG_DEBUG_WRITECOUNT is not set 1570# CONFIG_DEBUG_WRITECOUNT is not set
1571CONFIG_DEBUG_MEMORY_INIT=y
1530# CONFIG_DEBUG_LIST is not set 1572# CONFIG_DEBUG_LIST is not set
1531# CONFIG_DEBUG_SG is not set 1573# CONFIG_DEBUG_SG is not set
1532# CONFIG_BOOT_PRINTK_DELAY is not set 1574# CONFIG_BOOT_PRINTK_DELAY is not set
1533# CONFIG_RCU_TORTURE_TEST is not set 1575# CONFIG_RCU_TORTURE_TEST is not set
1534# CONFIG_BACKTRACE_SELF_TEST is not set 1576# CONFIG_BACKTRACE_SELF_TEST is not set
1535# CONFIG_FAULT_INJECTION is not set 1577# CONFIG_FAULT_INJECTION is not set
1578# CONFIG_LATENCYTOP is not set
1579CONFIG_SYSCTL_SYSCALL_CHECK=y
1580CONFIG_HAVE_FTRACE=y
1581CONFIG_HAVE_DYNAMIC_FTRACE=y
1582# CONFIG_FTRACE is not set
1583# CONFIG_SCHED_TRACER is not set
1584# CONFIG_CONTEXT_SWITCH_TRACER is not set
1536# CONFIG_SAMPLES is not set 1585# CONFIG_SAMPLES is not set
1586CONFIG_HAVE_ARCH_KGDB=y
1587# CONFIG_KGDB is not set
1537# CONFIG_DEBUG_STACKOVERFLOW is not set 1588# CONFIG_DEBUG_STACKOVERFLOW is not set
1538# CONFIG_DEBUG_STACK_USAGE is not set 1589# CONFIG_DEBUG_STACK_USAGE is not set
1539# CONFIG_DEBUG_PAGEALLOC is not set 1590# CONFIG_DEBUG_PAGEALLOC is not set
1540# CONFIG_DEBUGGER is not set 1591# CONFIG_CODE_PATCHING_SELFTEST is not set
1592# CONFIG_FTR_FIXUP_SELFTEST is not set
1593# CONFIG_XMON is not set
1541# CONFIG_IRQSTACKS is not set 1594# CONFIG_IRQSTACKS is not set
1542# CONFIG_BDI_SWITCH is not set 1595# CONFIG_BDI_SWITCH is not set
1543# CONFIG_BOOTX_TEXT is not set 1596# CONFIG_BOOTX_TEXT is not set
@@ -1556,6 +1609,7 @@ CONFIG_CRYPTO=y
1556# 1609#
1557CONFIG_CRYPTO_ALGAPI=y 1610CONFIG_CRYPTO_ALGAPI=y
1558CONFIG_CRYPTO_BLKCIPHER=y 1611CONFIG_CRYPTO_BLKCIPHER=y
1612CONFIG_CRYPTO_HASH=m
1559CONFIG_CRYPTO_MANAGER=y 1613CONFIG_CRYPTO_MANAGER=y
1560# CONFIG_CRYPTO_GF128MUL is not set 1614# CONFIG_CRYPTO_GF128MUL is not set
1561# CONFIG_CRYPTO_NULL is not set 1615# CONFIG_CRYPTO_NULL is not set
@@ -1594,6 +1648,10 @@ CONFIG_CRYPTO_CRC32C=m
1594CONFIG_CRYPTO_MD4=m 1648CONFIG_CRYPTO_MD4=m
1595CONFIG_CRYPTO_MD5=y 1649CONFIG_CRYPTO_MD5=y
1596CONFIG_CRYPTO_MICHAEL_MIC=m 1650CONFIG_CRYPTO_MICHAEL_MIC=m
1651# CONFIG_CRYPTO_RMD128 is not set
1652# CONFIG_CRYPTO_RMD160 is not set
1653# CONFIG_CRYPTO_RMD256 is not set
1654# CONFIG_CRYPTO_RMD320 is not set
1597CONFIG_CRYPTO_SHA1=m 1655CONFIG_CRYPTO_SHA1=m
1598# CONFIG_CRYPTO_SHA256 is not set 1656# CONFIG_CRYPTO_SHA256 is not set
1599# CONFIG_CRYPTO_SHA512 is not set 1657# CONFIG_CRYPTO_SHA512 is not set
@@ -1627,5 +1685,6 @@ CONFIG_CRYPTO_DEFLATE=m
1627# CONFIG_CRYPTO_LZO is not set 1685# CONFIG_CRYPTO_LZO is not set
1628CONFIG_CRYPTO_HW=y 1686CONFIG_CRYPTO_HW=y
1629# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1687# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1688# CONFIG_CRYPTO_DEV_TALITOS is not set
1630# CONFIG_PPC_CLOCK is not set 1689# CONFIG_PPC_CLOCK is not set
1631# CONFIG_VIRTUALIZATION is not set 1690# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/maple_defconfig b/arch/powerpc/configs/maple_defconfig
index 7a166a39d92d..1a3b6423222b 100644
--- a/arch/powerpc/configs/maple_defconfig
+++ b/arch/powerpc/configs/maple_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.24-rc4 3# Linux kernel version: 2.6.27-rc4
4# Thu Dec 6 16:48:26 2007 4# Tue Aug 26 13:18:58 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -27,7 +27,12 @@ CONFIG_GENERIC_TIME=y
27CONFIG_GENERIC_TIME_VSYSCALL=y 27CONFIG_GENERIC_TIME_VSYSCALL=y
28CONFIG_GENERIC_CLOCKEVENTS=y 28CONFIG_GENERIC_CLOCKEVENTS=y
29CONFIG_GENERIC_HARDIRQS=y 29CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y
30CONFIG_IRQ_PER_CPU=y 31CONFIG_IRQ_PER_CPU=y
32CONFIG_STACKTRACE_SUPPORT=y
33CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 36CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 37CONFIG_ARCH_HAS_ILOG2_U32=y
33CONFIG_ARCH_HAS_ILOG2_U64=y 38CONFIG_ARCH_HAS_ILOG2_U64=y
@@ -67,16 +72,20 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 72CONFIG_POSIX_MQUEUE=y
68# CONFIG_BSD_PROCESS_ACCT is not set 73# CONFIG_BSD_PROCESS_ACCT is not set
69# CONFIG_TASKSTATS is not set 74# CONFIG_TASKSTATS is not set
70# CONFIG_USER_NS is not set
71# CONFIG_PID_NS is not set
72# CONFIG_AUDIT is not set 75# CONFIG_AUDIT is not set
73CONFIG_IKCONFIG=y 76CONFIG_IKCONFIG=y
74CONFIG_IKCONFIG_PROC=y 77CONFIG_IKCONFIG_PROC=y
75CONFIG_LOG_BUF_SHIFT=17 78CONFIG_LOG_BUF_SHIFT=17
76# CONFIG_CGROUPS is not set 79# CONFIG_CGROUPS is not set
77# CONFIG_FAIR_GROUP_SCHED is not set 80# CONFIG_GROUP_SCHED is not set
78CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
84CONFIG_NAMESPACES=y
85# CONFIG_UTS_NS is not set
86# CONFIG_IPC_NS is not set
87# CONFIG_USER_NS is not set
88# CONFIG_PID_NS is not set
80# CONFIG_BLK_DEV_INITRD is not set 89# CONFIG_BLK_DEV_INITRD is not set
81CONFIG_CC_OPTIMIZE_FOR_SIZE=y 90CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 91CONFIG_SYSCTL=y
@@ -89,11 +98,13 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 98CONFIG_PRINTK=y
90CONFIG_BUG=y 99CONFIG_BUG=y
91CONFIG_ELF_CORE=y 100CONFIG_ELF_CORE=y
101# CONFIG_COMPAT_BRK is not set
92CONFIG_BASE_FULL=y 102CONFIG_BASE_FULL=y
93CONFIG_FUTEX=y 103CONFIG_FUTEX=y
94CONFIG_ANON_INODES=y 104CONFIG_ANON_INODES=y
95CONFIG_EPOLL=y 105CONFIG_EPOLL=y
96CONFIG_SIGNALFD=y 106CONFIG_SIGNALFD=y
107CONFIG_TIMERFD=y
97CONFIG_EVENTFD=y 108CONFIG_EVENTFD=y
98CONFIG_SHMEM=y 109CONFIG_SHMEM=y
99CONFIG_VM_EVENT_COUNTERS=y 110CONFIG_VM_EVENT_COUNTERS=y
@@ -101,10 +112,28 @@ CONFIG_SLUB_DEBUG=y
101# CONFIG_SLAB is not set 112# CONFIG_SLAB is not set
102CONFIG_SLUB=y 113CONFIG_SLUB=y
103# CONFIG_SLOB is not set 114# CONFIG_SLOB is not set
115CONFIG_PROFILING=y
116# CONFIG_MARKERS is not set
117CONFIG_OPROFILE=m
118CONFIG_HAVE_OPROFILE=y
119CONFIG_KPROBES=y
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_KRETPROBES=y
122CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y
126CONFIG_HAVE_DMA_ATTRS=y
127CONFIG_USE_GENERIC_SMP_HELPERS=y
128# CONFIG_HAVE_CLK is not set
129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
131CONFIG_SLABINFO=y
104CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
105# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
106CONFIG_BASE_SMALL=0 134CONFIG_BASE_SMALL=0
107CONFIG_MODULES=y 135CONFIG_MODULES=y
136# CONFIG_MODULE_FORCE_LOAD is not set
108CONFIG_MODULE_UNLOAD=y 137CONFIG_MODULE_UNLOAD=y
109# CONFIG_MODULE_FORCE_UNLOAD is not set 138# CONFIG_MODULE_FORCE_UNLOAD is not set
110CONFIG_MODVERSIONS=y 139CONFIG_MODVERSIONS=y
@@ -114,6 +143,7 @@ CONFIG_STOP_MACHINE=y
114CONFIG_BLOCK=y 143CONFIG_BLOCK=y
115# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
116# CONFIG_BLK_DEV_BSG is not set 145# CONFIG_BLK_DEV_BSG is not set
146# CONFIG_BLK_DEV_INTEGRITY is not set
117CONFIG_BLOCK_COMPAT=y 147CONFIG_BLOCK_COMPAT=y
118 148
119# 149#
@@ -128,29 +158,26 @@ CONFIG_DEFAULT_AS=y
128# CONFIG_DEFAULT_CFQ is not set 158# CONFIG_DEFAULT_CFQ is not set
129# CONFIG_DEFAULT_NOOP is not set 159# CONFIG_DEFAULT_NOOP is not set
130CONFIG_DEFAULT_IOSCHED="anticipatory" 160CONFIG_DEFAULT_IOSCHED="anticipatory"
161CONFIG_CLASSIC_RCU=y
131 162
132# 163#
133# Platform support 164# Platform support
134# 165#
135CONFIG_PPC_MULTIPLATFORM=y 166CONFIG_PPC_MULTIPLATFORM=y
136# CONFIG_PPC_82xx is not set
137# CONFIG_PPC_83xx is not set
138# CONFIG_PPC_86xx is not set
139# CONFIG_PPC_PSERIES is not set 167# CONFIG_PPC_PSERIES is not set
140# CONFIG_PPC_ISERIES is not set 168# CONFIG_PPC_ISERIES is not set
141# CONFIG_PPC_MPC52xx is not set
142# CONFIG_PPC_MPC5200 is not set
143# CONFIG_PPC_PMAC is not set 169# CONFIG_PPC_PMAC is not set
144CONFIG_PPC_MAPLE=y 170CONFIG_PPC_MAPLE=y
145# CONFIG_PPC_PASEMI is not set 171# CONFIG_PPC_PASEMI is not set
146# CONFIG_PPC_CELLEB is not set
147# CONFIG_PPC_PS3 is not set 172# CONFIG_PPC_PS3 is not set
148# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
149# CONFIG_PPC_CELL_NATIVE is not set 174# CONFIG_PPC_CELL_NATIVE is not set
150# CONFIG_PPC_IBM_CELL_BLADE is not set 175# CONFIG_PPC_IBM_CELL_BLADE is not set
176# CONFIG_PPC_CELLEB is not set
151# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
152CONFIG_PPC_NATIVE=y 178CONFIG_PPC_NATIVE=y
153CONFIG_UDBG_RTAS_CONSOLE=y 179CONFIG_UDBG_RTAS_CONSOLE=y
180# CONFIG_IPIC is not set
154CONFIG_MPIC=y 181CONFIG_MPIC=y
155# CONFIG_MPIC_WEIRD is not set 182# CONFIG_MPIC_WEIRD is not set
156# CONFIG_PPC_I8259 is not set 183# CONFIG_PPC_I8259 is not set
@@ -166,7 +193,6 @@ CONFIG_PPC_970_NAP=y
166# CONFIG_PPC_INDIRECT_IO is not set 193# CONFIG_PPC_INDIRECT_IO is not set
167# CONFIG_GENERIC_IOMAP is not set 194# CONFIG_GENERIC_IOMAP is not set
168# CONFIG_CPU_FREQ is not set 195# CONFIG_CPU_FREQ is not set
169# CONFIG_CPM2 is not set
170# CONFIG_FSL_ULI1575 is not set 196# CONFIG_FSL_ULI1575 is not set
171 197
172# 198#
@@ -181,16 +207,19 @@ CONFIG_HZ_250=y
181# CONFIG_HZ_300 is not set 207# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 208# CONFIG_HZ_1000 is not set
183CONFIG_HZ=250 209CONFIG_HZ=250
210CONFIG_SCHED_HRTICK=y
184CONFIG_PREEMPT_NONE=y 211CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 212# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 213# CONFIG_PREEMPT is not set
187# CONFIG_PREEMPT_BKL is not set
188CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215CONFIG_COMPAT_BINFMT_ELF=y
189# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
190CONFIG_FORCE_MAX_ZONEORDER=13
191CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 217CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
192CONFIG_IOMMU_VMERGE=y 218CONFIG_IOMMU_VMERGE=y
219CONFIG_IOMMU_HELPER=y
193CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
221CONFIG_ARCH_HAS_WALK_MEMORY=y
222CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
194CONFIG_KEXEC=y 223CONFIG_KEXEC=y
195# CONFIG_CRASH_DUMP is not set 224# CONFIG_CRASH_DUMP is not set
196CONFIG_IRQ_ALL_CPUS=y 225CONFIG_IRQ_ALL_CPUS=y
@@ -207,18 +236,21 @@ CONFIG_FLATMEM=y
207CONFIG_FLAT_NODE_MEM_MAP=y 236CONFIG_FLAT_NODE_MEM_MAP=y
208# CONFIG_SPARSEMEM_STATIC is not set 237# CONFIG_SPARSEMEM_STATIC is not set
209CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y 238CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
239CONFIG_PAGEFLAGS_EXTENDED=y
210CONFIG_SPLIT_PTLOCK_CPUS=4 240CONFIG_SPLIT_PTLOCK_CPUS=4
241# CONFIG_MIGRATION is not set
211CONFIG_RESOURCES_64BIT=y 242CONFIG_RESOURCES_64BIT=y
212CONFIG_ZONE_DMA_FLAG=1 243CONFIG_ZONE_DMA_FLAG=1
213CONFIG_BOUNCE=y 244CONFIG_BOUNCE=y
214# CONFIG_PPC_HAS_HASH_64K is not set 245# CONFIG_PPC_HAS_HASH_64K is not set
215# CONFIG_PPC_64K_PAGES is not set 246# CONFIG_PPC_64K_PAGES is not set
247CONFIG_FORCE_MAX_ZONEORDER=13
216# CONFIG_SCHED_SMT is not set 248# CONFIG_SCHED_SMT is not set
217CONFIG_PROC_DEVICETREE=y 249CONFIG_PROC_DEVICETREE=y
218# CONFIG_CMDLINE_BOOL is not set 250# CONFIG_CMDLINE_BOOL is not set
251CONFIG_EXTRA_TARGETS=""
219# CONFIG_PM is not set 252# CONFIG_PM is not set
220CONFIG_SECCOMP=y 253CONFIG_SECCOMP=y
221# CONFIG_WANT_DEVICE_TREE is not set
222CONFIG_ISA_DMA_API=y 254CONFIG_ISA_DMA_API=y
223 255
224# 256#
@@ -237,11 +269,10 @@ CONFIG_PCI_LEGACY=y
237# CONFIG_PCI_DEBUG is not set 269# CONFIG_PCI_DEBUG is not set
238# CONFIG_PCCARD is not set 270# CONFIG_PCCARD is not set
239# CONFIG_HOTPLUG_PCI is not set 271# CONFIG_HOTPLUG_PCI is not set
272# CONFIG_HAS_RAPIDIO is not set
273CONFIG_PAGE_OFFSET=0xc000000000000000
240CONFIG_KERNEL_START=0xc000000000000000 274CONFIG_KERNEL_START=0xc000000000000000
241 275CONFIG_PHYSICAL_START=0x00000000
242#
243# Networking
244#
245CONFIG_NET=y 276CONFIG_NET=y
246 277
247# 278#
@@ -254,6 +285,7 @@ CONFIG_XFRM=y
254CONFIG_XFRM_USER=m 285CONFIG_XFRM_USER=m
255# CONFIG_XFRM_SUB_POLICY is not set 286# CONFIG_XFRM_SUB_POLICY is not set
256# CONFIG_XFRM_MIGRATE is not set 287# CONFIG_XFRM_MIGRATE is not set
288# CONFIG_XFRM_STATISTICS is not set
257# CONFIG_NET_KEY is not set 289# CONFIG_NET_KEY is not set
258CONFIG_INET=y 290CONFIG_INET=y
259CONFIG_IP_MULTICAST=y 291CONFIG_IP_MULTICAST=y
@@ -284,8 +316,6 @@ CONFIG_TCP_CONG_CUBIC=y
284CONFIG_DEFAULT_TCP_CONG="cubic" 316CONFIG_DEFAULT_TCP_CONG="cubic"
285# CONFIG_TCP_MD5SIG is not set 317# CONFIG_TCP_MD5SIG is not set
286# CONFIG_IPV6 is not set 318# CONFIG_IPV6 is not set
287# CONFIG_INET6_XFRM_TUNNEL is not set
288# CONFIG_INET6_TUNNEL is not set
289# CONFIG_NETWORK_SECMARK is not set 319# CONFIG_NETWORK_SECMARK is not set
290# CONFIG_NETFILTER is not set 320# CONFIG_NETFILTER is not set
291# CONFIG_IP_DCCP is not set 321# CONFIG_IP_DCCP is not set
@@ -308,7 +338,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
308# Network testing 338# Network testing
309# 339#
310# CONFIG_NET_PKTGEN is not set 340# CONFIG_NET_PKTGEN is not set
341# CONFIG_NET_TCPPROBE is not set
311# CONFIG_HAMRADIO is not set 342# CONFIG_HAMRADIO is not set
343# CONFIG_CAN is not set
312# CONFIG_IRDA is not set 344# CONFIG_IRDA is not set
313# CONFIG_BT is not set 345# CONFIG_BT is not set
314# CONFIG_AF_RXRPC is not set 346# CONFIG_AF_RXRPC is not set
@@ -334,12 +366,15 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
334CONFIG_STANDALONE=y 366CONFIG_STANDALONE=y
335CONFIG_PREVENT_FIRMWARE_BUILD=y 367CONFIG_PREVENT_FIRMWARE_BUILD=y
336CONFIG_FW_LOADER=y 368CONFIG_FW_LOADER=y
369CONFIG_FIRMWARE_IN_KERNEL=y
370CONFIG_EXTRA_FIRMWARE=""
337# CONFIG_DEBUG_DRIVER is not set 371# CONFIG_DEBUG_DRIVER is not set
338# CONFIG_DEBUG_DEVRES is not set 372# CONFIG_DEBUG_DEVRES is not set
339# CONFIG_SYS_HYPERVISOR is not set 373# CONFIG_SYS_HYPERVISOR is not set
340# CONFIG_CONNECTOR is not set 374# CONFIG_CONNECTOR is not set
341# CONFIG_MTD is not set 375# CONFIG_MTD is not set
342CONFIG_OF_DEVICE=y 376CONFIG_OF_DEVICE=y
377CONFIG_OF_I2C=y
343# CONFIG_PARPORT is not set 378# CONFIG_PARPORT is not set
344CONFIG_BLK_DEV=y 379CONFIG_BLK_DEV=y
345# CONFIG_BLK_DEV_FD is not set 380# CONFIG_BLK_DEV_FD is not set
@@ -354,24 +389,30 @@ CONFIG_BLK_DEV=y
354CONFIG_BLK_DEV_RAM=y 389CONFIG_BLK_DEV_RAM=y
355CONFIG_BLK_DEV_RAM_COUNT=16 390CONFIG_BLK_DEV_RAM_COUNT=16
356CONFIG_BLK_DEV_RAM_SIZE=8192 391CONFIG_BLK_DEV_RAM_SIZE=8192
357CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 392# CONFIG_BLK_DEV_XIP is not set
358# CONFIG_CDROM_PKTCDVD is not set 393# CONFIG_CDROM_PKTCDVD is not set
359# CONFIG_ATA_OVER_ETH is not set 394# CONFIG_ATA_OVER_ETH is not set
395# CONFIG_BLK_DEV_HD is not set
360CONFIG_MISC_DEVICES=y 396CONFIG_MISC_DEVICES=y
361# CONFIG_PHANTOM is not set 397# CONFIG_PHANTOM is not set
362# CONFIG_EEPROM_93CX6 is not set 398# CONFIG_EEPROM_93CX6 is not set
363# CONFIG_SGI_IOC4 is not set 399# CONFIG_SGI_IOC4 is not set
364# CONFIG_TIFM_CORE is not set 400# CONFIG_TIFM_CORE is not set
401# CONFIG_ENCLOSURE_SERVICES is not set
402# CONFIG_HP_ILO is not set
403CONFIG_HAVE_IDE=y
365CONFIG_IDE=y 404CONFIG_IDE=y
366CONFIG_BLK_DEV_IDE=y 405CONFIG_BLK_DEV_IDE=y
367 406
368# 407#
369# Please see Documentation/ide.txt for help/info on IDE drives 408# Please see Documentation/ide/ide.txt for help/info on IDE drives
370# 409#
410CONFIG_IDE_TIMINGS=y
371# CONFIG_BLK_DEV_IDE_SATA is not set 411# CONFIG_BLK_DEV_IDE_SATA is not set
372CONFIG_BLK_DEV_IDEDISK=y 412CONFIG_BLK_DEV_IDEDISK=y
373# CONFIG_IDEDISK_MULTI_MODE is not set 413# CONFIG_IDEDISK_MULTI_MODE is not set
374CONFIG_BLK_DEV_IDECD=y 414CONFIG_BLK_DEV_IDECD=y
415CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
375# CONFIG_BLK_DEV_IDETAPE is not set 416# CONFIG_BLK_DEV_IDETAPE is not set
376# CONFIG_BLK_DEV_IDEFLOPPY is not set 417# CONFIG_BLK_DEV_IDEFLOPPY is not set
377# CONFIG_BLK_DEV_IDESCSI is not set 418# CONFIG_BLK_DEV_IDESCSI is not set
@@ -381,14 +422,13 @@ CONFIG_IDE_PROC_FS=y
381# 422#
382# IDE chipset support/bugfixes 423# IDE chipset support/bugfixes
383# 424#
384CONFIG_IDE_GENERIC=y
385# CONFIG_BLK_DEV_PLATFORM is not set 425# CONFIG_BLK_DEV_PLATFORM is not set
426CONFIG_BLK_DEV_IDEDMA_SFF=y
386 427
387# 428#
388# PCI IDE chipsets support 429# PCI IDE chipsets support
389# 430#
390CONFIG_BLK_DEV_IDEPCI=y 431CONFIG_BLK_DEV_IDEPCI=y
391CONFIG_IDEPCI_SHARE_IRQ=y
392CONFIG_IDEPCI_PCIBUS_ORDER=y 432CONFIG_IDEPCI_PCIBUS_ORDER=y
393# CONFIG_BLK_DEV_OFFBOARD is not set 433# CONFIG_BLK_DEV_OFFBOARD is not set
394CONFIG_BLK_DEV_GENERIC=y 434CONFIG_BLK_DEV_GENERIC=y
@@ -399,10 +439,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
399CONFIG_BLK_DEV_AMD74XX=y 439CONFIG_BLK_DEV_AMD74XX=y
400# CONFIG_BLK_DEV_CMD64X is not set 440# CONFIG_BLK_DEV_CMD64X is not set
401# CONFIG_BLK_DEV_TRIFLEX is not set 441# CONFIG_BLK_DEV_TRIFLEX is not set
402# CONFIG_BLK_DEV_CY82C693 is not set
403# CONFIG_BLK_DEV_CS5520 is not set 442# CONFIG_BLK_DEV_CS5520 is not set
404# CONFIG_BLK_DEV_CS5530 is not set 443# CONFIG_BLK_DEV_CS5530 is not set
405# CONFIG_BLK_DEV_HPT34X is not set
406# CONFIG_BLK_DEV_HPT366 is not set 444# CONFIG_BLK_DEV_HPT366 is not set
407# CONFIG_BLK_DEV_JMICRON is not set 445# CONFIG_BLK_DEV_JMICRON is not set
408# CONFIG_BLK_DEV_SC1200 is not set 446# CONFIG_BLK_DEV_SC1200 is not set
@@ -419,10 +457,7 @@ CONFIG_BLK_DEV_AMD74XX=y
419# CONFIG_BLK_DEV_TRM290 is not set 457# CONFIG_BLK_DEV_TRM290 is not set
420# CONFIG_BLK_DEV_VIA82CXXX is not set 458# CONFIG_BLK_DEV_VIA82CXXX is not set
421# CONFIG_BLK_DEV_TC86C001 is not set 459# CONFIG_BLK_DEV_TC86C001 is not set
422# CONFIG_IDE_ARM is not set
423CONFIG_BLK_DEV_IDEDMA=y 460CONFIG_BLK_DEV_IDEDMA=y
424CONFIG_IDE_ARCH_OBSOLETE_INIT=y
425# CONFIG_BLK_DEV_HD is not set
426 461
427# 462#
428# SCSI device support 463# SCSI device support
@@ -483,6 +518,7 @@ CONFIG_SCSI_LOWLEVEL=y
483# CONFIG_SCSI_IPS is not set 518# CONFIG_SCSI_IPS is not set
484# CONFIG_SCSI_INITIO is not set 519# CONFIG_SCSI_INITIO is not set
485# CONFIG_SCSI_INIA100 is not set 520# CONFIG_SCSI_INIA100 is not set
521# CONFIG_SCSI_MVSAS is not set
486# CONFIG_SCSI_STEX is not set 522# CONFIG_SCSI_STEX is not set
487# CONFIG_SCSI_SYM53C8XX_2 is not set 523# CONFIG_SCSI_SYM53C8XX_2 is not set
488CONFIG_SCSI_IPR=y 524CONFIG_SCSI_IPR=y
@@ -496,9 +532,13 @@ CONFIG_SCSI_IPR_DUMP=y
496# CONFIG_SCSI_DC390T is not set 532# CONFIG_SCSI_DC390T is not set
497# CONFIG_SCSI_DEBUG is not set 533# CONFIG_SCSI_DEBUG is not set
498# CONFIG_SCSI_SRP is not set 534# CONFIG_SCSI_SRP is not set
535# CONFIG_SCSI_DH is not set
499CONFIG_ATA=y 536CONFIG_ATA=y
500CONFIG_ATA_NONSTANDARD=y 537CONFIG_ATA_NONSTANDARD=y
538CONFIG_SATA_PMP=y
501# CONFIG_SATA_AHCI is not set 539# CONFIG_SATA_AHCI is not set
540# CONFIG_SATA_SIL24 is not set
541CONFIG_ATA_SFF=y
502# CONFIG_SATA_SVW is not set 542# CONFIG_SATA_SVW is not set
503# CONFIG_ATA_PIIX is not set 543# CONFIG_ATA_PIIX is not set
504# CONFIG_SATA_MV is not set 544# CONFIG_SATA_MV is not set
@@ -508,7 +548,6 @@ CONFIG_ATA_NONSTANDARD=y
508# CONFIG_SATA_PROMISE is not set 548# CONFIG_SATA_PROMISE is not set
509# CONFIG_SATA_SX4 is not set 549# CONFIG_SATA_SX4 is not set
510# CONFIG_SATA_SIL is not set 550# CONFIG_SATA_SIL is not set
511# CONFIG_SATA_SIL24 is not set
512# CONFIG_SATA_SIS is not set 551# CONFIG_SATA_SIS is not set
513# CONFIG_SATA_ULI is not set 552# CONFIG_SATA_ULI is not set
514# CONFIG_SATA_VIA is not set 553# CONFIG_SATA_VIA is not set
@@ -537,6 +576,7 @@ CONFIG_ATA_NONSTANDARD=y
537# CONFIG_PATA_MPIIX is not set 576# CONFIG_PATA_MPIIX is not set
538# CONFIG_PATA_OLDPIIX is not set 577# CONFIG_PATA_OLDPIIX is not set
539# CONFIG_PATA_NETCELL is not set 578# CONFIG_PATA_NETCELL is not set
579# CONFIG_PATA_NINJA32 is not set
540# CONFIG_PATA_NS87410 is not set 580# CONFIG_PATA_NS87410 is not set
541# CONFIG_PATA_NS87415 is not set 581# CONFIG_PATA_NS87415 is not set
542# CONFIG_PATA_OPTI is not set 582# CONFIG_PATA_OPTI is not set
@@ -551,27 +591,47 @@ CONFIG_ATA_NONSTANDARD=y
551# CONFIG_PATA_SIS is not set 591# CONFIG_PATA_SIS is not set
552# CONFIG_PATA_VIA is not set 592# CONFIG_PATA_VIA is not set
553# CONFIG_PATA_WINBOND is not set 593# CONFIG_PATA_WINBOND is not set
594# CONFIG_PATA_PLATFORM is not set
595# CONFIG_PATA_SCH is not set
554# CONFIG_MD is not set 596# CONFIG_MD is not set
555# CONFIG_FUSION is not set 597# CONFIG_FUSION is not set
556 598
557# 599#
558# IEEE 1394 (FireWire) support 600# IEEE 1394 (FireWire) support
559# 601#
602
603#
604# Enable only one of the two stacks, unless you know what you are doing
605#
560# CONFIG_FIREWIRE is not set 606# CONFIG_FIREWIRE is not set
561# CONFIG_IEEE1394 is not set 607# CONFIG_IEEE1394 is not set
562# CONFIG_I2O is not set 608# CONFIG_I2O is not set
563# CONFIG_MACINTOSH_DRIVERS is not set 609# CONFIG_MACINTOSH_DRIVERS is not set
564CONFIG_NETDEVICES=y 610CONFIG_NETDEVICES=y
565# CONFIG_NETDEVICES_MULTIQUEUE is not set
566# CONFIG_DUMMY is not set 611# CONFIG_DUMMY is not set
567# CONFIG_BONDING is not set 612# CONFIG_BONDING is not set
568# CONFIG_MACVLAN is not set 613# CONFIG_MACVLAN is not set
569# CONFIG_EQUALIZER is not set 614# CONFIG_EQUALIZER is not set
570# CONFIG_TUN is not set 615# CONFIG_TUN is not set
571# CONFIG_VETH is not set 616# CONFIG_VETH is not set
572# CONFIG_IP1000 is not set
573# CONFIG_ARCNET is not set 617# CONFIG_ARCNET is not set
574# CONFIG_PHYLIB is not set 618CONFIG_PHYLIB=y
619
620#
621# MII PHY device drivers
622#
623# CONFIG_MARVELL_PHY is not set
624# CONFIG_DAVICOM_PHY is not set
625# CONFIG_QSEMI_PHY is not set
626# CONFIG_LXT_PHY is not set
627# CONFIG_CICADA_PHY is not set
628# CONFIG_VITESSE_PHY is not set
629# CONFIG_SMSC_PHY is not set
630# CONFIG_BROADCOM_PHY is not set
631# CONFIG_ICPLUS_PHY is not set
632# CONFIG_REALTEK_PHY is not set
633# CONFIG_FIXED_PHY is not set
634# CONFIG_MDIO_BITBANG is not set
575CONFIG_NET_ETHERNET=y 635CONFIG_NET_ETHERNET=y
576CONFIG_MII=y 636CONFIG_MII=y
577# CONFIG_HAPPYMEAL is not set 637# CONFIG_HAPPYMEAL is not set
@@ -587,7 +647,6 @@ CONFIG_MII=y
587CONFIG_NET_PCI=y 647CONFIG_NET_PCI=y
588# CONFIG_PCNET32 is not set 648# CONFIG_PCNET32 is not set
589CONFIG_AMD8111_ETH=y 649CONFIG_AMD8111_ETH=y
590# CONFIG_AMD8111E_NAPI is not set
591# CONFIG_ADAPTEC_STARFIRE is not set 650# CONFIG_ADAPTEC_STARFIRE is not set
592# CONFIG_B44 is not set 651# CONFIG_B44 is not set
593# CONFIG_FORCEDETH is not set 652# CONFIG_FORCEDETH is not set
@@ -598,18 +657,21 @@ CONFIG_AMD8111_ETH=y
598# CONFIG_NE2K_PCI is not set 657# CONFIG_NE2K_PCI is not set
599# CONFIG_8139CP is not set 658# CONFIG_8139CP is not set
600# CONFIG_8139TOO is not set 659# CONFIG_8139TOO is not set
660# CONFIG_R6040 is not set
601# CONFIG_SIS900 is not set 661# CONFIG_SIS900 is not set
602# CONFIG_EPIC100 is not set 662# CONFIG_EPIC100 is not set
603# CONFIG_SUNDANCE is not set 663# CONFIG_SUNDANCE is not set
664# CONFIG_TLAN is not set
604# CONFIG_VIA_RHINE is not set 665# CONFIG_VIA_RHINE is not set
605# CONFIG_SC92031 is not set 666# CONFIG_SC92031 is not set
606CONFIG_NETDEV_1000=y 667CONFIG_NETDEV_1000=y
607# CONFIG_ACENIC is not set 668# CONFIG_ACENIC is not set
608# CONFIG_DL2K is not set 669# CONFIG_DL2K is not set
609CONFIG_E1000=y 670CONFIG_E1000=y
610# CONFIG_E1000_NAPI is not set
611# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 671# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
612# CONFIG_E1000E is not set 672# CONFIG_E1000E is not set
673# CONFIG_IP1000 is not set
674# CONFIG_IGB is not set
613# CONFIG_NS83820 is not set 675# CONFIG_NS83820 is not set
614# CONFIG_HAMACHI is not set 676# CONFIG_HAMACHI is not set
615# CONFIG_YELLOWFIN is not set 677# CONFIG_YELLOWFIN is not set
@@ -617,12 +679,12 @@ CONFIG_E1000=y
617# CONFIG_SIS190 is not set 679# CONFIG_SIS190 is not set
618# CONFIG_SKGE is not set 680# CONFIG_SKGE is not set
619# CONFIG_SKY2 is not set 681# CONFIG_SKY2 is not set
620# CONFIG_SK98LIN is not set
621# CONFIG_VIA_VELOCITY is not set 682# CONFIG_VIA_VELOCITY is not set
622CONFIG_TIGON3=y 683CONFIG_TIGON3=y
623# CONFIG_BNX2 is not set 684# CONFIG_BNX2 is not set
624# CONFIG_QLA3XXX is not set 685# CONFIG_QLA3XXX is not set
625# CONFIG_ATL1 is not set 686# CONFIG_ATL1 is not set
687# CONFIG_ATL1E is not set
626CONFIG_NETDEV_10000=y 688CONFIG_NETDEV_10000=y
627# CONFIG_CHELSIO_T1 is not set 689# CONFIG_CHELSIO_T1 is not set
628# CONFIG_CHELSIO_T3 is not set 690# CONFIG_CHELSIO_T3 is not set
@@ -632,9 +694,10 @@ CONFIG_NETDEV_10000=y
632# CONFIG_MYRI10GE is not set 694# CONFIG_MYRI10GE is not set
633# CONFIG_NETXEN_NIC is not set 695# CONFIG_NETXEN_NIC is not set
634# CONFIG_NIU is not set 696# CONFIG_NIU is not set
635# CONFIG_PASEMI_MAC is not set
636# CONFIG_MLX4_CORE is not set 697# CONFIG_MLX4_CORE is not set
637# CONFIG_TEHUTI is not set 698# CONFIG_TEHUTI is not set
699# CONFIG_BNX2X is not set
700# CONFIG_SFC is not set
638# CONFIG_TR is not set 701# CONFIG_TR is not set
639 702
640# 703#
@@ -642,6 +705,7 @@ CONFIG_NETDEV_10000=y
642# 705#
643# CONFIG_WLAN_PRE80211 is not set 706# CONFIG_WLAN_PRE80211 is not set
644# CONFIG_WLAN_80211 is not set 707# CONFIG_WLAN_80211 is not set
708# CONFIG_IWLWIFI_LEDS is not set
645 709
646# 710#
647# USB Network Adapters 711# USB Network Adapters
@@ -657,7 +721,6 @@ CONFIG_USB_PEGASUS=y
657# CONFIG_PPP is not set 721# CONFIG_PPP is not set
658# CONFIG_SLIP is not set 722# CONFIG_SLIP is not set
659# CONFIG_NET_FC is not set 723# CONFIG_NET_FC is not set
660# CONFIG_SHAPER is not set
661# CONFIG_NETCONSOLE is not set 724# CONFIG_NETCONSOLE is not set
662# CONFIG_NETPOLL is not set 725# CONFIG_NETPOLL is not set
663# CONFIG_NET_POLL_CONTROLLER is not set 726# CONFIG_NET_POLL_CONTROLLER is not set
@@ -702,10 +765,13 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200
702# Character devices 765# Character devices
703# 766#
704CONFIG_VT=y 767CONFIG_VT=y
768CONFIG_CONSOLE_TRANSLATIONS=y
705CONFIG_VT_CONSOLE=y 769CONFIG_VT_CONSOLE=y
706CONFIG_HW_CONSOLE=y 770CONFIG_HW_CONSOLE=y
707# CONFIG_VT_HW_CONSOLE_BINDING is not set 771# CONFIG_VT_HW_CONSOLE_BINDING is not set
772CONFIG_DEVKMEM=y
708# CONFIG_SERIAL_NONSTANDARD is not set 773# CONFIG_SERIAL_NONSTANDARD is not set
774# CONFIG_NOZOMI is not set
709 775
710# 776#
711# Serial drivers 777# Serial drivers
@@ -742,16 +808,14 @@ CONFIG_DEVPORT=y
742CONFIG_I2C=y 808CONFIG_I2C=y
743CONFIG_I2C_BOARDINFO=y 809CONFIG_I2C_BOARDINFO=y
744CONFIG_I2C_CHARDEV=y 810CONFIG_I2C_CHARDEV=y
811CONFIG_I2C_HELPER_AUTO=y
745 812
746# 813#
747# I2C Algorithms 814# I2C Hardware Bus support
748# 815#
749CONFIG_I2C_ALGOBIT=y
750# CONFIG_I2C_ALGOPCF is not set
751# CONFIG_I2C_ALGOPCA is not set
752 816
753# 817#
754# I2C Hardware Bus support 818# PC SMBus host controller drivers
755# 819#
756# CONFIG_I2C_ALI1535 is not set 820# CONFIG_I2C_ALI1535 is not set
757# CONFIG_I2C_ALI1563 is not set 821# CONFIG_I2C_ALI1563 is not set
@@ -759,32 +823,47 @@ CONFIG_I2C_ALGOBIT=y
759# CONFIG_I2C_AMD756 is not set 823# CONFIG_I2C_AMD756 is not set
760CONFIG_I2C_AMD8111=y 824CONFIG_I2C_AMD8111=y
761# CONFIG_I2C_I801 is not set 825# CONFIG_I2C_I801 is not set
762# CONFIG_I2C_I810 is not set 826# CONFIG_I2C_ISCH is not set
763# CONFIG_I2C_PIIX4 is not set 827# CONFIG_I2C_PIIX4 is not set
764# CONFIG_I2C_NFORCE2 is not set 828# CONFIG_I2C_NFORCE2 is not set
765# CONFIG_I2C_OCORES is not set
766# CONFIG_I2C_PARPORT_LIGHT is not set
767# CONFIG_I2C_PROSAVAGE is not set
768# CONFIG_I2C_SAVAGE4 is not set
769# CONFIG_I2C_SIMTEC is not set
770# CONFIG_I2C_SIS5595 is not set 829# CONFIG_I2C_SIS5595 is not set
771# CONFIG_I2C_SIS630 is not set 830# CONFIG_I2C_SIS630 is not set
772# CONFIG_I2C_SIS96X is not set 831# CONFIG_I2C_SIS96X is not set
773# CONFIG_I2C_TAOS_EVM is not set
774# CONFIG_I2C_STUB is not set
775# CONFIG_I2C_TINY_USB is not set
776# CONFIG_I2C_VIA is not set 832# CONFIG_I2C_VIA is not set
777# CONFIG_I2C_VIAPRO is not set 833# CONFIG_I2C_VIAPRO is not set
834
835#
836# I2C system bus drivers (mostly embedded / system-on-chip)
837#
838# CONFIG_I2C_OCORES is not set
839# CONFIG_I2C_SIMTEC is not set
840
841#
842# External I2C/SMBus adapter drivers
843#
844# CONFIG_I2C_PARPORT_LIGHT is not set
845# CONFIG_I2C_TAOS_EVM is not set
846# CONFIG_I2C_TINY_USB is not set
847
848#
849# Graphics adapter I2C/DDC channel drivers
850#
778# CONFIG_I2C_VOODOO3 is not set 851# CONFIG_I2C_VOODOO3 is not set
779 852
780# 853#
854# Other I2C/SMBus bus drivers
855#
856# CONFIG_I2C_PCA_PLATFORM is not set
857# CONFIG_I2C_STUB is not set
858
859#
781# Miscellaneous I2C Chip support 860# Miscellaneous I2C Chip support
782# 861#
783# CONFIG_SENSORS_DS1337 is not set
784# CONFIG_SENSORS_DS1374 is not set
785# CONFIG_DS1682 is not set 862# CONFIG_DS1682 is not set
863# CONFIG_AT24 is not set
786# CONFIG_SENSORS_EEPROM is not set 864# CONFIG_SENSORS_EEPROM is not set
787# CONFIG_SENSORS_PCF8574 is not set 865# CONFIG_SENSORS_PCF8574 is not set
866# CONFIG_PCF8575 is not set
788# CONFIG_SENSORS_PCA9539 is not set 867# CONFIG_SENSORS_PCA9539 is not set
789# CONFIG_SENSORS_PCF8591 is not set 868# CONFIG_SENSORS_PCF8591 is not set
790# CONFIG_SENSORS_MAX6875 is not set 869# CONFIG_SENSORS_MAX6875 is not set
@@ -793,15 +872,14 @@ CONFIG_I2C_AMD8111=y
793# CONFIG_I2C_DEBUG_ALGO is not set 872# CONFIG_I2C_DEBUG_ALGO is not set
794# CONFIG_I2C_DEBUG_BUS is not set 873# CONFIG_I2C_DEBUG_BUS is not set
795# CONFIG_I2C_DEBUG_CHIP is not set 874# CONFIG_I2C_DEBUG_CHIP is not set
796
797#
798# SPI support
799#
800# CONFIG_SPI is not set 875# CONFIG_SPI is not set
801# CONFIG_SPI_MASTER is not set 876CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
877# CONFIG_GPIOLIB is not set
802# CONFIG_W1 is not set 878# CONFIG_W1 is not set
803# CONFIG_POWER_SUPPLY is not set 879# CONFIG_POWER_SUPPLY is not set
804# CONFIG_HWMON is not set 880# CONFIG_HWMON is not set
881# CONFIG_THERMAL is not set
882# CONFIG_THERMAL_HWMON is not set
805# CONFIG_WATCHDOG is not set 883# CONFIG_WATCHDOG is not set
806 884
807# 885#
@@ -813,13 +891,25 @@ CONFIG_SSB_POSSIBLE=y
813# 891#
814# Multifunction device drivers 892# Multifunction device drivers
815# 893#
894# CONFIG_MFD_CORE is not set
816# CONFIG_MFD_SM501 is not set 895# CONFIG_MFD_SM501 is not set
896# CONFIG_HTC_PASIC3 is not set
897# CONFIG_MFD_TMIO is not set
817 898
818# 899#
819# Multimedia devices 900# Multimedia devices
820# 901#
902
903#
904# Multimedia core support
905#
821# CONFIG_VIDEO_DEV is not set 906# CONFIG_VIDEO_DEV is not set
822# CONFIG_DVB_CORE is not set 907# CONFIG_DVB_CORE is not set
908# CONFIG_VIDEO_MEDIA is not set
909
910#
911# Multimedia drivers
912#
823# CONFIG_DAB is not set 913# CONFIG_DAB is not set
824 914
825# 915#
@@ -842,10 +932,6 @@ CONFIG_SSB_POSSIBLE=y
842# 932#
843# CONFIG_VGA_CONSOLE is not set 933# CONFIG_VGA_CONSOLE is not set
844CONFIG_DUMMY_CONSOLE=y 934CONFIG_DUMMY_CONSOLE=y
845
846#
847# Sound
848#
849# CONFIG_SOUND is not set 935# CONFIG_SOUND is not set
850CONFIG_HID_SUPPORT=y 936CONFIG_HID_SUPPORT=y
851CONFIG_HID=y 937CONFIG_HID=y
@@ -865,6 +951,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
865CONFIG_USB_ARCH_HAS_EHCI=y 951CONFIG_USB_ARCH_HAS_EHCI=y
866CONFIG_USB=y 952CONFIG_USB=y
867# CONFIG_USB_DEBUG is not set 953# CONFIG_USB_DEBUG is not set
954# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
868 955
869# 956#
870# Miscellaneous USB options 957# Miscellaneous USB options
@@ -873,15 +960,18 @@ CONFIG_USB_DEVICEFS=y
873CONFIG_USB_DEVICE_CLASS=y 960CONFIG_USB_DEVICE_CLASS=y
874# CONFIG_USB_DYNAMIC_MINORS is not set 961# CONFIG_USB_DYNAMIC_MINORS is not set
875# CONFIG_USB_OTG is not set 962# CONFIG_USB_OTG is not set
963CONFIG_USB_MON=y
876 964
877# 965#
878# USB Host Controller Drivers 966# USB Host Controller Drivers
879# 967#
968# CONFIG_USB_C67X00_HCD is not set
880CONFIG_USB_EHCI_HCD=y 969CONFIG_USB_EHCI_HCD=y
881CONFIG_USB_EHCI_SPLIT_ISO=y
882CONFIG_USB_EHCI_ROOT_HUB_TT=y 970CONFIG_USB_EHCI_ROOT_HUB_TT=y
883# CONFIG_USB_EHCI_TT_NEWSCHED is not set 971# CONFIG_USB_EHCI_TT_NEWSCHED is not set
972# CONFIG_USB_EHCI_HCD_PPC_OF is not set
884# CONFIG_USB_ISP116X_HCD is not set 973# CONFIG_USB_ISP116X_HCD is not set
974# CONFIG_USB_ISP1760_HCD is not set
885CONFIG_USB_OHCI_HCD=y 975CONFIG_USB_OHCI_HCD=y
886# CONFIG_USB_OHCI_HCD_PPC_OF is not set 976# CONFIG_USB_OHCI_HCD_PPC_OF is not set
887# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 977# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
@@ -896,6 +986,7 @@ CONFIG_USB_UHCI_HCD=y
896# 986#
897# CONFIG_USB_ACM is not set 987# CONFIG_USB_ACM is not set
898# CONFIG_USB_PRINTER is not set 988# CONFIG_USB_PRINTER is not set
989# CONFIG_USB_WDM is not set
899 990
900# 991#
901# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 992# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -912,20 +1003,15 @@ CONFIG_USB_UHCI_HCD=y
912# 1003#
913# CONFIG_USB_MDC800 is not set 1004# CONFIG_USB_MDC800 is not set
914# CONFIG_USB_MICROTEK is not set 1005# CONFIG_USB_MICROTEK is not set
915CONFIG_USB_MON=y
916 1006
917# 1007#
918# USB port drivers 1008# USB port drivers
919# 1009#
920
921#
922# USB Serial Converter support
923#
924CONFIG_USB_SERIAL=y 1010CONFIG_USB_SERIAL=y
925# CONFIG_USB_SERIAL_CONSOLE is not set 1011# CONFIG_USB_SERIAL_CONSOLE is not set
1012CONFIG_USB_EZUSB=y
926CONFIG_USB_SERIAL_GENERIC=y 1013CONFIG_USB_SERIAL_GENERIC=y
927# CONFIG_USB_SERIAL_AIRCABLE is not set 1014# CONFIG_USB_SERIAL_AIRCABLE is not set
928# CONFIG_USB_SERIAL_AIRPRIME is not set
929# CONFIG_USB_SERIAL_ARK3116 is not set 1015# CONFIG_USB_SERIAL_ARK3116 is not set
930# CONFIG_USB_SERIAL_BELKIN is not set 1016# CONFIG_USB_SERIAL_BELKIN is not set
931# CONFIG_USB_SERIAL_CH341 is not set 1017# CONFIG_USB_SERIAL_CH341 is not set
@@ -943,6 +1029,7 @@ CONFIG_USB_SERIAL_CYPRESS_M8=m
943# CONFIG_USB_SERIAL_EDGEPORT_TI is not set 1029# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
944CONFIG_USB_SERIAL_GARMIN=m 1030CONFIG_USB_SERIAL_GARMIN=m
945CONFIG_USB_SERIAL_IPW=m 1031CONFIG_USB_SERIAL_IPW=m
1032# CONFIG_USB_SERIAL_IUU is not set
946# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set 1033# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
947CONFIG_USB_SERIAL_KEYSPAN=y 1034CONFIG_USB_SERIAL_KEYSPAN=y
948CONFIG_USB_SERIAL_KEYSPAN_MPR=y 1035CONFIG_USB_SERIAL_KEYSPAN_MPR=y
@@ -962,9 +1049,11 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
962# CONFIG_USB_SERIAL_MCT_U232 is not set 1049# CONFIG_USB_SERIAL_MCT_U232 is not set
963# CONFIG_USB_SERIAL_MOS7720 is not set 1050# CONFIG_USB_SERIAL_MOS7720 is not set
964# CONFIG_USB_SERIAL_MOS7840 is not set 1051# CONFIG_USB_SERIAL_MOS7840 is not set
1052# CONFIG_USB_SERIAL_MOTOROLA is not set
965# CONFIG_USB_SERIAL_NAVMAN is not set 1053# CONFIG_USB_SERIAL_NAVMAN is not set
966# CONFIG_USB_SERIAL_PL2303 is not set 1054# CONFIG_USB_SERIAL_PL2303 is not set
967# CONFIG_USB_SERIAL_OTI6858 is not set 1055# CONFIG_USB_SERIAL_OTI6858 is not set
1056# CONFIG_USB_SERIAL_SPCP8X5 is not set
968# CONFIG_USB_SERIAL_HP4X is not set 1057# CONFIG_USB_SERIAL_HP4X is not set
969# CONFIG_USB_SERIAL_SAFE is not set 1058# CONFIG_USB_SERIAL_SAFE is not set
970# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set 1059# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
@@ -974,7 +1063,6 @@ CONFIG_USB_SERIAL_TI=m
974# CONFIG_USB_SERIAL_OPTION is not set 1063# CONFIG_USB_SERIAL_OPTION is not set
975# CONFIG_USB_SERIAL_OMNINET is not set 1064# CONFIG_USB_SERIAL_OMNINET is not set
976# CONFIG_USB_SERIAL_DEBUG is not set 1065# CONFIG_USB_SERIAL_DEBUG is not set
977CONFIG_USB_EZUSB=y
978 1066
979# 1067#
980# USB Miscellaneous drivers 1068# USB Miscellaneous drivers
@@ -982,7 +1070,6 @@ CONFIG_USB_EZUSB=y
982# CONFIG_USB_EMI62 is not set 1070# CONFIG_USB_EMI62 is not set
983# CONFIG_USB_EMI26 is not set 1071# CONFIG_USB_EMI26 is not set
984# CONFIG_USB_ADUTUX is not set 1072# CONFIG_USB_ADUTUX is not set
985# CONFIG_USB_AUERSWALD is not set
986# CONFIG_USB_RIO500 is not set 1073# CONFIG_USB_RIO500 is not set
987# CONFIG_USB_LEGOTOWER is not set 1074# CONFIG_USB_LEGOTOWER is not set
988# CONFIG_USB_LCD is not set 1075# CONFIG_USB_LCD is not set
@@ -999,24 +1086,16 @@ CONFIG_USB_EZUSB=y
999# CONFIG_USB_TRANCEVIBRATOR is not set 1086# CONFIG_USB_TRANCEVIBRATOR is not set
1000# CONFIG_USB_IOWARRIOR is not set 1087# CONFIG_USB_IOWARRIOR is not set
1001# CONFIG_USB_TEST is not set 1088# CONFIG_USB_TEST is not set
1002 1089# CONFIG_USB_ISIGHTFW is not set
1003#
1004# USB DSL modem support
1005#
1006
1007#
1008# USB Gadget Support
1009#
1010# CONFIG_USB_GADGET is not set 1090# CONFIG_USB_GADGET is not set
1011# CONFIG_MMC is not set 1091# CONFIG_MMC is not set
1092# CONFIG_MEMSTICK is not set
1012# CONFIG_NEW_LEDS is not set 1093# CONFIG_NEW_LEDS is not set
1094# CONFIG_ACCESSIBILITY is not set
1013# CONFIG_INFINIBAND is not set 1095# CONFIG_INFINIBAND is not set
1014# CONFIG_EDAC is not set 1096# CONFIG_EDAC is not set
1015# CONFIG_RTC_CLASS is not set 1097# CONFIG_RTC_CLASS is not set
1016 1098# CONFIG_DMADEVICES is not set
1017#
1018# Userspace I/O
1019#
1020# CONFIG_UIO is not set 1099# CONFIG_UIO is not set
1021 1100
1022# 1101#
@@ -1037,12 +1116,10 @@ CONFIG_FS_POSIX_ACL=y
1037# CONFIG_XFS_FS is not set 1116# CONFIG_XFS_FS is not set
1038# CONFIG_GFS2_FS is not set 1117# CONFIG_GFS2_FS is not set
1039# CONFIG_OCFS2_FS is not set 1118# CONFIG_OCFS2_FS is not set
1040# CONFIG_MINIX_FS is not set 1119CONFIG_DNOTIFY=y
1041# CONFIG_ROMFS_FS is not set
1042CONFIG_INOTIFY=y 1120CONFIG_INOTIFY=y
1043CONFIG_INOTIFY_USER=y 1121CONFIG_INOTIFY_USER=y
1044# CONFIG_QUOTA is not set 1122# CONFIG_QUOTA is not set
1045CONFIG_DNOTIFY=y
1046# CONFIG_AUTOFS_FS is not set 1123# CONFIG_AUTOFS_FS is not set
1047# CONFIG_AUTOFS4_FS is not set 1124# CONFIG_AUTOFS4_FS is not set
1048# CONFIG_FUSE_FS is not set 1125# CONFIG_FUSE_FS is not set
@@ -1088,8 +1165,11 @@ CONFIG_HUGETLB_PAGE=y
1088# CONFIG_EFS_FS is not set 1165# CONFIG_EFS_FS is not set
1089CONFIG_CRAMFS=y 1166CONFIG_CRAMFS=y
1090# CONFIG_VXFS_FS is not set 1167# CONFIG_VXFS_FS is not set
1168# CONFIG_MINIX_FS is not set
1169# CONFIG_OMFS_FS is not set
1091# CONFIG_HPFS_FS is not set 1170# CONFIG_HPFS_FS is not set
1092# CONFIG_QNX4FS_FS is not set 1171# CONFIG_QNX4FS_FS is not set
1172# CONFIG_ROMFS_FS is not set
1093# CONFIG_SYSV_FS is not set 1173# CONFIG_SYSV_FS is not set
1094# CONFIG_UFS_FS is not set 1174# CONFIG_UFS_FS is not set
1095CONFIG_NETWORK_FILESYSTEMS=y 1175CONFIG_NETWORK_FILESYSTEMS=y
@@ -1097,16 +1177,14 @@ CONFIG_NFS_FS=y
1097CONFIG_NFS_V3=y 1177CONFIG_NFS_V3=y
1098CONFIG_NFS_V3_ACL=y 1178CONFIG_NFS_V3_ACL=y
1099CONFIG_NFS_V4=y 1179CONFIG_NFS_V4=y
1100# CONFIG_NFS_DIRECTIO is not set
1101# CONFIG_NFSD is not set
1102CONFIG_ROOT_NFS=y 1180CONFIG_ROOT_NFS=y
1181# CONFIG_NFSD is not set
1103CONFIG_LOCKD=y 1182CONFIG_LOCKD=y
1104CONFIG_LOCKD_V4=y 1183CONFIG_LOCKD_V4=y
1105CONFIG_NFS_ACL_SUPPORT=y 1184CONFIG_NFS_ACL_SUPPORT=y
1106CONFIG_NFS_COMMON=y 1185CONFIG_NFS_COMMON=y
1107CONFIG_SUNRPC=y 1186CONFIG_SUNRPC=y
1108CONFIG_SUNRPC_GSS=y 1187CONFIG_SUNRPC_GSS=y
1109# CONFIG_SUNRPC_BIND34 is not set
1110CONFIG_RPCSEC_GSS_KRB5=y 1188CONFIG_RPCSEC_GSS_KRB5=y
1111# CONFIG_RPCSEC_GSS_SPKM3 is not set 1189# CONFIG_RPCSEC_GSS_SPKM3 is not set
1112# CONFIG_SMB_FS is not set 1190# CONFIG_SMB_FS is not set
@@ -1177,14 +1255,15 @@ CONFIG_NLS_DEFAULT="utf-8"
1177# CONFIG_NLS_KOI8_U is not set 1255# CONFIG_NLS_KOI8_U is not set
1178CONFIG_NLS_UTF8=y 1256CONFIG_NLS_UTF8=y
1179# CONFIG_DLM is not set 1257# CONFIG_DLM is not set
1180# CONFIG_UCC_SLOW is not set
1181 1258
1182# 1259#
1183# Library routines 1260# Library routines
1184# 1261#
1185CONFIG_BITREVERSE=y 1262CONFIG_BITREVERSE=y
1263# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1186CONFIG_CRC_CCITT=y 1264CONFIG_CRC_CCITT=y
1187# CONFIG_CRC16 is not set 1265# CONFIG_CRC16 is not set
1266CONFIG_CRC_T10DIF=y
1188# CONFIG_CRC_ITU_T is not set 1267# CONFIG_CRC_ITU_T is not set
1189CONFIG_CRC32=y 1268CONFIG_CRC32=y
1190# CONFIG_CRC7 is not set 1269# CONFIG_CRC7 is not set
@@ -1194,7 +1273,7 @@ CONFIG_PLIST=y
1194CONFIG_HAS_IOMEM=y 1273CONFIG_HAS_IOMEM=y
1195CONFIG_HAS_IOPORT=y 1274CONFIG_HAS_IOPORT=y
1196CONFIG_HAS_DMA=y 1275CONFIG_HAS_DMA=y
1197# CONFIG_INSTRUMENTATION is not set 1276CONFIG_HAVE_LMB=y
1198 1277
1199# 1278#
1200# Kernel hacking 1279# Kernel hacking
@@ -1202,6 +1281,7 @@ CONFIG_HAS_DMA=y
1202# CONFIG_PRINTK_TIME is not set 1281# CONFIG_PRINTK_TIME is not set
1203CONFIG_ENABLE_WARN_DEPRECATED=y 1282CONFIG_ENABLE_WARN_DEPRECATED=y
1204CONFIG_ENABLE_MUST_CHECK=y 1283CONFIG_ENABLE_MUST_CHECK=y
1284CONFIG_FRAME_WARN=2048
1205CONFIG_MAGIC_SYSRQ=y 1285CONFIG_MAGIC_SYSRQ=y
1206# CONFIG_UNUSED_SYMBOLS is not set 1286# CONFIG_UNUSED_SYMBOLS is not set
1207CONFIG_DEBUG_FS=y 1287CONFIG_DEBUG_FS=y
@@ -1209,34 +1289,59 @@ CONFIG_DEBUG_FS=y
1209CONFIG_DEBUG_KERNEL=y 1289CONFIG_DEBUG_KERNEL=y
1210# CONFIG_DEBUG_SHIRQ is not set 1290# CONFIG_DEBUG_SHIRQ is not set
1211CONFIG_DETECT_SOFTLOCKUP=y 1291CONFIG_DETECT_SOFTLOCKUP=y
1292# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1293CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1212CONFIG_SCHED_DEBUG=y 1294CONFIG_SCHED_DEBUG=y
1213# CONFIG_SCHEDSTATS is not set 1295CONFIG_SCHEDSTATS=y
1214# CONFIG_TIMER_STATS is not set 1296# CONFIG_TIMER_STATS is not set
1297# CONFIG_DEBUG_OBJECTS is not set
1215# CONFIG_SLUB_DEBUG_ON is not set 1298# CONFIG_SLUB_DEBUG_ON is not set
1299# CONFIG_SLUB_STATS is not set
1216# CONFIG_DEBUG_RT_MUTEXES is not set 1300# CONFIG_DEBUG_RT_MUTEXES is not set
1217# CONFIG_RT_MUTEX_TESTER is not set 1301# CONFIG_RT_MUTEX_TESTER is not set
1218# CONFIG_DEBUG_SPINLOCK is not set 1302# CONFIG_DEBUG_SPINLOCK is not set
1219# CONFIG_DEBUG_MUTEXES is not set 1303# CONFIG_DEBUG_MUTEXES is not set
1304# CONFIG_DEBUG_LOCK_ALLOC is not set
1305# CONFIG_PROVE_LOCKING is not set
1306# CONFIG_LOCK_STAT is not set
1220CONFIG_DEBUG_SPINLOCK_SLEEP=y 1307CONFIG_DEBUG_SPINLOCK_SLEEP=y
1221# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1308# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1309CONFIG_STACKTRACE=y
1222# CONFIG_DEBUG_KOBJECT is not set 1310# CONFIG_DEBUG_KOBJECT is not set
1223CONFIG_DEBUG_BUGVERBOSE=y 1311CONFIG_DEBUG_BUGVERBOSE=y
1224# CONFIG_DEBUG_INFO is not set 1312# CONFIG_DEBUG_INFO is not set
1225# CONFIG_DEBUG_VM is not set 1313# CONFIG_DEBUG_VM is not set
1314# CONFIG_DEBUG_WRITECOUNT is not set
1315CONFIG_DEBUG_MEMORY_INIT=y
1226# CONFIG_DEBUG_LIST is not set 1316# CONFIG_DEBUG_LIST is not set
1227# CONFIG_DEBUG_SG is not set 1317# CONFIG_DEBUG_SG is not set
1228# CONFIG_FORCED_INLINING is not set 1318CONFIG_FRAME_POINTER=y
1229# CONFIG_BOOT_PRINTK_DELAY is not set 1319# CONFIG_BOOT_PRINTK_DELAY is not set
1230# CONFIG_RCU_TORTURE_TEST is not set 1320# CONFIG_RCU_TORTURE_TEST is not set
1321# CONFIG_KPROBES_SANITY_TEST is not set
1322# CONFIG_BACKTRACE_SELF_TEST is not set
1323# CONFIG_LKDTM is not set
1231# CONFIG_FAULT_INJECTION is not set 1324# CONFIG_FAULT_INJECTION is not set
1325CONFIG_LATENCYTOP=y
1326# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1327CONFIG_HAVE_FTRACE=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329# CONFIG_FTRACE is not set
1330# CONFIG_IRQSOFF_TRACER is not set
1331# CONFIG_SCHED_TRACER is not set
1332# CONFIG_CONTEXT_SWITCH_TRACER is not set
1232# CONFIG_SAMPLES is not set 1333# CONFIG_SAMPLES is not set
1334CONFIG_HAVE_ARCH_KGDB=y
1335# CONFIG_KGDB is not set
1233CONFIG_DEBUG_STACKOVERFLOW=y 1336CONFIG_DEBUG_STACKOVERFLOW=y
1234CONFIG_DEBUG_STACK_USAGE=y 1337CONFIG_DEBUG_STACK_USAGE=y
1235# CONFIG_DEBUG_PAGEALLOC is not set 1338# CONFIG_DEBUG_PAGEALLOC is not set
1236CONFIG_DEBUGGER=y 1339# CONFIG_CODE_PATCHING_SELFTEST is not set
1340# CONFIG_FTR_FIXUP_SELFTEST is not set
1237CONFIG_XMON=y 1341CONFIG_XMON=y
1238CONFIG_XMON_DEFAULT=y 1342CONFIG_XMON_DEFAULT=y
1239CONFIG_XMON_DISASSEMBLY=y 1343CONFIG_XMON_DISASSEMBLY=y
1344CONFIG_DEBUGGER=y
1240# CONFIG_IRQSTACKS is not set 1345# CONFIG_IRQSTACKS is not set
1241# CONFIG_VIRQ_DEBUG is not set 1346# CONFIG_VIRQ_DEBUG is not set
1242CONFIG_BOOTX_TEXT=y 1347CONFIG_BOOTX_TEXT=y
@@ -1249,44 +1354,84 @@ CONFIG_BOOTX_TEXT=y
1249# CONFIG_SECURITY is not set 1354# CONFIG_SECURITY is not set
1250# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1355# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1251CONFIG_CRYPTO=y 1356CONFIG_CRYPTO=y
1357
1358#
1359# Crypto core or helper
1360#
1252CONFIG_CRYPTO_ALGAPI=y 1361CONFIG_CRYPTO_ALGAPI=y
1253CONFIG_CRYPTO_BLKCIPHER=y 1362CONFIG_CRYPTO_BLKCIPHER=y
1254CONFIG_CRYPTO_MANAGER=y 1363CONFIG_CRYPTO_MANAGER=y
1364# CONFIG_CRYPTO_GF128MUL is not set
1365# CONFIG_CRYPTO_NULL is not set
1366# CONFIG_CRYPTO_CRYPTD is not set
1367# CONFIG_CRYPTO_AUTHENC is not set
1368# CONFIG_CRYPTO_TEST is not set
1369
1370#
1371# Authenticated Encryption with Associated Data
1372#
1373# CONFIG_CRYPTO_CCM is not set
1374# CONFIG_CRYPTO_GCM is not set
1375# CONFIG_CRYPTO_SEQIV is not set
1376
1377#
1378# Block modes
1379#
1380CONFIG_CRYPTO_CBC=y
1381# CONFIG_CRYPTO_CTR is not set
1382# CONFIG_CRYPTO_CTS is not set
1383CONFIG_CRYPTO_ECB=m
1384# CONFIG_CRYPTO_LRW is not set
1385CONFIG_CRYPTO_PCBC=m
1386# CONFIG_CRYPTO_XTS is not set
1387
1388#
1389# Hash modes
1390#
1255# CONFIG_CRYPTO_HMAC is not set 1391# CONFIG_CRYPTO_HMAC is not set
1256# CONFIG_CRYPTO_XCBC is not set 1392# CONFIG_CRYPTO_XCBC is not set
1257# CONFIG_CRYPTO_NULL is not set 1393
1394#
1395# Digest
1396#
1397# CONFIG_CRYPTO_CRC32C is not set
1258# CONFIG_CRYPTO_MD4 is not set 1398# CONFIG_CRYPTO_MD4 is not set
1259CONFIG_CRYPTO_MD5=y 1399CONFIG_CRYPTO_MD5=y
1400# CONFIG_CRYPTO_MICHAEL_MIC is not set
1401# CONFIG_CRYPTO_RMD128 is not set
1402# CONFIG_CRYPTO_RMD160 is not set
1403# CONFIG_CRYPTO_RMD256 is not set
1404# CONFIG_CRYPTO_RMD320 is not set
1260# CONFIG_CRYPTO_SHA1 is not set 1405# CONFIG_CRYPTO_SHA1 is not set
1261# CONFIG_CRYPTO_SHA256 is not set 1406# CONFIG_CRYPTO_SHA256 is not set
1262# CONFIG_CRYPTO_SHA512 is not set 1407# CONFIG_CRYPTO_SHA512 is not set
1263# CONFIG_CRYPTO_WP512 is not set
1264# CONFIG_CRYPTO_TGR192 is not set 1408# CONFIG_CRYPTO_TGR192 is not set
1265# CONFIG_CRYPTO_GF128MUL is not set 1409# CONFIG_CRYPTO_WP512 is not set
1266CONFIG_CRYPTO_ECB=m 1410
1267CONFIG_CRYPTO_CBC=y 1411#
1268CONFIG_CRYPTO_PCBC=m 1412# Ciphers
1269# CONFIG_CRYPTO_LRW is not set 1413#
1270# CONFIG_CRYPTO_XTS is not set
1271# CONFIG_CRYPTO_CRYPTD is not set
1272CONFIG_CRYPTO_DES=y
1273# CONFIG_CRYPTO_FCRYPT is not set
1274# CONFIG_CRYPTO_BLOWFISH is not set
1275# CONFIG_CRYPTO_TWOFISH is not set
1276# CONFIG_CRYPTO_SERPENT is not set
1277# CONFIG_CRYPTO_AES is not set 1414# CONFIG_CRYPTO_AES is not set
1415# CONFIG_CRYPTO_ANUBIS is not set
1416# CONFIG_CRYPTO_ARC4 is not set
1417# CONFIG_CRYPTO_BLOWFISH is not set
1418# CONFIG_CRYPTO_CAMELLIA is not set
1278# CONFIG_CRYPTO_CAST5 is not set 1419# CONFIG_CRYPTO_CAST5 is not set
1279# CONFIG_CRYPTO_CAST6 is not set 1420# CONFIG_CRYPTO_CAST6 is not set
1280# CONFIG_CRYPTO_TEA is not set 1421CONFIG_CRYPTO_DES=y
1281# CONFIG_CRYPTO_ARC4 is not set 1422# CONFIG_CRYPTO_FCRYPT is not set
1282# CONFIG_CRYPTO_KHAZAD is not set 1423# CONFIG_CRYPTO_KHAZAD is not set
1283# CONFIG_CRYPTO_ANUBIS is not set 1424# CONFIG_CRYPTO_SALSA20 is not set
1284# CONFIG_CRYPTO_SEED is not set 1425# CONFIG_CRYPTO_SEED is not set
1426# CONFIG_CRYPTO_SERPENT is not set
1427# CONFIG_CRYPTO_TEA is not set
1428# CONFIG_CRYPTO_TWOFISH is not set
1429
1430#
1431# Compression
1432#
1285# CONFIG_CRYPTO_DEFLATE is not set 1433# CONFIG_CRYPTO_DEFLATE is not set
1286# CONFIG_CRYPTO_MICHAEL_MIC is not set 1434# CONFIG_CRYPTO_LZO is not set
1287# CONFIG_CRYPTO_CRC32C is not set
1288# CONFIG_CRYPTO_CAMELLIA is not set
1289# CONFIG_CRYPTO_TEST is not set
1290# CONFIG_CRYPTO_AUTHENC is not set
1291# CONFIG_CRYPTO_HW is not set 1435# CONFIG_CRYPTO_HW is not set
1292# CONFIG_PPC_CLOCK is not set 1436# CONFIG_PPC_CLOCK is not set
1437# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc7448_hpc2_defconfig b/arch/powerpc/configs/mpc7448_hpc2_defconfig
index 066c583c1f8a..ab5199f26a24 100644
--- a/arch/powerpc/configs/mpc7448_hpc2_defconfig
+++ b/arch/powerpc/configs/mpc7448_hpc2_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:11 2008 4# Thu Aug 21 00:52:06 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -88,7 +89,6 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 89CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 90CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 91CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 92CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 93# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 94CONFIG_HOTPLUG=y
@@ -112,10 +112,16 @@ CONFIG_SLUB=y
112# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
113# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
114CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
@@ -126,6 +132,7 @@ CONFIG_LBD=y
126# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
127# CONFIG_LSF is not set 133# CONFIG_LSF is not set
128# CONFIG_BLK_DEV_BSG is not set 134# CONFIG_BLK_DEV_BSG is not set
135# CONFIG_BLK_DEV_INTEGRITY is not set
129 136
130# 137#
131# IO Schedulers 138# IO Schedulers
@@ -145,25 +152,25 @@ CONFIG_CLASSIC_RCU=y
145# Platform support 152# Platform support
146# 153#
147CONFIG_PPC_MULTIPLATFORM=y 154CONFIG_PPC_MULTIPLATFORM=y
148# CONFIG_PPC_82xx is not set
149# CONFIG_PPC_83xx is not set
150# CONFIG_PPC_86xx is not set
151CONFIG_CLASSIC32=y 155CONFIG_CLASSIC32=y
152# CONFIG_PPC_CHRP is not set 156# CONFIG_PPC_CHRP is not set
153# CONFIG_PPC_MPC512x is not set
154# CONFIG_PPC_MPC5121 is not set
155# CONFIG_MPC5121_ADS is not set 157# CONFIG_MPC5121_ADS is not set
158# CONFIG_MPC5121_GENERIC is not set
156# CONFIG_PPC_MPC52xx is not set 159# CONFIG_PPC_MPC52xx is not set
157# CONFIG_PPC_PMAC is not set 160# CONFIG_PPC_PMAC is not set
158# CONFIG_PPC_CELL is not set 161# CONFIG_PPC_CELL is not set
159# CONFIG_PPC_CELL_NATIVE is not set 162# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PPC_82xx is not set
160# CONFIG_PQ2ADS is not set 164# CONFIG_PQ2ADS is not set
165# CONFIG_PPC_83xx is not set
166# CONFIG_PPC_86xx is not set
161CONFIG_EMBEDDED6xx=y 167CONFIG_EMBEDDED6xx=y
162# CONFIG_LINKSTATION is not set 168# CONFIG_LINKSTATION is not set
163# CONFIG_STORCENTER is not set 169# CONFIG_STORCENTER is not set
164CONFIG_MPC7448HPC2=y 170CONFIG_MPC7448HPC2=y
165# CONFIG_PPC_HOLLY is not set 171# CONFIG_PPC_HOLLY is not set
166# CONFIG_PPC_PRPMC2800 is not set 172# CONFIG_PPC_PRPMC2800 is not set
173# CONFIG_PPC_C2K is not set
167CONFIG_TSI108_BRIDGE=y 174CONFIG_TSI108_BRIDGE=y
168# CONFIG_IPIC is not set 175# CONFIG_IPIC is not set
169CONFIG_MPIC=y 176CONFIG_MPIC=y
@@ -192,7 +199,7 @@ CONFIG_HZ_250=y
192# CONFIG_HZ_300 is not set 199# CONFIG_HZ_300 is not set
193# CONFIG_HZ_1000 is not set 200# CONFIG_HZ_1000 is not set
194CONFIG_HZ=250 201CONFIG_HZ=250
195# CONFIG_SCHED_HRTICK is not set 202CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 203CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
@@ -215,6 +222,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 222# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 223CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 224CONFIG_SPLIT_PTLOCK_CPUS=4
225CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 226# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 227CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 228CONFIG_BOUNCE=y
@@ -222,6 +230,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 230CONFIG_FORCE_MAX_ZONEORDER=11
223CONFIG_PROC_DEVICETREE=y 231CONFIG_PROC_DEVICETREE=y
224# CONFIG_CMDLINE_BOOL is not set 232# CONFIG_CMDLINE_BOOL is not set
233CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 234# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 235# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 236CONFIG_ISA_DMA_API=y
@@ -256,10 +265,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
256CONFIG_KERNEL_START=0xc0000000 265CONFIG_KERNEL_START=0xc0000000
257CONFIG_PHYSICAL_START=0x00000000 266CONFIG_PHYSICAL_START=0x00000000
258CONFIG_TASK_SIZE=0xc0000000 267CONFIG_TASK_SIZE=0xc0000000
259
260#
261# Networking
262#
263CONFIG_NET=y 268CONFIG_NET=y
264 269
265# 270#
@@ -374,12 +379,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
374# CONFIG_BLK_DEV_XIP is not set 379# CONFIG_BLK_DEV_XIP is not set
375# CONFIG_CDROM_PKTCDVD is not set 380# CONFIG_CDROM_PKTCDVD is not set
376# CONFIG_ATA_OVER_ETH is not set 381# CONFIG_ATA_OVER_ETH is not set
382# CONFIG_BLK_DEV_HD is not set
377CONFIG_MISC_DEVICES=y 383CONFIG_MISC_DEVICES=y
378# CONFIG_PHANTOM is not set 384# CONFIG_PHANTOM is not set
379# CONFIG_EEPROM_93CX6 is not set 385# CONFIG_EEPROM_93CX6 is not set
380# CONFIG_SGI_IOC4 is not set 386# CONFIG_SGI_IOC4 is not set
381# CONFIG_TIFM_CORE is not set 387# CONFIG_TIFM_CORE is not set
382# CONFIG_ENCLOSURE_SERVICES is not set 388# CONFIG_ENCLOSURE_SERVICES is not set
389# CONFIG_HP_ILO is not set
383CONFIG_HAVE_IDE=y 390CONFIG_HAVE_IDE=y
384# CONFIG_IDE is not set 391# CONFIG_IDE is not set
385 392
@@ -457,6 +464,7 @@ CONFIG_SCSI_LOWLEVEL=y
457# CONFIG_SCSI_NSP32 is not set 464# CONFIG_SCSI_NSP32 is not set
458# CONFIG_SCSI_DEBUG is not set 465# CONFIG_SCSI_DEBUG is not set
459# CONFIG_SCSI_SRP is not set 466# CONFIG_SCSI_SRP is not set
467# CONFIG_SCSI_DH is not set
460CONFIG_ATA=y 468CONFIG_ATA=y
461# CONFIG_ATA_NONSTANDARD is not set 469# CONFIG_ATA_NONSTANDARD is not set
462CONFIG_SATA_PMP=y 470CONFIG_SATA_PMP=y
@@ -523,12 +531,15 @@ CONFIG_SATA_MV=y
523# 531#
524# IEEE 1394 (FireWire) support 532# IEEE 1394 (FireWire) support
525# 533#
534
535#
536# Enable only one of the two stacks, unless you know what you are doing
537#
526# CONFIG_FIREWIRE is not set 538# CONFIG_FIREWIRE is not set
527# CONFIG_IEEE1394 is not set 539# CONFIG_IEEE1394 is not set
528# CONFIG_I2O is not set 540# CONFIG_I2O is not set
529# CONFIG_MACINTOSH_DRIVERS is not set 541# CONFIG_MACINTOSH_DRIVERS is not set
530CONFIG_NETDEVICES=y 542CONFIG_NETDEVICES=y
531# CONFIG_NETDEVICES_MULTIQUEUE is not set
532# CONFIG_DUMMY is not set 543# CONFIG_DUMMY is not set
533# CONFIG_BONDING is not set 544# CONFIG_BONDING is not set
534# CONFIG_MACVLAN is not set 545# CONFIG_MACVLAN is not set
@@ -594,7 +605,6 @@ CONFIG_NETDEV_1000=y
594# CONFIG_DL2K is not set 605# CONFIG_DL2K is not set
595# CONFIG_E1000 is not set 606# CONFIG_E1000 is not set
596# CONFIG_E1000E is not set 607# CONFIG_E1000E is not set
597# CONFIG_E1000E_ENABLED is not set
598# CONFIG_IP1000 is not set 608# CONFIG_IP1000 is not set
599# CONFIG_IGB is not set 609# CONFIG_IGB is not set
600# CONFIG_NS83820 is not set 610# CONFIG_NS83820 is not set
@@ -611,6 +621,7 @@ CONFIG_TSI108_ETH=y
611# CONFIG_MV643XX_ETH is not set 621# CONFIG_MV643XX_ETH is not set
612# CONFIG_QLA3XXX is not set 622# CONFIG_QLA3XXX is not set
613# CONFIG_ATL1 is not set 623# CONFIG_ATL1 is not set
624# CONFIG_ATL1E is not set
614CONFIG_NETDEV_10000=y 625CONFIG_NETDEV_10000=y
615# CONFIG_CHELSIO_T1 is not set 626# CONFIG_CHELSIO_T1 is not set
616# CONFIG_CHELSIO_T3 is not set 627# CONFIG_CHELSIO_T3 is not set
@@ -716,6 +727,8 @@ CONFIG_GEN_RTC=y
716CONFIG_DEVPORT=y 727CONFIG_DEVPORT=y
717# CONFIG_I2C is not set 728# CONFIG_I2C is not set
718# CONFIG_SPI is not set 729# CONFIG_SPI is not set
730CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
731# CONFIG_GPIOLIB is not set
719# CONFIG_W1 is not set 732# CONFIG_W1 is not set
720# CONFIG_POWER_SUPPLY is not set 733# CONFIG_POWER_SUPPLY is not set
721CONFIG_HWMON=y 734CONFIG_HWMON=y
@@ -736,6 +749,7 @@ CONFIG_HWMON=y
736# CONFIG_SENSORS_W83627EHF is not set 749# CONFIG_SENSORS_W83627EHF is not set
737# CONFIG_HWMON_DEBUG_CHIP is not set 750# CONFIG_HWMON_DEBUG_CHIP is not set
738# CONFIG_THERMAL is not set 751# CONFIG_THERMAL is not set
752# CONFIG_THERMAL_HWMON is not set
739# CONFIG_WATCHDOG is not set 753# CONFIG_WATCHDOG is not set
740 754
741# 755#
@@ -747,8 +761,10 @@ CONFIG_SSB_POSSIBLE=y
747# 761#
748# Multifunction device drivers 762# Multifunction device drivers
749# 763#
764# CONFIG_MFD_CORE is not set
750# CONFIG_MFD_SM501 is not set 765# CONFIG_MFD_SM501 is not set
751# CONFIG_HTC_PASIC3 is not set 766# CONFIG_HTC_PASIC3 is not set
767# CONFIG_MFD_TMIO is not set
752 768
753# 769#
754# Multimedia devices 770# Multimedia devices
@@ -780,10 +796,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
780# Display device support 796# Display device support
781# 797#
782# CONFIG_DISPLAY_SUPPORT is not set 798# CONFIG_DISPLAY_SUPPORT is not set
783
784#
785# Sound
786#
787# CONFIG_SOUND is not set 799# CONFIG_SOUND is not set
788CONFIG_HID_SUPPORT=y 800CONFIG_HID_SUPPORT=y
789CONFIG_HID=y 801CONFIG_HID=y
@@ -798,6 +810,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
798# CONFIG_USB_OTG_BLACKLIST_HUB is not set 810# CONFIG_USB_OTG_BLACKLIST_HUB is not set
799 811
800# 812#
813# Enable Host or Gadget support to see Inventra options
814#
815
816#
801# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 817# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
802# 818#
803# CONFIG_USB_GADGET is not set 819# CONFIG_USB_GADGET is not set
@@ -875,6 +891,7 @@ CONFIG_TMPFS=y
875# CONFIG_CRAMFS is not set 891# CONFIG_CRAMFS is not set
876# CONFIG_VXFS_FS is not set 892# CONFIG_VXFS_FS is not set
877# CONFIG_MINIX_FS is not set 893# CONFIG_MINIX_FS is not set
894# CONFIG_OMFS_FS is not set
878# CONFIG_HPFS_FS is not set 895# CONFIG_HPFS_FS is not set
879# CONFIG_QNX4FS_FS is not set 896# CONFIG_QNX4FS_FS is not set
880# CONFIG_ROMFS_FS is not set 897# CONFIG_ROMFS_FS is not set
@@ -884,12 +901,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
884CONFIG_NFS_FS=y 901CONFIG_NFS_FS=y
885# CONFIG_NFS_V3 is not set 902# CONFIG_NFS_V3 is not set
886# CONFIG_NFS_V4 is not set 903# CONFIG_NFS_V4 is not set
887# CONFIG_NFSD is not set
888CONFIG_ROOT_NFS=y 904CONFIG_ROOT_NFS=y
905# CONFIG_NFSD is not set
889CONFIG_LOCKD=y 906CONFIG_LOCKD=y
890CONFIG_NFS_COMMON=y 907CONFIG_NFS_COMMON=y
891CONFIG_SUNRPC=y 908CONFIG_SUNRPC=y
892# CONFIG_SUNRPC_BIND34 is not set
893# CONFIG_RPCSEC_GSS_KRB5 is not set 909# CONFIG_RPCSEC_GSS_KRB5 is not set
894# CONFIG_RPCSEC_GSS_SPKM3 is not set 910# CONFIG_RPCSEC_GSS_SPKM3 is not set
895# CONFIG_SMB_FS is not set 911# CONFIG_SMB_FS is not set
@@ -929,6 +945,7 @@ CONFIG_BITREVERSE=y
929# CONFIG_GENERIC_FIND_FIRST_BIT is not set 945# CONFIG_GENERIC_FIND_FIRST_BIT is not set
930# CONFIG_CRC_CCITT is not set 946# CONFIG_CRC_CCITT is not set
931# CONFIG_CRC16 is not set 947# CONFIG_CRC16 is not set
948CONFIG_CRC_T10DIF=y
932# CONFIG_CRC_ITU_T is not set 949# CONFIG_CRC_ITU_T is not set
933CONFIG_CRC32=y 950CONFIG_CRC32=y
934# CONFIG_CRC7 is not set 951# CONFIG_CRC7 is not set
@@ -954,7 +971,16 @@ CONFIG_FRAME_WARN=1024
954# CONFIG_SLUB_DEBUG_ON is not set 971# CONFIG_SLUB_DEBUG_ON is not set
955# CONFIG_SLUB_STATS is not set 972# CONFIG_SLUB_STATS is not set
956# CONFIG_DEBUG_BUGVERBOSE is not set 973# CONFIG_DEBUG_BUGVERBOSE is not set
974# CONFIG_DEBUG_MEMORY_INIT is not set
975# CONFIG_LATENCYTOP is not set
976CONFIG_SYSCTL_SYSCALL_CHECK=y
977CONFIG_HAVE_FTRACE=y
978CONFIG_HAVE_DYNAMIC_FTRACE=y
979# CONFIG_FTRACE is not set
980# CONFIG_SCHED_TRACER is not set
981# CONFIG_CONTEXT_SWITCH_TRACER is not set
957# CONFIG_SAMPLES is not set 982# CONFIG_SAMPLES is not set
983CONFIG_HAVE_ARCH_KGDB=y
958# CONFIG_IRQSTACKS is not set 984# CONFIG_IRQSTACKS is not set
959# CONFIG_BOOTX_TEXT is not set 985# CONFIG_BOOTX_TEXT is not set
960# CONFIG_PPC_EARLY_DEBUG is not set 986# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1007,6 +1033,10 @@ CONFIG_CRYPTO=y
1007# CONFIG_CRYPTO_MD4 is not set 1033# CONFIG_CRYPTO_MD4 is not set
1008# CONFIG_CRYPTO_MD5 is not set 1034# CONFIG_CRYPTO_MD5 is not set
1009# CONFIG_CRYPTO_MICHAEL_MIC is not set 1035# CONFIG_CRYPTO_MICHAEL_MIC is not set
1036# CONFIG_CRYPTO_RMD128 is not set
1037# CONFIG_CRYPTO_RMD160 is not set
1038# CONFIG_CRYPTO_RMD256 is not set
1039# CONFIG_CRYPTO_RMD320 is not set
1010# CONFIG_CRYPTO_SHA1 is not set 1040# CONFIG_CRYPTO_SHA1 is not set
1011# CONFIG_CRYPTO_SHA256 is not set 1041# CONFIG_CRYPTO_SHA256 is not set
1012# CONFIG_CRYPTO_SHA512 is not set 1042# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/mpc8272_ads_defconfig b/arch/powerpc/configs/mpc8272_ads_defconfig
index 30d7834b7db1..7c435c84c875 100644
--- a/arch/powerpc/configs/mpc8272_ads_defconfig
+++ b/arch/powerpc/configs/mpc8272_ads_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:12 2008 4# Thu Aug 21 00:52:07 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -31,12 +32,14 @@ CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y 44CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -45,11 +48,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
47CONFIG_OF=y 50CONFIG_OF=y
48# CONFIG_PPC_UDBG_16550 is not set 51CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
52CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -81,7 +86,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
81CONFIG_SYSCTL=y 86CONFIG_SYSCTL=y
82CONFIG_EMBEDDED=y 87CONFIG_EMBEDDED=y
83CONFIG_SYSCTL_SYSCALL=y 88CONFIG_SYSCTL_SYSCALL=y
84CONFIG_SYSCTL_SYSCALL_CHECK=y
85CONFIG_KALLSYMS=y 89CONFIG_KALLSYMS=y
86CONFIG_KALLSYMS_ALL=y 90CONFIG_KALLSYMS_ALL=y
87# CONFIG_KALLSYMS_EXTRA_PASS is not set 91# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -89,6 +93,7 @@ CONFIG_HOTPLUG=y
89CONFIG_PRINTK=y 93CONFIG_PRINTK=y
90CONFIG_BUG=y 94CONFIG_BUG=y
91CONFIG_ELF_CORE=y 95CONFIG_ELF_CORE=y
96CONFIG_PCSPKR_PLATFORM=y
92CONFIG_COMPAT_BRK=y 97CONFIG_COMPAT_BRK=y
93CONFIG_BASE_FULL=y 98CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 99CONFIG_FUTEX=y
@@ -106,10 +111,16 @@ CONFIG_SLUB=y
106# CONFIG_PROFILING is not set 111# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set 112# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y 113CONFIG_HAVE_OPROFILE=y
114CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
115CONFIG_HAVE_IOREMAP_PROT=y
109CONFIG_HAVE_KPROBES=y 116CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 117CONFIG_HAVE_KRETPROBES=y
118CONFIG_HAVE_ARCH_TRACEHOOK=y
111# CONFIG_HAVE_DMA_ATTRS is not set 119# CONFIG_HAVE_DMA_ATTRS is not set
120# CONFIG_USE_GENERIC_SMP_HELPERS is not set
121CONFIG_HAVE_CLK=y
112CONFIG_PROC_PAGE_MONITOR=y 122CONFIG_PROC_PAGE_MONITOR=y
123# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
113CONFIG_SLABINFO=y 124CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 126# CONFIG_TINY_SHMEM is not set
@@ -119,6 +130,7 @@ CONFIG_BLOCK=y
119# CONFIG_LBD is not set 130# CONFIG_LBD is not set
120# CONFIG_BLK_DEV_IO_TRACE is not set 131# CONFIG_BLK_DEV_IO_TRACE is not set
121# CONFIG_LSF is not set 132# CONFIG_LSF is not set
133# CONFIG_BLK_DEV_INTEGRITY is not set
122 134
123# 135#
124# IO Schedulers 136# IO Schedulers
@@ -137,14 +149,16 @@ CONFIG_CLASSIC_RCU=y
137# 149#
138# Platform support 150# Platform support
139# 151#
140# CONFIG_PPC_MULTIPLATFORM is not set 152CONFIG_PPC_MULTIPLATFORM=y
141CONFIG_PPC_82xx=y 153CONFIG_CLASSIC32=y
142# CONFIG_PPC_83xx is not set 154CONFIG_PPC_CHRP=y
143# CONFIG_PPC_86xx is not set 155# CONFIG_MPC5121_ADS is not set
144# CONFIG_PPC_MPC512x is not set 156# CONFIG_MPC5121_GENERIC is not set
145# CONFIG_PPC_MPC5121 is not set 157# CONFIG_PPC_MPC52xx is not set
158CONFIG_PPC_PMAC=y
146# CONFIG_PPC_CELL is not set 159# CONFIG_PPC_CELL is not set
147# CONFIG_PPC_CELL_NATIVE is not set 160# CONFIG_PPC_CELL_NATIVE is not set
161CONFIG_PPC_82xx=y
148CONFIG_MPC8272_ADS=y 162CONFIG_MPC8272_ADS=y
149# CONFIG_PQ2FADS is not set 163# CONFIG_PQ2FADS is not set
150# CONFIG_EP8248E is not set 164# CONFIG_EP8248E is not set
@@ -152,19 +166,27 @@ CONFIG_PQ2ADS=y
152CONFIG_8260=y 166CONFIG_8260=y
153CONFIG_8272=y 167CONFIG_8272=y
154CONFIG_PQ2_ADS_PCI_PIC=y 168CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set
172CONFIG_PPC_NATIVE=y
173# CONFIG_UDBG_RTAS_CONSOLE is not set
155# CONFIG_IPIC is not set 174# CONFIG_IPIC is not set
156# CONFIG_MPIC is not set 175CONFIG_MPIC=y
157# CONFIG_MPIC_WEIRD is not set 176# CONFIG_MPIC_WEIRD is not set
158# CONFIG_PPC_I8259 is not set 177CONFIG_PPC_I8259=y
159# CONFIG_PPC_RTAS is not set 178CONFIG_PPC_RTAS=y
179# CONFIG_RTAS_ERROR_LOGGING is not set
180CONFIG_RTAS_PROC=y
160# CONFIG_MMIO_NVRAM is not set 181# CONFIG_MMIO_NVRAM is not set
161# CONFIG_PPC_MPC106 is not set 182CONFIG_PPC_MPC106=y
162# CONFIG_PPC_970_NAP is not set 183# CONFIG_PPC_970_NAP is not set
163# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
164# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
165# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_PPC601_SYNC_FIX is not set
188# CONFIG_TAU is not set
166CONFIG_CPM2=y 189CONFIG_CPM2=y
167CONFIG_PPC_CPM_NEW_BINDING=y
168# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
169CONFIG_CPM=y 191CONFIG_CPM=y
170 192
@@ -181,7 +203,7 @@ CONFIG_HZ_250=y
181# CONFIG_HZ_300 is not set 203# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 204# CONFIG_HZ_1000 is not set
183CONFIG_HZ=250 205CONFIG_HZ=250
184# CONFIG_SCHED_HRTICK is not set 206CONFIG_SCHED_HRTICK=y
185CONFIG_PREEMPT_NONE=y 207CONFIG_PREEMPT_NONE=y
186# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
187# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
@@ -199,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
199# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
200CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
203CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
204CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -206,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
206CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
207CONFIG_PROC_DEVICETREE=y 230CONFIG_PROC_DEVICETREE=y
208# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
209# CONFIG_PM is not set 233# CONFIG_PM is not set
210CONFIG_SECCOMP=y 234CONFIG_SECCOMP=y
211CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -213,9 +237,11 @@ CONFIG_ISA_DMA_API=y
213# 237#
214# Bus options 238# Bus options
215# 239#
240# CONFIG_ISA is not set
216CONFIG_ZONE_DMA=y 241CONFIG_ZONE_DMA=y
217CONFIG_PPC_INDIRECT_PCI=y 242CONFIG_PPC_INDIRECT_PCI=y
218CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
244CONFIG_PPC_PCI_CHOICE=y
219CONFIG_PCI=y 245CONFIG_PCI=y
220CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
221CONFIG_PCI_SYSCALL=y 247CONFIG_PCI_SYSCALL=y
@@ -242,10 +268,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
242CONFIG_KERNEL_START=0xc0000000 268CONFIG_KERNEL_START=0xc0000000
243CONFIG_PHYSICAL_START=0x00000000 269CONFIG_PHYSICAL_START=0x00000000
244CONFIG_TASK_SIZE=0xc0000000 270CONFIG_TASK_SIZE=0xc0000000
245
246#
247# Networking
248#
249CONFIG_NET=y 271CONFIG_NET=y
250 272
251# 273#
@@ -446,9 +468,11 @@ CONFIG_MTD_PHYSMAP_OF=y
446# 468#
447# CONFIG_MTD_UBI is not set 469# CONFIG_MTD_UBI is not set
448CONFIG_OF_DEVICE=y 470CONFIG_OF_DEVICE=y
471CONFIG_OF_GPIO=y
449# CONFIG_PARPORT is not set 472# CONFIG_PARPORT is not set
450CONFIG_BLK_DEV=y 473CONFIG_BLK_DEV=y
451# CONFIG_BLK_DEV_FD is not set 474# CONFIG_BLK_DEV_FD is not set
475# CONFIG_MAC_FLOPPY is not set
452# CONFIG_BLK_CPQ_DA is not set 476# CONFIG_BLK_CPQ_DA is not set
453# CONFIG_BLK_CPQ_CISS_DA is not set 477# CONFIG_BLK_CPQ_CISS_DA is not set
454# CONFIG_BLK_DEV_DAC960 is not set 478# CONFIG_BLK_DEV_DAC960 is not set
@@ -460,6 +484,7 @@ CONFIG_BLK_DEV_LOOP=y
460# CONFIG_BLK_DEV_RAM is not set 484# CONFIG_BLK_DEV_RAM is not set
461# CONFIG_CDROM_PKTCDVD is not set 485# CONFIG_CDROM_PKTCDVD is not set
462# CONFIG_ATA_OVER_ETH is not set 486# CONFIG_ATA_OVER_ETH is not set
487# CONFIG_BLK_DEV_HD is not set
463# CONFIG_MISC_DEVICES is not set 488# CONFIG_MISC_DEVICES is not set
464CONFIG_HAVE_IDE=y 489CONFIG_HAVE_IDE=y
465# CONFIG_IDE is not set 490# CONFIG_IDE is not set
@@ -480,13 +505,12 @@ CONFIG_HAVE_IDE=y
480# 505#
481 506
482# 507#
483# An alternative FireWire stack is available with EXPERIMENTAL=y 508# A new alternative FireWire stack is available with EXPERIMENTAL=y
484# 509#
485# CONFIG_IEEE1394 is not set 510# CONFIG_IEEE1394 is not set
486# CONFIG_I2O is not set 511# CONFIG_I2O is not set
487# CONFIG_MACINTOSH_DRIVERS is not set 512# CONFIG_MACINTOSH_DRIVERS is not set
488CONFIG_NETDEVICES=y 513CONFIG_NETDEVICES=y
489# CONFIG_NETDEVICES_MULTIQUEUE is not set
490# CONFIG_DUMMY is not set 514# CONFIG_DUMMY is not set
491# CONFIG_BONDING is not set 515# CONFIG_BONDING is not set
492# CONFIG_EQUALIZER is not set 516# CONFIG_EQUALIZER is not set
@@ -510,8 +534,11 @@ CONFIG_DAVICOM_PHY=y
510# CONFIG_REALTEK_PHY is not set 534# CONFIG_REALTEK_PHY is not set
511# CONFIG_FIXED_PHY is not set 535# CONFIG_FIXED_PHY is not set
512CONFIG_MDIO_BITBANG=y 536CONFIG_MDIO_BITBANG=y
537# CONFIG_MDIO_OF_GPIO is not set
513CONFIG_NET_ETHERNET=y 538CONFIG_NET_ETHERNET=y
514CONFIG_MII=y 539CONFIG_MII=y
540# CONFIG_MACE is not set
541# CONFIG_BMAC is not set
515# CONFIG_HAPPYMEAL is not set 542# CONFIG_HAPPYMEAL is not set
516# CONFIG_SUNGEM is not set 543# CONFIG_SUNGEM is not set
517# CONFIG_CASSINI is not set 544# CONFIG_CASSINI is not set
@@ -533,7 +560,6 @@ CONFIG_NETDEV_1000=y
533# CONFIG_DL2K is not set 560# CONFIG_DL2K is not set
534# CONFIG_E1000 is not set 561# CONFIG_E1000 is not set
535# CONFIG_E1000E is not set 562# CONFIG_E1000E is not set
536# CONFIG_E1000E_ENABLED is not set
537# CONFIG_IGB is not set 563# CONFIG_IGB is not set
538# CONFIG_NS83820 is not set 564# CONFIG_NS83820 is not set
539# CONFIG_HAMACHI is not set 565# CONFIG_HAMACHI is not set
@@ -545,6 +571,7 @@ CONFIG_NETDEV_1000=y
545# CONFIG_TIGON3 is not set 571# CONFIG_TIGON3 is not set
546# CONFIG_BNX2 is not set 572# CONFIG_BNX2 is not set
547# CONFIG_GIANFAR is not set 573# CONFIG_GIANFAR is not set
574# CONFIG_MV643XX_ETH is not set
548# CONFIG_QLA3XXX is not set 575# CONFIG_QLA3XXX is not set
549CONFIG_NETDEV_10000=y 576CONFIG_NETDEV_10000=y
550# CONFIG_CHELSIO_T1 is not set 577# CONFIG_CHELSIO_T1 is not set
@@ -610,6 +637,7 @@ CONFIG_KEYBOARD_ATKBD=y
610# CONFIG_KEYBOARD_XTKBD is not set 637# CONFIG_KEYBOARD_XTKBD is not set
611# CONFIG_KEYBOARD_NEWTON is not set 638# CONFIG_KEYBOARD_NEWTON is not set
612# CONFIG_KEYBOARD_STOWAWAY is not set 639# CONFIG_KEYBOARD_STOWAWAY is not set
640# CONFIG_KEYBOARD_GPIO is not set
613CONFIG_INPUT_MOUSE=y 641CONFIG_INPUT_MOUSE=y
614CONFIG_MOUSE_PS2=y 642CONFIG_MOUSE_PS2=y
615CONFIG_MOUSE_PS2_ALPS=y 643CONFIG_MOUSE_PS2_ALPS=y
@@ -620,6 +648,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
620# CONFIG_MOUSE_PS2_TOUCHKIT is not set 648# CONFIG_MOUSE_PS2_TOUCHKIT is not set
621# CONFIG_MOUSE_SERIAL is not set 649# CONFIG_MOUSE_SERIAL is not set
622# CONFIG_MOUSE_VSXXXAA is not set 650# CONFIG_MOUSE_VSXXXAA is not set
651# CONFIG_MOUSE_GPIO is not set
623# CONFIG_INPUT_JOYSTICK is not set 652# CONFIG_INPUT_JOYSTICK is not set
624# CONFIG_INPUT_TABLET is not set 653# CONFIG_INPUT_TABLET is not set
625# CONFIG_INPUT_TOUCHSCREEN is not set 654# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -634,6 +663,7 @@ CONFIG_SERIO_SERPORT=y
634# CONFIG_SERIO_PCIPS2 is not set 663# CONFIG_SERIO_PCIPS2 is not set
635CONFIG_SERIO_LIBPS2=y 664CONFIG_SERIO_LIBPS2=y
636# CONFIG_SERIO_RAW is not set 665# CONFIG_SERIO_RAW is not set
666# CONFIG_SERIO_XILINX_XPS_PS2 is not set
637# CONFIG_GAMEPORT is not set 667# CONFIG_GAMEPORT is not set
638 668
639# 669#
@@ -654,6 +684,7 @@ CONFIG_DEVKMEM=y
654# CONFIG_SERIAL_UARTLITE is not set 684# CONFIG_SERIAL_UARTLITE is not set
655CONFIG_SERIAL_CORE=y 685CONFIG_SERIAL_CORE=y
656CONFIG_SERIAL_CORE_CONSOLE=y 686CONFIG_SERIAL_CORE_CONSOLE=y
687# CONFIG_SERIAL_PMACZILOG is not set
657CONFIG_SERIAL_CPM=y 688CONFIG_SERIAL_CPM=y
658CONFIG_SERIAL_CPM_CONSOLE=y 689CONFIG_SERIAL_CPM_CONSOLE=y
659CONFIG_SERIAL_CPM_SCC1=y 690CONFIG_SERIAL_CPM_SCC1=y
@@ -666,6 +697,8 @@ CONFIG_SERIAL_CPM_SCC4=y
666CONFIG_UNIX98_PTYS=y 697CONFIG_UNIX98_PTYS=y
667CONFIG_LEGACY_PTYS=y 698CONFIG_LEGACY_PTYS=y
668CONFIG_LEGACY_PTY_COUNT=256 699CONFIG_LEGACY_PTY_COUNT=256
700# CONFIG_BRIQ_PANEL is not set
701# CONFIG_HVC_RTAS is not set
669# CONFIG_IPMI_HANDLER is not set 702# CONFIG_IPMI_HANDLER is not set
670CONFIG_HW_RANDOM=y 703CONFIG_HW_RANDOM=y
671# CONFIG_NVRAM is not set 704# CONFIG_NVRAM is not set
@@ -676,10 +709,28 @@ CONFIG_HW_RANDOM=y
676CONFIG_DEVPORT=y 709CONFIG_DEVPORT=y
677# CONFIG_I2C is not set 710# CONFIG_I2C is not set
678# CONFIG_SPI is not set 711# CONFIG_SPI is not set
712CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
713CONFIG_ARCH_REQUIRE_GPIOLIB=y
714CONFIG_GPIOLIB=y
715# CONFIG_DEBUG_GPIO is not set
716
717#
718# I2C GPIO expanders:
719#
720
721#
722# PCI GPIO expanders:
723#
724# CONFIG_GPIO_BT8XX is not set
725
726#
727# SPI GPIO expanders:
728#
679# CONFIG_W1 is not set 729# CONFIG_W1 is not set
680# CONFIG_POWER_SUPPLY is not set 730# CONFIG_POWER_SUPPLY is not set
681# CONFIG_HWMON is not set 731# CONFIG_HWMON is not set
682# CONFIG_THERMAL is not set 732# CONFIG_THERMAL is not set
733# CONFIG_THERMAL_HWMON is not set
683# CONFIG_WATCHDOG is not set 734# CONFIG_WATCHDOG is not set
684 735
685# 736#
@@ -691,8 +742,10 @@ CONFIG_SSB_POSSIBLE=y
691# 742#
692# Multifunction device drivers 743# Multifunction device drivers
693# 744#
745# CONFIG_MFD_CORE is not set
694# CONFIG_MFD_SM501 is not set 746# CONFIG_MFD_SM501 is not set
695# CONFIG_HTC_PASIC3 is not set 747# CONFIG_HTC_PASIC3 is not set
748# CONFIG_MFD_TMIO is not set
696 749
697# 750#
698# Multimedia devices 751# Multimedia devices
@@ -724,10 +777,6 @@ CONFIG_DAB=y
724# Display device support 777# Display device support
725# 778#
726# CONFIG_DISPLAY_SUPPORT is not set 779# CONFIG_DISPLAY_SUPPORT is not set
727
728#
729# Sound
730#
731# CONFIG_SOUND is not set 780# CONFIG_SOUND is not set
732# CONFIG_HID_SUPPORT is not set 781# CONFIG_HID_SUPPORT is not set
733# CONFIG_USB_SUPPORT is not set 782# CONFIG_USB_SUPPORT is not set
@@ -798,6 +847,7 @@ CONFIG_TMPFS=y
798CONFIG_CRAMFS=y 847CONFIG_CRAMFS=y
799# CONFIG_VXFS_FS is not set 848# CONFIG_VXFS_FS is not set
800# CONFIG_MINIX_FS is not set 849# CONFIG_MINIX_FS is not set
850# CONFIG_OMFS_FS is not set
801# CONFIG_HPFS_FS is not set 851# CONFIG_HPFS_FS is not set
802# CONFIG_QNX4FS_FS is not set 852# CONFIG_QNX4FS_FS is not set
803# CONFIG_ROMFS_FS is not set 853# CONFIG_ROMFS_FS is not set
@@ -807,8 +857,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
807CONFIG_NFS_FS=y 857CONFIG_NFS_FS=y
808CONFIG_NFS_V3=y 858CONFIG_NFS_V3=y
809CONFIG_NFS_V3_ACL=y 859CONFIG_NFS_V3_ACL=y
810# CONFIG_NFSD is not set
811CONFIG_ROOT_NFS=y 860CONFIG_ROOT_NFS=y
861# CONFIG_NFSD is not set
812CONFIG_LOCKD=y 862CONFIG_LOCKD=y
813CONFIG_LOCKD_V4=y 863CONFIG_LOCKD_V4=y
814CONFIG_NFS_ACL_SUPPORT=y 864CONFIG_NFS_ACL_SUPPORT=y
@@ -888,6 +938,7 @@ CONFIG_BITREVERSE=y
888# CONFIG_GENERIC_FIND_FIRST_BIT is not set 938# CONFIG_GENERIC_FIND_FIRST_BIT is not set
889CONFIG_CRC_CCITT=y 939CONFIG_CRC_CCITT=y
890# CONFIG_CRC16 is not set 940# CONFIG_CRC16 is not set
941# CONFIG_CRC_T10DIF is not set
891# CONFIG_CRC_ITU_T is not set 942# CONFIG_CRC_ITU_T is not set
892CONFIG_CRC32=y 943CONFIG_CRC32=y
893# CONFIG_CRC7 is not set 944# CONFIG_CRC7 is not set
@@ -914,6 +965,8 @@ CONFIG_MAGIC_SYSRQ=y
914CONFIG_DEBUG_KERNEL=y 965CONFIG_DEBUG_KERNEL=y
915# CONFIG_DEBUG_SHIRQ is not set 966# CONFIG_DEBUG_SHIRQ is not set
916CONFIG_DETECT_SOFTLOCKUP=y 967CONFIG_DETECT_SOFTLOCKUP=y
968# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
969CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
917CONFIG_SCHED_DEBUG=y 970CONFIG_SCHED_DEBUG=y
918# CONFIG_SCHEDSTATS is not set 971# CONFIG_SCHEDSTATS is not set
919# CONFIG_TIMER_STATS is not set 972# CONFIG_TIMER_STATS is not set
@@ -931,19 +984,31 @@ CONFIG_DEBUG_BUGVERBOSE=y
931CONFIG_DEBUG_INFO=y 984CONFIG_DEBUG_INFO=y
932# CONFIG_DEBUG_VM is not set 985# CONFIG_DEBUG_VM is not set
933# CONFIG_DEBUG_WRITECOUNT is not set 986# CONFIG_DEBUG_WRITECOUNT is not set
987# CONFIG_DEBUG_MEMORY_INIT is not set
934# CONFIG_DEBUG_LIST is not set 988# CONFIG_DEBUG_LIST is not set
935# CONFIG_DEBUG_SG is not set 989# CONFIG_DEBUG_SG is not set
936# CONFIG_BOOT_PRINTK_DELAY is not set 990# CONFIG_BOOT_PRINTK_DELAY is not set
991# CONFIG_RCU_TORTURE_TEST is not set
937# CONFIG_BACKTRACE_SELF_TEST is not set 992# CONFIG_BACKTRACE_SELF_TEST is not set
938# CONFIG_FAULT_INJECTION is not set 993# CONFIG_FAULT_INJECTION is not set
994# CONFIG_LATENCYTOP is not set
995CONFIG_SYSCTL_SYSCALL_CHECK=y
996CONFIG_HAVE_FTRACE=y
997CONFIG_HAVE_DYNAMIC_FTRACE=y
998# CONFIG_FTRACE is not set
999# CONFIG_SCHED_TRACER is not set
1000# CONFIG_CONTEXT_SWITCH_TRACER is not set
939# CONFIG_SAMPLES is not set 1001# CONFIG_SAMPLES is not set
1002CONFIG_HAVE_ARCH_KGDB=y
940# CONFIG_DEBUG_STACKOVERFLOW is not set 1003# CONFIG_DEBUG_STACKOVERFLOW is not set
941# CONFIG_DEBUG_STACK_USAGE is not set 1004# CONFIG_DEBUG_STACK_USAGE is not set
942# CONFIG_DEBUG_PAGEALLOC is not set 1005# CONFIG_DEBUG_PAGEALLOC is not set
943# CONFIG_DEBUGGER is not set 1006# CONFIG_CODE_PATCHING_SELFTEST is not set
944# CONFIG_KGDB_CONSOLE is not set 1007# CONFIG_FTR_FIXUP_SELFTEST is not set
1008# CONFIG_XMON is not set
945# CONFIG_IRQSTACKS is not set 1009# CONFIG_IRQSTACKS is not set
946CONFIG_BDI_SWITCH=y 1010CONFIG_BDI_SWITCH=y
1011# CONFIG_BOOTX_TEXT is not set
947# CONFIG_PPC_EARLY_DEBUG is not set 1012# CONFIG_PPC_EARLY_DEBUG is not set
948 1013
949# 1014#
@@ -951,6 +1016,7 @@ CONFIG_BDI_SWITCH=y
951# 1016#
952# CONFIG_KEYS is not set 1017# CONFIG_KEYS is not set
953# CONFIG_SECURITY is not set 1018# CONFIG_SECURITY is not set
1019# CONFIG_SECURITY_FILE_CAPABILITIES is not set
954CONFIG_CRYPTO=y 1020CONFIG_CRYPTO=y
955 1021
956# 1022#
@@ -991,6 +1057,10 @@ CONFIG_CRYPTO_PCBC=y
991# CONFIG_CRYPTO_MD4 is not set 1057# CONFIG_CRYPTO_MD4 is not set
992CONFIG_CRYPTO_MD5=y 1058CONFIG_CRYPTO_MD5=y
993# CONFIG_CRYPTO_MICHAEL_MIC is not set 1059# CONFIG_CRYPTO_MICHAEL_MIC is not set
1060# CONFIG_CRYPTO_RMD128 is not set
1061# CONFIG_CRYPTO_RMD160 is not set
1062# CONFIG_CRYPTO_RMD256 is not set
1063# CONFIG_CRYPTO_RMD320 is not set
994# CONFIG_CRYPTO_SHA1 is not set 1064# CONFIG_CRYPTO_SHA1 is not set
995# CONFIG_CRYPTO_SHA256 is not set 1065# CONFIG_CRYPTO_SHA256 is not set
996# CONFIG_CRYPTO_SHA512 is not set 1066# CONFIG_CRYPTO_SHA512 is not set
@@ -1021,6 +1091,6 @@ CONFIG_CRYPTO_DES=y
1021# CONFIG_CRYPTO_DEFLATE is not set 1091# CONFIG_CRYPTO_DEFLATE is not set
1022# CONFIG_CRYPTO_LZO is not set 1092# CONFIG_CRYPTO_LZO is not set
1023# CONFIG_CRYPTO_HW is not set 1093# CONFIG_CRYPTO_HW is not set
1024# CONFIG_PPC_CLOCK is not set 1094CONFIG_PPC_CLOCK=y
1025CONFIG_PPC_LIB_RHEAP=y 1095CONFIG_PPC_LIB_RHEAP=y
1026# CONFIG_VIRTUALIZATION is not set 1096# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc83xx_defconfig b/arch/powerpc/configs/mpc83xx_defconfig
index 4293c8be06e1..916e3df7cc45 100644
--- a/arch/powerpc/configs/mpc83xx_defconfig
+++ b/arch/powerpc/configs/mpc83xx_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:14 2008 4# Thu Aug 21 07:16:25 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -16,6 +16,7 @@ CONFIG_6xx=y
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_FSL_EMB_PERFMON is not set 18# CONFIG_FSL_EMB_PERFMON is not set
19# CONFIG_ALTIVEC is not set
19CONFIG_PPC_STD_MMU=y 20CONFIG_PPC_STD_MMU=y
20CONFIG_PPC_STD_MMU_32=y 21CONFIG_PPC_STD_MMU_32=y
21# CONFIG_PPC_MM_SLICES is not set 22# CONFIG_PPC_MM_SLICES is not set
@@ -32,12 +33,14 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
38CONFIG_GENERIC_HWEIGHT=y 40CONFIG_GENERIC_HWEIGHT=y
39CONFIG_GENERIC_CALIBRATE_DELAY=y 41CONFIG_GENERIC_CALIBRATE_DELAY=y
40CONFIG_GENERIC_FIND_NEXT_BIT=y 42CONFIG_GENERIC_FIND_NEXT_BIT=y
43CONFIG_GENERIC_GPIO=y
41# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 44# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
42CONFIG_PPC=y 45CONFIG_PPC=y
43CONFIG_EARLY_PRINTK=y 46CONFIG_EARLY_PRINTK=y
@@ -51,6 +54,10 @@ CONFIG_PPC_UDBG_16550=y
51CONFIG_AUDIT_ARCH=y 54CONFIG_AUDIT_ARCH=y
52CONFIG_GENERIC_BUG=y 55CONFIG_GENERIC_BUG=y
53CONFIG_DEFAULT_UIMAGE=y 56CONFIG_DEFAULT_UIMAGE=y
57CONFIG_REDBOOT=y
58CONFIG_HIBERNATE_32=y
59CONFIG_ARCH_HIBERNATION_POSSIBLE=y
60CONFIG_ARCH_SUSPEND_POSSIBLE=y
54# CONFIG_PPC_DCR_NATIVE is not set 61# CONFIG_PPC_DCR_NATIVE is not set
55# CONFIG_PPC_DCR_MMIO is not set 62# CONFIG_PPC_DCR_MMIO is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 63CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -88,13 +95,13 @@ CONFIG_INITRAMFS_SOURCE=""
88CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
89CONFIG_EMBEDDED=y 96CONFIG_EMBEDDED=y
90CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
91CONFIG_SYSCTL_SYSCALL_CHECK=y
92CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
93# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
94CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 101CONFIG_PRINTK=y
96CONFIG_BUG=y 102CONFIG_BUG=y
97CONFIG_ELF_CORE=y 103CONFIG_ELF_CORE=y
104CONFIG_PCSPKR_PLATFORM=y
98CONFIG_COMPAT_BRK=y 105CONFIG_COMPAT_BRK=y
99CONFIG_BASE_FULL=y 106CONFIG_BASE_FULL=y
100CONFIG_FUTEX=y 107CONFIG_FUTEX=y
@@ -112,10 +119,16 @@ CONFIG_SLAB=y
112# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
113CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
114# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
115CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
116CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
117# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128# CONFIG_USE_GENERIC_SMP_HELPERS is not set
129# CONFIG_HAVE_CLK is not set
118CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
119CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
120CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
121# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -126,12 +139,13 @@ CONFIG_MODULE_UNLOAD=y
126# CONFIG_MODULE_FORCE_UNLOAD is not set 139# CONFIG_MODULE_FORCE_UNLOAD is not set
127# CONFIG_MODVERSIONS is not set 140# CONFIG_MODVERSIONS is not set
128# CONFIG_MODULE_SRCVERSION_ALL is not set 141# CONFIG_MODULE_SRCVERSION_ALL is not set
129# CONFIG_KMOD is not set 142CONFIG_KMOD=y
130CONFIG_BLOCK=y 143CONFIG_BLOCK=y
131# CONFIG_LBD is not set 144# CONFIG_LBD is not set
132# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 146# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
135 149
136# 150#
137# IO Schedulers 151# IO Schedulers
@@ -150,40 +164,52 @@ CONFIG_CLASSIC_RCU=y
150# 164#
151# Platform support 165# Platform support
152# 166#
153# CONFIG_PPC_MULTIPLATFORM is not set 167CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set 168CONFIG_CLASSIC32=y
155CONFIG_PPC_83xx=y 169CONFIG_PPC_CHRP=y
156# CONFIG_PPC_86xx is not set 170# CONFIG_MPC5121_ADS is not set
157# CONFIG_PPC_MPC512x is not set 171# CONFIG_MPC5121_GENERIC is not set
158# CONFIG_PPC_MPC5121 is not set 172# CONFIG_PPC_MPC52xx is not set
173CONFIG_PPC_PMAC=y
159# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
160# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set
161# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
162CONFIG_MPC83xx=y 178CONFIG_PPC_83xx=y
163CONFIG_MPC831x_RDB=y 179CONFIG_MPC831x_RDB=y
164CONFIG_MPC832x_MDS=y 180CONFIG_MPC832x_MDS=y
165CONFIG_MPC832x_RDB=y 181CONFIG_MPC832x_RDB=y
166CONFIG_MPC834x_MDS=y 182CONFIG_MPC834x_MDS=y
167CONFIG_MPC834x_ITX=y 183CONFIG_MPC834x_ITX=y
168CONFIG_MPC836x_MDS=y 184CONFIG_MPC836x_MDS=y
185CONFIG_MPC836x_RDK=y
169CONFIG_MPC837x_MDS=y 186CONFIG_MPC837x_MDS=y
170CONFIG_MPC837x_RDB=y 187CONFIG_MPC837x_RDB=y
171CONFIG_SBC834x=y 188CONFIG_SBC834x=y
189CONFIG_ASP834x=y
172CONFIG_PPC_MPC831x=y 190CONFIG_PPC_MPC831x=y
173CONFIG_PPC_MPC832x=y 191CONFIG_PPC_MPC832x=y
174CONFIG_PPC_MPC834x=y 192CONFIG_PPC_MPC834x=y
175CONFIG_PPC_MPC837x=y 193CONFIG_PPC_MPC837x=y
194# CONFIG_PPC_86xx is not set
195# CONFIG_EMBEDDED6xx is not set
196CONFIG_PPC_NATIVE=y
197# CONFIG_UDBG_RTAS_CONSOLE is not set
176CONFIG_IPIC=y 198CONFIG_IPIC=y
177# CONFIG_MPIC is not set 199CONFIG_MPIC=y
178# CONFIG_MPIC_WEIRD is not set 200# CONFIG_MPIC_WEIRD is not set
179# CONFIG_PPC_I8259 is not set 201CONFIG_PPC_I8259=y
180# CONFIG_PPC_RTAS is not set 202CONFIG_PPC_RTAS=y
203# CONFIG_RTAS_ERROR_LOGGING is not set
204CONFIG_RTAS_PROC=y
181# CONFIG_MMIO_NVRAM is not set 205# CONFIG_MMIO_NVRAM is not set
182# CONFIG_PPC_MPC106 is not set 206CONFIG_PPC_MPC106=y
183# CONFIG_PPC_970_NAP is not set 207# CONFIG_PPC_970_NAP is not set
184# CONFIG_PPC_INDIRECT_IO is not set 208# CONFIG_PPC_INDIRECT_IO is not set
185# CONFIG_GENERIC_IOMAP is not set 209# CONFIG_GENERIC_IOMAP is not set
186# CONFIG_CPU_FREQ is not set 210# CONFIG_CPU_FREQ is not set
211# CONFIG_PPC601_SYNC_FIX is not set
212# CONFIG_TAU is not set
187CONFIG_QUICC_ENGINE=y 213CONFIG_QUICC_ENGINE=y
188# CONFIG_FSL_ULI1575 is not set 214# CONFIG_FSL_ULI1575 is not set
189 215
@@ -211,6 +237,7 @@ CONFIG_MATH_EMULATION=y
211CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 237CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
212CONFIG_ARCH_HAS_WALK_MEMORY=y 238CONFIG_ARCH_HAS_WALK_MEMORY=y
213CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 239CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
240# CONFIG_KEXEC is not set
214CONFIG_ARCH_FLATMEM_ENABLE=y 241CONFIG_ARCH_FLATMEM_ENABLE=y
215CONFIG_ARCH_POPULATES_NODE_MAP=y 242CONFIG_ARCH_POPULATES_NODE_MAP=y
216CONFIG_SELECT_MEMORY_MODEL=y 243CONFIG_SELECT_MEMORY_MODEL=y
@@ -223,6 +250,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
223# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
224CONFIG_PAGEFLAGS_EXTENDED=y 251CONFIG_PAGEFLAGS_EXTENDED=y
225CONFIG_SPLIT_PTLOCK_CPUS=4 252CONFIG_SPLIT_PTLOCK_CPUS=4
253CONFIG_MIGRATION=y
226# CONFIG_RESOURCES_64BIT is not set 254# CONFIG_RESOURCES_64BIT is not set
227CONFIG_ZONE_DMA_FLAG=1 255CONFIG_ZONE_DMA_FLAG=1
228CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
@@ -230,6 +258,7 @@ CONFIG_VIRT_TO_BUS=y
230CONFIG_FORCE_MAX_ZONEORDER=11 258CONFIG_FORCE_MAX_ZONEORDER=11
231CONFIG_PROC_DEVICETREE=y 259CONFIG_PROC_DEVICETREE=y
232# CONFIG_CMDLINE_BOOL is not set 260# CONFIG_CMDLINE_BOOL is not set
261CONFIG_EXTRA_TARGETS=""
233# CONFIG_PM is not set 262# CONFIG_PM is not set
234CONFIG_SECCOMP=y 263CONFIG_SECCOMP=y
235CONFIG_ISA_DMA_API=y 264CONFIG_ISA_DMA_API=y
@@ -237,15 +266,24 @@ CONFIG_ISA_DMA_API=y
237# 266#
238# Bus options 267# Bus options
239# 268#
269# CONFIG_ISA is not set
240CONFIG_ZONE_DMA=y 270CONFIG_ZONE_DMA=y
241CONFIG_GENERIC_ISA_DMA=y 271CONFIG_GENERIC_ISA_DMA=y
242CONFIG_PPC_INDIRECT_PCI=y 272CONFIG_PPC_INDIRECT_PCI=y
243CONFIG_FSL_SOC=y 273CONFIG_FSL_SOC=y
244# CONFIG_PCI is not set 274CONFIG_FSL_PCI=y
245# CONFIG_PCI_DOMAINS is not set 275CONFIG_FSL_LBC=y
246# CONFIG_PCI_SYSCALL is not set 276CONFIG_FSL_GTM=y
247# CONFIG_ARCH_SUPPORTS_MSI is not set 277CONFIG_PPC_PCI_CHOICE=y
278CONFIG_PCI=y
279CONFIG_PCI_DOMAINS=y
280CONFIG_PCI_SYSCALL=y
281# CONFIG_PCIEPORTBUS is not set
282CONFIG_ARCH_SUPPORTS_MSI=y
283# CONFIG_PCI_MSI is not set
284CONFIG_PCI_LEGACY=y
248# CONFIG_PCCARD is not set 285# CONFIG_PCCARD is not set
286# CONFIG_HOTPLUG_PCI is not set
249# CONFIG_HAS_RAPIDIO is not set 287# CONFIG_HAS_RAPIDIO is not set
250 288
251# 289#
@@ -261,10 +299,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
261CONFIG_KERNEL_START=0xc0000000 299CONFIG_KERNEL_START=0xc0000000
262CONFIG_PHYSICAL_START=0x00000000 300CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0xc0000000 301CONFIG_TASK_SIZE=0xc0000000
264
265#
266# Networking
267#
268CONFIG_NET=y 302CONFIG_NET=y
269 303
270# 304#
@@ -412,11 +446,13 @@ CONFIG_MTD_CFI_UTIL=y
412# CONFIG_MTD_COMPLEX_MAPPINGS is not set 446# CONFIG_MTD_COMPLEX_MAPPINGS is not set
413# CONFIG_MTD_PHYSMAP is not set 447# CONFIG_MTD_PHYSMAP is not set
414CONFIG_MTD_PHYSMAP_OF=y 448CONFIG_MTD_PHYSMAP_OF=y
449# CONFIG_MTD_INTEL_VR_NOR is not set
415# CONFIG_MTD_PLATRAM is not set 450# CONFIG_MTD_PLATRAM is not set
416 451
417# 452#
418# Self-contained MTD device drivers 453# Self-contained MTD device drivers
419# 454#
455# CONFIG_MTD_PMC551 is not set
420# CONFIG_MTD_SLRAM is not set 456# CONFIG_MTD_SLRAM is not set
421# CONFIG_MTD_PHRAM is not set 457# CONFIG_MTD_PHRAM is not set
422# CONFIG_MTD_MTDRAM is not set 458# CONFIG_MTD_MTDRAM is not set
@@ -434,10 +470,12 @@ CONFIG_MTD_NAND_VERIFY_WRITE=y
434# CONFIG_MTD_NAND_MUSEUM_IDS is not set 470# CONFIG_MTD_NAND_MUSEUM_IDS is not set
435CONFIG_MTD_NAND_IDS=y 471CONFIG_MTD_NAND_IDS=y
436# CONFIG_MTD_NAND_DISKONCHIP is not set 472# CONFIG_MTD_NAND_DISKONCHIP is not set
473# CONFIG_MTD_NAND_CAFE is not set
437# CONFIG_MTD_NAND_NANDSIM is not set 474# CONFIG_MTD_NAND_NANDSIM is not set
438# CONFIG_MTD_NAND_PLATFORM is not set 475# CONFIG_MTD_NAND_PLATFORM is not set
439# CONFIG_MTD_ALAUDA is not set 476# CONFIG_MTD_ALAUDA is not set
440CONFIG_MTD_NAND_FSL_ELBC=y 477CONFIG_MTD_NAND_FSL_ELBC=y
478# CONFIG_MTD_NAND_FSL_UPM is not set
441# CONFIG_MTD_ONENAND is not set 479# CONFIG_MTD_ONENAND is not set
442 480
443# 481#
@@ -445,14 +483,21 @@ CONFIG_MTD_NAND_FSL_ELBC=y
445# 483#
446# CONFIG_MTD_UBI is not set 484# CONFIG_MTD_UBI is not set
447CONFIG_OF_DEVICE=y 485CONFIG_OF_DEVICE=y
486CONFIG_OF_GPIO=y
448CONFIG_OF_I2C=y 487CONFIG_OF_I2C=y
449# CONFIG_PARPORT is not set 488# CONFIG_PARPORT is not set
450CONFIG_BLK_DEV=y 489CONFIG_BLK_DEV=y
451# CONFIG_BLK_DEV_FD is not set 490# CONFIG_BLK_DEV_FD is not set
491# CONFIG_MAC_FLOPPY is not set
492# CONFIG_BLK_CPQ_DA is not set
493# CONFIG_BLK_CPQ_CISS_DA is not set
494# CONFIG_BLK_DEV_DAC960 is not set
495# CONFIG_BLK_DEV_UMEM is not set
452# CONFIG_BLK_DEV_COW_COMMON is not set 496# CONFIG_BLK_DEV_COW_COMMON is not set
453CONFIG_BLK_DEV_LOOP=y 497CONFIG_BLK_DEV_LOOP=y
454# CONFIG_BLK_DEV_CRYPTOLOOP is not set 498# CONFIG_BLK_DEV_CRYPTOLOOP is not set
455# CONFIG_BLK_DEV_NBD is not set 499# CONFIG_BLK_DEV_NBD is not set
500# CONFIG_BLK_DEV_SX8 is not set
456# CONFIG_BLK_DEV_UB is not set 501# CONFIG_BLK_DEV_UB is not set
457CONFIG_BLK_DEV_RAM=y 502CONFIG_BLK_DEV_RAM=y
458CONFIG_BLK_DEV_RAM_COUNT=16 503CONFIG_BLK_DEV_RAM_COUNT=16
@@ -460,9 +505,14 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
460# CONFIG_BLK_DEV_XIP is not set 505# CONFIG_BLK_DEV_XIP is not set
461# CONFIG_CDROM_PKTCDVD is not set 506# CONFIG_CDROM_PKTCDVD is not set
462# CONFIG_ATA_OVER_ETH is not set 507# CONFIG_ATA_OVER_ETH is not set
508# CONFIG_BLK_DEV_HD is not set
463CONFIG_MISC_DEVICES=y 509CONFIG_MISC_DEVICES=y
510# CONFIG_PHANTOM is not set
464# CONFIG_EEPROM_93CX6 is not set 511# CONFIG_EEPROM_93CX6 is not set
512# CONFIG_SGI_IOC4 is not set
513# CONFIG_TIFM_CORE is not set
465# CONFIG_ENCLOSURE_SERVICES is not set 514# CONFIG_ENCLOSURE_SERVICES is not set
515# CONFIG_HP_ILO is not set
466CONFIG_HAVE_IDE=y 516CONFIG_HAVE_IDE=y
467# CONFIG_IDE is not set 517# CONFIG_IDE is not set
468 518
@@ -505,24 +555,128 @@ CONFIG_SCSI_WAIT_SCAN=m
505# CONFIG_SCSI_SRP_ATTRS is not set 555# CONFIG_SCSI_SRP_ATTRS is not set
506CONFIG_SCSI_LOWLEVEL=y 556CONFIG_SCSI_LOWLEVEL=y
507# CONFIG_ISCSI_TCP is not set 557# CONFIG_ISCSI_TCP is not set
558# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
559# CONFIG_SCSI_3W_9XXX is not set
560# CONFIG_SCSI_ACARD is not set
561# CONFIG_SCSI_AACRAID is not set
562# CONFIG_SCSI_AIC7XXX is not set
563# CONFIG_SCSI_AIC7XXX_OLD is not set
564# CONFIG_SCSI_AIC79XX is not set
565# CONFIG_SCSI_AIC94XX is not set
566# CONFIG_SCSI_DPT_I2O is not set
567# CONFIG_SCSI_ADVANSYS is not set
568# CONFIG_SCSI_ARCMSR is not set
569# CONFIG_MEGARAID_NEWGEN is not set
570# CONFIG_MEGARAID_LEGACY is not set
571# CONFIG_MEGARAID_SAS is not set
572# CONFIG_SCSI_HPTIOP is not set
573# CONFIG_SCSI_BUSLOGIC is not set
574# CONFIG_SCSI_DMX3191D is not set
575# CONFIG_SCSI_EATA is not set
576# CONFIG_SCSI_FUTURE_DOMAIN is not set
577# CONFIG_SCSI_GDTH is not set
578# CONFIG_SCSI_IPS is not set
579# CONFIG_SCSI_INITIO is not set
580# CONFIG_SCSI_INIA100 is not set
581# CONFIG_SCSI_MVSAS is not set
582# CONFIG_SCSI_STEX is not set
583# CONFIG_SCSI_SYM53C8XX_2 is not set
584# CONFIG_SCSI_IPR is not set
585# CONFIG_SCSI_QLOGIC_1280 is not set
586# CONFIG_SCSI_QLA_FC is not set
587# CONFIG_SCSI_QLA_ISCSI is not set
588# CONFIG_SCSI_LPFC is not set
589# CONFIG_SCSI_DC395x is not set
590# CONFIG_SCSI_DC390T is not set
591# CONFIG_SCSI_NSP32 is not set
508# CONFIG_SCSI_DEBUG is not set 592# CONFIG_SCSI_DEBUG is not set
593# CONFIG_SCSI_MESH is not set
594# CONFIG_SCSI_MAC53C94 is not set
595# CONFIG_SCSI_SRP is not set
596# CONFIG_SCSI_DH is not set
509CONFIG_ATA=y 597CONFIG_ATA=y
510# CONFIG_ATA_NONSTANDARD is not set 598# CONFIG_ATA_NONSTANDARD is not set
511CONFIG_SATA_PMP=y 599CONFIG_SATA_PMP=y
600# CONFIG_SATA_AHCI is not set
601# CONFIG_SATA_SIL24 is not set
512CONFIG_SATA_FSL=y 602CONFIG_SATA_FSL=y
513CONFIG_ATA_SFF=y 603CONFIG_ATA_SFF=y
604# CONFIG_SATA_SVW is not set
605# CONFIG_ATA_PIIX is not set
514# CONFIG_SATA_MV is not set 606# CONFIG_SATA_MV is not set
607# CONFIG_SATA_NV is not set
608# CONFIG_PDC_ADMA is not set
609# CONFIG_SATA_QSTOR is not set
610# CONFIG_SATA_PROMISE is not set
611# CONFIG_SATA_SX4 is not set
612# CONFIG_SATA_SIL is not set
613# CONFIG_SATA_SIS is not set
614# CONFIG_SATA_ULI is not set
615# CONFIG_SATA_VIA is not set
616# CONFIG_SATA_VITESSE is not set
617# CONFIG_SATA_INIC162X is not set
618# CONFIG_PATA_ALI is not set
619# CONFIG_PATA_AMD is not set
620# CONFIG_PATA_ARTOP is not set
621# CONFIG_PATA_ATIIXP is not set
622# CONFIG_PATA_CMD640_PCI is not set
623# CONFIG_PATA_CMD64X is not set
624# CONFIG_PATA_CS5520 is not set
625# CONFIG_PATA_CS5530 is not set
626# CONFIG_PATA_CYPRESS is not set
627# CONFIG_PATA_EFAR is not set
628# CONFIG_ATA_GENERIC is not set
629# CONFIG_PATA_HPT366 is not set
630# CONFIG_PATA_HPT37X is not set
631# CONFIG_PATA_HPT3X2N is not set
632# CONFIG_PATA_HPT3X3 is not set
633# CONFIG_PATA_IT821X is not set
634# CONFIG_PATA_IT8213 is not set
635# CONFIG_PATA_JMICRON is not set
636# CONFIG_PATA_TRIFLEX is not set
637# CONFIG_PATA_MARVELL is not set
638# CONFIG_PATA_MPIIX is not set
639# CONFIG_PATA_OLDPIIX is not set
640# CONFIG_PATA_NETCELL is not set
641# CONFIG_PATA_NINJA32 is not set
642# CONFIG_PATA_NS87410 is not set
643# CONFIG_PATA_NS87415 is not set
644# CONFIG_PATA_OPTI is not set
645# CONFIG_PATA_OPTIDMA is not set
646# CONFIG_PATA_PDC_OLD is not set
647# CONFIG_PATA_RADISYS is not set
648# CONFIG_PATA_RZ1000 is not set
649# CONFIG_PATA_SC1200 is not set
650# CONFIG_PATA_SERVERWORKS is not set
651# CONFIG_PATA_PDC2027X is not set
652# CONFIG_PATA_SIL680 is not set
653# CONFIG_PATA_SIS is not set
654# CONFIG_PATA_VIA is not set
655# CONFIG_PATA_WINBOND is not set
515# CONFIG_PATA_PLATFORM is not set 656# CONFIG_PATA_PLATFORM is not set
657# CONFIG_PATA_SCH is not set
516# CONFIG_MD is not set 658# CONFIG_MD is not set
659# CONFIG_FUSION is not set
660
661#
662# IEEE 1394 (FireWire) support
663#
664
665#
666# Enable only one of the two stacks, unless you know what you are doing
667#
668# CONFIG_FIREWIRE is not set
669# CONFIG_IEEE1394 is not set
670# CONFIG_I2O is not set
517# CONFIG_MACINTOSH_DRIVERS is not set 671# CONFIG_MACINTOSH_DRIVERS is not set
518CONFIG_NETDEVICES=y 672CONFIG_NETDEVICES=y
519# CONFIG_NETDEVICES_MULTIQUEUE is not set
520# CONFIG_DUMMY is not set 673# CONFIG_DUMMY is not set
521# CONFIG_BONDING is not set 674# CONFIG_BONDING is not set
522# CONFIG_MACVLAN is not set 675# CONFIG_MACVLAN is not set
523# CONFIG_EQUALIZER is not set 676# CONFIG_EQUALIZER is not set
524# CONFIG_TUN is not set 677# CONFIG_TUN is not set
525# CONFIG_VETH is not set 678# CONFIG_VETH is not set
679# CONFIG_ARCNET is not set
526CONFIG_PHYLIB=y 680CONFIG_PHYLIB=y
527 681
528# 682#
@@ -542,21 +696,60 @@ CONFIG_ICPLUS_PHY=y
542# CONFIG_MDIO_BITBANG is not set 696# CONFIG_MDIO_BITBANG is not set
543CONFIG_NET_ETHERNET=y 697CONFIG_NET_ETHERNET=y
544CONFIG_MII=y 698CONFIG_MII=y
699# CONFIG_MACE is not set
700# CONFIG_BMAC is not set
701# CONFIG_HAPPYMEAL is not set
702# CONFIG_SUNGEM is not set
703# CONFIG_CASSINI is not set
704# CONFIG_NET_VENDOR_3COM is not set
705# CONFIG_NET_TULIP is not set
706# CONFIG_HP100 is not set
545# CONFIG_IBM_NEW_EMAC_ZMII is not set 707# CONFIG_IBM_NEW_EMAC_ZMII is not set
546# CONFIG_IBM_NEW_EMAC_RGMII is not set 708# CONFIG_IBM_NEW_EMAC_RGMII is not set
547# CONFIG_IBM_NEW_EMAC_TAH is not set 709# CONFIG_IBM_NEW_EMAC_TAH is not set
548# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 710# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
711# CONFIG_NET_PCI is not set
549# CONFIG_B44 is not set 712# CONFIG_B44 is not set
550CONFIG_NETDEV_1000=y 713CONFIG_NETDEV_1000=y
551# CONFIG_E1000E_ENABLED is not set 714# CONFIG_ACENIC is not set
715# CONFIG_DL2K is not set
716# CONFIG_E1000 is not set
717# CONFIG_E1000E is not set
718# CONFIG_IP1000 is not set
719# CONFIG_IGB is not set
720# CONFIG_NS83820 is not set
721# CONFIG_HAMACHI is not set
722# CONFIG_YELLOWFIN is not set
723# CONFIG_R8169 is not set
724# CONFIG_SIS190 is not set
725# CONFIG_SKGE is not set
726# CONFIG_SKY2 is not set
727# CONFIG_VIA_VELOCITY is not set
728# CONFIG_TIGON3 is not set
729# CONFIG_BNX2 is not set
552CONFIG_GIANFAR=y 730CONFIG_GIANFAR=y
553# CONFIG_GFAR_NAPI is not set
554CONFIG_UCC_GETH=y 731CONFIG_UCC_GETH=y
555# CONFIG_UGETH_NAPI is not set
556# CONFIG_UGETH_MAGIC_PACKET is not set 732# CONFIG_UGETH_MAGIC_PACKET is not set
557# CONFIG_UGETH_FILTERING is not set 733# CONFIG_UGETH_FILTERING is not set
558# CONFIG_UGETH_TX_ON_DEMAND is not set 734# CONFIG_UGETH_TX_ON_DEMAND is not set
735# CONFIG_MV643XX_ETH is not set
736# CONFIG_QLA3XXX is not set
737# CONFIG_ATL1 is not set
738# CONFIG_ATL1E is not set
559CONFIG_NETDEV_10000=y 739CONFIG_NETDEV_10000=y
740# CONFIG_CHELSIO_T1 is not set
741# CONFIG_CHELSIO_T3 is not set
742# CONFIG_IXGBE is not set
743# CONFIG_IXGB is not set
744# CONFIG_S2IO is not set
745# CONFIG_MYRI10GE is not set
746# CONFIG_NETXEN_NIC is not set
747# CONFIG_NIU is not set
748# CONFIG_MLX4_CORE is not set
749# CONFIG_TEHUTI is not set
750# CONFIG_BNX2X is not set
751# CONFIG_SFC is not set
752# CONFIG_TR is not set
560 753
561# 754#
562# Wireless LAN 755# Wireless LAN
@@ -574,8 +767,11 @@ CONFIG_NETDEV_10000=y
574# CONFIG_USB_RTL8150 is not set 767# CONFIG_USB_RTL8150 is not set
575# CONFIG_USB_USBNET is not set 768# CONFIG_USB_USBNET is not set
576# CONFIG_WAN is not set 769# CONFIG_WAN is not set
770# CONFIG_FDDI is not set
771# CONFIG_HIPPI is not set
577# CONFIG_PPP is not set 772# CONFIG_PPP is not set
578# CONFIG_SLIP is not set 773# CONFIG_SLIP is not set
774# CONFIG_NET_FC is not set
579# CONFIG_NETCONSOLE is not set 775# CONFIG_NETCONSOLE is not set
580# CONFIG_NETPOLL is not set 776# CONFIG_NETPOLL is not set
581# CONFIG_NET_POLL_CONTROLLER is not set 777# CONFIG_NET_POLL_CONTROLLER is not set
@@ -619,12 +815,14 @@ CONFIG_INPUT=y
619# CONFIG_VT is not set 815# CONFIG_VT is not set
620CONFIG_DEVKMEM=y 816CONFIG_DEVKMEM=y
621# CONFIG_SERIAL_NONSTANDARD is not set 817# CONFIG_SERIAL_NONSTANDARD is not set
818# CONFIG_NOZOMI is not set
622 819
623# 820#
624# Serial drivers 821# Serial drivers
625# 822#
626CONFIG_SERIAL_8250=y 823CONFIG_SERIAL_8250=y
627CONFIG_SERIAL_8250_CONSOLE=y 824CONFIG_SERIAL_8250_CONSOLE=y
825CONFIG_SERIAL_8250_PCI=y
628CONFIG_SERIAL_8250_NR_UARTS=4 826CONFIG_SERIAL_8250_NR_UARTS=4
629CONFIG_SERIAL_8250_RUNTIME_UARTS=4 827CONFIG_SERIAL_8250_RUNTIME_UARTS=4
630# CONFIG_SERIAL_8250_EXTENDED is not set 828# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -635,43 +833,95 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
635# CONFIG_SERIAL_UARTLITE is not set 833# CONFIG_SERIAL_UARTLITE is not set
636CONFIG_SERIAL_CORE=y 834CONFIG_SERIAL_CORE=y
637CONFIG_SERIAL_CORE_CONSOLE=y 835CONFIG_SERIAL_CORE_CONSOLE=y
836# CONFIG_SERIAL_PMACZILOG is not set
837# CONFIG_SERIAL_JSM is not set
638# CONFIG_SERIAL_OF_PLATFORM is not set 838# CONFIG_SERIAL_OF_PLATFORM is not set
639# CONFIG_SERIAL_QE is not set 839# CONFIG_SERIAL_QE is not set
640CONFIG_UNIX98_PTYS=y 840CONFIG_UNIX98_PTYS=y
641CONFIG_LEGACY_PTYS=y 841CONFIG_LEGACY_PTYS=y
642CONFIG_LEGACY_PTY_COUNT=256 842CONFIG_LEGACY_PTY_COUNT=256
843# CONFIG_BRIQ_PANEL is not set
844# CONFIG_HVC_RTAS is not set
643# CONFIG_IPMI_HANDLER is not set 845# CONFIG_IPMI_HANDLER is not set
644# CONFIG_HW_RANDOM is not set 846CONFIG_HW_RANDOM=y
645# CONFIG_NVRAM is not set 847# CONFIG_NVRAM is not set
646CONFIG_GEN_RTC=y 848CONFIG_GEN_RTC=y
647# CONFIG_GEN_RTC_X is not set 849# CONFIG_GEN_RTC_X is not set
648# CONFIG_R3964 is not set 850# CONFIG_R3964 is not set
851# CONFIG_APPLICOM is not set
649# CONFIG_RAW_DRIVER is not set 852# CONFIG_RAW_DRIVER is not set
650# CONFIG_TCG_TPM is not set 853# CONFIG_TCG_TPM is not set
854CONFIG_DEVPORT=y
651CONFIG_I2C=y 855CONFIG_I2C=y
652CONFIG_I2C_BOARDINFO=y 856CONFIG_I2C_BOARDINFO=y
653CONFIG_I2C_CHARDEV=y 857CONFIG_I2C_CHARDEV=y
858CONFIG_I2C_HELPER_AUTO=y
654 859
655# 860#
656# I2C Hardware Bus support 861# I2C Hardware Bus support
657# 862#
863
864#
865# PC SMBus host controller drivers
866#
867# CONFIG_I2C_ALI1535 is not set
868# CONFIG_I2C_ALI1563 is not set
869# CONFIG_I2C_ALI15X3 is not set
870# CONFIG_I2C_AMD756 is not set
871# CONFIG_I2C_AMD8111 is not set
872# CONFIG_I2C_I801 is not set
873# CONFIG_I2C_ISCH is not set
874# CONFIG_I2C_PIIX4 is not set
875# CONFIG_I2C_NFORCE2 is not set
876# CONFIG_I2C_SIS5595 is not set
877# CONFIG_I2C_SIS630 is not set
878# CONFIG_I2C_SIS96X is not set
879# CONFIG_I2C_VIA is not set
880# CONFIG_I2C_VIAPRO is not set
881
882#
883# Mac SMBus host controller drivers
884#
885# CONFIG_I2C_HYDRA is not set
886CONFIG_I2C_POWERMAC=y
887
888#
889# I2C system bus drivers (mostly embedded / system-on-chip)
890#
891# CONFIG_I2C_GPIO is not set
658CONFIG_I2C_MPC=y 892CONFIG_I2C_MPC=y
659# CONFIG_I2C_OCORES is not set 893# CONFIG_I2C_OCORES is not set
660# CONFIG_I2C_PARPORT_LIGHT is not set
661# CONFIG_I2C_SIMTEC is not set 894# CONFIG_I2C_SIMTEC is not set
895
896#
897# External I2C/SMBus adapter drivers
898#
899# CONFIG_I2C_PARPORT_LIGHT is not set
662# CONFIG_I2C_TAOS_EVM is not set 900# CONFIG_I2C_TAOS_EVM is not set
663# CONFIG_I2C_STUB is not set
664# CONFIG_I2C_TINY_USB is not set 901# CONFIG_I2C_TINY_USB is not set
902
903#
904# Graphics adapter I2C/DDC channel drivers
905#
906# CONFIG_I2C_VOODOO3 is not set
907
908#
909# Other I2C/SMBus bus drivers
910#
665# CONFIG_I2C_PCA_PLATFORM is not set 911# CONFIG_I2C_PCA_PLATFORM is not set
912# CONFIG_I2C_STUB is not set
666 913
667# 914#
668# Miscellaneous I2C Chip support 915# Miscellaneous I2C Chip support
669# 916#
670# CONFIG_DS1682 is not set 917# CONFIG_DS1682 is not set
918# CONFIG_AT24 is not set
671# CONFIG_SENSORS_EEPROM is not set 919# CONFIG_SENSORS_EEPROM is not set
672# CONFIG_SENSORS_PCF8574 is not set 920# CONFIG_SENSORS_PCF8574 is not set
673# CONFIG_PCF8575 is not set 921# CONFIG_PCF8575 is not set
922# CONFIG_SENSORS_PCA9539 is not set
674# CONFIG_SENSORS_PCF8591 is not set 923# CONFIG_SENSORS_PCF8591 is not set
924# CONFIG_TPS65010 is not set
675# CONFIG_SENSORS_MAX6875 is not set 925# CONFIG_SENSORS_MAX6875 is not set
676# CONFIG_SENSORS_TSL2550 is not set 926# CONFIG_SENSORS_TSL2550 is not set
677# CONFIG_I2C_DEBUG_CORE is not set 927# CONFIG_I2C_DEBUG_CORE is not set
@@ -679,10 +929,31 @@ CONFIG_I2C_MPC=y
679# CONFIG_I2C_DEBUG_BUS is not set 929# CONFIG_I2C_DEBUG_BUS is not set
680# CONFIG_I2C_DEBUG_CHIP is not set 930# CONFIG_I2C_DEBUG_CHIP is not set
681# CONFIG_SPI is not set 931# CONFIG_SPI is not set
932CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
933CONFIG_ARCH_REQUIRE_GPIOLIB=y
934CONFIG_GPIOLIB=y
935# CONFIG_GPIO_SYSFS is not set
936
937#
938# I2C GPIO expanders:
939#
940# CONFIG_GPIO_MAX732X is not set
941# CONFIG_GPIO_PCA953X is not set
942# CONFIG_GPIO_PCF857X is not set
943
944#
945# PCI GPIO expanders:
946#
947# CONFIG_GPIO_BT8XX is not set
948
949#
950# SPI GPIO expanders:
951#
682# CONFIG_W1 is not set 952# CONFIG_W1 is not set
683# CONFIG_POWER_SUPPLY is not set 953# CONFIG_POWER_SUPPLY is not set
684CONFIG_HWMON=y 954CONFIG_HWMON=y
685# CONFIG_HWMON_VID is not set 955# CONFIG_HWMON_VID is not set
956# CONFIG_SENSORS_AD7414 is not set
686# CONFIG_SENSORS_AD7418 is not set 957# CONFIG_SENSORS_AD7418 is not set
687# CONFIG_SENSORS_ADM1021 is not set 958# CONFIG_SENSORS_ADM1021 is not set
688# CONFIG_SENSORS_ADM1025 is not set 959# CONFIG_SENSORS_ADM1025 is not set
@@ -692,8 +963,10 @@ CONFIG_HWMON=y
692# CONFIG_SENSORS_ADM9240 is not set 963# CONFIG_SENSORS_ADM9240 is not set
693# CONFIG_SENSORS_ADT7470 is not set 964# CONFIG_SENSORS_ADT7470 is not set
694# CONFIG_SENSORS_ADT7473 is not set 965# CONFIG_SENSORS_ADT7473 is not set
966# CONFIG_SENSORS_AMS is not set
695# CONFIG_SENSORS_ATXP1 is not set 967# CONFIG_SENSORS_ATXP1 is not set
696# CONFIG_SENSORS_DS1621 is not set 968# CONFIG_SENSORS_DS1621 is not set
969# CONFIG_SENSORS_I5K_AMB is not set
697# CONFIG_SENSORS_F71805F is not set 970# CONFIG_SENSORS_F71805F is not set
698# CONFIG_SENSORS_F71882FG is not set 971# CONFIG_SENSORS_F71882FG is not set
699# CONFIG_SENSORS_F75375S is not set 972# CONFIG_SENSORS_F75375S is not set
@@ -715,13 +988,16 @@ CONFIG_HWMON=y
715# CONFIG_SENSORS_MAX6650 is not set 988# CONFIG_SENSORS_MAX6650 is not set
716# CONFIG_SENSORS_PC87360 is not set 989# CONFIG_SENSORS_PC87360 is not set
717# CONFIG_SENSORS_PC87427 is not set 990# CONFIG_SENSORS_PC87427 is not set
991# CONFIG_SENSORS_SIS5595 is not set
718# CONFIG_SENSORS_DME1737 is not set 992# CONFIG_SENSORS_DME1737 is not set
719# CONFIG_SENSORS_SMSC47M1 is not set 993# CONFIG_SENSORS_SMSC47M1 is not set
720# CONFIG_SENSORS_SMSC47M192 is not set 994# CONFIG_SENSORS_SMSC47M192 is not set
721# CONFIG_SENSORS_SMSC47B397 is not set 995# CONFIG_SENSORS_SMSC47B397 is not set
722# CONFIG_SENSORS_ADS7828 is not set 996# CONFIG_SENSORS_ADS7828 is not set
723# CONFIG_SENSORS_THMC50 is not set 997# CONFIG_SENSORS_THMC50 is not set
998# CONFIG_SENSORS_VIA686A is not set
724# CONFIG_SENSORS_VT1211 is not set 999# CONFIG_SENSORS_VT1211 is not set
1000# CONFIG_SENSORS_VT8231 is not set
725# CONFIG_SENSORS_W83781D is not set 1001# CONFIG_SENSORS_W83781D is not set
726# CONFIG_SENSORS_W83791D is not set 1002# CONFIG_SENSORS_W83791D is not set
727# CONFIG_SENSORS_W83792D is not set 1003# CONFIG_SENSORS_W83792D is not set
@@ -732,6 +1008,7 @@ CONFIG_HWMON=y
732# CONFIG_SENSORS_W83627EHF is not set 1008# CONFIG_SENSORS_W83627EHF is not set
733# CONFIG_HWMON_DEBUG_CHIP is not set 1009# CONFIG_HWMON_DEBUG_CHIP is not set
734# CONFIG_THERMAL is not set 1010# CONFIG_THERMAL is not set
1011# CONFIG_THERMAL_HWMON is not set
735CONFIG_WATCHDOG=y 1012CONFIG_WATCHDOG=y
736# CONFIG_WATCHDOG_NOWAYOUT is not set 1013# CONFIG_WATCHDOG_NOWAYOUT is not set
737 1014
@@ -739,7 +1016,15 @@ CONFIG_WATCHDOG=y
739# Watchdog Device Drivers 1016# Watchdog Device Drivers
740# 1017#
741# CONFIG_SOFT_WATCHDOG is not set 1018# CONFIG_SOFT_WATCHDOG is not set
742CONFIG_83xx_WDT=y 1019# CONFIG_ALIM7101_WDT is not set
1020# CONFIG_8xxx_WDT is not set
1021# CONFIG_WATCHDOG_RTAS is not set
1022
1023#
1024# PCI-based Watchdog Cards
1025#
1026# CONFIG_PCIPCWATCHDOG is not set
1027# CONFIG_WDTPCI is not set
743 1028
744# 1029#
745# USB-based Watchdog Cards 1030# USB-based Watchdog Cards
@@ -755,8 +1040,10 @@ CONFIG_SSB_POSSIBLE=y
755# 1040#
756# Multifunction device drivers 1041# Multifunction device drivers
757# 1042#
1043# CONFIG_MFD_CORE is not set
758# CONFIG_MFD_SM501 is not set 1044# CONFIG_MFD_SM501 is not set
759# CONFIG_HTC_PASIC3 is not set 1045# CONFIG_HTC_PASIC3 is not set
1046# CONFIG_MFD_TMIO is not set
760 1047
761# 1048#
762# Multimedia devices 1049# Multimedia devices
@@ -778,6 +1065,8 @@ CONFIG_DAB=y
778# 1065#
779# Graphics support 1066# Graphics support
780# 1067#
1068# CONFIG_AGP is not set
1069# CONFIG_DRM is not set
781# CONFIG_VGASTATE is not set 1070# CONFIG_VGASTATE is not set
782CONFIG_VIDEO_OUTPUT_CONTROL=m 1071CONFIG_VIDEO_OUTPUT_CONTROL=m
783# CONFIG_FB is not set 1072# CONFIG_FB is not set
@@ -787,10 +1076,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
787# Display device support 1076# Display device support
788# 1077#
789# CONFIG_DISPLAY_SUPPORT is not set 1078# CONFIG_DISPLAY_SUPPORT is not set
790
791#
792# Sound
793#
794# CONFIG_SOUND is not set 1079# CONFIG_SOUND is not set
795CONFIG_HID_SUPPORT=y 1080CONFIG_HID_SUPPORT=y
796CONFIG_HID=y 1081CONFIG_HID=y
@@ -806,7 +1091,7 @@ CONFIG_USB_HID=y
806# CONFIG_USB_HIDDEV is not set 1091# CONFIG_USB_HIDDEV is not set
807CONFIG_USB_SUPPORT=y 1092CONFIG_USB_SUPPORT=y
808CONFIG_USB_ARCH_HAS_HCD=y 1093CONFIG_USB_ARCH_HAS_HCD=y
809# CONFIG_USB_ARCH_HAS_OHCI is not set 1094CONFIG_USB_ARCH_HAS_OHCI=y
810CONFIG_USB_ARCH_HAS_EHCI=y 1095CONFIG_USB_ARCH_HAS_EHCI=y
811CONFIG_USB=y 1096CONFIG_USB=y
812# CONFIG_USB_DEBUG is not set 1097# CONFIG_USB_DEBUG is not set
@@ -821,6 +1106,7 @@ CONFIG_USB_DEVICE_CLASS=y
821# CONFIG_USB_OTG is not set 1106# CONFIG_USB_OTG is not set
822# CONFIG_USB_OTG_WHITELIST is not set 1107# CONFIG_USB_OTG_WHITELIST is not set
823# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1108# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1109CONFIG_USB_MON=y
824 1110
825# 1111#
826# USB Host Controller Drivers 1112# USB Host Controller Drivers
@@ -833,6 +1119,8 @@ CONFIG_USB_EHCI_FSL=y
833CONFIG_USB_EHCI_HCD_PPC_OF=y 1119CONFIG_USB_EHCI_HCD_PPC_OF=y
834# CONFIG_USB_ISP116X_HCD is not set 1120# CONFIG_USB_ISP116X_HCD is not set
835# CONFIG_USB_ISP1760_HCD is not set 1121# CONFIG_USB_ISP1760_HCD is not set
1122# CONFIG_USB_OHCI_HCD is not set
1123# CONFIG_USB_UHCI_HCD is not set
836# CONFIG_USB_SL811_HCD is not set 1124# CONFIG_USB_SL811_HCD is not set
837# CONFIG_USB_R8A66597_HCD is not set 1125# CONFIG_USB_R8A66597_HCD is not set
838 1126
@@ -858,7 +1146,6 @@ CONFIG_USB_EHCI_HCD_PPC_OF=y
858# 1146#
859# CONFIG_USB_MDC800 is not set 1147# CONFIG_USB_MDC800 is not set
860# CONFIG_USB_MICROTEK is not set 1148# CONFIG_USB_MICROTEK is not set
861CONFIG_USB_MON=y
862 1149
863# 1150#
864# USB port drivers 1151# USB port drivers
@@ -871,7 +1158,6 @@ CONFIG_USB_MON=y
871# CONFIG_USB_EMI62 is not set 1158# CONFIG_USB_EMI62 is not set
872# CONFIG_USB_EMI26 is not set 1159# CONFIG_USB_EMI26 is not set
873# CONFIG_USB_ADUTUX is not set 1160# CONFIG_USB_ADUTUX is not set
874# CONFIG_USB_AUERSWALD is not set
875# CONFIG_USB_RIO500 is not set 1161# CONFIG_USB_RIO500 is not set
876# CONFIG_USB_LEGOTOWER is not set 1162# CONFIG_USB_LEGOTOWER is not set
877# CONFIG_USB_LCD is not set 1163# CONFIG_USB_LCD is not set
@@ -893,6 +1179,7 @@ CONFIG_USB_MON=y
893# CONFIG_MEMSTICK is not set 1179# CONFIG_MEMSTICK is not set
894# CONFIG_NEW_LEDS is not set 1180# CONFIG_NEW_LEDS is not set
895# CONFIG_ACCESSIBILITY is not set 1181# CONFIG_ACCESSIBILITY is not set
1182# CONFIG_INFINIBAND is not set
896# CONFIG_EDAC is not set 1183# CONFIG_EDAC is not set
897# CONFIG_RTC_CLASS is not set 1184# CONFIG_RTC_CLASS is not set
898# CONFIG_DMADEVICES is not set 1185# CONFIG_DMADEVICES is not set
@@ -963,6 +1250,7 @@ CONFIG_TMPFS=y
963# CONFIG_CRAMFS is not set 1250# CONFIG_CRAMFS is not set
964# CONFIG_VXFS_FS is not set 1251# CONFIG_VXFS_FS is not set
965# CONFIG_MINIX_FS is not set 1252# CONFIG_MINIX_FS is not set
1253# CONFIG_OMFS_FS is not set
966# CONFIG_HPFS_FS is not set 1254# CONFIG_HPFS_FS is not set
967# CONFIG_QNX4FS_FS is not set 1255# CONFIG_QNX4FS_FS is not set
968# CONFIG_ROMFS_FS is not set 1256# CONFIG_ROMFS_FS is not set
@@ -973,14 +1261,13 @@ CONFIG_NFS_FS=y
973CONFIG_NFS_V3=y 1261CONFIG_NFS_V3=y
974# CONFIG_NFS_V3_ACL is not set 1262# CONFIG_NFS_V3_ACL is not set
975CONFIG_NFS_V4=y 1263CONFIG_NFS_V4=y
976# CONFIG_NFSD is not set
977CONFIG_ROOT_NFS=y 1264CONFIG_ROOT_NFS=y
1265# CONFIG_NFSD is not set
978CONFIG_LOCKD=y 1266CONFIG_LOCKD=y
979CONFIG_LOCKD_V4=y 1267CONFIG_LOCKD_V4=y
980CONFIG_NFS_COMMON=y 1268CONFIG_NFS_COMMON=y
981CONFIG_SUNRPC=y 1269CONFIG_SUNRPC=y
982CONFIG_SUNRPC_GSS=y 1270CONFIG_SUNRPC_GSS=y
983# CONFIG_SUNRPC_BIND34 is not set
984CONFIG_RPCSEC_GSS_KRB5=y 1271CONFIG_RPCSEC_GSS_KRB5=y
985# CONFIG_RPCSEC_GSS_SPKM3 is not set 1272# CONFIG_RPCSEC_GSS_SPKM3 is not set
986# CONFIG_SMB_FS is not set 1273# CONFIG_SMB_FS is not set
@@ -1014,6 +1301,7 @@ CONFIG_MSDOS_PARTITION=y
1014# CONFIG_DLM is not set 1301# CONFIG_DLM is not set
1015CONFIG_UCC_FAST=y 1302CONFIG_UCC_FAST=y
1016CONFIG_UCC=y 1303CONFIG_UCC=y
1304CONFIG_QE_GPIO=y
1017 1305
1018# 1306#
1019# Library routines 1307# Library routines
@@ -1022,6 +1310,7 @@ CONFIG_BITREVERSE=y
1022# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1310# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1023# CONFIG_CRC_CCITT is not set 1311# CONFIG_CRC_CCITT is not set
1024# CONFIG_CRC16 is not set 1312# CONFIG_CRC16 is not set
1313CONFIG_CRC_T10DIF=y
1025# CONFIG_CRC_ITU_T is not set 1314# CONFIG_CRC_ITU_T is not set
1026CONFIG_CRC32=y 1315CONFIG_CRC32=y
1027# CONFIG_CRC7 is not set 1316# CONFIG_CRC7 is not set
@@ -1045,8 +1334,18 @@ CONFIG_FRAME_WARN=1024
1045# CONFIG_HEADERS_CHECK is not set 1334# CONFIG_HEADERS_CHECK is not set
1046# CONFIG_DEBUG_KERNEL is not set 1335# CONFIG_DEBUG_KERNEL is not set
1047# CONFIG_DEBUG_BUGVERBOSE is not set 1336# CONFIG_DEBUG_BUGVERBOSE is not set
1337# CONFIG_DEBUG_MEMORY_INIT is not set
1338# CONFIG_LATENCYTOP is not set
1339CONFIG_SYSCTL_SYSCALL_CHECK=y
1340CONFIG_HAVE_FTRACE=y
1341CONFIG_HAVE_DYNAMIC_FTRACE=y
1342# CONFIG_FTRACE is not set
1343# CONFIG_SCHED_TRACER is not set
1344# CONFIG_CONTEXT_SWITCH_TRACER is not set
1048# CONFIG_SAMPLES is not set 1345# CONFIG_SAMPLES is not set
1346CONFIG_HAVE_ARCH_KGDB=y
1049# CONFIG_IRQSTACKS is not set 1347# CONFIG_IRQSTACKS is not set
1348# CONFIG_BOOTX_TEXT is not set
1050# CONFIG_PPC_EARLY_DEBUG is not set 1349# CONFIG_PPC_EARLY_DEBUG is not set
1051 1350
1052# 1351#
@@ -1061,12 +1360,14 @@ CONFIG_CRYPTO=y
1061# Crypto core or helper 1360# Crypto core or helper
1062# 1361#
1063CONFIG_CRYPTO_ALGAPI=y 1362CONFIG_CRYPTO_ALGAPI=y
1363CONFIG_CRYPTO_AEAD=y
1064CONFIG_CRYPTO_BLKCIPHER=y 1364CONFIG_CRYPTO_BLKCIPHER=y
1365CONFIG_CRYPTO_HASH=y
1065CONFIG_CRYPTO_MANAGER=y 1366CONFIG_CRYPTO_MANAGER=y
1066# CONFIG_CRYPTO_GF128MUL is not set 1367# CONFIG_CRYPTO_GF128MUL is not set
1067# CONFIG_CRYPTO_NULL is not set 1368# CONFIG_CRYPTO_NULL is not set
1068# CONFIG_CRYPTO_CRYPTD is not set 1369# CONFIG_CRYPTO_CRYPTD is not set
1069# CONFIG_CRYPTO_AUTHENC is not set 1370CONFIG_CRYPTO_AUTHENC=y
1070# CONFIG_CRYPTO_TEST is not set 1371# CONFIG_CRYPTO_TEST is not set
1071 1372
1072# 1373#
@@ -1100,6 +1401,10 @@ CONFIG_CRYPTO_PCBC=m
1100# CONFIG_CRYPTO_MD4 is not set 1401# CONFIG_CRYPTO_MD4 is not set
1101CONFIG_CRYPTO_MD5=y 1402CONFIG_CRYPTO_MD5=y
1102# CONFIG_CRYPTO_MICHAEL_MIC is not set 1403# CONFIG_CRYPTO_MICHAEL_MIC is not set
1404# CONFIG_CRYPTO_RMD128 is not set
1405# CONFIG_CRYPTO_RMD160 is not set
1406# CONFIG_CRYPTO_RMD256 is not set
1407# CONFIG_CRYPTO_RMD320 is not set
1103# CONFIG_CRYPTO_SHA1 is not set 1408# CONFIG_CRYPTO_SHA1 is not set
1104# CONFIG_CRYPTO_SHA256 is not set 1409# CONFIG_CRYPTO_SHA256 is not set
1105# CONFIG_CRYPTO_SHA512 is not set 1410# CONFIG_CRYPTO_SHA512 is not set
@@ -1131,6 +1436,8 @@ CONFIG_CRYPTO_DES=y
1131# CONFIG_CRYPTO_DEFLATE is not set 1436# CONFIG_CRYPTO_DEFLATE is not set
1132# CONFIG_CRYPTO_LZO is not set 1437# CONFIG_CRYPTO_LZO is not set
1133CONFIG_CRYPTO_HW=y 1438CONFIG_CRYPTO_HW=y
1439# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1440CONFIG_CRYPTO_DEV_TALITOS=y
1134# CONFIG_PPC_CLOCK is not set 1441# CONFIG_PPC_CLOCK is not set
1135CONFIG_PPC_LIB_RHEAP=y 1442CONFIG_PPC_LIB_RHEAP=y
1136# CONFIG_VIRTUALIZATION is not set 1443# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc85xx_defconfig b/arch/powerpc/configs/mpc85xx_defconfig
index fa0170504b88..f0a13bebf50c 100644
--- a/arch/powerpc/configs/mpc85xx_defconfig
+++ b/arch/powerpc/configs/mpc85xx_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 09:03:46 2008 4# Thu Aug 21 07:15:20 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_PPC_85xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_E500=y 17CONFIG_E500=y
18# CONFIG_PPC_E500MC is not set
18CONFIG_BOOKE=y 19CONFIG_BOOKE=y
19CONFIG_FSL_BOOKE=y 20CONFIG_FSL_BOOKE=y
20CONFIG_FSL_EMB_PERFMON=y 21CONFIG_FSL_EMB_PERFMON=y
@@ -33,12 +34,14 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
39CONFIG_GENERIC_HWEIGHT=y 41CONFIG_GENERIC_HWEIGHT=y
40CONFIG_GENERIC_CALIBRATE_DELAY=y 42CONFIG_GENERIC_CALIBRATE_DELAY=y
41CONFIG_GENERIC_FIND_NEXT_BIT=y 43CONFIG_GENERIC_FIND_NEXT_BIT=y
44CONFIG_GENERIC_GPIO=y
42# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 45# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
43CONFIG_PPC=y 46CONFIG_PPC=y
44CONFIG_EARLY_PRINTK=y 47CONFIG_EARLY_PRINTK=y
@@ -92,7 +95,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 96CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 99CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 100CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +120,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 120# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 128# CONFIG_HAVE_DMA_ATTRS is not set
129# CONFIG_USE_GENERIC_SMP_HELPERS is not set
130CONFIG_HAVE_CLK=y
124CONFIG_PROC_PAGE_MONITOR=y 131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 135# CONFIG_TINY_SHMEM is not set
@@ -138,6 +146,7 @@ CONFIG_LBD=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 147# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
149# CONFIG_BLK_DEV_INTEGRITY is not set
141 150
142# 151#
143# IO Schedulers 152# IO Schedulers
@@ -156,8 +165,6 @@ CONFIG_CLASSIC_RCU=y
156# 165#
157# Platform support 166# Platform support
158# 167#
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_PPC_CELL is not set 168# CONFIG_PPC_CELL is not set
162# CONFIG_PPC_CELL_NATIVE is not set 169# CONFIG_PPC_CELL_NATIVE is not set
163# CONFIG_PQ2ADS is not set 170# CONFIG_PQ2ADS is not set
@@ -166,11 +173,13 @@ CONFIG_MPC8540_ADS=y
166CONFIG_MPC8560_ADS=y 173CONFIG_MPC8560_ADS=y
167CONFIG_MPC85xx_CDS=y 174CONFIG_MPC85xx_CDS=y
168CONFIG_MPC85xx_MDS=y 175CONFIG_MPC85xx_MDS=y
176CONFIG_MPC8536_DS=y
169CONFIG_MPC85xx_DS=y 177CONFIG_MPC85xx_DS=y
170CONFIG_KSI8560=y 178CONFIG_KSI8560=y
171# CONFIG_STX_GP3 is not set 179# CONFIG_STX_GP3 is not set
172CONFIG_TQM8540=y 180CONFIG_TQM8540=y
173CONFIG_TQM8541=y 181CONFIG_TQM8541=y
182CONFIG_TQM8548=y
174CONFIG_TQM8555=y 183CONFIG_TQM8555=y
175CONFIG_TQM8560=y 184CONFIG_TQM8560=y
176CONFIG_SBC8548=y 185CONFIG_SBC8548=y
@@ -189,7 +198,6 @@ CONFIG_PPC_I8259=y
189# CONFIG_CPU_FREQ is not set 198# CONFIG_CPU_FREQ is not set
190CONFIG_QUICC_ENGINE=y 199CONFIG_QUICC_ENGINE=y
191CONFIG_CPM2=y 200CONFIG_CPM2=y
192CONFIG_PPC_CPM_NEW_BINDING=y
193CONFIG_FSL_ULI1575=y 201CONFIG_FSL_ULI1575=y
194CONFIG_CPM=y 202CONFIG_CPM=y
195 203
@@ -206,7 +214,7 @@ CONFIG_HZ_250=y
206# CONFIG_HZ_300 is not set 214# CONFIG_HZ_300 is not set
207# CONFIG_HZ_1000 is not set 215# CONFIG_HZ_1000 is not set
208CONFIG_HZ=250 216CONFIG_HZ=250
209# CONFIG_SCHED_HRTICK is not set 217CONFIG_SCHED_HRTICK=y
210CONFIG_PREEMPT_NONE=y 218CONFIG_PREEMPT_NONE=y
211# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
212# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
@@ -229,6 +237,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
229# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 237# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
230CONFIG_PAGEFLAGS_EXTENDED=y 238CONFIG_PAGEFLAGS_EXTENDED=y
231CONFIG_SPLIT_PTLOCK_CPUS=4 239CONFIG_SPLIT_PTLOCK_CPUS=4
240CONFIG_MIGRATION=y
232# CONFIG_RESOURCES_64BIT is not set 241# CONFIG_RESOURCES_64BIT is not set
233CONFIG_ZONE_DMA_FLAG=1 242CONFIG_ZONE_DMA_FLAG=1
234CONFIG_BOUNCE=y 243CONFIG_BOUNCE=y
@@ -236,6 +245,7 @@ CONFIG_VIRT_TO_BUS=y
236CONFIG_FORCE_MAX_ZONEORDER=11 245CONFIG_FORCE_MAX_ZONEORDER=11
237CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
248CONFIG_EXTRA_TARGETS=""
239# CONFIG_PM is not set 249# CONFIG_PM is not set
240CONFIG_SECCOMP=y 250CONFIG_SECCOMP=y
241CONFIG_ISA_DMA_API=y 251CONFIG_ISA_DMA_API=y
@@ -248,6 +258,7 @@ CONFIG_GENERIC_ISA_DMA=y
248CONFIG_PPC_INDIRECT_PCI=y 258CONFIG_PPC_INDIRECT_PCI=y
249CONFIG_FSL_SOC=y 259CONFIG_FSL_SOC=y
250CONFIG_FSL_PCI=y 260CONFIG_FSL_PCI=y
261CONFIG_PPC_PCI_CHOICE=y
251CONFIG_PCI=y 262CONFIG_PCI=y
252CONFIG_PCI_DOMAINS=y 263CONFIG_PCI_DOMAINS=y
253CONFIG_PCI_SYSCALL=y 264CONFIG_PCI_SYSCALL=y
@@ -274,10 +285,6 @@ CONFIG_KERNEL_START=0xc0000000
274CONFIG_PHYSICAL_START=0x00000000 285CONFIG_PHYSICAL_START=0x00000000
275CONFIG_PHYSICAL_ALIGN=0x10000000 286CONFIG_PHYSICAL_ALIGN=0x10000000
276CONFIG_TASK_SIZE=0xc0000000 287CONFIG_TASK_SIZE=0xc0000000
277
278#
279# Networking
280#
281CONFIG_NET=y 288CONFIG_NET=y
282 289
283# 290#
@@ -403,12 +410,15 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
403CONFIG_STANDALONE=y 410CONFIG_STANDALONE=y
404CONFIG_PREVENT_FIRMWARE_BUILD=y 411CONFIG_PREVENT_FIRMWARE_BUILD=y
405CONFIG_FW_LOADER=y 412CONFIG_FW_LOADER=y
413CONFIG_FIRMWARE_IN_KERNEL=y
414CONFIG_EXTRA_FIRMWARE=""
406# CONFIG_DEBUG_DRIVER is not set 415# CONFIG_DEBUG_DRIVER is not set
407# CONFIG_DEBUG_DEVRES is not set 416# CONFIG_DEBUG_DEVRES is not set
408# CONFIG_SYS_HYPERVISOR is not set 417# CONFIG_SYS_HYPERVISOR is not set
409# CONFIG_CONNECTOR is not set 418# CONFIG_CONNECTOR is not set
410# CONFIG_MTD is not set 419# CONFIG_MTD is not set
411CONFIG_OF_DEVICE=y 420CONFIG_OF_DEVICE=y
421CONFIG_OF_GPIO=y
412CONFIG_OF_I2C=y 422CONFIG_OF_I2C=y
413# CONFIG_PARPORT is not set 423# CONFIG_PARPORT is not set
414CONFIG_BLK_DEV=y 424CONFIG_BLK_DEV=y
@@ -429,12 +439,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
429# CONFIG_BLK_DEV_XIP is not set 439# CONFIG_BLK_DEV_XIP is not set
430# CONFIG_CDROM_PKTCDVD is not set 440# CONFIG_CDROM_PKTCDVD is not set
431# CONFIG_ATA_OVER_ETH is not set 441# CONFIG_ATA_OVER_ETH is not set
442# CONFIG_BLK_DEV_HD is not set
432CONFIG_MISC_DEVICES=y 443CONFIG_MISC_DEVICES=y
433# CONFIG_PHANTOM is not set 444# CONFIG_PHANTOM is not set
434# CONFIG_EEPROM_93CX6 is not set 445# CONFIG_EEPROM_93CX6 is not set
435# CONFIG_SGI_IOC4 is not set 446# CONFIG_SGI_IOC4 is not set
436# CONFIG_TIFM_CORE is not set 447# CONFIG_TIFM_CORE is not set
437# CONFIG_ENCLOSURE_SERVICES is not set 448# CONFIG_ENCLOSURE_SERVICES is not set
449# CONFIG_HP_ILO is not set
438CONFIG_HAVE_IDE=y 450CONFIG_HAVE_IDE=y
439# CONFIG_IDE is not set 451# CONFIG_IDE is not set
440 452
@@ -514,6 +526,7 @@ CONFIG_SCSI_LOWLEVEL=y
514# CONFIG_SCSI_NSP32 is not set 526# CONFIG_SCSI_NSP32 is not set
515# CONFIG_SCSI_DEBUG is not set 527# CONFIG_SCSI_DEBUG is not set
516# CONFIG_SCSI_SRP is not set 528# CONFIG_SCSI_SRP is not set
529# CONFIG_SCSI_DH is not set
517CONFIG_ATA=y 530CONFIG_ATA=y
518# CONFIG_ATA_NONSTANDARD is not set 531# CONFIG_ATA_NONSTANDARD is not set
519CONFIG_SATA_PMP=y 532CONFIG_SATA_PMP=y
@@ -581,12 +594,15 @@ CONFIG_PATA_ALI=y
581# 594#
582# IEEE 1394 (FireWire) support 595# IEEE 1394 (FireWire) support
583# 596#
597
598#
599# Enable only one of the two stacks, unless you know what you are doing
600#
584# CONFIG_FIREWIRE is not set 601# CONFIG_FIREWIRE is not set
585# CONFIG_IEEE1394 is not set 602# CONFIG_IEEE1394 is not set
586# CONFIG_I2O is not set 603# CONFIG_I2O is not set
587# CONFIG_MACINTOSH_DRIVERS is not set 604# CONFIG_MACINTOSH_DRIVERS is not set
588CONFIG_NETDEVICES=y 605CONFIG_NETDEVICES=y
589# CONFIG_NETDEVICES_MULTIQUEUE is not set
590CONFIG_DUMMY=y 606CONFIG_DUMMY=y
591# CONFIG_BONDING is not set 607# CONFIG_BONDING is not set
592# CONFIG_MACVLAN is not set 608# CONFIG_MACVLAN is not set
@@ -631,7 +647,6 @@ CONFIG_NETDEV_1000=y
631# CONFIG_DL2K is not set 647# CONFIG_DL2K is not set
632# CONFIG_E1000 is not set 648# CONFIG_E1000 is not set
633# CONFIG_E1000E is not set 649# CONFIG_E1000E is not set
634# CONFIG_E1000E_ENABLED is not set
635# CONFIG_IP1000 is not set 650# CONFIG_IP1000 is not set
636# CONFIG_IGB is not set 651# CONFIG_IGB is not set
637# CONFIG_NS83820 is not set 652# CONFIG_NS83820 is not set
@@ -645,10 +660,10 @@ CONFIG_NETDEV_1000=y
645# CONFIG_TIGON3 is not set 660# CONFIG_TIGON3 is not set
646# CONFIG_BNX2 is not set 661# CONFIG_BNX2 is not set
647CONFIG_GIANFAR=y 662CONFIG_GIANFAR=y
648CONFIG_GFAR_NAPI=y
649# CONFIG_UCC_GETH is not set 663# CONFIG_UCC_GETH is not set
650# CONFIG_QLA3XXX is not set 664# CONFIG_QLA3XXX is not set
651# CONFIG_ATL1 is not set 665# CONFIG_ATL1 is not set
666# CONFIG_ATL1E is not set
652CONFIG_NETDEV_10000=y 667CONFIG_NETDEV_10000=y
653# CONFIG_CHELSIO_T1 is not set 668# CONFIG_CHELSIO_T1 is not set
654# CONFIG_CHELSIO_T3 is not set 669# CONFIG_CHELSIO_T3 is not set
@@ -725,12 +740,14 @@ CONFIG_SERIO_SERPORT=y
725# CONFIG_SERIO_PCIPS2 is not set 740# CONFIG_SERIO_PCIPS2 is not set
726CONFIG_SERIO_LIBPS2=y 741CONFIG_SERIO_LIBPS2=y
727# CONFIG_SERIO_RAW is not set 742# CONFIG_SERIO_RAW is not set
743# CONFIG_SERIO_XILINX_XPS_PS2 is not set
728# CONFIG_GAMEPORT is not set 744# CONFIG_GAMEPORT is not set
729 745
730# 746#
731# Character devices 747# Character devices
732# 748#
733CONFIG_VT=y 749CONFIG_VT=y
750CONFIG_CONSOLE_TRANSLATIONS=y
734CONFIG_VT_CONSOLE=y 751CONFIG_VT_CONSOLE=y
735CONFIG_HW_CONSOLE=y 752CONFIG_HW_CONSOLE=y
736# CONFIG_VT_HW_CONSOLE_BINDING is not set 753# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -776,44 +793,68 @@ CONFIG_DEVPORT=y
776CONFIG_I2C=y 793CONFIG_I2C=y
777CONFIG_I2C_BOARDINFO=y 794CONFIG_I2C_BOARDINFO=y
778# CONFIG_I2C_CHARDEV is not set 795# CONFIG_I2C_CHARDEV is not set
796CONFIG_I2C_HELPER_AUTO=y
779 797
780# 798#
781# I2C Hardware Bus support 799# I2C Hardware Bus support
782# 800#
801
802#
803# PC SMBus host controller drivers
804#
783# CONFIG_I2C_ALI1535 is not set 805# CONFIG_I2C_ALI1535 is not set
784# CONFIG_I2C_ALI1563 is not set 806# CONFIG_I2C_ALI1563 is not set
785# CONFIG_I2C_ALI15X3 is not set 807# CONFIG_I2C_ALI15X3 is not set
786# CONFIG_I2C_AMD756 is not set 808# CONFIG_I2C_AMD756 is not set
787# CONFIG_I2C_AMD8111 is not set 809# CONFIG_I2C_AMD8111 is not set
788# CONFIG_I2C_I801 is not set 810# CONFIG_I2C_I801 is not set
789# CONFIG_I2C_I810 is not set 811# CONFIG_I2C_ISCH is not set
790# CONFIG_I2C_PIIX4 is not set 812# CONFIG_I2C_PIIX4 is not set
791CONFIG_I2C_MPC=y
792# CONFIG_I2C_NFORCE2 is not set 813# CONFIG_I2C_NFORCE2 is not set
793# CONFIG_I2C_OCORES is not set
794# CONFIG_I2C_PARPORT_LIGHT is not set
795# CONFIG_I2C_PROSAVAGE is not set
796# CONFIG_I2C_SAVAGE4 is not set
797# CONFIG_I2C_SIMTEC is not set
798# CONFIG_I2C_SIS5595 is not set 814# CONFIG_I2C_SIS5595 is not set
799# CONFIG_I2C_SIS630 is not set 815# CONFIG_I2C_SIS630 is not set
800# CONFIG_I2C_SIS96X is not set 816# CONFIG_I2C_SIS96X is not set
801# CONFIG_I2C_TAOS_EVM is not set
802# CONFIG_I2C_STUB is not set
803# CONFIG_I2C_TINY_USB is not set
804# CONFIG_I2C_VIA is not set 817# CONFIG_I2C_VIA is not set
805# CONFIG_I2C_VIAPRO is not set 818# CONFIG_I2C_VIAPRO is not set
819
820#
821# I2C system bus drivers (mostly embedded / system-on-chip)
822#
823# CONFIG_I2C_CPM is not set
824# CONFIG_I2C_GPIO is not set
825CONFIG_I2C_MPC=y
826# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_SIMTEC is not set
828
829#
830# External I2C/SMBus adapter drivers
831#
832# CONFIG_I2C_PARPORT_LIGHT is not set
833# CONFIG_I2C_TAOS_EVM is not set
834# CONFIG_I2C_TINY_USB is not set
835
836#
837# Graphics adapter I2C/DDC channel drivers
838#
806# CONFIG_I2C_VOODOO3 is not set 839# CONFIG_I2C_VOODOO3 is not set
840
841#
842# Other I2C/SMBus bus drivers
843#
807# CONFIG_I2C_PCA_PLATFORM is not set 844# CONFIG_I2C_PCA_PLATFORM is not set
845# CONFIG_I2C_STUB is not set
808 846
809# 847#
810# Miscellaneous I2C Chip support 848# Miscellaneous I2C Chip support
811# 849#
812# CONFIG_DS1682 is not set 850# CONFIG_DS1682 is not set
851# CONFIG_AT24 is not set
813CONFIG_SENSORS_EEPROM=y 852CONFIG_SENSORS_EEPROM=y
814# CONFIG_SENSORS_PCF8574 is not set 853# CONFIG_SENSORS_PCF8574 is not set
815# CONFIG_PCF8575 is not set 854# CONFIG_PCF8575 is not set
855# CONFIG_SENSORS_PCA9539 is not set
816# CONFIG_SENSORS_PCF8591 is not set 856# CONFIG_SENSORS_PCF8591 is not set
857# CONFIG_TPS65010 is not set
817# CONFIG_SENSORS_MAX6875 is not set 858# CONFIG_SENSORS_MAX6875 is not set
818# CONFIG_SENSORS_TSL2550 is not set 859# CONFIG_SENSORS_TSL2550 is not set
819# CONFIG_I2C_DEBUG_CORE is not set 860# CONFIG_I2C_DEBUG_CORE is not set
@@ -821,10 +862,32 @@ CONFIG_SENSORS_EEPROM=y
821# CONFIG_I2C_DEBUG_BUS is not set 862# CONFIG_I2C_DEBUG_BUS is not set
822# CONFIG_I2C_DEBUG_CHIP is not set 863# CONFIG_I2C_DEBUG_CHIP is not set
823# CONFIG_SPI is not set 864# CONFIG_SPI is not set
865CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
866CONFIG_ARCH_REQUIRE_GPIOLIB=y
867CONFIG_GPIOLIB=y
868# CONFIG_DEBUG_GPIO is not set
869# CONFIG_GPIO_SYSFS is not set
870
871#
872# I2C GPIO expanders:
873#
874# CONFIG_GPIO_MAX732X is not set
875# CONFIG_GPIO_PCA953X is not set
876# CONFIG_GPIO_PCF857X is not set
877
878#
879# PCI GPIO expanders:
880#
881# CONFIG_GPIO_BT8XX is not set
882
883#
884# SPI GPIO expanders:
885#
824# CONFIG_W1 is not set 886# CONFIG_W1 is not set
825# CONFIG_POWER_SUPPLY is not set 887# CONFIG_POWER_SUPPLY is not set
826# CONFIG_HWMON is not set 888# CONFIG_HWMON is not set
827# CONFIG_THERMAL is not set 889# CONFIG_THERMAL is not set
890# CONFIG_THERMAL_HWMON is not set
828# CONFIG_WATCHDOG is not set 891# CONFIG_WATCHDOG is not set
829 892
830# 893#
@@ -836,8 +899,10 @@ CONFIG_SSB_POSSIBLE=y
836# 899#
837# Multifunction device drivers 900# Multifunction device drivers
838# 901#
902# CONFIG_MFD_CORE is not set
839# CONFIG_MFD_SM501 is not set 903# CONFIG_MFD_SM501 is not set
840# CONFIG_HTC_PASIC3 is not set 904# CONFIG_HTC_PASIC3 is not set
905# CONFIG_MFD_TMIO is not set
841 906
842# 907#
843# Multimedia devices 908# Multimedia devices
@@ -879,6 +944,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
879# CONFIG_DVB_TTUSB_BUDGET is not set 944# CONFIG_DVB_TTUSB_BUDGET is not set
880# CONFIG_DVB_TTUSB_DEC is not set 945# CONFIG_DVB_TTUSB_DEC is not set
881# CONFIG_DVB_CINERGYT2 is not set 946# CONFIG_DVB_CINERGYT2 is not set
947# CONFIG_DVB_SIANO_SMS1XXX is not set
882 948
883# 949#
884# Supported FlexCopII (B2C2) Adapters 950# Supported FlexCopII (B2C2) Adapters
@@ -925,6 +991,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
925# CONFIG_DVB_SP887X is not set 991# CONFIG_DVB_SP887X is not set
926# CONFIG_DVB_CX22700 is not set 992# CONFIG_DVB_CX22700 is not set
927# CONFIG_DVB_CX22702 is not set 993# CONFIG_DVB_CX22702 is not set
994# CONFIG_DVB_DRX397XD is not set
928# CONFIG_DVB_L64781 is not set 995# CONFIG_DVB_L64781 is not set
929# CONFIG_DVB_TDA1004X is not set 996# CONFIG_DVB_TDA1004X is not set
930# CONFIG_DVB_NXT6000 is not set 997# CONFIG_DVB_NXT6000 is not set
@@ -992,15 +1059,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
992CONFIG_VGA_CONSOLE=y 1059CONFIG_VGA_CONSOLE=y
993# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1060# CONFIG_VGACON_SOFT_SCROLLBACK is not set
994CONFIG_DUMMY_CONSOLE=y 1061CONFIG_DUMMY_CONSOLE=y
995
996#
997# Sound
998#
999CONFIG_SOUND=y 1062CONFIG_SOUND=y
1000
1001#
1002# Advanced Linux Sound Architecture
1003#
1004CONFIG_SND=y 1063CONFIG_SND=y
1005CONFIG_SND_TIMER=y 1064CONFIG_SND_TIMER=y
1006CONFIG_SND_PCM=y 1065CONFIG_SND_PCM=y
@@ -1014,19 +1073,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1014CONFIG_SND_VERBOSE_PROCFS=y 1073CONFIG_SND_VERBOSE_PROCFS=y
1015# CONFIG_SND_VERBOSE_PRINTK is not set 1074# CONFIG_SND_VERBOSE_PRINTK is not set
1016# CONFIG_SND_DEBUG is not set 1075# CONFIG_SND_DEBUG is not set
1017 1076CONFIG_SND_VMASTER=y
1018#
1019# Generic devices
1020#
1021CONFIG_SND_AC97_CODEC=y 1077CONFIG_SND_AC97_CODEC=y
1078CONFIG_SND_DRIVERS=y
1022# CONFIG_SND_DUMMY is not set 1079# CONFIG_SND_DUMMY is not set
1023# CONFIG_SND_MTPAV is not set 1080# CONFIG_SND_MTPAV is not set
1024# CONFIG_SND_SERIAL_U16550 is not set 1081# CONFIG_SND_SERIAL_U16550 is not set
1025# CONFIG_SND_MPU401 is not set 1082# CONFIG_SND_MPU401 is not set
1026 1083# CONFIG_SND_AC97_POWER_SAVE is not set
1027# 1084CONFIG_SND_PCI=y
1028# PCI devices
1029#
1030# CONFIG_SND_AD1889 is not set 1085# CONFIG_SND_AD1889 is not set
1031# CONFIG_SND_ALS300 is not set 1086# CONFIG_SND_ALS300 is not set
1032# CONFIG_SND_ALS4000 is not set 1087# CONFIG_SND_ALS4000 is not set
@@ -1088,39 +1143,12 @@ CONFIG_SND_INTEL8X0=y
1088# CONFIG_SND_VIRTUOSO is not set 1143# CONFIG_SND_VIRTUOSO is not set
1089# CONFIG_SND_VX222 is not set 1144# CONFIG_SND_VX222 is not set
1090# CONFIG_SND_YMFPCI is not set 1145# CONFIG_SND_YMFPCI is not set
1091# CONFIG_SND_AC97_POWER_SAVE is not set 1146CONFIG_SND_PPC=y
1092 1147CONFIG_SND_USB=y
1093#
1094# ALSA PowerMac devices
1095#
1096
1097#
1098# ALSA PowerPC devices
1099#
1100
1101#
1102# USB devices
1103#
1104# CONFIG_SND_USB_AUDIO is not set 1148# CONFIG_SND_USB_AUDIO is not set
1105# CONFIG_SND_USB_USX2Y is not set 1149# CONFIG_SND_USB_USX2Y is not set
1106# CONFIG_SND_USB_CAIAQ is not set 1150# CONFIG_SND_USB_CAIAQ is not set
1107
1108#
1109# System on Chip audio support
1110#
1111# CONFIG_SND_SOC is not set 1151# CONFIG_SND_SOC is not set
1112
1113#
1114# ALSA SoC audio for Freescale SOCs
1115#
1116
1117#
1118# SoC Audio for the Texas Instruments OMAP
1119#
1120
1121#
1122# Open Sound System
1123#
1124# CONFIG_SOUND_PRIME is not set 1152# CONFIG_SOUND_PRIME is not set
1125CONFIG_AC97_BUS=y 1153CONFIG_AC97_BUS=y
1126CONFIG_HID_SUPPORT=y 1154CONFIG_HID_SUPPORT=y
@@ -1152,6 +1180,7 @@ CONFIG_USB_DEVICE_CLASS=y
1152# CONFIG_USB_OTG is not set 1180# CONFIG_USB_OTG is not set
1153# CONFIG_USB_OTG_WHITELIST is not set 1181# CONFIG_USB_OTG_WHITELIST is not set
1154# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1182# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1183CONFIG_USB_MON=y
1155 1184
1156# 1185#
1157# USB Host Controller Drivers 1186# USB Host Controller Drivers
@@ -1175,6 +1204,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1175# CONFIG_USB_UHCI_HCD is not set 1204# CONFIG_USB_UHCI_HCD is not set
1176# CONFIG_USB_SL811_HCD is not set 1205# CONFIG_USB_SL811_HCD is not set
1177# CONFIG_USB_R8A66597_HCD is not set 1206# CONFIG_USB_R8A66597_HCD is not set
1207# CONFIG_USB_MUSB_HDRC is not set
1178 1208
1179# 1209#
1180# USB Device Class drivers 1210# USB Device Class drivers
@@ -1203,6 +1233,7 @@ CONFIG_USB_STORAGE=y
1203# CONFIG_USB_STORAGE_ALAUDA is not set 1233# CONFIG_USB_STORAGE_ALAUDA is not set
1204# CONFIG_USB_STORAGE_ONETOUCH is not set 1234# CONFIG_USB_STORAGE_ONETOUCH is not set
1205# CONFIG_USB_STORAGE_KARMA is not set 1235# CONFIG_USB_STORAGE_KARMA is not set
1236# CONFIG_USB_STORAGE_SIERRA is not set
1206# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1237# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1207# CONFIG_USB_LIBUSUAL is not set 1238# CONFIG_USB_LIBUSUAL is not set
1208 1239
@@ -1211,7 +1242,6 @@ CONFIG_USB_STORAGE=y
1211# 1242#
1212# CONFIG_USB_MDC800 is not set 1243# CONFIG_USB_MDC800 is not set
1213# CONFIG_USB_MICROTEK is not set 1244# CONFIG_USB_MICROTEK is not set
1214CONFIG_USB_MON=y
1215 1245
1216# 1246#
1217# USB port drivers 1247# USB port drivers
@@ -1224,7 +1254,6 @@ CONFIG_USB_MON=y
1224# CONFIG_USB_EMI62 is not set 1254# CONFIG_USB_EMI62 is not set
1225# CONFIG_USB_EMI26 is not set 1255# CONFIG_USB_EMI26 is not set
1226# CONFIG_USB_ADUTUX is not set 1256# CONFIG_USB_ADUTUX is not set
1227# CONFIG_USB_AUERSWALD is not set
1228# CONFIG_USB_RIO500 is not set 1257# CONFIG_USB_RIO500 is not set
1229# CONFIG_USB_LEGOTOWER is not set 1258# CONFIG_USB_LEGOTOWER is not set
1230# CONFIG_USB_LCD is not set 1259# CONFIG_USB_LCD is not set
@@ -1285,6 +1314,7 @@ CONFIG_RTC_INTF_DEV=y
1285# CONFIG_RTC_DRV_PCF8583 is not set 1314# CONFIG_RTC_DRV_PCF8583 is not set
1286# CONFIG_RTC_DRV_M41T80 is not set 1315# CONFIG_RTC_DRV_M41T80 is not set
1287# CONFIG_RTC_DRV_S35390A is not set 1316# CONFIG_RTC_DRV_S35390A is not set
1317# CONFIG_RTC_DRV_FM3130 is not set
1288 1318
1289# 1319#
1290# SPI RTC drivers 1320# SPI RTC drivers
@@ -1318,6 +1348,7 @@ CONFIG_DMA_ENGINE=y
1318# DMA Clients 1348# DMA Clients
1319# 1349#
1320# CONFIG_NET_DMA is not set 1350# CONFIG_NET_DMA is not set
1351# CONFIG_DMATEST is not set
1321# CONFIG_UIO is not set 1352# CONFIG_UIO is not set
1322 1353
1323# 1354#
@@ -1332,6 +1363,7 @@ CONFIG_EXT3_FS_XATTR=y
1332# CONFIG_EXT3_FS_SECURITY is not set 1363# CONFIG_EXT3_FS_SECURITY is not set
1333# CONFIG_EXT4DEV_FS is not set 1364# CONFIG_EXT4DEV_FS is not set
1334CONFIG_JBD=y 1365CONFIG_JBD=y
1366# CONFIG_JBD_DEBUG is not set
1335CONFIG_FS_MBCACHE=y 1367CONFIG_FS_MBCACHE=y
1336# CONFIG_REISERFS_FS is not set 1368# CONFIG_REISERFS_FS is not set
1337# CONFIG_JFS_FS is not set 1369# CONFIG_JFS_FS is not set
@@ -1394,6 +1426,7 @@ CONFIG_EFS_FS=m
1394CONFIG_CRAMFS=y 1426CONFIG_CRAMFS=y
1395CONFIG_VXFS_FS=m 1427CONFIG_VXFS_FS=m
1396# CONFIG_MINIX_FS is not set 1428# CONFIG_MINIX_FS is not set
1429# CONFIG_OMFS_FS is not set
1397CONFIG_HPFS_FS=m 1430CONFIG_HPFS_FS=m
1398CONFIG_QNX4FS_FS=m 1431CONFIG_QNX4FS_FS=m
1399# CONFIG_ROMFS_FS is not set 1432# CONFIG_ROMFS_FS is not set
@@ -1406,17 +1439,16 @@ CONFIG_NFS_FS=y
1406CONFIG_NFS_V3=y 1439CONFIG_NFS_V3=y
1407# CONFIG_NFS_V3_ACL is not set 1440# CONFIG_NFS_V3_ACL is not set
1408CONFIG_NFS_V4=y 1441CONFIG_NFS_V4=y
1442CONFIG_ROOT_NFS=y
1409CONFIG_NFSD=y 1443CONFIG_NFSD=y
1410# CONFIG_NFSD_V3 is not set 1444# CONFIG_NFSD_V3 is not set
1411# CONFIG_NFSD_V4 is not set 1445# CONFIG_NFSD_V4 is not set
1412CONFIG_ROOT_NFS=y
1413CONFIG_LOCKD=y 1446CONFIG_LOCKD=y
1414CONFIG_LOCKD_V4=y 1447CONFIG_LOCKD_V4=y
1415CONFIG_EXPORTFS=y 1448CONFIG_EXPORTFS=y
1416CONFIG_NFS_COMMON=y 1449CONFIG_NFS_COMMON=y
1417CONFIG_SUNRPC=y 1450CONFIG_SUNRPC=y
1418CONFIG_SUNRPC_GSS=y 1451CONFIG_SUNRPC_GSS=y
1419# CONFIG_SUNRPC_BIND34 is not set
1420CONFIG_RPCSEC_GSS_KRB5=y 1452CONFIG_RPCSEC_GSS_KRB5=y
1421# CONFIG_RPCSEC_GSS_SPKM3 is not set 1453# CONFIG_RPCSEC_GSS_SPKM3 is not set
1422# CONFIG_SMB_FS is not set 1454# CONFIG_SMB_FS is not set
@@ -1487,6 +1519,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1487# CONFIG_NLS_KOI8_U is not set 1519# CONFIG_NLS_KOI8_U is not set
1488CONFIG_NLS_UTF8=m 1520CONFIG_NLS_UTF8=m
1489# CONFIG_DLM is not set 1521# CONFIG_DLM is not set
1522# CONFIG_QE_GPIO is not set
1490 1523
1491# 1524#
1492# Library routines 1525# Library routines
@@ -1495,6 +1528,7 @@ CONFIG_BITREVERSE=y
1495# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1528# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1496# CONFIG_CRC_CCITT is not set 1529# CONFIG_CRC_CCITT is not set
1497# CONFIG_CRC16 is not set 1530# CONFIG_CRC16 is not set
1531CONFIG_CRC_T10DIF=y
1498CONFIG_CRC_ITU_T=m 1532CONFIG_CRC_ITU_T=m
1499CONFIG_CRC32=y 1533CONFIG_CRC32=y
1500# CONFIG_CRC7 is not set 1534# CONFIG_CRC7 is not set
@@ -1515,11 +1549,13 @@ CONFIG_ENABLE_MUST_CHECK=y
1515CONFIG_FRAME_WARN=1024 1549CONFIG_FRAME_WARN=1024
1516# CONFIG_MAGIC_SYSRQ is not set 1550# CONFIG_MAGIC_SYSRQ is not set
1517# CONFIG_UNUSED_SYMBOLS is not set 1551# CONFIG_UNUSED_SYMBOLS is not set
1518# CONFIG_DEBUG_FS is not set 1552CONFIG_DEBUG_FS=y
1519# CONFIG_HEADERS_CHECK is not set 1553# CONFIG_HEADERS_CHECK is not set
1520CONFIG_DEBUG_KERNEL=y 1554CONFIG_DEBUG_KERNEL=y
1521# CONFIG_DEBUG_SHIRQ is not set 1555# CONFIG_DEBUG_SHIRQ is not set
1522CONFIG_DETECT_SOFTLOCKUP=y 1556CONFIG_DETECT_SOFTLOCKUP=y
1557# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1558CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1523CONFIG_SCHED_DEBUG=y 1559CONFIG_SCHED_DEBUG=y
1524# CONFIG_SCHEDSTATS is not set 1560# CONFIG_SCHEDSTATS is not set
1525# CONFIG_TIMER_STATS is not set 1561# CONFIG_TIMER_STATS is not set
@@ -1538,19 +1574,31 @@ CONFIG_SCHED_DEBUG=y
1538CONFIG_DEBUG_INFO=y 1574CONFIG_DEBUG_INFO=y
1539# CONFIG_DEBUG_VM is not set 1575# CONFIG_DEBUG_VM is not set
1540# CONFIG_DEBUG_WRITECOUNT is not set 1576# CONFIG_DEBUG_WRITECOUNT is not set
1577# CONFIG_DEBUG_MEMORY_INIT is not set
1541# CONFIG_DEBUG_LIST is not set 1578# CONFIG_DEBUG_LIST is not set
1542# CONFIG_DEBUG_SG is not set 1579# CONFIG_DEBUG_SG is not set
1543# CONFIG_BOOT_PRINTK_DELAY is not set 1580# CONFIG_BOOT_PRINTK_DELAY is not set
1544# CONFIG_RCU_TORTURE_TEST is not set 1581# CONFIG_RCU_TORTURE_TEST is not set
1545# CONFIG_BACKTRACE_SELF_TEST is not set 1582# CONFIG_BACKTRACE_SELF_TEST is not set
1546# CONFIG_FAULT_INJECTION is not set 1583# CONFIG_FAULT_INJECTION is not set
1584# CONFIG_LATENCYTOP is not set
1585CONFIG_SYSCTL_SYSCALL_CHECK=y
1586CONFIG_HAVE_FTRACE=y
1587CONFIG_HAVE_DYNAMIC_FTRACE=y
1588# CONFIG_FTRACE is not set
1589# CONFIG_SCHED_TRACER is not set
1590# CONFIG_CONTEXT_SWITCH_TRACER is not set
1547# CONFIG_SAMPLES is not set 1591# CONFIG_SAMPLES is not set
1592CONFIG_HAVE_ARCH_KGDB=y
1593# CONFIG_KGDB is not set
1548# CONFIG_DEBUG_STACKOVERFLOW is not set 1594# CONFIG_DEBUG_STACKOVERFLOW is not set
1549# CONFIG_DEBUG_STACK_USAGE is not set 1595# CONFIG_DEBUG_STACK_USAGE is not set
1550# CONFIG_DEBUG_PAGEALLOC is not set 1596# CONFIG_DEBUG_PAGEALLOC is not set
1551# CONFIG_DEBUGGER is not set 1597# CONFIG_CODE_PATCHING_SELFTEST is not set
1552# CONFIG_KGDB_CONSOLE is not set 1598# CONFIG_FTR_FIXUP_SELFTEST is not set
1599# CONFIG_XMON is not set
1553# CONFIG_IRQSTACKS is not set 1600# CONFIG_IRQSTACKS is not set
1601CONFIG_VIRQ_DEBUG=y
1554# CONFIG_BDI_SWITCH is not set 1602# CONFIG_BDI_SWITCH is not set
1555# CONFIG_PPC_EARLY_DEBUG is not set 1603# CONFIG_PPC_EARLY_DEBUG is not set
1556 1604
@@ -1606,6 +1654,10 @@ CONFIG_CRYPTO_HMAC=y
1606# CONFIG_CRYPTO_MD4 is not set 1654# CONFIG_CRYPTO_MD4 is not set
1607CONFIG_CRYPTO_MD5=y 1655CONFIG_CRYPTO_MD5=y
1608# CONFIG_CRYPTO_MICHAEL_MIC is not set 1656# CONFIG_CRYPTO_MICHAEL_MIC is not set
1657# CONFIG_CRYPTO_RMD128 is not set
1658# CONFIG_CRYPTO_RMD160 is not set
1659# CONFIG_CRYPTO_RMD256 is not set
1660# CONFIG_CRYPTO_RMD320 is not set
1609CONFIG_CRYPTO_SHA1=m 1661CONFIG_CRYPTO_SHA1=m
1610# CONFIG_CRYPTO_SHA256 is not set 1662# CONFIG_CRYPTO_SHA256 is not set
1611# CONFIG_CRYPTO_SHA512 is not set 1663# CONFIG_CRYPTO_SHA512 is not set
@@ -1638,6 +1690,7 @@ CONFIG_CRYPTO_DES=y
1638# CONFIG_CRYPTO_LZO is not set 1690# CONFIG_CRYPTO_LZO is not set
1639CONFIG_CRYPTO_HW=y 1691CONFIG_CRYPTO_HW=y
1640# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1692# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1641# CONFIG_PPC_CLOCK is not set 1693# CONFIG_CRYPTO_DEV_TALITOS is not set
1694CONFIG_PPC_CLOCK=y
1642CONFIG_PPC_LIB_RHEAP=y 1695CONFIG_PPC_LIB_RHEAP=y
1643# CONFIG_VIRTUALIZATION is not set 1696# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8610_hpcd_defconfig b/arch/powerpc/configs/mpc8610_hpcd_defconfig
index cdf98ae3682b..1a9990731eb0 100644
--- a/arch/powerpc/configs/mpc8610_hpcd_defconfig
+++ b/arch/powerpc/configs/mpc8610_hpcd_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.26 3# Linux kernel version: 2.6.27-rc4
4# Tue Jul 15 08:31:01 2008 4# Thu Aug 21 00:52:10 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -91,7 +92,6 @@ CONFIG_INITRAMFS_SOURCE=""
91CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
92CONFIG_EMBEDDED=y 93CONFIG_EMBEDDED=y
93CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
94CONFIG_SYSCTL_SYSCALL_CHECK=y
95CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
96# CONFIG_KALLSYMS_ALL is not set 96# CONFIG_KALLSYMS_ALL is not set
97CONFIG_KALLSYMS_EXTRA_PASS=y 97CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,10 +118,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
123CONFIG_HAVE_DMA_ATTRS=y 125CONFIG_HAVE_ARCH_TRACEHOOK=y
126# CONFIG_HAVE_DMA_ATTRS is not set
127# CONFIG_USE_GENERIC_SMP_HELPERS is not set
128# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
@@ -138,6 +144,7 @@ CONFIG_BLOCK=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 144# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 145# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 146# CONFIG_BLK_DEV_BSG is not set
147# CONFIG_BLK_DEV_INTEGRITY is not set
141 148
142# 149#
143# IO Schedulers 150# IO Schedulers
@@ -159,9 +166,8 @@ CONFIG_CLASSIC_RCU=y
159CONFIG_PPC_MULTIPLATFORM=y 166CONFIG_PPC_MULTIPLATFORM=y
160CONFIG_CLASSIC32=y 167CONFIG_CLASSIC32=y
161CONFIG_PPC_CHRP=y 168CONFIG_PPC_CHRP=y
162# CONFIG_PPC_MPC512x is not set
163# CONFIG_PPC_MPC5121 is not set
164# CONFIG_MPC5121_ADS is not set 169# CONFIG_MPC5121_ADS is not set
170# CONFIG_MPC5121_GENERIC is not set
165# CONFIG_PPC_MPC52xx is not set 171# CONFIG_PPC_MPC52xx is not set
166CONFIG_PPC_PMAC=y 172CONFIG_PPC_PMAC=y
167# CONFIG_PPC_CELL is not set 173# CONFIG_PPC_CELL is not set
@@ -207,7 +213,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
207# CONFIG_HZ_300 is not set 213# CONFIG_HZ_300 is not set
208CONFIG_HZ_1000=y 214CONFIG_HZ_1000=y
209CONFIG_HZ=1000 215CONFIG_HZ=1000
210# CONFIG_SCHED_HRTICK is not set 216CONFIG_SCHED_HRTICK=y
211CONFIG_PREEMPT_NONE=y 217CONFIG_PREEMPT_NONE=y
212# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
213# CONFIG_PREEMPT is not set 219# CONFIG_PREEMPT is not set
@@ -230,6 +236,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 236# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
231CONFIG_PAGEFLAGS_EXTENDED=y 237CONFIG_PAGEFLAGS_EXTENDED=y
232CONFIG_SPLIT_PTLOCK_CPUS=4 238CONFIG_SPLIT_PTLOCK_CPUS=4
239CONFIG_MIGRATION=y
233# CONFIG_RESOURCES_64BIT is not set 240# CONFIG_RESOURCES_64BIT is not set
234CONFIG_ZONE_DMA_FLAG=1 241CONFIG_ZONE_DMA_FLAG=1
235CONFIG_BOUNCE=y 242CONFIG_BOUNCE=y
@@ -237,6 +244,7 @@ CONFIG_VIRT_TO_BUS=y
237CONFIG_FORCE_MAX_ZONEORDER=12 244CONFIG_FORCE_MAX_ZONEORDER=12
238CONFIG_PROC_DEVICETREE=y 245CONFIG_PROC_DEVICETREE=y
239# CONFIG_CMDLINE_BOOL is not set 246# CONFIG_CMDLINE_BOOL is not set
247CONFIG_EXTRA_TARGETS=""
240# CONFIG_PM is not set 248# CONFIG_PM is not set
241# CONFIG_SECCOMP is not set 249# CONFIG_SECCOMP is not set
242CONFIG_ISA_DMA_API=y 250CONFIG_ISA_DMA_API=y
@@ -278,10 +286,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
278CONFIG_KERNEL_START=0xc0000000 286CONFIG_KERNEL_START=0xc0000000
279CONFIG_PHYSICAL_START=0x00000000 287CONFIG_PHYSICAL_START=0x00000000
280CONFIG_TASK_SIZE=0xc0000000 288CONFIG_TASK_SIZE=0xc0000000
281
282#
283# Networking
284#
285CONFIG_NET=y 289CONFIG_NET=y
286 290
287# 291#
@@ -391,6 +395,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
391CONFIG_STANDALONE=y 395CONFIG_STANDALONE=y
392CONFIG_PREVENT_FIRMWARE_BUILD=y 396CONFIG_PREVENT_FIRMWARE_BUILD=y
393CONFIG_FW_LOADER=y 397CONFIG_FW_LOADER=y
398CONFIG_FIRMWARE_IN_KERNEL=y
399CONFIG_EXTRA_FIRMWARE=""
394# CONFIG_DEBUG_DRIVER is not set 400# CONFIG_DEBUG_DRIVER is not set
395# CONFIG_DEBUG_DEVRES is not set 401# CONFIG_DEBUG_DEVRES is not set
396# CONFIG_SYS_HYPERVISOR is not set 402# CONFIG_SYS_HYPERVISOR is not set
@@ -503,18 +509,17 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
503# CONFIG_BLK_DEV_XIP is not set 509# CONFIG_BLK_DEV_XIP is not set
504# CONFIG_CDROM_PKTCDVD is not set 510# CONFIG_CDROM_PKTCDVD is not set
505# CONFIG_ATA_OVER_ETH is not set 511# CONFIG_ATA_OVER_ETH is not set
512# CONFIG_BLK_DEV_HD is not set
506CONFIG_MISC_DEVICES=y 513CONFIG_MISC_DEVICES=y
507# CONFIG_PHANTOM is not set 514# CONFIG_PHANTOM is not set
508# CONFIG_EEPROM_93CX6 is not set 515# CONFIG_EEPROM_93CX6 is not set
509# CONFIG_SGI_IOC4 is not set 516# CONFIG_SGI_IOC4 is not set
510# CONFIG_TIFM_CORE is not set 517# CONFIG_TIFM_CORE is not set
511# CONFIG_ENCLOSURE_SERVICES is not set 518# CONFIG_ENCLOSURE_SERVICES is not set
519# CONFIG_HP_ILO is not set
512CONFIG_HAVE_IDE=y 520CONFIG_HAVE_IDE=y
513CONFIG_IDE=y 521CONFIG_IDE=y
514CONFIG_IDE_MAX_HWIFS=4
515# CONFIG_BLK_DEV_IDE is not set 522# CONFIG_BLK_DEV_IDE is not set
516# CONFIG_BLK_DEV_HD_ONLY is not set
517# CONFIG_BLK_DEV_HD is not set
518 523
519# 524#
520# SCSI device support 525# SCSI device support
@@ -593,6 +598,7 @@ CONFIG_SCSI_LOWLEVEL=y
593# CONFIG_SCSI_MESH is not set 598# CONFIG_SCSI_MESH is not set
594# CONFIG_SCSI_MAC53C94 is not set 599# CONFIG_SCSI_MAC53C94 is not set
595# CONFIG_SCSI_SRP is not set 600# CONFIG_SCSI_SRP is not set
601# CONFIG_SCSI_DH is not set
596CONFIG_ATA=y 602CONFIG_ATA=y
597# CONFIG_ATA_NONSTANDARD is not set 603# CONFIG_ATA_NONSTANDARD is not set
598CONFIG_SATA_PMP=y 604CONFIG_SATA_PMP=y
@@ -669,7 +675,6 @@ CONFIG_PATA_ALI=y
669# CONFIG_I2O is not set 675# CONFIG_I2O is not set
670# CONFIG_MACINTOSH_DRIVERS is not set 676# CONFIG_MACINTOSH_DRIVERS is not set
671CONFIG_NETDEVICES=y 677CONFIG_NETDEVICES=y
672# CONFIG_NETDEVICES_MULTIQUEUE is not set
673CONFIG_DUMMY=y 678CONFIG_DUMMY=y
674# CONFIG_BONDING is not set 679# CONFIG_BONDING is not set
675# CONFIG_MACVLAN is not set 680# CONFIG_MACVLAN is not set
@@ -756,12 +761,14 @@ CONFIG_SERIO_SERPORT=y
756# CONFIG_SERIO_PCIPS2 is not set 761# CONFIG_SERIO_PCIPS2 is not set
757CONFIG_SERIO_LIBPS2=y 762CONFIG_SERIO_LIBPS2=y
758# CONFIG_SERIO_RAW is not set 763# CONFIG_SERIO_RAW is not set
764# CONFIG_SERIO_XILINX_XPS_PS2 is not set
759# CONFIG_GAMEPORT is not set 765# CONFIG_GAMEPORT is not set
760 766
761# 767#
762# Character devices 768# Character devices
763# 769#
764CONFIG_VT=y 770CONFIG_VT=y
771CONFIG_CONSOLE_TRANSLATIONS=y
765CONFIG_VT_CONSOLE=y 772CONFIG_VT_CONSOLE=y
766CONFIG_HW_CONSOLE=y 773CONFIG_HW_CONSOLE=y
767# CONFIG_VT_HW_CONSOLE_BINDING is not set 774# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -807,44 +814,69 @@ CONFIG_DEVPORT=y
807CONFIG_I2C=y 814CONFIG_I2C=y
808CONFIG_I2C_BOARDINFO=y 815CONFIG_I2C_BOARDINFO=y
809# CONFIG_I2C_CHARDEV is not set 816# CONFIG_I2C_CHARDEV is not set
817CONFIG_I2C_HELPER_AUTO=y
810 818
811# 819#
812# I2C Hardware Bus support 820# I2C Hardware Bus support
813# 821#
822
823#
824# PC SMBus host controller drivers
825#
814# CONFIG_I2C_ALI1535 is not set 826# CONFIG_I2C_ALI1535 is not set
815# CONFIG_I2C_ALI1563 is not set 827# CONFIG_I2C_ALI1563 is not set
816# CONFIG_I2C_ALI15X3 is not set 828# CONFIG_I2C_ALI15X3 is not set
817# CONFIG_I2C_AMD756 is not set 829# CONFIG_I2C_AMD756 is not set
818# CONFIG_I2C_AMD8111 is not set 830# CONFIG_I2C_AMD8111 is not set
819# CONFIG_I2C_HYDRA is not set
820# CONFIG_I2C_I801 is not set 831# CONFIG_I2C_I801 is not set
821# CONFIG_I2C_I810 is not set 832# CONFIG_I2C_ISCH is not set
822# CONFIG_I2C_PIIX4 is not set 833# CONFIG_I2C_PIIX4 is not set
823CONFIG_I2C_POWERMAC=y
824CONFIG_I2C_MPC=y
825# CONFIG_I2C_NFORCE2 is not set 834# CONFIG_I2C_NFORCE2 is not set
826# CONFIG_I2C_OCORES is not set
827# CONFIG_I2C_PARPORT_LIGHT is not set
828# CONFIG_I2C_PROSAVAGE is not set
829# CONFIG_I2C_SAVAGE4 is not set
830# CONFIG_I2C_SIMTEC is not set
831# CONFIG_I2C_SIS5595 is not set 835# CONFIG_I2C_SIS5595 is not set
832# CONFIG_I2C_SIS630 is not set 836# CONFIG_I2C_SIS630 is not set
833# CONFIG_I2C_SIS96X is not set 837# CONFIG_I2C_SIS96X is not set
834# CONFIG_I2C_TAOS_EVM is not set
835# CONFIG_I2C_STUB is not set
836# CONFIG_I2C_VIA is not set 838# CONFIG_I2C_VIA is not set
837# CONFIG_I2C_VIAPRO is not set 839# CONFIG_I2C_VIAPRO is not set
840
841#
842# Mac SMBus host controller drivers
843#
844# CONFIG_I2C_HYDRA is not set
845CONFIG_I2C_POWERMAC=y
846
847#
848# I2C system bus drivers (mostly embedded / system-on-chip)
849#
850CONFIG_I2C_MPC=y
851# CONFIG_I2C_OCORES is not set
852# CONFIG_I2C_SIMTEC is not set
853
854#
855# External I2C/SMBus adapter drivers
856#
857# CONFIG_I2C_PARPORT_LIGHT is not set
858# CONFIG_I2C_TAOS_EVM is not set
859
860#
861# Graphics adapter I2C/DDC channel drivers
862#
838# CONFIG_I2C_VOODOO3 is not set 863# CONFIG_I2C_VOODOO3 is not set
864
865#
866# Other I2C/SMBus bus drivers
867#
839# CONFIG_I2C_PCA_PLATFORM is not set 868# CONFIG_I2C_PCA_PLATFORM is not set
869# CONFIG_I2C_STUB is not set
840 870
841# 871#
842# Miscellaneous I2C Chip support 872# Miscellaneous I2C Chip support
843# 873#
844# CONFIG_DS1682 is not set 874# CONFIG_DS1682 is not set
875# CONFIG_AT24 is not set
845# CONFIG_SENSORS_EEPROM is not set 876# CONFIG_SENSORS_EEPROM is not set
846# CONFIG_SENSORS_PCF8574 is not set 877# CONFIG_SENSORS_PCF8574 is not set
847# CONFIG_PCF8575 is not set 878# CONFIG_PCF8575 is not set
879# CONFIG_SENSORS_PCA9539 is not set
848# CONFIG_SENSORS_PCF8591 is not set 880# CONFIG_SENSORS_PCF8591 is not set
849# CONFIG_SENSORS_MAX6875 is not set 881# CONFIG_SENSORS_MAX6875 is not set
850# CONFIG_SENSORS_TSL2550 is not set 882# CONFIG_SENSORS_TSL2550 is not set
@@ -853,6 +885,8 @@ CONFIG_I2C_MPC=y
853# CONFIG_I2C_DEBUG_BUS is not set 885# CONFIG_I2C_DEBUG_BUS is not set
854# CONFIG_I2C_DEBUG_CHIP is not set 886# CONFIG_I2C_DEBUG_CHIP is not set
855# CONFIG_SPI is not set 887# CONFIG_SPI is not set
888CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
889# CONFIG_GPIOLIB is not set
856# CONFIG_W1 is not set 890# CONFIG_W1 is not set
857# CONFIG_POWER_SUPPLY is not set 891# CONFIG_POWER_SUPPLY is not set
858# CONFIG_HWMON is not set 892# CONFIG_HWMON is not set
@@ -869,8 +903,10 @@ CONFIG_SSB_POSSIBLE=y
869# 903#
870# Multifunction device drivers 904# Multifunction device drivers
871# 905#
906# CONFIG_MFD_CORE is not set
872# CONFIG_MFD_SM501 is not set 907# CONFIG_MFD_SM501 is not set
873# CONFIG_HTC_PASIC3 is not set 908# CONFIG_HTC_PASIC3 is not set
909# CONFIG_MFD_TMIO is not set
874 910
875# 911#
876# Multimedia devices 912# Multimedia devices
@@ -945,6 +981,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
945# CONFIG_FB_TRIDENT is not set 981# CONFIG_FB_TRIDENT is not set
946# CONFIG_FB_ARK is not set 982# CONFIG_FB_ARK is not set
947# CONFIG_FB_PM3 is not set 983# CONFIG_FB_PM3 is not set
984# CONFIG_FB_CARMINE is not set
948CONFIG_FB_FSL_DIU=y 985CONFIG_FB_FSL_DIU=y
949# CONFIG_FB_IBM_GXT4500 is not set 986# CONFIG_FB_IBM_GXT4500 is not set
950# CONFIG_FB_VIRTUAL is not set 987# CONFIG_FB_VIRTUAL is not set
@@ -963,15 +1000,7 @@ CONFIG_VGA_CONSOLE=y
963CONFIG_DUMMY_CONSOLE=y 1000CONFIG_DUMMY_CONSOLE=y
964# CONFIG_FRAMEBUFFER_CONSOLE is not set 1001# CONFIG_FRAMEBUFFER_CONSOLE is not set
965# CONFIG_LOGO is not set 1002# CONFIG_LOGO is not set
966
967#
968# Sound
969#
970CONFIG_SOUND=y 1003CONFIG_SOUND=y
971
972#
973# Advanced Linux Sound Architecture
974#
975CONFIG_SND=y 1004CONFIG_SND=y
976CONFIG_SND_TIMER=y 1005CONFIG_SND_TIMER=y
977CONFIG_SND_PCM=y 1006CONFIG_SND_PCM=y
@@ -985,18 +1014,12 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
985CONFIG_SND_VERBOSE_PROCFS=y 1014CONFIG_SND_VERBOSE_PROCFS=y
986# CONFIG_SND_VERBOSE_PRINTK is not set 1015# CONFIG_SND_VERBOSE_PRINTK is not set
987# CONFIG_SND_DEBUG is not set 1016# CONFIG_SND_DEBUG is not set
988 1017CONFIG_SND_DRIVERS=y
989#
990# Generic devices
991#
992# CONFIG_SND_DUMMY is not set 1018# CONFIG_SND_DUMMY is not set
993# CONFIG_SND_MTPAV is not set 1019# CONFIG_SND_MTPAV is not set
994# CONFIG_SND_SERIAL_U16550 is not set 1020# CONFIG_SND_SERIAL_U16550 is not set
995# CONFIG_SND_MPU401 is not set 1021# CONFIG_SND_MPU401 is not set
996 1022CONFIG_SND_PCI=y
997#
998# PCI devices
999#
1000# CONFIG_SND_AD1889 is not set 1023# CONFIG_SND_AD1889 is not set
1001# CONFIG_SND_ALS300 is not set 1024# CONFIG_SND_ALS300 is not set
1002# CONFIG_SND_ALS4000 is not set 1025# CONFIG_SND_ALS4000 is not set
@@ -1058,42 +1081,14 @@ CONFIG_SND_VERBOSE_PROCFS=y
1058# CONFIG_SND_VIRTUOSO is not set 1081# CONFIG_SND_VIRTUOSO is not set
1059# CONFIG_SND_VX222 is not set 1082# CONFIG_SND_VX222 is not set
1060# CONFIG_SND_YMFPCI is not set 1083# CONFIG_SND_YMFPCI is not set
1061 1084CONFIG_SND_PPC=y
1062#
1063# ALSA PowerMac devices
1064#
1065# CONFIG_SND_POWERMAC is not set 1085# CONFIG_SND_POWERMAC is not set
1066
1067#
1068# ALSA PowerPC devices
1069#
1070
1071#
1072# Apple Onboard Audio driver
1073#
1074# CONFIG_SND_AOA is not set 1086# CONFIG_SND_AOA is not set
1075# CONFIG_SND_AOA_SOUNDBUS is not set
1076
1077#
1078# System on Chip audio support
1079#
1080CONFIG_SND_SOC=y 1087CONFIG_SND_SOC=y
1081
1082#
1083# ALSA SoC audio for Freescale SOCs
1084#
1085CONFIG_SND_SOC_MPC8610=y 1088CONFIG_SND_SOC_MPC8610=y
1086CONFIG_SND_SOC_MPC8610_HPCD=y 1089CONFIG_SND_SOC_MPC8610_HPCD=y
1087
1088#
1089# SoC Audio for the Texas Instruments OMAP
1090#
1091CONFIG_SND_SOC_CS4270=y 1090CONFIG_SND_SOC_CS4270=y
1092CONFIG_SND_SOC_CS4270_VD33_ERRATA=y 1091CONFIG_SND_SOC_CS4270_VD33_ERRATA=y
1093
1094#
1095# Open Sound System
1096#
1097# CONFIG_SOUND_PRIME is not set 1092# CONFIG_SOUND_PRIME is not set
1098CONFIG_HID_SUPPORT=y 1093CONFIG_HID_SUPPORT=y
1099CONFIG_HID=y 1094CONFIG_HID=y
@@ -1108,6 +1103,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1108# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1103# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1109 1104
1110# 1105#
1106# Enable Host or Gadget support to see Inventra options
1107#
1108
1109#
1111# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1110# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1112# 1111#
1113# CONFIG_USB_GADGET is not set 1112# CONFIG_USB_GADGET is not set
@@ -1235,6 +1234,7 @@ CONFIG_TMPFS=y
1235# CONFIG_CRAMFS is not set 1234# CONFIG_CRAMFS is not set
1236# CONFIG_VXFS_FS is not set 1235# CONFIG_VXFS_FS is not set
1237# CONFIG_MINIX_FS is not set 1236# CONFIG_MINIX_FS is not set
1237# CONFIG_OMFS_FS is not set
1238# CONFIG_HPFS_FS is not set 1238# CONFIG_HPFS_FS is not set
1239# CONFIG_QNX4FS_FS is not set 1239# CONFIG_QNX4FS_FS is not set
1240# CONFIG_ROMFS_FS is not set 1240# CONFIG_ROMFS_FS is not set
@@ -1245,16 +1245,15 @@ CONFIG_NFS_FS=y
1245CONFIG_NFS_V3=y 1245CONFIG_NFS_V3=y
1246# CONFIG_NFS_V3_ACL is not set 1246# CONFIG_NFS_V3_ACL is not set
1247# CONFIG_NFS_V4 is not set 1247# CONFIG_NFS_V4 is not set
1248CONFIG_ROOT_NFS=y
1248CONFIG_NFSD=y 1249CONFIG_NFSD=y
1249# CONFIG_NFSD_V3 is not set 1250# CONFIG_NFSD_V3 is not set
1250# CONFIG_NFSD_V4 is not set 1251# CONFIG_NFSD_V4 is not set
1251CONFIG_ROOT_NFS=y
1252CONFIG_LOCKD=y 1252CONFIG_LOCKD=y
1253CONFIG_LOCKD_V4=y 1253CONFIG_LOCKD_V4=y
1254CONFIG_EXPORTFS=y 1254CONFIG_EXPORTFS=y
1255CONFIG_NFS_COMMON=y 1255CONFIG_NFS_COMMON=y
1256CONFIG_SUNRPC=y 1256CONFIG_SUNRPC=y
1257# CONFIG_SUNRPC_BIND34 is not set
1258# CONFIG_RPCSEC_GSS_KRB5 is not set 1257# CONFIG_RPCSEC_GSS_KRB5 is not set
1259# CONFIG_RPCSEC_GSS_SPKM3 is not set 1258# CONFIG_RPCSEC_GSS_SPKM3 is not set
1260# CONFIG_SMB_FS is not set 1259# CONFIG_SMB_FS is not set
@@ -1334,6 +1333,7 @@ CONFIG_BITREVERSE=y
1334# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1333# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1335# CONFIG_CRC_CCITT is not set 1334# CONFIG_CRC_CCITT is not set
1336# CONFIG_CRC16 is not set 1335# CONFIG_CRC16 is not set
1336CONFIG_CRC_T10DIF=y
1337# CONFIG_CRC_ITU_T is not set 1337# CONFIG_CRC_ITU_T is not set
1338CONFIG_CRC32=y 1338CONFIG_CRC32=y
1339# CONFIG_CRC7 is not set 1339# CONFIG_CRC7 is not set
@@ -1358,6 +1358,8 @@ CONFIG_FRAME_WARN=1024
1358CONFIG_DEBUG_KERNEL=y 1358CONFIG_DEBUG_KERNEL=y
1359CONFIG_DEBUG_SHIRQ=y 1359CONFIG_DEBUG_SHIRQ=y
1360CONFIG_DETECT_SOFTLOCKUP=y 1360CONFIG_DETECT_SOFTLOCKUP=y
1361# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1362CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1361CONFIG_SCHED_DEBUG=y 1363CONFIG_SCHED_DEBUG=y
1362# CONFIG_SCHEDSTATS is not set 1364# CONFIG_SCHEDSTATS is not set
1363# CONFIG_TIMER_STATS is not set 1365# CONFIG_TIMER_STATS is not set
@@ -1376,19 +1378,29 @@ CONFIG_DEBUG_BUGVERBOSE=y
1376CONFIG_DEBUG_INFO=y 1378CONFIG_DEBUG_INFO=y
1377# CONFIG_DEBUG_VM is not set 1379# CONFIG_DEBUG_VM is not set
1378# CONFIG_DEBUG_WRITECOUNT is not set 1380# CONFIG_DEBUG_WRITECOUNT is not set
1381# CONFIG_DEBUG_MEMORY_INIT is not set
1379# CONFIG_DEBUG_LIST is not set 1382# CONFIG_DEBUG_LIST is not set
1380# CONFIG_DEBUG_SG is not set 1383# CONFIG_DEBUG_SG is not set
1381# CONFIG_BOOT_PRINTK_DELAY is not set 1384# CONFIG_BOOT_PRINTK_DELAY is not set
1382# CONFIG_RCU_TORTURE_TEST is not set 1385# CONFIG_RCU_TORTURE_TEST is not set
1383# CONFIG_BACKTRACE_SELF_TEST is not set 1386# CONFIG_BACKTRACE_SELF_TEST is not set
1384# CONFIG_FAULT_INJECTION is not set 1387# CONFIG_FAULT_INJECTION is not set
1388# CONFIG_LATENCYTOP is not set
1389CONFIG_SYSCTL_SYSCALL_CHECK=y
1390CONFIG_HAVE_FTRACE=y
1391CONFIG_HAVE_DYNAMIC_FTRACE=y
1392# CONFIG_FTRACE is not set
1393# CONFIG_SCHED_TRACER is not set
1394# CONFIG_CONTEXT_SWITCH_TRACER is not set
1385# CONFIG_SAMPLES is not set 1395# CONFIG_SAMPLES is not set
1396CONFIG_HAVE_ARCH_KGDB=y
1397# CONFIG_KGDB is not set
1386# CONFIG_DEBUG_STACKOVERFLOW is not set 1398# CONFIG_DEBUG_STACKOVERFLOW is not set
1387# CONFIG_DEBUG_STACK_USAGE is not set 1399# CONFIG_DEBUG_STACK_USAGE is not set
1388# CONFIG_DEBUG_PAGEALLOC is not set 1400# CONFIG_DEBUG_PAGEALLOC is not set
1389# CONFIG_DEBUGGER is not set
1390# CONFIG_CODE_PATCHING_SELFTEST is not set 1401# CONFIG_CODE_PATCHING_SELFTEST is not set
1391# CONFIG_FTR_FIXUP_SELFTEST is not set 1402# CONFIG_FTR_FIXUP_SELFTEST is not set
1403# CONFIG_XMON is not set
1392# CONFIG_IRQSTACKS is not set 1404# CONFIG_IRQSTACKS is not set
1393# CONFIG_BDI_SWITCH is not set 1405# CONFIG_BDI_SWITCH is not set
1394# CONFIG_BOOTX_TEXT is not set 1406# CONFIG_BOOTX_TEXT is not set
@@ -1443,6 +1455,10 @@ CONFIG_CRYPTO=y
1443# CONFIG_CRYPTO_MD4 is not set 1455# CONFIG_CRYPTO_MD4 is not set
1444# CONFIG_CRYPTO_MD5 is not set 1456# CONFIG_CRYPTO_MD5 is not set
1445# CONFIG_CRYPTO_MICHAEL_MIC is not set 1457# CONFIG_CRYPTO_MICHAEL_MIC is not set
1458# CONFIG_CRYPTO_RMD128 is not set
1459# CONFIG_CRYPTO_RMD160 is not set
1460# CONFIG_CRYPTO_RMD256 is not set
1461# CONFIG_CRYPTO_RMD320 is not set
1446# CONFIG_CRYPTO_SHA1 is not set 1462# CONFIG_CRYPTO_SHA1 is not set
1447# CONFIG_CRYPTO_SHA256 is not set 1463# CONFIG_CRYPTO_SHA256 is not set
1448# CONFIG_CRYPTO_SHA512 is not set 1464# CONFIG_CRYPTO_SHA512 is not set
@@ -1475,6 +1491,7 @@ CONFIG_CRYPTO=y
1475# CONFIG_CRYPTO_LZO is not set 1491# CONFIG_CRYPTO_LZO is not set
1476CONFIG_CRYPTO_HW=y 1492CONFIG_CRYPTO_HW=y
1477# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1493# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1494# CONFIG_CRYPTO_DEV_TALITOS is not set
1478# CONFIG_PPC_CLOCK is not set 1495# CONFIG_PPC_CLOCK is not set
1479CONFIG_PPC_LIB_RHEAP=y 1496CONFIG_PPC_LIB_RHEAP=y
1480# CONFIG_VIRTUALIZATION is not set 1497# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc8641_hpcn_defconfig b/arch/powerpc/configs/mpc8641_hpcn_defconfig
index 867b8c0215f3..ea09be31b6ea 100644
--- a/arch/powerpc/configs/mpc8641_hpcn_defconfig
+++ b/arch/powerpc/configs/mpc8641_hpcn_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:15 2008 4# Thu Aug 21 00:52:11 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -33,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_ARCH_HAS_ILOG2_U32=y 39CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -92,7 +93,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 97CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 98CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -100,6 +100,7 @@ CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 100CONFIG_PRINTK=y
101CONFIG_BUG=y 101CONFIG_BUG=y
102CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 104CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 105CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 106CONFIG_FUTEX=y
@@ -118,10 +119,16 @@ CONFIG_SLUB=y
118# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
119CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 121# CONFIG_KPROBES is not set
122CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
123CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 124CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 125CONFIG_HAVE_KRETPROBES=y
126CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 127# CONFIG_HAVE_DMA_ATTRS is not set
128CONFIG_USE_GENERIC_SMP_HELPERS=y
129# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 130CONFIG_PROC_PAGE_MONITOR=y
131# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 132CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 133CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 134# CONFIG_TINY_SHMEM is not set
@@ -139,6 +146,7 @@ CONFIG_LBD=y
139# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
140# CONFIG_LSF is not set 147# CONFIG_LSF is not set
141# CONFIG_BLK_DEV_BSG is not set 148# CONFIG_BLK_DEV_BSG is not set
149# CONFIG_BLK_DEV_INTEGRITY is not set
142 150
143# 151#
144# IO Schedulers 152# IO Schedulers
@@ -157,30 +165,40 @@ CONFIG_CLASSIC_RCU=y
157# 165#
158# Platform support 166# Platform support
159# 167#
160# CONFIG_PPC_MULTIPLATFORM is not set 168CONFIG_PPC_MULTIPLATFORM=y
161# CONFIG_PPC_82xx is not set 169CONFIG_CLASSIC32=y
162# CONFIG_PPC_83xx is not set 170CONFIG_PPC_CHRP=y
163CONFIG_PPC_86xx=y 171# CONFIG_MPC5121_ADS is not set
164# CONFIG_PPC_MPC512x is not set 172# CONFIG_MPC5121_GENERIC is not set
165# CONFIG_PPC_MPC5121 is not set 173# CONFIG_PPC_MPC52xx is not set
174CONFIG_PPC_PMAC=y
166# CONFIG_PPC_CELL is not set 175# CONFIG_PPC_CELL is not set
167# CONFIG_PPC_CELL_NATIVE is not set 176# CONFIG_PPC_CELL_NATIVE is not set
177# CONFIG_PPC_82xx is not set
168# CONFIG_PQ2ADS is not set 178# CONFIG_PQ2ADS is not set
179# CONFIG_PPC_83xx is not set
180CONFIG_PPC_86xx=y
169CONFIG_MPC8641_HPCN=y 181CONFIG_MPC8641_HPCN=y
170# CONFIG_SBC8641D is not set 182# CONFIG_SBC8641D is not set
171# CONFIG_MPC8610_HPCD is not set 183# CONFIG_MPC8610_HPCD is not set
172CONFIG_MPC8641=y 184CONFIG_MPC8641=y
185CONFIG_PPC_NATIVE=y
186# CONFIG_UDBG_RTAS_CONSOLE is not set
173# CONFIG_IPIC is not set 187# CONFIG_IPIC is not set
174CONFIG_MPIC=y 188CONFIG_MPIC=y
175# CONFIG_MPIC_WEIRD is not set 189# CONFIG_MPIC_WEIRD is not set
176CONFIG_PPC_I8259=y 190CONFIG_PPC_I8259=y
177# CONFIG_PPC_RTAS is not set 191CONFIG_PPC_RTAS=y
192# CONFIG_RTAS_ERROR_LOGGING is not set
193CONFIG_RTAS_PROC=y
178# CONFIG_MMIO_NVRAM is not set 194# CONFIG_MMIO_NVRAM is not set
179# CONFIG_PPC_MPC106 is not set 195CONFIG_PPC_MPC106=y
180# CONFIG_PPC_970_NAP is not set 196# CONFIG_PPC_970_NAP is not set
181# CONFIG_PPC_INDIRECT_IO is not set 197# CONFIG_PPC_INDIRECT_IO is not set
182# CONFIG_GENERIC_IOMAP is not set 198# CONFIG_GENERIC_IOMAP is not set
183# CONFIG_CPU_FREQ is not set 199# CONFIG_CPU_FREQ is not set
200# CONFIG_PPC601_SYNC_FIX is not set
201# CONFIG_TAU is not set
184CONFIG_FSL_ULI1575=y 202CONFIG_FSL_ULI1575=y
185 203
186# 204#
@@ -196,16 +214,18 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
196# CONFIG_HZ_300 is not set 214# CONFIG_HZ_300 is not set
197CONFIG_HZ_1000=y 215CONFIG_HZ_1000=y
198CONFIG_HZ=1000 216CONFIG_HZ=1000
199# CONFIG_SCHED_HRTICK is not set 217CONFIG_SCHED_HRTICK=y
200CONFIG_PREEMPT_NONE=y 218CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 219# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 220# CONFIG_PREEMPT is not set
203CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
204CONFIG_BINFMT_MISC=m 222CONFIG_BINFMT_MISC=m
205# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
224# CONFIG_HOTPLUG_CPU is not set
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set
209# CONFIG_IRQ_ALL_CPUS is not set 229# CONFIG_IRQ_ALL_CPUS is not set
210CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -219,6 +239,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 239# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 243# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
@@ -226,6 +247,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
227CONFIG_PROC_DEVICETREE=y 248CONFIG_PROC_DEVICETREE=y
228# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
250CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 251# CONFIG_PM is not set
230CONFIG_SECCOMP=y 252CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 253CONFIG_ISA_DMA_API=y
@@ -233,11 +255,13 @@ CONFIG_ISA_DMA_API=y
233# 255#
234# Bus options 256# Bus options
235# 257#
258# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 259CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 260CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 261CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 262CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 263CONFIG_FSL_PCI=y
264CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 265CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 266CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 267CONFIG_PCI_SYSCALL=y
@@ -264,10 +288,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
264CONFIG_KERNEL_START=0xc0000000 288CONFIG_KERNEL_START=0xc0000000
265CONFIG_PHYSICAL_START=0x00000000 289CONFIG_PHYSICAL_START=0x00000000
266CONFIG_TASK_SIZE=0xc0000000 290CONFIG_TASK_SIZE=0xc0000000
267
268#
269# Networking
270#
271CONFIG_NET=y 291CONFIG_NET=y
272 292
273# 293#
@@ -393,6 +413,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
393CONFIG_STANDALONE=y 413CONFIG_STANDALONE=y
394CONFIG_PREVENT_FIRMWARE_BUILD=y 414CONFIG_PREVENT_FIRMWARE_BUILD=y
395CONFIG_FW_LOADER=y 415CONFIG_FW_LOADER=y
416CONFIG_FIRMWARE_IN_KERNEL=y
417CONFIG_EXTRA_FIRMWARE=""
396# CONFIG_DEBUG_DRIVER is not set 418# CONFIG_DEBUG_DRIVER is not set
397# CONFIG_DEBUG_DEVRES is not set 419# CONFIG_DEBUG_DEVRES is not set
398# CONFIG_SYS_HYPERVISOR is not set 420# CONFIG_SYS_HYPERVISOR is not set
@@ -403,6 +425,7 @@ CONFIG_OF_I2C=y
403# CONFIG_PARPORT is not set 425# CONFIG_PARPORT is not set
404CONFIG_BLK_DEV=y 426CONFIG_BLK_DEV=y
405# CONFIG_BLK_DEV_FD is not set 427# CONFIG_BLK_DEV_FD is not set
428# CONFIG_MAC_FLOPPY is not set
406# CONFIG_BLK_CPQ_DA is not set 429# CONFIG_BLK_CPQ_DA is not set
407# CONFIG_BLK_CPQ_CISS_DA is not set 430# CONFIG_BLK_CPQ_CISS_DA is not set
408# CONFIG_BLK_DEV_DAC960 is not set 431# CONFIG_BLK_DEV_DAC960 is not set
@@ -419,12 +442,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
419# CONFIG_BLK_DEV_XIP is not set 442# CONFIG_BLK_DEV_XIP is not set
420# CONFIG_CDROM_PKTCDVD is not set 443# CONFIG_CDROM_PKTCDVD is not set
421# CONFIG_ATA_OVER_ETH is not set 444# CONFIG_ATA_OVER_ETH is not set
445# CONFIG_BLK_DEV_HD is not set
422CONFIG_MISC_DEVICES=y 446CONFIG_MISC_DEVICES=y
423# CONFIG_PHANTOM is not set 447# CONFIG_PHANTOM is not set
424# CONFIG_EEPROM_93CX6 is not set 448# CONFIG_EEPROM_93CX6 is not set
425# CONFIG_SGI_IOC4 is not set 449# CONFIG_SGI_IOC4 is not set
426# CONFIG_TIFM_CORE is not set 450# CONFIG_TIFM_CORE is not set
427# CONFIG_ENCLOSURE_SERVICES is not set 451# CONFIG_ENCLOSURE_SERVICES is not set
452# CONFIG_HP_ILO is not set
428CONFIG_HAVE_IDE=y 453CONFIG_HAVE_IDE=y
429# CONFIG_IDE is not set 454# CONFIG_IDE is not set
430 455
@@ -503,7 +528,10 @@ CONFIG_SCSI_LOWLEVEL=y
503# CONFIG_SCSI_DC390T is not set 528# CONFIG_SCSI_DC390T is not set
504# CONFIG_SCSI_NSP32 is not set 529# CONFIG_SCSI_NSP32 is not set
505# CONFIG_SCSI_DEBUG is not set 530# CONFIG_SCSI_DEBUG is not set
531# CONFIG_SCSI_MESH is not set
532# CONFIG_SCSI_MAC53C94 is not set
506# CONFIG_SCSI_SRP is not set 533# CONFIG_SCSI_SRP is not set
534# CONFIG_SCSI_DH is not set
507CONFIG_ATA=y 535CONFIG_ATA=y
508# CONFIG_ATA_NONSTANDARD is not set 536# CONFIG_ATA_NONSTANDARD is not set
509CONFIG_SATA_PMP=y 537CONFIG_SATA_PMP=y
@@ -571,12 +599,15 @@ CONFIG_PATA_ALI=y
571# 599#
572# IEEE 1394 (FireWire) support 600# IEEE 1394 (FireWire) support
573# 601#
602
603#
604# Enable only one of the two stacks, unless you know what you are doing
605#
574# CONFIG_FIREWIRE is not set 606# CONFIG_FIREWIRE is not set
575# CONFIG_IEEE1394 is not set 607# CONFIG_IEEE1394 is not set
576# CONFIG_I2O is not set 608# CONFIG_I2O is not set
577# CONFIG_MACINTOSH_DRIVERS is not set 609# CONFIG_MACINTOSH_DRIVERS is not set
578CONFIG_NETDEVICES=y 610CONFIG_NETDEVICES=y
579# CONFIG_NETDEVICES_MULTIQUEUE is not set
580CONFIG_DUMMY=y 611CONFIG_DUMMY=y
581# CONFIG_BONDING is not set 612# CONFIG_BONDING is not set
582# CONFIG_MACVLAN is not set 613# CONFIG_MACVLAN is not set
@@ -603,6 +634,8 @@ CONFIG_VITESSE_PHY=y
603# CONFIG_MDIO_BITBANG is not set 634# CONFIG_MDIO_BITBANG is not set
604CONFIG_NET_ETHERNET=y 635CONFIG_NET_ETHERNET=y
605CONFIG_MII=y 636CONFIG_MII=y
637# CONFIG_MACE is not set
638# CONFIG_BMAC is not set
606# CONFIG_HAPPYMEAL is not set 639# CONFIG_HAPPYMEAL is not set
607# CONFIG_SUNGEM is not set 640# CONFIG_SUNGEM is not set
608# CONFIG_CASSINI is not set 641# CONFIG_CASSINI is not set
@@ -620,7 +653,6 @@ CONFIG_NETDEV_1000=y
620# CONFIG_DL2K is not set 653# CONFIG_DL2K is not set
621# CONFIG_E1000 is not set 654# CONFIG_E1000 is not set
622# CONFIG_E1000E is not set 655# CONFIG_E1000E is not set
623# CONFIG_E1000E_ENABLED is not set
624# CONFIG_IP1000 is not set 656# CONFIG_IP1000 is not set
625# CONFIG_IGB is not set 657# CONFIG_IGB is not set
626# CONFIG_NS83820 is not set 658# CONFIG_NS83820 is not set
@@ -634,9 +666,10 @@ CONFIG_NETDEV_1000=y
634# CONFIG_TIGON3 is not set 666# CONFIG_TIGON3 is not set
635# CONFIG_BNX2 is not set 667# CONFIG_BNX2 is not set
636CONFIG_GIANFAR=y 668CONFIG_GIANFAR=y
637CONFIG_GFAR_NAPI=y 669# CONFIG_MV643XX_ETH is not set
638# CONFIG_QLA3XXX is not set 670# CONFIG_QLA3XXX is not set
639# CONFIG_ATL1 is not set 671# CONFIG_ATL1 is not set
672# CONFIG_ATL1E is not set
640CONFIG_NETDEV_10000=y 673CONFIG_NETDEV_10000=y
641# CONFIG_CHELSIO_T1 is not set 674# CONFIG_CHELSIO_T1 is not set
642# CONFIG_CHELSIO_T3 is not set 675# CONFIG_CHELSIO_T3 is not set
@@ -713,12 +746,14 @@ CONFIG_SERIO_SERPORT=y
713# CONFIG_SERIO_PCIPS2 is not set 746# CONFIG_SERIO_PCIPS2 is not set
714CONFIG_SERIO_LIBPS2=y 747CONFIG_SERIO_LIBPS2=y
715# CONFIG_SERIO_RAW is not set 748# CONFIG_SERIO_RAW is not set
749# CONFIG_SERIO_XILINX_XPS_PS2 is not set
716# CONFIG_GAMEPORT is not set 750# CONFIG_GAMEPORT is not set
717 751
718# 752#
719# Character devices 753# Character devices
720# 754#
721CONFIG_VT=y 755CONFIG_VT=y
756CONFIG_CONSOLE_TRANSLATIONS=y
722CONFIG_VT_CONSOLE=y 757CONFIG_VT_CONSOLE=y
723CONFIG_HW_CONSOLE=y 758CONFIG_HW_CONSOLE=y
724# CONFIG_VT_HW_CONSOLE_BINDING is not set 759# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -746,11 +781,14 @@ CONFIG_SERIAL_8250_RSA=y
746# CONFIG_SERIAL_UARTLITE is not set 781# CONFIG_SERIAL_UARTLITE is not set
747CONFIG_SERIAL_CORE=y 782CONFIG_SERIAL_CORE=y
748CONFIG_SERIAL_CORE_CONSOLE=y 783CONFIG_SERIAL_CORE_CONSOLE=y
784# CONFIG_SERIAL_PMACZILOG is not set
749# CONFIG_SERIAL_JSM is not set 785# CONFIG_SERIAL_JSM is not set
750# CONFIG_SERIAL_OF_PLATFORM is not set 786# CONFIG_SERIAL_OF_PLATFORM is not set
751CONFIG_UNIX98_PTYS=y 787CONFIG_UNIX98_PTYS=y
752CONFIG_LEGACY_PTYS=y 788CONFIG_LEGACY_PTYS=y
753CONFIG_LEGACY_PTY_COUNT=256 789CONFIG_LEGACY_PTY_COUNT=256
790# CONFIG_BRIQ_PANEL is not set
791# CONFIG_HVC_RTAS is not set
754# CONFIG_IPMI_HANDLER is not set 792# CONFIG_IPMI_HANDLER is not set
755# CONFIG_HW_RANDOM is not set 793# CONFIG_HW_RANDOM is not set
756CONFIG_NVRAM=y 794CONFIG_NVRAM=y
@@ -762,43 +800,70 @@ CONFIG_DEVPORT=y
762CONFIG_I2C=y 800CONFIG_I2C=y
763CONFIG_I2C_BOARDINFO=y 801CONFIG_I2C_BOARDINFO=y
764# CONFIG_I2C_CHARDEV is not set 802# CONFIG_I2C_CHARDEV is not set
803CONFIG_I2C_HELPER_AUTO=y
765 804
766# 805#
767# I2C Hardware Bus support 806# I2C Hardware Bus support
768# 807#
808
809#
810# PC SMBus host controller drivers
811#
769# CONFIG_I2C_ALI1535 is not set 812# CONFIG_I2C_ALI1535 is not set
770# CONFIG_I2C_ALI1563 is not set 813# CONFIG_I2C_ALI1563 is not set
771# CONFIG_I2C_ALI15X3 is not set 814# CONFIG_I2C_ALI15X3 is not set
772# CONFIG_I2C_AMD756 is not set 815# CONFIG_I2C_AMD756 is not set
773# CONFIG_I2C_AMD8111 is not set 816# CONFIG_I2C_AMD8111 is not set
774# CONFIG_I2C_I801 is not set 817# CONFIG_I2C_I801 is not set
775# CONFIG_I2C_I810 is not set 818# CONFIG_I2C_ISCH is not set
776# CONFIG_I2C_PIIX4 is not set 819# CONFIG_I2C_PIIX4 is not set
777CONFIG_I2C_MPC=y
778# CONFIG_I2C_NFORCE2 is not set 820# CONFIG_I2C_NFORCE2 is not set
779# CONFIG_I2C_OCORES is not set
780# CONFIG_I2C_PARPORT_LIGHT is not set
781# CONFIG_I2C_PROSAVAGE is not set
782# CONFIG_I2C_SAVAGE4 is not set
783# CONFIG_I2C_SIMTEC is not set
784# CONFIG_I2C_SIS5595 is not set 821# CONFIG_I2C_SIS5595 is not set
785# CONFIG_I2C_SIS630 is not set 822# CONFIG_I2C_SIS630 is not set
786# CONFIG_I2C_SIS96X is not set 823# CONFIG_I2C_SIS96X is not set
787# CONFIG_I2C_TAOS_EVM is not set
788# CONFIG_I2C_STUB is not set
789# CONFIG_I2C_TINY_USB is not set
790# CONFIG_I2C_VIA is not set 824# CONFIG_I2C_VIA is not set
791# CONFIG_I2C_VIAPRO is not set 825# CONFIG_I2C_VIAPRO is not set
826
827#
828# Mac SMBus host controller drivers
829#
830# CONFIG_I2C_HYDRA is not set
831CONFIG_I2C_POWERMAC=y
832
833#
834# I2C system bus drivers (mostly embedded / system-on-chip)
835#
836CONFIG_I2C_MPC=y
837# CONFIG_I2C_OCORES is not set
838# CONFIG_I2C_SIMTEC is not set
839
840#
841# External I2C/SMBus adapter drivers
842#
843# CONFIG_I2C_PARPORT_LIGHT is not set
844# CONFIG_I2C_TAOS_EVM is not set
845# CONFIG_I2C_TINY_USB is not set
846
847#
848# Graphics adapter I2C/DDC channel drivers
849#
792# CONFIG_I2C_VOODOO3 is not set 850# CONFIG_I2C_VOODOO3 is not set
851
852#
853# Other I2C/SMBus bus drivers
854#
793# CONFIG_I2C_PCA_PLATFORM is not set 855# CONFIG_I2C_PCA_PLATFORM is not set
856# CONFIG_I2C_STUB is not set
794 857
795# 858#
796# Miscellaneous I2C Chip support 859# Miscellaneous I2C Chip support
797# 860#
798# CONFIG_DS1682 is not set 861# CONFIG_DS1682 is not set
862# CONFIG_AT24 is not set
799CONFIG_SENSORS_EEPROM=y 863CONFIG_SENSORS_EEPROM=y
800# CONFIG_SENSORS_PCF8574 is not set 864# CONFIG_SENSORS_PCF8574 is not set
801# CONFIG_PCF8575 is not set 865# CONFIG_PCF8575 is not set
866# CONFIG_SENSORS_PCA9539 is not set
802# CONFIG_SENSORS_PCF8591 is not set 867# CONFIG_SENSORS_PCF8591 is not set
803# CONFIG_SENSORS_MAX6875 is not set 868# CONFIG_SENSORS_MAX6875 is not set
804# CONFIG_SENSORS_TSL2550 is not set 869# CONFIG_SENSORS_TSL2550 is not set
@@ -807,10 +872,13 @@ CONFIG_SENSORS_EEPROM=y
807# CONFIG_I2C_DEBUG_BUS is not set 872# CONFIG_I2C_DEBUG_BUS is not set
808# CONFIG_I2C_DEBUG_CHIP is not set 873# CONFIG_I2C_DEBUG_CHIP is not set
809# CONFIG_SPI is not set 874# CONFIG_SPI is not set
875CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
876# CONFIG_GPIOLIB is not set
810# CONFIG_W1 is not set 877# CONFIG_W1 is not set
811# CONFIG_POWER_SUPPLY is not set 878# CONFIG_POWER_SUPPLY is not set
812# CONFIG_HWMON is not set 879# CONFIG_HWMON is not set
813# CONFIG_THERMAL is not set 880# CONFIG_THERMAL is not set
881# CONFIG_THERMAL_HWMON is not set
814# CONFIG_WATCHDOG is not set 882# CONFIG_WATCHDOG is not set
815 883
816# 884#
@@ -822,8 +890,10 @@ CONFIG_SSB_POSSIBLE=y
822# 890#
823# Multifunction device drivers 891# Multifunction device drivers
824# 892#
893# CONFIG_MFD_CORE is not set
825# CONFIG_MFD_SM501 is not set 894# CONFIG_MFD_SM501 is not set
826# CONFIG_HTC_PASIC3 is not set 895# CONFIG_HTC_PASIC3 is not set
896# CONFIG_MFD_TMIO is not set
827 897
828# 898#
829# Multimedia devices 899# Multimedia devices
@@ -865,6 +935,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
865# CONFIG_DVB_TTUSB_BUDGET is not set 935# CONFIG_DVB_TTUSB_BUDGET is not set
866# CONFIG_DVB_TTUSB_DEC is not set 936# CONFIG_DVB_TTUSB_DEC is not set
867# CONFIG_DVB_CINERGYT2 is not set 937# CONFIG_DVB_CINERGYT2 is not set
938# CONFIG_DVB_SIANO_SMS1XXX is not set
868 939
869# 940#
870# Supported FlexCopII (B2C2) Adapters 941# Supported FlexCopII (B2C2) Adapters
@@ -911,6 +982,7 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
911# CONFIG_DVB_SP887X is not set 982# CONFIG_DVB_SP887X is not set
912# CONFIG_DVB_CX22700 is not set 983# CONFIG_DVB_CX22700 is not set
913# CONFIG_DVB_CX22702 is not set 984# CONFIG_DVB_CX22702 is not set
985# CONFIG_DVB_DRX397XD is not set
914# CONFIG_DVB_L64781 is not set 986# CONFIG_DVB_L64781 is not set
915# CONFIG_DVB_TDA1004X is not set 987# CONFIG_DVB_TDA1004X is not set
916# CONFIG_DVB_NXT6000 is not set 988# CONFIG_DVB_NXT6000 is not set
@@ -978,15 +1050,7 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
978CONFIG_VGA_CONSOLE=y 1050CONFIG_VGA_CONSOLE=y
979# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1051# CONFIG_VGACON_SOFT_SCROLLBACK is not set
980CONFIG_DUMMY_CONSOLE=y 1052CONFIG_DUMMY_CONSOLE=y
981
982#
983# Sound
984#
985CONFIG_SOUND=y 1053CONFIG_SOUND=y
986
987#
988# Advanced Linux Sound Architecture
989#
990CONFIG_SND=y 1054CONFIG_SND=y
991CONFIG_SND_TIMER=y 1055CONFIG_SND_TIMER=y
992CONFIG_SND_PCM=y 1056CONFIG_SND_PCM=y
@@ -1000,19 +1064,15 @@ CONFIG_SND_PCM_OSS_PLUGINS=y
1000CONFIG_SND_VERBOSE_PROCFS=y 1064CONFIG_SND_VERBOSE_PROCFS=y
1001# CONFIG_SND_VERBOSE_PRINTK is not set 1065# CONFIG_SND_VERBOSE_PRINTK is not set
1002# CONFIG_SND_DEBUG is not set 1066# CONFIG_SND_DEBUG is not set
1003 1067CONFIG_SND_VMASTER=y
1004#
1005# Generic devices
1006#
1007CONFIG_SND_AC97_CODEC=y 1068CONFIG_SND_AC97_CODEC=y
1069CONFIG_SND_DRIVERS=y
1008# CONFIG_SND_DUMMY is not set 1070# CONFIG_SND_DUMMY is not set
1009# CONFIG_SND_MTPAV is not set 1071# CONFIG_SND_MTPAV is not set
1010# CONFIG_SND_SERIAL_U16550 is not set 1072# CONFIG_SND_SERIAL_U16550 is not set
1011# CONFIG_SND_MPU401 is not set 1073# CONFIG_SND_MPU401 is not set
1012 1074# CONFIG_SND_AC97_POWER_SAVE is not set
1013# 1075CONFIG_SND_PCI=y
1014# PCI devices
1015#
1016# CONFIG_SND_AD1889 is not set 1076# CONFIG_SND_AD1889 is not set
1017# CONFIG_SND_ALS300 is not set 1077# CONFIG_SND_ALS300 is not set
1018# CONFIG_SND_ALS4000 is not set 1078# CONFIG_SND_ALS4000 is not set
@@ -1074,39 +1134,14 @@ CONFIG_SND_INTEL8X0=y
1074# CONFIG_SND_VIRTUOSO is not set 1134# CONFIG_SND_VIRTUOSO is not set
1075# CONFIG_SND_VX222 is not set 1135# CONFIG_SND_VX222 is not set
1076# CONFIG_SND_YMFPCI is not set 1136# CONFIG_SND_YMFPCI is not set
1077# CONFIG_SND_AC97_POWER_SAVE is not set 1137CONFIG_SND_PPC=y
1078 1138# CONFIG_SND_POWERMAC is not set
1079# 1139# CONFIG_SND_AOA is not set
1080# ALSA PowerMac devices 1140CONFIG_SND_USB=y
1081#
1082
1083#
1084# ALSA PowerPC devices
1085#
1086
1087#
1088# USB devices
1089#
1090# CONFIG_SND_USB_AUDIO is not set 1141# CONFIG_SND_USB_AUDIO is not set
1091# CONFIG_SND_USB_USX2Y is not set 1142# CONFIG_SND_USB_USX2Y is not set
1092# CONFIG_SND_USB_CAIAQ is not set 1143# CONFIG_SND_USB_CAIAQ is not set
1093
1094#
1095# System on Chip audio support
1096#
1097# CONFIG_SND_SOC is not set 1144# CONFIG_SND_SOC is not set
1098
1099#
1100# ALSA SoC audio for Freescale SOCs
1101#
1102
1103#
1104# SoC Audio for the Texas Instruments OMAP
1105#
1106
1107#
1108# Open Sound System
1109#
1110# CONFIG_SOUND_PRIME is not set 1145# CONFIG_SOUND_PRIME is not set
1111CONFIG_AC97_BUS=y 1146CONFIG_AC97_BUS=y
1112CONFIG_HID_SUPPORT=y 1147CONFIG_HID_SUPPORT=y
@@ -1138,6 +1173,7 @@ CONFIG_USB_DEVICE_CLASS=y
1138# CONFIG_USB_OTG is not set 1173# CONFIG_USB_OTG is not set
1139# CONFIG_USB_OTG_WHITELIST is not set 1174# CONFIG_USB_OTG_WHITELIST is not set
1140# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1175# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1176CONFIG_USB_MON=y
1141 1177
1142# 1178#
1143# USB Host Controller Drivers 1179# USB Host Controller Drivers
@@ -1189,6 +1225,7 @@ CONFIG_USB_STORAGE=y
1189# CONFIG_USB_STORAGE_ALAUDA is not set 1225# CONFIG_USB_STORAGE_ALAUDA is not set
1190# CONFIG_USB_STORAGE_ONETOUCH is not set 1226# CONFIG_USB_STORAGE_ONETOUCH is not set
1191# CONFIG_USB_STORAGE_KARMA is not set 1227# CONFIG_USB_STORAGE_KARMA is not set
1228# CONFIG_USB_STORAGE_SIERRA is not set
1192# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1229# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1193# CONFIG_USB_LIBUSUAL is not set 1230# CONFIG_USB_LIBUSUAL is not set
1194 1231
@@ -1197,7 +1234,6 @@ CONFIG_USB_STORAGE=y
1197# 1234#
1198# CONFIG_USB_MDC800 is not set 1235# CONFIG_USB_MDC800 is not set
1199# CONFIG_USB_MICROTEK is not set 1236# CONFIG_USB_MICROTEK is not set
1200CONFIG_USB_MON=y
1201 1237
1202# 1238#
1203# USB port drivers 1239# USB port drivers
@@ -1210,7 +1246,6 @@ CONFIG_USB_MON=y
1210# CONFIG_USB_EMI62 is not set 1246# CONFIG_USB_EMI62 is not set
1211# CONFIG_USB_EMI26 is not set 1247# CONFIG_USB_EMI26 is not set
1212# CONFIG_USB_ADUTUX is not set 1248# CONFIG_USB_ADUTUX is not set
1213# CONFIG_USB_AUERSWALD is not set
1214# CONFIG_USB_RIO500 is not set 1249# CONFIG_USB_RIO500 is not set
1215# CONFIG_USB_LEGOTOWER is not set 1250# CONFIG_USB_LEGOTOWER is not set
1216# CONFIG_USB_LCD is not set 1251# CONFIG_USB_LCD is not set
@@ -1264,6 +1299,7 @@ CONFIG_RTC_INTF_DEV=y
1264# CONFIG_RTC_DRV_PCF8583 is not set 1299# CONFIG_RTC_DRV_PCF8583 is not set
1265# CONFIG_RTC_DRV_M41T80 is not set 1300# CONFIG_RTC_DRV_M41T80 is not set
1266# CONFIG_RTC_DRV_S35390A is not set 1301# CONFIG_RTC_DRV_S35390A is not set
1302# CONFIG_RTC_DRV_FM3130 is not set
1267 1303
1268# 1304#
1269# SPI RTC drivers 1305# SPI RTC drivers
@@ -1362,6 +1398,7 @@ CONFIG_EFS_FS=m
1362CONFIG_CRAMFS=y 1398CONFIG_CRAMFS=y
1363CONFIG_VXFS_FS=m 1399CONFIG_VXFS_FS=m
1364# CONFIG_MINIX_FS is not set 1400# CONFIG_MINIX_FS is not set
1401# CONFIG_OMFS_FS is not set
1365CONFIG_HPFS_FS=m 1402CONFIG_HPFS_FS=m
1366CONFIG_QNX4FS_FS=m 1403CONFIG_QNX4FS_FS=m
1367# CONFIG_ROMFS_FS is not set 1404# CONFIG_ROMFS_FS is not set
@@ -1374,17 +1411,16 @@ CONFIG_NFS_FS=y
1374CONFIG_NFS_V3=y 1411CONFIG_NFS_V3=y
1375# CONFIG_NFS_V3_ACL is not set 1412# CONFIG_NFS_V3_ACL is not set
1376CONFIG_NFS_V4=y 1413CONFIG_NFS_V4=y
1414CONFIG_ROOT_NFS=y
1377CONFIG_NFSD=y 1415CONFIG_NFSD=y
1378# CONFIG_NFSD_V3 is not set 1416# CONFIG_NFSD_V3 is not set
1379# CONFIG_NFSD_V4 is not set 1417# CONFIG_NFSD_V4 is not set
1380CONFIG_ROOT_NFS=y
1381CONFIG_LOCKD=y 1418CONFIG_LOCKD=y
1382CONFIG_LOCKD_V4=y 1419CONFIG_LOCKD_V4=y
1383CONFIG_EXPORTFS=y 1420CONFIG_EXPORTFS=y
1384CONFIG_NFS_COMMON=y 1421CONFIG_NFS_COMMON=y
1385CONFIG_SUNRPC=y 1422CONFIG_SUNRPC=y
1386CONFIG_SUNRPC_GSS=y 1423CONFIG_SUNRPC_GSS=y
1387# CONFIG_SUNRPC_BIND34 is not set
1388CONFIG_RPCSEC_GSS_KRB5=y 1424CONFIG_RPCSEC_GSS_KRB5=y
1389# CONFIG_RPCSEC_GSS_SPKM3 is not set 1425# CONFIG_RPCSEC_GSS_SPKM3 is not set
1390# CONFIG_SMB_FS is not set 1426# CONFIG_SMB_FS is not set
@@ -1463,6 +1499,7 @@ CONFIG_BITREVERSE=y
1463# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1499# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1464# CONFIG_CRC_CCITT is not set 1500# CONFIG_CRC_CCITT is not set
1465# CONFIG_CRC16 is not set 1501# CONFIG_CRC16 is not set
1502CONFIG_CRC_T10DIF=y
1466CONFIG_CRC_ITU_T=m 1503CONFIG_CRC_ITU_T=m
1467CONFIG_CRC32=y 1504CONFIG_CRC32=y
1468# CONFIG_CRC7 is not set 1505# CONFIG_CRC7 is not set
@@ -1488,6 +1525,8 @@ CONFIG_FRAME_WARN=1024
1488CONFIG_DEBUG_KERNEL=y 1525CONFIG_DEBUG_KERNEL=y
1489# CONFIG_DEBUG_SHIRQ is not set 1526# CONFIG_DEBUG_SHIRQ is not set
1490CONFIG_DETECT_SOFTLOCKUP=y 1527CONFIG_DETECT_SOFTLOCKUP=y
1528# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1529CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1491CONFIG_SCHED_DEBUG=y 1530CONFIG_SCHED_DEBUG=y
1492# CONFIG_SCHEDSTATS is not set 1531# CONFIG_SCHEDSTATS is not set
1493# CONFIG_TIMER_STATS is not set 1532# CONFIG_TIMER_STATS is not set
@@ -1506,19 +1545,32 @@ CONFIG_SCHED_DEBUG=y
1506CONFIG_DEBUG_INFO=y 1545CONFIG_DEBUG_INFO=y
1507# CONFIG_DEBUG_VM is not set 1546# CONFIG_DEBUG_VM is not set
1508# CONFIG_DEBUG_WRITECOUNT is not set 1547# CONFIG_DEBUG_WRITECOUNT is not set
1548# CONFIG_DEBUG_MEMORY_INIT is not set
1509# CONFIG_DEBUG_LIST is not set 1549# CONFIG_DEBUG_LIST is not set
1510# CONFIG_DEBUG_SG is not set 1550# CONFIG_DEBUG_SG is not set
1511# CONFIG_BOOT_PRINTK_DELAY is not set 1551# CONFIG_BOOT_PRINTK_DELAY is not set
1512# CONFIG_RCU_TORTURE_TEST is not set 1552# CONFIG_RCU_TORTURE_TEST is not set
1513# CONFIG_BACKTRACE_SELF_TEST is not set 1553# CONFIG_BACKTRACE_SELF_TEST is not set
1514# CONFIG_FAULT_INJECTION is not set 1554# CONFIG_FAULT_INJECTION is not set
1555# CONFIG_LATENCYTOP is not set
1556CONFIG_SYSCTL_SYSCALL_CHECK=y
1557CONFIG_HAVE_FTRACE=y
1558CONFIG_HAVE_DYNAMIC_FTRACE=y
1559# CONFIG_FTRACE is not set
1560# CONFIG_SCHED_TRACER is not set
1561# CONFIG_CONTEXT_SWITCH_TRACER is not set
1515# CONFIG_SAMPLES is not set 1562# CONFIG_SAMPLES is not set
1563CONFIG_HAVE_ARCH_KGDB=y
1564# CONFIG_KGDB is not set
1516# CONFIG_DEBUG_STACKOVERFLOW is not set 1565# CONFIG_DEBUG_STACKOVERFLOW is not set
1517# CONFIG_DEBUG_STACK_USAGE is not set 1566# CONFIG_DEBUG_STACK_USAGE is not set
1518# CONFIG_DEBUG_PAGEALLOC is not set 1567# CONFIG_DEBUG_PAGEALLOC is not set
1519# CONFIG_DEBUGGER is not set 1568# CONFIG_CODE_PATCHING_SELFTEST is not set
1569# CONFIG_FTR_FIXUP_SELFTEST is not set
1570# CONFIG_XMON is not set
1520# CONFIG_IRQSTACKS is not set 1571# CONFIG_IRQSTACKS is not set
1521# CONFIG_BDI_SWITCH is not set 1572# CONFIG_BDI_SWITCH is not set
1573# CONFIG_BOOTX_TEXT is not set
1522# CONFIG_PPC_EARLY_DEBUG is not set 1574# CONFIG_PPC_EARLY_DEBUG is not set
1523 1575
1524# 1576#
@@ -1573,6 +1625,10 @@ CONFIG_CRYPTO_HMAC=y
1573# CONFIG_CRYPTO_MD4 is not set 1625# CONFIG_CRYPTO_MD4 is not set
1574CONFIG_CRYPTO_MD5=y 1626CONFIG_CRYPTO_MD5=y
1575# CONFIG_CRYPTO_MICHAEL_MIC is not set 1627# CONFIG_CRYPTO_MICHAEL_MIC is not set
1628# CONFIG_CRYPTO_RMD128 is not set
1629# CONFIG_CRYPTO_RMD160 is not set
1630# CONFIG_CRYPTO_RMD256 is not set
1631# CONFIG_CRYPTO_RMD320 is not set
1576CONFIG_CRYPTO_SHA1=m 1632CONFIG_CRYPTO_SHA1=m
1577# CONFIG_CRYPTO_SHA256 is not set 1633# CONFIG_CRYPTO_SHA256 is not set
1578# CONFIG_CRYPTO_SHA512 is not set 1634# CONFIG_CRYPTO_SHA512 is not set
@@ -1605,5 +1661,6 @@ CONFIG_CRYPTO_DES=y
1605# CONFIG_CRYPTO_LZO is not set 1661# CONFIG_CRYPTO_LZO is not set
1606CONFIG_CRYPTO_HW=y 1662CONFIG_CRYPTO_HW=y
1607# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1663# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1664# CONFIG_CRYPTO_DEV_TALITOS is not set
1608# CONFIG_PPC_CLOCK is not set 1665# CONFIG_PPC_CLOCK is not set
1609# CONFIG_VIRTUALIZATION is not set 1666# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc866_ads_defconfig b/arch/powerpc/configs/mpc866_ads_defconfig
index 46fffbcd3f99..1501c4336b3d 100644
--- a/arch/powerpc/configs/mpc866_ads_defconfig
+++ b/arch/powerpc/configs/mpc866_ads_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:16 2008 4# Thu Aug 21 00:52:11 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -106,10 +107,16 @@ CONFIG_SLUB=y
106# CONFIG_PROFILING is not set 107# CONFIG_PROFILING is not set
107# CONFIG_MARKERS is not set 108# CONFIG_MARKERS is not set
108CONFIG_HAVE_OPROFILE=y 109CONFIG_HAVE_OPROFILE=y
110CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
111CONFIG_HAVE_IOREMAP_PROT=y
109CONFIG_HAVE_KPROBES=y 112CONFIG_HAVE_KPROBES=y
110CONFIG_HAVE_KRETPROBES=y 113CONFIG_HAVE_KRETPROBES=y
114CONFIG_HAVE_ARCH_TRACEHOOK=y
111# CONFIG_HAVE_DMA_ATTRS is not set 115# CONFIG_HAVE_DMA_ATTRS is not set
116# CONFIG_USE_GENERIC_SMP_HELPERS is not set
117CONFIG_HAVE_CLK=y
112CONFIG_PROC_PAGE_MONITOR=y 118CONFIG_PROC_PAGE_MONITOR=y
119# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
113CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 121CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 122# CONFIG_TINY_SHMEM is not set
@@ -120,6 +127,7 @@ CONFIG_BLOCK=y
120# CONFIG_BLK_DEV_IO_TRACE is not set 127# CONFIG_BLK_DEV_IO_TRACE is not set
121# CONFIG_LSF is not set 128# CONFIG_LSF is not set
122# CONFIG_BLK_DEV_BSG is not set 129# CONFIG_BLK_DEV_BSG is not set
130# CONFIG_BLK_DEV_INTEGRITY is not set
123 131
124# 132#
125# IO Schedulers 133# IO Schedulers
@@ -138,8 +146,6 @@ CONFIG_CLASSIC_RCU=y
138# 146#
139# Platform support 147# Platform support
140# 148#
141# CONFIG_PPC_MPC512x is not set
142# CONFIG_PPC_MPC5121 is not set
143# CONFIG_PPC_CELL is not set 149# CONFIG_PPC_CELL is not set
144# CONFIG_PPC_CELL_NATIVE is not set 150# CONFIG_PPC_CELL_NATIVE is not set
145CONFIG_CPM1=y 151CONFIG_CPM1=y
@@ -157,6 +163,7 @@ CONFIG_MPC86XADS=y
157# Generic MPC8xx Options 163# Generic MPC8xx Options
158# 164#
159CONFIG_8xx_COPYBACK=y 165CONFIG_8xx_COPYBACK=y
166# CONFIG_8xx_GPIO is not set
160CONFIG_8xx_CPU6=y 167CONFIG_8xx_CPU6=y
161CONFIG_8xx_CPU15=y 168CONFIG_8xx_CPU15=y
162CONFIG_NO_UCODE_PATCH=y 169CONFIG_NO_UCODE_PATCH=y
@@ -175,7 +182,6 @@ CONFIG_NO_UCODE_PATCH=y
175# CONFIG_PPC_INDIRECT_IO is not set 182# CONFIG_PPC_INDIRECT_IO is not set
176# CONFIG_GENERIC_IOMAP is not set 183# CONFIG_GENERIC_IOMAP is not set
177# CONFIG_CPU_FREQ is not set 184# CONFIG_CPU_FREQ is not set
178CONFIG_PPC_CPM_NEW_BINDING=y
179# CONFIG_FSL_ULI1575 is not set 185# CONFIG_FSL_ULI1575 is not set
180CONFIG_CPM=y 186CONFIG_CPM=y
181 187
@@ -192,7 +198,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
192# CONFIG_HZ_300 is not set 198# CONFIG_HZ_300 is not set
193CONFIG_HZ_1000=y 199CONFIG_HZ_1000=y
194CONFIG_HZ=1000 200CONFIG_HZ=1000
195# CONFIG_SCHED_HRTICK is not set 201CONFIG_SCHED_HRTICK=y
196CONFIG_PREEMPT_NONE=y 202CONFIG_PREEMPT_NONE=y
197# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
198# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
@@ -215,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
215# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
216CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
217CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
218# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
219CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
220CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -222,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
222CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
223# CONFIG_PROC_DEVICETREE is not set 230# CONFIG_PROC_DEVICETREE is not set
224# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
225# CONFIG_PM is not set 233# CONFIG_PM is not set
226# CONFIG_SECCOMP is not set 234# CONFIG_SECCOMP is not set
227CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -253,10 +261,6 @@ CONFIG_PHYSICAL_START=0x00000000
253CONFIG_TASK_SIZE=0x80000000 261CONFIG_TASK_SIZE=0x80000000
254CONFIG_CONSISTENT_START=0xfd000000 262CONFIG_CONSISTENT_START=0xfd000000
255CONFIG_CONSISTENT_SIZE=0x00200000 263CONFIG_CONSISTENT_SIZE=0x00200000
256
257#
258# Networking
259#
260CONFIG_NET=y 264CONFIG_NET=y
261 265
262# 266#
@@ -361,6 +365,7 @@ CONFIG_BLK_DEV_LOOP=y
361# CONFIG_BLK_DEV_RAM is not set 365# CONFIG_BLK_DEV_RAM is not set
362# CONFIG_CDROM_PKTCDVD is not set 366# CONFIG_CDROM_PKTCDVD is not set
363# CONFIG_ATA_OVER_ETH is not set 367# CONFIG_ATA_OVER_ETH is not set
368# CONFIG_BLK_DEV_HD is not set
364CONFIG_MISC_DEVICES=y 369CONFIG_MISC_DEVICES=y
365# CONFIG_EEPROM_93CX6 is not set 370# CONFIG_EEPROM_93CX6 is not set
366# CONFIG_ENCLOSURE_SERVICES is not set 371# CONFIG_ENCLOSURE_SERVICES is not set
@@ -378,7 +383,6 @@ CONFIG_HAVE_IDE=y
378# CONFIG_MD is not set 383# CONFIG_MD is not set
379# CONFIG_MACINTOSH_DRIVERS is not set 384# CONFIG_MACINTOSH_DRIVERS is not set
380CONFIG_NETDEVICES=y 385CONFIG_NETDEVICES=y
381# CONFIG_NETDEVICES_MULTIQUEUE is not set
382# CONFIG_DUMMY is not set 386# CONFIG_DUMMY is not set
383# CONFIG_BONDING is not set 387# CONFIG_BONDING is not set
384# CONFIG_MACVLAN is not set 388# CONFIG_MACVLAN is not set
@@ -414,7 +418,6 @@ CONFIG_FS_ENET_HAS_SCC=y
414CONFIG_FS_ENET_HAS_FEC=y 418CONFIG_FS_ENET_HAS_FEC=y
415CONFIG_FS_ENET_MDIO_FEC=y 419CONFIG_FS_ENET_MDIO_FEC=y
416CONFIG_NETDEV_1000=y 420CONFIG_NETDEV_1000=y
417# CONFIG_E1000E_ENABLED is not set
418# CONFIG_GIANFAR is not set 421# CONFIG_GIANFAR is not set
419CONFIG_NETDEV_10000=y 422CONFIG_NETDEV_10000=y
420 423
@@ -484,6 +487,7 @@ CONFIG_SERIO_I8042=y
484CONFIG_SERIO_SERPORT=y 487CONFIG_SERIO_SERPORT=y
485CONFIG_SERIO_LIBPS2=y 488CONFIG_SERIO_LIBPS2=y
486# CONFIG_SERIO_RAW is not set 489# CONFIG_SERIO_RAW is not set
490# CONFIG_SERIO_XILINX_XPS_PS2 is not set
487# CONFIG_GAMEPORT is not set 491# CONFIG_GAMEPORT is not set
488 492
489# 493#
@@ -524,6 +528,8 @@ CONFIG_GEN_RTC=y
524# CONFIG_TCG_TPM is not set 528# CONFIG_TCG_TPM is not set
525# CONFIG_I2C is not set 529# CONFIG_I2C is not set
526# CONFIG_SPI is not set 530# CONFIG_SPI is not set
531CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
532# CONFIG_GPIOLIB is not set
527# CONFIG_W1 is not set 533# CONFIG_W1 is not set
528# CONFIG_POWER_SUPPLY is not set 534# CONFIG_POWER_SUPPLY is not set
529CONFIG_HWMON=y 535CONFIG_HWMON=y
@@ -540,6 +546,7 @@ CONFIG_HWMON=y
540# CONFIG_SENSORS_W83627EHF is not set 546# CONFIG_SENSORS_W83627EHF is not set
541# CONFIG_HWMON_DEBUG_CHIP is not set 547# CONFIG_HWMON_DEBUG_CHIP is not set
542# CONFIG_THERMAL is not set 548# CONFIG_THERMAL is not set
549# CONFIG_THERMAL_HWMON is not set
543# CONFIG_WATCHDOG is not set 550# CONFIG_WATCHDOG is not set
544 551
545# 552#
@@ -551,8 +558,10 @@ CONFIG_SSB_POSSIBLE=y
551# 558#
552# Multifunction device drivers 559# Multifunction device drivers
553# 560#
561# CONFIG_MFD_CORE is not set
554# CONFIG_MFD_SM501 is not set 562# CONFIG_MFD_SM501 is not set
555# CONFIG_HTC_PASIC3 is not set 563# CONFIG_HTC_PASIC3 is not set
564# CONFIG_MFD_TMIO is not set
556 565
557# 566#
558# Multimedia devices 567# Multimedia devices
@@ -582,10 +591,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
582# Display device support 591# Display device support
583# 592#
584# CONFIG_DISPLAY_SUPPORT is not set 593# CONFIG_DISPLAY_SUPPORT is not set
585
586#
587# Sound
588#
589# CONFIG_SOUND is not set 594# CONFIG_SOUND is not set
590CONFIG_HID_SUPPORT=y 595CONFIG_HID_SUPPORT=y
591CONFIG_HID=y 596CONFIG_HID=y
@@ -599,6 +604,10 @@ CONFIG_USB_SUPPORT=y
599# CONFIG_USB_OTG_BLACKLIST_HUB is not set 604# CONFIG_USB_OTG_BLACKLIST_HUB is not set
600 605
601# 606#
607# Enable Host or Gadget support to see Inventra options
608#
609
610#
602# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 611# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
603# 612#
604# CONFIG_USB_GADGET is not set 613# CONFIG_USB_GADGET is not set
@@ -677,6 +686,7 @@ CONFIG_TMPFS=y
677CONFIG_CRAMFS=y 686CONFIG_CRAMFS=y
678# CONFIG_VXFS_FS is not set 687# CONFIG_VXFS_FS is not set
679# CONFIG_MINIX_FS is not set 688# CONFIG_MINIX_FS is not set
689# CONFIG_OMFS_FS is not set
680# CONFIG_HPFS_FS is not set 690# CONFIG_HPFS_FS is not set
681# CONFIG_QNX4FS_FS is not set 691# CONFIG_QNX4FS_FS is not set
682# CONFIG_ROMFS_FS is not set 692# CONFIG_ROMFS_FS is not set
@@ -687,13 +697,12 @@ CONFIG_NFS_FS=y
687CONFIG_NFS_V3=y 697CONFIG_NFS_V3=y
688# CONFIG_NFS_V3_ACL is not set 698# CONFIG_NFS_V3_ACL is not set
689# CONFIG_NFS_V4 is not set 699# CONFIG_NFS_V4 is not set
690# CONFIG_NFSD is not set
691CONFIG_ROOT_NFS=y 700CONFIG_ROOT_NFS=y
701# CONFIG_NFSD is not set
692CONFIG_LOCKD=y 702CONFIG_LOCKD=y
693CONFIG_LOCKD_V4=y 703CONFIG_LOCKD_V4=y
694CONFIG_NFS_COMMON=y 704CONFIG_NFS_COMMON=y
695CONFIG_SUNRPC=y 705CONFIG_SUNRPC=y
696# CONFIG_SUNRPC_BIND34 is not set
697# CONFIG_RPCSEC_GSS_KRB5 is not set 706# CONFIG_RPCSEC_GSS_KRB5 is not set
698# CONFIG_RPCSEC_GSS_SPKM3 is not set 707# CONFIG_RPCSEC_GSS_SPKM3 is not set
699# CONFIG_SMB_FS is not set 708# CONFIG_SMB_FS is not set
@@ -733,6 +742,7 @@ CONFIG_BITREVERSE=y
733# CONFIG_GENERIC_FIND_FIRST_BIT is not set 742# CONFIG_GENERIC_FIND_FIRST_BIT is not set
734CONFIG_CRC_CCITT=y 743CONFIG_CRC_CCITT=y
735# CONFIG_CRC16 is not set 744# CONFIG_CRC16 is not set
745# CONFIG_CRC_T10DIF is not set
736# CONFIG_CRC_ITU_T is not set 746# CONFIG_CRC_ITU_T is not set
737CONFIG_CRC32=y 747CONFIG_CRC32=y
738# CONFIG_CRC7 is not set 748# CONFIG_CRC7 is not set
@@ -758,7 +768,15 @@ CONFIG_FRAME_WARN=1024
758# CONFIG_DEBUG_KERNEL is not set 768# CONFIG_DEBUG_KERNEL is not set
759# CONFIG_SLUB_DEBUG_ON is not set 769# CONFIG_SLUB_DEBUG_ON is not set
760# CONFIG_SLUB_STATS is not set 770# CONFIG_SLUB_STATS is not set
771# CONFIG_DEBUG_MEMORY_INIT is not set
772# CONFIG_LATENCYTOP is not set
773CONFIG_HAVE_FTRACE=y
774CONFIG_HAVE_DYNAMIC_FTRACE=y
775# CONFIG_FTRACE is not set
776# CONFIG_SCHED_TRACER is not set
777# CONFIG_CONTEXT_SWITCH_TRACER is not set
761# CONFIG_SAMPLES is not set 778# CONFIG_SAMPLES is not set
779CONFIG_HAVE_ARCH_KGDB=y
762# CONFIG_IRQSTACKS is not set 780# CONFIG_IRQSTACKS is not set
763# CONFIG_PPC_EARLY_DEBUG is not set 781# CONFIG_PPC_EARLY_DEBUG is not set
764 782
@@ -810,6 +828,10 @@ CONFIG_CRYPTO=y
810# CONFIG_CRYPTO_MD4 is not set 828# CONFIG_CRYPTO_MD4 is not set
811# CONFIG_CRYPTO_MD5 is not set 829# CONFIG_CRYPTO_MD5 is not set
812# CONFIG_CRYPTO_MICHAEL_MIC is not set 830# CONFIG_CRYPTO_MICHAEL_MIC is not set
831# CONFIG_CRYPTO_RMD128 is not set
832# CONFIG_CRYPTO_RMD160 is not set
833# CONFIG_CRYPTO_RMD256 is not set
834# CONFIG_CRYPTO_RMD320 is not set
813# CONFIG_CRYPTO_SHA1 is not set 835# CONFIG_CRYPTO_SHA1 is not set
814# CONFIG_CRYPTO_SHA256 is not set 836# CONFIG_CRYPTO_SHA256 is not set
815# CONFIG_CRYPTO_SHA512 is not set 837# CONFIG_CRYPTO_SHA512 is not set
@@ -841,6 +863,7 @@ CONFIG_CRYPTO=y
841# CONFIG_CRYPTO_DEFLATE is not set 863# CONFIG_CRYPTO_DEFLATE is not set
842# CONFIG_CRYPTO_LZO is not set 864# CONFIG_CRYPTO_LZO is not set
843CONFIG_CRYPTO_HW=y 865CONFIG_CRYPTO_HW=y
844# CONFIG_PPC_CLOCK is not set 866# CONFIG_CRYPTO_DEV_TALITOS is not set
867CONFIG_PPC_CLOCK=y
845CONFIG_PPC_LIB_RHEAP=y 868CONFIG_PPC_LIB_RHEAP=y
846# CONFIG_VIRTUALIZATION is not set 869# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/mpc885_ads_defconfig b/arch/powerpc/configs/mpc885_ads_defconfig
index 9df78973005e..fc3f6dc58126 100644
--- a/arch/powerpc/configs/mpc885_ads_defconfig
+++ b/arch/powerpc/configs/mpc885_ads_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:17 2008 4# Thu Aug 21 00:52:12 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -29,6 +29,7 @@ CONFIG_GENERIC_HARDIRQS=y
29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 29# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
30CONFIG_IRQ_PER_CPU=y 30CONFIG_IRQ_PER_CPU=y
31CONFIG_STACKTRACE_SUPPORT=y 31CONFIG_STACKTRACE_SUPPORT=y
32CONFIG_HAVE_LATENCYTOP_SUPPORT=y
32CONFIG_LOCKDEP_SUPPORT=y 33CONFIG_LOCKDEP_SUPPORT=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -108,10 +109,16 @@ CONFIG_SLUB=y
108# CONFIG_PROFILING is not set 109# CONFIG_PROFILING is not set
109# CONFIG_MARKERS is not set 110# CONFIG_MARKERS is not set
110CONFIG_HAVE_OPROFILE=y 111CONFIG_HAVE_OPROFILE=y
112CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
113CONFIG_HAVE_IOREMAP_PROT=y
111CONFIG_HAVE_KPROBES=y 114CONFIG_HAVE_KPROBES=y
112CONFIG_HAVE_KRETPROBES=y 115CONFIG_HAVE_KRETPROBES=y
116CONFIG_HAVE_ARCH_TRACEHOOK=y
113# CONFIG_HAVE_DMA_ATTRS is not set 117# CONFIG_HAVE_DMA_ATTRS is not set
118# CONFIG_USE_GENERIC_SMP_HELPERS is not set
119CONFIG_HAVE_CLK=y
114CONFIG_PROC_PAGE_MONITOR=y 120CONFIG_PROC_PAGE_MONITOR=y
121# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
115CONFIG_SLABINFO=y 122CONFIG_SLABINFO=y
116# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
117CONFIG_BASE_SMALL=1 124CONFIG_BASE_SMALL=1
@@ -121,6 +128,7 @@ CONFIG_BLOCK=y
121# CONFIG_BLK_DEV_IO_TRACE is not set 128# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_LSF is not set 129# CONFIG_LSF is not set
123# CONFIG_BLK_DEV_BSG is not set 130# CONFIG_BLK_DEV_BSG is not set
131# CONFIG_BLK_DEV_INTEGRITY is not set
124 132
125# 133#
126# IO Schedulers 134# IO Schedulers
@@ -139,8 +147,6 @@ CONFIG_CLASSIC_RCU=y
139# 147#
140# Platform support 148# Platform support
141# 149#
142# CONFIG_PPC_MPC512x is not set
143# CONFIG_PPC_MPC5121 is not set
144# CONFIG_PPC_CELL is not set 150# CONFIG_PPC_CELL is not set
145# CONFIG_PPC_CELL_NATIVE is not set 151# CONFIG_PPC_CELL_NATIVE is not set
146CONFIG_CPM1=y 152CONFIG_CPM1=y
@@ -165,6 +171,7 @@ CONFIG_MPC8xx_SECOND_ETH_FEC2=y
165# Generic MPC8xx Options 171# Generic MPC8xx Options
166# 172#
167CONFIG_8xx_COPYBACK=y 173CONFIG_8xx_COPYBACK=y
174# CONFIG_8xx_GPIO is not set
168# CONFIG_8xx_CPU6 is not set 175# CONFIG_8xx_CPU6 is not set
169CONFIG_8xx_CPU15=y 176CONFIG_8xx_CPU15=y
170CONFIG_NO_UCODE_PATCH=y 177CONFIG_NO_UCODE_PATCH=y
@@ -183,7 +190,6 @@ CONFIG_NO_UCODE_PATCH=y
183# CONFIG_PPC_INDIRECT_IO is not set 190# CONFIG_PPC_INDIRECT_IO is not set
184# CONFIG_GENERIC_IOMAP is not set 191# CONFIG_GENERIC_IOMAP is not set
185# CONFIG_CPU_FREQ is not set 192# CONFIG_CPU_FREQ is not set
186CONFIG_PPC_CPM_NEW_BINDING=y
187# CONFIG_FSL_ULI1575 is not set 193# CONFIG_FSL_ULI1575 is not set
188CONFIG_CPM=y 194CONFIG_CPM=y
189 195
@@ -200,7 +206,7 @@ CONFIG_HZ_100=y
200# CONFIG_HZ_300 is not set 206# CONFIG_HZ_300 is not set
201# CONFIG_HZ_1000 is not set 207# CONFIG_HZ_1000 is not set
202CONFIG_HZ=100 208CONFIG_HZ=100
203# CONFIG_SCHED_HRTICK is not set 209CONFIG_SCHED_HRTICK=y
204CONFIG_PREEMPT_NONE=y 210CONFIG_PREEMPT_NONE=y
205# CONFIG_PREEMPT_VOLUNTARY is not set 211# CONFIG_PREEMPT_VOLUNTARY is not set
206# CONFIG_PREEMPT is not set 212# CONFIG_PREEMPT is not set
@@ -224,6 +230,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
224# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 230# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
225CONFIG_PAGEFLAGS_EXTENDED=y 231CONFIG_PAGEFLAGS_EXTENDED=y
226CONFIG_SPLIT_PTLOCK_CPUS=4 232CONFIG_SPLIT_PTLOCK_CPUS=4
233CONFIG_MIGRATION=y
227# CONFIG_RESOURCES_64BIT is not set 234# CONFIG_RESOURCES_64BIT is not set
228CONFIG_ZONE_DMA_FLAG=1 235CONFIG_ZONE_DMA_FLAG=1
229CONFIG_BOUNCE=y 236CONFIG_BOUNCE=y
@@ -231,6 +238,7 @@ CONFIG_VIRT_TO_BUS=y
231CONFIG_FORCE_MAX_ZONEORDER=11 238CONFIG_FORCE_MAX_ZONEORDER=11
232CONFIG_PROC_DEVICETREE=y 239CONFIG_PROC_DEVICETREE=y
233# CONFIG_CMDLINE_BOOL is not set 240# CONFIG_CMDLINE_BOOL is not set
241CONFIG_EXTRA_TARGETS=""
234# CONFIG_PM is not set 242# CONFIG_PM is not set
235# CONFIG_SECCOMP is not set 243# CONFIG_SECCOMP is not set
236CONFIG_ISA_DMA_API=y 244CONFIG_ISA_DMA_API=y
@@ -263,10 +271,6 @@ CONFIG_PHYSICAL_START=0x00000000
263CONFIG_TASK_SIZE=0x80000000 271CONFIG_TASK_SIZE=0x80000000
264CONFIG_CONSISTENT_START=0xfd000000 272CONFIG_CONSISTENT_START=0xfd000000
265CONFIG_CONSISTENT_SIZE=0x00200000 273CONFIG_CONSISTENT_SIZE=0x00200000
266
267#
268# Networking
269#
270CONFIG_NET=y 274CONFIG_NET=y
271 275
272# 276#
@@ -453,7 +457,6 @@ CONFIG_HAVE_IDE=y
453# CONFIG_MD is not set 457# CONFIG_MD is not set
454# CONFIG_MACINTOSH_DRIVERS is not set 458# CONFIG_MACINTOSH_DRIVERS is not set
455CONFIG_NETDEVICES=y 459CONFIG_NETDEVICES=y
456# CONFIG_NETDEVICES_MULTIQUEUE is not set
457# CONFIG_DUMMY is not set 460# CONFIG_DUMMY is not set
458# CONFIG_BONDING is not set 461# CONFIG_BONDING is not set
459# CONFIG_MACVLAN is not set 462# CONFIG_MACVLAN is not set
@@ -555,10 +558,13 @@ CONFIG_GEN_RTC=y
555# CONFIG_TCG_TPM is not set 558# CONFIG_TCG_TPM is not set
556# CONFIG_I2C is not set 559# CONFIG_I2C is not set
557# CONFIG_SPI is not set 560# CONFIG_SPI is not set
561CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
562# CONFIG_GPIOLIB is not set
558# CONFIG_W1 is not set 563# CONFIG_W1 is not set
559# CONFIG_POWER_SUPPLY is not set 564# CONFIG_POWER_SUPPLY is not set
560# CONFIG_HWMON is not set 565# CONFIG_HWMON is not set
561# CONFIG_THERMAL is not set 566# CONFIG_THERMAL is not set
567# CONFIG_THERMAL_HWMON is not set
562# CONFIG_WATCHDOG is not set 568# CONFIG_WATCHDOG is not set
563 569
564# 570#
@@ -570,8 +576,10 @@ CONFIG_SSB_POSSIBLE=y
570# 576#
571# Multifunction device drivers 577# Multifunction device drivers
572# 578#
579# CONFIG_MFD_CORE is not set
573# CONFIG_MFD_SM501 is not set 580# CONFIG_MFD_SM501 is not set
574# CONFIG_HTC_PASIC3 is not set 581# CONFIG_HTC_PASIC3 is not set
582# CONFIG_MFD_TMIO is not set
575 583
576# 584#
577# Multimedia devices 585# Multimedia devices
@@ -601,10 +609,6 @@ CONFIG_DAB=y
601# Display device support 609# Display device support
602# 610#
603# CONFIG_DISPLAY_SUPPORT is not set 611# CONFIG_DISPLAY_SUPPORT is not set
604
605#
606# Sound
607#
608# CONFIG_SOUND is not set 612# CONFIG_SOUND is not set
609# CONFIG_USB_SUPPORT is not set 613# CONFIG_USB_SUPPORT is not set
610# CONFIG_MMC is not set 614# CONFIG_MMC is not set
@@ -673,6 +677,7 @@ CONFIG_TMPFS=y
673CONFIG_CRAMFS=y 677CONFIG_CRAMFS=y
674# CONFIG_VXFS_FS is not set 678# CONFIG_VXFS_FS is not set
675# CONFIG_MINIX_FS is not set 679# CONFIG_MINIX_FS is not set
680# CONFIG_OMFS_FS is not set
676# CONFIG_HPFS_FS is not set 681# CONFIG_HPFS_FS is not set
677# CONFIG_QNX4FS_FS is not set 682# CONFIG_QNX4FS_FS is not set
678# CONFIG_ROMFS_FS is not set 683# CONFIG_ROMFS_FS is not set
@@ -683,13 +688,12 @@ CONFIG_NFS_FS=y
683CONFIG_NFS_V3=y 688CONFIG_NFS_V3=y
684# CONFIG_NFS_V3_ACL is not set 689# CONFIG_NFS_V3_ACL is not set
685# CONFIG_NFS_V4 is not set 690# CONFIG_NFS_V4 is not set
686# CONFIG_NFSD is not set
687CONFIG_ROOT_NFS=y 691CONFIG_ROOT_NFS=y
692# CONFIG_NFSD is not set
688CONFIG_LOCKD=y 693CONFIG_LOCKD=y
689CONFIG_LOCKD_V4=y 694CONFIG_LOCKD_V4=y
690CONFIG_NFS_COMMON=y 695CONFIG_NFS_COMMON=y
691CONFIG_SUNRPC=y 696CONFIG_SUNRPC=y
692# CONFIG_SUNRPC_BIND34 is not set
693# CONFIG_RPCSEC_GSS_KRB5 is not set 697# CONFIG_RPCSEC_GSS_KRB5 is not set
694# CONFIG_RPCSEC_GSS_SPKM3 is not set 698# CONFIG_RPCSEC_GSS_SPKM3 is not set
695# CONFIG_SMB_FS is not set 699# CONFIG_SMB_FS is not set
@@ -728,6 +732,7 @@ CONFIG_MSDOS_PARTITION=y
728# CONFIG_GENERIC_FIND_FIRST_BIT is not set 732# CONFIG_GENERIC_FIND_FIRST_BIT is not set
729# CONFIG_CRC_CCITT is not set 733# CONFIG_CRC_CCITT is not set
730# CONFIG_CRC16 is not set 734# CONFIG_CRC16 is not set
735# CONFIG_CRC_T10DIF is not set
731# CONFIG_CRC_ITU_T is not set 736# CONFIG_CRC_ITU_T is not set
732# CONFIG_CRC32 is not set 737# CONFIG_CRC32 is not set
733# CONFIG_CRC7 is not set 738# CONFIG_CRC7 is not set
@@ -752,6 +757,8 @@ CONFIG_MAGIC_SYSRQ=y
752CONFIG_DEBUG_KERNEL=y 757CONFIG_DEBUG_KERNEL=y
753# CONFIG_DEBUG_SHIRQ is not set 758# CONFIG_DEBUG_SHIRQ is not set
754CONFIG_DETECT_SOFTLOCKUP=y 759CONFIG_DETECT_SOFTLOCKUP=y
760# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
761CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
755CONFIG_SCHED_DEBUG=y 762CONFIG_SCHED_DEBUG=y
756# CONFIG_SCHEDSTATS is not set 763# CONFIG_SCHEDSTATS is not set
757# CONFIG_TIMER_STATS is not set 764# CONFIG_TIMER_STATS is not set
@@ -767,16 +774,28 @@ CONFIG_DEBUG_BUGVERBOSE=y
767CONFIG_DEBUG_INFO=y 774CONFIG_DEBUG_INFO=y
768# CONFIG_DEBUG_VM is not set 775# CONFIG_DEBUG_VM is not set
769# CONFIG_DEBUG_WRITECOUNT is not set 776# CONFIG_DEBUG_WRITECOUNT is not set
777# CONFIG_DEBUG_MEMORY_INIT is not set
770# CONFIG_DEBUG_LIST is not set 778# CONFIG_DEBUG_LIST is not set
771# CONFIG_DEBUG_SG is not set 779# CONFIG_DEBUG_SG is not set
772# CONFIG_BOOT_PRINTK_DELAY is not set 780# CONFIG_BOOT_PRINTK_DELAY is not set
781# CONFIG_RCU_TORTURE_TEST is not set
773# CONFIG_BACKTRACE_SELF_TEST is not set 782# CONFIG_BACKTRACE_SELF_TEST is not set
774# CONFIG_FAULT_INJECTION is not set 783# CONFIG_FAULT_INJECTION is not set
784# CONFIG_LATENCYTOP is not set
785CONFIG_HAVE_FTRACE=y
786CONFIG_HAVE_DYNAMIC_FTRACE=y
787# CONFIG_FTRACE is not set
788# CONFIG_SCHED_TRACER is not set
789# CONFIG_CONTEXT_SWITCH_TRACER is not set
775# CONFIG_SAMPLES is not set 790# CONFIG_SAMPLES is not set
791CONFIG_HAVE_ARCH_KGDB=y
792# CONFIG_KGDB is not set
776# CONFIG_DEBUG_STACKOVERFLOW is not set 793# CONFIG_DEBUG_STACKOVERFLOW is not set
777# CONFIG_DEBUG_STACK_USAGE is not set 794# CONFIG_DEBUG_STACK_USAGE is not set
778# CONFIG_DEBUG_PAGEALLOC is not set 795# CONFIG_DEBUG_PAGEALLOC is not set
779# CONFIG_DEBUGGER is not set 796# CONFIG_CODE_PATCHING_SELFTEST is not set
797# CONFIG_FTR_FIXUP_SELFTEST is not set
798# CONFIG_XMON is not set
780# CONFIG_IRQSTACKS is not set 799# CONFIG_IRQSTACKS is not set
781# CONFIG_BDI_SWITCH is not set 800# CONFIG_BDI_SWITCH is not set
782# CONFIG_PPC_EARLY_DEBUG is not set 801# CONFIG_PPC_EARLY_DEBUG is not set
@@ -788,6 +807,6 @@ CONFIG_DEBUG_INFO=y
788# CONFIG_SECURITY is not set 807# CONFIG_SECURITY is not set
789# CONFIG_SECURITY_FILE_CAPABILITIES is not set 808# CONFIG_SECURITY_FILE_CAPABILITIES is not set
790# CONFIG_CRYPTO is not set 809# CONFIG_CRYPTO is not set
791# CONFIG_PPC_CLOCK is not set 810CONFIG_PPC_CLOCK=y
792CONFIG_PPC_LIB_RHEAP=y 811CONFIG_PPC_LIB_RHEAP=y
793# CONFIG_VIRTUALIZATION is not set 812# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig
index 3688e4bb6fc2..80481f270133 100644
--- a/arch/powerpc/configs/pmac32_defconfig
+++ b/arch/powerpc/configs/pmac32_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.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:02:24 2008 4# Tue Aug 26 13:20:26 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -93,9 +94,8 @@ CONFIG_INITRAMFS_SOURCE=""
93CONFIG_SYSCTL=y 94CONFIG_SYSCTL=y
94# CONFIG_EMBEDDED is not set 95# CONFIG_EMBEDDED is not set
95CONFIG_SYSCTL_SYSCALL=y 96CONFIG_SYSCTL_SYSCALL=y
96CONFIG_SYSCTL_SYSCALL_CHECK=y
97CONFIG_KALLSYMS=y 97CONFIG_KALLSYMS=y
98# CONFIG_KALLSYMS_ALL is not set 98CONFIG_KALLSYMS_ALL=y
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
100CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
101CONFIG_PRINTK=y 101CONFIG_PRINTK=y
@@ -120,10 +120,16 @@ CONFIG_PROFILING=y
120CONFIG_OPROFILE=y 120CONFIG_OPROFILE=y
121CONFIG_HAVE_OPROFILE=y 121CONFIG_HAVE_OPROFILE=y
122# CONFIG_KPROBES is not set 122# CONFIG_KPROBES is not set
123CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
124CONFIG_HAVE_IOREMAP_PROT=y
123CONFIG_HAVE_KPROBES=y 125CONFIG_HAVE_KPROBES=y
124CONFIG_HAVE_KRETPROBES=y 126CONFIG_HAVE_KRETPROBES=y
127CONFIG_HAVE_ARCH_TRACEHOOK=y
125# CONFIG_HAVE_DMA_ATTRS is not set 128# CONFIG_HAVE_DMA_ATTRS is not set
129# CONFIG_USE_GENERIC_SMP_HELPERS is not set
130# CONFIG_HAVE_CLK is not set
126CONFIG_PROC_PAGE_MONITOR=y 131CONFIG_PROC_PAGE_MONITOR=y
132# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
127CONFIG_SLABINFO=y 133CONFIG_SLABINFO=y
128CONFIG_RT_MUTEXES=y 134CONFIG_RT_MUTEXES=y
129# CONFIG_TINY_SHMEM is not set 135# CONFIG_TINY_SHMEM is not set
@@ -140,6 +146,7 @@ CONFIG_LBD=y
140# CONFIG_BLK_DEV_IO_TRACE is not set 146# CONFIG_BLK_DEV_IO_TRACE is not set
141CONFIG_LSF=y 147CONFIG_LSF=y
142CONFIG_BLK_DEV_BSG=y 148CONFIG_BLK_DEV_BSG=y
149# CONFIG_BLK_DEV_INTEGRITY is not set
143 150
144# 151#
145# IO Schedulers 152# IO Schedulers
@@ -159,19 +166,18 @@ CONFIG_CLASSIC_RCU=y
159# Platform support 166# Platform support
160# 167#
161CONFIG_PPC_MULTIPLATFORM=y 168CONFIG_PPC_MULTIPLATFORM=y
162# CONFIG_PPC_82xx is not set
163# CONFIG_PPC_83xx is not set
164# CONFIG_PPC_86xx is not set
165CONFIG_CLASSIC32=y 169CONFIG_CLASSIC32=y
166# CONFIG_PPC_CHRP is not set 170# CONFIG_PPC_CHRP is not set
167# CONFIG_PPC_MPC512x is not set
168# CONFIG_PPC_MPC5121 is not set
169# CONFIG_MPC5121_ADS is not set 171# CONFIG_MPC5121_ADS is not set
172# CONFIG_MPC5121_GENERIC is not set
170# CONFIG_PPC_MPC52xx is not set 173# CONFIG_PPC_MPC52xx is not set
171CONFIG_PPC_PMAC=y 174CONFIG_PPC_PMAC=y
172# CONFIG_PPC_CELL is not set 175# CONFIG_PPC_CELL is not set
173# CONFIG_PPC_CELL_NATIVE is not set 176# CONFIG_PPC_CELL_NATIVE is not set
177# CONFIG_PPC_82xx is not set
174# CONFIG_PQ2ADS is not set 178# CONFIG_PQ2ADS is not set
179# CONFIG_PPC_83xx is not set
180# CONFIG_PPC_86xx is not set
175# CONFIG_EMBEDDED6xx is not set 181# CONFIG_EMBEDDED6xx is not set
176CONFIG_PPC_NATIVE=y 182CONFIG_PPC_NATIVE=y
177# CONFIG_IPIC is not set 183# CONFIG_IPIC is not set
@@ -221,7 +227,7 @@ CONFIG_HZ_250=y
221# CONFIG_HZ_300 is not set 227# CONFIG_HZ_300 is not set
222# CONFIG_HZ_1000 is not set 228# CONFIG_HZ_1000 is not set
223CONFIG_HZ=250 229CONFIG_HZ=250
224# CONFIG_SCHED_HRTICK is not set 230CONFIG_SCHED_HRTICK=y
225CONFIG_PREEMPT_NONE=y 231CONFIG_PREEMPT_NONE=y
226# CONFIG_PREEMPT_VOLUNTARY is not set 232# CONFIG_PREEMPT_VOLUNTARY is not set
227# CONFIG_PREEMPT is not set 233# CONFIG_PREEMPT is not set
@@ -244,6 +250,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
244# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 250# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
245CONFIG_PAGEFLAGS_EXTENDED=y 251CONFIG_PAGEFLAGS_EXTENDED=y
246CONFIG_SPLIT_PTLOCK_CPUS=4 252CONFIG_SPLIT_PTLOCK_CPUS=4
253# CONFIG_MIGRATION is not set
247# CONFIG_RESOURCES_64BIT is not set 254# CONFIG_RESOURCES_64BIT is not set
248CONFIG_ZONE_DMA_FLAG=1 255CONFIG_ZONE_DMA_FLAG=1
249CONFIG_BOUNCE=y 256CONFIG_BOUNCE=y
@@ -251,6 +258,7 @@ CONFIG_VIRT_TO_BUS=y
251CONFIG_FORCE_MAX_ZONEORDER=11 258CONFIG_FORCE_MAX_ZONEORDER=11
252CONFIG_PROC_DEVICETREE=y 259CONFIG_PROC_DEVICETREE=y
253# CONFIG_CMDLINE_BOOL is not set 260# CONFIG_CMDLINE_BOOL is not set
261CONFIG_EXTRA_TARGETS=""
254CONFIG_ARCH_WANTS_FREEZER_CONTROL=y 262CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
255CONFIG_PM=y 263CONFIG_PM=y
256CONFIG_PM_DEBUG=y 264CONFIG_PM_DEBUG=y
@@ -314,10 +322,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
314CONFIG_KERNEL_START=0xc0000000 322CONFIG_KERNEL_START=0xc0000000
315CONFIG_PHYSICAL_START=0x00000000 323CONFIG_PHYSICAL_START=0x00000000
316CONFIG_TASK_SIZE=0xc0000000 324CONFIG_TASK_SIZE=0xc0000000
317
318#
319# Networking
320#
321CONFIG_NET=y 325CONFIG_NET=y
322 326
323# 327#
@@ -501,7 +505,6 @@ CONFIG_IP_DCCP_TFRC_LIB=m
501# CONFIG_WAN_ROUTER is not set 505# CONFIG_WAN_ROUTER is not set
502# CONFIG_NET_SCHED is not set 506# CONFIG_NET_SCHED is not set
503CONFIG_NET_CLS_ROUTE=y 507CONFIG_NET_CLS_ROUTE=y
504CONFIG_NET_SCH_FIFO=y
505 508
506# 509#
507# Network testing 510# Network testing
@@ -571,6 +574,7 @@ CONFIG_BT_HIDP=m
571# 574#
572CONFIG_BT_HCIUSB=m 575CONFIG_BT_HCIUSB=m
573# CONFIG_BT_HCIUSB_SCO is not set 576# CONFIG_BT_HCIUSB_SCO is not set
577# CONFIG_BT_HCIBTUSB is not set
574# CONFIG_BT_HCIUART is not set 578# CONFIG_BT_HCIUART is not set
575CONFIG_BT_HCIBCM203X=m 579CONFIG_BT_HCIBCM203X=m
576# CONFIG_BT_HCIBPA10X is not set 580# CONFIG_BT_HCIBPA10X is not set
@@ -588,27 +592,18 @@ CONFIG_BT_HCIBFUSB=m
588CONFIG_CFG80211=m 592CONFIG_CFG80211=m
589CONFIG_NL80211=y 593CONFIG_NL80211=y
590CONFIG_WIRELESS_EXT=y 594CONFIG_WIRELESS_EXT=y
595CONFIG_WIRELESS_EXT_SYSFS=y
591CONFIG_MAC80211=m 596CONFIG_MAC80211=m
592 597
593# 598#
594# Rate control algorithm selection 599# Rate control algorithm selection
595# 600#
601CONFIG_MAC80211_RC_PID=y
596CONFIG_MAC80211_RC_DEFAULT_PID=y 602CONFIG_MAC80211_RC_DEFAULT_PID=y
597# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
598
599#
600# Selecting 'y' for an algorithm will
601#
602
603#
604# build the algorithm into mac80211.
605#
606CONFIG_MAC80211_RC_DEFAULT="pid" 603CONFIG_MAC80211_RC_DEFAULT="pid"
607CONFIG_MAC80211_RC_PID=y
608# CONFIG_MAC80211_MESH is not set 604# CONFIG_MAC80211_MESH is not set
609CONFIG_MAC80211_LEDS=y 605CONFIG_MAC80211_LEDS=y
610# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set 606# CONFIG_MAC80211_DEBUG_MENU is not set
611# CONFIG_MAC80211_DEBUG is not set
612CONFIG_IEEE80211=m 607CONFIG_IEEE80211=m
613# CONFIG_IEEE80211_DEBUG is not set 608# CONFIG_IEEE80211_DEBUG is not set
614CONFIG_IEEE80211_CRYPT_WEP=m 609CONFIG_IEEE80211_CRYPT_WEP=m
@@ -628,6 +623,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
628# CONFIG_STANDALONE is not set 623# CONFIG_STANDALONE is not set
629CONFIG_PREVENT_FIRMWARE_BUILD=y 624CONFIG_PREVENT_FIRMWARE_BUILD=y
630CONFIG_FW_LOADER=y 625CONFIG_FW_LOADER=y
626CONFIG_FIRMWARE_IN_KERNEL=y
627CONFIG_EXTRA_FIRMWARE=""
631# CONFIG_DEBUG_DRIVER is not set 628# CONFIG_DEBUG_DRIVER is not set
632# CONFIG_DEBUG_DEVRES is not set 629# CONFIG_DEBUG_DEVRES is not set
633# CONFIG_SYS_HYPERVISOR is not set 630# CONFIG_SYS_HYPERVISOR is not set
@@ -656,12 +653,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
656# CONFIG_BLK_DEV_XIP is not set 653# CONFIG_BLK_DEV_XIP is not set
657# CONFIG_CDROM_PKTCDVD is not set 654# CONFIG_CDROM_PKTCDVD is not set
658# CONFIG_ATA_OVER_ETH is not set 655# CONFIG_ATA_OVER_ETH is not set
656# CONFIG_BLK_DEV_HD is not set
659CONFIG_MISC_DEVICES=y 657CONFIG_MISC_DEVICES=y
660# CONFIG_PHANTOM is not set 658# CONFIG_PHANTOM is not set
661# CONFIG_EEPROM_93CX6 is not set 659# CONFIG_EEPROM_93CX6 is not set
662# CONFIG_SGI_IOC4 is not set 660# CONFIG_SGI_IOC4 is not set
663# CONFIG_TIFM_CORE is not set 661# CONFIG_TIFM_CORE is not set
664# CONFIG_ENCLOSURE_SERVICES is not set 662# CONFIG_ENCLOSURE_SERVICES is not set
663# CONFIG_HP_ILO is not set
665CONFIG_HAVE_IDE=y 664CONFIG_HAVE_IDE=y
666CONFIG_IDE=y 665CONFIG_IDE=y
667CONFIG_BLK_DEV_IDE=y 666CONFIG_BLK_DEV_IDE=y
@@ -669,6 +668,8 @@ CONFIG_BLK_DEV_IDE=y
669# 668#
670# Please see Documentation/ide/ide.txt for help/info on IDE drives 669# Please see Documentation/ide/ide.txt for help/info on IDE drives
671# 670#
671CONFIG_IDE_TIMINGS=y
672CONFIG_IDE_ATAPI=y
672# CONFIG_BLK_DEV_IDE_SATA is not set 673# CONFIG_BLK_DEV_IDE_SATA is not set
673CONFIG_BLK_DEV_IDEDISK=y 674CONFIG_BLK_DEV_IDEDISK=y
674# CONFIG_IDEDISK_MULTI_MODE is not set 675# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -685,7 +686,6 @@ CONFIG_IDE_PROC_FS=y
685# 686#
686# IDE chipset support/bugfixes 687# IDE chipset support/bugfixes
687# 688#
688# CONFIG_IDE_GENERIC is not set
689# CONFIG_BLK_DEV_PLATFORM is not set 689# CONFIG_BLK_DEV_PLATFORM is not set
690CONFIG_BLK_DEV_IDEDMA_SFF=y 690CONFIG_BLK_DEV_IDEDMA_SFF=y
691 691
@@ -703,10 +703,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
703# CONFIG_BLK_DEV_AMD74XX is not set 703# CONFIG_BLK_DEV_AMD74XX is not set
704# CONFIG_BLK_DEV_CMD64X is not set 704# CONFIG_BLK_DEV_CMD64X is not set
705# CONFIG_BLK_DEV_TRIFLEX is not set 705# CONFIG_BLK_DEV_TRIFLEX is not set
706# CONFIG_BLK_DEV_CY82C693 is not set
707# CONFIG_BLK_DEV_CS5520 is not set 706# CONFIG_BLK_DEV_CS5520 is not set
708# CONFIG_BLK_DEV_CS5530 is not set 707# CONFIG_BLK_DEV_CS5530 is not set
709# CONFIG_BLK_DEV_HPT34X is not set
710# CONFIG_BLK_DEV_HPT366 is not set 708# CONFIG_BLK_DEV_HPT366 is not set
711# CONFIG_BLK_DEV_JMICRON is not set 709# CONFIG_BLK_DEV_JMICRON is not set
712# CONFIG_BLK_DEV_SC1200 is not set 710# CONFIG_BLK_DEV_SC1200 is not set
@@ -727,8 +725,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
727CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 725CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
728CONFIG_BLK_DEV_IDEDMA_PMAC=y 726CONFIG_BLK_DEV_IDEDMA_PMAC=y
729CONFIG_BLK_DEV_IDEDMA=y 727CONFIG_BLK_DEV_IDEDMA=y
730# CONFIG_BLK_DEV_HD_ONLY is not set
731# CONFIG_BLK_DEV_HD is not set
732 728
733# 729#
734# SCSI device support 730# SCSI device support
@@ -820,6 +816,7 @@ CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
820CONFIG_SCSI_MAC53C94=y 816CONFIG_SCSI_MAC53C94=y
821# CONFIG_SCSI_SRP is not set 817# CONFIG_SCSI_SRP is not set
822# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 818# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
819# CONFIG_SCSI_DH is not set
823# CONFIG_ATA is not set 820# CONFIG_ATA is not set
824CONFIG_MD=y 821CONFIG_MD=y
825CONFIG_BLK_DEV_MD=m 822CONFIG_BLK_DEV_MD=m
@@ -844,30 +841,22 @@ CONFIG_DM_ZERO=m
844# 841#
845# IEEE 1394 (FireWire) support 842# IEEE 1394 (FireWire) support
846# 843#
847# CONFIG_FIREWIRE is not set
848CONFIG_IEEE1394=m
849
850#
851# Subsystem Options
852#
853# CONFIG_IEEE1394_VERBOSEDEBUG is not set
854 844
855# 845#
856# Controllers 846# Enable only one of the two stacks, unless you know what you are doing
857# 847#
858# CONFIG_IEEE1394_PCILYNX is not set 848# CONFIG_FIREWIRE is not set
849CONFIG_IEEE1394=m
859CONFIG_IEEE1394_OHCI1394=m 850CONFIG_IEEE1394_OHCI1394=m
860 851# CONFIG_IEEE1394_PCILYNX is not set
861#
862# Protocols
863#
864CONFIG_IEEE1394_VIDEO1394=m
865CONFIG_IEEE1394_SBP2=m 852CONFIG_IEEE1394_SBP2=m
866# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set 853# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
867# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set 854# CONFIG_IEEE1394_ETH1394_ROM_ENTRY is not set
868# CONFIG_IEEE1394_ETH1394 is not set 855# CONFIG_IEEE1394_ETH1394 is not set
869CONFIG_IEEE1394_DV1394=m
870CONFIG_IEEE1394_RAWIO=m 856CONFIG_IEEE1394_RAWIO=m
857CONFIG_IEEE1394_VIDEO1394=m
858CONFIG_IEEE1394_DV1394=m
859# CONFIG_IEEE1394_VERBOSEDEBUG is not set
871# CONFIG_I2O is not set 860# CONFIG_I2O is not set
872CONFIG_MACINTOSH_DRIVERS=y 861CONFIG_MACINTOSH_DRIVERS=y
873CONFIG_ADB=y 862CONFIG_ADB=y
@@ -887,7 +876,6 @@ CONFIG_THERM_ADT746X=m
887# CONFIG_ANSLCD is not set 876# CONFIG_ANSLCD is not set
888CONFIG_PMAC_RACKMETER=m 877CONFIG_PMAC_RACKMETER=m
889CONFIG_NETDEVICES=y 878CONFIG_NETDEVICES=y
890# CONFIG_NETDEVICES_MULTIQUEUE is not set
891CONFIG_DUMMY=m 879CONFIG_DUMMY=m
892# CONFIG_BONDING is not set 880# CONFIG_BONDING is not set
893# CONFIG_MACVLAN is not set 881# CONFIG_MACVLAN is not set
@@ -936,7 +924,6 @@ CONFIG_NETDEV_1000=y
936# CONFIG_DL2K is not set 924# CONFIG_DL2K is not set
937# CONFIG_E1000 is not set 925# CONFIG_E1000 is not set
938# CONFIG_E1000E is not set 926# CONFIG_E1000E is not set
939# CONFIG_E1000E_ENABLED is not set
940# CONFIG_IP1000 is not set 927# CONFIG_IP1000 is not set
941# CONFIG_IGB is not set 928# CONFIG_IGB is not set
942# CONFIG_NS83820 is not set 929# CONFIG_NS83820 is not set
@@ -952,6 +939,7 @@ CONFIG_NETDEV_1000=y
952# CONFIG_MV643XX_ETH is not set 939# CONFIG_MV643XX_ETH is not set
953# CONFIG_QLA3XXX is not set 940# CONFIG_QLA3XXX is not set
954# CONFIG_ATL1 is not set 941# CONFIG_ATL1 is not set
942# CONFIG_ATL1E is not set
955CONFIG_NETDEV_10000=y 943CONFIG_NETDEV_10000=y
956# CONFIG_CHELSIO_T1 is not set 944# CONFIG_CHELSIO_T1 is not set
957# CONFIG_CHELSIO_T3 is not set 945# CONFIG_CHELSIO_T3 is not set
@@ -994,13 +982,15 @@ CONFIG_PRISM54=m
994# CONFIG_RTL8180 is not set 982# CONFIG_RTL8180 is not set
995# CONFIG_RTL8187 is not set 983# CONFIG_RTL8187 is not set
996# CONFIG_ADM8211 is not set 984# CONFIG_ADM8211 is not set
985# CONFIG_MAC80211_HWSIM is not set
997CONFIG_P54_COMMON=m 986CONFIG_P54_COMMON=m
998# CONFIG_P54_USB is not set 987# CONFIG_P54_USB is not set
999# CONFIG_P54_PCI is not set 988# CONFIG_P54_PCI is not set
1000# CONFIG_ATH5K is not set 989# CONFIG_ATH5K is not set
990# CONFIG_ATH9K is not set
1001# CONFIG_IWLCORE is not set 991# CONFIG_IWLCORE is not set
1002# CONFIG_IWLWIFI_LEDS is not set 992# CONFIG_IWLWIFI_LEDS is not set
1003# CONFIG_IWL4965 is not set 993# CONFIG_IWLAGN is not set
1004# CONFIG_IWL3945 is not set 994# CONFIG_IWL3945 is not set
1005# CONFIG_HOSTAP is not set 995# CONFIG_HOSTAP is not set
1006CONFIG_B43=m 996CONFIG_B43=m
@@ -1095,6 +1085,7 @@ CONFIG_INPUT_MOUSE=y
1095# CONFIG_MOUSE_PS2 is not set 1085# CONFIG_MOUSE_PS2 is not set
1096# CONFIG_MOUSE_SERIAL is not set 1086# CONFIG_MOUSE_SERIAL is not set
1097# CONFIG_MOUSE_APPLETOUCH is not set 1087# CONFIG_MOUSE_APPLETOUCH is not set
1088# CONFIG_MOUSE_BCM5974 is not set
1098# CONFIG_MOUSE_VSXXXAA is not set 1089# CONFIG_MOUSE_VSXXXAA is not set
1099# CONFIG_INPUT_JOYSTICK is not set 1090# CONFIG_INPUT_JOYSTICK is not set
1100# CONFIG_INPUT_TABLET is not set 1091# CONFIG_INPUT_TABLET is not set
@@ -1109,12 +1100,14 @@ CONFIG_SERIO=y
1109# CONFIG_SERIO_SERPORT is not set 1100# CONFIG_SERIO_SERPORT is not set
1110# CONFIG_SERIO_PCIPS2 is not set 1101# CONFIG_SERIO_PCIPS2 is not set
1111# CONFIG_SERIO_RAW is not set 1102# CONFIG_SERIO_RAW is not set
1103# CONFIG_SERIO_XILINX_XPS_PS2 is not set
1112# CONFIG_GAMEPORT is not set 1104# CONFIG_GAMEPORT is not set
1113 1105
1114# 1106#
1115# Character devices 1107# Character devices
1116# 1108#
1117CONFIG_VT=y 1109CONFIG_VT=y
1110CONFIG_CONSOLE_TRANSLATIONS=y
1118CONFIG_VT_CONSOLE=y 1111CONFIG_VT_CONSOLE=y
1119CONFIG_HW_CONSOLE=y 1112CONFIG_HW_CONSOLE=y
1120# CONFIG_VT_HW_CONSOLE_BINDING is not set 1113# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -1165,45 +1158,70 @@ CONFIG_DEVPORT=y
1165CONFIG_I2C=y 1158CONFIG_I2C=y
1166CONFIG_I2C_BOARDINFO=y 1159CONFIG_I2C_BOARDINFO=y
1167CONFIG_I2C_CHARDEV=m 1160CONFIG_I2C_CHARDEV=m
1161CONFIG_I2C_HELPER_AUTO=y
1168CONFIG_I2C_ALGOBIT=y 1162CONFIG_I2C_ALGOBIT=y
1169 1163
1170# 1164#
1171# I2C Hardware Bus support 1165# I2C Hardware Bus support
1172# 1166#
1167
1168#
1169# PC SMBus host controller drivers
1170#
1173# CONFIG_I2C_ALI1535 is not set 1171# CONFIG_I2C_ALI1535 is not set
1174# CONFIG_I2C_ALI1563 is not set 1172# CONFIG_I2C_ALI1563 is not set
1175# CONFIG_I2C_ALI15X3 is not set 1173# CONFIG_I2C_ALI15X3 is not set
1176# CONFIG_I2C_AMD756 is not set 1174# CONFIG_I2C_AMD756 is not set
1177# CONFIG_I2C_AMD8111 is not set 1175# CONFIG_I2C_AMD8111 is not set
1178# CONFIG_I2C_I801 is not set 1176# CONFIG_I2C_I801 is not set
1179# CONFIG_I2C_I810 is not set 1177# CONFIG_I2C_ISCH is not set
1180# CONFIG_I2C_PIIX4 is not set 1178# CONFIG_I2C_PIIX4 is not set
1181CONFIG_I2C_POWERMAC=y
1182# CONFIG_I2C_MPC is not set
1183# CONFIG_I2C_NFORCE2 is not set 1179# CONFIG_I2C_NFORCE2 is not set
1184# CONFIG_I2C_OCORES is not set
1185# CONFIG_I2C_PARPORT_LIGHT is not set
1186# CONFIG_I2C_PROSAVAGE is not set
1187# CONFIG_I2C_SAVAGE4 is not set
1188# CONFIG_I2C_SIMTEC is not set
1189# CONFIG_I2C_SIS5595 is not set 1180# CONFIG_I2C_SIS5595 is not set
1190# CONFIG_I2C_SIS630 is not set 1181# CONFIG_I2C_SIS630 is not set
1191# CONFIG_I2C_SIS96X is not set 1182# CONFIG_I2C_SIS96X is not set
1192# CONFIG_I2C_TAOS_EVM is not set
1193# CONFIG_I2C_STUB is not set
1194# CONFIG_I2C_TINY_USB is not set
1195# CONFIG_I2C_VIA is not set 1183# CONFIG_I2C_VIA is not set
1196# CONFIG_I2C_VIAPRO is not set 1184# CONFIG_I2C_VIAPRO is not set
1185
1186#
1187# Mac SMBus host controller drivers
1188#
1189CONFIG_I2C_POWERMAC=y
1190
1191#
1192# I2C system bus drivers (mostly embedded / system-on-chip)
1193#
1194# CONFIG_I2C_MPC is not set
1195# CONFIG_I2C_OCORES is not set
1196# CONFIG_I2C_SIMTEC is not set
1197
1198#
1199# External I2C/SMBus adapter drivers
1200#
1201# CONFIG_I2C_PARPORT_LIGHT is not set
1202# CONFIG_I2C_TAOS_EVM is not set
1203# CONFIG_I2C_TINY_USB is not set
1204
1205#
1206# Graphics adapter I2C/DDC channel drivers
1207#
1197# CONFIG_I2C_VOODOO3 is not set 1208# CONFIG_I2C_VOODOO3 is not set
1209
1210#
1211# Other I2C/SMBus bus drivers
1212#
1198# CONFIG_I2C_PCA_PLATFORM is not set 1213# CONFIG_I2C_PCA_PLATFORM is not set
1214# CONFIG_I2C_STUB is not set
1199 1215
1200# 1216#
1201# Miscellaneous I2C Chip support 1217# Miscellaneous I2C Chip support
1202# 1218#
1203# CONFIG_DS1682 is not set 1219# CONFIG_DS1682 is not set
1220# CONFIG_AT24 is not set
1204# CONFIG_SENSORS_EEPROM is not set 1221# CONFIG_SENSORS_EEPROM is not set
1205# CONFIG_SENSORS_PCF8574 is not set 1222# CONFIG_SENSORS_PCF8574 is not set
1206# CONFIG_PCF8575 is not set 1223# CONFIG_PCF8575 is not set
1224# CONFIG_SENSORS_PCA9539 is not set
1207# CONFIG_SENSORS_PCF8591 is not set 1225# CONFIG_SENSORS_PCF8591 is not set
1208# CONFIG_SENSORS_MAX6875 is not set 1226# CONFIG_SENSORS_MAX6875 is not set
1209# CONFIG_SENSORS_TSL2550 is not set 1227# CONFIG_SENSORS_TSL2550 is not set
@@ -1212,6 +1230,8 @@ CONFIG_I2C_POWERMAC=y
1212# CONFIG_I2C_DEBUG_BUS is not set 1230# CONFIG_I2C_DEBUG_BUS is not set
1213# CONFIG_I2C_DEBUG_CHIP is not set 1231# CONFIG_I2C_DEBUG_CHIP is not set
1214# CONFIG_SPI is not set 1232# CONFIG_SPI is not set
1233CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1234# CONFIG_GPIOLIB is not set
1215# CONFIG_W1 is not set 1235# CONFIG_W1 is not set
1216CONFIG_POWER_SUPPLY=y 1236CONFIG_POWER_SUPPLY=y
1217# CONFIG_POWER_SUPPLY_DEBUG is not set 1237# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -1221,6 +1241,7 @@ CONFIG_APM_POWER=y
1221CONFIG_BATTERY_PMU=y 1241CONFIG_BATTERY_PMU=y
1222# CONFIG_HWMON is not set 1242# CONFIG_HWMON is not set
1223# CONFIG_THERMAL is not set 1243# CONFIG_THERMAL is not set
1244# CONFIG_THERMAL_HWMON is not set
1224# CONFIG_WATCHDOG is not set 1245# CONFIG_WATCHDOG is not set
1225 1246
1226# 1247#
@@ -1241,8 +1262,10 @@ CONFIG_SSB_DRIVER_PCICORE=y
1241# 1262#
1242# Multifunction device drivers 1263# Multifunction device drivers
1243# 1264#
1265# CONFIG_MFD_CORE is not set
1244# CONFIG_MFD_SM501 is not set 1266# CONFIG_MFD_SM501 is not set
1245# CONFIG_HTC_PASIC3 is not set 1267# CONFIG_HTC_PASIC3 is not set
1268# CONFIG_MFD_TMIO is not set
1246 1269
1247# 1270#
1248# Multimedia devices 1271# Multimedia devices
@@ -1343,10 +1366,13 @@ CONFIG_FB_3DFX=y
1343# CONFIG_FB_TRIDENT is not set 1366# CONFIG_FB_TRIDENT is not set
1344# CONFIG_FB_ARK is not set 1367# CONFIG_FB_ARK is not set
1345# CONFIG_FB_PM3 is not set 1368# CONFIG_FB_PM3 is not set
1369# CONFIG_FB_CARMINE is not set
1346# CONFIG_FB_IBM_GXT4500 is not set 1370# CONFIG_FB_IBM_GXT4500 is not set
1347# CONFIG_FB_VIRTUAL is not set 1371# CONFIG_FB_VIRTUAL is not set
1348CONFIG_BACKLIGHT_LCD_SUPPORT=y 1372CONFIG_BACKLIGHT_LCD_SUPPORT=y
1349CONFIG_LCD_CLASS_DEVICE=m 1373CONFIG_LCD_CLASS_DEVICE=m
1374# CONFIG_LCD_ILI9320 is not set
1375# CONFIG_LCD_PLATFORM is not set
1350CONFIG_BACKLIGHT_CLASS_DEVICE=y 1376CONFIG_BACKLIGHT_CLASS_DEVICE=y
1351# CONFIG_BACKLIGHT_CORGI is not set 1377# CONFIG_BACKLIGHT_CORGI is not set
1352 1378
@@ -1374,15 +1400,7 @@ CONFIG_LOGO=y
1374CONFIG_LOGO_LINUX_MONO=y 1400CONFIG_LOGO_LINUX_MONO=y
1375CONFIG_LOGO_LINUX_VGA16=y 1401CONFIG_LOGO_LINUX_VGA16=y
1376CONFIG_LOGO_LINUX_CLUT224=y 1402CONFIG_LOGO_LINUX_CLUT224=y
1377
1378#
1379# Sound
1380#
1381CONFIG_SOUND=m 1403CONFIG_SOUND=m
1382
1383#
1384# Advanced Linux Sound Architecture
1385#
1386CONFIG_SND=m 1404CONFIG_SND=m
1387CONFIG_SND_TIMER=m 1405CONFIG_SND_TIMER=m
1388CONFIG_SND_PCM=m 1406CONFIG_SND_PCM=m
@@ -1400,19 +1418,13 @@ CONFIG_SND_SUPPORT_OLD_API=y
1400CONFIG_SND_VERBOSE_PROCFS=y 1418CONFIG_SND_VERBOSE_PROCFS=y
1401# CONFIG_SND_VERBOSE_PRINTK is not set 1419# CONFIG_SND_VERBOSE_PRINTK is not set
1402# CONFIG_SND_DEBUG is not set 1420# CONFIG_SND_DEBUG is not set
1403 1421CONFIG_SND_DRIVERS=y
1404#
1405# Generic devices
1406#
1407CONFIG_SND_DUMMY=m 1422CONFIG_SND_DUMMY=m
1408# CONFIG_SND_VIRMIDI is not set 1423# CONFIG_SND_VIRMIDI is not set
1409# CONFIG_SND_MTPAV is not set 1424# CONFIG_SND_MTPAV is not set
1410# CONFIG_SND_SERIAL_U16550 is not set 1425# CONFIG_SND_SERIAL_U16550 is not set
1411# CONFIG_SND_MPU401 is not set 1426# CONFIG_SND_MPU401 is not set
1412 1427CONFIG_SND_PCI=y
1413#
1414# PCI devices
1415#
1416# CONFIG_SND_AD1889 is not set 1428# CONFIG_SND_AD1889 is not set
1417# CONFIG_SND_ALS300 is not set 1429# CONFIG_SND_ALS300 is not set
1418# CONFIG_SND_ALS4000 is not set 1430# CONFIG_SND_ALS4000 is not set
@@ -1474,20 +1486,9 @@ CONFIG_SND_DUMMY=m
1474# CONFIG_SND_VIRTUOSO is not set 1486# CONFIG_SND_VIRTUOSO is not set
1475# CONFIG_SND_VX222 is not set 1487# CONFIG_SND_VX222 is not set
1476# CONFIG_SND_YMFPCI is not set 1488# CONFIG_SND_YMFPCI is not set
1477 1489CONFIG_SND_PPC=y
1478#
1479# ALSA PowerMac devices
1480#
1481CONFIG_SND_POWERMAC=m 1490CONFIG_SND_POWERMAC=m
1482CONFIG_SND_POWERMAC_AUTO_DRC=y 1491CONFIG_SND_POWERMAC_AUTO_DRC=y
1483
1484#
1485# ALSA PowerPC devices
1486#
1487
1488#
1489# Apple Onboard Audio driver
1490#
1491CONFIG_SND_AOA=m 1492CONFIG_SND_AOA=m
1492CONFIG_SND_AOA_FABRIC_LAYOUT=m 1493CONFIG_SND_AOA_FABRIC_LAYOUT=m
1493CONFIG_SND_AOA_ONYX=m 1494CONFIG_SND_AOA_ONYX=m
@@ -1495,36 +1496,14 @@ CONFIG_SND_AOA_TAS=m
1495CONFIG_SND_AOA_TOONIE=m 1496CONFIG_SND_AOA_TOONIE=m
1496CONFIG_SND_AOA_SOUNDBUS=m 1497CONFIG_SND_AOA_SOUNDBUS=m
1497CONFIG_SND_AOA_SOUNDBUS_I2S=m 1498CONFIG_SND_AOA_SOUNDBUS_I2S=m
1498 1499CONFIG_SND_USB=y
1499#
1500# USB devices
1501#
1502CONFIG_SND_USB_AUDIO=m 1500CONFIG_SND_USB_AUDIO=m
1503# CONFIG_SND_USB_USX2Y is not set 1501# CONFIG_SND_USB_USX2Y is not set
1504# CONFIG_SND_USB_CAIAQ is not set 1502# CONFIG_SND_USB_CAIAQ is not set
1505 1503CONFIG_SND_PCMCIA=y
1506#
1507# PCMCIA devices
1508#
1509# CONFIG_SND_VXPOCKET is not set 1504# CONFIG_SND_VXPOCKET is not set
1510# CONFIG_SND_PDAUDIOCF is not set 1505# CONFIG_SND_PDAUDIOCF is not set
1511
1512#
1513# System on Chip audio support
1514#
1515# CONFIG_SND_SOC is not set 1506# CONFIG_SND_SOC is not set
1516
1517#
1518# ALSA SoC audio for Freescale SOCs
1519#
1520
1521#
1522# SoC Audio for the Texas Instruments OMAP
1523#
1524
1525#
1526# Open Sound System
1527#
1528# CONFIG_SOUND_PRIME is not set 1507# CONFIG_SOUND_PRIME is not set
1529CONFIG_HID_SUPPORT=y 1508CONFIG_HID_SUPPORT=y
1530CONFIG_HID=y 1509CONFIG_HID=y
@@ -1554,6 +1533,7 @@ CONFIG_USB_DEVICE_CLASS=y
1554CONFIG_USB_DYNAMIC_MINORS=y 1533CONFIG_USB_DYNAMIC_MINORS=y
1555# CONFIG_USB_SUSPEND is not set 1534# CONFIG_USB_SUSPEND is not set
1556# CONFIG_USB_OTG is not set 1535# CONFIG_USB_OTG is not set
1536CONFIG_USB_MON=y
1557 1537
1558# 1538#
1559# USB Host Controller Drivers 1539# USB Host Controller Drivers
@@ -1579,6 +1559,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1579# 1559#
1580CONFIG_USB_ACM=m 1560CONFIG_USB_ACM=m
1581CONFIG_USB_PRINTER=m 1561CONFIG_USB_PRINTER=m
1562# CONFIG_USB_WDM is not set
1582 1563
1583# 1564#
1584# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1565# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1600,6 +1581,7 @@ CONFIG_USB_STORAGE=m
1600# CONFIG_USB_STORAGE_ALAUDA is not set 1581# CONFIG_USB_STORAGE_ALAUDA is not set
1601CONFIG_USB_STORAGE_ONETOUCH=y 1582CONFIG_USB_STORAGE_ONETOUCH=y
1602# CONFIG_USB_STORAGE_KARMA is not set 1583# CONFIG_USB_STORAGE_KARMA is not set
1584# CONFIG_USB_STORAGE_SIERRA is not set
1603# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1585# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1604# CONFIG_USB_LIBUSUAL is not set 1586# CONFIG_USB_LIBUSUAL is not set
1605 1587
@@ -1608,7 +1590,6 @@ CONFIG_USB_STORAGE_ONETOUCH=y
1608# 1590#
1609# CONFIG_USB_MDC800 is not set 1591# CONFIG_USB_MDC800 is not set
1610# CONFIG_USB_MICROTEK is not set 1592# CONFIG_USB_MICROTEK is not set
1611CONFIG_USB_MON=y
1612 1593
1613# 1594#
1614# USB port drivers 1595# USB port drivers
@@ -1617,7 +1598,6 @@ CONFIG_USB_SERIAL=m
1617CONFIG_USB_EZUSB=y 1598CONFIG_USB_EZUSB=y
1618# CONFIG_USB_SERIAL_GENERIC is not set 1599# CONFIG_USB_SERIAL_GENERIC is not set
1619# CONFIG_USB_SERIAL_AIRCABLE is not set 1600# CONFIG_USB_SERIAL_AIRCABLE is not set
1620# CONFIG_USB_SERIAL_AIRPRIME is not set
1621# CONFIG_USB_SERIAL_ARK3116 is not set 1601# CONFIG_USB_SERIAL_ARK3116 is not set
1622# CONFIG_USB_SERIAL_BELKIN is not set 1602# CONFIG_USB_SERIAL_BELKIN is not set
1623# CONFIG_USB_SERIAL_CH341 is not set 1603# CONFIG_USB_SERIAL_CH341 is not set
@@ -1676,7 +1656,6 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1676# CONFIG_USB_EMI62 is not set 1656# CONFIG_USB_EMI62 is not set
1677# CONFIG_USB_EMI26 is not set 1657# CONFIG_USB_EMI26 is not set
1678# CONFIG_USB_ADUTUX is not set 1658# CONFIG_USB_ADUTUX is not set
1679# CONFIG_USB_AUERSWALD is not set
1680# CONFIG_USB_RIO500 is not set 1659# CONFIG_USB_RIO500 is not set
1681# CONFIG_USB_LEGOTOWER is not set 1660# CONFIG_USB_LEGOTOWER is not set
1682# CONFIG_USB_LCD is not set 1661# CONFIG_USB_LCD is not set
@@ -1693,6 +1672,7 @@ CONFIG_USB_APPLEDISPLAY=m
1693# CONFIG_USB_TRANCEVIBRATOR is not set 1672# CONFIG_USB_TRANCEVIBRATOR is not set
1694# CONFIG_USB_IOWARRIOR is not set 1673# CONFIG_USB_IOWARRIOR is not set
1695# CONFIG_USB_TEST is not set 1674# CONFIG_USB_TEST is not set
1675# CONFIG_USB_ISIGHTFW is not set
1696# CONFIG_USB_GADGET is not set 1676# CONFIG_USB_GADGET is not set
1697# CONFIG_MMC is not set 1677# CONFIG_MMC is not set
1698# CONFIG_MEMSTICK is not set 1678# CONFIG_MEMSTICK is not set
@@ -1702,6 +1682,8 @@ CONFIG_LEDS_CLASS=y
1702# 1682#
1703# LED drivers 1683# LED drivers
1704# 1684#
1685# CONFIG_LEDS_PCA9532 is not set
1686# CONFIG_LEDS_PCA955X is not set
1705 1687
1706# 1688#
1707# LED Triggers 1689# LED Triggers
@@ -1789,6 +1771,7 @@ CONFIG_HFSPLUS_FS=m
1789# CONFIG_CRAMFS is not set 1771# CONFIG_CRAMFS is not set
1790# CONFIG_VXFS_FS is not set 1772# CONFIG_VXFS_FS is not set
1791# CONFIG_MINIX_FS is not set 1773# CONFIG_MINIX_FS is not set
1774# CONFIG_OMFS_FS is not set
1792# CONFIG_HPFS_FS is not set 1775# CONFIG_HPFS_FS is not set
1793# CONFIG_QNX4FS_FS is not set 1776# CONFIG_QNX4FS_FS is not set
1794# CONFIG_ROMFS_FS is not set 1777# CONFIG_ROMFS_FS is not set
@@ -1811,7 +1794,6 @@ CONFIG_NFS_ACL_SUPPORT=y
1811CONFIG_NFS_COMMON=y 1794CONFIG_NFS_COMMON=y
1812CONFIG_SUNRPC=y 1795CONFIG_SUNRPC=y
1813CONFIG_SUNRPC_GSS=y 1796CONFIG_SUNRPC_GSS=y
1814# CONFIG_SUNRPC_BIND34 is not set
1815CONFIG_RPCSEC_GSS_KRB5=y 1797CONFIG_RPCSEC_GSS_KRB5=y
1816# CONFIG_RPCSEC_GSS_SPKM3 is not set 1798# CONFIG_RPCSEC_GSS_SPKM3 is not set
1817CONFIG_SMB_FS=m 1799CONFIG_SMB_FS=m
@@ -1891,6 +1873,7 @@ CONFIG_BITREVERSE=y
1891# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1873# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1892CONFIG_CRC_CCITT=y 1874CONFIG_CRC_CCITT=y
1893CONFIG_CRC16=y 1875CONFIG_CRC16=y
1876CONFIG_CRC_T10DIF=y
1894CONFIG_CRC_ITU_T=m 1877CONFIG_CRC_ITU_T=m
1895CONFIG_CRC32=y 1878CONFIG_CRC32=y
1896# CONFIG_CRC7 is not set 1879# CONFIG_CRC7 is not set
@@ -1921,8 +1904,10 @@ CONFIG_MAGIC_SYSRQ=y
1921CONFIG_DEBUG_KERNEL=y 1904CONFIG_DEBUG_KERNEL=y
1922# CONFIG_DEBUG_SHIRQ is not set 1905# CONFIG_DEBUG_SHIRQ is not set
1923CONFIG_DETECT_SOFTLOCKUP=y 1906CONFIG_DETECT_SOFTLOCKUP=y
1907# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1908CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1924CONFIG_SCHED_DEBUG=y 1909CONFIG_SCHED_DEBUG=y
1925# CONFIG_SCHEDSTATS is not set 1910CONFIG_SCHEDSTATS=y
1926# CONFIG_TIMER_STATS is not set 1911# CONFIG_TIMER_STATS is not set
1927# CONFIG_DEBUG_OBJECTS is not set 1912# CONFIG_DEBUG_OBJECTS is not set
1928# CONFIG_SLUB_DEBUG_ON is not set 1913# CONFIG_SLUB_DEBUG_ON is not set
@@ -1933,24 +1918,38 @@ CONFIG_SCHED_DEBUG=y
1933# CONFIG_DEBUG_MUTEXES is not set 1918# CONFIG_DEBUG_MUTEXES is not set
1934# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1919# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1935# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1920# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1921CONFIG_STACKTRACE=y
1936# CONFIG_DEBUG_KOBJECT is not set 1922# CONFIG_DEBUG_KOBJECT is not set
1937CONFIG_DEBUG_BUGVERBOSE=y 1923CONFIG_DEBUG_BUGVERBOSE=y
1938# CONFIG_DEBUG_INFO is not set 1924# CONFIG_DEBUG_INFO is not set
1939# CONFIG_DEBUG_VM is not set 1925# CONFIG_DEBUG_VM is not set
1940# CONFIG_DEBUG_WRITECOUNT is not set 1926# CONFIG_DEBUG_WRITECOUNT is not set
1927CONFIG_DEBUG_MEMORY_INIT=y
1941# CONFIG_DEBUG_LIST is not set 1928# CONFIG_DEBUG_LIST is not set
1942# CONFIG_DEBUG_SG is not set 1929# CONFIG_DEBUG_SG is not set
1930CONFIG_FRAME_POINTER=y
1943# CONFIG_BOOT_PRINTK_DELAY is not set 1931# CONFIG_BOOT_PRINTK_DELAY is not set
1944# CONFIG_RCU_TORTURE_TEST is not set 1932# CONFIG_RCU_TORTURE_TEST is not set
1945# CONFIG_BACKTRACE_SELF_TEST is not set 1933# CONFIG_BACKTRACE_SELF_TEST is not set
1946# CONFIG_FAULT_INJECTION is not set 1934# CONFIG_FAULT_INJECTION is not set
1935CONFIG_LATENCYTOP=y
1936CONFIG_SYSCTL_SYSCALL_CHECK=y
1937CONFIG_HAVE_FTRACE=y
1938CONFIG_HAVE_DYNAMIC_FTRACE=y
1939# CONFIG_FTRACE is not set
1940# CONFIG_SCHED_TRACER is not set
1941# CONFIG_CONTEXT_SWITCH_TRACER is not set
1947# CONFIG_SAMPLES is not set 1942# CONFIG_SAMPLES is not set
1943CONFIG_HAVE_ARCH_KGDB=y
1944# CONFIG_KGDB is not set
1948# CONFIG_DEBUG_STACKOVERFLOW is not set 1945# CONFIG_DEBUG_STACKOVERFLOW is not set
1949# CONFIG_DEBUG_STACK_USAGE is not set 1946# CONFIG_DEBUG_STACK_USAGE is not set
1950CONFIG_DEBUGGER=y 1947# CONFIG_CODE_PATCHING_SELFTEST is not set
1948# CONFIG_FTR_FIXUP_SELFTEST is not set
1951CONFIG_XMON=y 1949CONFIG_XMON=y
1952CONFIG_XMON_DEFAULT=y 1950CONFIG_XMON_DEFAULT=y
1953CONFIG_XMON_DISASSEMBLY=y 1951CONFIG_XMON_DISASSEMBLY=y
1952CONFIG_DEBUGGER=y
1954CONFIG_IRQSTACKS=y 1953CONFIG_IRQSTACKS=y
1955# CONFIG_BDI_SWITCH is not set 1954# CONFIG_BDI_SWITCH is not set
1956CONFIG_BOOTX_TEXT=y 1955CONFIG_BOOTX_TEXT=y
@@ -2009,6 +2008,10 @@ CONFIG_CRYPTO_CRC32C=m
2009CONFIG_CRYPTO_MD4=m 2008CONFIG_CRYPTO_MD4=m
2010CONFIG_CRYPTO_MD5=y 2009CONFIG_CRYPTO_MD5=y
2011CONFIG_CRYPTO_MICHAEL_MIC=m 2010CONFIG_CRYPTO_MICHAEL_MIC=m
2011# CONFIG_CRYPTO_RMD128 is not set
2012# CONFIG_CRYPTO_RMD160 is not set
2013# CONFIG_CRYPTO_RMD256 is not set
2014# CONFIG_CRYPTO_RMD320 is not set
2012CONFIG_CRYPTO_SHA1=y 2015CONFIG_CRYPTO_SHA1=y
2013CONFIG_CRYPTO_SHA256=m 2016CONFIG_CRYPTO_SHA256=m
2014CONFIG_CRYPTO_SHA512=m 2017CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig
index ce250bc98584..fc5930caeb5f 100644
--- a/arch/powerpc/configs/ppc64_defconfig
+++ b/arch/powerpc/configs/ppc64_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.26-rc6 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 16 21:11:19 2008 4# Tue Aug 26 13:22:03 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -14,6 +14,7 @@ CONFIG_POWER4=y
14# CONFIG_TUNE_CELL is not set 14# CONFIG_TUNE_CELL is not set
15CONFIG_PPC_FPU=y 15CONFIG_PPC_FPU=y
16CONFIG_ALTIVEC=y 16CONFIG_ALTIVEC=y
17CONFIG_VSX=y
17CONFIG_PPC_STD_MMU=y 18CONFIG_PPC_STD_MMU=y
18CONFIG_PPC_MM_SLICES=y 19CONFIG_PPC_MM_SLICES=y
19CONFIG_VIRT_CPU_ACCOUNTING=y 20CONFIG_VIRT_CPU_ACCOUNTING=y
@@ -31,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y 32CONFIG_HAVE_SETUP_PER_CPU_AREA=y
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y 36CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -105,7 +107,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
105CONFIG_SYSCTL=y 107CONFIG_SYSCTL=y
106# CONFIG_EMBEDDED is not set 108# CONFIG_EMBEDDED is not set
107CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
108CONFIG_SYSCTL_SYSCALL_CHECK=y
109CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
110CONFIG_KALLSYMS_ALL=y 111CONFIG_KALLSYMS_ALL=y
111# CONFIG_KALLSYMS_EXTRA_PASS is not set 112# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -129,14 +130,20 @@ CONFIG_SLUB_DEBUG=y
129CONFIG_SLUB=y 130CONFIG_SLUB=y
130# CONFIG_SLOB is not set 131# CONFIG_SLOB is not set
131CONFIG_PROFILING=y 132CONFIG_PROFILING=y
132# CONFIG_MARKERS is not set 133CONFIG_MARKERS=y
133CONFIG_OPROFILE=y 134CONFIG_OPROFILE=y
134CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
135# CONFIG_KPROBES is not set 136# CONFIG_KPROBES is not set
137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
138CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 139CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 140CONFIG_HAVE_KRETPROBES=y
138# CONFIG_HAVE_DMA_ATTRS is not set 141CONFIG_HAVE_ARCH_TRACEHOOK=y
142CONFIG_HAVE_DMA_ATTRS=y
143CONFIG_USE_GENERIC_SMP_HELPERS=y
144# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 145CONFIG_PROC_PAGE_MONITOR=y
146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
140CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 149# CONFIG_TINY_SHMEM is not set
@@ -152,6 +159,7 @@ CONFIG_STOP_MACHINE=y
152CONFIG_BLOCK=y 159CONFIG_BLOCK=y
153CONFIG_BLK_DEV_IO_TRACE=y 160CONFIG_BLK_DEV_IO_TRACE=y
154CONFIG_BLK_DEV_BSG=y 161CONFIG_BLK_DEV_BSG=y
162# CONFIG_BLK_DEV_INTEGRITY is not set
155CONFIG_BLOCK_COMPAT=y 163CONFIG_BLOCK_COMPAT=y
156 164
157# 165#
@@ -172,14 +180,13 @@ CONFIG_CLASSIC_RCU=y
172# Platform support 180# Platform support
173# 181#
174CONFIG_PPC_MULTIPLATFORM=y 182CONFIG_PPC_MULTIPLATFORM=y
175# CONFIG_PPC_82xx is not set
176# CONFIG_PPC_83xx is not set
177# CONFIG_PPC_86xx is not set
178CONFIG_PPC_PSERIES=y 183CONFIG_PPC_PSERIES=y
179CONFIG_PPC_SPLPAR=y 184CONFIG_PPC_SPLPAR=y
180CONFIG_EEH=y 185CONFIG_EEH=y
181CONFIG_SCANLOG=m 186CONFIG_SCANLOG=m
182CONFIG_LPARCFG=y 187CONFIG_LPARCFG=y
188CONFIG_PPC_SMLPAR=y
189CONFIG_CMM=y
183CONFIG_PPC_ISERIES=y 190CONFIG_PPC_ISERIES=y
184 191
185# 192#
@@ -189,8 +196,6 @@ CONFIG_VIODASD=y
189CONFIG_VIOCD=m 196CONFIG_VIOCD=m
190CONFIG_VIOTAPE=m 197CONFIG_VIOTAPE=m
191CONFIG_VIOPATH=y 198CONFIG_VIOPATH=y
192# CONFIG_PPC_MPC512x is not set
193# CONFIG_PPC_MPC5121 is not set
194CONFIG_PPC_PMAC=y 199CONFIG_PPC_PMAC=y
195CONFIG_PPC_PMAC64=y 200CONFIG_PPC_PMAC64=y
196CONFIG_PPC_MAPLE=y 201CONFIG_PPC_MAPLE=y
@@ -213,11 +218,15 @@ CONFIG_PPC_CELLEB=y
213# 218#
214CONFIG_SPU_FS=m 219CONFIG_SPU_FS=m
215CONFIG_SPU_FS_64K_LS=y 220CONFIG_SPU_FS_64K_LS=y
221# CONFIG_SPU_TRACE is not set
216CONFIG_SPU_BASE=y 222CONFIG_SPU_BASE=y
217CONFIG_CBE_RAS=y 223CONFIG_CBE_RAS=y
224CONFIG_PPC_IBM_CELL_RESETBUTTON=y
225CONFIG_PPC_IBM_CELL_POWERBUTTON=m
218CONFIG_CBE_THERM=m 226CONFIG_CBE_THERM=m
219CONFIG_CBE_CPUFREQ=m 227CONFIG_CBE_CPUFREQ=m
220CONFIG_CBE_CPUFREQ_PMI=m 228CONFIG_CBE_CPUFREQ_PMI=m
229CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m
221CONFIG_OPROFILE_CELL=y 230CONFIG_OPROFILE_CELL=y
222# CONFIG_PQ2ADS is not set 231# CONFIG_PQ2ADS is not set
223CONFIG_PPC_NATIVE=y 232CONFIG_PPC_NATIVE=y
@@ -279,7 +288,7 @@ CONFIG_HZ_250=y
279# CONFIG_HZ_300 is not set 288# CONFIG_HZ_300 is not set
280# CONFIG_HZ_1000 is not set 289# CONFIG_HZ_1000 is not set
281CONFIG_HZ=250 290CONFIG_HZ=250
282# CONFIG_SCHED_HRTICK is not set 291CONFIG_SCHED_HRTICK=y
283CONFIG_PREEMPT_NONE=y 292CONFIG_PREEMPT_NONE=y
284# CONFIG_PREEMPT_VOLUNTARY is not set 293# CONFIG_PREEMPT_VOLUNTARY is not set
285# CONFIG_PREEMPT is not set 294# CONFIG_PREEMPT is not set
@@ -315,8 +324,10 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
315CONFIG_SPARSEMEM_VMEMMAP=y 324CONFIG_SPARSEMEM_VMEMMAP=y
316CONFIG_MEMORY_HOTPLUG=y 325CONFIG_MEMORY_HOTPLUG=y
317CONFIG_MEMORY_HOTPLUG_SPARSE=y 326CONFIG_MEMORY_HOTPLUG_SPARSE=y
327CONFIG_MEMORY_HOTREMOVE=y
318CONFIG_PAGEFLAGS_EXTENDED=y 328CONFIG_PAGEFLAGS_EXTENDED=y
319CONFIG_SPLIT_PTLOCK_CPUS=4 329CONFIG_SPLIT_PTLOCK_CPUS=4
330CONFIG_MIGRATION=y
320CONFIG_RESOURCES_64BIT=y 331CONFIG_RESOURCES_64BIT=y
321CONFIG_ZONE_DMA_FLAG=1 332CONFIG_ZONE_DMA_FLAG=1
322CONFIG_BOUNCE=y 333CONFIG_BOUNCE=y
@@ -327,6 +338,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
327# CONFIG_SCHED_SMT is not set 338# CONFIG_SCHED_SMT is not set
328CONFIG_PROC_DEVICETREE=y 339CONFIG_PROC_DEVICETREE=y
329# CONFIG_CMDLINE_BOOL is not set 340# CONFIG_CMDLINE_BOOL is not set
341CONFIG_EXTRA_TARGETS=""
330CONFIG_ARCH_WANTS_FREEZER_CONTROL=y 342CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
331# CONFIG_PM is not set 343# CONFIG_PM is not set
332CONFIG_SECCOMP=y 344CONFIG_SECCOMP=y
@@ -370,10 +382,6 @@ CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
370CONFIG_PAGE_OFFSET=0xc000000000000000 382CONFIG_PAGE_OFFSET=0xc000000000000000
371CONFIG_KERNEL_START=0xc000000000000000 383CONFIG_KERNEL_START=0xc000000000000000
372CONFIG_PHYSICAL_START=0x00000000 384CONFIG_PHYSICAL_START=0x00000000
373
374#
375# Networking
376#
377CONFIG_NET=y 385CONFIG_NET=y
378 386
379# 387#
@@ -387,6 +395,7 @@ CONFIG_XFRM_USER=m
387# CONFIG_XFRM_SUB_POLICY is not set 395# CONFIG_XFRM_SUB_POLICY is not set
388# CONFIG_XFRM_MIGRATE is not set 396# CONFIG_XFRM_MIGRATE is not set
389# CONFIG_XFRM_STATISTICS is not set 397# CONFIG_XFRM_STATISTICS is not set
398CONFIG_XFRM_IPCOMP=m
390CONFIG_NET_KEY=m 399CONFIG_NET_KEY=m
391# CONFIG_NET_KEY_MIGRATE is not set 400# CONFIG_NET_KEY_MIGRATE is not set
392CONFIG_INET=y 401CONFIG_INET=y
@@ -578,6 +587,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
578CONFIG_STANDALONE=y 587CONFIG_STANDALONE=y
579CONFIG_PREVENT_FIRMWARE_BUILD=y 588CONFIG_PREVENT_FIRMWARE_BUILD=y
580CONFIG_FW_LOADER=y 589CONFIG_FW_LOADER=y
590CONFIG_FIRMWARE_IN_KERNEL=y
591CONFIG_EXTRA_FIRMWARE=""
581# CONFIG_DEBUG_DRIVER is not set 592# CONFIG_DEBUG_DRIVER is not set
582# CONFIG_DEBUG_DEVRES is not set 593# CONFIG_DEBUG_DEVRES is not set
583# CONFIG_SYS_HYPERVISOR is not set 594# CONFIG_SYS_HYPERVISOR is not set
@@ -603,12 +614,14 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
603# CONFIG_BLK_DEV_XIP is not set 614# CONFIG_BLK_DEV_XIP is not set
604# CONFIG_CDROM_PKTCDVD is not set 615# CONFIG_CDROM_PKTCDVD is not set
605# CONFIG_ATA_OVER_ETH is not set 616# CONFIG_ATA_OVER_ETH is not set
617# CONFIG_BLK_DEV_HD is not set
606CONFIG_MISC_DEVICES=y 618CONFIG_MISC_DEVICES=y
607# CONFIG_PHANTOM is not set 619# CONFIG_PHANTOM is not set
608# CONFIG_EEPROM_93CX6 is not set 620# CONFIG_EEPROM_93CX6 is not set
609# CONFIG_SGI_IOC4 is not set 621# CONFIG_SGI_IOC4 is not set
610# CONFIG_TIFM_CORE is not set 622# CONFIG_TIFM_CORE is not set
611# CONFIG_ENCLOSURE_SERVICES is not set 623# CONFIG_ENCLOSURE_SERVICES is not set
624# CONFIG_HP_ILO is not set
612CONFIG_HAVE_IDE=y 625CONFIG_HAVE_IDE=y
613CONFIG_IDE=y 626CONFIG_IDE=y
614CONFIG_BLK_DEV_IDE=y 627CONFIG_BLK_DEV_IDE=y
@@ -616,6 +629,7 @@ CONFIG_BLK_DEV_IDE=y
616# 629#
617# Please see Documentation/ide/ide.txt for help/info on IDE drives 630# Please see Documentation/ide/ide.txt for help/info on IDE drives
618# 631#
632CONFIG_IDE_TIMINGS=y
619# CONFIG_BLK_DEV_IDE_SATA is not set 633# CONFIG_BLK_DEV_IDE_SATA is not set
620CONFIG_BLK_DEV_IDEDISK=y 634CONFIG_BLK_DEV_IDEDISK=y
621# CONFIG_IDEDISK_MULTI_MODE is not set 635# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -649,10 +663,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
649CONFIG_BLK_DEV_AMD74XX=y 663CONFIG_BLK_DEV_AMD74XX=y
650# CONFIG_BLK_DEV_CMD64X is not set 664# CONFIG_BLK_DEV_CMD64X is not set
651# CONFIG_BLK_DEV_TRIFLEX is not set 665# CONFIG_BLK_DEV_TRIFLEX is not set
652# CONFIG_BLK_DEV_CY82C693 is not set
653# CONFIG_BLK_DEV_CS5520 is not set 666# CONFIG_BLK_DEV_CS5520 is not set
654# CONFIG_BLK_DEV_CS5530 is not set 667# CONFIG_BLK_DEV_CS5530 is not set
655# CONFIG_BLK_DEV_HPT34X is not set
656# CONFIG_BLK_DEV_HPT366 is not set 668# CONFIG_BLK_DEV_HPT366 is not set
657# CONFIG_BLK_DEV_JMICRON is not set 669# CONFIG_BLK_DEV_JMICRON is not set
658# CONFIG_BLK_DEV_SC1200 is not set 670# CONFIG_BLK_DEV_SC1200 is not set
@@ -674,8 +686,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
674CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 686CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
675CONFIG_BLK_DEV_IDEDMA_PMAC=y 687CONFIG_BLK_DEV_IDEDMA_PMAC=y
676CONFIG_BLK_DEV_IDEDMA=y 688CONFIG_BLK_DEV_IDEDMA=y
677# CONFIG_BLK_DEV_HD_ONLY is not set
678# CONFIG_BLK_DEV_HD is not set
679 689
680# 690#
681# SCSI device support 691# SCSI device support
@@ -737,6 +747,8 @@ CONFIG_SCSI_LOWLEVEL=y
737# CONFIG_SCSI_GDTH is not set 747# CONFIG_SCSI_GDTH is not set
738# CONFIG_SCSI_IPS is not set 748# CONFIG_SCSI_IPS is not set
739CONFIG_SCSI_IBMVSCSI=y 749CONFIG_SCSI_IBMVSCSI=y
750CONFIG_SCSI_IBMVFC=m
751CONFIG_SCSI_IBMVFC_TRACE=y
740# CONFIG_SCSI_INITIO is not set 752# CONFIG_SCSI_INITIO is not set
741# CONFIG_SCSI_INIA100 is not set 753# CONFIG_SCSI_INIA100 is not set
742# CONFIG_SCSI_MVSAS is not set 754# CONFIG_SCSI_MVSAS is not set
@@ -758,6 +770,7 @@ CONFIG_SCSI_LPFC=m
758CONFIG_SCSI_DEBUG=m 770CONFIG_SCSI_DEBUG=m
759# CONFIG_SCSI_SRP is not set 771# CONFIG_SCSI_SRP is not set
760# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 772# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
773# CONFIG_SCSI_DH is not set
761CONFIG_ATA=y 774CONFIG_ATA=y
762CONFIG_ATA_NONSTANDARD=y 775CONFIG_ATA_NONSTANDARD=y
763CONFIG_SATA_PMP=y 776CONFIG_SATA_PMP=y
@@ -837,9 +850,6 @@ CONFIG_DM_SNAPSHOT=m
837CONFIG_DM_MIRROR=m 850CONFIG_DM_MIRROR=m
838CONFIG_DM_ZERO=m 851CONFIG_DM_ZERO=m
839CONFIG_DM_MULTIPATH=m 852CONFIG_DM_MULTIPATH=m
840CONFIG_DM_MULTIPATH_EMC=m
841# CONFIG_DM_MULTIPATH_RDAC is not set
842# CONFIG_DM_MULTIPATH_HP is not set
843# CONFIG_DM_DELAY is not set 853# CONFIG_DM_DELAY is not set
844# CONFIG_DM_UEVENT is not set 854# CONFIG_DM_UEVENT is not set
845# CONFIG_FUSION is not set 855# CONFIG_FUSION is not set
@@ -847,29 +857,21 @@ CONFIG_DM_MULTIPATH_EMC=m
847# 857#
848# IEEE 1394 (FireWire) support 858# IEEE 1394 (FireWire) support
849# 859#
850# CONFIG_FIREWIRE is not set
851CONFIG_IEEE1394=y
852
853#
854# Subsystem Options
855#
856# CONFIG_IEEE1394_VERBOSEDEBUG is not set
857 860
858# 861#
859# Controllers 862# Enable only one of the two stacks, unless you know what you are doing
860# 863#
861# CONFIG_IEEE1394_PCILYNX is not set 864# CONFIG_FIREWIRE is not set
865CONFIG_IEEE1394=y
862CONFIG_IEEE1394_OHCI1394=y 866CONFIG_IEEE1394_OHCI1394=y
863 867# CONFIG_IEEE1394_PCILYNX is not set
864#
865# Protocols
866#
867CONFIG_IEEE1394_VIDEO1394=m
868CONFIG_IEEE1394_SBP2=m 868CONFIG_IEEE1394_SBP2=m
869CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y 869CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
870CONFIG_IEEE1394_ETH1394=m 870CONFIG_IEEE1394_ETH1394=m
871CONFIG_IEEE1394_DV1394=m
872CONFIG_IEEE1394_RAWIO=y 871CONFIG_IEEE1394_RAWIO=y
872CONFIG_IEEE1394_VIDEO1394=m
873CONFIG_IEEE1394_DV1394=m
874# CONFIG_IEEE1394_VERBOSEDEBUG is not set
873# CONFIG_I2O is not set 875# CONFIG_I2O is not set
874CONFIG_MACINTOSH_DRIVERS=y 876CONFIG_MACINTOSH_DRIVERS=y
875CONFIG_ADB_PMU=y 877CONFIG_ADB_PMU=y
@@ -884,7 +886,6 @@ CONFIG_WINDFARM_PM112=y
884CONFIG_WINDFARM_PM121=y 886CONFIG_WINDFARM_PM121=y
885# CONFIG_PMAC_RACKMETER is not set 887# CONFIG_PMAC_RACKMETER is not set
886CONFIG_NETDEVICES=y 888CONFIG_NETDEVICES=y
887# CONFIG_NETDEVICES_MULTIQUEUE is not set
888CONFIG_DUMMY=m 889CONFIG_DUMMY=m
889CONFIG_BONDING=m 890CONFIG_BONDING=m
890# CONFIG_MACVLAN is not set 891# CONFIG_MACVLAN is not set
@@ -942,6 +943,7 @@ CONFIG_E100=y
942# CONFIG_SIS900 is not set 943# CONFIG_SIS900 is not set
943# CONFIG_EPIC100 is not set 944# CONFIG_EPIC100 is not set
944# CONFIG_SUNDANCE is not set 945# CONFIG_SUNDANCE is not set
946# CONFIG_TLAN is not set
945# CONFIG_VIA_RHINE is not set 947# CONFIG_VIA_RHINE is not set
946# CONFIG_SC92031 is not set 948# CONFIG_SC92031 is not set
947CONFIG_NETDEV_1000=y 949CONFIG_NETDEV_1000=y
@@ -949,10 +951,8 @@ CONFIG_ACENIC=y
949CONFIG_ACENIC_OMIT_TIGON_I=y 951CONFIG_ACENIC_OMIT_TIGON_I=y
950# CONFIG_DL2K is not set 952# CONFIG_DL2K is not set
951CONFIG_E1000=y 953CONFIG_E1000=y
952# CONFIG_E1000_NAPI is not set
953# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 954# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
954# CONFIG_E1000E is not set 955# CONFIG_E1000E is not set
955# CONFIG_E1000E_ENABLED is not set
956# CONFIG_IP1000 is not set 956# CONFIG_IP1000 is not set
957# CONFIG_IGB is not set 957# CONFIG_IGB is not set
958# CONFIG_NS83820 is not set 958# CONFIG_NS83820 is not set
@@ -968,13 +968,13 @@ CONFIG_TIGON3=y
968CONFIG_SPIDER_NET=m 968CONFIG_SPIDER_NET=m
969# CONFIG_QLA3XXX is not set 969# CONFIG_QLA3XXX is not set
970# CONFIG_ATL1 is not set 970# CONFIG_ATL1 is not set
971# CONFIG_ATL1E is not set
971CONFIG_NETDEV_10000=y 972CONFIG_NETDEV_10000=y
972# CONFIG_CHELSIO_T1 is not set 973# CONFIG_CHELSIO_T1 is not set
973# CONFIG_CHELSIO_T3 is not set 974# CONFIG_CHELSIO_T3 is not set
974CONFIG_EHEA=m 975CONFIG_EHEA=m
975# CONFIG_IXGBE is not set 976# CONFIG_IXGBE is not set
976CONFIG_IXGB=m 977CONFIG_IXGB=m
977# CONFIG_IXGB_NAPI is not set
978# CONFIG_S2IO is not set 978# CONFIG_S2IO is not set
979# CONFIG_MYRI10GE is not set 979# CONFIG_MYRI10GE is not set
980# CONFIG_NETXEN_NIC is not set 980# CONFIG_NETXEN_NIC is not set
@@ -1068,6 +1068,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1068# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1068# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1069# CONFIG_MOUSE_SERIAL is not set 1069# CONFIG_MOUSE_SERIAL is not set
1070# CONFIG_MOUSE_APPLETOUCH is not set 1070# CONFIG_MOUSE_APPLETOUCH is not set
1071# CONFIG_MOUSE_BCM5974 is not set
1071# CONFIG_MOUSE_VSXXXAA is not set 1072# CONFIG_MOUSE_VSXXXAA is not set
1072# CONFIG_INPUT_JOYSTICK is not set 1073# CONFIG_INPUT_JOYSTICK is not set
1073# CONFIG_INPUT_TABLET is not set 1074# CONFIG_INPUT_TABLET is not set
@@ -1090,12 +1091,14 @@ CONFIG_SERIO_I8042=y
1090# CONFIG_SERIO_PCIPS2 is not set 1091# CONFIG_SERIO_PCIPS2 is not set
1091CONFIG_SERIO_LIBPS2=y 1092CONFIG_SERIO_LIBPS2=y
1092# CONFIG_SERIO_RAW is not set 1093# CONFIG_SERIO_RAW is not set
1094# CONFIG_SERIO_XILINX_XPS_PS2 is not set
1093# CONFIG_GAMEPORT is not set 1095# CONFIG_GAMEPORT is not set
1094 1096
1095# 1097#
1096# Character devices 1098# Character devices
1097# 1099#
1098CONFIG_VT=y 1100CONFIG_VT=y
1101CONFIG_CONSOLE_TRANSLATIONS=y
1099CONFIG_VT_CONSOLE=y 1102CONFIG_VT_CONSOLE=y
1100CONFIG_HW_CONSOLE=y 1103CONFIG_HW_CONSOLE=y
1101# CONFIG_VT_HW_CONSOLE_BINDING is not set 1104# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -1131,11 +1134,13 @@ CONFIG_UNIX98_PTYS=y
1131CONFIG_LEGACY_PTYS=y 1134CONFIG_LEGACY_PTYS=y
1132CONFIG_LEGACY_PTY_COUNT=256 1135CONFIG_LEGACY_PTY_COUNT=256
1133CONFIG_HVC_DRIVER=y 1136CONFIG_HVC_DRIVER=y
1137CONFIG_HVC_IRQ=y
1134CONFIG_HVC_CONSOLE=y 1138CONFIG_HVC_CONSOLE=y
1135CONFIG_HVC_ISERIES=y 1139CONFIG_HVC_ISERIES=y
1136CONFIG_HVC_RTAS=y 1140CONFIG_HVC_RTAS=y
1137CONFIG_HVC_BEAT=y 1141CONFIG_HVC_BEAT=y
1138CONFIG_HVCS=m 1142CONFIG_HVCS=m
1143CONFIG_IBM_BSR=m
1139# CONFIG_IPMI_HANDLER is not set 1144# CONFIG_IPMI_HANDLER is not set
1140# CONFIG_HW_RANDOM is not set 1145# CONFIG_HW_RANDOM is not set
1141# CONFIG_R3964 is not set 1146# CONFIG_R3964 is not set
@@ -1156,45 +1161,70 @@ CONFIG_DEVPORT=y
1156CONFIG_I2C=y 1161CONFIG_I2C=y
1157CONFIG_I2C_BOARDINFO=y 1162CONFIG_I2C_BOARDINFO=y
1158CONFIG_I2C_CHARDEV=y 1163CONFIG_I2C_CHARDEV=y
1164CONFIG_I2C_HELPER_AUTO=y
1159CONFIG_I2C_ALGOBIT=y 1165CONFIG_I2C_ALGOBIT=y
1160 1166
1161# 1167#
1162# I2C Hardware Bus support 1168# I2C Hardware Bus support
1163# 1169#
1170
1171#
1172# PC SMBus host controller drivers
1173#
1164# CONFIG_I2C_ALI1535 is not set 1174# CONFIG_I2C_ALI1535 is not set
1165# CONFIG_I2C_ALI1563 is not set 1175# CONFIG_I2C_ALI1563 is not set
1166# CONFIG_I2C_ALI15X3 is not set 1176# CONFIG_I2C_ALI15X3 is not set
1167# CONFIG_I2C_AMD756 is not set 1177# CONFIG_I2C_AMD756 is not set
1168CONFIG_I2C_AMD8111=y 1178CONFIG_I2C_AMD8111=y
1169# CONFIG_I2C_I801 is not set 1179# CONFIG_I2C_I801 is not set
1170# CONFIG_I2C_I810 is not set 1180# CONFIG_I2C_ISCH is not set
1171# CONFIG_I2C_PIIX4 is not set 1181# CONFIG_I2C_PIIX4 is not set
1172CONFIG_I2C_POWERMAC=y
1173# CONFIG_I2C_NFORCE2 is not set 1182# CONFIG_I2C_NFORCE2 is not set
1174# CONFIG_I2C_OCORES is not set
1175# CONFIG_I2C_PARPORT_LIGHT is not set
1176CONFIG_I2C_PASEMI=y
1177# CONFIG_I2C_PROSAVAGE is not set
1178# CONFIG_I2C_SAVAGE4 is not set
1179# CONFIG_I2C_SIMTEC is not set
1180# CONFIG_I2C_SIS5595 is not set 1183# CONFIG_I2C_SIS5595 is not set
1181# CONFIG_I2C_SIS630 is not set 1184# CONFIG_I2C_SIS630 is not set
1182# CONFIG_I2C_SIS96X is not set 1185# CONFIG_I2C_SIS96X is not set
1183# CONFIG_I2C_TAOS_EVM is not set
1184# CONFIG_I2C_STUB is not set
1185# CONFIG_I2C_TINY_USB is not set
1186# CONFIG_I2C_VIA is not set 1186# CONFIG_I2C_VIA is not set
1187# CONFIG_I2C_VIAPRO is not set 1187# CONFIG_I2C_VIAPRO is not set
1188
1189#
1190# Mac SMBus host controller drivers
1191#
1192CONFIG_I2C_POWERMAC=y
1193
1194#
1195# I2C system bus drivers (mostly embedded / system-on-chip)
1196#
1197# CONFIG_I2C_OCORES is not set
1198CONFIG_I2C_PASEMI=y
1199# CONFIG_I2C_SIMTEC is not set
1200
1201#
1202# External I2C/SMBus adapter drivers
1203#
1204# CONFIG_I2C_PARPORT_LIGHT is not set
1205# CONFIG_I2C_TAOS_EVM is not set
1206# CONFIG_I2C_TINY_USB is not set
1207
1208#
1209# Graphics adapter I2C/DDC channel drivers
1210#
1188# CONFIG_I2C_VOODOO3 is not set 1211# CONFIG_I2C_VOODOO3 is not set
1212
1213#
1214# Other I2C/SMBus bus drivers
1215#
1189# CONFIG_I2C_PCA_PLATFORM is not set 1216# CONFIG_I2C_PCA_PLATFORM is not set
1217# CONFIG_I2C_STUB is not set
1190 1218
1191# 1219#
1192# Miscellaneous I2C Chip support 1220# Miscellaneous I2C Chip support
1193# 1221#
1194# CONFIG_DS1682 is not set 1222# CONFIG_DS1682 is not set
1223# CONFIG_AT24 is not set
1195# CONFIG_SENSORS_EEPROM is not set 1224# CONFIG_SENSORS_EEPROM is not set
1196# CONFIG_SENSORS_PCF8574 is not set 1225# CONFIG_SENSORS_PCF8574 is not set
1197# CONFIG_PCF8575 is not set 1226# CONFIG_PCF8575 is not set
1227# CONFIG_SENSORS_PCA9539 is not set
1198# CONFIG_SENSORS_PCF8591 is not set 1228# CONFIG_SENSORS_PCF8591 is not set
1199# CONFIG_SENSORS_MAX6875 is not set 1229# CONFIG_SENSORS_MAX6875 is not set
1200# CONFIG_SENSORS_TSL2550 is not set 1230# CONFIG_SENSORS_TSL2550 is not set
@@ -1203,10 +1233,13 @@ CONFIG_I2C_PASEMI=y
1203# CONFIG_I2C_DEBUG_BUS is not set 1233# CONFIG_I2C_DEBUG_BUS is not set
1204# CONFIG_I2C_DEBUG_CHIP is not set 1234# CONFIG_I2C_DEBUG_CHIP is not set
1205# CONFIG_SPI is not set 1235# CONFIG_SPI is not set
1236CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1237# CONFIG_GPIOLIB is not set
1206# CONFIG_W1 is not set 1238# CONFIG_W1 is not set
1207# CONFIG_POWER_SUPPLY is not set 1239# CONFIG_POWER_SUPPLY is not set
1208# CONFIG_HWMON is not set 1240# CONFIG_HWMON is not set
1209# CONFIG_THERMAL is not set 1241# CONFIG_THERMAL is not set
1242# CONFIG_THERMAL_HWMON is not set
1210# CONFIG_WATCHDOG is not set 1243# CONFIG_WATCHDOG is not set
1211 1244
1212# 1245#
@@ -1218,8 +1251,10 @@ CONFIG_SSB_POSSIBLE=y
1218# 1251#
1219# Multifunction device drivers 1252# Multifunction device drivers
1220# 1253#
1254# CONFIG_MFD_CORE is not set
1221# CONFIG_MFD_SM501 is not set 1255# CONFIG_MFD_SM501 is not set
1222# CONFIG_HTC_PASIC3 is not set 1256# CONFIG_HTC_PASIC3 is not set
1257# CONFIG_MFD_TMIO is not set
1223 1258
1224# 1259#
1225# Multimedia devices 1260# Multimedia devices
@@ -1299,10 +1334,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1299# CONFIG_FB_TRIDENT is not set 1334# CONFIG_FB_TRIDENT is not set
1300# CONFIG_FB_ARK is not set 1335# CONFIG_FB_ARK is not set
1301# CONFIG_FB_PM3 is not set 1336# CONFIG_FB_PM3 is not set
1337# CONFIG_FB_CARMINE is not set
1302CONFIG_FB_IBM_GXT4500=y 1338CONFIG_FB_IBM_GXT4500=y
1303# CONFIG_FB_VIRTUAL is not set 1339# CONFIG_FB_VIRTUAL is not set
1304CONFIG_BACKLIGHT_LCD_SUPPORT=y 1340CONFIG_BACKLIGHT_LCD_SUPPORT=y
1305CONFIG_LCD_CLASS_DEVICE=y 1341CONFIG_LCD_CLASS_DEVICE=y
1342# CONFIG_LCD_ILI9320 is not set
1343# CONFIG_LCD_PLATFORM is not set
1306CONFIG_BACKLIGHT_CLASS_DEVICE=y 1344CONFIG_BACKLIGHT_CLASS_DEVICE=y
1307# CONFIG_BACKLIGHT_CORGI is not set 1345# CONFIG_BACKLIGHT_CORGI is not set
1308 1346
@@ -1331,15 +1369,7 @@ CONFIG_FB_LOGO_EXTRA=y
1331CONFIG_LOGO_LINUX_MONO=y 1369CONFIG_LOGO_LINUX_MONO=y
1332CONFIG_LOGO_LINUX_VGA16=y 1370CONFIG_LOGO_LINUX_VGA16=y
1333CONFIG_LOGO_LINUX_CLUT224=y 1371CONFIG_LOGO_LINUX_CLUT224=y
1334
1335#
1336# Sound
1337#
1338CONFIG_SOUND=m 1372CONFIG_SOUND=m
1339
1340#
1341# Advanced Linux Sound Architecture
1342#
1343CONFIG_SND=m 1373CONFIG_SND=m
1344CONFIG_SND_TIMER=m 1374CONFIG_SND_TIMER=m
1345CONFIG_SND_PCM=m 1375CONFIG_SND_PCM=m
@@ -1355,19 +1385,13 @@ CONFIG_SND_SUPPORT_OLD_API=y
1355CONFIG_SND_VERBOSE_PROCFS=y 1385CONFIG_SND_VERBOSE_PROCFS=y
1356# CONFIG_SND_VERBOSE_PRINTK is not set 1386# CONFIG_SND_VERBOSE_PRINTK is not set
1357# CONFIG_SND_DEBUG is not set 1387# CONFIG_SND_DEBUG is not set
1358 1388CONFIG_SND_DRIVERS=y
1359#
1360# Generic devices
1361#
1362# CONFIG_SND_DUMMY is not set 1389# CONFIG_SND_DUMMY is not set
1363# CONFIG_SND_VIRMIDI is not set 1390# CONFIG_SND_VIRMIDI is not set
1364# CONFIG_SND_MTPAV is not set 1391# CONFIG_SND_MTPAV is not set
1365# CONFIG_SND_SERIAL_U16550 is not set 1392# CONFIG_SND_SERIAL_U16550 is not set
1366# CONFIG_SND_MPU401 is not set 1393# CONFIG_SND_MPU401 is not set
1367 1394CONFIG_SND_PCI=y
1368#
1369# PCI devices
1370#
1371# CONFIG_SND_AD1889 is not set 1395# CONFIG_SND_AD1889 is not set
1372# CONFIG_SND_ALS300 is not set 1396# CONFIG_SND_ALS300 is not set
1373# CONFIG_SND_ALS4000 is not set 1397# CONFIG_SND_ALS4000 is not set
@@ -1429,20 +1453,9 @@ CONFIG_SND_VERBOSE_PROCFS=y
1429# CONFIG_SND_VIRTUOSO is not set 1453# CONFIG_SND_VIRTUOSO is not set
1430# CONFIG_SND_VX222 is not set 1454# CONFIG_SND_VX222 is not set
1431# CONFIG_SND_YMFPCI is not set 1455# CONFIG_SND_YMFPCI is not set
1432 1456CONFIG_SND_PPC=y
1433#
1434# ALSA PowerMac devices
1435#
1436CONFIG_SND_POWERMAC=m 1457CONFIG_SND_POWERMAC=m
1437CONFIG_SND_POWERMAC_AUTO_DRC=y 1458CONFIG_SND_POWERMAC_AUTO_DRC=y
1438
1439#
1440# ALSA PowerPC devices
1441#
1442
1443#
1444# Apple Onboard Audio driver
1445#
1446CONFIG_SND_AOA=m 1459CONFIG_SND_AOA=m
1447CONFIG_SND_AOA_FABRIC_LAYOUT=m 1460CONFIG_SND_AOA_FABRIC_LAYOUT=m
1448CONFIG_SND_AOA_ONYX=m 1461CONFIG_SND_AOA_ONYX=m
@@ -1450,36 +1463,14 @@ CONFIG_SND_AOA_TAS=m
1450CONFIG_SND_AOA_TOONIE=m 1463CONFIG_SND_AOA_TOONIE=m
1451CONFIG_SND_AOA_SOUNDBUS=m 1464CONFIG_SND_AOA_SOUNDBUS=m
1452CONFIG_SND_AOA_SOUNDBUS_I2S=m 1465CONFIG_SND_AOA_SOUNDBUS_I2S=m
1453 1466CONFIG_SND_USB=y
1454#
1455# USB devices
1456#
1457# CONFIG_SND_USB_AUDIO is not set 1467# CONFIG_SND_USB_AUDIO is not set
1458# CONFIG_SND_USB_USX2Y is not set 1468# CONFIG_SND_USB_USX2Y is not set
1459# CONFIG_SND_USB_CAIAQ is not set 1469# CONFIG_SND_USB_CAIAQ is not set
1460 1470CONFIG_SND_PCMCIA=y
1461#
1462# PCMCIA devices
1463#
1464# CONFIG_SND_VXPOCKET is not set 1471# CONFIG_SND_VXPOCKET is not set
1465# CONFIG_SND_PDAUDIOCF is not set 1472# CONFIG_SND_PDAUDIOCF is not set
1466
1467#
1468# System on Chip audio support
1469#
1470# CONFIG_SND_SOC is not set 1473# CONFIG_SND_SOC is not set
1471
1472#
1473# ALSA SoC audio for Freescale SOCs
1474#
1475
1476#
1477# SoC Audio for the Texas Instruments OMAP
1478#
1479
1480#
1481# Open Sound System
1482#
1483# CONFIG_SOUND_PRIME is not set 1474# CONFIG_SOUND_PRIME is not set
1484CONFIG_HID_SUPPORT=y 1475CONFIG_HID_SUPPORT=y
1485CONFIG_HID=y 1476CONFIG_HID=y
@@ -1508,6 +1499,7 @@ CONFIG_USB_DEVICEFS=y
1508CONFIG_USB_DEVICE_CLASS=y 1499CONFIG_USB_DEVICE_CLASS=y
1509# CONFIG_USB_DYNAMIC_MINORS is not set 1500# CONFIG_USB_DYNAMIC_MINORS is not set
1510# CONFIG_USB_OTG is not set 1501# CONFIG_USB_OTG is not set
1502# CONFIG_USB_MON is not set
1511 1503
1512# 1504#
1513# USB Host Controller Drivers 1505# USB Host Controller Drivers
@@ -1556,6 +1548,7 @@ CONFIG_USB_STORAGE=m
1556# CONFIG_USB_STORAGE_ALAUDA is not set 1548# CONFIG_USB_STORAGE_ALAUDA is not set
1557# CONFIG_USB_STORAGE_ONETOUCH is not set 1549# CONFIG_USB_STORAGE_ONETOUCH is not set
1558# CONFIG_USB_STORAGE_KARMA is not set 1550# CONFIG_USB_STORAGE_KARMA is not set
1551# CONFIG_USB_STORAGE_SIERRA is not set
1559# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1552# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1560# CONFIG_USB_LIBUSUAL is not set 1553# CONFIG_USB_LIBUSUAL is not set
1561 1554
@@ -1564,7 +1557,6 @@ CONFIG_USB_STORAGE=m
1564# 1557#
1565# CONFIG_USB_MDC800 is not set 1558# CONFIG_USB_MDC800 is not set
1566# CONFIG_USB_MICROTEK is not set 1559# CONFIG_USB_MICROTEK is not set
1567# CONFIG_USB_MON is not set
1568 1560
1569# 1561#
1570# USB port drivers 1562# USB port drivers
@@ -1577,7 +1569,6 @@ CONFIG_USB_STORAGE=m
1577# CONFIG_USB_EMI62 is not set 1569# CONFIG_USB_EMI62 is not set
1578# CONFIG_USB_EMI26 is not set 1570# CONFIG_USB_EMI26 is not set
1579# CONFIG_USB_ADUTUX is not set 1571# CONFIG_USB_ADUTUX is not set
1580# CONFIG_USB_AUERSWALD is not set
1581# CONFIG_USB_RIO500 is not set 1572# CONFIG_USB_RIO500 is not set
1582# CONFIG_USB_LEGOTOWER is not set 1573# CONFIG_USB_LEGOTOWER is not set
1583# CONFIG_USB_LCD is not set 1574# CONFIG_USB_LCD is not set
@@ -1769,6 +1760,7 @@ CONFIG_HFSPLUS_FS=m
1769CONFIG_CRAMFS=y 1760CONFIG_CRAMFS=y
1770# CONFIG_VXFS_FS is not set 1761# CONFIG_VXFS_FS is not set
1771# CONFIG_MINIX_FS is not set 1762# CONFIG_MINIX_FS is not set
1763# CONFIG_OMFS_FS is not set
1772# CONFIG_HPFS_FS is not set 1764# CONFIG_HPFS_FS is not set
1773# CONFIG_QNX4FS_FS is not set 1765# CONFIG_QNX4FS_FS is not set
1774# CONFIG_ROMFS_FS is not set 1766# CONFIG_ROMFS_FS is not set
@@ -1779,12 +1771,12 @@ CONFIG_NFS_FS=y
1779CONFIG_NFS_V3=y 1771CONFIG_NFS_V3=y
1780CONFIG_NFS_V3_ACL=y 1772CONFIG_NFS_V3_ACL=y
1781CONFIG_NFS_V4=y 1773CONFIG_NFS_V4=y
1774CONFIG_ROOT_NFS=y
1782CONFIG_NFSD=m 1775CONFIG_NFSD=m
1783CONFIG_NFSD_V2_ACL=y 1776CONFIG_NFSD_V2_ACL=y
1784CONFIG_NFSD_V3=y 1777CONFIG_NFSD_V3=y
1785CONFIG_NFSD_V3_ACL=y 1778CONFIG_NFSD_V3_ACL=y
1786CONFIG_NFSD_V4=y 1779CONFIG_NFSD_V4=y
1787CONFIG_ROOT_NFS=y
1788CONFIG_LOCKD=y 1780CONFIG_LOCKD=y
1789CONFIG_LOCKD_V4=y 1781CONFIG_LOCKD_V4=y
1790CONFIG_EXPORTFS=m 1782CONFIG_EXPORTFS=m
@@ -1793,7 +1785,6 @@ CONFIG_NFS_COMMON=y
1793CONFIG_SUNRPC=y 1785CONFIG_SUNRPC=y
1794CONFIG_SUNRPC_GSS=y 1786CONFIG_SUNRPC_GSS=y
1795CONFIG_SUNRPC_XPRT_RDMA=m 1787CONFIG_SUNRPC_XPRT_RDMA=m
1796# CONFIG_SUNRPC_BIND34 is not set
1797CONFIG_RPCSEC_GSS_KRB5=y 1788CONFIG_RPCSEC_GSS_KRB5=y
1798CONFIG_RPCSEC_GSS_SPKM3=m 1789CONFIG_RPCSEC_GSS_SPKM3=m
1799# CONFIG_SMB_FS is not set 1790# CONFIG_SMB_FS is not set
@@ -1878,6 +1869,7 @@ CONFIG_BITREVERSE=y
1878# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1869# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1879CONFIG_CRC_CCITT=m 1870CONFIG_CRC_CCITT=m
1880# CONFIG_CRC16 is not set 1871# CONFIG_CRC16 is not set
1872CONFIG_CRC_T10DIF=y
1881CONFIG_CRC_ITU_T=m 1873CONFIG_CRC_ITU_T=m
1882CONFIG_CRC32=y 1874CONFIG_CRC32=y
1883# CONFIG_CRC7 is not set 1875# CONFIG_CRC7 is not set
@@ -1910,8 +1902,10 @@ CONFIG_DEBUG_FS=y
1910CONFIG_DEBUG_KERNEL=y 1902CONFIG_DEBUG_KERNEL=y
1911# CONFIG_DEBUG_SHIRQ is not set 1903# CONFIG_DEBUG_SHIRQ is not set
1912CONFIG_DETECT_SOFTLOCKUP=y 1904CONFIG_DETECT_SOFTLOCKUP=y
1905# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1906CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1913CONFIG_SCHED_DEBUG=y 1907CONFIG_SCHED_DEBUG=y
1914# CONFIG_SCHEDSTATS is not set 1908CONFIG_SCHEDSTATS=y
1915# CONFIG_TIMER_STATS is not set 1909# CONFIG_TIMER_STATS is not set
1916# CONFIG_DEBUG_OBJECTS is not set 1910# CONFIG_DEBUG_OBJECTS is not set
1917# CONFIG_SLUB_DEBUG_ON is not set 1911# CONFIG_SLUB_DEBUG_ON is not set
@@ -1923,28 +1917,47 @@ CONFIG_DEBUG_MUTEXES=y
1923# CONFIG_DEBUG_LOCK_ALLOC is not set 1917# CONFIG_DEBUG_LOCK_ALLOC is not set
1924# CONFIG_PROVE_LOCKING is not set 1918# CONFIG_PROVE_LOCKING is not set
1925# CONFIG_LOCK_STAT is not set 1919# CONFIG_LOCK_STAT is not set
1920CONFIG_TRACE_IRQFLAGS=y
1926# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1921# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1927# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1922# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1923CONFIG_STACKTRACE=y
1928# CONFIG_DEBUG_KOBJECT is not set 1924# CONFIG_DEBUG_KOBJECT is not set
1929CONFIG_DEBUG_BUGVERBOSE=y 1925CONFIG_DEBUG_BUGVERBOSE=y
1930# CONFIG_DEBUG_INFO is not set 1926# CONFIG_DEBUG_INFO is not set
1931# CONFIG_DEBUG_VM is not set 1927# CONFIG_DEBUG_VM is not set
1932# CONFIG_DEBUG_WRITECOUNT is not set 1928# CONFIG_DEBUG_WRITECOUNT is not set
1929CONFIG_DEBUG_MEMORY_INIT=y
1933# CONFIG_DEBUG_LIST is not set 1930# CONFIG_DEBUG_LIST is not set
1934# CONFIG_DEBUG_SG is not set 1931# CONFIG_DEBUG_SG is not set
1932CONFIG_FRAME_POINTER=y
1935# CONFIG_BOOT_PRINTK_DELAY is not set 1933# CONFIG_BOOT_PRINTK_DELAY is not set
1936# CONFIG_RCU_TORTURE_TEST is not set 1934# CONFIG_RCU_TORTURE_TEST is not set
1937# CONFIG_BACKTRACE_SELF_TEST is not set 1935# CONFIG_BACKTRACE_SELF_TEST is not set
1938# CONFIG_FAULT_INJECTION is not set 1936# CONFIG_FAULT_INJECTION is not set
1937CONFIG_LATENCYTOP=y
1938CONFIG_SYSCTL_SYSCALL_CHECK=y
1939CONFIG_HAVE_FTRACE=y
1940CONFIG_HAVE_DYNAMIC_FTRACE=y
1941CONFIG_TRACER_MAX_TRACE=y
1942CONFIG_TRACING=y
1943# CONFIG_FTRACE is not set
1944CONFIG_IRQSOFF_TRACER=y
1945CONFIG_SCHED_TRACER=y
1946CONFIG_CONTEXT_SWITCH_TRACER=y
1947# CONFIG_FTRACE_STARTUP_TEST is not set
1939# CONFIG_SAMPLES is not set 1948# CONFIG_SAMPLES is not set
1949CONFIG_HAVE_ARCH_KGDB=y
1950# CONFIG_KGDB is not set
1940CONFIG_DEBUG_STACKOVERFLOW=y 1951CONFIG_DEBUG_STACKOVERFLOW=y
1941CONFIG_DEBUG_STACK_USAGE=y 1952CONFIG_DEBUG_STACK_USAGE=y
1942# CONFIG_DEBUG_PAGEALLOC is not set 1953# CONFIG_DEBUG_PAGEALLOC is not set
1943# CONFIG_HCALL_STATS is not set 1954# CONFIG_HCALL_STATS is not set
1944CONFIG_DEBUGGER=y 1955# CONFIG_CODE_PATCHING_SELFTEST is not set
1956# CONFIG_FTR_FIXUP_SELFTEST is not set
1945CONFIG_XMON=y 1957CONFIG_XMON=y
1946# CONFIG_XMON_DEFAULT is not set 1958# CONFIG_XMON_DEFAULT is not set
1947CONFIG_XMON_DISASSEMBLY=y 1959CONFIG_XMON_DISASSEMBLY=y
1960CONFIG_DEBUGGER=y
1948CONFIG_IRQSTACKS=y 1961CONFIG_IRQSTACKS=y
1949# CONFIG_VIRQ_DEBUG is not set 1962# CONFIG_VIRQ_DEBUG is not set
1950CONFIG_BOOTX_TEXT=y 1963CONFIG_BOOTX_TEXT=y
@@ -2007,6 +2020,10 @@ CONFIG_CRYPTO_CRC32C=m
2007CONFIG_CRYPTO_MD4=m 2020CONFIG_CRYPTO_MD4=m
2008CONFIG_CRYPTO_MD5=y 2021CONFIG_CRYPTO_MD5=y
2009CONFIG_CRYPTO_MICHAEL_MIC=m 2022CONFIG_CRYPTO_MICHAEL_MIC=m
2023# CONFIG_CRYPTO_RMD128 is not set
2024# CONFIG_CRYPTO_RMD160 is not set
2025# CONFIG_CRYPTO_RMD256 is not set
2026# CONFIG_CRYPTO_RMD320 is not set
2010CONFIG_CRYPTO_SHA1=m 2027CONFIG_CRYPTO_SHA1=m
2011CONFIG_CRYPTO_SHA256=m 2028CONFIG_CRYPTO_SHA256=m
2012CONFIG_CRYPTO_SHA512=m 2029CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/ppc6xx_defconfig b/arch/powerpc/configs/ppc6xx_defconfig
index e6e91c85da31..3c6dbdef56eb 100644
--- a/arch/powerpc/configs/ppc6xx_defconfig
+++ b/arch/powerpc/configs/ppc6xx_defconfig
@@ -1,8 +1,7 @@
1# powerpc
2# 1#
3# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
4# Linux kernel version: 2.6.26-git2 3# Linux kernel version: 2.6.27-rc4
5# Tue Jul 15 23:54:18 2008 4# Tue Aug 26 13:29:50 2008
6# 5#
7# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
8 7
@@ -112,7 +111,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
112CONFIG_SYSCTL=y 111CONFIG_SYSCTL=y
113# CONFIG_EMBEDDED is not set 112# CONFIG_EMBEDDED is not set
114CONFIG_SYSCTL_SYSCALL=y 113CONFIG_SYSCTL_SYSCALL=y
115CONFIG_SYSCTL_SYSCALL_CHECK=y
116CONFIG_KALLSYMS=y 114CONFIG_KALLSYMS=y
117CONFIG_KALLSYMS_ALL=y 115CONFIG_KALLSYMS_ALL=y
118CONFIG_KALLSYMS_EXTRA_PASS=y 116CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -140,12 +138,17 @@ CONFIG_MARKERS=y
140CONFIG_OPROFILE=m 138CONFIG_OPROFILE=m
141CONFIG_HAVE_OPROFILE=y 139CONFIG_HAVE_OPROFILE=y
142CONFIG_KPROBES=y 140CONFIG_KPROBES=y
141CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
143CONFIG_KRETPROBES=y 142CONFIG_KRETPROBES=y
143CONFIG_HAVE_IOREMAP_PROT=y
144CONFIG_HAVE_KPROBES=y 144CONFIG_HAVE_KPROBES=y
145CONFIG_HAVE_KRETPROBES=y 145CONFIG_HAVE_KRETPROBES=y
146CONFIG_HAVE_ARCH_TRACEHOOK=y
146# CONFIG_HAVE_DMA_ATTRS is not set 147# CONFIG_HAVE_DMA_ATTRS is not set
147# CONFIG_USE_GENERIC_SMP_HELPERS is not set 148# CONFIG_USE_GENERIC_SMP_HELPERS is not set
149CONFIG_HAVE_CLK=y
148CONFIG_PROC_PAGE_MONITOR=y 150CONFIG_PROC_PAGE_MONITOR=y
151# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
149CONFIG_SLABINFO=y 152CONFIG_SLABINFO=y
150CONFIG_RT_MUTEXES=y 153CONFIG_RT_MUTEXES=y
151# CONFIG_TINY_SHMEM is not set 154# CONFIG_TINY_SHMEM is not set
@@ -266,7 +269,6 @@ CONFIG_TAU=y
266CONFIG_TAU_AVERAGE=y 269CONFIG_TAU_AVERAGE=y
267CONFIG_QUICC_ENGINE=y 270CONFIG_QUICC_ENGINE=y
268CONFIG_CPM2=y 271CONFIG_CPM2=y
269CONFIG_PPC_CPM_NEW_BINDING=y
270CONFIG_FSL_ULI1575=y 272CONFIG_FSL_ULI1575=y
271CONFIG_CPM=y 273CONFIG_CPM=y
272CONFIG_PPC_BESTCOMM=y 274CONFIG_PPC_BESTCOMM=y
@@ -287,7 +289,7 @@ CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
287# CONFIG_HZ_300 is not set 289# CONFIG_HZ_300 is not set
288CONFIG_HZ_1000=y 290CONFIG_HZ_1000=y
289CONFIG_HZ=1000 291CONFIG_HZ=1000
290# CONFIG_SCHED_HRTICK is not set 292CONFIG_SCHED_HRTICK=y
291# CONFIG_PREEMPT_NONE is not set 293# CONFIG_PREEMPT_NONE is not set
292CONFIG_PREEMPT_VOLUNTARY=y 294CONFIG_PREEMPT_VOLUNTARY=y
293# CONFIG_PREEMPT is not set 295# CONFIG_PREEMPT is not set
@@ -311,6 +313,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
311# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 313# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
312CONFIG_PAGEFLAGS_EXTENDED=y 314CONFIG_PAGEFLAGS_EXTENDED=y
313CONFIG_SPLIT_PTLOCK_CPUS=4 315CONFIG_SPLIT_PTLOCK_CPUS=4
316# CONFIG_MIGRATION is not set
314CONFIG_RESOURCES_64BIT=y 317CONFIG_RESOURCES_64BIT=y
315CONFIG_ZONE_DMA_FLAG=1 318CONFIG_ZONE_DMA_FLAG=1
316CONFIG_BOUNCE=y 319CONFIG_BOUNCE=y
@@ -326,6 +329,7 @@ CONFIG_PM_DEBUG=y
326CONFIG_CAN_PM_TRACE=y 329CONFIG_CAN_PM_TRACE=y
327CONFIG_PM_SLEEP=y 330CONFIG_PM_SLEEP=y
328CONFIG_SUSPEND=y 331CONFIG_SUSPEND=y
332# CONFIG_PM_TEST_SUSPEND is not set
329CONFIG_SUSPEND_FREEZER=y 333CONFIG_SUSPEND_FREEZER=y
330CONFIG_HIBERNATION=y 334CONFIG_HIBERNATION=y
331CONFIG_PM_STD_PARTITION="" 335CONFIG_PM_STD_PARTITION=""
@@ -344,6 +348,7 @@ CONFIG_FSL_SOC=y
344CONFIG_FSL_PCI=y 348CONFIG_FSL_PCI=y
345CONFIG_FSL_LBC=y 349CONFIG_FSL_LBC=y
346CONFIG_FSL_GTM=y 350CONFIG_FSL_GTM=y
351CONFIG_PPC_PCI_CHOICE=y
347CONFIG_PCI=y 352CONFIG_PCI=y
348CONFIG_PCI_DOMAINS=y 353CONFIG_PCI_DOMAINS=y
349CONFIG_PCI_SYSCALL=y 354CONFIG_PCI_SYSCALL=y
@@ -395,10 +400,6 @@ CONFIG_KERNEL_START=0xc0000000
395CONFIG_PHYSICAL_START=0x00000000 400CONFIG_PHYSICAL_START=0x00000000
396# CONFIG_TASK_SIZE_BOOL is not set 401# CONFIG_TASK_SIZE_BOOL is not set
397CONFIG_TASK_SIZE=0xc0000000 402CONFIG_TASK_SIZE=0xc0000000
398
399#
400# Networking
401#
402CONFIG_NET=y 403CONFIG_NET=y
403 404
404# 405#
@@ -412,6 +413,7 @@ CONFIG_XFRM_USER=y
412CONFIG_XFRM_SUB_POLICY=y 413CONFIG_XFRM_SUB_POLICY=y
413CONFIG_XFRM_MIGRATE=y 414CONFIG_XFRM_MIGRATE=y
414CONFIG_XFRM_STATISTICS=y 415CONFIG_XFRM_STATISTICS=y
416CONFIG_XFRM_IPCOMP=m
415CONFIG_NET_KEY=m 417CONFIG_NET_KEY=m
416CONFIG_NET_KEY_MIGRATE=y 418CONFIG_NET_KEY_MIGRATE=y
417CONFIG_INET=y 419CONFIG_INET=y
@@ -602,6 +604,7 @@ CONFIG_IP_NF_TARGET_ECN=m
602CONFIG_IP_NF_TARGET_TTL=m 604CONFIG_IP_NF_TARGET_TTL=m
603CONFIG_IP_NF_TARGET_CLUSTERIP=m 605CONFIG_IP_NF_TARGET_CLUSTERIP=m
604CONFIG_IP_NF_RAW=m 606CONFIG_IP_NF_RAW=m
607CONFIG_IP_NF_SECURITY=m
605CONFIG_IP_NF_ARPTABLES=m 608CONFIG_IP_NF_ARPTABLES=m
606CONFIG_IP_NF_ARPFILTER=m 609CONFIG_IP_NF_ARPFILTER=m
607CONFIG_IP_NF_ARP_MANGLE=m 610CONFIG_IP_NF_ARP_MANGLE=m
@@ -626,6 +629,7 @@ CONFIG_IP6_NF_TARGET_REJECT=m
626CONFIG_IP6_NF_MANGLE=m 629CONFIG_IP6_NF_MANGLE=m
627CONFIG_IP6_NF_TARGET_HL=m 630CONFIG_IP6_NF_TARGET_HL=m
628CONFIG_IP6_NF_RAW=m 631CONFIG_IP6_NF_RAW=m
632CONFIG_IP6_NF_SECURITY=m
629 633
630# 634#
631# DECnet: Netfilter Configuration 635# DECnet: Netfilter Configuration
@@ -643,6 +647,7 @@ CONFIG_BRIDGE_EBT_802_3=m
643CONFIG_BRIDGE_EBT_AMONG=m 647CONFIG_BRIDGE_EBT_AMONG=m
644CONFIG_BRIDGE_EBT_ARP=m 648CONFIG_BRIDGE_EBT_ARP=m
645CONFIG_BRIDGE_EBT_IP=m 649CONFIG_BRIDGE_EBT_IP=m
650CONFIG_BRIDGE_EBT_IP6=m
646CONFIG_BRIDGE_EBT_LIMIT=m 651CONFIG_BRIDGE_EBT_LIMIT=m
647CONFIG_BRIDGE_EBT_MARK=m 652CONFIG_BRIDGE_EBT_MARK=m
648CONFIG_BRIDGE_EBT_PKTTYPE=m 653CONFIG_BRIDGE_EBT_PKTTYPE=m
@@ -691,8 +696,10 @@ CONFIG_ATM_LANE=m
691# CONFIG_ATM_MPOA is not set 696# CONFIG_ATM_MPOA is not set
692CONFIG_ATM_BR2684=m 697CONFIG_ATM_BR2684=m
693# CONFIG_ATM_BR2684_IPFILTER is not set 698# CONFIG_ATM_BR2684_IPFILTER is not set
699CONFIG_STP=m
694CONFIG_BRIDGE=m 700CONFIG_BRIDGE=m
695CONFIG_VLAN_8021Q=m 701CONFIG_VLAN_8021Q=m
702# CONFIG_VLAN_8021Q_GVRP is not set
696CONFIG_DECNET=m 703CONFIG_DECNET=m
697CONFIG_DECNET_ROUTER=y 704CONFIG_DECNET_ROUTER=y
698CONFIG_LLC=m 705CONFIG_LLC=m
@@ -832,6 +839,7 @@ CONFIG_BT_HIDP=m
832# 839#
833CONFIG_BT_HCIUSB=m 840CONFIG_BT_HCIUSB=m
834CONFIG_BT_HCIUSB_SCO=y 841CONFIG_BT_HCIUSB_SCO=y
842# CONFIG_BT_HCIBTUSB is not set
835CONFIG_BT_HCIUART=m 843CONFIG_BT_HCIUART=m
836CONFIG_BT_HCIUART_H4=y 844CONFIG_BT_HCIUART_H4=y
837CONFIG_BT_HCIUART_BCSP=y 845CONFIG_BT_HCIUART_BCSP=y
@@ -855,7 +863,6 @@ CONFIG_NL80211=y
855CONFIG_WIRELESS_EXT=y 863CONFIG_WIRELESS_EXT=y
856CONFIG_WIRELESS_EXT_SYSFS=y 864CONFIG_WIRELESS_EXT_SYSFS=y
857CONFIG_MAC80211=m 865CONFIG_MAC80211=m
858CONFIG_MAC80211_QOS=y
859 866
860# 867#
861# Rate control algorithm selection 868# Rate control algorithm selection
@@ -941,12 +948,14 @@ CONFIG_CDROM_PKTCDVD_BUFFERS=8
941# CONFIG_CDROM_PKTCDVD_WCACHE is not set 948# CONFIG_CDROM_PKTCDVD_WCACHE is not set
942# CONFIG_ATA_OVER_ETH is not set 949# CONFIG_ATA_OVER_ETH is not set
943CONFIG_VIRTIO_BLK=m 950CONFIG_VIRTIO_BLK=m
951CONFIG_BLK_DEV_HD=y
944CONFIG_MISC_DEVICES=y 952CONFIG_MISC_DEVICES=y
945# CONFIG_PHANTOM is not set 953# CONFIG_PHANTOM is not set
946CONFIG_EEPROM_93CX6=m 954CONFIG_EEPROM_93CX6=m
947# CONFIG_SGI_IOC4 is not set 955# CONFIG_SGI_IOC4 is not set
948# CONFIG_TIFM_CORE is not set 956# CONFIG_TIFM_CORE is not set
949CONFIG_ENCLOSURE_SERVICES=m 957CONFIG_ENCLOSURE_SERVICES=m
958# CONFIG_HP_ILO is not set
950CONFIG_HAVE_IDE=y 959CONFIG_HAVE_IDE=y
951CONFIG_IDE=y 960CONFIG_IDE=y
952CONFIG_BLK_DEV_IDE=y 961CONFIG_BLK_DEV_IDE=y
@@ -954,6 +963,7 @@ CONFIG_BLK_DEV_IDE=y
954# 963#
955# Please see Documentation/ide/ide.txt for help/info on IDE drives 964# Please see Documentation/ide/ide.txt for help/info on IDE drives
956# 965#
966CONFIG_IDE_TIMINGS=y
957CONFIG_IDE_ATAPI=y 967CONFIG_IDE_ATAPI=y
958# CONFIG_BLK_DEV_IDE_SATA is not set 968# CONFIG_BLK_DEV_IDE_SATA is not set
959CONFIG_BLK_DEV_IDEDISK=y 969CONFIG_BLK_DEV_IDEDISK=y
@@ -971,7 +981,6 @@ CONFIG_IDE_PROC_FS=y
971# 981#
972# IDE chipset support/bugfixes 982# IDE chipset support/bugfixes
973# 983#
974# CONFIG_IDE_GENERIC is not set
975# CONFIG_BLK_DEV_PLATFORM is not set 984# CONFIG_BLK_DEV_PLATFORM is not set
976# CONFIG_BLK_DEV_IDEPNP is not set 985# CONFIG_BLK_DEV_IDEPNP is not set
977CONFIG_BLK_DEV_IDEDMA_SFF=y 986CONFIG_BLK_DEV_IDEDMA_SFF=y
@@ -990,10 +999,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
990# CONFIG_BLK_DEV_AMD74XX is not set 999# CONFIG_BLK_DEV_AMD74XX is not set
991# CONFIG_BLK_DEV_CMD64X is not set 1000# CONFIG_BLK_DEV_CMD64X is not set
992# CONFIG_BLK_DEV_TRIFLEX is not set 1001# CONFIG_BLK_DEV_TRIFLEX is not set
993# CONFIG_BLK_DEV_CY82C693 is not set
994# CONFIG_BLK_DEV_CS5520 is not set 1002# CONFIG_BLK_DEV_CS5520 is not set
995# CONFIG_BLK_DEV_CS5530 is not set 1003# CONFIG_BLK_DEV_CS5530 is not set
996# CONFIG_BLK_DEV_HPT34X is not set
997# CONFIG_BLK_DEV_HPT366 is not set 1004# CONFIG_BLK_DEV_HPT366 is not set
998# CONFIG_BLK_DEV_JMICRON is not set 1005# CONFIG_BLK_DEV_JMICRON is not set
999# CONFIG_BLK_DEV_SC1200 is not set 1006# CONFIG_BLK_DEV_SC1200 is not set
@@ -1014,8 +1021,6 @@ CONFIG_BLK_DEV_IDE_PMAC=y
1014CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 1021CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
1015CONFIG_BLK_DEV_IDEDMA_PMAC=y 1022CONFIG_BLK_DEV_IDEDMA_PMAC=y
1016CONFIG_BLK_DEV_IDEDMA=y 1023CONFIG_BLK_DEV_IDEDMA=y
1017CONFIG_BLK_DEV_HD_ONLY=y
1018CONFIG_BLK_DEV_HD=y
1019 1024
1020# 1025#
1021# SCSI device support 1026# SCSI device support
@@ -1125,6 +1130,7 @@ CONFIG_SCSI_DH=y
1125CONFIG_SCSI_DH_RDAC=m 1130CONFIG_SCSI_DH_RDAC=m
1126CONFIG_SCSI_DH_HP_SW=m 1131CONFIG_SCSI_DH_HP_SW=m
1127CONFIG_SCSI_DH_EMC=m 1132CONFIG_SCSI_DH_EMC=m
1133# CONFIG_SCSI_DH_ALUA is not set
1128CONFIG_ATA=y 1134CONFIG_ATA=y
1129# CONFIG_ATA_NONSTANDARD is not set 1135# CONFIG_ATA_NONSTANDARD is not set
1130# CONFIG_SATA_PMP is not set 1136# CONFIG_SATA_PMP is not set
@@ -1246,7 +1252,6 @@ CONFIG_WINDFARM=y
1246# CONFIG_ANSLCD is not set 1252# CONFIG_ANSLCD is not set
1247CONFIG_PMAC_RACKMETER=m 1253CONFIG_PMAC_RACKMETER=m
1248CONFIG_NETDEVICES=y 1254CONFIG_NETDEVICES=y
1249CONFIG_NETDEVICES_MULTIQUEUE=y
1250CONFIG_IFB=m 1255CONFIG_IFB=m
1251CONFIG_DUMMY=m 1256CONFIG_DUMMY=m
1252CONFIG_BONDING=m 1257CONFIG_BONDING=m
@@ -1256,7 +1261,7 @@ CONFIG_TUN=m
1256CONFIG_VETH=m 1261CONFIG_VETH=m
1257CONFIG_NET_SB1000=m 1262CONFIG_NET_SB1000=m
1258# CONFIG_ARCNET is not set 1263# CONFIG_ARCNET is not set
1259CONFIG_PHYLIB=m 1264CONFIG_PHYLIB=y
1260 1265
1261# 1266#
1262# MII PHY device drivers 1267# MII PHY device drivers
@@ -1271,7 +1276,9 @@ CONFIG_SMSC_PHY=m
1271CONFIG_BROADCOM_PHY=m 1276CONFIG_BROADCOM_PHY=m
1272CONFIG_ICPLUS_PHY=m 1277CONFIG_ICPLUS_PHY=m
1273CONFIG_REALTEK_PHY=m 1278CONFIG_REALTEK_PHY=m
1279# CONFIG_FIXED_PHY is not set
1274CONFIG_MDIO_BITBANG=y 1280CONFIG_MDIO_BITBANG=y
1281# CONFIG_MDIO_OF_GPIO is not set
1275CONFIG_NET_ETHERNET=y 1282CONFIG_NET_ETHERNET=y
1276CONFIG_MII=m 1283CONFIG_MII=m
1277CONFIG_MACE=m 1284CONFIG_MACE=m
@@ -1328,9 +1335,7 @@ CONFIG_NE2000=m
1328CONFIG_NET_PCI=y 1335CONFIG_NET_PCI=y
1329CONFIG_PCNET32=m 1336CONFIG_PCNET32=m
1330CONFIG_AMD8111_ETH=m 1337CONFIG_AMD8111_ETH=m
1331CONFIG_AMD8111E_NAPI=y
1332CONFIG_ADAPTEC_STARFIRE=m 1338CONFIG_ADAPTEC_STARFIRE=m
1333CONFIG_ADAPTEC_STARFIRE_NAPI=y
1334# CONFIG_AC3200 is not set 1339# CONFIG_AC3200 is not set
1335# CONFIG_APRICOT is not set 1340# CONFIG_APRICOT is not set
1336CONFIG_B44=m 1341CONFIG_B44=m
@@ -1359,7 +1364,6 @@ CONFIG_SUNDANCE=m
1359CONFIG_TLAN=m 1364CONFIG_TLAN=m
1360CONFIG_VIA_RHINE=m 1365CONFIG_VIA_RHINE=m
1361CONFIG_VIA_RHINE_MMIO=y 1366CONFIG_VIA_RHINE_MMIO=y
1362CONFIG_VIA_RHINE_NAPI=y
1363CONFIG_SC92031=m 1367CONFIG_SC92031=m
1364CONFIG_NET_POCKET=y 1368CONFIG_NET_POCKET=y
1365CONFIG_DE600=m 1369CONFIG_DE600=m
@@ -1372,17 +1376,15 @@ CONFIG_ACENIC=m
1372# CONFIG_ACENIC_OMIT_TIGON_I is not set 1376# CONFIG_ACENIC_OMIT_TIGON_I is not set
1373CONFIG_DL2K=m 1377CONFIG_DL2K=m
1374CONFIG_E1000=m 1378CONFIG_E1000=m
1375CONFIG_E1000_NAPI=y
1376# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 1379# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
1377CONFIG_E1000E=m 1380CONFIG_E1000E=m
1378CONFIG_E1000E_ENABLED=y
1379CONFIG_IP1000=m 1381CONFIG_IP1000=m
1380CONFIG_IGB=m 1382CONFIG_IGB=m
1383CONFIG_IGB_LRO=y
1381CONFIG_NS83820=m 1384CONFIG_NS83820=m
1382CONFIG_HAMACHI=m 1385CONFIG_HAMACHI=m
1383CONFIG_YELLOWFIN=m 1386CONFIG_YELLOWFIN=m
1384CONFIG_R8169=m 1387CONFIG_R8169=m
1385CONFIG_R8169_NAPI=y
1386CONFIG_R8169_VLAN=y 1388CONFIG_R8169_VLAN=y
1387CONFIG_SIS190=m 1389CONFIG_SIS190=m
1388CONFIG_SKGE=m 1390CONFIG_SKGE=m
@@ -1393,21 +1395,18 @@ CONFIG_VIA_VELOCITY=m
1393CONFIG_TIGON3=m 1395CONFIG_TIGON3=m
1394CONFIG_BNX2=m 1396CONFIG_BNX2=m
1395CONFIG_GIANFAR=m 1397CONFIG_GIANFAR=m
1396CONFIG_GFAR_NAPI=y
1397# CONFIG_UCC_GETH is not set 1398# CONFIG_UCC_GETH is not set
1398CONFIG_MV643XX_ETH=m 1399CONFIG_MV643XX_ETH=m
1399CONFIG_QLA3XXX=m 1400CONFIG_QLA3XXX=m
1400CONFIG_ATL1=m 1401CONFIG_ATL1=m
1402# CONFIG_ATL1E is not set
1401CONFIG_NETDEV_10000=y 1403CONFIG_NETDEV_10000=y
1402CONFIG_CHELSIO_T1=m 1404CONFIG_CHELSIO_T1=m
1403CONFIG_CHELSIO_T1_1G=y 1405CONFIG_CHELSIO_T1_1G=y
1404CONFIG_CHELSIO_T1_NAPI=y
1405CONFIG_CHELSIO_T3=m 1406CONFIG_CHELSIO_T3=m
1406CONFIG_IXGBE=m 1407CONFIG_IXGBE=m
1407CONFIG_IXGB=m 1408CONFIG_IXGB=m
1408CONFIG_IXGB_NAPI=y
1409CONFIG_S2IO=m 1409CONFIG_S2IO=m
1410CONFIG_S2IO_NAPI=y
1411CONFIG_MYRI10GE=m 1410CONFIG_MYRI10GE=m
1412CONFIG_NETXEN_NIC=m 1411CONFIG_NETXEN_NIC=m
1413CONFIG_NIU=m 1412CONFIG_NIU=m
@@ -1477,8 +1476,7 @@ CONFIG_ATM_IDT77252_USE_SUNI=y
1477# CONFIG_ATM_AMBASSADOR is not set 1476# CONFIG_ATM_AMBASSADOR is not set
1478# CONFIG_ATM_HORIZON is not set 1477# CONFIG_ATM_HORIZON is not set
1479# CONFIG_ATM_IA is not set 1478# CONFIG_ATM_IA is not set
1480CONFIG_ATM_FORE200E_MAYBE=m 1479# CONFIG_ATM_FORE200E is not set
1481# CONFIG_ATM_FORE200E_PCA is not set
1482CONFIG_ATM_HE=m 1480CONFIG_ATM_HE=m
1483# CONFIG_ATM_HE_USE_SUNI is not set 1481# CONFIG_ATM_HE_USE_SUNI is not set
1484CONFIG_FDDI=y 1482CONFIG_FDDI=y
@@ -1551,6 +1549,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1551# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1549# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1552CONFIG_MOUSE_SERIAL=m 1550CONFIG_MOUSE_SERIAL=m
1553CONFIG_MOUSE_APPLETOUCH=m 1551CONFIG_MOUSE_APPLETOUCH=m
1552# CONFIG_MOUSE_BCM5974 is not set
1554# CONFIG_MOUSE_INPORT is not set 1553# CONFIG_MOUSE_INPORT is not set
1555# CONFIG_MOUSE_LOGIBM is not set 1554# CONFIG_MOUSE_LOGIBM is not set
1556# CONFIG_MOUSE_PC110PAD is not set 1555# CONFIG_MOUSE_PC110PAD is not set
@@ -1611,33 +1610,18 @@ CONFIG_SERIO_SERPORT=y
1611# CONFIG_SERIO_PCIPS2 is not set 1610# CONFIG_SERIO_PCIPS2 is not set
1612CONFIG_SERIO_LIBPS2=y 1611CONFIG_SERIO_LIBPS2=y
1613CONFIG_SERIO_RAW=m 1612CONFIG_SERIO_RAW=m
1613# CONFIG_SERIO_XILINX_XPS_PS2 is not set
1614CONFIG_GAMEPORT=m 1614CONFIG_GAMEPORT=m
1615CONFIG_GAMEPORT_NS558=m 1615CONFIG_GAMEPORT_NS558=m
1616CONFIG_GAMEPORT_L4=m 1616CONFIG_GAMEPORT_L4=m
1617CONFIG_GAMEPORT_EMU10K1=m 1617CONFIG_GAMEPORT_EMU10K1=m
1618CONFIG_GAMEPORT_FM801=m 1618CONFIG_GAMEPORT_FM801=m
1619CONFIG_INPUT_LIRC=y
1620CONFIG_LIRC_DEV=m
1621CONFIG_LIRC_ATIUSB=m
1622CONFIG_LIRC_BT829=m
1623CONFIG_LIRC_CMDIR=m
1624CONFIG_LIRC_I2C=m
1625CONFIG_LIRC_IGORPLUGUSB=m
1626CONFIG_LIRC_IMON=m
1627CONFIG_LIRC_IT87=m
1628CONFIG_LIRC_MCEUSB=m
1629CONFIG_LIRC_MCEUSB2=m
1630CONFIG_LIRC_PVR150=m
1631CONFIG_LIRC_PARALLEL=m
1632CONFIG_LIRC_SERIAL=m
1633CONFIG_LIRC_SIR=m
1634CONFIG_LIRC_STREAMZAP=m
1635CONFIG_LIRC_TTUSBIR=m
1636 1619
1637# 1620#
1638# Character devices 1621# Character devices
1639# 1622#
1640CONFIG_VT=y 1623CONFIG_VT=y
1624CONFIG_CONSOLE_TRANSLATIONS=y
1641CONFIG_VT_CONSOLE=y 1625CONFIG_VT_CONSOLE=y
1642CONFIG_HW_CONSOLE=y 1626CONFIG_HW_CONSOLE=y
1643CONFIG_VT_HW_CONSOLE_BINDING=y 1627CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -1701,12 +1685,12 @@ CONFIG_SERIAL_OF_PLATFORM=y
1701# CONFIG_SERIAL_QE is not set 1685# CONFIG_SERIAL_QE is not set
1702CONFIG_UNIX98_PTYS=y 1686CONFIG_UNIX98_PTYS=y
1703# CONFIG_LEGACY_PTYS is not set 1687# CONFIG_LEGACY_PTYS is not set
1704# CONFIG_CRASH is not set
1705CONFIG_BRIQ_PANEL=m 1688CONFIG_BRIQ_PANEL=m
1706CONFIG_PRINTER=m 1689CONFIG_PRINTER=m
1707CONFIG_LP_CONSOLE=y 1690CONFIG_LP_CONSOLE=y
1708CONFIG_PPDEV=m 1691CONFIG_PPDEV=m
1709# CONFIG_HVC_RTAS is not set 1692# CONFIG_HVC_RTAS is not set
1693# CONFIG_VIRTIO_CONSOLE is not set
1710# CONFIG_IPMI_HANDLER is not set 1694# CONFIG_IPMI_HANDLER is not set
1711CONFIG_HW_RANDOM=y 1695CONFIG_HW_RANDOM=y
1712CONFIG_HW_RANDOM_VIRTIO=m 1696CONFIG_HW_RANDOM_VIRTIO=m
@@ -1728,6 +1712,7 @@ CONFIG_DEVPORT=y
1728CONFIG_I2C=y 1712CONFIG_I2C=y
1729CONFIG_I2C_BOARDINFO=y 1713CONFIG_I2C_BOARDINFO=y
1730CONFIG_I2C_CHARDEV=m 1714CONFIG_I2C_CHARDEV=m
1715CONFIG_I2C_HELPER_AUTO=y
1731CONFIG_I2C_ALGOBIT=y 1716CONFIG_I2C_ALGOBIT=y
1732CONFIG_I2C_ALGOPCA=m 1717CONFIG_I2C_ALGOPCA=m
1733 1718
@@ -1807,20 +1792,24 @@ CONFIG_SENSORS_TSL2550=m
1807# CONFIG_I2C_DEBUG_BUS is not set 1792# CONFIG_I2C_DEBUG_BUS is not set
1808# CONFIG_I2C_DEBUG_CHIP is not set 1793# CONFIG_I2C_DEBUG_CHIP is not set
1809# CONFIG_SPI is not set 1794# CONFIG_SPI is not set
1810CONFIG_HAVE_GPIO_LIB=y 1795CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1811 1796CONFIG_ARCH_REQUIRE_GPIOLIB=y
1812# 1797CONFIG_GPIOLIB=y
1813# GPIO Support
1814#
1815# CONFIG_DEBUG_GPIO is not set 1798# CONFIG_DEBUG_GPIO is not set
1799CONFIG_GPIO_SYSFS=y
1816 1800
1817# 1801#
1818# I2C GPIO expanders: 1802# I2C GPIO expanders:
1819# 1803#
1804# CONFIG_GPIO_MAX732X is not set
1820# CONFIG_GPIO_PCA953X is not set 1805# CONFIG_GPIO_PCA953X is not set
1821# CONFIG_GPIO_PCF857X is not set 1806# CONFIG_GPIO_PCF857X is not set
1822 1807
1823# 1808#
1809# PCI GPIO expanders:
1810#
1811
1812#
1824# SPI GPIO expanders: 1813# SPI GPIO expanders:
1825# 1814#
1826CONFIG_W1=m 1815CONFIG_W1=m
@@ -1850,6 +1839,7 @@ CONFIG_APM_POWER=m
1850CONFIG_BATTERY_PMU=m 1839CONFIG_BATTERY_PMU=m
1851CONFIG_HWMON=m 1840CONFIG_HWMON=m
1852CONFIG_HWMON_VID=m 1841CONFIG_HWMON_VID=m
1842# CONFIG_SENSORS_AD7414 is not set
1853CONFIG_SENSORS_AD7418=m 1843CONFIG_SENSORS_AD7418=m
1854CONFIG_SENSORS_ADM1021=m 1844CONFIG_SENSORS_ADM1021=m
1855CONFIG_SENSORS_ADM1025=m 1845CONFIG_SENSORS_ADM1025=m
@@ -1913,8 +1903,9 @@ CONFIG_WATCHDOG=y
1913# Watchdog Device Drivers 1903# Watchdog Device Drivers
1914# 1904#
1915CONFIG_SOFT_WATCHDOG=m 1905CONFIG_SOFT_WATCHDOG=m
1906# CONFIG_ALIM7101_WDT is not set
1916# CONFIG_MPC5200_WDT is not set 1907# CONFIG_MPC5200_WDT is not set
1917CONFIG_83xx_WDT=m 1908# CONFIG_8xxx_WDT is not set
1918CONFIG_WATCHDOG_RTAS=m 1909CONFIG_WATCHDOG_RTAS=m
1919 1910
1920# 1911#
@@ -1953,8 +1944,10 @@ CONFIG_SSB_DRIVER_PCICORE=y
1953# 1944#
1954# Multifunction device drivers 1945# Multifunction device drivers
1955# 1946#
1947# CONFIG_MFD_CORE is not set
1956CONFIG_MFD_SM501=m 1948CONFIG_MFD_SM501=m
1957# CONFIG_HTC_PASIC3 is not set 1949# CONFIG_HTC_PASIC3 is not set
1950# CONFIG_MFD_TMIO is not set
1958 1951
1959# 1952#
1960# Multimedia devices 1953# Multimedia devices
@@ -1993,6 +1986,7 @@ CONFIG_MEDIA_TUNER_QT1010=m
1993CONFIG_MEDIA_TUNER_XC2028=m 1986CONFIG_MEDIA_TUNER_XC2028=m
1994CONFIG_MEDIA_TUNER_XC5000=m 1987CONFIG_MEDIA_TUNER_XC5000=m
1995CONFIG_MEDIA_TUNER_MXL5005S=m 1988CONFIG_MEDIA_TUNER_MXL5005S=m
1989CONFIG_MEDIA_TUNER_MXL5007T=m
1996CONFIG_VIDEO_V4L2=m 1990CONFIG_VIDEO_V4L2=m
1997CONFIG_VIDEO_V4L1=m 1991CONFIG_VIDEO_V4L1=m
1998CONFIG_VIDEOBUF_GEN=m 1992CONFIG_VIDEOBUF_GEN=m
@@ -2000,13 +1994,13 @@ CONFIG_VIDEOBUF_DMA_SG=m
2000CONFIG_VIDEOBUF_VMALLOC=m 1994CONFIG_VIDEOBUF_VMALLOC=m
2001CONFIG_VIDEOBUF_DVB=m 1995CONFIG_VIDEOBUF_DVB=m
2002CONFIG_VIDEO_BTCX=m 1996CONFIG_VIDEO_BTCX=m
2003CONFIG_VIDEO_IR_I2C=m
2004CONFIG_VIDEO_IR=m 1997CONFIG_VIDEO_IR=m
2005CONFIG_VIDEO_TVEEPROM=m 1998CONFIG_VIDEO_TVEEPROM=m
2006CONFIG_VIDEO_TUNER=m 1999CONFIG_VIDEO_TUNER=m
2007CONFIG_VIDEO_CAPTURE_DRIVERS=y 2000CONFIG_VIDEO_CAPTURE_DRIVERS=y
2008# CONFIG_VIDEO_ADV_DEBUG is not set 2001# CONFIG_VIDEO_ADV_DEBUG is not set
2009# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set 2002# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
2003CONFIG_VIDEO_IR_I2C=m
2010 2004
2011# 2005#
2012# Encoders/decoders and other helper chips 2006# Encoders/decoders and other helper chips
@@ -2108,6 +2102,8 @@ CONFIG_VIDEO_CX18=m
2108# CONFIG_VIDEO_CAFE_CCIC is not set 2102# CONFIG_VIDEO_CAFE_CCIC is not set
2109CONFIG_V4L_USB_DRIVERS=y 2103CONFIG_V4L_USB_DRIVERS=y
2110CONFIG_USB_VIDEO_CLASS=m 2104CONFIG_USB_VIDEO_CLASS=m
2105CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
2106CONFIG_USB_GSPCA=m
2111CONFIG_VIDEO_PVRUSB2=m 2107CONFIG_VIDEO_PVRUSB2=m
2112CONFIG_VIDEO_PVRUSB2_SYSFS=y 2108CONFIG_VIDEO_PVRUSB2_SYSFS=y
2113CONFIG_VIDEO_PVRUSB2_DVB=y 2109CONFIG_VIDEO_PVRUSB2_DVB=y
@@ -2133,11 +2129,14 @@ CONFIG_USB_PWC=m
2133# CONFIG_USB_PWC_DEBUG is not set 2129# CONFIG_USB_PWC_DEBUG is not set
2134CONFIG_USB_ZR364XX=m 2130CONFIG_USB_ZR364XX=m
2135CONFIG_USB_STKWEBCAM=m 2131CONFIG_USB_STKWEBCAM=m
2132# CONFIG_USB_S2255 is not set
2136CONFIG_SOC_CAMERA=m 2133CONFIG_SOC_CAMERA=m
2137CONFIG_SOC_CAMERA_MT9M001=m 2134CONFIG_SOC_CAMERA_MT9M001=m
2138# CONFIG_MT9M001_PCA9536_SWITCH is not set 2135# CONFIG_MT9M001_PCA9536_SWITCH is not set
2139CONFIG_SOC_CAMERA_MT9V022=m 2136CONFIG_SOC_CAMERA_MT9V022=m
2140# CONFIG_MT9V022_PCA9536_SWITCH is not set 2137# CONFIG_MT9V022_PCA9536_SWITCH is not set
2138# CONFIG_SOC_CAMERA_PLATFORM is not set
2139# CONFIG_VIDEO_SH_MOBILE_CEU is not set
2141CONFIG_RADIO_ADAPTERS=y 2140CONFIG_RADIO_ADAPTERS=y
2142# CONFIG_RADIO_CADET is not set 2141# CONFIG_RADIO_CADET is not set
2143# CONFIG_RADIO_RTRACK is not set 2142# CONFIG_RADIO_RTRACK is not set
@@ -2194,6 +2193,8 @@ CONFIG_DVB_USB_DTT200U=m
2194CONFIG_DVB_USB_OPERA1=m 2193CONFIG_DVB_USB_OPERA1=m
2195CONFIG_DVB_USB_AF9005=m 2194CONFIG_DVB_USB_AF9005=m
2196CONFIG_DVB_USB_AF9005_REMOTE=m 2195CONFIG_DVB_USB_AF9005_REMOTE=m
2196# CONFIG_DVB_USB_DW2102 is not set
2197# CONFIG_DVB_USB_ANYSEE is not set
2197CONFIG_DVB_TTUSB_BUDGET=m 2198CONFIG_DVB_TTUSB_BUDGET=m
2198CONFIG_DVB_TTUSB_DEC=m 2199CONFIG_DVB_TTUSB_DEC=m
2199CONFIG_DVB_CINERGYT2=m 2200CONFIG_DVB_CINERGYT2=m
@@ -2203,6 +2204,7 @@ CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512
2203CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 2204CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250
2204CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y 2205CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y
2205CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 2206CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100
2207# CONFIG_DVB_SIANO_SMS1XXX is not set
2206 2208
2207# 2209#
2208# Supported FlexCopII (B2C2) Adapters 2210# Supported FlexCopII (B2C2) Adapters
@@ -2253,6 +2255,7 @@ CONFIG_DVB_SP8870=m
2253CONFIG_DVB_SP887X=m 2255CONFIG_DVB_SP887X=m
2254CONFIG_DVB_CX22700=m 2256CONFIG_DVB_CX22700=m
2255CONFIG_DVB_CX22702=m 2257CONFIG_DVB_CX22702=m
2258# CONFIG_DVB_DRX397XD is not set
2256CONFIG_DVB_L64781=m 2259CONFIG_DVB_L64781=m
2257CONFIG_DVB_TDA1004X=m 2260CONFIG_DVB_TDA1004X=m
2258CONFIG_DVB_NXT6000=m 2261CONFIG_DVB_NXT6000=m
@@ -2389,12 +2392,15 @@ CONFIG_FB_TRIDENT=m
2389CONFIG_FB_TRIDENT_ACCEL=y 2392CONFIG_FB_TRIDENT_ACCEL=y
2390# CONFIG_FB_ARK is not set 2393# CONFIG_FB_ARK is not set
2391# CONFIG_FB_PM3 is not set 2394# CONFIG_FB_PM3 is not set
2395# CONFIG_FB_CARMINE is not set
2392# CONFIG_FB_FSL_DIU is not set 2396# CONFIG_FB_FSL_DIU is not set
2393CONFIG_FB_SM501=m 2397CONFIG_FB_SM501=m
2394CONFIG_FB_IBM_GXT4500=y 2398CONFIG_FB_IBM_GXT4500=y
2395# CONFIG_FB_VIRTUAL is not set 2399# CONFIG_FB_VIRTUAL is not set
2396CONFIG_BACKLIGHT_LCD_SUPPORT=y 2400CONFIG_BACKLIGHT_LCD_SUPPORT=y
2397CONFIG_LCD_CLASS_DEVICE=m 2401CONFIG_LCD_CLASS_DEVICE=m
2402# CONFIG_LCD_ILI9320 is not set
2403CONFIG_LCD_PLATFORM=m
2398CONFIG_BACKLIGHT_CLASS_DEVICE=y 2404CONFIG_BACKLIGHT_CLASS_DEVICE=y
2399# CONFIG_BACKLIGHT_CORGI is not set 2405# CONFIG_BACKLIGHT_CORGI is not set
2400 2406
@@ -2613,6 +2619,7 @@ CONFIG_USB_DEVICEFS=y
2613# CONFIG_USB_DYNAMIC_MINORS is not set 2619# CONFIG_USB_DYNAMIC_MINORS is not set
2614CONFIG_USB_SUSPEND=y 2620CONFIG_USB_SUSPEND=y
2615# CONFIG_USB_OTG is not set 2621# CONFIG_USB_OTG is not set
2622CONFIG_USB_MON=y
2616 2623
2617# 2624#
2618# USB Host Controller Drivers 2625# USB Host Controller Drivers
@@ -2640,6 +2647,7 @@ CONFIG_USB_U132_HCD=m
2640CONFIG_USB_SL811_HCD=m 2647CONFIG_USB_SL811_HCD=m
2641# CONFIG_USB_SL811_CS is not set 2648# CONFIG_USB_SL811_CS is not set
2642# CONFIG_USB_R8A66597_HCD is not set 2649# CONFIG_USB_R8A66597_HCD is not set
2650# CONFIG_USB_MUSB_HDRC is not set
2643 2651
2644# 2652#
2645# USB Device Class drivers 2653# USB Device Class drivers
@@ -2668,6 +2676,7 @@ CONFIG_USB_STORAGE_JUMPSHOT=y
2668CONFIG_USB_STORAGE_ALAUDA=y 2676CONFIG_USB_STORAGE_ALAUDA=y
2669CONFIG_USB_STORAGE_ONETOUCH=y 2677CONFIG_USB_STORAGE_ONETOUCH=y
2670CONFIG_USB_STORAGE_KARMA=y 2678CONFIG_USB_STORAGE_KARMA=y
2679# CONFIG_USB_STORAGE_SIERRA is not set
2671CONFIG_USB_STORAGE_CYPRESS_ATACB=y 2680CONFIG_USB_STORAGE_CYPRESS_ATACB=y
2672# CONFIG_USB_LIBUSUAL is not set 2681# CONFIG_USB_LIBUSUAL is not set
2673 2682
@@ -2676,7 +2685,6 @@ CONFIG_USB_STORAGE_CYPRESS_ATACB=y
2676# 2685#
2677CONFIG_USB_MDC800=m 2686CONFIG_USB_MDC800=m
2678CONFIG_USB_MICROTEK=m 2687CONFIG_USB_MICROTEK=m
2679CONFIG_USB_MON=y
2680 2688
2681# 2689#
2682# USB port drivers 2690# USB port drivers
@@ -2686,7 +2694,6 @@ CONFIG_USB_SERIAL=m
2686CONFIG_USB_EZUSB=y 2694CONFIG_USB_EZUSB=y
2687CONFIG_USB_SERIAL_GENERIC=y 2695CONFIG_USB_SERIAL_GENERIC=y
2688CONFIG_USB_SERIAL_AIRCABLE=m 2696CONFIG_USB_SERIAL_AIRCABLE=m
2689CONFIG_USB_SERIAL_AIRPRIME=m
2690CONFIG_USB_SERIAL_ARK3116=m 2697CONFIG_USB_SERIAL_ARK3116=m
2691CONFIG_USB_SERIAL_BELKIN=m 2698CONFIG_USB_SERIAL_BELKIN=m
2692CONFIG_USB_SERIAL_CH341=m 2699CONFIG_USB_SERIAL_CH341=m
@@ -2734,7 +2741,6 @@ CONFIG_USB_SERIAL_DEBUG=m
2734CONFIG_USB_EMI62=m 2741CONFIG_USB_EMI62=m
2735CONFIG_USB_EMI26=m 2742CONFIG_USB_EMI26=m
2736CONFIG_USB_ADUTUX=m 2743CONFIG_USB_ADUTUX=m
2737CONFIG_USB_AUERSWALD=m
2738# CONFIG_USB_RIO500 is not set 2744# CONFIG_USB_RIO500 is not set
2739CONFIG_USB_LEGOTOWER=m 2745CONFIG_USB_LEGOTOWER=m
2740CONFIG_USB_LCD=m 2746CONFIG_USB_LCD=m
@@ -2770,7 +2776,9 @@ CONFIG_LEDS_CLASS=y
2770# 2776#
2771# LED drivers 2777# LED drivers
2772# 2778#
2779# CONFIG_LEDS_PCA9532 is not set
2773# CONFIG_LEDS_GPIO is not set 2780# CONFIG_LEDS_GPIO is not set
2781# CONFIG_LEDS_PCA955X is not set
2774 2782
2775# 2783#
2776# LED Triggers 2784# LED Triggers
@@ -2853,6 +2861,7 @@ CONFIG_KS0108_PORT=0x378
2853CONFIG_KS0108_DELAY=2 2861CONFIG_KS0108_DELAY=2
2854CONFIG_UIO=m 2862CONFIG_UIO=m
2855CONFIG_UIO_CIF=m 2863CONFIG_UIO_CIF=m
2864CONFIG_UIO_PDRV=m
2856CONFIG_UIO_SMX=m 2865CONFIG_UIO_SMX=m
2857 2866
2858# 2867#
@@ -2899,6 +2908,7 @@ CONFIG_GFS2_FS_LOCKING_DLM=m
2899CONFIG_OCFS2_FS=m 2908CONFIG_OCFS2_FS=m
2900CONFIG_OCFS2_FS_O2CB=m 2909CONFIG_OCFS2_FS_O2CB=m
2901CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m 2910CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
2911CONFIG_OCFS2_FS_STATS=y
2902# CONFIG_OCFS2_DEBUG_MASKLOG is not set 2912# CONFIG_OCFS2_DEBUG_MASKLOG is not set
2903# CONFIG_OCFS2_DEBUG_FS is not set 2913# CONFIG_OCFS2_DEBUG_FS is not set
2904CONFIG_DNOTIFY=y 2914CONFIG_DNOTIFY=y
@@ -2959,11 +2969,9 @@ CONFIG_BEFS_FS=m
2959CONFIG_BFS_FS=m 2969CONFIG_BFS_FS=m
2960CONFIG_EFS_FS=m 2970CONFIG_EFS_FS=m
2961CONFIG_CRAMFS=m 2971CONFIG_CRAMFS=m
2962CONFIG_SQUASHFS=m
2963# CONFIG_SQUASHFS_EMBEDDED is not set
2964CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
2965CONFIG_VXFS_FS=m 2972CONFIG_VXFS_FS=m
2966CONFIG_MINIX_FS=m 2973CONFIG_MINIX_FS=m
2974CONFIG_OMFS_FS=m
2967# CONFIG_HPFS_FS is not set 2975# CONFIG_HPFS_FS is not set
2968CONFIG_QNX4FS_FS=m 2976CONFIG_QNX4FS_FS=m
2969CONFIG_ROMFS_FS=m 2977CONFIG_ROMFS_FS=m
@@ -2988,7 +2996,6 @@ CONFIG_NFS_ACL_SUPPORT=m
2988CONFIG_NFS_COMMON=y 2996CONFIG_NFS_COMMON=y
2989CONFIG_SUNRPC=m 2997CONFIG_SUNRPC=m
2990CONFIG_SUNRPC_GSS=m 2998CONFIG_SUNRPC_GSS=m
2991CONFIG_SUNRPC_BIND34=y
2992CONFIG_RPCSEC_GSS_KRB5=m 2999CONFIG_RPCSEC_GSS_KRB5=m
2993CONFIG_RPCSEC_GSS_SPKM3=m 3000CONFIG_RPCSEC_GSS_SPKM3=m
2994# CONFIG_SMB_FS is not set 3001# CONFIG_SMB_FS is not set
@@ -3011,7 +3018,6 @@ CONFIG_NCPFS_SMALLDOS=y
3011CONFIG_NCPFS_NLS=y 3018CONFIG_NCPFS_NLS=y
3012CONFIG_NCPFS_EXTRAS=y 3019CONFIG_NCPFS_EXTRAS=y
3013CONFIG_CODA_FS=m 3020CONFIG_CODA_FS=m
3014# CONFIG_CODA_FS_OLD_API is not set
3015# CONFIG_AFS_FS is not set 3021# CONFIG_AFS_FS is not set
3016CONFIG_9P_FS=m 3022CONFIG_9P_FS=m
3017 3023
@@ -3087,7 +3093,7 @@ CONFIG_BITREVERSE=y
3087# CONFIG_GENERIC_FIND_FIRST_BIT is not set 3093# CONFIG_GENERIC_FIND_FIRST_BIT is not set
3088CONFIG_CRC_CCITT=m 3094CONFIG_CRC_CCITT=m
3089CONFIG_CRC16=m 3095CONFIG_CRC16=m
3090CONFIG_CRC_T10DIF=m 3096CONFIG_CRC_T10DIF=y
3091CONFIG_CRC_ITU_T=m 3097CONFIG_CRC_ITU_T=m
3092CONFIG_CRC32=y 3098CONFIG_CRC32=y
3093# CONFIG_CRC7 is not set 3099# CONFIG_CRC7 is not set
@@ -3120,6 +3126,8 @@ CONFIG_HEADERS_CHECK=y
3120CONFIG_DEBUG_KERNEL=y 3126CONFIG_DEBUG_KERNEL=y
3121CONFIG_DEBUG_SHIRQ=y 3127CONFIG_DEBUG_SHIRQ=y
3122CONFIG_DETECT_SOFTLOCKUP=y 3128CONFIG_DETECT_SOFTLOCKUP=y
3129# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
3130CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
3123CONFIG_SCHED_DEBUG=y 3131CONFIG_SCHED_DEBUG=y
3124CONFIG_SCHEDSTATS=y 3132CONFIG_SCHEDSTATS=y
3125CONFIG_TIMER_STATS=y 3133CONFIG_TIMER_STATS=y
@@ -3143,6 +3151,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
3143CONFIG_DEBUG_INFO=y 3151CONFIG_DEBUG_INFO=y
3144CONFIG_DEBUG_VM=y 3152CONFIG_DEBUG_VM=y
3145CONFIG_DEBUG_WRITECOUNT=y 3153CONFIG_DEBUG_WRITECOUNT=y
3154CONFIG_DEBUG_MEMORY_INIT=y
3146CONFIG_DEBUG_LIST=y 3155CONFIG_DEBUG_LIST=y
3147CONFIG_DEBUG_SG=y 3156CONFIG_DEBUG_SG=y
3148CONFIG_FRAME_POINTER=y 3157CONFIG_FRAME_POINTER=y
@@ -3158,6 +3167,7 @@ CONFIG_FAIL_MAKE_REQUEST=y
3158CONFIG_FAULT_INJECTION_DEBUG_FS=y 3167CONFIG_FAULT_INJECTION_DEBUG_FS=y
3159CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y 3168CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
3160CONFIG_LATENCYTOP=y 3169CONFIG_LATENCYTOP=y
3170CONFIG_SYSCTL_SYSCALL_CHECK=y
3161CONFIG_HAVE_FTRACE=y 3171CONFIG_HAVE_FTRACE=y
3162CONFIG_HAVE_DYNAMIC_FTRACE=y 3172CONFIG_HAVE_DYNAMIC_FTRACE=y
3163CONFIG_TRACER_MAX_TRACE=y 3173CONFIG_TRACER_MAX_TRACE=y
@@ -3168,16 +3178,18 @@ CONFIG_CONTEXT_SWITCH_TRACER=y
3168CONFIG_DYNAMIC_FTRACE=y 3178CONFIG_DYNAMIC_FTRACE=y
3169# CONFIG_FTRACE_STARTUP_TEST is not set 3179# CONFIG_FTRACE_STARTUP_TEST is not set
3170# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set 3180# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
3181# CONFIG_BUILD_DOCSRC is not set
3171# CONFIG_SAMPLES is not set 3182# CONFIG_SAMPLES is not set
3183CONFIG_HAVE_ARCH_KGDB=y
3184# CONFIG_KGDB is not set
3172CONFIG_DEBUG_STACKOVERFLOW=y 3185CONFIG_DEBUG_STACKOVERFLOW=y
3173CONFIG_DEBUG_STACK_USAGE=y 3186CONFIG_DEBUG_STACK_USAGE=y
3174CONFIG_DEBUGGER=y
3175# CONFIG_CODE_PATCHING_SELFTEST is not set 3187# CONFIG_CODE_PATCHING_SELFTEST is not set
3176# CONFIG_FTR_FIXUP_SELFTEST is not set 3188# CONFIG_FTR_FIXUP_SELFTEST is not set
3177# CONFIG_KGDB_CONSOLE is not set
3178CONFIG_XMON=y 3189CONFIG_XMON=y
3179# CONFIG_XMON_DEFAULT is not set 3190# CONFIG_XMON_DEFAULT is not set
3180CONFIG_XMON_DISASSEMBLY=y 3191CONFIG_XMON_DISASSEMBLY=y
3192CONFIG_DEBUGGER=y
3181CONFIG_IRQSTACKS=y 3193CONFIG_IRQSTACKS=y
3182# CONFIG_VIRQ_DEBUG is not set 3194# CONFIG_VIRQ_DEBUG is not set
3183# CONFIG_BDI_SWITCH is not set 3195# CONFIG_BDI_SWITCH is not set
diff --git a/arch/powerpc/configs/pq2fads_defconfig b/arch/powerpc/configs/pq2fads_defconfig
index bc3bf62ddc2f..b390b7476649 100644
--- a/arch/powerpc/configs/pq2fads_defconfig
+++ b/arch/powerpc/configs/pq2fads_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:18 2008 4# Thu Aug 21 00:52:13 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -15,6 +15,7 @@ CONFIG_6xx=y
15# CONFIG_44x is not set 15# CONFIG_44x is not set
16# CONFIG_E200 is not set 16# CONFIG_E200 is not set
17CONFIG_PPC_FPU=y 17CONFIG_PPC_FPU=y
18# CONFIG_ALTIVEC is not set
18CONFIG_PPC_STD_MMU=y 19CONFIG_PPC_STD_MMU=y
19CONFIG_PPC_STD_MMU_32=y 20CONFIG_PPC_STD_MMU_32=y
20# CONFIG_PPC_MM_SLICES is not set 21# CONFIG_PPC_MM_SLICES is not set
@@ -31,12 +32,14 @@ CONFIG_GENERIC_HARDIRQS=y
31# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
35CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
36CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
37CONFIG_GENERIC_HWEIGHT=y 39CONFIG_GENERIC_HWEIGHT=y
38CONFIG_GENERIC_CALIBRATE_DELAY=y 40CONFIG_GENERIC_CALIBRATE_DELAY=y
39CONFIG_GENERIC_FIND_NEXT_BIT=y 41CONFIG_GENERIC_FIND_NEXT_BIT=y
42CONFIG_GENERIC_GPIO=y
40# CONFIG_ARCH_NO_VIRT_TO_BUS is not set 43# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
41CONFIG_PPC=y 44CONFIG_PPC=y
42CONFIG_EARLY_PRINTK=y 45CONFIG_EARLY_PRINTK=y
@@ -45,11 +48,13 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
45CONFIG_ARCH_MAY_HAVE_PC_FDC=y 48CONFIG_ARCH_MAY_HAVE_PC_FDC=y
46CONFIG_PPC_OF=y 49CONFIG_PPC_OF=y
47CONFIG_OF=y 50CONFIG_OF=y
48# CONFIG_PPC_UDBG_16550 is not set 51CONFIG_PPC_UDBG_16550=y
49# CONFIG_GENERIC_TBSYNC is not set 52# CONFIG_GENERIC_TBSYNC is not set
50CONFIG_AUDIT_ARCH=y 53CONFIG_AUDIT_ARCH=y
51CONFIG_GENERIC_BUG=y 54CONFIG_GENERIC_BUG=y
52CONFIG_DEFAULT_UIMAGE=y 55CONFIG_DEFAULT_UIMAGE=y
56CONFIG_HIBERNATE_32=y
57CONFIG_ARCH_HIBERNATION_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 58# CONFIG_PPC_DCR_NATIVE is not set
54# CONFIG_PPC_DCR_MMIO is not set 59# CONFIG_PPC_DCR_MMIO is not set
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 60CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -82,7 +87,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
82CONFIG_SYSCTL=y 87CONFIG_SYSCTL=y
83CONFIG_EMBEDDED=y 88CONFIG_EMBEDDED=y
84CONFIG_SYSCTL_SYSCALL=y 89CONFIG_SYSCTL_SYSCALL=y
85CONFIG_SYSCTL_SYSCALL_CHECK=y
86CONFIG_KALLSYMS=y 90CONFIG_KALLSYMS=y
87CONFIG_KALLSYMS_ALL=y 91CONFIG_KALLSYMS_ALL=y
88# CONFIG_KALLSYMS_EXTRA_PASS is not set 92# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -90,6 +94,7 @@ CONFIG_HOTPLUG=y
90CONFIG_PRINTK=y 94CONFIG_PRINTK=y
91CONFIG_BUG=y 95CONFIG_BUG=y
92CONFIG_ELF_CORE=y 96CONFIG_ELF_CORE=y
97CONFIG_PCSPKR_PLATFORM=y
93CONFIG_COMPAT_BRK=y 98CONFIG_COMPAT_BRK=y
94CONFIG_BASE_FULL=y 99CONFIG_BASE_FULL=y
95CONFIG_FUTEX=y 100CONFIG_FUTEX=y
@@ -107,10 +112,16 @@ CONFIG_SLUB=y
107# CONFIG_PROFILING is not set 112# CONFIG_PROFILING is not set
108# CONFIG_MARKERS is not set 113# CONFIG_MARKERS is not set
109CONFIG_HAVE_OPROFILE=y 114CONFIG_HAVE_OPROFILE=y
115CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
116CONFIG_HAVE_IOREMAP_PROT=y
110CONFIG_HAVE_KPROBES=y 117CONFIG_HAVE_KPROBES=y
111CONFIG_HAVE_KRETPROBES=y 118CONFIG_HAVE_KRETPROBES=y
119CONFIG_HAVE_ARCH_TRACEHOOK=y
112# CONFIG_HAVE_DMA_ATTRS is not set 120# CONFIG_HAVE_DMA_ATTRS is not set
121# CONFIG_USE_GENERIC_SMP_HELPERS is not set
122CONFIG_HAVE_CLK=y
113CONFIG_PROC_PAGE_MONITOR=y 123CONFIG_PROC_PAGE_MONITOR=y
124# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
114CONFIG_SLABINFO=y 125CONFIG_SLABINFO=y
115CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
116# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
@@ -120,6 +131,7 @@ CONFIG_BLOCK=y
120# CONFIG_LBD is not set 131# CONFIG_LBD is not set
121# CONFIG_BLK_DEV_IO_TRACE is not set 132# CONFIG_BLK_DEV_IO_TRACE is not set
122# CONFIG_LSF is not set 133# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_INTEGRITY is not set
123 135
124# 136#
125# IO Schedulers 137# IO Schedulers
@@ -138,33 +150,43 @@ CONFIG_CLASSIC_RCU=y
138# 150#
139# Platform support 151# Platform support
140# 152#
141# CONFIG_PPC_MULTIPLATFORM is not set 153CONFIG_PPC_MULTIPLATFORM=y
142CONFIG_PPC_82xx=y 154CONFIG_CLASSIC32=y
143# CONFIG_PPC_83xx is not set 155CONFIG_PPC_CHRP=y
144# CONFIG_PPC_86xx is not set 156# CONFIG_MPC5121_ADS is not set
145# CONFIG_PPC_MPC512x is not set 157# CONFIG_MPC5121_GENERIC is not set
146# CONFIG_PPC_MPC5121 is not set 158# CONFIG_PPC_MPC52xx is not set
159CONFIG_PPC_PMAC=y
147# CONFIG_PPC_CELL is not set 160# CONFIG_PPC_CELL is not set
148# CONFIG_PPC_CELL_NATIVE is not set 161# CONFIG_PPC_CELL_NATIVE is not set
162CONFIG_PPC_82xx=y
149# CONFIG_MPC8272_ADS is not set 163# CONFIG_MPC8272_ADS is not set
150CONFIG_PQ2FADS=y 164CONFIG_PQ2FADS=y
151# CONFIG_EP8248E is not set 165# CONFIG_EP8248E is not set
152CONFIG_PQ2ADS=y 166CONFIG_PQ2ADS=y
153CONFIG_8260=y 167CONFIG_8260=y
154CONFIG_PQ2_ADS_PCI_PIC=y 168CONFIG_PQ2_ADS_PCI_PIC=y
169# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set
171# CONFIG_EMBEDDED6xx is not set
172CONFIG_PPC_NATIVE=y
173# CONFIG_UDBG_RTAS_CONSOLE is not set
155# CONFIG_IPIC is not set 174# CONFIG_IPIC is not set
156# CONFIG_MPIC is not set 175CONFIG_MPIC=y
157# CONFIG_MPIC_WEIRD is not set 176# CONFIG_MPIC_WEIRD is not set
158# CONFIG_PPC_I8259 is not set 177CONFIG_PPC_I8259=y
159# CONFIG_PPC_RTAS is not set 178CONFIG_PPC_RTAS=y
179# CONFIG_RTAS_ERROR_LOGGING is not set
180CONFIG_RTAS_PROC=y
160# CONFIG_MMIO_NVRAM is not set 181# CONFIG_MMIO_NVRAM is not set
161# CONFIG_PPC_MPC106 is not set 182CONFIG_PPC_MPC106=y
162# CONFIG_PPC_970_NAP is not set 183# CONFIG_PPC_970_NAP is not set
163# CONFIG_PPC_INDIRECT_IO is not set 184# CONFIG_PPC_INDIRECT_IO is not set
164# CONFIG_GENERIC_IOMAP is not set 185# CONFIG_GENERIC_IOMAP is not set
165# CONFIG_CPU_FREQ is not set 186# CONFIG_CPU_FREQ is not set
187# CONFIG_PPC601_SYNC_FIX is not set
188# CONFIG_TAU is not set
166CONFIG_CPM2=y 189CONFIG_CPM2=y
167CONFIG_PPC_CPM_NEW_BINDING=y
168# CONFIG_FSL_ULI1575 is not set 190# CONFIG_FSL_ULI1575 is not set
169CONFIG_CPM=y 191CONFIG_CPM=y
170 192
@@ -181,7 +203,7 @@ CONFIG_HZ_250=y
181# CONFIG_HZ_300 is not set 203# CONFIG_HZ_300 is not set
182# CONFIG_HZ_1000 is not set 204# CONFIG_HZ_1000 is not set
183CONFIG_HZ=250 205CONFIG_HZ=250
184# CONFIG_SCHED_HRTICK is not set 206CONFIG_SCHED_HRTICK=y
185CONFIG_PREEMPT_NONE=y 207CONFIG_PREEMPT_NONE=y
186# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
187# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
@@ -199,6 +221,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
199# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
200CONFIG_PAGEFLAGS_EXTENDED=y 222CONFIG_PAGEFLAGS_EXTENDED=y
201CONFIG_SPLIT_PTLOCK_CPUS=4 223CONFIG_SPLIT_PTLOCK_CPUS=4
224CONFIG_MIGRATION=y
202# CONFIG_RESOURCES_64BIT is not set 225# CONFIG_RESOURCES_64BIT is not set
203CONFIG_ZONE_DMA_FLAG=1 226CONFIG_ZONE_DMA_FLAG=1
204CONFIG_BOUNCE=y 227CONFIG_BOUNCE=y
@@ -206,6 +229,7 @@ CONFIG_VIRT_TO_BUS=y
206CONFIG_FORCE_MAX_ZONEORDER=11 229CONFIG_FORCE_MAX_ZONEORDER=11
207CONFIG_PROC_DEVICETREE=y 230CONFIG_PROC_DEVICETREE=y
208# CONFIG_CMDLINE_BOOL is not set 231# CONFIG_CMDLINE_BOOL is not set
232CONFIG_EXTRA_TARGETS=""
209# CONFIG_PM is not set 233# CONFIG_PM is not set
210CONFIG_SECCOMP=y 234CONFIG_SECCOMP=y
211CONFIG_ISA_DMA_API=y 235CONFIG_ISA_DMA_API=y
@@ -213,9 +237,11 @@ CONFIG_ISA_DMA_API=y
213# 237#
214# Bus options 238# Bus options
215# 239#
240# CONFIG_ISA is not set
216CONFIG_ZONE_DMA=y 241CONFIG_ZONE_DMA=y
217CONFIG_PPC_INDIRECT_PCI=y 242CONFIG_PPC_INDIRECT_PCI=y
218CONFIG_FSL_SOC=y 243CONFIG_FSL_SOC=y
244CONFIG_PPC_PCI_CHOICE=y
219CONFIG_PCI=y 245CONFIG_PCI=y
220CONFIG_PCI_DOMAINS=y 246CONFIG_PCI_DOMAINS=y
221CONFIG_PCI_SYSCALL=y 247CONFIG_PCI_SYSCALL=y
@@ -243,10 +269,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
243CONFIG_KERNEL_START=0xc0000000 269CONFIG_KERNEL_START=0xc0000000
244CONFIG_PHYSICAL_START=0x00000000 270CONFIG_PHYSICAL_START=0x00000000
245CONFIG_TASK_SIZE=0xc0000000 271CONFIG_TASK_SIZE=0xc0000000
246
247#
248# Networking
249#
250CONFIG_NET=y 272CONFIG_NET=y
251 273
252# 274#
@@ -447,9 +469,11 @@ CONFIG_MTD_PHYSMAP_OF=y
447# 469#
448# CONFIG_MTD_UBI is not set 470# CONFIG_MTD_UBI is not set
449CONFIG_OF_DEVICE=y 471CONFIG_OF_DEVICE=y
472CONFIG_OF_GPIO=y
450# CONFIG_PARPORT is not set 473# CONFIG_PARPORT is not set
451CONFIG_BLK_DEV=y 474CONFIG_BLK_DEV=y
452# CONFIG_BLK_DEV_FD is not set 475# CONFIG_BLK_DEV_FD is not set
476# CONFIG_MAC_FLOPPY is not set
453# CONFIG_BLK_CPQ_DA is not set 477# CONFIG_BLK_CPQ_DA is not set
454# CONFIG_BLK_CPQ_CISS_DA is not set 478# CONFIG_BLK_CPQ_CISS_DA is not set
455# CONFIG_BLK_DEV_DAC960 is not set 479# CONFIG_BLK_DEV_DAC960 is not set
@@ -461,14 +485,15 @@ CONFIG_BLK_DEV_LOOP=y
461# CONFIG_BLK_DEV_RAM is not set 485# CONFIG_BLK_DEV_RAM is not set
462# CONFIG_CDROM_PKTCDVD is not set 486# CONFIG_CDROM_PKTCDVD is not set
463# CONFIG_ATA_OVER_ETH is not set 487# CONFIG_ATA_OVER_ETH is not set
488# CONFIG_BLK_DEV_HD is not set
464CONFIG_MISC_DEVICES=y 489CONFIG_MISC_DEVICES=y
465# CONFIG_PHANTOM is not set 490# CONFIG_PHANTOM is not set
466# CONFIG_EEPROM_93CX6 is not set 491# CONFIG_EEPROM_93CX6 is not set
467# CONFIG_SGI_IOC4 is not set 492# CONFIG_SGI_IOC4 is not set
468# CONFIG_ENCLOSURE_SERVICES is not set 493# CONFIG_ENCLOSURE_SERVICES is not set
494# CONFIG_HP_ILO is not set
469CONFIG_HAVE_IDE=y 495CONFIG_HAVE_IDE=y
470CONFIG_IDE=y 496CONFIG_IDE=y
471CONFIG_IDE_MAX_HWIFS=4
472CONFIG_BLK_DEV_IDE=y 497CONFIG_BLK_DEV_IDE=y
473 498
474# 499#
@@ -486,7 +511,6 @@ CONFIG_IDE_PROC_FS=y
486# 511#
487# IDE chipset support/bugfixes 512# IDE chipset support/bugfixes
488# 513#
489# CONFIG_IDE_GENERIC is not set
490# CONFIG_BLK_DEV_PLATFORM is not set 514# CONFIG_BLK_DEV_PLATFORM is not set
491 515
492# 516#
@@ -498,9 +522,7 @@ CONFIG_IDE_PROC_FS=y
498# CONFIG_BLK_DEV_AMD74XX is not set 522# CONFIG_BLK_DEV_AMD74XX is not set
499# CONFIG_BLK_DEV_CMD64X is not set 523# CONFIG_BLK_DEV_CMD64X is not set
500# CONFIG_BLK_DEV_TRIFLEX is not set 524# CONFIG_BLK_DEV_TRIFLEX is not set
501# CONFIG_BLK_DEV_CY82C693 is not set
502# CONFIG_BLK_DEV_CS5530 is not set 525# CONFIG_BLK_DEV_CS5530 is not set
503# CONFIG_BLK_DEV_HPT34X is not set
504# CONFIG_BLK_DEV_HPT366 is not set 526# CONFIG_BLK_DEV_HPT366 is not set
505# CONFIG_BLK_DEV_JMICRON is not set 527# CONFIG_BLK_DEV_JMICRON is not set
506# CONFIG_BLK_DEV_SC1200 is not set 528# CONFIG_BLK_DEV_SC1200 is not set
@@ -517,9 +539,8 @@ CONFIG_IDE_PROC_FS=y
517# CONFIG_BLK_DEV_TRM290 is not set 539# CONFIG_BLK_DEV_TRM290 is not set
518# CONFIG_BLK_DEV_VIA82CXXX is not set 540# CONFIG_BLK_DEV_VIA82CXXX is not set
519# CONFIG_BLK_DEV_TC86C001 is not set 541# CONFIG_BLK_DEV_TC86C001 is not set
542# CONFIG_BLK_DEV_IDE_PMAC is not set
520# CONFIG_BLK_DEV_IDEDMA is not set 543# CONFIG_BLK_DEV_IDEDMA is not set
521# CONFIG_BLK_DEV_HD_ONLY is not set
522# CONFIG_BLK_DEV_HD is not set
523 544
524# 545#
525# SCSI device support 546# SCSI device support
@@ -537,13 +558,12 @@ CONFIG_IDE_PROC_FS=y
537# 558#
538 559
539# 560#
540# An alternative FireWire stack is available with EXPERIMENTAL=y 561# A new alternative FireWire stack is available with EXPERIMENTAL=y
541# 562#
542# CONFIG_IEEE1394 is not set 563# CONFIG_IEEE1394 is not set
543# CONFIG_I2O is not set 564# CONFIG_I2O is not set
544# CONFIG_MACINTOSH_DRIVERS is not set 565# CONFIG_MACINTOSH_DRIVERS is not set
545CONFIG_NETDEVICES=y 566CONFIG_NETDEVICES=y
546# CONFIG_NETDEVICES_MULTIQUEUE is not set
547# CONFIG_DUMMY is not set 567# CONFIG_DUMMY is not set
548# CONFIG_BONDING is not set 568# CONFIG_BONDING is not set
549# CONFIG_EQUALIZER is not set 569# CONFIG_EQUALIZER is not set
@@ -567,8 +587,11 @@ CONFIG_DAVICOM_PHY=y
567# CONFIG_REALTEK_PHY is not set 587# CONFIG_REALTEK_PHY is not set
568# CONFIG_FIXED_PHY is not set 588# CONFIG_FIXED_PHY is not set
569CONFIG_MDIO_BITBANG=y 589CONFIG_MDIO_BITBANG=y
590# CONFIG_MDIO_OF_GPIO is not set
570CONFIG_NET_ETHERNET=y 591CONFIG_NET_ETHERNET=y
571CONFIG_MII=y 592CONFIG_MII=y
593# CONFIG_MACE is not set
594# CONFIG_BMAC is not set
572# CONFIG_HAPPYMEAL is not set 595# CONFIG_HAPPYMEAL is not set
573# CONFIG_SUNGEM is not set 596# CONFIG_SUNGEM is not set
574# CONFIG_CASSINI is not set 597# CONFIG_CASSINI is not set
@@ -590,7 +613,6 @@ CONFIG_NETDEV_1000=y
590# CONFIG_DL2K is not set 613# CONFIG_DL2K is not set
591# CONFIG_E1000 is not set 614# CONFIG_E1000 is not set
592# CONFIG_E1000E is not set 615# CONFIG_E1000E is not set
593# CONFIG_E1000E_ENABLED is not set
594# CONFIG_IGB is not set 616# CONFIG_IGB is not set
595# CONFIG_NS83820 is not set 617# CONFIG_NS83820 is not set
596# CONFIG_HAMACHI is not set 618# CONFIG_HAMACHI is not set
@@ -602,6 +624,7 @@ CONFIG_NETDEV_1000=y
602# CONFIG_TIGON3 is not set 624# CONFIG_TIGON3 is not set
603# CONFIG_BNX2 is not set 625# CONFIG_BNX2 is not set
604# CONFIG_GIANFAR is not set 626# CONFIG_GIANFAR is not set
627# CONFIG_MV643XX_ETH is not set
605# CONFIG_QLA3XXX is not set 628# CONFIG_QLA3XXX is not set
606CONFIG_NETDEV_10000=y 629CONFIG_NETDEV_10000=y
607# CONFIG_CHELSIO_T1 is not set 630# CONFIG_CHELSIO_T1 is not set
@@ -667,6 +690,7 @@ CONFIG_KEYBOARD_ATKBD=y
667# CONFIG_KEYBOARD_XTKBD is not set 690# CONFIG_KEYBOARD_XTKBD is not set
668# CONFIG_KEYBOARD_NEWTON is not set 691# CONFIG_KEYBOARD_NEWTON is not set
669# CONFIG_KEYBOARD_STOWAWAY is not set 692# CONFIG_KEYBOARD_STOWAWAY is not set
693# CONFIG_KEYBOARD_GPIO is not set
670CONFIG_INPUT_MOUSE=y 694CONFIG_INPUT_MOUSE=y
671CONFIG_MOUSE_PS2=y 695CONFIG_MOUSE_PS2=y
672CONFIG_MOUSE_PS2_ALPS=y 696CONFIG_MOUSE_PS2_ALPS=y
@@ -677,7 +701,9 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
677# CONFIG_MOUSE_PS2_TOUCHKIT is not set 701# CONFIG_MOUSE_PS2_TOUCHKIT is not set
678# CONFIG_MOUSE_SERIAL is not set 702# CONFIG_MOUSE_SERIAL is not set
679# CONFIG_MOUSE_APPLETOUCH is not set 703# CONFIG_MOUSE_APPLETOUCH is not set
704# CONFIG_MOUSE_BCM5974 is not set
680# CONFIG_MOUSE_VSXXXAA is not set 705# CONFIG_MOUSE_VSXXXAA is not set
706# CONFIG_MOUSE_GPIO is not set
681# CONFIG_INPUT_JOYSTICK is not set 707# CONFIG_INPUT_JOYSTICK is not set
682# CONFIG_INPUT_TABLET is not set 708# CONFIG_INPUT_TABLET is not set
683# CONFIG_INPUT_TOUCHSCREEN is not set 709# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -692,6 +718,7 @@ CONFIG_SERIO_SERPORT=y
692# CONFIG_SERIO_PCIPS2 is not set 718# CONFIG_SERIO_PCIPS2 is not set
693CONFIG_SERIO_LIBPS2=y 719CONFIG_SERIO_LIBPS2=y
694# CONFIG_SERIO_RAW is not set 720# CONFIG_SERIO_RAW is not set
721# CONFIG_SERIO_XILINX_XPS_PS2 is not set
695# CONFIG_GAMEPORT is not set 722# CONFIG_GAMEPORT is not set
696 723
697# 724#
@@ -712,6 +739,7 @@ CONFIG_DEVKMEM=y
712# CONFIG_SERIAL_UARTLITE is not set 739# CONFIG_SERIAL_UARTLITE is not set
713CONFIG_SERIAL_CORE=y 740CONFIG_SERIAL_CORE=y
714CONFIG_SERIAL_CORE_CONSOLE=y 741CONFIG_SERIAL_CORE_CONSOLE=y
742# CONFIG_SERIAL_PMACZILOG is not set
715CONFIG_SERIAL_CPM=y 743CONFIG_SERIAL_CPM=y
716CONFIG_SERIAL_CPM_CONSOLE=y 744CONFIG_SERIAL_CPM_CONSOLE=y
717CONFIG_SERIAL_CPM_SCC1=y 745CONFIG_SERIAL_CPM_SCC1=y
@@ -724,6 +752,8 @@ CONFIG_SERIAL_CPM_SCC4=y
724CONFIG_UNIX98_PTYS=y 752CONFIG_UNIX98_PTYS=y
725CONFIG_LEGACY_PTYS=y 753CONFIG_LEGACY_PTYS=y
726CONFIG_LEGACY_PTY_COUNT=256 754CONFIG_LEGACY_PTY_COUNT=256
755# CONFIG_BRIQ_PANEL is not set
756# CONFIG_HVC_RTAS is not set
727# CONFIG_IPMI_HANDLER is not set 757# CONFIG_IPMI_HANDLER is not set
728CONFIG_HW_RANDOM=y 758CONFIG_HW_RANDOM=y
729# CONFIG_NVRAM is not set 759# CONFIG_NVRAM is not set
@@ -734,10 +764,28 @@ CONFIG_HW_RANDOM=y
734CONFIG_DEVPORT=y 764CONFIG_DEVPORT=y
735# CONFIG_I2C is not set 765# CONFIG_I2C is not set
736# CONFIG_SPI is not set 766# CONFIG_SPI is not set
767CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
768CONFIG_ARCH_REQUIRE_GPIOLIB=y
769CONFIG_GPIOLIB=y
770# CONFIG_DEBUG_GPIO is not set
771
772#
773# I2C GPIO expanders:
774#
775
776#
777# PCI GPIO expanders:
778#
779# CONFIG_GPIO_BT8XX is not set
780
781#
782# SPI GPIO expanders:
783#
737# CONFIG_W1 is not set 784# CONFIG_W1 is not set
738# CONFIG_POWER_SUPPLY is not set 785# CONFIG_POWER_SUPPLY is not set
739# CONFIG_HWMON is not set 786# CONFIG_HWMON is not set
740# CONFIG_THERMAL is not set 787# CONFIG_THERMAL is not set
788# CONFIG_THERMAL_HWMON is not set
741# CONFIG_WATCHDOG is not set 789# CONFIG_WATCHDOG is not set
742 790
743# 791#
@@ -749,8 +797,10 @@ CONFIG_SSB_POSSIBLE=y
749# 797#
750# Multifunction device drivers 798# Multifunction device drivers
751# 799#
800# CONFIG_MFD_CORE is not set
752# CONFIG_MFD_SM501 is not set 801# CONFIG_MFD_SM501 is not set
753# CONFIG_HTC_PASIC3 is not set 802# CONFIG_HTC_PASIC3 is not set
803# CONFIG_MFD_TMIO is not set
754 804
755# 805#
756# Multimedia devices 806# Multimedia devices
@@ -782,10 +832,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
782# Display device support 832# Display device support
783# 833#
784# CONFIG_DISPLAY_SUPPORT is not set 834# CONFIG_DISPLAY_SUPPORT is not set
785
786#
787# Sound
788#
789# CONFIG_SOUND is not set 835# CONFIG_SOUND is not set
790# CONFIG_HID_SUPPORT is not set 836# CONFIG_HID_SUPPORT is not set
791CONFIG_USB_SUPPORT=y 837CONFIG_USB_SUPPORT=y
@@ -795,6 +841,8 @@ CONFIG_USB_ARCH_HAS_EHCI=y
795# CONFIG_USB is not set 841# CONFIG_USB is not set
796# CONFIG_USB_OTG_WHITELIST is not set 842# CONFIG_USB_OTG_WHITELIST is not set
797# CONFIG_USB_OTG_BLACKLIST_HUB is not set 843# CONFIG_USB_OTG_BLACKLIST_HUB is not set
844# CONFIG_USB_MUSB_HDRC is not set
845# CONFIG_USB_GADGET_MUSB_HDRC is not set
798 846
799# 847#
800# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 848# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -807,7 +855,7 @@ CONFIG_USB_GADGET_SELECTED=y
807# CONFIG_USB_GADGET_ATMEL_USBA is not set 855# CONFIG_USB_GADGET_ATMEL_USBA is not set
808# CONFIG_USB_GADGET_FSL_USB2 is not set 856# CONFIG_USB_GADGET_FSL_USB2 is not set
809# CONFIG_USB_GADGET_NET2280 is not set 857# CONFIG_USB_GADGET_NET2280 is not set
810# CONFIG_USB_GADGET_PXA2XX is not set 858# CONFIG_USB_GADGET_PXA25X is not set
811CONFIG_USB_GADGET_M66592=y 859CONFIG_USB_GADGET_M66592=y
812CONFIG_USB_M66592=y 860CONFIG_USB_M66592=y
813# CONFIG_USB_GADGET_PXA27X is not set 861# CONFIG_USB_GADGET_PXA27X is not set
@@ -826,6 +874,7 @@ CONFIG_USB_ETH_RNDIS=y
826# CONFIG_USB_G_SERIAL is not set 874# CONFIG_USB_G_SERIAL is not set
827# CONFIG_USB_MIDI_GADGET is not set 875# CONFIG_USB_MIDI_GADGET is not set
828# CONFIG_USB_G_PRINTER is not set 876# CONFIG_USB_G_PRINTER is not set
877# CONFIG_USB_CDC_COMPOSITE is not set
829# CONFIG_MMC is not set 878# CONFIG_MMC is not set
830# CONFIG_MEMSTICK is not set 879# CONFIG_MEMSTICK is not set
831# CONFIG_NEW_LEDS is not set 880# CONFIG_NEW_LEDS is not set
@@ -893,6 +942,7 @@ CONFIG_TMPFS=y
893CONFIG_CRAMFS=y 942CONFIG_CRAMFS=y
894# CONFIG_VXFS_FS is not set 943# CONFIG_VXFS_FS is not set
895# CONFIG_MINIX_FS is not set 944# CONFIG_MINIX_FS is not set
945# CONFIG_OMFS_FS is not set
896# CONFIG_HPFS_FS is not set 946# CONFIG_HPFS_FS is not set
897# CONFIG_QNX4FS_FS is not set 947# CONFIG_QNX4FS_FS is not set
898# CONFIG_ROMFS_FS is not set 948# CONFIG_ROMFS_FS is not set
@@ -902,8 +952,8 @@ CONFIG_NETWORK_FILESYSTEMS=y
902CONFIG_NFS_FS=y 952CONFIG_NFS_FS=y
903CONFIG_NFS_V3=y 953CONFIG_NFS_V3=y
904CONFIG_NFS_V3_ACL=y 954CONFIG_NFS_V3_ACL=y
905# CONFIG_NFSD is not set
906CONFIG_ROOT_NFS=y 955CONFIG_ROOT_NFS=y
956# CONFIG_NFSD is not set
907CONFIG_LOCKD=y 957CONFIG_LOCKD=y
908CONFIG_LOCKD_V4=y 958CONFIG_LOCKD_V4=y
909CONFIG_NFS_ACL_SUPPORT=y 959CONFIG_NFS_ACL_SUPPORT=y
@@ -983,6 +1033,7 @@ CONFIG_BITREVERSE=y
983# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1033# CONFIG_GENERIC_FIND_FIRST_BIT is not set
984CONFIG_CRC_CCITT=y 1034CONFIG_CRC_CCITT=y
985# CONFIG_CRC16 is not set 1035# CONFIG_CRC16 is not set
1036# CONFIG_CRC_T10DIF is not set
986# CONFIG_CRC_ITU_T is not set 1037# CONFIG_CRC_ITU_T is not set
987CONFIG_CRC32=y 1038CONFIG_CRC32=y
988# CONFIG_CRC7 is not set 1039# CONFIG_CRC7 is not set
@@ -1009,6 +1060,8 @@ CONFIG_MAGIC_SYSRQ=y
1009CONFIG_DEBUG_KERNEL=y 1060CONFIG_DEBUG_KERNEL=y
1010# CONFIG_DEBUG_SHIRQ is not set 1061# CONFIG_DEBUG_SHIRQ is not set
1011CONFIG_DETECT_SOFTLOCKUP=y 1062CONFIG_DETECT_SOFTLOCKUP=y
1063# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1064CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1012# CONFIG_SCHED_DEBUG is not set 1065# CONFIG_SCHED_DEBUG is not set
1013# CONFIG_SCHEDSTATS is not set 1066# CONFIG_SCHEDSTATS is not set
1014# CONFIG_TIMER_STATS is not set 1067# CONFIG_TIMER_STATS is not set
@@ -1026,19 +1079,31 @@ CONFIG_DEBUG_BUGVERBOSE=y
1026CONFIG_DEBUG_INFO=y 1079CONFIG_DEBUG_INFO=y
1027# CONFIG_DEBUG_VM is not set 1080# CONFIG_DEBUG_VM is not set
1028# CONFIG_DEBUG_WRITECOUNT is not set 1081# CONFIG_DEBUG_WRITECOUNT is not set
1082# CONFIG_DEBUG_MEMORY_INIT is not set
1029# CONFIG_DEBUG_LIST is not set 1083# CONFIG_DEBUG_LIST is not set
1030# CONFIG_DEBUG_SG is not set 1084# CONFIG_DEBUG_SG is not set
1031# CONFIG_BOOT_PRINTK_DELAY is not set 1085# CONFIG_BOOT_PRINTK_DELAY is not set
1086# CONFIG_RCU_TORTURE_TEST is not set
1032# CONFIG_BACKTRACE_SELF_TEST is not set 1087# CONFIG_BACKTRACE_SELF_TEST is not set
1033# CONFIG_FAULT_INJECTION is not set 1088# CONFIG_FAULT_INJECTION is not set
1089# CONFIG_LATENCYTOP is not set
1090CONFIG_SYSCTL_SYSCALL_CHECK=y
1091CONFIG_HAVE_FTRACE=y
1092CONFIG_HAVE_DYNAMIC_FTRACE=y
1093# CONFIG_FTRACE is not set
1094# CONFIG_SCHED_TRACER is not set
1095# CONFIG_CONTEXT_SWITCH_TRACER is not set
1034# CONFIG_SAMPLES is not set 1096# CONFIG_SAMPLES is not set
1097CONFIG_HAVE_ARCH_KGDB=y
1035# CONFIG_DEBUG_STACKOVERFLOW is not set 1098# CONFIG_DEBUG_STACKOVERFLOW is not set
1036# CONFIG_DEBUG_STACK_USAGE is not set 1099# CONFIG_DEBUG_STACK_USAGE is not set
1037# CONFIG_DEBUG_PAGEALLOC is not set 1100# CONFIG_DEBUG_PAGEALLOC is not set
1038# CONFIG_DEBUGGER is not set 1101# CONFIG_CODE_PATCHING_SELFTEST is not set
1039# CONFIG_KGDB_CONSOLE is not set 1102# CONFIG_FTR_FIXUP_SELFTEST is not set
1103# CONFIG_XMON is not set
1040# CONFIG_IRQSTACKS is not set 1104# CONFIG_IRQSTACKS is not set
1041CONFIG_BDI_SWITCH=y 1105CONFIG_BDI_SWITCH=y
1106# CONFIG_BOOTX_TEXT is not set
1042# CONFIG_PPC_EARLY_DEBUG is not set 1107# CONFIG_PPC_EARLY_DEBUG is not set
1043 1108
1044# 1109#
@@ -1046,6 +1111,7 @@ CONFIG_BDI_SWITCH=y
1046# 1111#
1047# CONFIG_KEYS is not set 1112# CONFIG_KEYS is not set
1048# CONFIG_SECURITY is not set 1113# CONFIG_SECURITY is not set
1114# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1049CONFIG_CRYPTO=y 1115CONFIG_CRYPTO=y
1050 1116
1051# 1117#
@@ -1086,6 +1152,10 @@ CONFIG_CRYPTO_PCBC=y
1086# CONFIG_CRYPTO_MD4 is not set 1152# CONFIG_CRYPTO_MD4 is not set
1087CONFIG_CRYPTO_MD5=y 1153CONFIG_CRYPTO_MD5=y
1088# CONFIG_CRYPTO_MICHAEL_MIC is not set 1154# CONFIG_CRYPTO_MICHAEL_MIC is not set
1155# CONFIG_CRYPTO_RMD128 is not set
1156# CONFIG_CRYPTO_RMD160 is not set
1157# CONFIG_CRYPTO_RMD256 is not set
1158# CONFIG_CRYPTO_RMD320 is not set
1089# CONFIG_CRYPTO_SHA1 is not set 1159# CONFIG_CRYPTO_SHA1 is not set
1090# CONFIG_CRYPTO_SHA256 is not set 1160# CONFIG_CRYPTO_SHA256 is not set
1091# CONFIG_CRYPTO_SHA512 is not set 1161# CONFIG_CRYPTO_SHA512 is not set
@@ -1117,6 +1187,7 @@ CONFIG_CRYPTO_DES=y
1117# CONFIG_CRYPTO_LZO is not set 1187# CONFIG_CRYPTO_LZO is not set
1118CONFIG_CRYPTO_HW=y 1188CONFIG_CRYPTO_HW=y
1119# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1189# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1120# CONFIG_PPC_CLOCK is not set 1190# CONFIG_CRYPTO_DEV_TALITOS is not set
1191CONFIG_PPC_CLOCK=y
1121CONFIG_PPC_LIB_RHEAP=y 1192CONFIG_PPC_LIB_RHEAP=y
1122# CONFIG_VIRTUALIZATION is not set 1193# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/prpmc2800_defconfig b/arch/powerpc/configs/prpmc2800_defconfig
index c6b83577c055..01b54eac1ff6 100644
--- a/arch/powerpc/configs/prpmc2800_defconfig
+++ b/arch/powerpc/configs/prpmc2800_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:18 2008 4# Thu Aug 21 00:52:14 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -34,6 +34,7 @@ CONFIG_GENERIC_HARDIRQS=y
34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 34# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
35CONFIG_IRQ_PER_CPU=y 35CONFIG_IRQ_PER_CPU=y
36CONFIG_STACKTRACE_SUPPORT=y 36CONFIG_STACKTRACE_SUPPORT=y
37CONFIG_HAVE_LATENCYTOP_SUPPORT=y
37CONFIG_LOCKDEP_SUPPORT=y 38CONFIG_LOCKDEP_SUPPORT=y
38CONFIG_RWSEM_XCHGADD_ALGORITHM=y 39CONFIG_RWSEM_XCHGADD_ALGORITHM=y
39CONFIG_ARCH_HAS_ILOG2_U32=y 40CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -94,7 +95,6 @@ CONFIG_INITRAMFS_SOURCE=""
94CONFIG_SYSCTL=y 95CONFIG_SYSCTL=y
95# CONFIG_EMBEDDED is not set 96# CONFIG_EMBEDDED is not set
96CONFIG_SYSCTL_SYSCALL=y 97CONFIG_SYSCTL_SYSCALL=y
97CONFIG_SYSCTL_SYSCALL_CHECK=y
98CONFIG_KALLSYMS=y 98CONFIG_KALLSYMS=y
99# CONFIG_KALLSYMS_EXTRA_PASS is not set 99# CONFIG_KALLSYMS_EXTRA_PASS is not set
100CONFIG_HOTPLUG=y 100CONFIG_HOTPLUG=y
@@ -118,10 +118,16 @@ CONFIG_SLUB=y
118# CONFIG_PROFILING is not set 118# CONFIG_PROFILING is not set
119# CONFIG_MARKERS is not set 119# CONFIG_MARKERS is not set
120CONFIG_HAVE_OPROFILE=y 120CONFIG_HAVE_OPROFILE=y
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y
123# CONFIG_HAVE_DMA_ATTRS is not set 126# CONFIG_HAVE_DMA_ATTRS is not set
127# CONFIG_USE_GENERIC_SMP_HELPERS is not set
128# CONFIG_HAVE_CLK is not set
124CONFIG_PROC_PAGE_MONITOR=y 129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
125CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
126CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
127# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
@@ -132,6 +138,7 @@ CONFIG_LBD=y
132# CONFIG_BLK_DEV_IO_TRACE is not set 138# CONFIG_BLK_DEV_IO_TRACE is not set
133# CONFIG_LSF is not set 139# CONFIG_LSF is not set
134# CONFIG_BLK_DEV_BSG is not set 140# CONFIG_BLK_DEV_BSG is not set
141# CONFIG_BLK_DEV_INTEGRITY is not set
135 142
136# 143#
137# IO Schedulers 144# IO Schedulers
@@ -151,25 +158,25 @@ CONFIG_CLASSIC_RCU=y
151# Platform support 158# Platform support
152# 159#
153CONFIG_PPC_MULTIPLATFORM=y 160CONFIG_PPC_MULTIPLATFORM=y
154# CONFIG_PPC_82xx is not set
155# CONFIG_PPC_83xx is not set
156# CONFIG_PPC_86xx is not set
157CONFIG_CLASSIC32=y 161CONFIG_CLASSIC32=y
158# CONFIG_PPC_CHRP is not set 162# CONFIG_PPC_CHRP is not set
159# CONFIG_PPC_MPC512x is not set
160# CONFIG_PPC_MPC5121 is not set
161# CONFIG_MPC5121_ADS is not set 163# CONFIG_MPC5121_ADS is not set
164# CONFIG_MPC5121_GENERIC is not set
162# CONFIG_PPC_MPC52xx is not set 165# CONFIG_PPC_MPC52xx is not set
163# CONFIG_PPC_PMAC is not set 166# CONFIG_PPC_PMAC is not set
164# CONFIG_PPC_CELL is not set 167# CONFIG_PPC_CELL is not set
165# CONFIG_PPC_CELL_NATIVE is not set 168# CONFIG_PPC_CELL_NATIVE is not set
169# CONFIG_PPC_82xx is not set
166# CONFIG_PQ2ADS is not set 170# CONFIG_PQ2ADS is not set
171# CONFIG_PPC_83xx is not set
172# CONFIG_PPC_86xx is not set
167CONFIG_EMBEDDED6xx=y 173CONFIG_EMBEDDED6xx=y
168# CONFIG_LINKSTATION is not set 174# CONFIG_LINKSTATION is not set
169# CONFIG_STORCENTER is not set 175# CONFIG_STORCENTER is not set
170# CONFIG_MPC7448HPC2 is not set 176# CONFIG_MPC7448HPC2 is not set
171# CONFIG_PPC_HOLLY is not set 177# CONFIG_PPC_HOLLY is not set
172CONFIG_PPC_PRPMC2800=y 178CONFIG_PPC_PRPMC2800=y
179# CONFIG_PPC_C2K is not set
173CONFIG_MV64X60=y 180CONFIG_MV64X60=y
174# CONFIG_IPIC is not set 181# CONFIG_IPIC is not set
175# CONFIG_MPIC is not set 182# CONFIG_MPIC is not set
@@ -198,7 +205,7 @@ CONFIG_HZ_250=y
198# CONFIG_HZ_300 is not set 205# CONFIG_HZ_300 is not set
199# CONFIG_HZ_1000 is not set 206# CONFIG_HZ_1000 is not set
200CONFIG_HZ=250 207CONFIG_HZ=250
201# CONFIG_SCHED_HRTICK is not set 208CONFIG_SCHED_HRTICK=y
202CONFIG_PREEMPT_NONE=y 209CONFIG_PREEMPT_NONE=y
203# CONFIG_PREEMPT_VOLUNTARY is not set 210# CONFIG_PREEMPT_VOLUNTARY is not set
204# CONFIG_PREEMPT is not set 211# CONFIG_PREEMPT is not set
@@ -221,6 +228,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y
224# CONFIG_RESOURCES_64BIT is not set 232# CONFIG_RESOURCES_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
226CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
@@ -228,6 +236,7 @@ CONFIG_VIRT_TO_BUS=y
228CONFIG_FORCE_MAX_ZONEORDER=11 236CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
230# CONFIG_CMDLINE_BOOL is not set 238# CONFIG_CMDLINE_BOOL is not set
239CONFIG_EXTRA_TARGETS=""
231# CONFIG_PM is not set 240# CONFIG_PM is not set
232# CONFIG_SECCOMP is not set 241# CONFIG_SECCOMP is not set
233CONFIG_ISA_DMA_API=y 242CONFIG_ISA_DMA_API=y
@@ -264,10 +273,6 @@ CONFIG_PHYSICAL_START=0x00000000
264CONFIG_TASK_SIZE=0xc0000000 273CONFIG_TASK_SIZE=0xc0000000
265CONFIG_CONSISTENT_START=0xff100000 274CONFIG_CONSISTENT_START=0xff100000
266CONFIG_CONSISTENT_SIZE=0x00200000 275CONFIG_CONSISTENT_SIZE=0x00200000
267
268#
269# Networking
270#
271CONFIG_NET=y 276CONFIG_NET=y
272 277
273# 278#
@@ -359,7 +364,9 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
359CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 364CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
360CONFIG_STANDALONE=y 365CONFIG_STANDALONE=y
361CONFIG_PREVENT_FIRMWARE_BUILD=y 366CONFIG_PREVENT_FIRMWARE_BUILD=y
362# CONFIG_FW_LOADER is not set 367CONFIG_FW_LOADER=y
368CONFIG_FIRMWARE_IN_KERNEL=y
369CONFIG_EXTRA_FIRMWARE=""
363# CONFIG_SYS_HYPERVISOR is not set 370# CONFIG_SYS_HYPERVISOR is not set
364# CONFIG_CONNECTOR is not set 371# CONFIG_CONNECTOR is not set
365CONFIG_MTD=y 372CONFIG_MTD=y
@@ -461,12 +468,14 @@ CONFIG_BLK_DEV_RAM_SIZE=131072
461# CONFIG_BLK_DEV_XIP is not set 468# CONFIG_BLK_DEV_XIP is not set
462# CONFIG_CDROM_PKTCDVD is not set 469# CONFIG_CDROM_PKTCDVD is not set
463# CONFIG_ATA_OVER_ETH is not set 470# CONFIG_ATA_OVER_ETH is not set
471# CONFIG_BLK_DEV_HD is not set
464CONFIG_MISC_DEVICES=y 472CONFIG_MISC_DEVICES=y
465# CONFIG_PHANTOM is not set 473# CONFIG_PHANTOM is not set
466# CONFIG_EEPROM_93CX6 is not set 474# CONFIG_EEPROM_93CX6 is not set
467# CONFIG_SGI_IOC4 is not set 475# CONFIG_SGI_IOC4 is not set
468# CONFIG_TIFM_CORE is not set 476# CONFIG_TIFM_CORE is not set
469# CONFIG_ENCLOSURE_SERVICES is not set 477# CONFIG_ENCLOSURE_SERVICES is not set
478# CONFIG_HP_ILO is not set
470CONFIG_HAVE_IDE=y 479CONFIG_HAVE_IDE=y
471CONFIG_IDE=y 480CONFIG_IDE=y
472CONFIG_BLK_DEV_IDE=y 481CONFIG_BLK_DEV_IDE=y
@@ -487,7 +496,6 @@ CONFIG_IDE_PROC_FS=y
487# 496#
488# IDE chipset support/bugfixes 497# IDE chipset support/bugfixes
489# 498#
490CONFIG_IDE_GENERIC=y
491# CONFIG_BLK_DEV_PLATFORM is not set 499# CONFIG_BLK_DEV_PLATFORM is not set
492CONFIG_BLK_DEV_IDEDMA_SFF=y 500CONFIG_BLK_DEV_IDEDMA_SFF=y
493 501
@@ -505,10 +513,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
505# CONFIG_BLK_DEV_AMD74XX is not set 513# CONFIG_BLK_DEV_AMD74XX is not set
506# CONFIG_BLK_DEV_CMD64X is not set 514# CONFIG_BLK_DEV_CMD64X is not set
507# CONFIG_BLK_DEV_TRIFLEX is not set 515# CONFIG_BLK_DEV_TRIFLEX is not set
508# CONFIG_BLK_DEV_CY82C693 is not set
509# CONFIG_BLK_DEV_CS5520 is not set 516# CONFIG_BLK_DEV_CS5520 is not set
510# CONFIG_BLK_DEV_CS5530 is not set 517# CONFIG_BLK_DEV_CS5530 is not set
511# CONFIG_BLK_DEV_HPT34X is not set
512# CONFIG_BLK_DEV_HPT366 is not set 518# CONFIG_BLK_DEV_HPT366 is not set
513# CONFIG_BLK_DEV_JMICRON is not set 519# CONFIG_BLK_DEV_JMICRON is not set
514# CONFIG_BLK_DEV_SC1200 is not set 520# CONFIG_BLK_DEV_SC1200 is not set
@@ -526,8 +532,6 @@ CONFIG_BLK_DEV_PDC202XX_NEW=y
526# CONFIG_BLK_DEV_VIA82CXXX is not set 532# CONFIG_BLK_DEV_VIA82CXXX is not set
527# CONFIG_BLK_DEV_TC86C001 is not set 533# CONFIG_BLK_DEV_TC86C001 is not set
528CONFIG_BLK_DEV_IDEDMA=y 534CONFIG_BLK_DEV_IDEDMA=y
529# CONFIG_BLK_DEV_HD_ONLY is not set
530# CONFIG_BLK_DEV_HD is not set
531 535
532# 536#
533# SCSI device support 537# SCSI device support
@@ -603,6 +607,7 @@ CONFIG_SCSI_LOWLEVEL=y
603# CONFIG_SCSI_NSP32 is not set 607# CONFIG_SCSI_NSP32 is not set
604# CONFIG_SCSI_DEBUG is not set 608# CONFIG_SCSI_DEBUG is not set
605# CONFIG_SCSI_SRP is not set 609# CONFIG_SCSI_SRP is not set
610# CONFIG_SCSI_DH is not set
606CONFIG_ATA=y 611CONFIG_ATA=y
607# CONFIG_ATA_NONSTANDARD is not set 612# CONFIG_ATA_NONSTANDARD is not set
608CONFIG_SATA_PMP=y 613CONFIG_SATA_PMP=y
@@ -669,6 +674,10 @@ CONFIG_SATA_MV=y
669# 674#
670# IEEE 1394 (FireWire) support 675# IEEE 1394 (FireWire) support
671# 676#
677
678#
679# Enable only one of the two stacks, unless you know what you are doing
680#
672# CONFIG_FIREWIRE is not set 681# CONFIG_FIREWIRE is not set
673# CONFIG_IEEE1394 is not set 682# CONFIG_IEEE1394 is not set
674# CONFIG_I2O is not set 683# CONFIG_I2O is not set
@@ -676,7 +685,6 @@ CONFIG_MACINTOSH_DRIVERS=y
676# CONFIG_MAC_EMUMOUSEBTN is not set 685# CONFIG_MAC_EMUMOUSEBTN is not set
677# CONFIG_WINDFARM is not set 686# CONFIG_WINDFARM is not set
678CONFIG_NETDEVICES=y 687CONFIG_NETDEVICES=y
679# CONFIG_NETDEVICES_MULTIQUEUE is not set
680# CONFIG_DUMMY is not set 688# CONFIG_DUMMY is not set
681# CONFIG_BONDING is not set 689# CONFIG_BONDING is not set
682# CONFIG_MACVLAN is not set 690# CONFIG_MACVLAN is not set
@@ -741,10 +749,8 @@ CONFIG_NETDEV_1000=y
741# CONFIG_ACENIC is not set 749# CONFIG_ACENIC is not set
742# CONFIG_DL2K is not set 750# CONFIG_DL2K is not set
743CONFIG_E1000=y 751CONFIG_E1000=y
744# CONFIG_E1000_NAPI is not set
745# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 752# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
746# CONFIG_E1000E is not set 753# CONFIG_E1000E is not set
747# CONFIG_E1000E_ENABLED is not set
748# CONFIG_IP1000 is not set 754# CONFIG_IP1000 is not set
749# CONFIG_IGB is not set 755# CONFIG_IGB is not set
750# CONFIG_NS83820 is not set 756# CONFIG_NS83820 is not set
@@ -760,6 +766,7 @@ CONFIG_E1000=y
760CONFIG_MV643XX_ETH=y 766CONFIG_MV643XX_ETH=y
761# CONFIG_QLA3XXX is not set 767# CONFIG_QLA3XXX is not set
762# CONFIG_ATL1 is not set 768# CONFIG_ATL1 is not set
769# CONFIG_ATL1E is not set
763CONFIG_NETDEV_10000=y 770CONFIG_NETDEV_10000=y
764# CONFIG_CHELSIO_T1 is not set 771# CONFIG_CHELSIO_T1 is not set
765# CONFIG_CHELSIO_T3 is not set 772# CONFIG_CHELSIO_T3 is not set
@@ -840,6 +847,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
840# Character devices 847# Character devices
841# 848#
842CONFIG_VT=y 849CONFIG_VT=y
850CONFIG_CONSOLE_TRANSLATIONS=y
843CONFIG_VT_CONSOLE=y 851CONFIG_VT_CONSOLE=y
844CONFIG_HW_CONSOLE=y 852CONFIG_HW_CONSOLE=y
845# CONFIG_VT_HW_CONSOLE_BINDING is not set 853# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -875,43 +883,64 @@ CONFIG_DEVPORT=y
875CONFIG_I2C=y 883CONFIG_I2C=y
876CONFIG_I2C_BOARDINFO=y 884CONFIG_I2C_BOARDINFO=y
877CONFIG_I2C_CHARDEV=y 885CONFIG_I2C_CHARDEV=y
886CONFIG_I2C_HELPER_AUTO=y
878 887
879# 888#
880# I2C Hardware Bus support 889# I2C Hardware Bus support
881# 890#
891
892#
893# PC SMBus host controller drivers
894#
882# CONFIG_I2C_ALI1535 is not set 895# CONFIG_I2C_ALI1535 is not set
883# CONFIG_I2C_ALI1563 is not set 896# CONFIG_I2C_ALI1563 is not set
884# CONFIG_I2C_ALI15X3 is not set 897# CONFIG_I2C_ALI15X3 is not set
885# CONFIG_I2C_AMD756 is not set 898# CONFIG_I2C_AMD756 is not set
886# CONFIG_I2C_AMD8111 is not set 899# CONFIG_I2C_AMD8111 is not set
887# CONFIG_I2C_I801 is not set 900# CONFIG_I2C_I801 is not set
888# CONFIG_I2C_I810 is not set 901# CONFIG_I2C_ISCH is not set
889# CONFIG_I2C_PIIX4 is not set 902# CONFIG_I2C_PIIX4 is not set
890# CONFIG_I2C_MPC is not set
891# CONFIG_I2C_NFORCE2 is not set 903# CONFIG_I2C_NFORCE2 is not set
892# CONFIG_I2C_OCORES is not set
893# CONFIG_I2C_PARPORT_LIGHT is not set
894# CONFIG_I2C_PROSAVAGE is not set
895# CONFIG_I2C_SAVAGE4 is not set
896# CONFIG_I2C_SIMTEC is not set
897# CONFIG_I2C_SIS5595 is not set 904# CONFIG_I2C_SIS5595 is not set
898# CONFIG_I2C_SIS630 is not set 905# CONFIG_I2C_SIS630 is not set
899# CONFIG_I2C_SIS96X is not set 906# CONFIG_I2C_SIS96X is not set
900# CONFIG_I2C_TAOS_EVM is not set
901# CONFIG_I2C_TINY_USB is not set
902# CONFIG_I2C_VIA is not set 907# CONFIG_I2C_VIA is not set
903# CONFIG_I2C_VIAPRO is not set 908# CONFIG_I2C_VIAPRO is not set
909
910#
911# I2C system bus drivers (mostly embedded / system-on-chip)
912#
913# CONFIG_I2C_MPC is not set
914CONFIG_I2C_MV64XXX=y
915# CONFIG_I2C_OCORES is not set
916# CONFIG_I2C_SIMTEC is not set
917
918#
919# External I2C/SMBus adapter drivers
920#
921# CONFIG_I2C_PARPORT_LIGHT is not set
922# CONFIG_I2C_TAOS_EVM is not set
923# CONFIG_I2C_TINY_USB is not set
924
925#
926# Graphics adapter I2C/DDC channel drivers
927#
904# CONFIG_I2C_VOODOO3 is not set 928# CONFIG_I2C_VOODOO3 is not set
929
930#
931# Other I2C/SMBus bus drivers
932#
905# CONFIG_I2C_PCA_PLATFORM is not set 933# CONFIG_I2C_PCA_PLATFORM is not set
906CONFIG_I2C_MV64XXX=y
907 934
908# 935#
909# Miscellaneous I2C Chip support 936# Miscellaneous I2C Chip support
910# 937#
911# CONFIG_DS1682 is not set 938# CONFIG_DS1682 is not set
939# CONFIG_AT24 is not set
912# CONFIG_SENSORS_EEPROM is not set 940# CONFIG_SENSORS_EEPROM is not set
913# CONFIG_SENSORS_PCF8574 is not set 941# CONFIG_SENSORS_PCF8574 is not set
914# CONFIG_PCF8575 is not set 942# CONFIG_PCF8575 is not set
943# CONFIG_SENSORS_PCA9539 is not set
915# CONFIG_SENSORS_PCF8591 is not set 944# CONFIG_SENSORS_PCF8591 is not set
916# CONFIG_SENSORS_MAX6875 is not set 945# CONFIG_SENSORS_MAX6875 is not set
917# CONFIG_SENSORS_TSL2550 is not set 946# CONFIG_SENSORS_TSL2550 is not set
@@ -920,10 +949,13 @@ CONFIG_I2C_MV64XXX=y
920# CONFIG_I2C_DEBUG_BUS is not set 949# CONFIG_I2C_DEBUG_BUS is not set
921# CONFIG_I2C_DEBUG_CHIP is not set 950# CONFIG_I2C_DEBUG_CHIP is not set
922# CONFIG_SPI is not set 951# CONFIG_SPI is not set
952CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
953# CONFIG_GPIOLIB is not set
923# CONFIG_W1 is not set 954# CONFIG_W1 is not set
924# CONFIG_POWER_SUPPLY is not set 955# CONFIG_POWER_SUPPLY is not set
925CONFIG_HWMON=y 956CONFIG_HWMON=y
926# CONFIG_HWMON_VID is not set 957# CONFIG_HWMON_VID is not set
958# CONFIG_SENSORS_AD7414 is not set
927# CONFIG_SENSORS_AD7418 is not set 959# CONFIG_SENSORS_AD7418 is not set
928# CONFIG_SENSORS_ADM1021 is not set 960# CONFIG_SENSORS_ADM1021 is not set
929# CONFIG_SENSORS_ADM1025 is not set 961# CONFIG_SENSORS_ADM1025 is not set
@@ -977,6 +1009,7 @@ CONFIG_HWMON=y
977# CONFIG_SENSORS_W83627EHF is not set 1009# CONFIG_SENSORS_W83627EHF is not set
978# CONFIG_HWMON_DEBUG_CHIP is not set 1010# CONFIG_HWMON_DEBUG_CHIP is not set
979# CONFIG_THERMAL is not set 1011# CONFIG_THERMAL is not set
1012# CONFIG_THERMAL_HWMON is not set
980# CONFIG_WATCHDOG is not set 1013# CONFIG_WATCHDOG is not set
981 1014
982# 1015#
@@ -988,8 +1021,10 @@ CONFIG_SSB_POSSIBLE=y
988# 1021#
989# Multifunction device drivers 1022# Multifunction device drivers
990# 1023#
1024# CONFIG_MFD_CORE is not set
991# CONFIG_MFD_SM501 is not set 1025# CONFIG_MFD_SM501 is not set
992# CONFIG_HTC_PASIC3 is not set 1026# CONFIG_HTC_PASIC3 is not set
1027# CONFIG_MFD_TMIO is not set
993 1028
994# 1029#
995# Multimedia devices 1030# Multimedia devices
@@ -1028,10 +1063,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=y
1028CONFIG_VGA_CONSOLE=y 1063CONFIG_VGA_CONSOLE=y
1029# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1064# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1030CONFIG_DUMMY_CONSOLE=y 1065CONFIG_DUMMY_CONSOLE=y
1031
1032#
1033# Sound
1034#
1035# CONFIG_SOUND is not set 1066# CONFIG_SOUND is not set
1036CONFIG_HID_SUPPORT=y 1067CONFIG_HID_SUPPORT=y
1037CONFIG_HID=y 1068CONFIG_HID=y
@@ -1060,6 +1091,7 @@ CONFIG_USB_DEVICEFS=y
1060# CONFIG_USB_DEVICE_CLASS is not set 1091# CONFIG_USB_DEVICE_CLASS is not set
1061# CONFIG_USB_DYNAMIC_MINORS is not set 1092# CONFIG_USB_DYNAMIC_MINORS is not set
1062# CONFIG_USB_OTG is not set 1093# CONFIG_USB_OTG is not set
1094CONFIG_USB_MON=y
1063 1095
1064# 1096#
1065# USB Host Controller Drivers 1097# USB Host Controller Drivers
@@ -1102,7 +1134,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1102# 1134#
1103# CONFIG_USB_MDC800 is not set 1135# CONFIG_USB_MDC800 is not set
1104# CONFIG_USB_MICROTEK is not set 1136# CONFIG_USB_MICROTEK is not set
1105CONFIG_USB_MON=y
1106 1137
1107# 1138#
1108# USB port drivers 1139# USB port drivers
@@ -1115,7 +1146,6 @@ CONFIG_USB_MON=y
1115# CONFIG_USB_EMI62 is not set 1146# CONFIG_USB_EMI62 is not set
1116# CONFIG_USB_EMI26 is not set 1147# CONFIG_USB_EMI26 is not set
1117# CONFIG_USB_ADUTUX is not set 1148# CONFIG_USB_ADUTUX is not set
1118# CONFIG_USB_AUERSWALD is not set
1119# CONFIG_USB_RIO500 is not set 1149# CONFIG_USB_RIO500 is not set
1120# CONFIG_USB_LEGOTOWER is not set 1150# CONFIG_USB_LEGOTOWER is not set
1121# CONFIG_USB_LCD is not set 1151# CONFIG_USB_LCD is not set
@@ -1169,6 +1199,7 @@ CONFIG_RTC_DRV_MAX6900=y
1169# CONFIG_RTC_DRV_PCF8583 is not set 1199# CONFIG_RTC_DRV_PCF8583 is not set
1170# CONFIG_RTC_DRV_M41T80 is not set 1200# CONFIG_RTC_DRV_M41T80 is not set
1171# CONFIG_RTC_DRV_S35390A is not set 1201# CONFIG_RTC_DRV_S35390A is not set
1202# CONFIG_RTC_DRV_FM3130 is not set
1172 1203
1173# 1204#
1174# SPI RTC drivers 1205# SPI RTC drivers
@@ -1258,6 +1289,7 @@ CONFIG_TMPFS=y
1258# CONFIG_CRAMFS is not set 1289# CONFIG_CRAMFS is not set
1259# CONFIG_VXFS_FS is not set 1290# CONFIG_VXFS_FS is not set
1260# CONFIG_MINIX_FS is not set 1291# CONFIG_MINIX_FS is not set
1292# CONFIG_OMFS_FS is not set
1261# CONFIG_HPFS_FS is not set 1293# CONFIG_HPFS_FS is not set
1262# CONFIG_QNX4FS_FS is not set 1294# CONFIG_QNX4FS_FS is not set
1263# CONFIG_ROMFS_FS is not set 1295# CONFIG_ROMFS_FS is not set
@@ -1267,12 +1299,11 @@ CONFIG_NETWORK_FILESYSTEMS=y
1267CONFIG_NFS_FS=y 1299CONFIG_NFS_FS=y
1268# CONFIG_NFS_V3 is not set 1300# CONFIG_NFS_V3 is not set
1269# CONFIG_NFS_V4 is not set 1301# CONFIG_NFS_V4 is not set
1270# CONFIG_NFSD is not set
1271CONFIG_ROOT_NFS=y 1302CONFIG_ROOT_NFS=y
1303# CONFIG_NFSD is not set
1272CONFIG_LOCKD=y 1304CONFIG_LOCKD=y
1273CONFIG_NFS_COMMON=y 1305CONFIG_NFS_COMMON=y
1274CONFIG_SUNRPC=y 1306CONFIG_SUNRPC=y
1275# CONFIG_SUNRPC_BIND34 is not set
1276# CONFIG_RPCSEC_GSS_KRB5 is not set 1307# CONFIG_RPCSEC_GSS_KRB5 is not set
1277# CONFIG_RPCSEC_GSS_SPKM3 is not set 1308# CONFIG_RPCSEC_GSS_SPKM3 is not set
1278# CONFIG_SMB_FS is not set 1309# CONFIG_SMB_FS is not set
@@ -1312,6 +1343,7 @@ CONFIG_BITREVERSE=y
1312# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1343# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1313# CONFIG_CRC_CCITT is not set 1344# CONFIG_CRC_CCITT is not set
1314# CONFIG_CRC16 is not set 1345# CONFIG_CRC16 is not set
1346CONFIG_CRC_T10DIF=y
1315# CONFIG_CRC_ITU_T is not set 1347# CONFIG_CRC_ITU_T is not set
1316CONFIG_CRC32=y 1348CONFIG_CRC32=y
1317# CONFIG_CRC7 is not set 1349# CONFIG_CRC7 is not set
@@ -1337,7 +1369,16 @@ CONFIG_FRAME_WARN=1024
1337# CONFIG_SLUB_DEBUG_ON is not set 1369# CONFIG_SLUB_DEBUG_ON is not set
1338# CONFIG_SLUB_STATS is not set 1370# CONFIG_SLUB_STATS is not set
1339CONFIG_DEBUG_BUGVERBOSE=y 1371CONFIG_DEBUG_BUGVERBOSE=y
1372CONFIG_DEBUG_MEMORY_INIT=y
1373# CONFIG_LATENCYTOP is not set
1374CONFIG_SYSCTL_SYSCALL_CHECK=y
1375CONFIG_HAVE_FTRACE=y
1376CONFIG_HAVE_DYNAMIC_FTRACE=y
1377# CONFIG_FTRACE is not set
1378# CONFIG_SCHED_TRACER is not set
1379# CONFIG_CONTEXT_SWITCH_TRACER is not set
1340# CONFIG_SAMPLES is not set 1380# CONFIG_SAMPLES is not set
1381CONFIG_HAVE_ARCH_KGDB=y
1341# CONFIG_IRQSTACKS is not set 1382# CONFIG_IRQSTACKS is not set
1342# CONFIG_BOOTX_TEXT is not set 1383# CONFIG_BOOTX_TEXT is not set
1343# CONFIG_PPC_EARLY_DEBUG is not set 1384# CONFIG_PPC_EARLY_DEBUG is not set
@@ -1390,6 +1431,10 @@ CONFIG_CRYPTO=y
1390# CONFIG_CRYPTO_MD4 is not set 1431# CONFIG_CRYPTO_MD4 is not set
1391# CONFIG_CRYPTO_MD5 is not set 1432# CONFIG_CRYPTO_MD5 is not set
1392# CONFIG_CRYPTO_MICHAEL_MIC is not set 1433# CONFIG_CRYPTO_MICHAEL_MIC is not set
1434# CONFIG_CRYPTO_RMD128 is not set
1435# CONFIG_CRYPTO_RMD160 is not set
1436# CONFIG_CRYPTO_RMD256 is not set
1437# CONFIG_CRYPTO_RMD320 is not set
1393# CONFIG_CRYPTO_SHA1 is not set 1438# CONFIG_CRYPTO_SHA1 is not set
1394# CONFIG_CRYPTO_SHA256 is not set 1439# CONFIG_CRYPTO_SHA256 is not set
1395# CONFIG_CRYPTO_SHA512 is not set 1440# CONFIG_CRYPTO_SHA512 is not set
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig
index f9a3d3b394cf..b6eee7c93cdd 100644
--- a/arch/powerpc/configs/ps3_defconfig
+++ b/arch/powerpc/configs/ps3_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.26 3# Linux kernel version: 2.6.27-rc3
4# Wed Jul 16 13:59:24 2008 4# Wed Aug 20 08:16:53 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -92,7 +92,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
92CONFIG_SYSCTL=y 92CONFIG_SYSCTL=y
93# CONFIG_EMBEDDED is not set 93# CONFIG_EMBEDDED is not set
94CONFIG_SYSCTL_SYSCALL=y 94CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 95CONFIG_KALLSYMS=y
97CONFIG_KALLSYMS_ALL=y 96CONFIG_KALLSYMS_ALL=y
98CONFIG_KALLSYMS_EXTRA_PASS=y 97CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -118,11 +117,16 @@ CONFIG_PROFILING=y
118CONFIG_OPROFILE=m 117CONFIG_OPROFILE=m
119CONFIG_HAVE_OPROFILE=y 118CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set 119# CONFIG_KPROBES is not set
120CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
121CONFIG_HAVE_IOREMAP_PROT=y
121CONFIG_HAVE_KPROBES=y 122CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y 123CONFIG_HAVE_KRETPROBES=y
124CONFIG_HAVE_ARCH_TRACEHOOK=y
123CONFIG_HAVE_DMA_ATTRS=y 125CONFIG_HAVE_DMA_ATTRS=y
124CONFIG_USE_GENERIC_SMP_HELPERS=y 126CONFIG_USE_GENERIC_SMP_HELPERS=y
127# CONFIG_HAVE_CLK is not set
125CONFIG_PROC_PAGE_MONITOR=y 128CONFIG_PROC_PAGE_MONITOR=y
129# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
126CONFIG_SLABINFO=y 130CONFIG_SLABINFO=y
127CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
128# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
@@ -179,6 +183,7 @@ CONFIG_PS3_STORAGE=y
179CONFIG_PS3_DISK=y 183CONFIG_PS3_DISK=y
180CONFIG_PS3_ROM=y 184CONFIG_PS3_ROM=y
181CONFIG_PS3_FLASH=y 185CONFIG_PS3_FLASH=y
186CONFIG_OPROFILE_PS3=y
182CONFIG_PS3_LPM=m 187CONFIG_PS3_LPM=m
183CONFIG_PPC_CELL=y 188CONFIG_PPC_CELL=y
184# CONFIG_PPC_CELL_NATIVE is not set 189# CONFIG_PPC_CELL_NATIVE is not set
@@ -218,7 +223,7 @@ CONFIG_HZ_250=y
218# CONFIG_HZ_300 is not set 223# CONFIG_HZ_300 is not set
219# CONFIG_HZ_1000 is not set 224# CONFIG_HZ_1000 is not set
220CONFIG_HZ=250 225CONFIG_HZ=250
221# CONFIG_SCHED_HRTICK is not set 226CONFIG_SCHED_HRTICK=y
222CONFIG_PREEMPT_NONE=y 227CONFIG_PREEMPT_NONE=y
223# CONFIG_PREEMPT_VOLUNTARY is not set 228# CONFIG_PREEMPT_VOLUNTARY is not set
224# CONFIG_PREEMPT is not set 229# CONFIG_PREEMPT is not set
@@ -252,8 +257,10 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
252# CONFIG_SPARSEMEM_VMEMMAP is not set 257# CONFIG_SPARSEMEM_VMEMMAP is not set
253CONFIG_MEMORY_HOTPLUG=y 258CONFIG_MEMORY_HOTPLUG=y
254CONFIG_MEMORY_HOTPLUG_SPARSE=y 259CONFIG_MEMORY_HOTPLUG_SPARSE=y
260# CONFIG_MEMORY_HOTREMOVE is not set
255CONFIG_PAGEFLAGS_EXTENDED=y 261CONFIG_PAGEFLAGS_EXTENDED=y
256CONFIG_SPLIT_PTLOCK_CPUS=4 262CONFIG_SPLIT_PTLOCK_CPUS=4
263CONFIG_MIGRATION=y
257CONFIG_RESOURCES_64BIT=y 264CONFIG_RESOURCES_64BIT=y
258CONFIG_ZONE_DMA_FLAG=1 265CONFIG_ZONE_DMA_FLAG=1
259CONFIG_BOUNCE=y 266CONFIG_BOUNCE=y
@@ -276,19 +283,17 @@ CONFIG_ISA_DMA_API=y
276# 283#
277CONFIG_ZONE_DMA=y 284CONFIG_ZONE_DMA=y
278CONFIG_GENERIC_ISA_DMA=y 285CONFIG_GENERIC_ISA_DMA=y
286CONFIG_PPC_PCI_CHOICE=y
279# CONFIG_PCI is not set 287# CONFIG_PCI is not set
280# CONFIG_PCI_DOMAINS is not set 288# CONFIG_PCI_DOMAINS is not set
281# CONFIG_PCI_SYSCALL is not set 289# CONFIG_PCI_SYSCALL is not set
282# CONFIG_ARCH_SUPPORTS_MSI is not set 290# CONFIG_ARCH_SUPPORTS_MSI is not set
283# CONFIG_PCCARD is not set 291# CONFIG_PCCARD is not set
284# CONFIG_HAS_RAPIDIO is not set 292# CONFIG_HAS_RAPIDIO is not set
293# CONFIG_RELOCATABLE is not set
285CONFIG_PAGE_OFFSET=0xc000000000000000 294CONFIG_PAGE_OFFSET=0xc000000000000000
286CONFIG_KERNEL_START=0xc000000000000000 295CONFIG_KERNEL_START=0xc000000000000000
287CONFIG_PHYSICAL_START=0x00000000 296CONFIG_PHYSICAL_START=0x00000000
288
289#
290# Networking
291#
292CONFIG_NET=y 297CONFIG_NET=y
293 298
294# 299#
@@ -399,9 +404,22 @@ CONFIG_BT_HCIUSB_SCO=y
399# 404#
400# Wireless 405# Wireless
401# 406#
402# CONFIG_CFG80211 is not set 407CONFIG_CFG80211=m
408CONFIG_NL80211=y
403CONFIG_WIRELESS_EXT=y 409CONFIG_WIRELESS_EXT=y
404# CONFIG_MAC80211 is not set 410# CONFIG_WIRELESS_EXT_SYSFS is not set
411CONFIG_MAC80211=m
412
413#
414# Rate control algorithm selection
415#
416CONFIG_MAC80211_RC_PID=y
417CONFIG_MAC80211_RC_DEFAULT_PID=y
418CONFIG_MAC80211_RC_DEFAULT="pid"
419# CONFIG_MAC80211_MESH is not set
420# CONFIG_MAC80211_LEDS is not set
421# CONFIG_MAC80211_DEBUGFS is not set
422# CONFIG_MAC80211_DEBUG_MENU is not set
405CONFIG_IEEE80211=m 423CONFIG_IEEE80211=m
406# CONFIG_IEEE80211_DEBUG is not set 424# CONFIG_IEEE80211_DEBUG is not set
407CONFIG_IEEE80211_CRYPT_WEP=m 425CONFIG_IEEE80211_CRYPT_WEP=m
@@ -420,14 +438,79 @@ CONFIG_IEEE80211_CRYPT_TKIP=m
420CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 438CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
421CONFIG_STANDALONE=y 439CONFIG_STANDALONE=y
422CONFIG_PREVENT_FIRMWARE_BUILD=y 440CONFIG_PREVENT_FIRMWARE_BUILD=y
423CONFIG_FW_LOADER=m 441CONFIG_FW_LOADER=y
424# CONFIG_FIRMWARE_IN_KERNEL is not set 442# CONFIG_FIRMWARE_IN_KERNEL is not set
425CONFIG_EXTRA_FIRMWARE="" 443CONFIG_EXTRA_FIRMWARE=""
426# CONFIG_DEBUG_DRIVER is not set 444# CONFIG_DEBUG_DRIVER is not set
427# CONFIG_DEBUG_DEVRES is not set 445# CONFIG_DEBUG_DEVRES is not set
428# CONFIG_SYS_HYPERVISOR is not set 446# CONFIG_SYS_HYPERVISOR is not set
429# CONFIG_CONNECTOR is not set 447# CONFIG_CONNECTOR is not set
430# CONFIG_MTD is not set 448CONFIG_MTD=y
449CONFIG_MTD_DEBUG=y
450CONFIG_MTD_DEBUG_VERBOSE=0
451# CONFIG_MTD_CONCAT is not set
452# CONFIG_MTD_PARTITIONS is not set
453
454#
455# User Modules And Translation Layers
456#
457# CONFIG_MTD_CHAR is not set
458CONFIG_MTD_BLKDEVS=y
459CONFIG_MTD_BLOCK=y
460# CONFIG_FTL is not set
461# CONFIG_NFTL is not set
462# CONFIG_INFTL is not set
463# CONFIG_RFD_FTL is not set
464# CONFIG_SSFDC is not set
465# CONFIG_MTD_OOPS is not set
466
467#
468# RAM/ROM/Flash chip drivers
469#
470# CONFIG_MTD_CFI is not set
471# CONFIG_MTD_JEDECPROBE is not set
472CONFIG_MTD_MAP_BANK_WIDTH_1=y
473CONFIG_MTD_MAP_BANK_WIDTH_2=y
474CONFIG_MTD_MAP_BANK_WIDTH_4=y
475# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
476# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
477# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
478CONFIG_MTD_CFI_I1=y
479CONFIG_MTD_CFI_I2=y
480# CONFIG_MTD_CFI_I4 is not set
481# CONFIG_MTD_CFI_I8 is not set
482# CONFIG_MTD_RAM is not set
483# CONFIG_MTD_ROM is not set
484# CONFIG_MTD_ABSENT is not set
485
486#
487# Mapping drivers for chip access
488#
489# CONFIG_MTD_COMPLEX_MAPPINGS is not set
490# CONFIG_MTD_PLATRAM is not set
491
492#
493# Self-contained MTD device drivers
494#
495# CONFIG_MTD_SLRAM is not set
496# CONFIG_MTD_PHRAM is not set
497CONFIG_MTD_PS3VRAM=y
498# CONFIG_MTD_MTDRAM is not set
499# CONFIG_MTD_BLOCK2MTD is not set
500
501#
502# Disk-On-Chip Device Drivers
503#
504# CONFIG_MTD_DOC2000 is not set
505# CONFIG_MTD_DOC2001 is not set
506# CONFIG_MTD_DOC2001PLUS is not set
507# CONFIG_MTD_NAND is not set
508# CONFIG_MTD_ONENAND is not set
509
510#
511# UBI - Unsorted block images
512#
513# CONFIG_MTD_UBI is not set
431CONFIG_OF_DEVICE=y 514CONFIG_OF_DEVICE=y
432# CONFIG_PARPORT is not set 515# CONFIG_PARPORT is not set
433CONFIG_BLK_DEV=y 516CONFIG_BLK_DEV=y
@@ -443,6 +526,7 @@ CONFIG_BLK_DEV_RAM_SIZE=65535
443# CONFIG_BLK_DEV_XIP is not set 526# CONFIG_BLK_DEV_XIP is not set
444# CONFIG_CDROM_PKTCDVD is not set 527# CONFIG_CDROM_PKTCDVD is not set
445# CONFIG_ATA_OVER_ETH is not set 528# CONFIG_ATA_OVER_ETH is not set
529# CONFIG_BLK_DEV_HD is not set
446CONFIG_MISC_DEVICES=y 530CONFIG_MISC_DEVICES=y
447# CONFIG_EEPROM_93CX6 is not set 531# CONFIG_EEPROM_93CX6 is not set
448# CONFIG_ENCLOSURE_SERVICES is not set 532# CONFIG_ENCLOSURE_SERVICES is not set
@@ -494,7 +578,6 @@ CONFIG_SCSI_WAIT_SCAN=m
494# CONFIG_MD is not set 578# CONFIG_MD is not set
495# CONFIG_MACINTOSH_DRIVERS is not set 579# CONFIG_MACINTOSH_DRIVERS is not set
496CONFIG_NETDEVICES=y 580CONFIG_NETDEVICES=y
497# CONFIG_NETDEVICES_MULTIQUEUE is not set
498# CONFIG_DUMMY is not set 581# CONFIG_DUMMY is not set
499# CONFIG_BONDING is not set 582# CONFIG_BONDING is not set
500# CONFIG_MACVLAN is not set 583# CONFIG_MACVLAN is not set
@@ -510,9 +593,9 @@ CONFIG_MII=m
510# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 593# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
511# CONFIG_B44 is not set 594# CONFIG_B44 is not set
512CONFIG_NETDEV_1000=y 595CONFIG_NETDEV_1000=y
513# CONFIG_E1000E_ENABLED is not set
514CONFIG_GELIC_NET=y 596CONFIG_GELIC_NET=y
515CONFIG_GELIC_WIRELESS=y 597CONFIG_GELIC_WIRELESS=y
598CONFIG_GELIC_WIRELESS_OLD_PSK_INTERFACE=y
516# CONFIG_NETDEV_10000 is not set 599# CONFIG_NETDEV_10000 is not set
517 600
518# 601#
@@ -523,8 +606,22 @@ CONFIG_WLAN_80211=y
523# CONFIG_LIBERTAS is not set 606# CONFIG_LIBERTAS is not set
524# CONFIG_USB_ZD1201 is not set 607# CONFIG_USB_ZD1201 is not set
525# CONFIG_USB_NET_RNDIS_WLAN is not set 608# CONFIG_USB_NET_RNDIS_WLAN is not set
609# CONFIG_RTL8187 is not set
610# CONFIG_MAC80211_HWSIM is not set
611# CONFIG_P54_COMMON is not set
526# CONFIG_IWLWIFI_LEDS is not set 612# CONFIG_IWLWIFI_LEDS is not set
527# CONFIG_HOSTAP is not set 613# CONFIG_HOSTAP is not set
614# CONFIG_B43 is not set
615# CONFIG_B43LEGACY is not set
616CONFIG_ZD1211RW=m
617# CONFIG_ZD1211RW_DEBUG is not set
618CONFIG_RT2X00=m
619CONFIG_RT2X00_LIB=m
620CONFIG_RT2X00_LIB_USB=m
621CONFIG_RT2X00_LIB_FIRMWARE=y
622# CONFIG_RT2500USB is not set
623CONFIG_RT73USB=m
624# CONFIG_RT2X00_DEBUG is not set
528 625
529# 626#
530# USB Network Adapters 627# USB Network Adapters
@@ -622,6 +719,7 @@ CONFIG_INPUT_JOYSTICK=y
622# Character devices 719# Character devices
623# 720#
624CONFIG_VT=y 721CONFIG_VT=y
722CONFIG_CONSOLE_TRANSLATIONS=y
625CONFIG_VT_CONSOLE=y 723CONFIG_VT_CONSOLE=y
626CONFIG_HW_CONSOLE=y 724CONFIG_HW_CONSOLE=y
627CONFIG_VT_HW_CONSOLE_BINDING=y 725CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -647,6 +745,8 @@ CONFIG_LEGACY_PTY_COUNT=16
647# CONFIG_TCG_TPM is not set 745# CONFIG_TCG_TPM is not set
648# CONFIG_I2C is not set 746# CONFIG_I2C is not set
649# CONFIG_SPI is not set 747# CONFIG_SPI is not set
748CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
749# CONFIG_GPIOLIB is not set
650# CONFIG_W1 is not set 750# CONFIG_W1 is not set
651# CONFIG_POWER_SUPPLY is not set 751# CONFIG_POWER_SUPPLY is not set
652# CONFIG_HWMON is not set 752# CONFIG_HWMON is not set
@@ -663,8 +763,10 @@ CONFIG_SSB_POSSIBLE=y
663# 763#
664# Multifunction device drivers 764# Multifunction device drivers
665# 765#
766# CONFIG_MFD_CORE is not set
666# CONFIG_MFD_SM501 is not set 767# CONFIG_MFD_SM501 is not set
667# CONFIG_HTC_PASIC3 is not set 768# CONFIG_HTC_PASIC3 is not set
769# CONFIG_MFD_TMIO is not set
668 770
669# 771#
670# Multimedia devices 772# Multimedia devices
@@ -796,6 +898,7 @@ CONFIG_USB_DEVICEFS=y
796# CONFIG_USB_DYNAMIC_MINORS is not set 898# CONFIG_USB_DYNAMIC_MINORS is not set
797CONFIG_USB_SUSPEND=y 899CONFIG_USB_SUSPEND=y
798# CONFIG_USB_OTG is not set 900# CONFIG_USB_OTG is not set
901CONFIG_USB_MON=y
799 902
800# 903#
801# USB Host Controller Drivers 904# USB Host Controller Drivers
@@ -817,6 +920,10 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
817# CONFIG_USB_R8A66597_HCD is not set 920# CONFIG_USB_R8A66597_HCD is not set
818 921
819# 922#
923# Enable Host or Gadget support to see Inventra options
924#
925
926#
820# USB Device Class drivers 927# USB Device Class drivers
821# 928#
822# CONFIG_USB_ACM is not set 929# CONFIG_USB_ACM is not set
@@ -843,6 +950,7 @@ CONFIG_USB_STORAGE=m
843# CONFIG_USB_STORAGE_ALAUDA is not set 950# CONFIG_USB_STORAGE_ALAUDA is not set
844# CONFIG_USB_STORAGE_ONETOUCH is not set 951# CONFIG_USB_STORAGE_ONETOUCH is not set
845# CONFIG_USB_STORAGE_KARMA is not set 952# CONFIG_USB_STORAGE_KARMA is not set
953# CONFIG_USB_STORAGE_SIERRA is not set
846# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 954# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
847# CONFIG_USB_LIBUSUAL is not set 955# CONFIG_USB_LIBUSUAL is not set
848 956
@@ -851,7 +959,6 @@ CONFIG_USB_STORAGE=m
851# 959#
852# CONFIG_USB_MDC800 is not set 960# CONFIG_USB_MDC800 is not set
853# CONFIG_USB_MICROTEK is not set 961# CONFIG_USB_MICROTEK is not set
854CONFIG_USB_MON=y
855 962
856# 963#
857# USB port drivers 964# USB port drivers
@@ -864,7 +971,6 @@ CONFIG_USB_MON=y
864# CONFIG_USB_EMI62 is not set 971# CONFIG_USB_EMI62 is not set
865# CONFIG_USB_EMI26 is not set 972# CONFIG_USB_EMI26 is not set
866# CONFIG_USB_ADUTUX is not set 973# CONFIG_USB_ADUTUX is not set
867# CONFIG_USB_AUERSWALD is not set
868# CONFIG_USB_RIO500 is not set 974# CONFIG_USB_RIO500 is not set
869# CONFIG_USB_LEGOTOWER is not set 975# CONFIG_USB_LEGOTOWER is not set
870# CONFIG_USB_LCD is not set 976# CONFIG_USB_LCD is not set
@@ -998,9 +1104,11 @@ CONFIG_HUGETLB_PAGE=y
998# CONFIG_BEFS_FS is not set 1104# CONFIG_BEFS_FS is not set
999# CONFIG_BFS_FS is not set 1105# CONFIG_BFS_FS is not set
1000# CONFIG_EFS_FS is not set 1106# CONFIG_EFS_FS is not set
1107# CONFIG_JFFS2_FS is not set
1001# CONFIG_CRAMFS is not set 1108# CONFIG_CRAMFS is not set
1002# CONFIG_VXFS_FS is not set 1109# CONFIG_VXFS_FS is not set
1003# CONFIG_MINIX_FS is not set 1110# CONFIG_MINIX_FS is not set
1111# CONFIG_OMFS_FS is not set
1004# CONFIG_HPFS_FS is not set 1112# CONFIG_HPFS_FS is not set
1005# CONFIG_QNX4FS_FS is not set 1113# CONFIG_QNX4FS_FS is not set
1006# CONFIG_ROMFS_FS is not set 1114# CONFIG_ROMFS_FS is not set
@@ -1011,14 +1119,13 @@ CONFIG_NFS_FS=y
1011CONFIG_NFS_V3=y 1119CONFIG_NFS_V3=y
1012# CONFIG_NFS_V3_ACL is not set 1120# CONFIG_NFS_V3_ACL is not set
1013CONFIG_NFS_V4=y 1121CONFIG_NFS_V4=y
1014# CONFIG_NFSD is not set
1015CONFIG_ROOT_NFS=y 1122CONFIG_ROOT_NFS=y
1123# CONFIG_NFSD is not set
1016CONFIG_LOCKD=y 1124CONFIG_LOCKD=y
1017CONFIG_LOCKD_V4=y 1125CONFIG_LOCKD_V4=y
1018CONFIG_NFS_COMMON=y 1126CONFIG_NFS_COMMON=y
1019CONFIG_SUNRPC=y 1127CONFIG_SUNRPC=y
1020CONFIG_SUNRPC_GSS=y 1128CONFIG_SUNRPC_GSS=y
1021# CONFIG_SUNRPC_BIND34 is not set
1022CONFIG_RPCSEC_GSS_KRB5=y 1129CONFIG_RPCSEC_GSS_KRB5=y
1023# CONFIG_RPCSEC_GSS_SPKM3 is not set 1130# CONFIG_RPCSEC_GSS_SPKM3 is not set
1024# CONFIG_SMB_FS is not set 1131# CONFIG_SMB_FS is not set
@@ -1086,7 +1193,7 @@ CONFIG_BITREVERSE=y
1086# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1193# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1087CONFIG_CRC_CCITT=m 1194CONFIG_CRC_CCITT=m
1088# CONFIG_CRC16 is not set 1195# CONFIG_CRC16 is not set
1089# CONFIG_CRC_T10DIF is not set 1196CONFIG_CRC_T10DIF=y
1090CONFIG_CRC_ITU_T=m 1197CONFIG_CRC_ITU_T=m
1091CONFIG_CRC32=y 1198CONFIG_CRC32=y
1092# CONFIG_CRC7 is not set 1199# CONFIG_CRC7 is not set
@@ -1115,6 +1222,8 @@ CONFIG_DEBUG_FS=y
1115CONFIG_DEBUG_KERNEL=y 1222CONFIG_DEBUG_KERNEL=y
1116# CONFIG_DEBUG_SHIRQ is not set 1223# CONFIG_DEBUG_SHIRQ is not set
1117CONFIG_DETECT_SOFTLOCKUP=y 1224CONFIG_DETECT_SOFTLOCKUP=y
1225# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1226CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1118CONFIG_SCHED_DEBUG=y 1227CONFIG_SCHED_DEBUG=y
1119# CONFIG_SCHEDSTATS is not set 1228# CONFIG_SCHEDSTATS is not set
1120# CONFIG_TIMER_STATS is not set 1229# CONFIG_TIMER_STATS is not set
@@ -1138,6 +1247,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1138CONFIG_DEBUG_INFO=y 1247CONFIG_DEBUG_INFO=y
1139# CONFIG_DEBUG_VM is not set 1248# CONFIG_DEBUG_VM is not set
1140CONFIG_DEBUG_WRITECOUNT=y 1249CONFIG_DEBUG_WRITECOUNT=y
1250CONFIG_DEBUG_MEMORY_INIT=y
1141CONFIG_DEBUG_LIST=y 1251CONFIG_DEBUG_LIST=y
1142# CONFIG_DEBUG_SG is not set 1252# CONFIG_DEBUG_SG is not set
1143CONFIG_FRAME_POINTER=y 1253CONFIG_FRAME_POINTER=y
@@ -1146,6 +1256,7 @@ CONFIG_FRAME_POINTER=y
1146# CONFIG_BACKTRACE_SELF_TEST is not set 1256# CONFIG_BACKTRACE_SELF_TEST is not set
1147# CONFIG_FAULT_INJECTION is not set 1257# CONFIG_FAULT_INJECTION is not set
1148# CONFIG_LATENCYTOP is not set 1258# CONFIG_LATENCYTOP is not set
1259CONFIG_SYSCTL_SYSCALL_CHECK=y
1149CONFIG_HAVE_FTRACE=y 1260CONFIG_HAVE_FTRACE=y
1150CONFIG_HAVE_DYNAMIC_FTRACE=y 1261CONFIG_HAVE_DYNAMIC_FTRACE=y
1151# CONFIG_FTRACE is not set 1262# CONFIG_FTRACE is not set
@@ -1153,12 +1264,14 @@ CONFIG_HAVE_DYNAMIC_FTRACE=y
1153# CONFIG_SCHED_TRACER is not set 1264# CONFIG_SCHED_TRACER is not set
1154# CONFIG_CONTEXT_SWITCH_TRACER is not set 1265# CONFIG_CONTEXT_SWITCH_TRACER is not set
1155# CONFIG_SAMPLES is not set 1266# CONFIG_SAMPLES is not set
1267CONFIG_HAVE_ARCH_KGDB=y
1268# CONFIG_KGDB is not set
1156CONFIG_DEBUG_STACKOVERFLOW=y 1269CONFIG_DEBUG_STACKOVERFLOW=y
1157# CONFIG_DEBUG_STACK_USAGE is not set 1270# CONFIG_DEBUG_STACK_USAGE is not set
1158# CONFIG_DEBUG_PAGEALLOC is not set 1271# CONFIG_DEBUG_PAGEALLOC is not set
1159# CONFIG_DEBUGGER is not set
1160# CONFIG_CODE_PATCHING_SELFTEST is not set 1272# CONFIG_CODE_PATCHING_SELFTEST is not set
1161# CONFIG_FTR_FIXUP_SELFTEST is not set 1273# CONFIG_FTR_FIXUP_SELFTEST is not set
1274# CONFIG_XMON is not set
1162CONFIG_IRQSTACKS=y 1275CONFIG_IRQSTACKS=y
1163# CONFIG_VIRQ_DEBUG is not set 1276# CONFIG_VIRQ_DEBUG is not set
1164# CONFIG_BOOTX_TEXT is not set 1277# CONFIG_BOOTX_TEXT is not set
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig
index fe6ffa683d78..e77c5e7a0be2 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.26-rc3 3# Linux kernel version: 2.6.27-rc4
4# Tue May 20 20:03:28 2008 4# Tue Aug 26 13:31:07 2008
5# 5#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -14,6 +14,7 @@ CONFIG_POWER4=y
14# CONFIG_TUNE_CELL is not set 14# CONFIG_TUNE_CELL is not set
15CONFIG_PPC_FPU=y 15CONFIG_PPC_FPU=y
16CONFIG_ALTIVEC=y 16CONFIG_ALTIVEC=y
17CONFIG_VSX=y
17CONFIG_PPC_STD_MMU=y 18CONFIG_PPC_STD_MMU=y
18CONFIG_PPC_MM_SLICES=y 19CONFIG_PPC_MM_SLICES=y
19CONFIG_VIRT_CPU_ACCOUNTING=y 20CONFIG_VIRT_CPU_ACCOUNTING=y
@@ -31,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y 32CONFIG_HAVE_SETUP_PER_CPU_AREA=y
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
34CONFIG_TRACE_IRQFLAGS_SUPPORT=y 36CONFIG_TRACE_IRQFLAGS_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -104,7 +106,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
104CONFIG_SYSCTL=y 106CONFIG_SYSCTL=y
105# CONFIG_EMBEDDED is not set 107# CONFIG_EMBEDDED is not set
106CONFIG_SYSCTL_SYSCALL=y 108CONFIG_SYSCTL_SYSCALL=y
107CONFIG_SYSCTL_SYSCALL_CHECK=y
108CONFIG_KALLSYMS=y 109CONFIG_KALLSYMS=y
109CONFIG_KALLSYMS_ALL=y 110CONFIG_KALLSYMS_ALL=y
110# CONFIG_KALLSYMS_EXTRA_PASS is not set 111# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -132,11 +133,17 @@ CONFIG_MARKERS=y
132CONFIG_OPROFILE=y 133CONFIG_OPROFILE=y
133CONFIG_HAVE_OPROFILE=y 134CONFIG_HAVE_OPROFILE=y
134CONFIG_KPROBES=y 135CONFIG_KPROBES=y
136CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
135CONFIG_KRETPROBES=y 137CONFIG_KRETPROBES=y
138CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 139CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 140CONFIG_HAVE_KRETPROBES=y
138# CONFIG_HAVE_DMA_ATTRS is not set 141CONFIG_HAVE_ARCH_TRACEHOOK=y
142CONFIG_HAVE_DMA_ATTRS=y
143CONFIG_USE_GENERIC_SMP_HELPERS=y
144# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 145CONFIG_PROC_PAGE_MONITOR=y
146# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
140CONFIG_SLABINFO=y 147CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 148CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 149# CONFIG_TINY_SHMEM is not set
@@ -152,6 +159,7 @@ CONFIG_STOP_MACHINE=y
152CONFIG_BLOCK=y 159CONFIG_BLOCK=y
153# CONFIG_BLK_DEV_IO_TRACE is not set 160# CONFIG_BLK_DEV_IO_TRACE is not set
154CONFIG_BLK_DEV_BSG=y 161CONFIG_BLK_DEV_BSG=y
162# CONFIG_BLK_DEV_INTEGRITY is not set
155CONFIG_BLOCK_COMPAT=y 163CONFIG_BLOCK_COMPAT=y
156 164
157# 165#
@@ -172,17 +180,14 @@ CONFIG_CLASSIC_RCU=y
172# Platform support 180# Platform support
173# 181#
174CONFIG_PPC_MULTIPLATFORM=y 182CONFIG_PPC_MULTIPLATFORM=y
175# CONFIG_PPC_82xx is not set
176# CONFIG_PPC_83xx is not set
177# CONFIG_PPC_86xx is not set
178CONFIG_PPC_PSERIES=y 183CONFIG_PPC_PSERIES=y
179CONFIG_PPC_SPLPAR=y 184CONFIG_PPC_SPLPAR=y
180CONFIG_EEH=y 185CONFIG_EEH=y
181CONFIG_SCANLOG=m 186CONFIG_SCANLOG=m
182CONFIG_LPARCFG=y 187CONFIG_LPARCFG=y
188CONFIG_PPC_SMLPAR=y
189CONFIG_CMM=y
183# CONFIG_PPC_ISERIES is not set 190# CONFIG_PPC_ISERIES is not set
184# CONFIG_PPC_MPC512x is not set
185# CONFIG_PPC_MPC5121 is not set
186# CONFIG_PPC_PMAC is not set 191# CONFIG_PPC_PMAC is not set
187# CONFIG_PPC_MAPLE is not set 192# CONFIG_PPC_MAPLE is not set
188# CONFIG_PPC_PASEMI is not set 193# CONFIG_PPC_PASEMI is not set
@@ -226,7 +231,7 @@ CONFIG_HZ_250=y
226# CONFIG_HZ_300 is not set 231# CONFIG_HZ_300 is not set
227# CONFIG_HZ_1000 is not set 232# CONFIG_HZ_1000 is not set
228CONFIG_HZ=250 233CONFIG_HZ=250
229# CONFIG_SCHED_HRTICK is not set 234CONFIG_SCHED_HRTICK=y
230CONFIG_PREEMPT_NONE=y 235CONFIG_PREEMPT_NONE=y
231# CONFIG_PREEMPT_VOLUNTARY is not set 236# CONFIG_PREEMPT_VOLUNTARY is not set
232# CONFIG_PREEMPT is not set 237# CONFIG_PREEMPT is not set
@@ -275,6 +280,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
275CONFIG_SCHED_SMT=y 280CONFIG_SCHED_SMT=y
276CONFIG_PROC_DEVICETREE=y 281CONFIG_PROC_DEVICETREE=y
277# CONFIG_CMDLINE_BOOL is not set 282# CONFIG_CMDLINE_BOOL is not set
283CONFIG_EXTRA_TARGETS=""
278# CONFIG_PM is not set 284# CONFIG_PM is not set
279CONFIG_SECCOMP=y 285CONFIG_SECCOMP=y
280CONFIG_ISA_DMA_API=y 286CONFIG_ISA_DMA_API=y
@@ -304,10 +310,6 @@ CONFIG_HOTPLUG_PCI_RPA_DLPAR=m
304CONFIG_PAGE_OFFSET=0xc000000000000000 310CONFIG_PAGE_OFFSET=0xc000000000000000
305CONFIG_KERNEL_START=0xc000000000000000 311CONFIG_KERNEL_START=0xc000000000000000
306CONFIG_PHYSICAL_START=0x00000000 312CONFIG_PHYSICAL_START=0x00000000
307
308#
309# Networking
310#
311CONFIG_NET=y 313CONFIG_NET=y
312 314
313# 315#
@@ -321,6 +323,7 @@ CONFIG_XFRM_USER=m
321# CONFIG_XFRM_SUB_POLICY is not set 323# CONFIG_XFRM_SUB_POLICY is not set
322# CONFIG_XFRM_MIGRATE is not set 324# CONFIG_XFRM_MIGRATE is not set
323# CONFIG_XFRM_STATISTICS is not set 325# CONFIG_XFRM_STATISTICS is not set
326CONFIG_XFRM_IPCOMP=m
324CONFIG_NET_KEY=m 327CONFIG_NET_KEY=m
325# CONFIG_NET_KEY_MIGRATE is not set 328# CONFIG_NET_KEY_MIGRATE is not set
326CONFIG_INET=y 329CONFIG_INET=y
@@ -498,6 +501,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
498CONFIG_STANDALONE=y 501CONFIG_STANDALONE=y
499CONFIG_PREVENT_FIRMWARE_BUILD=y 502CONFIG_PREVENT_FIRMWARE_BUILD=y
500CONFIG_FW_LOADER=y 503CONFIG_FW_LOADER=y
504CONFIG_FIRMWARE_IN_KERNEL=y
505CONFIG_EXTRA_FIRMWARE=""
501# CONFIG_DEBUG_DRIVER is not set 506# CONFIG_DEBUG_DRIVER is not set
502# CONFIG_DEBUG_DEVRES is not set 507# CONFIG_DEBUG_DEVRES is not set
503# CONFIG_SYS_HYPERVISOR is not set 508# CONFIG_SYS_HYPERVISOR is not set
@@ -531,12 +536,14 @@ CONFIG_BLK_DEV_RAM_SIZE=65536
531# CONFIG_BLK_DEV_XIP is not set 536# CONFIG_BLK_DEV_XIP is not set
532# CONFIG_CDROM_PKTCDVD is not set 537# CONFIG_CDROM_PKTCDVD is not set
533# CONFIG_ATA_OVER_ETH is not set 538# CONFIG_ATA_OVER_ETH is not set
539# CONFIG_BLK_DEV_HD is not set
534CONFIG_MISC_DEVICES=y 540CONFIG_MISC_DEVICES=y
535# CONFIG_PHANTOM is not set 541# CONFIG_PHANTOM is not set
536# CONFIG_EEPROM_93CX6 is not set 542# CONFIG_EEPROM_93CX6 is not set
537# CONFIG_SGI_IOC4 is not set 543# CONFIG_SGI_IOC4 is not set
538# CONFIG_TIFM_CORE is not set 544# CONFIG_TIFM_CORE is not set
539# CONFIG_ENCLOSURE_SERVICES is not set 545# CONFIG_ENCLOSURE_SERVICES is not set
546# CONFIG_HP_ILO is not set
540CONFIG_HAVE_IDE=y 547CONFIG_HAVE_IDE=y
541CONFIG_IDE=y 548CONFIG_IDE=y
542CONFIG_BLK_DEV_IDE=y 549CONFIG_BLK_DEV_IDE=y
@@ -544,6 +551,7 @@ CONFIG_BLK_DEV_IDE=y
544# 551#
545# Please see Documentation/ide/ide.txt for help/info on IDE drives 552# Please see Documentation/ide/ide.txt for help/info on IDE drives
546# 553#
554CONFIG_IDE_TIMINGS=y
547# CONFIG_BLK_DEV_IDE_SATA is not set 555# CONFIG_BLK_DEV_IDE_SATA is not set
548CONFIG_BLK_DEV_IDEDISK=y 556CONFIG_BLK_DEV_IDEDISK=y
549# CONFIG_IDEDISK_MULTI_MODE is not set 557# CONFIG_IDEDISK_MULTI_MODE is not set
@@ -575,10 +583,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
575CONFIG_BLK_DEV_AMD74XX=y 583CONFIG_BLK_DEV_AMD74XX=y
576# CONFIG_BLK_DEV_CMD64X is not set 584# CONFIG_BLK_DEV_CMD64X is not set
577# CONFIG_BLK_DEV_TRIFLEX is not set 585# CONFIG_BLK_DEV_TRIFLEX is not set
578# CONFIG_BLK_DEV_CY82C693 is not set
579# CONFIG_BLK_DEV_CS5520 is not set 586# CONFIG_BLK_DEV_CS5520 is not set
580# CONFIG_BLK_DEV_CS5530 is not set 587# CONFIG_BLK_DEV_CS5530 is not set
581# CONFIG_BLK_DEV_HPT34X is not set
582# CONFIG_BLK_DEV_HPT366 is not set 588# CONFIG_BLK_DEV_HPT366 is not set
583# CONFIG_BLK_DEV_JMICRON is not set 589# CONFIG_BLK_DEV_JMICRON is not set
584# CONFIG_BLK_DEV_SC1200 is not set 590# CONFIG_BLK_DEV_SC1200 is not set
@@ -596,8 +602,6 @@ CONFIG_BLK_DEV_AMD74XX=y
596# CONFIG_BLK_DEV_VIA82CXXX is not set 602# CONFIG_BLK_DEV_VIA82CXXX is not set
597# CONFIG_BLK_DEV_TC86C001 is not set 603# CONFIG_BLK_DEV_TC86C001 is not set
598CONFIG_BLK_DEV_IDEDMA=y 604CONFIG_BLK_DEV_IDEDMA=y
599# CONFIG_BLK_DEV_HD_ONLY is not set
600# CONFIG_BLK_DEV_HD is not set
601 605
602# 606#
603# SCSI device support 607# SCSI device support
@@ -659,6 +663,8 @@ CONFIG_SCSI_LOWLEVEL=y
659# CONFIG_SCSI_GDTH is not set 663# CONFIG_SCSI_GDTH is not set
660# CONFIG_SCSI_IPS is not set 664# CONFIG_SCSI_IPS is not set
661CONFIG_SCSI_IBMVSCSI=y 665CONFIG_SCSI_IBMVSCSI=y
666CONFIG_SCSI_IBMVFC=m
667CONFIG_SCSI_IBMVFC_TRACE=y
662# CONFIG_SCSI_INITIO is not set 668# CONFIG_SCSI_INITIO is not set
663# CONFIG_SCSI_INIA100 is not set 669# CONFIG_SCSI_INIA100 is not set
664# CONFIG_SCSI_PPA is not set 670# CONFIG_SCSI_PPA is not set
@@ -681,6 +687,7 @@ CONFIG_SCSI_LPFC=m
681# CONFIG_SCSI_DC390T is not set 687# CONFIG_SCSI_DC390T is not set
682# CONFIG_SCSI_DEBUG is not set 688# CONFIG_SCSI_DEBUG is not set
683# CONFIG_SCSI_SRP is not set 689# CONFIG_SCSI_SRP is not set
690# CONFIG_SCSI_DH is not set
684CONFIG_ATA=y 691CONFIG_ATA=y
685# CONFIG_ATA_NONSTANDARD is not set 692# CONFIG_ATA_NONSTANDARD is not set
686CONFIG_SATA_PMP=y 693CONFIG_SATA_PMP=y
@@ -703,9 +710,6 @@ CONFIG_DM_SNAPSHOT=m
703CONFIG_DM_MIRROR=m 710CONFIG_DM_MIRROR=m
704CONFIG_DM_ZERO=m 711CONFIG_DM_ZERO=m
705CONFIG_DM_MULTIPATH=m 712CONFIG_DM_MULTIPATH=m
706CONFIG_DM_MULTIPATH_EMC=m
707# CONFIG_DM_MULTIPATH_RDAC is not set
708# CONFIG_DM_MULTIPATH_HP is not set
709# CONFIG_DM_DELAY is not set 713# CONFIG_DM_DELAY is not set
710# CONFIG_DM_UEVENT is not set 714# CONFIG_DM_UEVENT is not set
711# CONFIG_FUSION is not set 715# CONFIG_FUSION is not set
@@ -713,12 +717,15 @@ CONFIG_DM_MULTIPATH_EMC=m
713# 717#
714# IEEE 1394 (FireWire) support 718# IEEE 1394 (FireWire) support
715# 719#
720
721#
722# Enable only one of the two stacks, unless you know what you are doing
723#
716# CONFIG_FIREWIRE is not set 724# CONFIG_FIREWIRE is not set
717# CONFIG_IEEE1394 is not set 725# CONFIG_IEEE1394 is not set
718# CONFIG_I2O is not set 726# CONFIG_I2O is not set
719# CONFIG_MACINTOSH_DRIVERS is not set 727# CONFIG_MACINTOSH_DRIVERS is not set
720CONFIG_NETDEVICES=y 728CONFIG_NETDEVICES=y
721# CONFIG_NETDEVICES_MULTIQUEUE is not set
722CONFIG_DUMMY=m 729CONFIG_DUMMY=m
723CONFIG_BONDING=m 730CONFIG_BONDING=m
724# CONFIG_MACVLAN is not set 731# CONFIG_MACVLAN is not set
@@ -726,7 +733,23 @@ CONFIG_BONDING=m
726CONFIG_TUN=m 733CONFIG_TUN=m
727# CONFIG_VETH is not set 734# CONFIG_VETH is not set
728# CONFIG_ARCNET is not set 735# CONFIG_ARCNET is not set
729# CONFIG_PHYLIB is not set 736CONFIG_PHYLIB=y
737
738#
739# MII PHY device drivers
740#
741# CONFIG_MARVELL_PHY is not set
742# CONFIG_DAVICOM_PHY is not set
743# CONFIG_QSEMI_PHY is not set
744# CONFIG_LXT_PHY is not set
745# CONFIG_CICADA_PHY is not set
746# CONFIG_VITESSE_PHY is not set
747# CONFIG_SMSC_PHY is not set
748# CONFIG_BROADCOM_PHY is not set
749# CONFIG_ICPLUS_PHY is not set
750# CONFIG_REALTEK_PHY is not set
751# CONFIG_FIXED_PHY is not set
752# CONFIG_MDIO_BITBANG is not set
730CONFIG_NET_ETHERNET=y 753CONFIG_NET_ETHERNET=y
731CONFIG_MII=y 754CONFIG_MII=y
732# CONFIG_HAPPYMEAL is not set 755# CONFIG_HAPPYMEAL is not set
@@ -759,6 +782,7 @@ CONFIG_E100=y
759# CONFIG_SIS900 is not set 782# CONFIG_SIS900 is not set
760# CONFIG_EPIC100 is not set 783# CONFIG_EPIC100 is not set
761# CONFIG_SUNDANCE is not set 784# CONFIG_SUNDANCE is not set
785# CONFIG_TLAN is not set
762# CONFIG_VIA_RHINE is not set 786# CONFIG_VIA_RHINE is not set
763# CONFIG_SC92031 is not set 787# CONFIG_SC92031 is not set
764# CONFIG_NET_POCKET is not set 788# CONFIG_NET_POCKET is not set
@@ -767,10 +791,8 @@ CONFIG_ACENIC=y
767CONFIG_ACENIC_OMIT_TIGON_I=y 791CONFIG_ACENIC_OMIT_TIGON_I=y
768# CONFIG_DL2K is not set 792# CONFIG_DL2K is not set
769CONFIG_E1000=y 793CONFIG_E1000=y
770# CONFIG_E1000_NAPI is not set
771# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 794# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
772# CONFIG_E1000E is not set 795# CONFIG_E1000E is not set
773# CONFIG_E1000E_ENABLED is not set
774# CONFIG_IP1000 is not set 796# CONFIG_IP1000 is not set
775# CONFIG_IGB is not set 797# CONFIG_IGB is not set
776# CONFIG_NS83820 is not set 798# CONFIG_NS83820 is not set
@@ -785,14 +807,14 @@ CONFIG_TIGON3=y
785# CONFIG_BNX2 is not set 807# CONFIG_BNX2 is not set
786# CONFIG_QLA3XXX is not set 808# CONFIG_QLA3XXX is not set
787# CONFIG_ATL1 is not set 809# CONFIG_ATL1 is not set
810# CONFIG_ATL1E is not set
788CONFIG_NETDEV_10000=y 811CONFIG_NETDEV_10000=y
789# CONFIG_CHELSIO_T1 is not set 812# CONFIG_CHELSIO_T1 is not set
790# CONFIG_CHELSIO_T3 is not set 813# CONFIG_CHELSIO_T3 is not set
814CONFIG_EHEA=y
791# CONFIG_IXGBE is not set 815# CONFIG_IXGBE is not set
792CONFIG_IXGB=m 816CONFIG_IXGB=m
793# CONFIG_IXGB_NAPI is not set
794CONFIG_S2IO=m 817CONFIG_S2IO=m
795# CONFIG_S2IO_NAPI is not set
796# CONFIG_MYRI10GE is not set 818# CONFIG_MYRI10GE is not set
797# CONFIG_NETXEN_NIC is not set 819# CONFIG_NETXEN_NIC is not set
798# CONFIG_NIU is not set 820# CONFIG_NIU is not set
@@ -883,6 +905,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
883# CONFIG_MOUSE_PS2_TOUCHKIT is not set 905# CONFIG_MOUSE_PS2_TOUCHKIT is not set
884# CONFIG_MOUSE_SERIAL is not set 906# CONFIG_MOUSE_SERIAL is not set
885# CONFIG_MOUSE_APPLETOUCH is not set 907# CONFIG_MOUSE_APPLETOUCH is not set
908# CONFIG_MOUSE_BCM5974 is not set
886# CONFIG_MOUSE_VSXXXAA is not set 909# CONFIG_MOUSE_VSXXXAA is not set
887# CONFIG_INPUT_JOYSTICK is not set 910# CONFIG_INPUT_JOYSTICK is not set
888# CONFIG_INPUT_TABLET is not set 911# CONFIG_INPUT_TABLET is not set
@@ -906,12 +929,14 @@ CONFIG_SERIO_I8042=y
906# CONFIG_SERIO_PCIPS2 is not set 929# CONFIG_SERIO_PCIPS2 is not set
907CONFIG_SERIO_LIBPS2=y 930CONFIG_SERIO_LIBPS2=y
908# CONFIG_SERIO_RAW is not set 931# CONFIG_SERIO_RAW is not set
932# CONFIG_SERIO_XILINX_XPS_PS2 is not set
909# CONFIG_GAMEPORT is not set 933# CONFIG_GAMEPORT is not set
910 934
911# 935#
912# Character devices 936# Character devices
913# 937#
914CONFIG_VT=y 938CONFIG_VT=y
939CONFIG_CONSOLE_TRANSLATIONS=y
915CONFIG_VT_CONSOLE=y 940CONFIG_VT_CONSOLE=y
916CONFIG_HW_CONSOLE=y 941CONFIG_HW_CONSOLE=y
917# CONFIG_VT_HW_CONSOLE_BINDING is not set 942# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -943,6 +968,7 @@ CONFIG_LEGACY_PTY_COUNT=256
943# CONFIG_PRINTER is not set 968# CONFIG_PRINTER is not set
944# CONFIG_PPDEV is not set 969# CONFIG_PPDEV is not set
945CONFIG_HVC_DRIVER=y 970CONFIG_HVC_DRIVER=y
971CONFIG_HVC_IRQ=y
946CONFIG_HVC_CONSOLE=y 972CONFIG_HVC_CONSOLE=y
947CONFIG_HVC_RTAS=y 973CONFIG_HVC_RTAS=y
948CONFIG_HVCS=m 974CONFIG_HVCS=m
@@ -961,44 +987,65 @@ CONFIG_DEVPORT=y
961CONFIG_I2C=y 987CONFIG_I2C=y
962CONFIG_I2C_BOARDINFO=y 988CONFIG_I2C_BOARDINFO=y
963# CONFIG_I2C_CHARDEV is not set 989# CONFIG_I2C_CHARDEV is not set
990CONFIG_I2C_HELPER_AUTO=y
964CONFIG_I2C_ALGOBIT=y 991CONFIG_I2C_ALGOBIT=y
965 992
966# 993#
967# I2C Hardware Bus support 994# I2C Hardware Bus support
968# 995#
996
997#
998# PC SMBus host controller drivers
999#
969# CONFIG_I2C_ALI1535 is not set 1000# CONFIG_I2C_ALI1535 is not set
970# CONFIG_I2C_ALI1563 is not set 1001# CONFIG_I2C_ALI1563 is not set
971# CONFIG_I2C_ALI15X3 is not set 1002# CONFIG_I2C_ALI15X3 is not set
972# CONFIG_I2C_AMD756 is not set 1003# CONFIG_I2C_AMD756 is not set
973# CONFIG_I2C_AMD8111 is not set 1004# CONFIG_I2C_AMD8111 is not set
974# CONFIG_I2C_I801 is not set 1005# CONFIG_I2C_I801 is not set
975# CONFIG_I2C_I810 is not set 1006# CONFIG_I2C_ISCH is not set
976# CONFIG_I2C_PIIX4 is not set 1007# CONFIG_I2C_PIIX4 is not set
977# CONFIG_I2C_NFORCE2 is not set 1008# CONFIG_I2C_NFORCE2 is not set
978# CONFIG_I2C_OCORES is not set
979# CONFIG_I2C_PARPORT is not set
980# CONFIG_I2C_PARPORT_LIGHT is not set
981# CONFIG_I2C_PROSAVAGE is not set
982# CONFIG_I2C_SAVAGE4 is not set
983# CONFIG_I2C_SIMTEC is not set
984# CONFIG_I2C_SIS5595 is not set 1009# CONFIG_I2C_SIS5595 is not set
985# CONFIG_I2C_SIS630 is not set 1010# CONFIG_I2C_SIS630 is not set
986# CONFIG_I2C_SIS96X is not set 1011# CONFIG_I2C_SIS96X is not set
987# CONFIG_I2C_TAOS_EVM is not set
988# CONFIG_I2C_STUB is not set
989# CONFIG_I2C_TINY_USB is not set
990# CONFIG_I2C_VIA is not set 1012# CONFIG_I2C_VIA is not set
991# CONFIG_I2C_VIAPRO is not set 1013# CONFIG_I2C_VIAPRO is not set
1014
1015#
1016# I2C system bus drivers (mostly embedded / system-on-chip)
1017#
1018# CONFIG_I2C_OCORES is not set
1019# CONFIG_I2C_SIMTEC is not set
1020
1021#
1022# External I2C/SMBus adapter drivers
1023#
1024# CONFIG_I2C_PARPORT is not set
1025# CONFIG_I2C_PARPORT_LIGHT is not set
1026# CONFIG_I2C_TAOS_EVM is not set
1027# CONFIG_I2C_TINY_USB is not set
1028
1029#
1030# Graphics adapter I2C/DDC channel drivers
1031#
992# CONFIG_I2C_VOODOO3 is not set 1032# CONFIG_I2C_VOODOO3 is not set
1033
1034#
1035# Other I2C/SMBus bus drivers
1036#
993# CONFIG_I2C_PCA_PLATFORM is not set 1037# CONFIG_I2C_PCA_PLATFORM is not set
1038# CONFIG_I2C_STUB is not set
994 1039
995# 1040#
996# Miscellaneous I2C Chip support 1041# Miscellaneous I2C Chip support
997# 1042#
998# CONFIG_DS1682 is not set 1043# CONFIG_DS1682 is not set
1044# CONFIG_AT24 is not set
999# CONFIG_SENSORS_EEPROM is not set 1045# CONFIG_SENSORS_EEPROM is not set
1000# CONFIG_SENSORS_PCF8574 is not set 1046# CONFIG_SENSORS_PCF8574 is not set
1001# CONFIG_PCF8575 is not set 1047# CONFIG_PCF8575 is not set
1048# CONFIG_SENSORS_PCA9539 is not set
1002# CONFIG_SENSORS_PCF8591 is not set 1049# CONFIG_SENSORS_PCF8591 is not set
1003# CONFIG_SENSORS_MAX6875 is not set 1050# CONFIG_SENSORS_MAX6875 is not set
1004# CONFIG_SENSORS_TSL2550 is not set 1051# CONFIG_SENSORS_TSL2550 is not set
@@ -1007,10 +1054,13 @@ CONFIG_I2C_ALGOBIT=y
1007# CONFIG_I2C_DEBUG_BUS is not set 1054# CONFIG_I2C_DEBUG_BUS is not set
1008# CONFIG_I2C_DEBUG_CHIP is not set 1055# CONFIG_I2C_DEBUG_CHIP is not set
1009# CONFIG_SPI is not set 1056# CONFIG_SPI is not set
1057CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1058# CONFIG_GPIOLIB is not set
1010# CONFIG_W1 is not set 1059# CONFIG_W1 is not set
1011# CONFIG_POWER_SUPPLY is not set 1060# CONFIG_POWER_SUPPLY is not set
1012# CONFIG_HWMON is not set 1061# CONFIG_HWMON is not set
1013# CONFIG_THERMAL is not set 1062# CONFIG_THERMAL is not set
1063# CONFIG_THERMAL_HWMON is not set
1014# CONFIG_WATCHDOG is not set 1064# CONFIG_WATCHDOG is not set
1015 1065
1016# 1066#
@@ -1022,8 +1072,10 @@ CONFIG_SSB_POSSIBLE=y
1022# 1072#
1023# Multifunction device drivers 1073# Multifunction device drivers
1024# 1074#
1075# CONFIG_MFD_CORE is not set
1025# CONFIG_MFD_SM501 is not set 1076# CONFIG_MFD_SM501 is not set
1026# CONFIG_HTC_PASIC3 is not set 1077# CONFIG_HTC_PASIC3 is not set
1078# CONFIG_MFD_TMIO is not set
1027 1079
1028# 1080#
1029# Multimedia devices 1081# Multimedia devices
@@ -1102,10 +1154,13 @@ CONFIG_FB_RADEON_BACKLIGHT=y
1102# CONFIG_FB_TRIDENT is not set 1154# CONFIG_FB_TRIDENT is not set
1103# CONFIG_FB_ARK is not set 1155# CONFIG_FB_ARK is not set
1104# CONFIG_FB_PM3 is not set 1156# CONFIG_FB_PM3 is not set
1157# CONFIG_FB_CARMINE is not set
1105CONFIG_FB_IBM_GXT4500=y 1158CONFIG_FB_IBM_GXT4500=y
1106# CONFIG_FB_VIRTUAL is not set 1159# CONFIG_FB_VIRTUAL is not set
1107CONFIG_BACKLIGHT_LCD_SUPPORT=y 1160CONFIG_BACKLIGHT_LCD_SUPPORT=y
1108CONFIG_LCD_CLASS_DEVICE=m 1161CONFIG_LCD_CLASS_DEVICE=m
1162# CONFIG_LCD_ILI9320 is not set
1163CONFIG_LCD_PLATFORM=m
1109CONFIG_BACKLIGHT_CLASS_DEVICE=y 1164CONFIG_BACKLIGHT_CLASS_DEVICE=y
1110# CONFIG_BACKLIGHT_CORGI is not set 1165# CONFIG_BACKLIGHT_CORGI is not set
1111 1166
@@ -1133,10 +1188,6 @@ CONFIG_LOGO=y
1133CONFIG_LOGO_LINUX_MONO=y 1188CONFIG_LOGO_LINUX_MONO=y
1134CONFIG_LOGO_LINUX_VGA16=y 1189CONFIG_LOGO_LINUX_VGA16=y
1135CONFIG_LOGO_LINUX_CLUT224=y 1190CONFIG_LOGO_LINUX_CLUT224=y
1136
1137#
1138# Sound
1139#
1140# CONFIG_SOUND is not set 1191# CONFIG_SOUND is not set
1141CONFIG_HID_SUPPORT=y 1192CONFIG_HID_SUPPORT=y
1142CONFIG_HID=y 1193CONFIG_HID=y
@@ -1165,6 +1216,7 @@ CONFIG_USB_DEVICEFS=y
1165CONFIG_USB_DEVICE_CLASS=y 1216CONFIG_USB_DEVICE_CLASS=y
1166# CONFIG_USB_DYNAMIC_MINORS is not set 1217# CONFIG_USB_DYNAMIC_MINORS is not set
1167# CONFIG_USB_OTG is not set 1218# CONFIG_USB_OTG is not set
1219CONFIG_USB_MON=y
1168 1220
1169# 1221#
1170# USB Host Controller Drivers 1222# USB Host Controller Drivers
@@ -1190,6 +1242,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1190# 1242#
1191# CONFIG_USB_ACM is not set 1243# CONFIG_USB_ACM is not set
1192# CONFIG_USB_PRINTER is not set 1244# CONFIG_USB_PRINTER is not set
1245# CONFIG_USB_WDM is not set
1193 1246
1194# 1247#
1195# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1248# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1211,6 +1264,7 @@ CONFIG_USB_STORAGE=y
1211# CONFIG_USB_STORAGE_ALAUDA is not set 1264# CONFIG_USB_STORAGE_ALAUDA is not set
1212CONFIG_USB_STORAGE_ONETOUCH=y 1265CONFIG_USB_STORAGE_ONETOUCH=y
1213# CONFIG_USB_STORAGE_KARMA is not set 1266# CONFIG_USB_STORAGE_KARMA is not set
1267# CONFIG_USB_STORAGE_SIERRA is not set
1214# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1268# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1215# CONFIG_USB_LIBUSUAL is not set 1269# CONFIG_USB_LIBUSUAL is not set
1216 1270
@@ -1219,7 +1273,6 @@ CONFIG_USB_STORAGE_ONETOUCH=y
1219# 1273#
1220# CONFIG_USB_MDC800 is not set 1274# CONFIG_USB_MDC800 is not set
1221# CONFIG_USB_MICROTEK is not set 1275# CONFIG_USB_MICROTEK is not set
1222CONFIG_USB_MON=y
1223 1276
1224# 1277#
1225# USB port drivers 1278# USB port drivers
@@ -1233,7 +1286,6 @@ CONFIG_USB_MON=y
1233# CONFIG_USB_EMI62 is not set 1286# CONFIG_USB_EMI62 is not set
1234# CONFIG_USB_EMI26 is not set 1287# CONFIG_USB_EMI26 is not set
1235# CONFIG_USB_ADUTUX is not set 1288# CONFIG_USB_ADUTUX is not set
1236# CONFIG_USB_AUERSWALD is not set
1237# CONFIG_USB_RIO500 is not set 1289# CONFIG_USB_RIO500 is not set
1238# CONFIG_USB_LEGOTOWER is not set 1290# CONFIG_USB_LEGOTOWER is not set
1239# CONFIG_USB_LCD is not set 1291# CONFIG_USB_LCD is not set
@@ -1250,6 +1302,7 @@ CONFIG_USB_MON=y
1250# CONFIG_USB_TRANCEVIBRATOR is not set 1302# CONFIG_USB_TRANCEVIBRATOR is not set
1251# CONFIG_USB_IOWARRIOR is not set 1303# CONFIG_USB_IOWARRIOR is not set
1252# CONFIG_USB_TEST is not set 1304# CONFIG_USB_TEST is not set
1305# CONFIG_USB_ISIGHTFW is not set
1253# CONFIG_USB_GADGET is not set 1306# CONFIG_USB_GADGET is not set
1254# CONFIG_MMC is not set 1307# CONFIG_MMC is not set
1255# CONFIG_MEMSTICK is not set 1308# CONFIG_MEMSTICK is not set
@@ -1316,6 +1369,7 @@ CONFIG_XFS_POSIX_ACL=y
1316# CONFIG_GFS2_FS is not set 1369# CONFIG_GFS2_FS is not set
1317CONFIG_OCFS2_FS=m 1370CONFIG_OCFS2_FS=m
1318CONFIG_OCFS2_FS_O2CB=m 1371CONFIG_OCFS2_FS_O2CB=m
1372CONFIG_OCFS2_FS_STATS=y
1319CONFIG_OCFS2_DEBUG_MASKLOG=y 1373CONFIG_OCFS2_DEBUG_MASKLOG=y
1320# CONFIG_OCFS2_DEBUG_FS is not set 1374# CONFIG_OCFS2_DEBUG_FS is not set
1321CONFIG_DNOTIFY=y 1375CONFIG_DNOTIFY=y
@@ -1371,6 +1425,7 @@ CONFIG_CONFIGFS_FS=m
1371CONFIG_CRAMFS=y 1425CONFIG_CRAMFS=y
1372# CONFIG_VXFS_FS is not set 1426# CONFIG_VXFS_FS is not set
1373# CONFIG_MINIX_FS is not set 1427# CONFIG_MINIX_FS is not set
1428# CONFIG_OMFS_FS is not set
1374# CONFIG_HPFS_FS is not set 1429# CONFIG_HPFS_FS is not set
1375# CONFIG_QNX4FS_FS is not set 1430# CONFIG_QNX4FS_FS is not set
1376# CONFIG_ROMFS_FS is not set 1431# CONFIG_ROMFS_FS is not set
@@ -1394,7 +1449,6 @@ CONFIG_NFS_COMMON=y
1394CONFIG_SUNRPC=y 1449CONFIG_SUNRPC=y
1395CONFIG_SUNRPC_GSS=y 1450CONFIG_SUNRPC_GSS=y
1396CONFIG_SUNRPC_XPRT_RDMA=m 1451CONFIG_SUNRPC_XPRT_RDMA=m
1397# CONFIG_SUNRPC_BIND34 is not set
1398CONFIG_RPCSEC_GSS_KRB5=y 1452CONFIG_RPCSEC_GSS_KRB5=y
1399CONFIG_RPCSEC_GSS_SPKM3=m 1453CONFIG_RPCSEC_GSS_SPKM3=m
1400# CONFIG_SMB_FS is not set 1454# CONFIG_SMB_FS is not set
@@ -1463,6 +1517,7 @@ CONFIG_BITREVERSE=y
1463# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1517# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1464CONFIG_CRC_CCITT=m 1518CONFIG_CRC_CCITT=m
1465# CONFIG_CRC16 is not set 1519# CONFIG_CRC16 is not set
1520CONFIG_CRC_T10DIF=y
1466CONFIG_CRC_ITU_T=m 1521CONFIG_CRC_ITU_T=m
1467CONFIG_CRC32=y 1522CONFIG_CRC32=y
1468# CONFIG_CRC7 is not set 1523# CONFIG_CRC7 is not set
@@ -1495,8 +1550,10 @@ CONFIG_DEBUG_FS=y
1495CONFIG_DEBUG_KERNEL=y 1550CONFIG_DEBUG_KERNEL=y
1496# CONFIG_DEBUG_SHIRQ is not set 1551# CONFIG_DEBUG_SHIRQ is not set
1497CONFIG_DETECT_SOFTLOCKUP=y 1552CONFIG_DETECT_SOFTLOCKUP=y
1553# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1554CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1498CONFIG_SCHED_DEBUG=y 1555CONFIG_SCHED_DEBUG=y
1499# CONFIG_SCHEDSTATS is not set 1556CONFIG_SCHEDSTATS=y
1500# CONFIG_TIMER_STATS is not set 1557# CONFIG_TIMER_STATS is not set
1501# CONFIG_DEBUG_OBJECTS is not set 1558# CONFIG_DEBUG_OBJECTS is not set
1502# CONFIG_SLUB_DEBUG_ON is not set 1559# CONFIG_SLUB_DEBUG_ON is not set
@@ -1508,30 +1565,49 @@ CONFIG_SCHED_DEBUG=y
1508# CONFIG_DEBUG_LOCK_ALLOC is not set 1565# CONFIG_DEBUG_LOCK_ALLOC is not set
1509# CONFIG_PROVE_LOCKING is not set 1566# CONFIG_PROVE_LOCKING is not set
1510# CONFIG_LOCK_STAT is not set 1567# CONFIG_LOCK_STAT is not set
1568CONFIG_TRACE_IRQFLAGS=y
1511# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1569# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1512# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1570# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1571CONFIG_STACKTRACE=y
1513# CONFIG_DEBUG_KOBJECT is not set 1572# CONFIG_DEBUG_KOBJECT is not set
1514CONFIG_DEBUG_BUGVERBOSE=y 1573CONFIG_DEBUG_BUGVERBOSE=y
1515# CONFIG_DEBUG_INFO is not set 1574# CONFIG_DEBUG_INFO is not set
1516# CONFIG_DEBUG_VM is not set 1575# CONFIG_DEBUG_VM is not set
1517# CONFIG_DEBUG_WRITECOUNT is not set 1576# CONFIG_DEBUG_WRITECOUNT is not set
1577CONFIG_DEBUG_MEMORY_INIT=y
1518# CONFIG_DEBUG_LIST is not set 1578# CONFIG_DEBUG_LIST is not set
1519# CONFIG_DEBUG_SG is not set 1579# CONFIG_DEBUG_SG is not set
1580CONFIG_FRAME_POINTER=y
1520# CONFIG_BOOT_PRINTK_DELAY is not set 1581# CONFIG_BOOT_PRINTK_DELAY is not set
1521# CONFIG_RCU_TORTURE_TEST is not set 1582# CONFIG_RCU_TORTURE_TEST is not set
1522# CONFIG_KPROBES_SANITY_TEST is not set 1583# CONFIG_KPROBES_SANITY_TEST is not set
1523# CONFIG_BACKTRACE_SELF_TEST is not set 1584# CONFIG_BACKTRACE_SELF_TEST is not set
1524# CONFIG_LKDTM is not set 1585# CONFIG_LKDTM is not set
1525# CONFIG_FAULT_INJECTION is not set 1586# CONFIG_FAULT_INJECTION is not set
1587CONFIG_LATENCYTOP=y
1588CONFIG_SYSCTL_SYSCALL_CHECK=y
1589CONFIG_HAVE_FTRACE=y
1590CONFIG_HAVE_DYNAMIC_FTRACE=y
1591CONFIG_TRACER_MAX_TRACE=y
1592CONFIG_TRACING=y
1593# CONFIG_FTRACE is not set
1594CONFIG_IRQSOFF_TRACER=y
1595CONFIG_SCHED_TRACER=y
1596CONFIG_CONTEXT_SWITCH_TRACER=y
1597# CONFIG_FTRACE_STARTUP_TEST is not set
1526# CONFIG_SAMPLES is not set 1598# CONFIG_SAMPLES is not set
1599CONFIG_HAVE_ARCH_KGDB=y
1600# CONFIG_KGDB is not set
1527CONFIG_DEBUG_STACKOVERFLOW=y 1601CONFIG_DEBUG_STACKOVERFLOW=y
1528# CONFIG_DEBUG_STACK_USAGE is not set 1602# CONFIG_DEBUG_STACK_USAGE is not set
1529# CONFIG_DEBUG_PAGEALLOC is not set 1603# CONFIG_DEBUG_PAGEALLOC is not set
1530CONFIG_HCALL_STATS=y 1604CONFIG_HCALL_STATS=y
1531CONFIG_DEBUGGER=y 1605# CONFIG_CODE_PATCHING_SELFTEST is not set
1606# CONFIG_FTR_FIXUP_SELFTEST is not set
1532CONFIG_XMON=y 1607CONFIG_XMON=y
1533CONFIG_XMON_DEFAULT=y 1608CONFIG_XMON_DEFAULT=y
1534CONFIG_XMON_DISASSEMBLY=y 1609CONFIG_XMON_DISASSEMBLY=y
1610CONFIG_DEBUGGER=y
1535CONFIG_IRQSTACKS=y 1611CONFIG_IRQSTACKS=y
1536CONFIG_VIRQ_DEBUG=y 1612CONFIG_VIRQ_DEBUG=y
1537# CONFIG_BOOTX_TEXT is not set 1613# CONFIG_BOOTX_TEXT is not set
@@ -1590,6 +1666,10 @@ CONFIG_CRYPTO_CRC32C=m
1590CONFIG_CRYPTO_MD4=m 1666CONFIG_CRYPTO_MD4=m
1591CONFIG_CRYPTO_MD5=y 1667CONFIG_CRYPTO_MD5=y
1592CONFIG_CRYPTO_MICHAEL_MIC=m 1668CONFIG_CRYPTO_MICHAEL_MIC=m
1669# CONFIG_CRYPTO_RMD128 is not set
1670# CONFIG_CRYPTO_RMD160 is not set
1671# CONFIG_CRYPTO_RMD256 is not set
1672# CONFIG_CRYPTO_RMD320 is not set
1593CONFIG_CRYPTO_SHA1=m 1673CONFIG_CRYPTO_SHA1=m
1594CONFIG_CRYPTO_SHA256=m 1674CONFIG_CRYPTO_SHA256=m
1595CONFIG_CRYPTO_SHA512=m 1675CONFIG_CRYPTO_SHA512=m
diff --git a/arch/powerpc/configs/sbc8641d_defconfig b/arch/powerpc/configs/sbc8641d_defconfig
index 8227510b41a9..f545421f9857 100644
--- a/arch/powerpc/configs/sbc8641d_defconfig
+++ b/arch/powerpc/configs/sbc8641d_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:19 2008 4# Thu Aug 21 00:52:15 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -33,6 +33,7 @@ CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
34CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
35CONFIG_STACKTRACE_SUPPORT=y 35CONFIG_STACKTRACE_SUPPORT=y
36CONFIG_HAVE_LATENCYTOP_SUPPORT=y
36CONFIG_LOCKDEP_SUPPORT=y 37CONFIG_LOCKDEP_SUPPORT=y
37CONFIG_RWSEM_XCHGADD_ALGORITHM=y 38CONFIG_RWSEM_XCHGADD_ALGORITHM=y
38CONFIG_GENERIC_LOCKBREAK=y 39CONFIG_GENERIC_LOCKBREAK=y
@@ -92,7 +93,6 @@ CONFIG_INITRAMFS_SOURCE=""
92CONFIG_SYSCTL=y 93CONFIG_SYSCTL=y
93CONFIG_EMBEDDED=y 94CONFIG_EMBEDDED=y
94CONFIG_SYSCTL_SYSCALL=y 95CONFIG_SYSCTL_SYSCALL=y
95CONFIG_SYSCTL_SYSCALL_CHECK=y
96CONFIG_KALLSYMS=y 96CONFIG_KALLSYMS=y
97# CONFIG_KALLSYMS_ALL is not set 97# CONFIG_KALLSYMS_ALL is not set
98# CONFIG_KALLSYMS_EXTRA_PASS is not set 98# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -100,6 +100,7 @@ CONFIG_HOTPLUG=y
100CONFIG_PRINTK=y 100CONFIG_PRINTK=y
101CONFIG_BUG=y 101CONFIG_BUG=y
102CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103CONFIG_PCSPKR_PLATFORM=y
103CONFIG_COMPAT_BRK=y 104CONFIG_COMPAT_BRK=y
104CONFIG_BASE_FULL=y 105CONFIG_BASE_FULL=y
105CONFIG_FUTEX=y 106CONFIG_FUTEX=y
@@ -117,10 +118,16 @@ CONFIG_SLAB=y
117# CONFIG_MARKERS is not set 118# CONFIG_MARKERS is not set
118CONFIG_HAVE_OPROFILE=y 119CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set 120# CONFIG_KPROBES is not set
121CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
122CONFIG_HAVE_IOREMAP_PROT=y
120CONFIG_HAVE_KPROBES=y 123CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y 124CONFIG_HAVE_KRETPROBES=y
125CONFIG_HAVE_ARCH_TRACEHOOK=y
122# CONFIG_HAVE_DMA_ATTRS is not set 126# CONFIG_HAVE_DMA_ATTRS is not set
127CONFIG_USE_GENERIC_SMP_HELPERS=y
128# CONFIG_HAVE_CLK is not set
123CONFIG_PROC_PAGE_MONITOR=y 129CONFIG_PROC_PAGE_MONITOR=y
130# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
124CONFIG_SLABINFO=y 131CONFIG_SLABINFO=y
125CONFIG_RT_MUTEXES=y 132CONFIG_RT_MUTEXES=y
126# CONFIG_TINY_SHMEM is not set 133# CONFIG_TINY_SHMEM is not set
@@ -138,6 +145,7 @@ CONFIG_BLOCK=y
138# CONFIG_BLK_DEV_IO_TRACE is not set 145# CONFIG_BLK_DEV_IO_TRACE is not set
139# CONFIG_LSF is not set 146# CONFIG_LSF is not set
140# CONFIG_BLK_DEV_BSG is not set 147# CONFIG_BLK_DEV_BSG is not set
148# CONFIG_BLK_DEV_INTEGRITY is not set
141 149
142# 150#
143# IO Schedulers 151# IO Schedulers
@@ -156,30 +164,40 @@ CONFIG_CLASSIC_RCU=y
156# 164#
157# Platform support 165# Platform support
158# 166#
159# CONFIG_PPC_MULTIPLATFORM is not set 167CONFIG_PPC_MULTIPLATFORM=y
160# CONFIG_PPC_82xx is not set 168CONFIG_CLASSIC32=y
161# CONFIG_PPC_83xx is not set 169CONFIG_PPC_CHRP=y
162CONFIG_PPC_86xx=y 170# CONFIG_MPC5121_ADS is not set
163# CONFIG_PPC_MPC512x is not set 171# CONFIG_MPC5121_GENERIC is not set
164# CONFIG_PPC_MPC5121 is not set 172# CONFIG_PPC_MPC52xx is not set
173CONFIG_PPC_PMAC=y
165# CONFIG_PPC_CELL is not set 174# CONFIG_PPC_CELL is not set
166# CONFIG_PPC_CELL_NATIVE is not set 175# CONFIG_PPC_CELL_NATIVE is not set
176# CONFIG_PPC_82xx is not set
167# CONFIG_PQ2ADS is not set 177# CONFIG_PQ2ADS is not set
178# CONFIG_PPC_83xx is not set
179CONFIG_PPC_86xx=y
168# CONFIG_MPC8641_HPCN is not set 180# CONFIG_MPC8641_HPCN is not set
169CONFIG_SBC8641D=y 181CONFIG_SBC8641D=y
170# CONFIG_MPC8610_HPCD is not set 182# CONFIG_MPC8610_HPCD is not set
171CONFIG_MPC8641=y 183CONFIG_MPC8641=y
184CONFIG_PPC_NATIVE=y
185# CONFIG_UDBG_RTAS_CONSOLE is not set
172# CONFIG_IPIC is not set 186# CONFIG_IPIC is not set
173CONFIG_MPIC=y 187CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 188# CONFIG_MPIC_WEIRD is not set
175# CONFIG_PPC_I8259 is not set 189CONFIG_PPC_I8259=y
176# CONFIG_PPC_RTAS is not set 190CONFIG_PPC_RTAS=y
191# CONFIG_RTAS_ERROR_LOGGING is not set
192CONFIG_RTAS_PROC=y
177# CONFIG_MMIO_NVRAM is not set 193# CONFIG_MMIO_NVRAM is not set
178# CONFIG_PPC_MPC106 is not set 194CONFIG_PPC_MPC106=y
179# CONFIG_PPC_970_NAP is not set 195# CONFIG_PPC_970_NAP is not set
180# CONFIG_PPC_INDIRECT_IO is not set 196# CONFIG_PPC_INDIRECT_IO is not set
181# CONFIG_GENERIC_IOMAP is not set 197# CONFIG_GENERIC_IOMAP is not set
182# CONFIG_CPU_FREQ is not set 198# CONFIG_CPU_FREQ is not set
199# CONFIG_PPC601_SYNC_FIX is not set
200# CONFIG_TAU is not set
183# CONFIG_FSL_ULI1575 is not set 201# CONFIG_FSL_ULI1575 is not set
184 202
185# 203#
@@ -195,7 +213,7 @@ CONFIG_HZ_250=y
195# CONFIG_HZ_300 is not set 213# CONFIG_HZ_300 is not set
196# CONFIG_HZ_1000 is not set 214# CONFIG_HZ_1000 is not set
197CONFIG_HZ=250 215CONFIG_HZ=250
198# CONFIG_SCHED_HRTICK is not set 216CONFIG_SCHED_HRTICK=y
199# CONFIG_PREEMPT_NONE is not set 217# CONFIG_PREEMPT_NONE is not set
200# CONFIG_PREEMPT_VOLUNTARY is not set 218# CONFIG_PREEMPT_VOLUNTARY is not set
201CONFIG_PREEMPT=y 219CONFIG_PREEMPT=y
@@ -203,9 +221,11 @@ CONFIG_PREEMPT=y
203CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
204CONFIG_BINFMT_MISC=m 222CONFIG_BINFMT_MISC=m
205# CONFIG_IOMMU_HELPER is not set 223# CONFIG_IOMMU_HELPER is not set
224# CONFIG_HOTPLUG_CPU is not set
206CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 225CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
207CONFIG_ARCH_HAS_WALK_MEMORY=y 226CONFIG_ARCH_HAS_WALK_MEMORY=y
208CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
228# CONFIG_KEXEC is not set
209CONFIG_IRQ_ALL_CPUS=y 229CONFIG_IRQ_ALL_CPUS=y
210CONFIG_ARCH_FLATMEM_ENABLE=y 230CONFIG_ARCH_FLATMEM_ENABLE=y
211CONFIG_ARCH_POPULATES_NODE_MAP=y 231CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -219,6 +239,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
219# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 239# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
220CONFIG_PAGEFLAGS_EXTENDED=y 240CONFIG_PAGEFLAGS_EXTENDED=y
221CONFIG_SPLIT_PTLOCK_CPUS=4 241CONFIG_SPLIT_PTLOCK_CPUS=4
242CONFIG_MIGRATION=y
222# CONFIG_RESOURCES_64BIT is not set 243# CONFIG_RESOURCES_64BIT is not set
223CONFIG_ZONE_DMA_FLAG=1 244CONFIG_ZONE_DMA_FLAG=1
224CONFIG_BOUNCE=y 245CONFIG_BOUNCE=y
@@ -226,6 +247,7 @@ CONFIG_VIRT_TO_BUS=y
226CONFIG_FORCE_MAX_ZONEORDER=11 247CONFIG_FORCE_MAX_ZONEORDER=11
227# CONFIG_PROC_DEVICETREE is not set 248# CONFIG_PROC_DEVICETREE is not set
228# CONFIG_CMDLINE_BOOL is not set 249# CONFIG_CMDLINE_BOOL is not set
250CONFIG_EXTRA_TARGETS=""
229# CONFIG_PM is not set 251# CONFIG_PM is not set
230CONFIG_SECCOMP=y 252CONFIG_SECCOMP=y
231CONFIG_ISA_DMA_API=y 253CONFIG_ISA_DMA_API=y
@@ -233,11 +255,13 @@ CONFIG_ISA_DMA_API=y
233# 255#
234# Bus options 256# Bus options
235# 257#
258# CONFIG_ISA is not set
236CONFIG_ZONE_DMA=y 259CONFIG_ZONE_DMA=y
237CONFIG_GENERIC_ISA_DMA=y 260CONFIG_GENERIC_ISA_DMA=y
238CONFIG_PPC_INDIRECT_PCI=y 261CONFIG_PPC_INDIRECT_PCI=y
239CONFIG_FSL_SOC=y 262CONFIG_FSL_SOC=y
240CONFIG_FSL_PCI=y 263CONFIG_FSL_PCI=y
264CONFIG_PPC_PCI_CHOICE=y
241CONFIG_PCI=y 265CONFIG_PCI=y
242CONFIG_PCI_DOMAINS=y 266CONFIG_PCI_DOMAINS=y
243CONFIG_PCI_SYSCALL=y 267CONFIG_PCI_SYSCALL=y
@@ -265,10 +289,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
265CONFIG_KERNEL_START=0xc0000000 289CONFIG_KERNEL_START=0xc0000000
266CONFIG_PHYSICAL_START=0x00000000 290CONFIG_PHYSICAL_START=0x00000000
267CONFIG_TASK_SIZE=0xc0000000 291CONFIG_TASK_SIZE=0xc0000000
268
269#
270# Networking
271#
272CONFIG_NET=y 292CONFIG_NET=y
273 293
274# 294#
@@ -282,6 +302,7 @@ CONFIG_XFRM_USER=m
282# CONFIG_XFRM_SUB_POLICY is not set 302# CONFIG_XFRM_SUB_POLICY is not set
283# CONFIG_XFRM_MIGRATE is not set 303# CONFIG_XFRM_MIGRATE is not set
284# CONFIG_XFRM_STATISTICS is not set 304# CONFIG_XFRM_STATISTICS is not set
305CONFIG_XFRM_IPCOMP=m
285CONFIG_NET_KEY=m 306CONFIG_NET_KEY=m
286# CONFIG_NET_KEY_MIGRATE is not set 307# CONFIG_NET_KEY_MIGRATE is not set
287CONFIG_INET=y 308CONFIG_INET=y
@@ -406,6 +427,7 @@ CONFIG_IP_NF_MANGLE=m
406CONFIG_IP_NF_TARGET_ECN=m 427CONFIG_IP_NF_TARGET_ECN=m
407# CONFIG_IP_NF_TARGET_TTL is not set 428# CONFIG_IP_NF_TARGET_TTL is not set
408CONFIG_IP_NF_RAW=m 429CONFIG_IP_NF_RAW=m
430# CONFIG_IP_NF_SECURITY is not set
409CONFIG_IP_NF_ARPTABLES=m 431CONFIG_IP_NF_ARPTABLES=m
410CONFIG_IP_NF_ARPFILTER=m 432CONFIG_IP_NF_ARPFILTER=m
411CONFIG_IP_NF_ARP_MANGLE=m 433CONFIG_IP_NF_ARP_MANGLE=m
@@ -429,6 +451,7 @@ CONFIG_IP6_NF_TARGET_LOG=m
429CONFIG_IP6_NF_MANGLE=m 451CONFIG_IP6_NF_MANGLE=m
430# CONFIG_IP6_NF_TARGET_HL is not set 452# CONFIG_IP6_NF_TARGET_HL is not set
431CONFIG_IP6_NF_RAW=m 453CONFIG_IP6_NF_RAW=m
454# CONFIG_IP6_NF_SECURITY is not set
432 455
433# 456#
434# Bridge: Netfilter Configuration 457# Bridge: Netfilter Configuration
@@ -451,8 +474,10 @@ CONFIG_ATM_LANE=m
451CONFIG_ATM_MPOA=m 474CONFIG_ATM_MPOA=m
452CONFIG_ATM_BR2684=m 475CONFIG_ATM_BR2684=m
453# CONFIG_ATM_BR2684_IPFILTER is not set 476# CONFIG_ATM_BR2684_IPFILTER is not set
477CONFIG_STP=m
454CONFIG_BRIDGE=m 478CONFIG_BRIDGE=m
455CONFIG_VLAN_8021Q=m 479CONFIG_VLAN_8021Q=m
480# CONFIG_VLAN_8021Q_GVRP is not set
456# CONFIG_DECNET is not set 481# CONFIG_DECNET is not set
457CONFIG_LLC=m 482CONFIG_LLC=m
458# CONFIG_LLC2 is not set 483# CONFIG_LLC2 is not set
@@ -472,7 +497,6 @@ CONFIG_NET_SCH_HTB=m
472CONFIG_NET_SCH_HFSC=m 497CONFIG_NET_SCH_HFSC=m
473CONFIG_NET_SCH_ATM=m 498CONFIG_NET_SCH_ATM=m
474CONFIG_NET_SCH_PRIO=m 499CONFIG_NET_SCH_PRIO=m
475# CONFIG_NET_SCH_RR is not set
476CONFIG_NET_SCH_RED=m 500CONFIG_NET_SCH_RED=m
477CONFIG_NET_SCH_SFQ=m 501CONFIG_NET_SCH_SFQ=m
478CONFIG_NET_SCH_TEQL=m 502CONFIG_NET_SCH_TEQL=m
@@ -625,6 +649,7 @@ CONFIG_OF_I2C=y
625# CONFIG_PARPORT is not set 649# CONFIG_PARPORT is not set
626CONFIG_BLK_DEV=y 650CONFIG_BLK_DEV=y
627# CONFIG_BLK_DEV_FD is not set 651# CONFIG_BLK_DEV_FD is not set
652# CONFIG_MAC_FLOPPY is not set
628# CONFIG_BLK_CPQ_DA is not set 653# CONFIG_BLK_CPQ_DA is not set
629# CONFIG_BLK_CPQ_CISS_DA is not set 654# CONFIG_BLK_CPQ_CISS_DA is not set
630# CONFIG_BLK_DEV_DAC960 is not set 655# CONFIG_BLK_DEV_DAC960 is not set
@@ -640,12 +665,14 @@ CONFIG_BLK_DEV_RAM_SIZE=4096
640# CONFIG_BLK_DEV_XIP is not set 665# CONFIG_BLK_DEV_XIP is not set
641# CONFIG_CDROM_PKTCDVD is not set 666# CONFIG_CDROM_PKTCDVD is not set
642# CONFIG_ATA_OVER_ETH is not set 667# CONFIG_ATA_OVER_ETH is not set
668# CONFIG_BLK_DEV_HD is not set
643CONFIG_MISC_DEVICES=y 669CONFIG_MISC_DEVICES=y
644# CONFIG_PHANTOM is not set 670# CONFIG_PHANTOM is not set
645# CONFIG_EEPROM_93CX6 is not set 671# CONFIG_EEPROM_93CX6 is not set
646# CONFIG_SGI_IOC4 is not set 672# CONFIG_SGI_IOC4 is not set
647# CONFIG_TIFM_CORE is not set 673# CONFIG_TIFM_CORE is not set
648# CONFIG_ENCLOSURE_SERVICES is not set 674# CONFIG_ENCLOSURE_SERVICES is not set
675# CONFIG_HP_ILO is not set
649CONFIG_HAVE_IDE=y 676CONFIG_HAVE_IDE=y
650# CONFIG_IDE is not set 677# CONFIG_IDE is not set
651 678
@@ -680,12 +707,15 @@ CONFIG_DM_ZERO=y
680# 707#
681# IEEE 1394 (FireWire) support 708# IEEE 1394 (FireWire) support
682# 709#
710
711#
712# Enable only one of the two stacks, unless you know what you are doing
713#
683# CONFIG_FIREWIRE is not set 714# CONFIG_FIREWIRE is not set
684# CONFIG_IEEE1394 is not set 715# CONFIG_IEEE1394 is not set
685# CONFIG_I2O is not set 716# CONFIG_I2O is not set
686# CONFIG_MACINTOSH_DRIVERS is not set 717# CONFIG_MACINTOSH_DRIVERS is not set
687CONFIG_NETDEVICES=y 718CONFIG_NETDEVICES=y
688# CONFIG_NETDEVICES_MULTIQUEUE is not set
689CONFIG_DUMMY=m 719CONFIG_DUMMY=m
690CONFIG_BONDING=m 720CONFIG_BONDING=m
691# CONFIG_MACVLAN is not set 721# CONFIG_MACVLAN is not set
@@ -712,6 +742,8 @@ CONFIG_BROADCOM_PHY=y
712# CONFIG_MDIO_BITBANG is not set 742# CONFIG_MDIO_BITBANG is not set
713CONFIG_NET_ETHERNET=y 743CONFIG_NET_ETHERNET=y
714CONFIG_MII=y 744CONFIG_MII=y
745# CONFIG_MACE is not set
746# CONFIG_BMAC is not set
715# CONFIG_HAPPYMEAL is not set 747# CONFIG_HAPPYMEAL is not set
716# CONFIG_SUNGEM is not set 748# CONFIG_SUNGEM is not set
717# CONFIG_CASSINI is not set 749# CONFIG_CASSINI is not set
@@ -729,7 +761,6 @@ CONFIG_NETDEV_1000=y
729# CONFIG_DL2K is not set 761# CONFIG_DL2K is not set
730# CONFIG_E1000 is not set 762# CONFIG_E1000 is not set
731# CONFIG_E1000E is not set 763# CONFIG_E1000E is not set
732# CONFIG_E1000E_ENABLED is not set
733# CONFIG_IP1000 is not set 764# CONFIG_IP1000 is not set
734# CONFIG_IGB is not set 765# CONFIG_IGB is not set
735# CONFIG_NS83820 is not set 766# CONFIG_NS83820 is not set
@@ -743,9 +774,10 @@ CONFIG_NETDEV_1000=y
743# CONFIG_TIGON3 is not set 774# CONFIG_TIGON3 is not set
744# CONFIG_BNX2 is not set 775# CONFIG_BNX2 is not set
745CONFIG_GIANFAR=y 776CONFIG_GIANFAR=y
746# CONFIG_GFAR_NAPI is not set 777# CONFIG_MV643XX_ETH is not set
747# CONFIG_QLA3XXX is not set 778# CONFIG_QLA3XXX is not set
748# CONFIG_ATL1 is not set 779# CONFIG_ATL1 is not set
780# CONFIG_ATL1E is not set
749# CONFIG_NETDEV_10000 is not set 781# CONFIG_NETDEV_10000 is not set
750# CONFIG_TR is not set 782# CONFIG_TR is not set
751 783
@@ -768,7 +800,7 @@ CONFIG_ATM_DRIVERS=y
768# CONFIG_ATM_AMBASSADOR is not set 800# CONFIG_ATM_AMBASSADOR is not set
769# CONFIG_ATM_HORIZON is not set 801# CONFIG_ATM_HORIZON is not set
770# CONFIG_ATM_IA is not set 802# CONFIG_ATM_IA is not set
771# CONFIG_ATM_FORE200E_MAYBE is not set 803# CONFIG_ATM_FORE200E is not set
772# CONFIG_ATM_HE is not set 804# CONFIG_ATM_HE is not set
773# CONFIG_FDDI is not set 805# CONFIG_FDDI is not set
774# CONFIG_HIPPI is not set 806# CONFIG_HIPPI is not set
@@ -834,6 +866,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
834# Character devices 866# Character devices
835# 867#
836CONFIG_VT=y 868CONFIG_VT=y
869CONFIG_CONSOLE_TRANSLATIONS=y
837CONFIG_VT_CONSOLE=y 870CONFIG_VT_CONSOLE=y
838CONFIG_HW_CONSOLE=y 871CONFIG_HW_CONSOLE=y
839# CONFIG_VT_HW_CONSOLE_BINDING is not set 872# CONFIG_VT_HW_CONSOLE_BINDING is not set
@@ -857,11 +890,14 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=2
857# CONFIG_SERIAL_UARTLITE is not set 890# CONFIG_SERIAL_UARTLITE is not set
858CONFIG_SERIAL_CORE=y 891CONFIG_SERIAL_CORE=y
859CONFIG_SERIAL_CORE_CONSOLE=y 892CONFIG_SERIAL_CORE_CONSOLE=y
893# CONFIG_SERIAL_PMACZILOG is not set
860# CONFIG_SERIAL_JSM is not set 894# CONFIG_SERIAL_JSM is not set
861# CONFIG_SERIAL_OF_PLATFORM is not set 895# CONFIG_SERIAL_OF_PLATFORM is not set
862CONFIG_UNIX98_PTYS=y 896CONFIG_UNIX98_PTYS=y
863CONFIG_LEGACY_PTYS=y 897CONFIG_LEGACY_PTYS=y
864CONFIG_LEGACY_PTY_COUNT=256 898CONFIG_LEGACY_PTY_COUNT=256
899# CONFIG_BRIQ_PANEL is not set
900# CONFIG_HVC_RTAS is not set
865# CONFIG_IPMI_HANDLER is not set 901# CONFIG_IPMI_HANDLER is not set
866CONFIG_HW_RANDOM=m 902CONFIG_HW_RANDOM=m
867# CONFIG_NVRAM is not set 903# CONFIG_NVRAM is not set
@@ -874,42 +910,69 @@ CONFIG_DEVPORT=y
874CONFIG_I2C=y 910CONFIG_I2C=y
875CONFIG_I2C_BOARDINFO=y 911CONFIG_I2C_BOARDINFO=y
876CONFIG_I2C_CHARDEV=y 912CONFIG_I2C_CHARDEV=y
913CONFIG_I2C_HELPER_AUTO=y
877 914
878# 915#
879# I2C Hardware Bus support 916# I2C Hardware Bus support
880# 917#
918
919#
920# PC SMBus host controller drivers
921#
881# CONFIG_I2C_ALI1535 is not set 922# CONFIG_I2C_ALI1535 is not set
882# CONFIG_I2C_ALI1563 is not set 923# CONFIG_I2C_ALI1563 is not set
883# CONFIG_I2C_ALI15X3 is not set 924# CONFIG_I2C_ALI15X3 is not set
884# CONFIG_I2C_AMD756 is not set 925# CONFIG_I2C_AMD756 is not set
885# CONFIG_I2C_AMD8111 is not set 926# CONFIG_I2C_AMD8111 is not set
886# CONFIG_I2C_I801 is not set 927# CONFIG_I2C_I801 is not set
887# CONFIG_I2C_I810 is not set 928# CONFIG_I2C_ISCH is not set
888# CONFIG_I2C_PIIX4 is not set 929# CONFIG_I2C_PIIX4 is not set
889CONFIG_I2C_MPC=y
890# CONFIG_I2C_NFORCE2 is not set 930# CONFIG_I2C_NFORCE2 is not set
891# CONFIG_I2C_OCORES is not set
892# CONFIG_I2C_PARPORT_LIGHT is not set
893# CONFIG_I2C_PROSAVAGE is not set
894# CONFIG_I2C_SAVAGE4 is not set
895# CONFIG_I2C_SIMTEC is not set
896# CONFIG_I2C_SIS5595 is not set 931# CONFIG_I2C_SIS5595 is not set
897# CONFIG_I2C_SIS630 is not set 932# CONFIG_I2C_SIS630 is not set
898# CONFIG_I2C_SIS96X is not set 933# CONFIG_I2C_SIS96X is not set
899# CONFIG_I2C_TAOS_EVM is not set
900# CONFIG_I2C_STUB is not set
901# CONFIG_I2C_VIA is not set 934# CONFIG_I2C_VIA is not set
902# CONFIG_I2C_VIAPRO is not set 935# CONFIG_I2C_VIAPRO is not set
936
937#
938# Mac SMBus host controller drivers
939#
940# CONFIG_I2C_HYDRA is not set
941CONFIG_I2C_POWERMAC=y
942
943#
944# I2C system bus drivers (mostly embedded / system-on-chip)
945#
946CONFIG_I2C_MPC=y
947# CONFIG_I2C_OCORES is not set
948# CONFIG_I2C_SIMTEC is not set
949
950#
951# External I2C/SMBus adapter drivers
952#
953# CONFIG_I2C_PARPORT_LIGHT is not set
954# CONFIG_I2C_TAOS_EVM is not set
955
956#
957# Graphics adapter I2C/DDC channel drivers
958#
903# CONFIG_I2C_VOODOO3 is not set 959# CONFIG_I2C_VOODOO3 is not set
960
961#
962# Other I2C/SMBus bus drivers
963#
904# CONFIG_I2C_PCA_PLATFORM is not set 964# CONFIG_I2C_PCA_PLATFORM is not set
965# CONFIG_I2C_STUB is not set
905 966
906# 967#
907# Miscellaneous I2C Chip support 968# Miscellaneous I2C Chip support
908# 969#
909# CONFIG_DS1682 is not set 970# CONFIG_DS1682 is not set
971# CONFIG_AT24 is not set
910# CONFIG_SENSORS_EEPROM is not set 972# CONFIG_SENSORS_EEPROM is not set
911# CONFIG_SENSORS_PCF8574 is not set 973# CONFIG_SENSORS_PCF8574 is not set
912# CONFIG_PCF8575 is not set 974# CONFIG_PCF8575 is not set
975# CONFIG_SENSORS_PCA9539 is not set
913# CONFIG_SENSORS_PCF8591 is not set 976# CONFIG_SENSORS_PCF8591 is not set
914# CONFIG_SENSORS_MAX6875 is not set 977# CONFIG_SENSORS_MAX6875 is not set
915# CONFIG_SENSORS_TSL2550 is not set 978# CONFIG_SENSORS_TSL2550 is not set
@@ -918,10 +981,13 @@ CONFIG_I2C_MPC=y
918# CONFIG_I2C_DEBUG_BUS is not set 981# CONFIG_I2C_DEBUG_BUS is not set
919# CONFIG_I2C_DEBUG_CHIP is not set 982# CONFIG_I2C_DEBUG_CHIP is not set
920# CONFIG_SPI is not set 983# CONFIG_SPI is not set
984CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
985# CONFIG_GPIOLIB is not set
921# CONFIG_W1 is not set 986# CONFIG_W1 is not set
922# CONFIG_POWER_SUPPLY is not set 987# CONFIG_POWER_SUPPLY is not set
923CONFIG_HWMON=y 988CONFIG_HWMON=y
924# CONFIG_HWMON_VID is not set 989# CONFIG_HWMON_VID is not set
990# CONFIG_SENSORS_AD7414 is not set
925# CONFIG_SENSORS_AD7418 is not set 991# CONFIG_SENSORS_AD7418 is not set
926# CONFIG_SENSORS_ADM1021 is not set 992# CONFIG_SENSORS_ADM1021 is not set
927# CONFIG_SENSORS_ADM1025 is not set 993# CONFIG_SENSORS_ADM1025 is not set
@@ -931,6 +997,7 @@ CONFIG_HWMON=y
931# CONFIG_SENSORS_ADM9240 is not set 997# CONFIG_SENSORS_ADM9240 is not set
932# CONFIG_SENSORS_ADT7470 is not set 998# CONFIG_SENSORS_ADT7470 is not set
933# CONFIG_SENSORS_ADT7473 is not set 999# CONFIG_SENSORS_ADT7473 is not set
1000# CONFIG_SENSORS_AMS is not set
934# CONFIG_SENSORS_ATXP1 is not set 1001# CONFIG_SENSORS_ATXP1 is not set
935# CONFIG_SENSORS_DS1621 is not set 1002# CONFIG_SENSORS_DS1621 is not set
936# CONFIG_SENSORS_I5K_AMB is not set 1003# CONFIG_SENSORS_I5K_AMB is not set
@@ -975,6 +1042,7 @@ CONFIG_HWMON=y
975# CONFIG_SENSORS_W83627EHF is not set 1042# CONFIG_SENSORS_W83627EHF is not set
976# CONFIG_HWMON_DEBUG_CHIP is not set 1043# CONFIG_HWMON_DEBUG_CHIP is not set
977# CONFIG_THERMAL is not set 1044# CONFIG_THERMAL is not set
1045# CONFIG_THERMAL_HWMON is not set
978CONFIG_WATCHDOG=y 1046CONFIG_WATCHDOG=y
979# CONFIG_WATCHDOG_NOWAYOUT is not set 1047# CONFIG_WATCHDOG_NOWAYOUT is not set
980 1048
@@ -982,6 +1050,9 @@ CONFIG_WATCHDOG=y
982# Watchdog Device Drivers 1050# Watchdog Device Drivers
983# 1051#
984CONFIG_SOFT_WATCHDOG=m 1052CONFIG_SOFT_WATCHDOG=m
1053# CONFIG_ALIM7101_WDT is not set
1054# CONFIG_8xxx_WDT is not set
1055# CONFIG_WATCHDOG_RTAS is not set
985 1056
986# 1057#
987# PCI-based Watchdog Cards 1058# PCI-based Watchdog Cards
@@ -998,8 +1069,10 @@ CONFIG_SSB_POSSIBLE=y
998# 1069#
999# Multifunction device drivers 1070# Multifunction device drivers
1000# 1071#
1072# CONFIG_MFD_CORE is not set
1001# CONFIG_MFD_SM501 is not set 1073# CONFIG_MFD_SM501 is not set
1002# CONFIG_HTC_PASIC3 is not set 1074# CONFIG_HTC_PASIC3 is not set
1075# CONFIG_MFD_TMIO is not set
1003 1076
1004# 1077#
1005# Multimedia devices 1078# Multimedia devices
@@ -1038,10 +1111,6 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m
1038CONFIG_VGA_CONSOLE=y 1111CONFIG_VGA_CONSOLE=y
1039# CONFIG_VGACON_SOFT_SCROLLBACK is not set 1112# CONFIG_VGACON_SOFT_SCROLLBACK is not set
1040CONFIG_DUMMY_CONSOLE=y 1113CONFIG_DUMMY_CONSOLE=y
1041
1042#
1043# Sound
1044#
1045# CONFIG_SOUND is not set 1114# CONFIG_SOUND is not set
1046CONFIG_HID_SUPPORT=y 1115CONFIG_HID_SUPPORT=y
1047CONFIG_HID=y 1116CONFIG_HID=y
@@ -1056,6 +1125,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1056# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1125# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1057 1126
1058# 1127#
1128# Enable Host or Gadget support to see Inventra options
1129#
1130
1131#
1059# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1132# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1060# 1133#
1061# CONFIG_USB_GADGET is not set 1134# CONFIG_USB_GADGET is not set
@@ -1096,6 +1169,7 @@ CONFIG_FS_POSIX_ACL=y
1096# CONFIG_XFS_FS is not set 1169# CONFIG_XFS_FS is not set
1097CONFIG_OCFS2_FS=m 1170CONFIG_OCFS2_FS=m
1098CONFIG_OCFS2_FS_O2CB=m 1171CONFIG_OCFS2_FS_O2CB=m
1172CONFIG_OCFS2_FS_STATS=y
1099CONFIG_OCFS2_DEBUG_MASKLOG=y 1173CONFIG_OCFS2_DEBUG_MASKLOG=y
1100# CONFIG_OCFS2_DEBUG_FS is not set 1174# CONFIG_OCFS2_DEBUG_FS is not set
1101CONFIG_DNOTIFY=y 1175CONFIG_DNOTIFY=y
@@ -1145,6 +1219,7 @@ CONFIG_CONFIGFS_FS=m
1145# CONFIG_CRAMFS is not set 1219# CONFIG_CRAMFS is not set
1146# CONFIG_VXFS_FS is not set 1220# CONFIG_VXFS_FS is not set
1147CONFIG_MINIX_FS=m 1221CONFIG_MINIX_FS=m
1222# CONFIG_OMFS_FS is not set
1148# CONFIG_HPFS_FS is not set 1223# CONFIG_HPFS_FS is not set
1149# CONFIG_QNX4FS_FS is not set 1224# CONFIG_QNX4FS_FS is not set
1150CONFIG_ROMFS_FS=m 1225CONFIG_ROMFS_FS=m
@@ -1155,14 +1230,13 @@ CONFIG_NFS_FS=y
1155CONFIG_NFS_V3=y 1230CONFIG_NFS_V3=y
1156# CONFIG_NFS_V3_ACL is not set 1231# CONFIG_NFS_V3_ACL is not set
1157CONFIG_NFS_V4=y 1232CONFIG_NFS_V4=y
1158# CONFIG_NFSD is not set
1159CONFIG_ROOT_NFS=y 1233CONFIG_ROOT_NFS=y
1234# CONFIG_NFSD is not set
1160CONFIG_LOCKD=y 1235CONFIG_LOCKD=y
1161CONFIG_LOCKD_V4=y 1236CONFIG_LOCKD_V4=y
1162CONFIG_NFS_COMMON=y 1237CONFIG_NFS_COMMON=y
1163CONFIG_SUNRPC=y 1238CONFIG_SUNRPC=y
1164CONFIG_SUNRPC_GSS=y 1239CONFIG_SUNRPC_GSS=y
1165# CONFIG_SUNRPC_BIND34 is not set
1166CONFIG_RPCSEC_GSS_KRB5=y 1240CONFIG_RPCSEC_GSS_KRB5=y
1167# CONFIG_RPCSEC_GSS_SPKM3 is not set 1241# CONFIG_RPCSEC_GSS_SPKM3 is not set
1168CONFIG_SMB_FS=m 1242CONFIG_SMB_FS=m
@@ -1183,6 +1257,7 @@ CONFIG_CIFS_POSIX=y
1183# Partition Types 1257# Partition Types
1184# 1258#
1185# CONFIG_PARTITION_ADVANCED is not set 1259# CONFIG_PARTITION_ADVANCED is not set
1260CONFIG_MAC_PARTITION=y
1186CONFIG_MSDOS_PARTITION=y 1261CONFIG_MSDOS_PARTITION=y
1187CONFIG_NLS=m 1262CONFIG_NLS=m
1188CONFIG_NLS_DEFAULT="iso8859-1" 1263CONFIG_NLS_DEFAULT="iso8859-1"
@@ -1233,6 +1308,7 @@ CONFIG_BITREVERSE=y
1233# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1308# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1234CONFIG_CRC_CCITT=m 1309CONFIG_CRC_CCITT=m
1235# CONFIG_CRC16 is not set 1310# CONFIG_CRC16 is not set
1311# CONFIG_CRC_T10DIF is not set
1236# CONFIG_CRC_ITU_T is not set 1312# CONFIG_CRC_ITU_T is not set
1237CONFIG_CRC32=y 1313CONFIG_CRC32=y
1238# CONFIG_CRC7 is not set 1314# CONFIG_CRC7 is not set
@@ -1259,6 +1335,8 @@ CONFIG_DEBUG_FS=y
1259CONFIG_DEBUG_KERNEL=y 1335CONFIG_DEBUG_KERNEL=y
1260# CONFIG_DEBUG_SHIRQ is not set 1336# CONFIG_DEBUG_SHIRQ is not set
1261CONFIG_DETECT_SOFTLOCKUP=y 1337CONFIG_DETECT_SOFTLOCKUP=y
1338# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1339CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1262CONFIG_SCHED_DEBUG=y 1340CONFIG_SCHED_DEBUG=y
1263# CONFIG_SCHEDSTATS is not set 1341# CONFIG_SCHEDSTATS is not set
1264# CONFIG_TIMER_STATS is not set 1342# CONFIG_TIMER_STATS is not set
@@ -1275,21 +1353,34 @@ CONFIG_SCHED_DEBUG=y
1275CONFIG_DEBUG_INFO=y 1353CONFIG_DEBUG_INFO=y
1276# CONFIG_DEBUG_VM is not set 1354# CONFIG_DEBUG_VM is not set
1277# CONFIG_DEBUG_WRITECOUNT is not set 1355# CONFIG_DEBUG_WRITECOUNT is not set
1356# CONFIG_DEBUG_MEMORY_INIT is not set
1278# CONFIG_DEBUG_LIST is not set 1357# CONFIG_DEBUG_LIST is not set
1279# CONFIG_DEBUG_SG is not set 1358# CONFIG_DEBUG_SG is not set
1280# CONFIG_BOOT_PRINTK_DELAY is not set 1359# CONFIG_BOOT_PRINTK_DELAY is not set
1281# CONFIG_RCU_TORTURE_TEST is not set 1360# CONFIG_RCU_TORTURE_TEST is not set
1282# CONFIG_BACKTRACE_SELF_TEST is not set 1361# CONFIG_BACKTRACE_SELF_TEST is not set
1283# CONFIG_FAULT_INJECTION is not set 1362# CONFIG_FAULT_INJECTION is not set
1363# CONFIG_LATENCYTOP is not set
1364CONFIG_SYSCTL_SYSCALL_CHECK=y
1365CONFIG_HAVE_FTRACE=y
1366CONFIG_HAVE_DYNAMIC_FTRACE=y
1367# CONFIG_FTRACE is not set
1368# CONFIG_PREEMPT_TRACER is not set
1369# CONFIG_SCHED_TRACER is not set
1370# CONFIG_CONTEXT_SWITCH_TRACER is not set
1284# CONFIG_SAMPLES is not set 1371# CONFIG_SAMPLES is not set
1372CONFIG_HAVE_ARCH_KGDB=y
1373# CONFIG_KGDB is not set
1285# CONFIG_DEBUG_STACKOVERFLOW is not set 1374# CONFIG_DEBUG_STACKOVERFLOW is not set
1286# CONFIG_DEBUG_STACK_USAGE is not set 1375# CONFIG_DEBUG_STACK_USAGE is not set
1287# CONFIG_DEBUG_PAGEALLOC is not set 1376# CONFIG_DEBUG_PAGEALLOC is not set
1288CONFIG_DEBUGGER=y 1377# CONFIG_CODE_PATCHING_SELFTEST is not set
1378# CONFIG_FTR_FIXUP_SELFTEST is not set
1289# CONFIG_XMON is not set 1379# CONFIG_XMON is not set
1290# CONFIG_IRQSTACKS is not set 1380# CONFIG_IRQSTACKS is not set
1291# CONFIG_VIRQ_DEBUG is not set 1381# CONFIG_VIRQ_DEBUG is not set
1292# CONFIG_BDI_SWITCH is not set 1382# CONFIG_BDI_SWITCH is not set
1383# CONFIG_BOOTX_TEXT is not set
1293# CONFIG_PPC_EARLY_DEBUG is not set 1384# CONFIG_PPC_EARLY_DEBUG is not set
1294 1385
1295# 1386#
@@ -1299,7 +1390,6 @@ CONFIG_DEBUGGER=y
1299CONFIG_SECURITY=y 1390CONFIG_SECURITY=y
1300CONFIG_SECURITY_NETWORK=y 1391CONFIG_SECURITY_NETWORK=y
1301# CONFIG_SECURITY_NETWORK_XFRM is not set 1392# CONFIG_SECURITY_NETWORK_XFRM is not set
1302CONFIG_SECURITY_CAPABILITIES=y
1303# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1393# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1304CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0 1394CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=0
1305CONFIG_CRYPTO=y 1395CONFIG_CRYPTO=y
@@ -1349,6 +1439,10 @@ CONFIG_CRYPTO_CRC32C=m
1349CONFIG_CRYPTO_MD4=m 1439CONFIG_CRYPTO_MD4=m
1350CONFIG_CRYPTO_MD5=y 1440CONFIG_CRYPTO_MD5=y
1351CONFIG_CRYPTO_MICHAEL_MIC=m 1441CONFIG_CRYPTO_MICHAEL_MIC=m
1442# CONFIG_CRYPTO_RMD128 is not set
1443# CONFIG_CRYPTO_RMD160 is not set
1444# CONFIG_CRYPTO_RMD256 is not set
1445# CONFIG_CRYPTO_RMD320 is not set
1352CONFIG_CRYPTO_SHA1=m 1446CONFIG_CRYPTO_SHA1=m
1353CONFIG_CRYPTO_SHA256=m 1447CONFIG_CRYPTO_SHA256=m
1354CONFIG_CRYPTO_SHA512=m 1448CONFIG_CRYPTO_SHA512=m
@@ -1382,5 +1476,6 @@ CONFIG_CRYPTO_DEFLATE=m
1382# CONFIG_CRYPTO_LZO is not set 1476# CONFIG_CRYPTO_LZO is not set
1383CONFIG_CRYPTO_HW=y 1477CONFIG_CRYPTO_HW=y
1384# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1478# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1479# CONFIG_CRYPTO_DEV_TALITOS is not set
1385# CONFIG_PPC_CLOCK is not set 1480# CONFIG_PPC_CLOCK is not set
1386# CONFIG_VIRTUALIZATION is not set 1481# CONFIG_VIRTUALIZATION is not set
diff --git a/arch/powerpc/configs/storcenter_defconfig b/arch/powerpc/configs/storcenter_defconfig
index 88f6aa8273be..4340cc1c5b6a 100644
--- a/arch/powerpc/configs/storcenter_defconfig
+++ b/arch/powerpc/configs/storcenter_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.26-rc5 3# Linux kernel version: 2.6.27-rc4
4# Mon Jun 9 08:52:20 2008 4# Thu Aug 21 00:52:16 2008
5# 5#
6# CONFIG_PPC64 is not set 6# CONFIG_PPC64 is not set
7 7
@@ -32,6 +32,7 @@ CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set 32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
34CONFIG_STACKTRACE_SUPPORT=y 34CONFIG_STACKTRACE_SUPPORT=y
35CONFIG_HAVE_LATENCYTOP_SUPPORT=y
35CONFIG_LOCKDEP_SUPPORT=y 36CONFIG_LOCKDEP_SUPPORT=y
36CONFIG_RWSEM_XCHGADD_ALGORITHM=y 37CONFIG_RWSEM_XCHGADD_ALGORITHM=y
37CONFIG_ARCH_HAS_ILOG2_U32=y 38CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -87,7 +88,6 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
87CONFIG_SYSCTL=y 88CONFIG_SYSCTL=y
88CONFIG_EMBEDDED=y 89CONFIG_EMBEDDED=y
89CONFIG_SYSCTL_SYSCALL=y 90CONFIG_SYSCTL_SYSCALL=y
90CONFIG_SYSCTL_SYSCALL_CHECK=y
91# CONFIG_KALLSYMS is not set 91# CONFIG_KALLSYMS is not set
92CONFIG_HOTPLUG=y 92CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 93CONFIG_PRINTK=y
@@ -110,10 +110,16 @@ CONFIG_SLUB=y
110# CONFIG_PROFILING is not set 110# CONFIG_PROFILING is not set
111# CONFIG_MARKERS is not set 111# CONFIG_MARKERS is not set
112CONFIG_HAVE_OPROFILE=y 112CONFIG_HAVE_OPROFILE=y
113CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
114CONFIG_HAVE_IOREMAP_PROT=y
113CONFIG_HAVE_KPROBES=y 115CONFIG_HAVE_KPROBES=y
114CONFIG_HAVE_KRETPROBES=y 116CONFIG_HAVE_KRETPROBES=y
117CONFIG_HAVE_ARCH_TRACEHOOK=y
115# CONFIG_HAVE_DMA_ATTRS is not set 118# CONFIG_HAVE_DMA_ATTRS is not set
119# CONFIG_USE_GENERIC_SMP_HELPERS is not set
120# CONFIG_HAVE_CLK is not set
116CONFIG_PROC_PAGE_MONITOR=y 121CONFIG_PROC_PAGE_MONITOR=y
122# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
117CONFIG_SLABINFO=y 123CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
@@ -130,6 +136,7 @@ CONFIG_LBD=y
130# CONFIG_BLK_DEV_IO_TRACE is not set 136# CONFIG_BLK_DEV_IO_TRACE is not set
131# CONFIG_LSF is not set 137# CONFIG_LSF is not set
132# CONFIG_BLK_DEV_BSG is not set 138# CONFIG_BLK_DEV_BSG is not set
139# CONFIG_BLK_DEV_INTEGRITY is not set
133 140
134# 141#
135# IO Schedulers 142# IO Schedulers
@@ -149,25 +156,25 @@ CONFIG_CLASSIC_RCU=y
149# Platform support 156# Platform support
150# 157#
151CONFIG_PPC_MULTIPLATFORM=y 158CONFIG_PPC_MULTIPLATFORM=y
152# CONFIG_PPC_82xx is not set
153# CONFIG_PPC_83xx is not set
154# CONFIG_PPC_86xx is not set
155CONFIG_CLASSIC32=y 159CONFIG_CLASSIC32=y
156# CONFIG_PPC_CHRP is not set 160# CONFIG_PPC_CHRP is not set
157# CONFIG_PPC_MPC512x is not set
158# CONFIG_PPC_MPC5121 is not set
159# CONFIG_MPC5121_ADS is not set 161# CONFIG_MPC5121_ADS is not set
162# CONFIG_MPC5121_GENERIC is not set
160# CONFIG_PPC_MPC52xx is not set 163# CONFIG_PPC_MPC52xx is not set
161# CONFIG_PPC_PMAC is not set 164# CONFIG_PPC_PMAC is not set
162# CONFIG_PPC_CELL is not set 165# CONFIG_PPC_CELL is not set
163# CONFIG_PPC_CELL_NATIVE is not set 166# CONFIG_PPC_CELL_NATIVE is not set
167# CONFIG_PPC_82xx is not set
164# CONFIG_PQ2ADS is not set 168# CONFIG_PQ2ADS is not set
169# CONFIG_PPC_83xx is not set
170# CONFIG_PPC_86xx is not set
165CONFIG_EMBEDDED6xx=y 171CONFIG_EMBEDDED6xx=y
166# CONFIG_LINKSTATION is not set 172# CONFIG_LINKSTATION is not set
167CONFIG_STORCENTER=y 173CONFIG_STORCENTER=y
168# CONFIG_MPC7448HPC2 is not set 174# CONFIG_MPC7448HPC2 is not set
169# CONFIG_PPC_HOLLY is not set 175# CONFIG_PPC_HOLLY is not set
170# CONFIG_PPC_PRPMC2800 is not set 176# CONFIG_PPC_PRPMC2800 is not set
177# CONFIG_PPC_C2K is not set
171CONFIG_MPC10X_BRIDGE=y 178CONFIG_MPC10X_BRIDGE=y
172CONFIG_MPC10X_OPENPIC=y 179CONFIG_MPC10X_OPENPIC=y
173# CONFIG_MPC10X_STORE_GATHERING is not set 180# CONFIG_MPC10X_STORE_GATHERING is not set
@@ -221,6 +228,7 @@ CONFIG_FLAT_NODE_MEM_MAP=y
221# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 228# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
222CONFIG_PAGEFLAGS_EXTENDED=y 229CONFIG_PAGEFLAGS_EXTENDED=y
223CONFIG_SPLIT_PTLOCK_CPUS=4 230CONFIG_SPLIT_PTLOCK_CPUS=4
231CONFIG_MIGRATION=y
224# CONFIG_RESOURCES_64BIT is not set 232# CONFIG_RESOURCES_64BIT is not set
225CONFIG_ZONE_DMA_FLAG=1 233CONFIG_ZONE_DMA_FLAG=1
226CONFIG_BOUNCE=y 234CONFIG_BOUNCE=y
@@ -229,6 +237,7 @@ CONFIG_FORCE_MAX_ZONEORDER=11
229CONFIG_PROC_DEVICETREE=y 237CONFIG_PROC_DEVICETREE=y
230CONFIG_CMDLINE_BOOL=y 238CONFIG_CMDLINE_BOOL=y
231CONFIG_CMDLINE="console=ttyS0,115200" 239CONFIG_CMDLINE="console=ttyS0,115200"
240CONFIG_EXTRA_TARGETS=""
232# CONFIG_PM is not set 241# CONFIG_PM is not set
233# CONFIG_SECCOMP is not set 242# CONFIG_SECCOMP is not set
234CONFIG_ISA_DMA_API=y 243CONFIG_ISA_DMA_API=y
@@ -264,10 +273,6 @@ CONFIG_PAGE_OFFSET=0xc0000000
264CONFIG_KERNEL_START=0xc0000000 273CONFIG_KERNEL_START=0xc0000000
265CONFIG_PHYSICAL_START=0x00000000 274CONFIG_PHYSICAL_START=0x00000000
266CONFIG_TASK_SIZE=0xc0000000 275CONFIG_TASK_SIZE=0xc0000000
267
268#
269# Networking
270#
271CONFIG_NET=y 276CONFIG_NET=y
272 277
273# 278#
@@ -456,20 +461,22 @@ CONFIG_BLK_DEV=y
456# CONFIG_BLK_DEV_RAM is not set 461# CONFIG_BLK_DEV_RAM is not set
457# CONFIG_CDROM_PKTCDVD is not set 462# CONFIG_CDROM_PKTCDVD is not set
458# CONFIG_ATA_OVER_ETH is not set 463# CONFIG_ATA_OVER_ETH is not set
464# CONFIG_BLK_DEV_HD is not set
459CONFIG_MISC_DEVICES=y 465CONFIG_MISC_DEVICES=y
460# CONFIG_PHANTOM is not set 466# CONFIG_PHANTOM is not set
461# CONFIG_EEPROM_93CX6 is not set 467# CONFIG_EEPROM_93CX6 is not set
462# CONFIG_SGI_IOC4 is not set 468# CONFIG_SGI_IOC4 is not set
463# CONFIG_TIFM_CORE is not set 469# CONFIG_TIFM_CORE is not set
464# CONFIG_ENCLOSURE_SERVICES is not set 470# CONFIG_ENCLOSURE_SERVICES is not set
471# CONFIG_HP_ILO is not set
465CONFIG_HAVE_IDE=y 472CONFIG_HAVE_IDE=y
466CONFIG_IDE=y 473CONFIG_IDE=y
467CONFIG_IDE_MAX_HWIFS=4
468CONFIG_BLK_DEV_IDE=y 474CONFIG_BLK_DEV_IDE=y
469 475
470# 476#
471# Please see Documentation/ide/ide.txt for help/info on IDE drives 477# Please see Documentation/ide/ide.txt for help/info on IDE drives
472# 478#
479CONFIG_IDE_TIMINGS=y
473# CONFIG_BLK_DEV_IDE_SATA is not set 480# CONFIG_BLK_DEV_IDE_SATA is not set
474CONFIG_BLK_DEV_IDEDISK=y 481CONFIG_BLK_DEV_IDEDISK=y
475CONFIG_IDEDISK_MULTI_MODE=y 482CONFIG_IDEDISK_MULTI_MODE=y
@@ -483,7 +490,6 @@ CONFIG_IDE_PROC_FS=y
483# 490#
484# IDE chipset support/bugfixes 491# IDE chipset support/bugfixes
485# 492#
486CONFIG_IDE_GENERIC=y
487# CONFIG_BLK_DEV_PLATFORM is not set 493# CONFIG_BLK_DEV_PLATFORM is not set
488CONFIG_BLK_DEV_IDEDMA_SFF=y 494CONFIG_BLK_DEV_IDEDMA_SFF=y
489 495
@@ -500,10 +506,8 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
500# CONFIG_BLK_DEV_AMD74XX is not set 506# CONFIG_BLK_DEV_AMD74XX is not set
501# CONFIG_BLK_DEV_CMD64X is not set 507# CONFIG_BLK_DEV_CMD64X is not set
502# CONFIG_BLK_DEV_TRIFLEX is not set 508# CONFIG_BLK_DEV_TRIFLEX is not set
503# CONFIG_BLK_DEV_CY82C693 is not set
504# CONFIG_BLK_DEV_CS5520 is not set 509# CONFIG_BLK_DEV_CS5520 is not set
505# CONFIG_BLK_DEV_CS5530 is not set 510# CONFIG_BLK_DEV_CS5530 is not set
506# CONFIG_BLK_DEV_HPT34X is not set
507# CONFIG_BLK_DEV_HPT366 is not set 511# CONFIG_BLK_DEV_HPT366 is not set
508# CONFIG_BLK_DEV_JMICRON is not set 512# CONFIG_BLK_DEV_JMICRON is not set
509# CONFIG_BLK_DEV_SC1200 is not set 513# CONFIG_BLK_DEV_SC1200 is not set
@@ -521,8 +525,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
521CONFIG_BLK_DEV_VIA82CXXX=y 525CONFIG_BLK_DEV_VIA82CXXX=y
522# CONFIG_BLK_DEV_TC86C001 is not set 526# CONFIG_BLK_DEV_TC86C001 is not set
523CONFIG_BLK_DEV_IDEDMA=y 527CONFIG_BLK_DEV_IDEDMA=y
524# CONFIG_BLK_DEV_HD_ONLY is not set
525# CONFIG_BLK_DEV_HD is not set
526 528
527# 529#
528# SCSI device support 530# SCSI device support
@@ -599,6 +601,7 @@ CONFIG_SCSI_LOWLEVEL=y
599# CONFIG_SCSI_NSP32 is not set 601# CONFIG_SCSI_NSP32 is not set
600# CONFIG_SCSI_DEBUG is not set 602# CONFIG_SCSI_DEBUG is not set
601# CONFIG_SCSI_SRP is not set 603# CONFIG_SCSI_SRP is not set
604# CONFIG_SCSI_DH is not set
602# CONFIG_ATA is not set 605# CONFIG_ATA is not set
603CONFIG_MD=y 606CONFIG_MD=y
604CONFIG_BLK_DEV_MD=y 607CONFIG_BLK_DEV_MD=y
@@ -616,12 +619,15 @@ CONFIG_MD_RAID5_RESHAPE=y
616# 619#
617# IEEE 1394 (FireWire) support 620# IEEE 1394 (FireWire) support
618# 621#
622
623#
624# Enable only one of the two stacks, unless you know what you are doing
625#
619# CONFIG_FIREWIRE is not set 626# CONFIG_FIREWIRE is not set
620# CONFIG_IEEE1394 is not set 627# CONFIG_IEEE1394 is not set
621# CONFIG_I2O is not set 628# CONFIG_I2O is not set
622# CONFIG_MACINTOSH_DRIVERS is not set 629# CONFIG_MACINTOSH_DRIVERS is not set
623CONFIG_NETDEVICES=y 630CONFIG_NETDEVICES=y
624# CONFIG_NETDEVICES_MULTIQUEUE is not set
625CONFIG_DUMMY=m 631CONFIG_DUMMY=m
626# CONFIG_BONDING is not set 632# CONFIG_BONDING is not set
627# CONFIG_MACVLAN is not set 633# CONFIG_MACVLAN is not set
@@ -635,14 +641,12 @@ CONFIG_NETDEV_1000=y
635# CONFIG_DL2K is not set 641# CONFIG_DL2K is not set
636# CONFIG_E1000 is not set 642# CONFIG_E1000 is not set
637# CONFIG_E1000E is not set 643# CONFIG_E1000E is not set
638# CONFIG_E1000E_ENABLED is not set
639# CONFIG_IP1000 is not set 644# CONFIG_IP1000 is not set
640# CONFIG_IGB is not set 645# CONFIG_IGB is not set
641# CONFIG_NS83820 is not set 646# CONFIG_NS83820 is not set
642# CONFIG_HAMACHI is not set 647# CONFIG_HAMACHI is not set
643# CONFIG_YELLOWFIN is not set 648# CONFIG_YELLOWFIN is not set
644CONFIG_R8169=y 649CONFIG_R8169=y
645# CONFIG_R8169_NAPI is not set
646# CONFIG_SIS190 is not set 650# CONFIG_SIS190 is not set
647# CONFIG_SKGE is not set 651# CONFIG_SKGE is not set
648# CONFIG_SKY2 is not set 652# CONFIG_SKY2 is not set
@@ -653,6 +657,7 @@ CONFIG_R8169=y
653# CONFIG_MV643XX_ETH is not set 657# CONFIG_MV643XX_ETH is not set
654# CONFIG_QLA3XXX is not set 658# CONFIG_QLA3XXX is not set
655# CONFIG_ATL1 is not set 659# CONFIG_ATL1 is not set
660# CONFIG_ATL1E is not set
656# CONFIG_NETDEV_10000 is not set 661# CONFIG_NETDEV_10000 is not set
657# CONFIG_TR is not set 662# CONFIG_TR is not set
658 663
@@ -734,43 +739,64 @@ CONFIG_DEVPORT=y
734CONFIG_I2C=y 739CONFIG_I2C=y
735CONFIG_I2C_BOARDINFO=y 740CONFIG_I2C_BOARDINFO=y
736CONFIG_I2C_CHARDEV=y 741CONFIG_I2C_CHARDEV=y
742CONFIG_I2C_HELPER_AUTO=y
737 743
738# 744#
739# I2C Hardware Bus support 745# I2C Hardware Bus support
740# 746#
747
748#
749# PC SMBus host controller drivers
750#
741# CONFIG_I2C_ALI1535 is not set 751# CONFIG_I2C_ALI1535 is not set
742# CONFIG_I2C_ALI1563 is not set 752# CONFIG_I2C_ALI1563 is not set
743# CONFIG_I2C_ALI15X3 is not set 753# CONFIG_I2C_ALI15X3 is not set
744# CONFIG_I2C_AMD756 is not set 754# CONFIG_I2C_AMD756 is not set
745# CONFIG_I2C_AMD8111 is not set 755# CONFIG_I2C_AMD8111 is not set
746# CONFIG_I2C_I801 is not set 756# CONFIG_I2C_I801 is not set
747# CONFIG_I2C_I810 is not set 757# CONFIG_I2C_ISCH is not set
748# CONFIG_I2C_PIIX4 is not set 758# CONFIG_I2C_PIIX4 is not set
749CONFIG_I2C_MPC=y
750# CONFIG_I2C_NFORCE2 is not set 759# CONFIG_I2C_NFORCE2 is not set
751# CONFIG_I2C_OCORES is not set
752# CONFIG_I2C_PARPORT_LIGHT is not set
753# CONFIG_I2C_PROSAVAGE is not set
754# CONFIG_I2C_SAVAGE4 is not set
755# CONFIG_I2C_SIMTEC is not set
756# CONFIG_I2C_SIS5595 is not set 760# CONFIG_I2C_SIS5595 is not set
757# CONFIG_I2C_SIS630 is not set 761# CONFIG_I2C_SIS630 is not set
758# CONFIG_I2C_SIS96X is not set 762# CONFIG_I2C_SIS96X is not set
759# CONFIG_I2C_TAOS_EVM is not set
760# CONFIG_I2C_STUB is not set
761# CONFIG_I2C_TINY_USB is not set
762# CONFIG_I2C_VIA is not set 763# CONFIG_I2C_VIA is not set
763# CONFIG_I2C_VIAPRO is not set 764# CONFIG_I2C_VIAPRO is not set
765
766#
767# I2C system bus drivers (mostly embedded / system-on-chip)
768#
769CONFIG_I2C_MPC=y
770# CONFIG_I2C_OCORES is not set
771# CONFIG_I2C_SIMTEC is not set
772
773#
774# External I2C/SMBus adapter drivers
775#
776# CONFIG_I2C_PARPORT_LIGHT is not set
777# CONFIG_I2C_TAOS_EVM is not set
778# CONFIG_I2C_TINY_USB is not set
779
780#
781# Graphics adapter I2C/DDC channel drivers
782#
764# CONFIG_I2C_VOODOO3 is not set 783# CONFIG_I2C_VOODOO3 is not set
784
785#
786# Other I2C/SMBus bus drivers
787#
765# CONFIG_I2C_PCA_PLATFORM is not set 788# CONFIG_I2C_PCA_PLATFORM is not set
789# CONFIG_I2C_STUB is not set
766 790
767# 791#
768# Miscellaneous I2C Chip support 792# Miscellaneous I2C Chip support
769# 793#
770# CONFIG_DS1682 is not set 794# CONFIG_DS1682 is not set
795# CONFIG_AT24 is not set
771# CONFIG_SENSORS_EEPROM is not set 796# CONFIG_SENSORS_EEPROM is not set
772# CONFIG_SENSORS_PCF8574 is not set 797# CONFIG_SENSORS_PCF8574 is not set
773# CONFIG_PCF8575 is not set 798# CONFIG_PCF8575 is not set
799# CONFIG_SENSORS_PCA9539 is not set
774# CONFIG_SENSORS_PCF8591 is not set 800# CONFIG_SENSORS_PCF8591 is not set
775# CONFIG_SENSORS_MAX6875 is not set 801# CONFIG_SENSORS_MAX6875 is not set
776# CONFIG_SENSORS_TSL2550 is not set 802# CONFIG_SENSORS_TSL2550 is not set
@@ -779,10 +805,13 @@ CONFIG_I2C_MPC=y
779# CONFIG_I2C_DEBUG_BUS is not set 805# CONFIG_I2C_DEBUG_BUS is not set
780# CONFIG_I2C_DEBUG_CHIP is not set 806# CONFIG_I2C_DEBUG_CHIP is not set
781# CONFIG_SPI is not set 807# CONFIG_SPI is not set
808CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
809# CONFIG_GPIOLIB is not set
782# CONFIG_W1 is not set 810# CONFIG_W1 is not set
783# CONFIG_POWER_SUPPLY is not set 811# CONFIG_POWER_SUPPLY is not set
784# CONFIG_HWMON is not set 812# CONFIG_HWMON is not set
785# CONFIG_THERMAL is not set 813# CONFIG_THERMAL is not set
814# CONFIG_THERMAL_HWMON is not set
786# CONFIG_WATCHDOG is not set 815# CONFIG_WATCHDOG is not set
787 816
788# 817#
@@ -794,8 +823,10 @@ CONFIG_SSB_POSSIBLE=y
794# 823#
795# Multifunction device drivers 824# Multifunction device drivers
796# 825#
826# CONFIG_MFD_CORE is not set
797# CONFIG_MFD_SM501 is not set 827# CONFIG_MFD_SM501 is not set
798# CONFIG_HTC_PASIC3 is not set 828# CONFIG_HTC_PASIC3 is not set
829# CONFIG_MFD_TMIO is not set
799 830
800# 831#
801# Multimedia devices 832# Multimedia devices
@@ -827,10 +858,6 @@ CONFIG_SSB_POSSIBLE=y
827# Display device support 858# Display device support
828# 859#
829# CONFIG_DISPLAY_SUPPORT is not set 860# CONFIG_DISPLAY_SUPPORT is not set
830
831#
832# Sound
833#
834# CONFIG_SOUND is not set 861# CONFIG_SOUND is not set
835CONFIG_USB_SUPPORT=y 862CONFIG_USB_SUPPORT=y
836CONFIG_USB_ARCH_HAS_HCD=y 863CONFIG_USB_ARCH_HAS_HCD=y
@@ -849,6 +876,7 @@ CONFIG_USB_DEVICE_CLASS=y
849# CONFIG_USB_OTG is not set 876# CONFIG_USB_OTG is not set
850# CONFIG_USB_OTG_WHITELIST is not set 877# CONFIG_USB_OTG_WHITELIST is not set
851# CONFIG_USB_OTG_BLACKLIST_HUB is not set 878# CONFIG_USB_OTG_BLACKLIST_HUB is not set
879# CONFIG_USB_MON is not set
852 880
853# 881#
854# USB Host Controller Drivers 882# USB Host Controller Drivers
@@ -896,6 +924,7 @@ CONFIG_USB_STORAGE=y
896# CONFIG_USB_STORAGE_JUMPSHOT is not set 924# CONFIG_USB_STORAGE_JUMPSHOT is not set
897# CONFIG_USB_STORAGE_ALAUDA is not set 925# CONFIG_USB_STORAGE_ALAUDA is not set
898# CONFIG_USB_STORAGE_KARMA is not set 926# CONFIG_USB_STORAGE_KARMA is not set
927# CONFIG_USB_STORAGE_SIERRA is not set
899# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 928# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
900# CONFIG_USB_LIBUSUAL is not set 929# CONFIG_USB_LIBUSUAL is not set
901 930
@@ -904,7 +933,6 @@ CONFIG_USB_STORAGE=y
904# 933#
905# CONFIG_USB_MDC800 is not set 934# CONFIG_USB_MDC800 is not set
906# CONFIG_USB_MICROTEK is not set 935# CONFIG_USB_MICROTEK is not set
907# CONFIG_USB_MON is not set
908 936
909# 937#
910# USB port drivers 938# USB port drivers
@@ -917,7 +945,6 @@ CONFIG_USB_STORAGE=y
917# CONFIG_USB_EMI62 is not set 945# CONFIG_USB_EMI62 is not set
918# CONFIG_USB_EMI26 is not set 946# CONFIG_USB_EMI26 is not set
919# CONFIG_USB_ADUTUX is not set 947# CONFIG_USB_ADUTUX is not set
920# CONFIG_USB_AUERSWALD is not set
921# CONFIG_USB_RIO500 is not set 948# CONFIG_USB_RIO500 is not set
922# CONFIG_USB_LEGOTOWER is not set 949# CONFIG_USB_LEGOTOWER is not set
923# CONFIG_USB_LCD is not set 950# CONFIG_USB_LCD is not set
@@ -971,6 +998,7 @@ CONFIG_RTC_DRV_DS1307=y
971# CONFIG_RTC_DRV_PCF8583 is not set 998# CONFIG_RTC_DRV_PCF8583 is not set
972# CONFIG_RTC_DRV_M41T80 is not set 999# CONFIG_RTC_DRV_M41T80 is not set
973# CONFIG_RTC_DRV_S35390A is not set 1000# CONFIG_RTC_DRV_S35390A is not set
1001# CONFIG_RTC_DRV_FM3130 is not set
974 1002
975# 1003#
976# SPI RTC drivers 1004# SPI RTC drivers
@@ -1074,6 +1102,7 @@ CONFIG_JFFS2_RTIME=y
1074# CONFIG_CRAMFS is not set 1102# CONFIG_CRAMFS is not set
1075# CONFIG_VXFS_FS is not set 1103# CONFIG_VXFS_FS is not set
1076# CONFIG_MINIX_FS is not set 1104# CONFIG_MINIX_FS is not set
1105# CONFIG_OMFS_FS is not set
1077# CONFIG_HPFS_FS is not set 1106# CONFIG_HPFS_FS is not set
1078# CONFIG_QNX4FS_FS is not set 1107# CONFIG_QNX4FS_FS is not set
1079# CONFIG_ROMFS_FS is not set 1108# CONFIG_ROMFS_FS is not set
@@ -1151,6 +1180,7 @@ CONFIG_BITREVERSE=y
1151# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1180# CONFIG_GENERIC_FIND_FIRST_BIT is not set
1152# CONFIG_CRC_CCITT is not set 1181# CONFIG_CRC_CCITT is not set
1153# CONFIG_CRC16 is not set 1182# CONFIG_CRC16 is not set
1183CONFIG_CRC_T10DIF=y
1154# CONFIG_CRC_ITU_T is not set 1184# CONFIG_CRC_ITU_T is not set
1155CONFIG_CRC32=y 1185CONFIG_CRC32=y
1156# CONFIG_CRC7 is not set 1186# CONFIG_CRC7 is not set
@@ -1178,7 +1208,16 @@ CONFIG_FRAME_WARN=1024
1178# CONFIG_SLUB_DEBUG_ON is not set 1208# CONFIG_SLUB_DEBUG_ON is not set
1179# CONFIG_SLUB_STATS is not set 1209# CONFIG_SLUB_STATS is not set
1180# CONFIG_DEBUG_BUGVERBOSE is not set 1210# CONFIG_DEBUG_BUGVERBOSE is not set
1211# CONFIG_DEBUG_MEMORY_INIT is not set
1212# CONFIG_LATENCYTOP is not set
1213CONFIG_SYSCTL_SYSCALL_CHECK=y
1214CONFIG_HAVE_FTRACE=y
1215CONFIG_HAVE_DYNAMIC_FTRACE=y
1216# CONFIG_FTRACE is not set
1217# CONFIG_SCHED_TRACER is not set
1218# CONFIG_CONTEXT_SWITCH_TRACER is not set
1181# CONFIG_SAMPLES is not set 1219# CONFIG_SAMPLES is not set
1220CONFIG_HAVE_ARCH_KGDB=y
1182# CONFIG_IRQSTACKS is not set 1221# CONFIG_IRQSTACKS is not set
1183# CONFIG_BOOTX_TEXT is not set 1222# CONFIG_BOOTX_TEXT is not set
1184# CONFIG_PPC_EARLY_DEBUG is not set 1223# CONFIG_PPC_EARLY_DEBUG is not set
diff --git a/arch/powerpc/include/asm/cpm2.h b/arch/powerpc/include/asm/cpm2.h
index 2a6fa0183ac9..0f5e8ff59a85 100644
--- a/arch/powerpc/include/asm/cpm2.h
+++ b/arch/powerpc/include/asm/cpm2.h
@@ -337,6 +337,11 @@ typedef struct scc_param {
337 uint scc_tcrc; /* Internal */ 337 uint scc_tcrc; /* Internal */
338} sccp_t; 338} sccp_t;
339 339
340/* Function code bits.
341*/
342#define SCC_EB ((u_char) 0x10) /* Set big endian byte order */
343#define SCC_GBL ((u_char) 0x20) /* Snooping enabled */
344
340/* CPM Ethernet through SCC1. 345/* CPM Ethernet through SCC1.
341 */ 346 */
342typedef struct scc_enet { 347typedef struct scc_enet {
diff --git a/arch/powerpc/include/asm/pgtable-ppc64.h b/arch/powerpc/include/asm/pgtable-ppc64.h
index db0b8f3b8807..4597c491e9b5 100644
--- a/arch/powerpc/include/asm/pgtable-ppc64.h
+++ b/arch/powerpc/include/asm/pgtable-ppc64.h
@@ -153,12 +153,10 @@
153#define __S110 PAGE_SHARED_X 153#define __S110 PAGE_SHARED_X
154#define __S111 PAGE_SHARED_X 154#define __S111 PAGE_SHARED_X
155 155
156#ifdef CONFIG_HUGETLB_PAGE 156#ifdef CONFIG_PPC_MM_SLICES
157
158#define HAVE_ARCH_UNMAPPED_AREA 157#define HAVE_ARCH_UNMAPPED_AREA
159#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN 158#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
160 159#endif /* CONFIG_PPC_MM_SLICES */
161#endif
162 160
163#ifndef __ASSEMBLY__ 161#ifndef __ASSEMBLY__
164 162
diff --git a/arch/powerpc/include/asm/sections.h b/arch/powerpc/include/asm/sections.h
index 916018e425c4..7710e9e6660f 100644
--- a/arch/powerpc/include/asm/sections.h
+++ b/arch/powerpc/include/asm/sections.h
@@ -16,6 +16,9 @@ static inline int in_kernel_text(unsigned long addr)
16 return 0; 16 return 0;
17} 17}
18 18
19#undef dereference_function_descriptor
20void *dereference_function_descriptor(void *);
21
19#endif 22#endif
20 23
21#endif /* __KERNEL__ */ 24#endif /* __KERNEL__ */
diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
index 64f5948ebc9d..946daea780f1 100644
--- a/arch/powerpc/kernel/Makefile
+++ b/arch/powerpc/kernel/Makefile
@@ -14,12 +14,13 @@ endif
14 14
15ifdef CONFIG_FTRACE 15ifdef CONFIG_FTRACE
16# Do not trace early boot code 16# Do not trace early boot code
17CFLAGS_REMOVE_cputable.o = -pg 17CFLAGS_REMOVE_cputable.o = -pg -mno-sched-epilog
18CFLAGS_REMOVE_prom_init.o = -pg 18CFLAGS_REMOVE_prom_init.o = -pg -mno-sched-epilog
19CFLAGS_REMOVE_btext.o = -pg -mno-sched-epilog
19 20
20ifdef CONFIG_DYNAMIC_FTRACE 21ifdef CONFIG_DYNAMIC_FTRACE
21# dynamic ftrace setup. 22# dynamic ftrace setup.
22CFLAGS_REMOVE_ftrace.o = -pg 23CFLAGS_REMOVE_ftrace.o = -pg -mno-sched-epilog
23endif 24endif
24 25
25endif 26endif
diff --git a/arch/powerpc/kernel/align.c b/arch/powerpc/kernel/align.c
index 367129789cc0..5af4e9b2dbe2 100644
--- a/arch/powerpc/kernel/align.c
+++ b/arch/powerpc/kernel/align.c
@@ -647,7 +647,7 @@ static int emulate_vsx(unsigned char __user *addr, unsigned int reg,
647 unsigned int flags, unsigned int length) 647 unsigned int flags, unsigned int length)
648{ 648{
649 char *ptr = (char *) &current->thread.TS_FPR(reg); 649 char *ptr = (char *) &current->thread.TS_FPR(reg);
650 int ret; 650 int ret = 0;
651 651
652 flush_vsx_to_thread(current); 652 flush_vsx_to_thread(current);
653 653
diff --git a/arch/powerpc/kernel/idle_6xx.S b/arch/powerpc/kernel/idle_6xx.S
index 019b02d8844f..15c611de1ee2 100644
--- a/arch/powerpc/kernel/idle_6xx.S
+++ b/arch/powerpc/kernel/idle_6xx.S
@@ -158,7 +158,7 @@ _GLOBAL(power_save_ppc32_restore)
158 stw r9,_NIP(r11) /* make it do a blr */ 158 stw r9,_NIP(r11) /* make it do a blr */
159 159
160#ifdef CONFIG_SMP 160#ifdef CONFIG_SMP
161 mfspr r12,SPRN_SPRG3 161 rlwinm r12,r11,0,0,31-THREAD_SHIFT
162 lwz r11,TI_CPU(r12) /* get cpu number * 4 */ 162 lwz r11,TI_CPU(r12) /* get cpu number * 4 */
163 slwi r11,r11,2 163 slwi r11,r11,2
164#else 164#else
diff --git a/arch/powerpc/kernel/idle_e500.S b/arch/powerpc/kernel/idle_e500.S
index 06304034b393..47a1a983ff88 100644
--- a/arch/powerpc/kernel/idle_e500.S
+++ b/arch/powerpc/kernel/idle_e500.S
@@ -84,10 +84,11 @@ _GLOBAL(power_save_ppc32_restore)
84 stw r9,_NIP(r11) /* make it do a blr */ 84 stw r9,_NIP(r11) /* make it do a blr */
85 85
86#ifdef CONFIG_SMP 86#ifdef CONFIG_SMP
87 mfspr r12,SPRN_SPRG3 87 rlwinm r12,r1,0,0,31-THREAD_SHIFT
88 lwz r11,TI_CPU(r12) /* get cpu number * 4 */ 88 lwz r11,TI_CPU(r12) /* get cpu number * 4 */
89 slwi r11,r11,2 89 slwi r11,r11,2
90#else 90#else
91 li r11,0 91 li r11,0
92#endif 92#endif
93
93 b transfer_to_handler_cont 94 b transfer_to_handler_cont
diff --git a/arch/powerpc/kernel/module_64.c b/arch/powerpc/kernel/module_64.c
index ee6a2982d567..ad79de272ff3 100644
--- a/arch/powerpc/kernel/module_64.c
+++ b/arch/powerpc/kernel/module_64.c
@@ -21,8 +21,9 @@
21#include <linux/err.h> 21#include <linux/err.h>
22#include <linux/vmalloc.h> 22#include <linux/vmalloc.h>
23#include <linux/bug.h> 23#include <linux/bug.h>
24#include <linux/uaccess.h>
24#include <asm/module.h> 25#include <asm/module.h>
25#include <asm/uaccess.h> 26#include <asm/sections.h>
26#include <asm/firmware.h> 27#include <asm/firmware.h>
27#include <asm/code-patching.h> 28#include <asm/code-patching.h>
28#include <linux/sort.h> 29#include <linux/sort.h>
@@ -451,3 +452,13 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
451 452
452 return 0; 453 return 0;
453} 454}
455
456void *dereference_function_descriptor(void *ptr)
457{
458 struct ppc64_opd_entry *desc = ptr;
459 void *p;
460
461 if (!probe_kernel_address(&desc->funcaddr, p))
462 ptr = p;
463 return ptr;
464}
diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S
index 4a8ce62fe112..9f6c1ca1739e 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -66,11 +66,12 @@ SECTIONS
66 __got2_end = .; 66 __got2_end = .;
67#endif /* CONFIG_PPC32 */ 67#endif /* CONFIG_PPC32 */
68 68
69 . = ALIGN(PAGE_SIZE);
70 _etext = .;
71 PROVIDE32 (etext = .);
72 } :kernel 69 } :kernel
73 70
71 . = ALIGN(PAGE_SIZE);
72 _etext = .;
73 PROVIDE32 (etext = .);
74
74 /* Read-only data */ 75 /* Read-only data */
75 RODATA 76 RODATA
76 77
diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
index 14be408dfc9b..8920eea34528 100644
--- a/arch/powerpc/mm/hash_utils_64.c
+++ b/arch/powerpc/mm/hash_utils_64.c
@@ -191,12 +191,17 @@ int htab_bolt_mapping(unsigned long vstart, unsigned long vend,
191 unsigned long hash, hpteg; 191 unsigned long hash, hpteg;
192 unsigned long vsid = get_kernel_vsid(vaddr, ssize); 192 unsigned long vsid = get_kernel_vsid(vaddr, ssize);
193 unsigned long va = hpt_va(vaddr, vsid, ssize); 193 unsigned long va = hpt_va(vaddr, vsid, ssize);
194 unsigned long tprot = prot;
195
196 /* Make kernel text executable */
197 if (in_kernel_text(vaddr))
198 tprot &= ~HPTE_R_N;
194 199
195 hash = hpt_hash(va, shift, ssize); 200 hash = hpt_hash(va, shift, ssize);
196 hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP); 201 hpteg = ((hash & htab_hash_mask) * HPTES_PER_GROUP);
197 202
198 BUG_ON(!ppc_md.hpte_insert); 203 BUG_ON(!ppc_md.hpte_insert);
199 ret = ppc_md.hpte_insert(hpteg, va, paddr, prot, 204 ret = ppc_md.hpte_insert(hpteg, va, paddr, tprot,
200 HPTE_V_BOLTED, psize, ssize); 205 HPTE_V_BOLTED, psize, ssize);
201 206
202 if (ret < 0) 207 if (ret < 0)
@@ -584,7 +589,7 @@ void __init htab_initialize(void)
584{ 589{
585 unsigned long table; 590 unsigned long table;
586 unsigned long pteg_count; 591 unsigned long pteg_count;
587 unsigned long prot, tprot; 592 unsigned long prot;
588 unsigned long base = 0, size = 0, limit; 593 unsigned long base = 0, size = 0, limit;
589 int i; 594 int i;
590 595
@@ -660,10 +665,9 @@ void __init htab_initialize(void)
660 for (i=0; i < lmb.memory.cnt; i++) { 665 for (i=0; i < lmb.memory.cnt; i++) {
661 base = (unsigned long)__va(lmb.memory.region[i].base); 666 base = (unsigned long)__va(lmb.memory.region[i].base);
662 size = lmb.memory.region[i].size; 667 size = lmb.memory.region[i].size;
663 tprot = prot | (in_kernel_text(base) ? _PAGE_EXEC : 0);
664 668
665 DBG("creating mapping for region: %lx..%lx (prot: %x)\n", 669 DBG("creating mapping for region: %lx..%lx (prot: %x)\n",
666 base, size, tprot); 670 base, size, prot);
667 671
668#ifdef CONFIG_U3_DART 672#ifdef CONFIG_U3_DART
669 /* Do not map the DART space. Fortunately, it will be aligned 673 /* Do not map the DART space. Fortunately, it will be aligned
@@ -680,21 +684,21 @@ void __init htab_initialize(void)
680 unsigned long dart_table_end = dart_tablebase + 16 * MB; 684 unsigned long dart_table_end = dart_tablebase + 16 * MB;
681 if (base != dart_tablebase) 685 if (base != dart_tablebase)
682 BUG_ON(htab_bolt_mapping(base, dart_tablebase, 686 BUG_ON(htab_bolt_mapping(base, dart_tablebase,
683 __pa(base), tprot, 687 __pa(base), prot,
684 mmu_linear_psize, 688 mmu_linear_psize,
685 mmu_kernel_ssize)); 689 mmu_kernel_ssize));
686 if ((base + size) > dart_table_end) 690 if ((base + size) > dart_table_end)
687 BUG_ON(htab_bolt_mapping(dart_tablebase+16*MB, 691 BUG_ON(htab_bolt_mapping(dart_tablebase+16*MB,
688 base + size, 692 base + size,
689 __pa(dart_table_end), 693 __pa(dart_table_end),
690 tprot, 694 prot,
691 mmu_linear_psize, 695 mmu_linear_psize,
692 mmu_kernel_ssize)); 696 mmu_kernel_ssize));
693 continue; 697 continue;
694 } 698 }
695#endif /* CONFIG_U3_DART */ 699#endif /* CONFIG_U3_DART */
696 BUG_ON(htab_bolt_mapping(base, base + size, __pa(base), 700 BUG_ON(htab_bolt_mapping(base, base + size, __pa(base),
697 tprot, mmu_linear_psize, mmu_kernel_ssize)); 701 prot, mmu_linear_psize, mmu_kernel_ssize));
698 } 702 }
699 703
700 /* 704 /*
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
index 1c1b627ee843..67595bc380dc 100644
--- a/arch/powerpc/platforms/cell/spufs/sched.c
+++ b/arch/powerpc/platforms/cell/spufs/sched.c
@@ -643,9 +643,10 @@ static struct spu *find_victim(struct spu_context *ctx)
643 !(tmp->flags & SPU_CREATE_NOSCHED) && 643 !(tmp->flags & SPU_CREATE_NOSCHED) &&
644 (!victim || tmp->prio > victim->prio)) { 644 (!victim || tmp->prio > victim->prio)) {
645 victim = spu->ctx; 645 victim = spu->ctx;
646 get_spu_context(victim);
647 } 646 }
648 } 647 }
648 if (victim)
649 get_spu_context(victim);
649 mutex_unlock(&cbe_spu_info[node].list_mutex); 650 mutex_unlock(&cbe_spu_info[node].list_mutex);
650 651
651 if (victim) { 652 if (victim) {
@@ -727,17 +728,33 @@ static void spu_schedule(struct spu *spu, struct spu_context *ctx)
727 /* not a candidate for interruptible because it's called either 728 /* not a candidate for interruptible because it's called either
728 from the scheduler thread or from spu_deactivate */ 729 from the scheduler thread or from spu_deactivate */
729 mutex_lock(&ctx->state_mutex); 730 mutex_lock(&ctx->state_mutex);
730 __spu_schedule(spu, ctx); 731 if (ctx->state == SPU_STATE_SAVED)
732 __spu_schedule(spu, ctx);
731 spu_release(ctx); 733 spu_release(ctx);
732} 734}
733 735
734static void spu_unschedule(struct spu *spu, struct spu_context *ctx) 736/**
737 * spu_unschedule - remove a context from a spu, and possibly release it.
738 * @spu: The SPU to unschedule from
739 * @ctx: The context currently scheduled on the SPU
740 * @free_spu Whether to free the SPU for other contexts
741 *
742 * Unbinds the context @ctx from the SPU @spu. If @free_spu is non-zero, the
743 * SPU is made available for other contexts (ie, may be returned by
744 * spu_get_idle). If this is zero, the caller is expected to schedule another
745 * context to this spu.
746 *
747 * Should be called with ctx->state_mutex held.
748 */
749static void spu_unschedule(struct spu *spu, struct spu_context *ctx,
750 int free_spu)
735{ 751{
736 int node = spu->node; 752 int node = spu->node;
737 753
738 mutex_lock(&cbe_spu_info[node].list_mutex); 754 mutex_lock(&cbe_spu_info[node].list_mutex);
739 cbe_spu_info[node].nr_active--; 755 cbe_spu_info[node].nr_active--;
740 spu->alloc_state = SPU_FREE; 756 if (free_spu)
757 spu->alloc_state = SPU_FREE;
741 spu_unbind_context(spu, ctx); 758 spu_unbind_context(spu, ctx);
742 ctx->stats.invol_ctx_switch++; 759 ctx->stats.invol_ctx_switch++;
743 spu->stats.invol_ctx_switch++; 760 spu->stats.invol_ctx_switch++;
@@ -837,7 +854,7 @@ static int __spu_deactivate(struct spu_context *ctx, int force, int max_prio)
837 if (spu) { 854 if (spu) {
838 new = grab_runnable_context(max_prio, spu->node); 855 new = grab_runnable_context(max_prio, spu->node);
839 if (new || force) { 856 if (new || force) {
840 spu_unschedule(spu, ctx); 857 spu_unschedule(spu, ctx, new == NULL);
841 if (new) { 858 if (new) {
842 if (new->flags & SPU_CREATE_NOSCHED) 859 if (new->flags & SPU_CREATE_NOSCHED)
843 wake_up(&new->stop_wq); 860 wake_up(&new->stop_wq);
@@ -910,7 +927,7 @@ static noinline void spusched_tick(struct spu_context *ctx)
910 927
911 new = grab_runnable_context(ctx->prio + 1, spu->node); 928 new = grab_runnable_context(ctx->prio + 1, spu->node);
912 if (new) { 929 if (new) {
913 spu_unschedule(spu, ctx); 930 spu_unschedule(spu, ctx, 0);
914 if (test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags)) 931 if (test_bit(SPU_SCHED_SPU_RUN, &ctx->sched_flags))
915 spu_add_to_rq(ctx); 932 spu_add_to_rq(ctx);
916 } else { 933 } else {
diff --git a/arch/powerpc/platforms/powermac/Makefile b/arch/powerpc/platforms/powermac/Makefile
index 58ecdd72630f..be60d64be7ad 100644
--- a/arch/powerpc/platforms/powermac/Makefile
+++ b/arch/powerpc/platforms/powermac/Makefile
@@ -2,7 +2,7 @@ CFLAGS_bootx_init.o += -fPIC
2 2
3ifdef CONFIG_FTRACE 3ifdef CONFIG_FTRACE
4# Do not trace early boot code 4# Do not trace early boot code
5CFLAGS_REMOVE_bootx_init.o = -pg 5CFLAGS_REMOVE_bootx_init.o = -pg -mno-sched-epilog
6endif 6endif
7 7
8obj-y += pic.o setup.o time.o feature.o pci.o \ 8obj-y += pic.o setup.o time.o feature.o pci.o \
diff --git a/arch/powerpc/platforms/ps3/htab.c b/arch/powerpc/platforms/ps3/htab.c
index 1cf901fa9031..6eb1d4d182c9 100644
--- a/arch/powerpc/platforms/ps3/htab.c
+++ b/arch/powerpc/platforms/ps3/htab.c
@@ -29,138 +29,75 @@
29 29
30#include "platform.h" 30#include "platform.h"
31 31
32#if defined(DEBUG) 32/**
33#define DBG udbg_printf 33 * enum lpar_vas_id - id of LPAR virtual address space.
34#else 34 * @lpar_vas_id_current: Current selected virtual address space
35#define DBG pr_debug 35 *
36#endif 36 * Identify the target LPAR address space.
37 37 */
38static struct hash_pte *htab; 38
39static unsigned long htab_addr; 39enum ps3_lpar_vas_id {
40static unsigned char *bolttab; 40 PS3_LPAR_VAS_ID_CURRENT = 0,
41static unsigned char *inusetab; 41};
42 42
43static DEFINE_SPINLOCK(ps3_bolttab_lock); 43
44 44static DEFINE_SPINLOCK(ps3_htab_lock);
45#define debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g) \
46 _debug_dump_hpte(_a, _b, _c, _d, _e, _f, _g, __func__, __LINE__)
47static void _debug_dump_hpte(unsigned long pa, unsigned long va,
48 unsigned long group, unsigned long bitmap, struct hash_pte lhpte,
49 int psize, unsigned long slot, const char* func, int line)
50{
51 DBG("%s:%d: pa = %lxh\n", func, line, pa);
52 DBG("%s:%d: lpar = %lxh\n", func, line,
53 ps3_mm_phys_to_lpar(pa));
54 DBG("%s:%d: va = %lxh\n", func, line, va);
55 DBG("%s:%d: group = %lxh\n", func, line, group);
56 DBG("%s:%d: bitmap = %lxh\n", func, line, bitmap);
57 DBG("%s:%d: hpte.v = %lxh\n", func, line, lhpte.v);
58 DBG("%s:%d: hpte.r = %lxh\n", func, line, lhpte.r);
59 DBG("%s:%d: psize = %xh\n", func, line, psize);
60 DBG("%s:%d: slot = %lxh\n", func, line, slot);
61}
62 45
63static long ps3_hpte_insert(unsigned long hpte_group, unsigned long va, 46static long ps3_hpte_insert(unsigned long hpte_group, unsigned long va,
64 unsigned long pa, unsigned long rflags, unsigned long vflags, 47 unsigned long pa, unsigned long rflags, unsigned long vflags,
65 int psize, int ssize) 48 int psize, int ssize)
66{ 49{
67 unsigned long slot; 50 int result;
68 struct hash_pte lhpte; 51 u64 hpte_v, hpte_r;
69 int secondary = 0; 52 u64 inserted_index;
70 unsigned long result; 53 u64 evicted_v, evicted_r;
71 unsigned long bitmap; 54 u64 hpte_v_array[4], hpte_rs;
72 unsigned long flags; 55 unsigned long flags;
73 unsigned long p_pteg, s_pteg, b_index, b_mask, cb, ci; 56 long ret = -1;
74
75 vflags &= ~HPTE_V_SECONDARY; /* this bit is ignored */
76
77 lhpte.v = hpte_encode_v(va, psize, MMU_SEGSIZE_256M) |
78 vflags | HPTE_V_VALID;
79 lhpte.r = hpte_encode_r(ps3_mm_phys_to_lpar(pa), psize) | rflags;
80
81 p_pteg = hpte_group / HPTES_PER_GROUP;
82 s_pteg = ~p_pteg & htab_hash_mask;
83
84 spin_lock_irqsave(&ps3_bolttab_lock, flags);
85
86 BUG_ON(bolttab[p_pteg] == 0xff && bolttab[s_pteg] == 0xff);
87 57
88 bitmap = (inusetab[p_pteg] << 8) | inusetab[s_pteg]; 58 /*
59 * lv1_insert_htab_entry() will search for victim
60 * entry in both primary and secondary pte group
61 */
62 vflags &= ~HPTE_V_SECONDARY;
89 63
90 if (bitmap == 0xffff) { 64 hpte_v = hpte_encode_v(va, psize, ssize) | vflags | HPTE_V_VALID;
91 /* 65 hpte_r = hpte_encode_r(ps3_mm_phys_to_lpar(pa), psize) | rflags;
92 * PTEG is full. Search for victim.
93 */
94 bitmap &= ~((bolttab[p_pteg] << 8) | bolttab[s_pteg]);
95 do {
96 ci = mftb() & 15;
97 cb = 0x8000UL >> ci;
98 } while ((cb & bitmap) == 0);
99 } else {
100 /*
101 * search free slot in hardware order
102 * [primary] 0, 2, 4, 6, 1, 3, 5, 7
103 * [secondary] 0, 2, 4, 6, 1, 3, 5, 7
104 */
105 for (ci = 0; ci < HPTES_PER_GROUP; ci += 2) {
106 cb = 0x8000UL >> ci;
107 if ((cb & bitmap) == 0)
108 goto found;
109 }
110 for (ci = 1; ci < HPTES_PER_GROUP; ci += 2) {
111 cb = 0x8000UL >> ci;
112 if ((cb & bitmap) == 0)
113 goto found;
114 }
115 for (ci = HPTES_PER_GROUP; ci < HPTES_PER_GROUP*2; ci += 2) {
116 cb = 0x8000UL >> ci;
117 if ((cb & bitmap) == 0)
118 goto found;
119 }
120 for (ci = HPTES_PER_GROUP+1; ci < HPTES_PER_GROUP*2; ci += 2) {
121 cb = 0x8000UL >> ci;
122 if ((cb & bitmap) == 0)
123 goto found;
124 }
125 }
126 66
127found: 67 spin_lock_irqsave(&ps3_htab_lock, flags);
128 if (ci < HPTES_PER_GROUP) {
129 slot = p_pteg * HPTES_PER_GROUP + ci;
130 } else {
131 slot = s_pteg * HPTES_PER_GROUP + (ci & 7);
132 /* lhpte.dw0.dw0.h = 1; */
133 vflags |= HPTE_V_SECONDARY;
134 lhpte.v |= HPTE_V_SECONDARY;
135 }
136 68
137 result = lv1_write_htab_entry(0, slot, lhpte.v, lhpte.r); 69 /* talk hvc to replace entries BOLTED == 0 */
70 result = lv1_insert_htab_entry(PS3_LPAR_VAS_ID_CURRENT, hpte_group,
71 hpte_v, hpte_r,
72 HPTE_V_BOLTED, 0,
73 &inserted_index,
74 &evicted_v, &evicted_r);
138 75
139 if (result) { 76 if (result) {
140 debug_dump_hpte(pa, va, hpte_group, bitmap, lhpte, psize, slot); 77 /* all entries bolted !*/
78 pr_info("%s:result=%d va=%lx pa=%lx ix=%lx v=%lx r=%lx\n",
79 __func__, result, va, pa, hpte_group, hpte_v, hpte_r);
141 BUG(); 80 BUG();
142 } 81 }
143 82
144 /* 83 /*
145 * If used slot is not in primary HPTE group, 84 * see if the entry is inserted into secondary pteg
146 * the slot should be in secondary HPTE group.
147 */ 85 */
86 result = lv1_read_htab_entries(PS3_LPAR_VAS_ID_CURRENT,
87 inserted_index & ~0x3UL,
88 &hpte_v_array[0], &hpte_v_array[1],
89 &hpte_v_array[2], &hpte_v_array[3],
90 &hpte_rs);
91 BUG_ON(result);
148 92
149 if ((hpte_group ^ slot) & ~(HPTES_PER_GROUP - 1)) { 93 if (hpte_v_array[inserted_index % 4] & HPTE_V_SECONDARY)
150 secondary = 1; 94 ret = (inserted_index & 7) | (1 << 3);
151 b_index = s_pteg; 95 else
152 } else { 96 ret = inserted_index & 7;
153 secondary = 0;
154 b_index = p_pteg;
155 }
156 97
157 b_mask = (lhpte.v & HPTE_V_BOLTED) ? 1 << 7 : 0 << 7; 98 spin_unlock_irqrestore(&ps3_htab_lock, flags);
158 bolttab[b_index] |= b_mask >> (slot & 7);
159 b_mask = 1 << 7;
160 inusetab[b_index] |= b_mask >> (slot & 7);
161 spin_unlock_irqrestore(&ps3_bolttab_lock, flags);
162 99
163 return (slot & 7) | (secondary << 3); 100 return ret;
164} 101}
165 102
166static long ps3_hpte_remove(unsigned long hpte_group) 103static long ps3_hpte_remove(unsigned long hpte_group)
@@ -172,39 +109,48 @@ static long ps3_hpte_remove(unsigned long hpte_group)
172static long ps3_hpte_updatepp(unsigned long slot, unsigned long newpp, 109static long ps3_hpte_updatepp(unsigned long slot, unsigned long newpp,
173 unsigned long va, int psize, int ssize, int local) 110 unsigned long va, int psize, int ssize, int local)
174{ 111{
112 int result;
113 u64 hpte_v, want_v, hpte_rs;
114 u64 hpte_v_array[4];
175 unsigned long flags; 115 unsigned long flags;
176 unsigned long result; 116 long ret;
177 unsigned long pteg, bit;
178 unsigned long hpte_v, want_v;
179 117
180 want_v = hpte_encode_v(va, psize, MMU_SEGSIZE_256M); 118 want_v = hpte_encode_v(va, psize, ssize);
181 119
182 spin_lock_irqsave(&ps3_bolttab_lock, flags); 120 spin_lock_irqsave(&ps3_htab_lock, flags);
183 121
184 hpte_v = htab[slot].v; 122 result = lv1_read_htab_entries(PS3_LPAR_VAS_ID_CURRENT, slot & ~0x3UL,
185 if (!HPTE_V_COMPARE(hpte_v, want_v) || !(hpte_v & HPTE_V_VALID)) { 123 &hpte_v_array[0], &hpte_v_array[1],
186 spin_unlock_irqrestore(&ps3_bolttab_lock, flags); 124 &hpte_v_array[2], &hpte_v_array[3],
187 125 &hpte_rs);
188 /* ps3_hpte_insert() will be used to update PTE */
189 return -1;
190 }
191
192 result = lv1_write_htab_entry(0, slot, 0, 0);
193 126
194 if (result) { 127 if (result) {
195 DBG("%s: va=%lx slot=%lx psize=%d result = %ld (0x%lx)\n", 128 pr_info("%s: res=%d read va=%lx slot=%lx psize=%d\n",
196 __func__, va, slot, psize, result, result); 129 __func__, result, va, slot, psize);
197 BUG(); 130 BUG();
198 } 131 }
199 132
200 pteg = slot / HPTES_PER_GROUP; 133 hpte_v = hpte_v_array[slot % 4];
201 bit = slot % HPTES_PER_GROUP;
202 inusetab[pteg] &= ~(0x80 >> bit);
203 134
204 spin_unlock_irqrestore(&ps3_bolttab_lock, flags); 135 /*
136 * As lv1_read_htab_entries() does not give us the RPN, we can
137 * not synthesize the new hpte_r value here, and therefore can
138 * not update the hpte with lv1_insert_htab_entry(), so we
139 * insted invalidate it and ask the caller to update it via
140 * ps3_hpte_insert() by returning a -1 value.
141 */
142 if (!HPTE_V_COMPARE(hpte_v, want_v) || !(hpte_v & HPTE_V_VALID)) {
143 /* not found */
144 ret = -1;
145 } else {
146 /* entry found, just invalidate it */
147 result = lv1_write_htab_entry(PS3_LPAR_VAS_ID_CURRENT,
148 slot, 0, 0);
149 ret = -1;
150 }
205 151
206 /* ps3_hpte_insert() will be used to update PTE */ 152 spin_unlock_irqrestore(&ps3_htab_lock, flags);
207 return -1; 153 return ret;
208} 154}
209 155
210static void ps3_hpte_updateboltedpp(unsigned long newpp, unsigned long ea, 156static void ps3_hpte_updateboltedpp(unsigned long newpp, unsigned long ea,
@@ -217,45 +163,35 @@ static void ps3_hpte_invalidate(unsigned long slot, unsigned long va,
217 int psize, int ssize, int local) 163 int psize, int ssize, int local)
218{ 164{
219 unsigned long flags; 165 unsigned long flags;
220 unsigned long result; 166 int result;
221 unsigned long pteg, bit; 167
168 spin_lock_irqsave(&ps3_htab_lock, flags);
222 169
223 spin_lock_irqsave(&ps3_bolttab_lock, flags); 170 result = lv1_write_htab_entry(PS3_LPAR_VAS_ID_CURRENT, slot, 0, 0);
224 result = lv1_write_htab_entry(0, slot, 0, 0);
225 171
226 if (result) { 172 if (result) {
227 DBG("%s: va=%lx slot=%lx psize=%d result = %ld (0x%lx)\n", 173 pr_info("%s: res=%d va=%lx slot=%lx psize=%d\n",
228 __func__, va, slot, psize, result, result); 174 __func__, result, va, slot, psize);
229 BUG(); 175 BUG();
230 } 176 }
231 177
232 pteg = slot / HPTES_PER_GROUP; 178 spin_unlock_irqrestore(&ps3_htab_lock, flags);
233 bit = slot % HPTES_PER_GROUP;
234 inusetab[pteg] &= ~(0x80 >> bit);
235 spin_unlock_irqrestore(&ps3_bolttab_lock, flags);
236} 179}
237 180
238static void ps3_hpte_clear(void) 181static void ps3_hpte_clear(void)
239{ 182{
240 int result; 183 unsigned long hpte_count = (1UL << ppc64_pft_size) >> 4;
241 184 u64 i;
242 DBG(" -> %s:%d\n", __func__, __LINE__);
243 185
244 result = lv1_unmap_htab(htab_addr); 186 for (i = 0; i < hpte_count; i++)
245 BUG_ON(result); 187 lv1_write_htab_entry(PS3_LPAR_VAS_ID_CURRENT, i, 0, 0);
246 188
247 ps3_mm_shutdown(); 189 ps3_mm_shutdown();
248 ps3_mm_vas_destroy(); 190 ps3_mm_vas_destroy();
249
250 DBG(" <- %s:%d\n", __func__, __LINE__);
251} 191}
252 192
253void __init ps3_hpte_init(unsigned long htab_size) 193void __init ps3_hpte_init(unsigned long htab_size)
254{ 194{
255 long bitmap_size;
256
257 DBG(" -> %s:%d\n", __func__, __LINE__);
258
259 ppc_md.hpte_invalidate = ps3_hpte_invalidate; 195 ppc_md.hpte_invalidate = ps3_hpte_invalidate;
260 ppc_md.hpte_updatepp = ps3_hpte_updatepp; 196 ppc_md.hpte_updatepp = ps3_hpte_updatepp;
261 ppc_md.hpte_updateboltedpp = ps3_hpte_updateboltedpp; 197 ppc_md.hpte_updateboltedpp = ps3_hpte_updateboltedpp;
@@ -264,28 +200,5 @@ void __init ps3_hpte_init(unsigned long htab_size)
264 ppc_md.hpte_clear_all = ps3_hpte_clear; 200 ppc_md.hpte_clear_all = ps3_hpte_clear;
265 201
266 ppc64_pft_size = __ilog2(htab_size); 202 ppc64_pft_size = __ilog2(htab_size);
267
268 bitmap_size = htab_size / sizeof(struct hash_pte) / 8;
269
270 bolttab = __va(lmb_alloc(bitmap_size, 1));
271 inusetab = __va(lmb_alloc(bitmap_size, 1));
272
273 memset(bolttab, 0, bitmap_size);
274 memset(inusetab, 0, bitmap_size);
275
276 DBG(" <- %s:%d\n", __func__, __LINE__);
277} 203}
278 204
279void __init ps3_map_htab(void)
280{
281 long result;
282 unsigned long htab_size = (1UL << ppc64_pft_size);
283
284 result = lv1_map_htab(0, &htab_addr);
285
286 htab = (__force struct hash_pte *)ioremap_flags(htab_addr, htab_size,
287 pgprot_val(PAGE_READONLY_X));
288
289 DBG("%s:%d: lpar %016lxh, virt %016lxh\n", __func__, __LINE__,
290 htab_addr, (unsigned long)htab);
291}
diff --git a/arch/powerpc/platforms/ps3/setup.c b/arch/powerpc/platforms/ps3/setup.c
index a413abbd4123..77bc330263c4 100644
--- a/arch/powerpc/platforms/ps3/setup.c
+++ b/arch/powerpc/platforms/ps3/setup.c
@@ -201,7 +201,6 @@ static void __init ps3_setup_arch(void)
201 ps3_firmware_version.rev); 201 ps3_firmware_version.rev);
202 202
203 ps3_spu_set_platform(); 203 ps3_spu_set_platform();
204 ps3_map_htab();
205 204
206#ifdef CONFIG_SMP 205#ifdef CONFIG_SMP
207 smp_init_ps3(); 206 smp_init_ps3();
diff --git a/arch/powerpc/platforms/ps3/spu.c b/arch/powerpc/platforms/ps3/spu.c
index d135cef9ed6a..ccae3d446b98 100644
--- a/arch/powerpc/platforms/ps3/spu.c
+++ b/arch/powerpc/platforms/ps3/spu.c
@@ -186,14 +186,24 @@ static void spu_unmap(struct spu *spu)
186 iounmap(spu_pdata(spu)->shadow); 186 iounmap(spu_pdata(spu)->shadow);
187} 187}
188 188
189/**
190 * setup_areas - Map the spu regions into the address space.
191 *
192 * The current HV requires the spu shadow regs to be mapped with the
193 * PTE page protection bits set as read-only (PP=3). This implementation
194 * uses the low level __ioremap() to bypass the page protection settings
195 * inforced by ioremap_flags() to get the needed PTE bits set for the
196 * shadow regs.
197 */
198
189static int __init setup_areas(struct spu *spu) 199static int __init setup_areas(struct spu *spu)
190{ 200{
191 struct table {char* name; unsigned long addr; unsigned long size;}; 201 struct table {char* name; unsigned long addr; unsigned long size;};
202 static const unsigned long shadow_flags = _PAGE_NO_CACHE | 3;
192 203
193 spu_pdata(spu)->shadow = ioremap_flags(spu_pdata(spu)->shadow_addr, 204 spu_pdata(spu)->shadow = __ioremap(spu_pdata(spu)->shadow_addr,
194 sizeof(struct spe_shadow), 205 sizeof(struct spe_shadow),
195 pgprot_val(PAGE_READONLY) | 206 shadow_flags);
196 _PAGE_NO_CACHE);
197 if (!spu_pdata(spu)->shadow) { 207 if (!spu_pdata(spu)->shadow) {
198 pr_debug("%s:%d: ioremap shadow failed\n", __func__, __LINE__); 208 pr_debug("%s:%d: ioremap shadow failed\n", __func__, __LINE__);
199 goto fail_ioremap; 209 goto fail_ioremap;
diff --git a/arch/powerpc/platforms/pseries/setup.c b/arch/powerpc/platforms/pseries/setup.c
index 3ce8a139b85d..7b01d67b4e48 100644
--- a/arch/powerpc/platforms/pseries/setup.c
+++ b/arch/powerpc/platforms/pseries/setup.c
@@ -71,6 +71,7 @@
71int CMO_PrPSP = -1; 71int CMO_PrPSP = -1;
72int CMO_SecPSP = -1; 72int CMO_SecPSP = -1;
73unsigned long CMO_PageSize = (ASM_CONST(1) << IOMMU_PAGE_SHIFT); 73unsigned long CMO_PageSize = (ASM_CONST(1) << IOMMU_PAGE_SHIFT);
74EXPORT_SYMBOL(CMO_PageSize);
74 75
75int fwnmi_active; /* TRUE if an FWNMI handler is present */ 76int fwnmi_active; /* TRUE if an FWNMI handler is present */
76 77
diff --git a/arch/powerpc/sysdev/cpm_common.c b/arch/powerpc/sysdev/cpm_common.c
index 53da8a079f96..00d3d17c84a3 100644
--- a/arch/powerpc/sysdev/cpm_common.c
+++ b/arch/powerpc/sysdev/cpm_common.c
@@ -254,15 +254,11 @@ static int cpm2_gpio32_get(struct gpio_chip *gc, unsigned int gpio)
254 return !!(in_be32(&iop->dat) & pin_mask); 254 return !!(in_be32(&iop->dat) & pin_mask);
255} 255}
256 256
257static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value) 257static void __cpm2_gpio32_set(struct of_mm_gpio_chip *mm_gc, u32 pin_mask,
258 int value)
258{ 259{
259 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
260 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc); 260 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
261 struct cpm2_ioports __iomem *iop = mm_gc->regs; 261 struct cpm2_ioports __iomem *iop = mm_gc->regs;
262 unsigned long flags;
263 u32 pin_mask = 1 << (31 - gpio);
264
265 spin_lock_irqsave(&cpm2_gc->lock, flags);
266 262
267 if (value) 263 if (value)
268 cpm2_gc->cpdata |= pin_mask; 264 cpm2_gc->cpdata |= pin_mask;
@@ -270,6 +266,18 @@ static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value)
270 cpm2_gc->cpdata &= ~pin_mask; 266 cpm2_gc->cpdata &= ~pin_mask;
271 267
272 out_be32(&iop->dat, cpm2_gc->cpdata); 268 out_be32(&iop->dat, cpm2_gc->cpdata);
269}
270
271static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value)
272{
273 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
274 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
275 unsigned long flags;
276 u32 pin_mask = 1 << (31 - gpio);
277
278 spin_lock_irqsave(&cpm2_gc->lock, flags);
279
280 __cpm2_gpio32_set(mm_gc, pin_mask, value);
273 281
274 spin_unlock_irqrestore(&cpm2_gc->lock, flags); 282 spin_unlock_irqrestore(&cpm2_gc->lock, flags);
275} 283}
@@ -277,14 +285,17 @@ static void cpm2_gpio32_set(struct gpio_chip *gc, unsigned int gpio, int value)
277static int cpm2_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val) 285static int cpm2_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
278{ 286{
279 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); 287 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
288 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
280 struct cpm2_ioports __iomem *iop = mm_gc->regs; 289 struct cpm2_ioports __iomem *iop = mm_gc->regs;
281 u32 pin_mask; 290 unsigned long flags;
291 u32 pin_mask = 1 << (31 - gpio);
282 292
283 pin_mask = 1 << (31 - gpio); 293 spin_lock_irqsave(&cpm2_gc->lock, flags);
284 294
285 setbits32(&iop->dir, pin_mask); 295 setbits32(&iop->dir, pin_mask);
296 __cpm2_gpio32_set(mm_gc, pin_mask, val);
286 297
287 cpm2_gpio32_set(gc, gpio, val); 298 spin_unlock_irqrestore(&cpm2_gc->lock, flags);
288 299
289 return 0; 300 return 0;
290} 301}
@@ -292,13 +303,17 @@ static int cpm2_gpio32_dir_out(struct gpio_chip *gc, unsigned int gpio, int val)
292static int cpm2_gpio32_dir_in(struct gpio_chip *gc, unsigned int gpio) 303static int cpm2_gpio32_dir_in(struct gpio_chip *gc, unsigned int gpio)
293{ 304{
294 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc); 305 struct of_mm_gpio_chip *mm_gc = to_of_mm_gpio_chip(gc);
306 struct cpm2_gpio32_chip *cpm2_gc = to_cpm2_gpio32_chip(mm_gc);
295 struct cpm2_ioports __iomem *iop = mm_gc->regs; 307 struct cpm2_ioports __iomem *iop = mm_gc->regs;
296 u32 pin_mask; 308 unsigned long flags;
309 u32 pin_mask = 1 << (31 - gpio);
297 310
298 pin_mask = 1 << (31 - gpio); 311 spin_lock_irqsave(&cpm2_gc->lock, flags);
299 312
300 clrbits32(&iop->dir, pin_mask); 313 clrbits32(&iop->dir, pin_mask);
301 314
315 spin_unlock_irqrestore(&cpm2_gc->lock, flags);
316
302 return 0; 317 return 0;
303} 318}
304 319
diff --git a/arch/powerpc/sysdev/qe_lib/ucc_fast.c b/arch/powerpc/sysdev/qe_lib/ucc_fast.c
index 1aecb075a72e..25fbbfaa837d 100644
--- a/arch/powerpc/sysdev/qe_lib/ucc_fast.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc_fast.c
@@ -208,6 +208,7 @@ int ucc_fast_init(struct ucc_fast_info * uf_info, struct ucc_fast_private ** ucc
208 uccf->uf_regs = ioremap(uf_info->regs, sizeof(struct ucc_fast)); 208 uccf->uf_regs = ioremap(uf_info->regs, sizeof(struct ucc_fast));
209 if (uccf->uf_regs == NULL) { 209 if (uccf->uf_regs == NULL) {
210 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__); 210 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
211 kfree(uccf);
211 return -ENOMEM; 212 return -ENOMEM;
212 } 213 }
213 214
@@ -355,6 +356,9 @@ void ucc_fast_free(struct ucc_fast_private * uccf)
355 if (uccf->ucc_fast_rx_virtual_fifo_base_offset) 356 if (uccf->ucc_fast_rx_virtual_fifo_base_offset)
356 qe_muram_free(uccf->ucc_fast_rx_virtual_fifo_base_offset); 357 qe_muram_free(uccf->ucc_fast_rx_virtual_fifo_base_offset);
357 358
359 if (uccf->uf_regs)
360 iounmap(uccf->uf_regs);
361
358 kfree(uccf); 362 kfree(uccf);
359} 363}
360EXPORT_SYMBOL(ucc_fast_free); 364EXPORT_SYMBOL(ucc_fast_free);
diff --git a/arch/powerpc/sysdev/qe_lib/ucc_slow.c b/arch/powerpc/sysdev/qe_lib/ucc_slow.c
index a578bc77b9d5..e1d6a1340157 100644
--- a/arch/powerpc/sysdev/qe_lib/ucc_slow.c
+++ b/arch/powerpc/sysdev/qe_lib/ucc_slow.c
@@ -171,6 +171,7 @@ int ucc_slow_init(struct ucc_slow_info * us_info, struct ucc_slow_private ** ucc
171 uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow)); 171 uccs->us_regs = ioremap(us_info->regs, sizeof(struct ucc_slow));
172 if (uccs->us_regs == NULL) { 172 if (uccs->us_regs == NULL) {
173 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__); 173 printk(KERN_ERR "%s: Cannot map UCC registers\n", __func__);
174 kfree(uccs);
174 return -ENOMEM; 175 return -ENOMEM;
175 } 176 }
176 177
@@ -367,10 +368,11 @@ void ucc_slow_free(struct ucc_slow_private * uccs)
367 if (uccs->tx_base_offset) 368 if (uccs->tx_base_offset)
368 qe_muram_free(uccs->tx_base_offset); 369 qe_muram_free(uccs->tx_base_offset);
369 370
370 if (uccs->us_pram) { 371 if (uccs->us_pram)
371 qe_muram_free(uccs->us_pram_offset); 372 qe_muram_free(uccs->us_pram_offset);
372 uccs->us_pram = NULL; 373
373 } 374 if (uccs->us_regs)
375 iounmap(uccs->us_regs);
374 376
375 kfree(uccs); 377 kfree(uccs);
376} 378}
diff --git a/arch/s390/kernel/compat_ptrace.h b/arch/s390/kernel/compat_ptrace.h
index cde81fa64f89..a2be3a978d5c 100644
--- a/arch/s390/kernel/compat_ptrace.h
+++ b/arch/s390/kernel/compat_ptrace.h
@@ -42,6 +42,7 @@ struct user_regs_struct32
42 u32 gprs[NUM_GPRS]; 42 u32 gprs[NUM_GPRS];
43 u32 acrs[NUM_ACRS]; 43 u32 acrs[NUM_ACRS];
44 u32 orig_gpr2; 44 u32 orig_gpr2;
45 /* nb: there's a 4-byte hole here */
45 s390_fp_regs fp_regs; 46 s390_fp_regs fp_regs;
46 /* 47 /*
47 * These per registers are in here so that gdb can modify them 48 * These per registers are in here so that gdb can modify them
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
index 2815bfe348a6..c8b08289eb87 100644
--- a/arch/s390/kernel/ptrace.c
+++ b/arch/s390/kernel/ptrace.c
@@ -170,6 +170,13 @@ static unsigned long __peek_user(struct task_struct *child, addr_t addr)
170 */ 170 */
171 tmp = (addr_t) task_pt_regs(child)->orig_gpr2; 171 tmp = (addr_t) task_pt_regs(child)->orig_gpr2;
172 172
173 } else if (addr < (addr_t) &dummy->regs.fp_regs) {
174 /*
175 * prevent reads of padding hole between
176 * orig_gpr2 and fp_regs on s390.
177 */
178 tmp = 0;
179
173 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) { 180 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) {
174 /* 181 /*
175 * floating point regs. are stored in the thread structure 182 * floating point regs. are stored in the thread structure
@@ -270,6 +277,13 @@ static int __poke_user(struct task_struct *child, addr_t addr, addr_t data)
270 */ 277 */
271 task_pt_regs(child)->orig_gpr2 = data; 278 task_pt_regs(child)->orig_gpr2 = data;
272 279
280 } else if (addr < (addr_t) &dummy->regs.fp_regs) {
281 /*
282 * prevent writes of padding hole between
283 * orig_gpr2 and fp_regs on s390.
284 */
285 return 0;
286
273 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) { 287 } else if (addr < (addr_t) (&dummy->regs.fp_regs + 1)) {
274 /* 288 /*
275 * floating point regs. are stored in the thread structure 289 * floating point regs. are stored in the thread structure
@@ -428,6 +442,13 @@ static u32 __peek_user_compat(struct task_struct *child, addr_t addr)
428 */ 442 */
429 tmp = *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4); 443 tmp = *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4);
430 444
445 } else if (addr < (addr_t) &dummy32->regs.fp_regs) {
446 /*
447 * prevent reads of padding hole between
448 * orig_gpr2 and fp_regs on s390.
449 */
450 tmp = 0;
451
431 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) { 452 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) {
432 /* 453 /*
433 * floating point regs. are stored in the thread structure 454 * floating point regs. are stored in the thread structure
@@ -514,6 +535,13 @@ static int __poke_user_compat(struct task_struct *child,
514 */ 535 */
515 *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4) = tmp; 536 *(__u32*)((addr_t) &task_pt_regs(child)->orig_gpr2 + 4) = tmp;
516 537
538 } else if (addr < (addr_t) &dummy32->regs.fp_regs) {
539 /*
540 * prevent writess of padding hole between
541 * orig_gpr2 and fp_regs on s390.
542 */
543 return 0;
544
517 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) { 545 } else if (addr < (addr_t) (&dummy32->regs.fp_regs + 1)) {
518 /* 546 /*
519 * floating point regs. are stored in the thread structure 547 * floating point regs. are stored in the thread structure
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S
index 76c1e60c92f3..607bd67a18ce 100644
--- a/arch/s390/kernel/vmlinux.lds.S
+++ b/arch/s390/kernel/vmlinux.lds.S
@@ -55,7 +55,7 @@ SECTIONS
55 __start___ex_table = .; 55 __start___ex_table = .;
56 *(__ex_table) 56 *(__ex_table)
57 __stop___ex_table = .; 57 __stop___ex_table = .;
58 } 58 } :data
59 59
60 .data : { /* Data */ 60 .data : { /* Data */
61 DATA_DATA 61 DATA_DATA
diff --git a/arch/sh/configs/ap325rxa_defconfig b/arch/sh/configs/ap325rxa_defconfig
index 29926a9b9ce2..851c870adf3b 100644
--- a/arch/sh/configs/ap325rxa_defconfig
+++ b/arch/sh/configs/ap325rxa_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.26 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 30 01:18:59 2008 4# Tue Aug 26 14:21:17 2008
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
@@ -20,7 +21,6 @@ CONFIG_LOCKDEP_SUPPORT=y
20# CONFIG_ARCH_HAS_ILOG2_U32 is not set 21# CONFIG_ARCH_HAS_ILOG2_U32 is not set
21# CONFIG_ARCH_HAS_ILOG2_U64 is not set 22# CONFIG_ARCH_HAS_ILOG2_U64 is not set
22CONFIG_ARCH_NO_VIRT_TO_BUS=y 23CONFIG_ARCH_NO_VIRT_TO_BUS=y
23CONFIG_ARCH_SUPPORTS_AOUT=y
24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 24CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
25 25
26# 26#
@@ -58,7 +58,6 @@ CONFIG_SYSCTL=y
58CONFIG_EMBEDDED=y 58CONFIG_EMBEDDED=y
59CONFIG_UID16=y 59CONFIG_UID16=y
60CONFIG_SYSCTL_SYSCALL=y 60CONFIG_SYSCTL_SYSCALL=y
61CONFIG_SYSCTL_SYSCALL_CHECK=y
62# CONFIG_KALLSYMS is not set 61# CONFIG_KALLSYMS is not set
63CONFIG_HOTPLUG=y 62CONFIG_HOTPLUG=y
64CONFIG_PRINTK=y 63CONFIG_PRINTK=y
@@ -89,6 +88,7 @@ CONFIG_HAVE_OPROFILE=y
89# CONFIG_USE_GENERIC_SMP_HELPERS is not set 88# CONFIG_USE_GENERIC_SMP_HELPERS is not set
90CONFIG_HAVE_CLK=y 89CONFIG_HAVE_CLK=y
91CONFIG_PROC_PAGE_MONITOR=y 90CONFIG_PROC_PAGE_MONITOR=y
91CONFIG_HAVE_GENERIC_DMA_COHERENT=y
92CONFIG_SLABINFO=y 92CONFIG_SLABINFO=y
93CONFIG_RT_MUTEXES=y 93CONFIG_RT_MUTEXES=y
94# CONFIG_TINY_SHMEM is not set 94# CONFIG_TINY_SHMEM is not set
@@ -261,9 +261,10 @@ CONFIG_HZ_250=y
261# CONFIG_HZ_300 is not set 261# CONFIG_HZ_300 is not set
262# CONFIG_HZ_1000 is not set 262# CONFIG_HZ_1000 is not set
263CONFIG_HZ=250 263CONFIG_HZ=250
264# CONFIG_SCHED_HRTICK is not set 264CONFIG_SCHED_HRTICK=y
265# CONFIG_KEXEC is not set 265# CONFIG_KEXEC is not set
266# CONFIG_CRASH_DUMP is not set 266# CONFIG_CRASH_DUMP is not set
267CONFIG_SECCOMP=y
267# CONFIG_PREEMPT_NONE is not set 268# CONFIG_PREEMPT_NONE is not set
268# CONFIG_PREEMPT_VOLUNTARY is not set 269# CONFIG_PREEMPT_VOLUNTARY is not set
269CONFIG_PREEMPT=y 270CONFIG_PREEMPT=y
@@ -289,10 +290,6 @@ CONFIG_CMDLINE="console=tty1 console=ttySC5,38400 root=/dev/nfs ip=dhcp"
289# 290#
290CONFIG_BINFMT_ELF=y 291CONFIG_BINFMT_ELF=y
291# CONFIG_BINFMT_MISC is not set 292# CONFIG_BINFMT_MISC is not set
292
293#
294# Networking
295#
296CONFIG_NET=y 293CONFIG_NET=y
297 294
298# 295#
@@ -647,6 +644,7 @@ CONFIG_SSB_POSSIBLE=y
647# CONFIG_MFD_CORE is not set 644# CONFIG_MFD_CORE is not set
648# CONFIG_MFD_SM501 is not set 645# CONFIG_MFD_SM501 is not set
649# CONFIG_HTC_PASIC3 is not set 646# CONFIG_HTC_PASIC3 is not set
647# CONFIG_MFD_TMIO is not set
650 648
651# 649#
652# Multimedia devices 650# Multimedia devices
@@ -690,7 +688,10 @@ CONFIG_DUMMY_CONSOLE=y
690# CONFIG_ACCESSIBILITY is not set 688# CONFIG_ACCESSIBILITY is not set
691# CONFIG_RTC_CLASS is not set 689# CONFIG_RTC_CLASS is not set
692# CONFIG_DMADEVICES is not set 690# CONFIG_DMADEVICES is not set
693# CONFIG_UIO is not set 691CONFIG_UIO=y
692# CONFIG_UIO_PDRV is not set
693CONFIG_UIO_PDRV_GENIRQ=y
694# CONFIG_UIO_SMX is not set
694 695
695# 696#
696# File systems 697# File systems
@@ -854,6 +855,7 @@ CONFIG_FRAME_WARN=1024
854# CONFIG_DEBUG_KERNEL is not set 855# CONFIG_DEBUG_KERNEL is not set
855# CONFIG_DEBUG_BUGVERBOSE is not set 856# CONFIG_DEBUG_BUGVERBOSE is not set
856# CONFIG_DEBUG_MEMORY_INIT is not set 857# CONFIG_DEBUG_MEMORY_INIT is not set
858CONFIG_SYSCTL_SYSCALL_CHECK=y
857# CONFIG_SAMPLES is not set 859# CONFIG_SAMPLES is not set
858# CONFIG_SH_STANDARD_BIOS is not set 860# CONFIG_SH_STANDARD_BIOS is not set
859# CONFIG_EARLY_SCIF_CONSOLE is not set 861# CONFIG_EARLY_SCIF_CONSOLE is not set
diff --git a/arch/sh/configs/migor_defconfig b/arch/sh/configs/migor_defconfig
index c4b3e1d8950d..4f8b1974f2c7 100644
--- a/arch/sh/configs/migor_defconfig
+++ b/arch/sh/configs/migor_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.26 3# Linux kernel version: 2.6.27-rc4
4# Wed Jul 30 01:44:41 2008 4# Tue Aug 26 14:18:17 2008
5# 5#
6CONFIG_SUPERH=y 6CONFIG_SUPERH=y
7CONFIG_SUPERH32=y 7CONFIG_SUPERH32=y
@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
11CONFIG_GENERIC_FIND_NEXT_BIT=y 11CONFIG_GENERIC_FIND_NEXT_BIT=y
12CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_HARDIRQS=y 13CONFIG_GENERIC_HARDIRQS=y
14CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
14CONFIG_GENERIC_IRQ_PROBE=y 15CONFIG_GENERIC_IRQ_PROBE=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 16CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_GENERIC_TIME=y 17CONFIG_GENERIC_TIME=y
@@ -21,7 +22,6 @@ CONFIG_LOCKDEP_SUPPORT=y
21# CONFIG_ARCH_HAS_ILOG2_U32 is not set 22# CONFIG_ARCH_HAS_ILOG2_U32 is not set
22# CONFIG_ARCH_HAS_ILOG2_U64 is not set 23# CONFIG_ARCH_HAS_ILOG2_U64 is not set
23CONFIG_ARCH_NO_VIRT_TO_BUS=y 24CONFIG_ARCH_NO_VIRT_TO_BUS=y
24CONFIG_ARCH_SUPPORTS_AOUT=y
25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 25CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
26 26
27# 27#
@@ -87,6 +87,7 @@ CONFIG_HAVE_OPROFILE=y
87# CONFIG_USE_GENERIC_SMP_HELPERS is not set 87# CONFIG_USE_GENERIC_SMP_HELPERS is not set
88CONFIG_HAVE_CLK=y 88CONFIG_HAVE_CLK=y
89CONFIG_PROC_PAGE_MONITOR=y 89CONFIG_PROC_PAGE_MONITOR=y
90CONFIG_HAVE_GENERIC_DMA_COHERENT=y
90CONFIG_SLABINFO=y 91CONFIG_SLABINFO=y
91CONFIG_RT_MUTEXES=y 92CONFIG_RT_MUTEXES=y
92# CONFIG_TINY_SHMEM is not set 93# CONFIG_TINY_SHMEM is not set
@@ -270,6 +271,7 @@ CONFIG_HZ=250
270# CONFIG_SCHED_HRTICK is not set 271# CONFIG_SCHED_HRTICK is not set
271# CONFIG_KEXEC is not set 272# CONFIG_KEXEC is not set
272# CONFIG_CRASH_DUMP is not set 273# CONFIG_CRASH_DUMP is not set
274CONFIG_SECCOMP=y
273CONFIG_PREEMPT_NONE=y 275CONFIG_PREEMPT_NONE=y
274# CONFIG_PREEMPT_VOLUNTARY is not set 276# CONFIG_PREEMPT_VOLUNTARY is not set
275# CONFIG_PREEMPT is not set 277# CONFIG_PREEMPT is not set
@@ -294,10 +296,6 @@ CONFIG_CMDLINE="console=ttySC0,115200 earlyprintk=serial ip=on"
294# 296#
295CONFIG_BINFMT_ELF=y 297CONFIG_BINFMT_ELF=y
296# CONFIG_BINFMT_MISC is not set 298# CONFIG_BINFMT_MISC is not set
297
298#
299# Networking
300#
301CONFIG_NET=y 299CONFIG_NET=y
302 300
303# 301#
@@ -649,6 +647,7 @@ CONFIG_HW_RANDOM=y
649CONFIG_I2C=y 647CONFIG_I2C=y
650CONFIG_I2C_BOARDINFO=y 648CONFIG_I2C_BOARDINFO=y
651# CONFIG_I2C_CHARDEV is not set 649# CONFIG_I2C_CHARDEV is not set
650CONFIG_I2C_HELPER_AUTO=y
652 651
653# 652#
654# I2C Hardware Bus support 653# I2C Hardware Bus support
@@ -709,6 +708,7 @@ CONFIG_SSB_POSSIBLE=y
709# CONFIG_MFD_CORE is not set 708# CONFIG_MFD_CORE is not set
710# CONFIG_MFD_SM501 is not set 709# CONFIG_MFD_SM501 is not set
711# CONFIG_HTC_PASIC3 is not set 710# CONFIG_HTC_PASIC3 is not set
711# CONFIG_MFD_TMIO is not set
712 712
713# 713#
714# Multimedia devices 714# Multimedia devices
@@ -755,6 +755,8 @@ CONFIG_USB_ARCH_HAS_HCD=y
755# CONFIG_USB is not set 755# CONFIG_USB is not set
756# CONFIG_USB_OTG_WHITELIST is not set 756# CONFIG_USB_OTG_WHITELIST is not set
757# CONFIG_USB_OTG_BLACKLIST_HUB is not set 757# CONFIG_USB_OTG_BLACKLIST_HUB is not set
758# CONFIG_USB_MUSB_HDRC is not set
759# CONFIG_USB_GADGET_MUSB_HDRC is not set
758 760
759# 761#
760# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 762# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -842,7 +844,10 @@ CONFIG_RTC_DRV_RS5C372=y
842# 844#
843CONFIG_RTC_DRV_SH=y 845CONFIG_RTC_DRV_SH=y
844# CONFIG_DMADEVICES is not set 846# CONFIG_DMADEVICES is not set
845# CONFIG_UIO is not set 847CONFIG_UIO=y
848# CONFIG_UIO_PDRV is not set
849CONFIG_UIO_PDRV_GENIRQ=y
850# CONFIG_UIO_SMX is not set
846 851
847# 852#
848# File systems 853# File systems
diff --git a/arch/sh/include/asm/uaccess_64.h b/arch/sh/include/asm/uaccess_64.h
index 81b3d515fcb3..5580fd471003 100644
--- a/arch/sh/include/asm/uaccess_64.h
+++ b/arch/sh/include/asm/uaccess_64.h
@@ -76,4 +76,6 @@ extern long __put_user_asm_l(void *, long);
76extern long __put_user_asm_q(void *, long); 76extern long __put_user_asm_q(void *, long);
77extern void __put_user_unknown(void); 77extern void __put_user_unknown(void);
78 78
79extern long __strnlen_user(const char *__s, long __n);
80
79#endif /* __ASM_SH_UACCESS_64_H */ 81#endif /* __ASM_SH_UACCESS_64_H */
diff --git a/arch/sh/kernel/cpu/sh5/entry.S b/arch/sh/kernel/cpu/sh5/entry.S
index 04c7da968146..e640c63d5811 100644
--- a/arch/sh/kernel/cpu/sh5/entry.S
+++ b/arch/sh/kernel/cpu/sh5/entry.S
@@ -2,7 +2,7 @@
2 * arch/sh/kernel/cpu/sh5/entry.S 2 * arch/sh/kernel/cpu/sh5/entry.S
3 * 3 *
4 * Copyright (C) 2000, 2001 Paolo Alberelli 4 * Copyright (C) 2000, 2001 Paolo Alberelli
5 * Copyright (C) 2004 - 2007 Paul Mundt 5 * Copyright (C) 2004 - 2008 Paul Mundt
6 * Copyright (C) 2003, 2004 Richard Curnow 6 * Copyright (C) 2003, 2004 Richard Curnow
7 * 7 *
8 * This file is subject to the terms and conditions of the GNU General Public 8 * This file is subject to the terms and conditions of the GNU General Public
@@ -923,6 +923,8 @@ ret_from_exception:
923 blink tr0, ZERO 923 blink tr0, ZERO
924 924
925resume_kernel: 925resume_kernel:
926 CLI()
927
926 pta restore_all, tr0 928 pta restore_all, tr0
927 929
928 getcon KCR0, r6 930 getcon KCR0, r6
@@ -939,19 +941,11 @@ need_resched:
939 andi r7, 0xf0, r7 941 andi r7, 0xf0, r7
940 bne r7, ZERO, tr0 942 bne r7, ZERO, tr0
941 943
942 movi ((PREEMPT_ACTIVE >> 16) & 65535), r8 944 movi preempt_schedule_irq, r7
943 shori (PREEMPT_ACTIVE & 65535), r8
944 st.l r6, TI_PRE_COUNT, r8
945
946 STI()
947 movi schedule, r7
948 ori r7, 1, r7 945 ori r7, 1, r7
949 ptabs r7, tr1 946 ptabs r7, tr1
950 blink tr1, LINK 947 blink tr1, LINK
951 948
952 st.l r6, TI_PRE_COUNT, ZERO
953 CLI()
954
955 pta need_resched, tr1 949 pta need_resched, tr1
956 blink tr1, ZERO 950 blink tr1, ZERO
957#endif 951#endif
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S
index 0bc17def55a7..efbb4268875e 100644
--- a/arch/sh/kernel/entry-common.S
+++ b/arch/sh/kernel/entry-common.S
@@ -92,6 +92,7 @@ ENTRY(ret_from_irq)
92 bra resume_userspace 92 bra resume_userspace
93 nop 93 nop
94ENTRY(resume_kernel) 94ENTRY(resume_kernel)
95 cli
95 mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count 96 mov.l @(TI_PRE_COUNT,r8), r0 ! current_thread_info->preempt_count
96 tst r0, r0 97 tst r0, r0
97 bf noresched 98 bf noresched
@@ -105,28 +106,9 @@ need_resched:
105 and #0xf0, r0 ! interrupts off (exception path)? 106 and #0xf0, r0 ! interrupts off (exception path)?
106 cmp/eq #0xf0, r0 107 cmp/eq #0xf0, r0
107 bt noresched 108 bt noresched
108
109 mov.l 1f, r0
110 mov.l r0, @(TI_PRE_COUNT,r8)
111
112#ifdef CONFIG_TRACE_IRQFLAGS
113 mov.l 3f, r0 109 mov.l 3f, r0
114 jsr @r0 110 jsr @r0 ! call preempt_schedule_irq
115 nop
116#endif
117 sti
118 mov.l 2f, r0
119 jsr @r0
120 nop
121 mov #0, r0
122 mov.l r0, @(TI_PRE_COUNT,r8)
123 cli
124#ifdef CONFIG_TRACE_IRQFLAGS
125 mov.l 4f, r0
126 jsr @r0
127 nop 111 nop
128#endif
129
130 bra need_resched 112 bra need_resched
131 nop 113 nop
132 114
@@ -137,10 +119,7 @@ noresched:
137 .align 2 119 .align 2
1381: .long PREEMPT_ACTIVE 1201: .long PREEMPT_ACTIVE
1392: .long schedule 1212: .long schedule
140#ifdef CONFIG_TRACE_IRQFLAGS 1223: .long preempt_schedule_irq
1413: .long trace_hardirqs_on
1424: .long trace_hardirqs_off
143#endif
144#endif 123#endif
145 124
146ENTRY(resume_userspace) 125ENTRY(resume_userspace)
diff --git a/arch/sh/kernel/machine_kexec.c b/arch/sh/kernel/machine_kexec.c
index 4703dff174d5..94df56b0d1f6 100644
--- a/arch/sh/kernel/machine_kexec.c
+++ b/arch/sh/kernel/machine_kexec.c
@@ -102,7 +102,7 @@ void machine_kexec(struct kimage *image)
102 102
103 /* now call it */ 103 /* now call it */
104 rnk = (relocate_new_kernel_t) reboot_code_buffer; 104 rnk = (relocate_new_kernel_t) reboot_code_buffer;
105 (*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg); 105 (*rnk)(page_list, reboot_code_buffer, P2SEGADDR(image->start), vbr_reg);
106} 106}
107 107
108void arch_crash_save_vmcoreinfo(void) 108void arch_crash_save_vmcoreinfo(void)
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c
index 5922edd416db..9c6424892bd3 100644
--- a/arch/sh/kernel/ptrace_64.c
+++ b/arch/sh/kernel/ptrace_64.c
@@ -131,6 +131,8 @@ void user_enable_single_step(struct task_struct *child)
131 131
132void user_disable_single_step(struct task_struct *child) 132void user_disable_single_step(struct task_struct *child)
133{ 133{
134 struct pt_regs *regs = child->thread.uregs;
135
134 regs->sr &= ~SR_SSTEP; 136 regs->sr &= ~SR_SSTEP;
135} 137}
136 138
diff --git a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
index a35207655e7b..de832056bf1b 100644
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -171,6 +171,7 @@ static void __init reserve_crashkernel(void)
171 (unsigned long)(free_mem >> 20)); 171 (unsigned long)(free_mem >> 20));
172 crashk_res.start = crash_base; 172 crashk_res.start = crash_base;
173 crashk_res.end = crash_base + crash_size - 1; 173 crashk_res.end = crash_base + crash_size - 1;
174 insert_resource(&iomem_resource, &crashk_res);
174 } 175 }
175} 176}
176#else 177#else
@@ -204,11 +205,6 @@ void __init __add_active_range(unsigned int nid, unsigned long start_pfn,
204 request_resource(res, &data_resource); 205 request_resource(res, &data_resource);
205 request_resource(res, &bss_resource); 206 request_resource(res, &bss_resource);
206 207
207#ifdef CONFIG_KEXEC
208 if (crashk_res.start != crashk_res.end)
209 request_resource(res, &crashk_res);
210#endif
211
212 add_active_range(nid, start_pfn, end_pfn); 208 add_active_range(nid, start_pfn, end_pfn);
213} 209}
214 210
diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c
index 59cd2859ce9b..9061b86d73fa 100644
--- a/arch/sh/kernel/sys_sh.c
+++ b/arch/sh/kernel/sys_sh.c
@@ -170,7 +170,7 @@ asmlinkage int sys_ipc(uint call, int first, int second,
170 version = call >> 16; /* hack for backward compatibility */ 170 version = call >> 16; /* hack for backward compatibility */
171 call &= 0xffff; 171 call &= 0xffff;
172 172
173 if (call <= SEMCTL) 173 if (call <= SEMTIMEDOP)
174 switch (call) { 174 switch (call) {
175 case SEMOP: 175 case SEMOP:
176 return sys_semtimedop(first, 176 return sys_semtimedop(first,
diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c
index 895bb3f335c7..64b8f7f96f9a 100644
--- a/arch/sh/mm/consistent.c
+++ b/arch/sh/mm/consistent.c
@@ -101,7 +101,7 @@ static int __init memchunk_setup(char *str)
101} 101}
102__setup("memchunk.", memchunk_setup); 102__setup("memchunk.", memchunk_setup);
103 103
104static void memchunk_cmdline_override(char *name, unsigned long *sizep) 104static void __init memchunk_cmdline_override(char *name, unsigned long *sizep)
105{ 105{
106 char *p = boot_command_line; 106 char *p = boot_command_line;
107 int k = strlen(name); 107 int k = strlen(name);
@@ -118,8 +118,8 @@ static void memchunk_cmdline_override(char *name, unsigned long *sizep)
118 } 118 }
119} 119}
120 120
121int platform_resource_setup_memory(struct platform_device *pdev, 121int __init platform_resource_setup_memory(struct platform_device *pdev,
122 char *name, unsigned long memsize) 122 char *name, unsigned long memsize)
123{ 123{
124 struct resource *r; 124 struct resource *r;
125 dma_addr_t dma_handle; 125 dma_addr_t dma_handle;
diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile
index 6668e6037af6..9592889a6fd0 100644
--- a/arch/sparc/Makefile
+++ b/arch/sparc/Makefile
@@ -52,20 +52,24 @@ endif
52export INIT_Y CORE_Y DRIVERS_Y NET_Y LIBS_Y HEAD_Y kallsyms.o 52export INIT_Y CORE_Y DRIVERS_Y NET_Y LIBS_Y HEAD_Y kallsyms.o
53 53
54# Default target 54# Default target
55all: image 55all: zImage
56 56
57boot := arch/sparc/boot 57boot := arch/sparc/boot
58 58
59image tftpboot.img: vmlinux 59image zImage tftpboot.img: vmlinux
60 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 60 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
61 61
62archclean: 62archclean:
63 $(Q)$(MAKE) $(clean)=$(boot) 63 $(Q)$(MAKE) $(clean)=$(boot)
64 64
65# This is the image used for packaging
66KBUILD_IMAGE := $(boot)/zImage
67
65CLEAN_FILES += arch/$(ARCH)/boot/System.map 68CLEAN_FILES += arch/$(ARCH)/boot/System.map
66 69
67# Don't use tabs in echo arguments. 70# Don't use tabs in echo arguments.
68define archhelp 71define archhelp
69 echo '* image - kernel image ($(boot)/image)' 72 echo '* image - kernel image ($(boot)/image)'
73 echo '* zImage - stripped kernel image ($(boot)/zImage)'
70 echo ' tftpboot.img - image prepared for tftp' 74 echo ' tftpboot.img - image prepared for tftp'
71endef 75endef
diff --git a/arch/sparc/boot/Makefile b/arch/sparc/boot/Makefile
index 22d331e1e941..3e77a9f52248 100644
--- a/arch/sparc/boot/Makefile
+++ b/arch/sparc/boot/Makefile
@@ -19,6 +19,9 @@ quiet_cmd_sysmap = SYSMAP $(obj)/System.map
19 cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap 19 cmd_sysmap = $(CONFIG_SHELL) $(srctree)/scripts/mksysmap
20quiet_cmd_image = LD $@ 20quiet_cmd_image = LD $@
21 cmd_image = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) -o $@ 21 cmd_image = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) -o $@
22quiet_cmd_strip = STRIP $@
23 cmd_strip = $(STRIP) -R .comment -R .note -K sun4u_init -K _end -K _start $(obj)/image -o $@
24
22 25
23define rule_image 26define rule_image
24 $(if $($(quiet)cmd_image), \ 27 $(if $($(quiet)cmd_image), \
@@ -49,6 +52,9 @@ LDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds $(BTOBJS) \
49$(obj)/image: $(obj)/btfix.o FORCE 52$(obj)/image: $(obj)/btfix.o FORCE
50 $(call if_changed_rule,image) 53 $(call if_changed_rule,image)
51 54
55$(obj)/zImage: $(obj)/image
56 $(call if_changed,strip)
57
52$(obj)/tftpboot.img: $(obj)/piggyback $(obj)/System.map $(obj)/image FORCE 58$(obj)/tftpboot.img: $(obj)/piggyback $(obj)/System.map $(obj)/image FORCE
53 $(call if_changed,elftoaout) 59 $(call if_changed,elftoaout)
54 $(call if_changed,piggy) 60 $(call if_changed,piggy)
diff --git a/arch/sparc/include/asm/smp_32.h b/arch/sparc/include/asm/smp_32.h
index 7201752cf934..a8180e546a48 100644
--- a/arch/sparc/include/asm/smp_32.h
+++ b/arch/sparc/include/asm/smp_32.h
@@ -50,27 +50,24 @@ struct seq_file;
50void smp_bogo(struct seq_file *); 50void smp_bogo(struct seq_file *);
51void smp_info(struct seq_file *); 51void smp_info(struct seq_file *);
52 52
53BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) 53BTFIXUPDEF_CALL(void, smp_cross_call, smpfunc_t, cpumask_t, unsigned long, unsigned long, unsigned long, unsigned long)
54BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void) 54BTFIXUPDEF_CALL(int, __hard_smp_processor_id, void)
55BTFIXUPDEF_BLACKBOX(hard_smp_processor_id) 55BTFIXUPDEF_BLACKBOX(hard_smp_processor_id)
56BTFIXUPDEF_BLACKBOX(load_current) 56BTFIXUPDEF_BLACKBOX(load_current)
57 57
58#define smp_cross_call(func,arg1,arg2,arg3,arg4,arg5) BTFIXUP_CALL(smp_cross_call)(func,arg1,arg2,arg3,arg4,arg5) 58#define smp_cross_call(func,mask,arg1,arg2,arg3,arg4) BTFIXUP_CALL(smp_cross_call)(func,mask,arg1,arg2,arg3,arg4)
59 59
60static inline void xc0(smpfunc_t func) { smp_cross_call(func, 0, 0, 0, 0, 0); } 60static inline void xc0(smpfunc_t func) { smp_cross_call(func, cpu_online_map, 0, 0, 0, 0); }
61static inline void xc1(smpfunc_t func, unsigned long arg1) 61static inline void xc1(smpfunc_t func, unsigned long arg1)
62{ smp_cross_call(func, arg1, 0, 0, 0, 0); } 62{ smp_cross_call(func, cpu_online_map, arg1, 0, 0, 0); }
63static inline void xc2(smpfunc_t func, unsigned long arg1, unsigned long arg2) 63static inline void xc2(smpfunc_t func, unsigned long arg1, unsigned long arg2)
64{ smp_cross_call(func, arg1, arg2, 0, 0, 0); } 64{ smp_cross_call(func, cpu_online_map, arg1, arg2, 0, 0); }
65static inline void xc3(smpfunc_t func, unsigned long arg1, unsigned long arg2, 65static inline void xc3(smpfunc_t func, unsigned long arg1, unsigned long arg2,
66 unsigned long arg3) 66 unsigned long arg3)
67{ smp_cross_call(func, arg1, arg2, arg3, 0, 0); } 67{ smp_cross_call(func, cpu_online_map, arg1, arg2, arg3, 0); }
68static inline void xc4(smpfunc_t func, unsigned long arg1, unsigned long arg2, 68static inline void xc4(smpfunc_t func, unsigned long arg1, unsigned long arg2,
69 unsigned long arg3, unsigned long arg4) 69 unsigned long arg3, unsigned long arg4)
70{ smp_cross_call(func, arg1, arg2, arg3, arg4, 0); } 70{ smp_cross_call(func, cpu_online_map, arg1, arg2, arg3, arg4); }
71static inline void xc5(smpfunc_t func, unsigned long arg1, unsigned long arg2,
72 unsigned long arg3, unsigned long arg4, unsigned long arg5)
73{ smp_cross_call(func, arg1, arg2, arg3, arg4, arg5); }
74 71
75static inline int smp_call_function(void (*func)(void *info), void *info, int wait) 72static inline int smp_call_function(void (*func)(void *info), void *info, int wait)
76{ 73{
@@ -78,6 +75,14 @@ static inline int smp_call_function(void (*func)(void *info), void *info, int wa
78 return 0; 75 return 0;
79} 76}
80 77
78static inline int smp_call_function_single(int cpuid, void (*func) (void *info),
79 void *info, int wait)
80{
81 smp_cross_call((smpfunc_t)func, cpumask_of_cpu(cpuid),
82 (unsigned long) info, 0, 0, 0);
83 return 0;
84}
85
81static inline int cpu_logical_map(int cpu) 86static inline int cpu_logical_map(int cpu)
82{ 87{
83 return cpu; 88 return cpu;
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c
index cc4c235c4f59..f58c537446a8 100644
--- a/arch/sparc/kernel/of_device.c
+++ b/arch/sparc/kernel/of_device.c
@@ -70,7 +70,7 @@ struct of_bus {
70 int *addrc, int *sizec); 70 int *addrc, int *sizec);
71 int (*map)(u32 *addr, const u32 *range, 71 int (*map)(u32 *addr, const u32 *range,
72 int na, int ns, int pna); 72 int na, int ns, int pna);
73 unsigned int (*get_flags)(const u32 *addr); 73 unsigned long (*get_flags)(const u32 *addr, unsigned long);
74}; 74};
75 75
76/* 76/*
@@ -130,8 +130,10 @@ static int of_bus_default_map(u32 *addr, const u32 *range,
130 return 0; 130 return 0;
131} 131}
132 132
133static unsigned int of_bus_default_get_flags(const u32 *addr) 133static unsigned long of_bus_default_get_flags(const u32 *addr, unsigned long flags)
134{ 134{
135 if (flags)
136 return flags;
135 return IORESOURCE_MEM; 137 return IORESOURCE_MEM;
136} 138}
137 139
@@ -194,17 +196,21 @@ static int of_bus_pci_map(u32 *addr, const u32 *range,
194 return 0; 196 return 0;
195} 197}
196 198
197static unsigned int of_bus_pci_get_flags(const u32 *addr) 199static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)
198{ 200{
199 unsigned int flags = 0;
200 u32 w = addr[0]; 201 u32 w = addr[0];
201 202
203 /* For PCI, we override whatever child busses may have used. */
204 flags = 0;
202 switch((w >> 24) & 0x03) { 205 switch((w >> 24) & 0x03) {
203 case 0x01: 206 case 0x01:
204 flags |= IORESOURCE_IO; 207 flags |= IORESOURCE_IO;
208 break;
209
205 case 0x02: /* 32 bits */ 210 case 0x02: /* 32 bits */
206 case 0x03: /* 64 bits */ 211 case 0x03: /* 64 bits */
207 flags |= IORESOURCE_MEM; 212 flags |= IORESOURCE_MEM;
213 break;
208 } 214 }
209 if (w & 0x40000000) 215 if (w & 0x40000000)
210 flags |= IORESOURCE_PREFETCH; 216 flags |= IORESOURCE_PREFETCH;
@@ -235,7 +241,7 @@ static int of_bus_sbus_map(u32 *addr, const u32 *range, int na, int ns, int pna)
235 return of_bus_default_map(addr, range, na, ns, pna); 241 return of_bus_default_map(addr, range, na, ns, pna);
236} 242}
237 243
238static unsigned int of_bus_sbus_get_flags(const u32 *addr) 244static unsigned long of_bus_sbus_get_flags(const u32 *addr, unsigned long flags)
239{ 245{
240 return IORESOURCE_MEM; 246 return IORESOURCE_MEM;
241} 247}
@@ -362,10 +368,11 @@ static void __init build_device_resources(struct of_device *op,
362 int pna, pns; 368 int pna, pns;
363 369
364 size = of_read_addr(reg + na, ns); 370 size = of_read_addr(reg + na, ns);
365 flags = bus->get_flags(reg);
366 371
367 memcpy(addr, reg, na * 4); 372 memcpy(addr, reg, na * 4);
368 373
374 flags = bus->get_flags(reg, 0);
375
369 /* If the immediate parent has no ranges property to apply, 376 /* If the immediate parent has no ranges property to apply,
370 * just use a 1<->1 mapping. 377 * just use a 1<->1 mapping.
371 */ 378 */
@@ -393,6 +400,8 @@ static void __init build_device_resources(struct of_device *op,
393 dna, dns, pna)) 400 dna, dns, pna))
394 break; 401 break;
395 402
403 flags = pbus->get_flags(addr, flags);
404
396 dna = pna; 405 dna = pna;
397 dns = pns; 406 dns = pns;
398 dbus = pbus; 407 dbus = pbus;
diff --git a/arch/sparc/kernel/ptrace.c b/arch/sparc/kernel/ptrace.c
index 20699c701412..8ce6285a06d5 100644
--- a/arch/sparc/kernel/ptrace.c
+++ b/arch/sparc/kernel/ptrace.c
@@ -288,7 +288,7 @@ static const struct user_regset sparc32_regsets[] = {
288 */ 288 */
289 [REGSET_GENERAL] = { 289 [REGSET_GENERAL] = {
290 .core_note_type = NT_PRSTATUS, 290 .core_note_type = NT_PRSTATUS,
291 .n = 38 * sizeof(u32), 291 .n = 38,
292 .size = sizeof(u32), .align = sizeof(u32), 292 .size = sizeof(u32), .align = sizeof(u32),
293 .get = genregs32_get, .set = genregs32_set 293 .get = genregs32_get, .set = genregs32_set
294 }, 294 },
@@ -304,7 +304,7 @@ static const struct user_regset sparc32_regsets[] = {
304 */ 304 */
305 [REGSET_FP] = { 305 [REGSET_FP] = {
306 .core_note_type = NT_PRFPREG, 306 .core_note_type = NT_PRFPREG,
307 .n = 99 * sizeof(u32), 307 .n = 99,
308 .size = sizeof(u32), .align = sizeof(u32), 308 .size = sizeof(u32), .align = sizeof(u32),
309 .get = fpregs32_get, .set = fpregs32_set 309 .get = fpregs32_get, .set = fpregs32_set
310 }, 310 },
diff --git a/arch/sparc/kernel/sun4d_smp.c b/arch/sparc/kernel/sun4d_smp.c
index dfde77ff0848..69596402a500 100644
--- a/arch/sparc/kernel/sun4d_smp.c
+++ b/arch/sparc/kernel/sun4d_smp.c
@@ -262,8 +262,9 @@ static struct smp_funcall {
262static DEFINE_SPINLOCK(cross_call_lock); 262static DEFINE_SPINLOCK(cross_call_lock);
263 263
264/* Cross calls must be serialized, at least currently. */ 264/* Cross calls must be serialized, at least currently. */
265void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2, 265static void smp4d_cross_call(smpfunc_t func, cpumask_t mask, unsigned long arg1,
266 unsigned long arg3, unsigned long arg4, unsigned long arg5) 266 unsigned long arg2, unsigned long arg3,
267 unsigned long arg4)
267{ 268{
268 if(smp_processors_ready) { 269 if(smp_processors_ready) {
269 register int high = smp_highest_cpu; 270 register int high = smp_highest_cpu;
@@ -278,7 +279,7 @@ void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2,
278 register unsigned long a2 asm("i2") = arg2; 279 register unsigned long a2 asm("i2") = arg2;
279 register unsigned long a3 asm("i3") = arg3; 280 register unsigned long a3 asm("i3") = arg3;
280 register unsigned long a4 asm("i4") = arg4; 281 register unsigned long a4 asm("i4") = arg4;
281 register unsigned long a5 asm("i5") = arg5; 282 register unsigned long a5 asm("i5") = 0;
282 283
283 __asm__ __volatile__( 284 __asm__ __volatile__(
284 "std %0, [%6]\n\t" 285 "std %0, [%6]\n\t"
@@ -290,11 +291,10 @@ void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2,
290 291
291 /* Init receive/complete mapping, plus fire the IPI's off. */ 292 /* Init receive/complete mapping, plus fire the IPI's off. */
292 { 293 {
293 cpumask_t mask;
294 register int i; 294 register int i;
295 295
296 mask = cpumask_of_cpu(hard_smp4d_processor_id()); 296 cpu_clear(smp_processor_id(), mask);
297 cpus_andnot(mask, cpu_online_map, mask); 297 cpus_and(mask, cpu_online_map, mask);
298 for(i = 0; i <= high; i++) { 298 for(i = 0; i <= high; i++) {
299 if (cpu_isset(i, mask)) { 299 if (cpu_isset(i, mask)) {
300 ccall_info.processors_in[i] = 0; 300 ccall_info.processors_in[i] = 0;
@@ -309,12 +309,16 @@ void smp4d_cross_call(smpfunc_t func, unsigned long arg1, unsigned long arg2,
309 309
310 i = 0; 310 i = 0;
311 do { 311 do {
312 if (!cpu_isset(i, mask))
313 continue;
312 while(!ccall_info.processors_in[i]) 314 while(!ccall_info.processors_in[i])
313 barrier(); 315 barrier();
314 } while(++i <= high); 316 } while(++i <= high);
315 317
316 i = 0; 318 i = 0;
317 do { 319 do {
320 if (!cpu_isset(i, mask))
321 continue;
318 while(!ccall_info.processors_out[i]) 322 while(!ccall_info.processors_out[i])
319 barrier(); 323 barrier();
320 } while(++i <= high); 324 } while(++i <= high);
diff --git a/arch/sparc/kernel/sun4m_smp.c b/arch/sparc/kernel/sun4m_smp.c
index 406ac1abc83a..a14a76ac7f36 100644
--- a/arch/sparc/kernel/sun4m_smp.c
+++ b/arch/sparc/kernel/sun4m_smp.c
@@ -244,9 +244,9 @@ static struct smp_funcall {
244static DEFINE_SPINLOCK(cross_call_lock); 244static DEFINE_SPINLOCK(cross_call_lock);
245 245
246/* Cross calls must be serialized, at least currently. */ 246/* Cross calls must be serialized, at least currently. */
247static void smp4m_cross_call(smpfunc_t func, unsigned long arg1, 247static void smp4m_cross_call(smpfunc_t func, cpumask_t mask, unsigned long arg1,
248 unsigned long arg2, unsigned long arg3, 248 unsigned long arg2, unsigned long arg3,
249 unsigned long arg4, unsigned long arg5) 249 unsigned long arg4)
250{ 250{
251 register int ncpus = SUN4M_NCPUS; 251 register int ncpus = SUN4M_NCPUS;
252 unsigned long flags; 252 unsigned long flags;
@@ -259,14 +259,14 @@ static void smp4m_cross_call(smpfunc_t func, unsigned long arg1,
259 ccall_info.arg2 = arg2; 259 ccall_info.arg2 = arg2;
260 ccall_info.arg3 = arg3; 260 ccall_info.arg3 = arg3;
261 ccall_info.arg4 = arg4; 261 ccall_info.arg4 = arg4;
262 ccall_info.arg5 = arg5; 262 ccall_info.arg5 = 0;
263 263
264 /* Init receive/complete mapping, plus fire the IPI's off. */ 264 /* Init receive/complete mapping, plus fire the IPI's off. */
265 { 265 {
266 cpumask_t mask = cpu_online_map;
267 register int i; 266 register int i;
268 267
269 cpu_clear(smp_processor_id(), mask); 268 cpu_clear(smp_processor_id(), mask);
269 cpus_and(mask, cpu_online_map, mask);
270 for(i = 0; i < ncpus; i++) { 270 for(i = 0; i < ncpus; i++) {
271 if (cpu_isset(i, mask)) { 271 if (cpu_isset(i, mask)) {
272 ccall_info.processors_in[i] = 0; 272 ccall_info.processors_in[i] = 0;
@@ -284,12 +284,16 @@ static void smp4m_cross_call(smpfunc_t func, unsigned long arg1,
284 284
285 i = 0; 285 i = 0;
286 do { 286 do {
287 if (!cpu_isset(i, mask))
288 continue;
287 while(!ccall_info.processors_in[i]) 289 while(!ccall_info.processors_in[i])
288 barrier(); 290 barrier();
289 } while(++i < ncpus); 291 } while(++i < ncpus);
290 292
291 i = 0; 293 i = 0;
292 do { 294 do {
295 if (!cpu_isset(i, mask))
296 continue;
293 while(!ccall_info.processors_out[i]) 297 while(!ccall_info.processors_out[i])
294 barrier(); 298 barrier();
295 } while(++i < ncpus); 299 } while(++i < ncpus);
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 923a98959fa7..36b4b7ab9cfb 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -231,6 +231,7 @@ endmenu
231 231
232config NUMA 232config NUMA
233 bool "NUMA support" 233 bool "NUMA support"
234 depends on SMP
234 235
235config NODES_SHIFT 236config NODES_SHIFT
236 int 237 int
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index 9b6689d9d570..23963882bc18 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -792,6 +792,8 @@ void fixup_irqs(void)
792 } 792 }
793 spin_unlock_irqrestore(&irq_desc[irq].lock, flags); 793 spin_unlock_irqrestore(&irq_desc[irq].lock, flags);
794 } 794 }
795
796 tick_ops->disable_irq();
795} 797}
796#endif 798#endif
797 799
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c
index f8b50cbf4bf7..f845f150f565 100644
--- a/arch/sparc64/kernel/of_device.c
+++ b/arch/sparc64/kernel/of_device.c
@@ -96,7 +96,7 @@ struct of_bus {
96 int *addrc, int *sizec); 96 int *addrc, int *sizec);
97 int (*map)(u32 *addr, const u32 *range, 97 int (*map)(u32 *addr, const u32 *range,
98 int na, int ns, int pna); 98 int na, int ns, int pna);
99 unsigned int (*get_flags)(const u32 *addr); 99 unsigned long (*get_flags)(const u32 *addr, unsigned long);
100}; 100};
101 101
102/* 102/*
@@ -156,8 +156,10 @@ static int of_bus_default_map(u32 *addr, const u32 *range,
156 return 0; 156 return 0;
157} 157}
158 158
159static unsigned int of_bus_default_get_flags(const u32 *addr) 159static unsigned long of_bus_default_get_flags(const u32 *addr, unsigned long flags)
160{ 160{
161 if (flags)
162 return flags;
161 return IORESOURCE_MEM; 163 return IORESOURCE_MEM;
162} 164}
163 165
@@ -249,17 +251,21 @@ static int of_bus_pci_map(u32 *addr, const u32 *range,
249 return 0; 251 return 0;
250} 252}
251 253
252static unsigned int of_bus_pci_get_flags(const u32 *addr) 254static unsigned long of_bus_pci_get_flags(const u32 *addr, unsigned long flags)
253{ 255{
254 unsigned int flags = 0;
255 u32 w = addr[0]; 256 u32 w = addr[0];
256 257
258 /* For PCI, we override whatever child busses may have used. */
259 flags = 0;
257 switch((w >> 24) & 0x03) { 260 switch((w >> 24) & 0x03) {
258 case 0x01: 261 case 0x01:
259 flags |= IORESOURCE_IO; 262 flags |= IORESOURCE_IO;
263 break;
264
260 case 0x02: /* 32 bits */ 265 case 0x02: /* 32 bits */
261 case 0x03: /* 64 bits */ 266 case 0x03: /* 64 bits */
262 flags |= IORESOURCE_MEM; 267 flags |= IORESOURCE_MEM;
268 break;
263 } 269 }
264 if (w & 0x40000000) 270 if (w & 0x40000000)
265 flags |= IORESOURCE_PREFETCH; 271 flags |= IORESOURCE_PREFETCH;
@@ -478,10 +484,10 @@ static void __init build_device_resources(struct of_device *op,
478 int pna, pns; 484 int pna, pns;
479 485
480 size = of_read_addr(reg + na, ns); 486 size = of_read_addr(reg + na, ns);
481 flags = bus->get_flags(reg);
482
483 memcpy(addr, reg, na * 4); 487 memcpy(addr, reg, na * 4);
484 488
489 flags = bus->get_flags(addr, 0);
490
485 if (use_1to1_mapping(pp)) { 491 if (use_1to1_mapping(pp)) {
486 result = of_read_addr(addr, na); 492 result = of_read_addr(addr, na);
487 goto build_res; 493 goto build_res;
@@ -506,6 +512,8 @@ static void __init build_device_resources(struct of_device *op,
506 dna, dns, pna)) 512 dna, dns, pna))
507 break; 513 break;
508 514
515 flags = pbus->get_flags(addr, flags);
516
509 dna = pna; 517 dna = pna;
510 dns = pns; 518 dns = pns;
511 dbus = pbus; 519 dbus = pbus;
diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c
index ef5fe29202c2..e205ade69cfc 100644
--- a/arch/sparc64/kernel/pci_psycho.c
+++ b/arch/sparc64/kernel/pci_psycho.c
@@ -744,16 +744,16 @@ static void psycho_register_error_handlers(struct pci_pbm_info *pbm)
744 * the second will just error out since we do not pass in 744 * the second will just error out since we do not pass in
745 * IRQF_SHARED. 745 * IRQF_SHARED.
746 */ 746 */
747 err = request_irq(op->irqs[1], psycho_ue_intr, 0, 747 err = request_irq(op->irqs[1], psycho_ue_intr, IRQF_SHARED,
748 "PSYCHO_UE", pbm); 748 "PSYCHO_UE", pbm);
749 err = request_irq(op->irqs[2], psycho_ce_intr, 0, 749 err = request_irq(op->irqs[2], psycho_ce_intr, IRQF_SHARED,
750 "PSYCHO_CE", pbm); 750 "PSYCHO_CE", pbm);
751 751
752 /* This one, however, ought not to fail. We can just warn 752 /* This one, however, ought not to fail. We can just warn
753 * about it since the system can still operate properly even 753 * about it since the system can still operate properly even
754 * if this fails. 754 * if this fails.
755 */ 755 */
756 err = request_irq(op->irqs[0], psycho_pcierr_intr, 0, 756 err = request_irq(op->irqs[0], psycho_pcierr_intr, IRQF_SHARED,
757 "PSYCHO_PCIERR", pbm); 757 "PSYCHO_PCIERR", pbm);
758 if (err) 758 if (err)
759 printk(KERN_WARNING "%s: Could not register PCIERR, " 759 printk(KERN_WARNING "%s: Could not register PCIERR, "
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 3c048ac4e638..7151513f156e 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -156,55 +156,11 @@ static unsigned long psycho_pcislot_imap_offset(unsigned long ino)
156 return PSYCHO_IMAP_B_SLOT0 + (slot * 8); 156 return PSYCHO_IMAP_B_SLOT0 + (slot * 8);
157} 157}
158 158
159#define PSYCHO_IMAP_SCSI 0x1000UL 159#define PSYCHO_OBIO_IMAP_BASE 0x1000UL
160#define PSYCHO_IMAP_ETH 0x1008UL 160
161#define PSYCHO_IMAP_BPP 0x1010UL
162#define PSYCHO_IMAP_AU_REC 0x1018UL
163#define PSYCHO_IMAP_AU_PLAY 0x1020UL
164#define PSYCHO_IMAP_PFAIL 0x1028UL
165#define PSYCHO_IMAP_KMS 0x1030UL
166#define PSYCHO_IMAP_FLPY 0x1038UL
167#define PSYCHO_IMAP_SHW 0x1040UL
168#define PSYCHO_IMAP_KBD 0x1048UL
169#define PSYCHO_IMAP_MS 0x1050UL
170#define PSYCHO_IMAP_SER 0x1058UL
171#define PSYCHO_IMAP_TIM0 0x1060UL
172#define PSYCHO_IMAP_TIM1 0x1068UL
173#define PSYCHO_IMAP_UE 0x1070UL
174#define PSYCHO_IMAP_CE 0x1078UL
175#define PSYCHO_IMAP_A_ERR 0x1080UL
176#define PSYCHO_IMAP_B_ERR 0x1088UL
177#define PSYCHO_IMAP_PMGMT 0x1090UL
178#define PSYCHO_IMAP_GFX 0x1098UL
179#define PSYCHO_IMAP_EUPA 0x10a0UL
180
181static unsigned long __psycho_onboard_imap_off[] = {
182/*0x20*/ PSYCHO_IMAP_SCSI,
183/*0x21*/ PSYCHO_IMAP_ETH,
184/*0x22*/ PSYCHO_IMAP_BPP,
185/*0x23*/ PSYCHO_IMAP_AU_REC,
186/*0x24*/ PSYCHO_IMAP_AU_PLAY,
187/*0x25*/ PSYCHO_IMAP_PFAIL,
188/*0x26*/ PSYCHO_IMAP_KMS,
189/*0x27*/ PSYCHO_IMAP_FLPY,
190/*0x28*/ PSYCHO_IMAP_SHW,
191/*0x29*/ PSYCHO_IMAP_KBD,
192/*0x2a*/ PSYCHO_IMAP_MS,
193/*0x2b*/ PSYCHO_IMAP_SER,
194/*0x2c*/ PSYCHO_IMAP_TIM0,
195/*0x2d*/ PSYCHO_IMAP_TIM1,
196/*0x2e*/ PSYCHO_IMAP_UE,
197/*0x2f*/ PSYCHO_IMAP_CE,
198/*0x30*/ PSYCHO_IMAP_A_ERR,
199/*0x31*/ PSYCHO_IMAP_B_ERR,
200/*0x32*/ PSYCHO_IMAP_PMGMT,
201/*0x33*/ PSYCHO_IMAP_GFX,
202/*0x34*/ PSYCHO_IMAP_EUPA,
203};
204#define PSYCHO_ONBOARD_IRQ_BASE 0x20 161#define PSYCHO_ONBOARD_IRQ_BASE 0x20
205#define PSYCHO_ONBOARD_IRQ_LAST 0x34
206#define psycho_onboard_imap_offset(__ino) \ 162#define psycho_onboard_imap_offset(__ino) \
207 __psycho_onboard_imap_off[(__ino) - PSYCHO_ONBOARD_IRQ_BASE] 163 (PSYCHO_OBIO_IMAP_BASE + (((__ino) & 0x1f) << 3))
208 164
209#define PSYCHO_ICLR_A_SLOT0 0x1400UL 165#define PSYCHO_ICLR_A_SLOT0 0x1400UL
210#define PSYCHO_ICLR_SCSI 0x1800UL 166#define PSYCHO_ICLR_SCSI 0x1800UL
@@ -228,10 +184,6 @@ static unsigned int psycho_irq_build(struct device_node *dp,
228 imap_off = psycho_pcislot_imap_offset(ino); 184 imap_off = psycho_pcislot_imap_offset(ino);
229 } else { 185 } else {
230 /* Onboard device */ 186 /* Onboard device */
231 if (ino > PSYCHO_ONBOARD_IRQ_LAST) {
232 prom_printf("psycho_irq_build: Wacky INO [%x]\n", ino);
233 prom_halt();
234 }
235 imap_off = psycho_onboard_imap_offset(ino); 187 imap_off = psycho_onboard_imap_offset(ino);
236 } 188 }
237 189
@@ -318,23 +270,6 @@ static void sabre_wsync_handler(unsigned int ino, void *_arg1, void *_arg2)
318 270
319#define SABRE_IMAP_A_SLOT0 0x0c00UL 271#define SABRE_IMAP_A_SLOT0 0x0c00UL
320#define SABRE_IMAP_B_SLOT0 0x0c20UL 272#define SABRE_IMAP_B_SLOT0 0x0c20UL
321#define SABRE_IMAP_SCSI 0x1000UL
322#define SABRE_IMAP_ETH 0x1008UL
323#define SABRE_IMAP_BPP 0x1010UL
324#define SABRE_IMAP_AU_REC 0x1018UL
325#define SABRE_IMAP_AU_PLAY 0x1020UL
326#define SABRE_IMAP_PFAIL 0x1028UL
327#define SABRE_IMAP_KMS 0x1030UL
328#define SABRE_IMAP_FLPY 0x1038UL
329#define SABRE_IMAP_SHW 0x1040UL
330#define SABRE_IMAP_KBD 0x1048UL
331#define SABRE_IMAP_MS 0x1050UL
332#define SABRE_IMAP_SER 0x1058UL
333#define SABRE_IMAP_UE 0x1070UL
334#define SABRE_IMAP_CE 0x1078UL
335#define SABRE_IMAP_PCIERR 0x1080UL
336#define SABRE_IMAP_GFX 0x1098UL
337#define SABRE_IMAP_EUPA 0x10a0UL
338#define SABRE_ICLR_A_SLOT0 0x1400UL 273#define SABRE_ICLR_A_SLOT0 0x1400UL
339#define SABRE_ICLR_B_SLOT0 0x1480UL 274#define SABRE_ICLR_B_SLOT0 0x1480UL
340#define SABRE_ICLR_SCSI 0x1800UL 275#define SABRE_ICLR_SCSI 0x1800UL
@@ -364,33 +299,10 @@ static unsigned long sabre_pcislot_imap_offset(unsigned long ino)
364 return SABRE_IMAP_B_SLOT0 + (slot * 8); 299 return SABRE_IMAP_B_SLOT0 + (slot * 8);
365} 300}
366 301
367static unsigned long __sabre_onboard_imap_off[] = { 302#define SABRE_OBIO_IMAP_BASE 0x1000UL
368/*0x20*/ SABRE_IMAP_SCSI, 303#define SABRE_ONBOARD_IRQ_BASE 0x20
369/*0x21*/ SABRE_IMAP_ETH,
370/*0x22*/ SABRE_IMAP_BPP,
371/*0x23*/ SABRE_IMAP_AU_REC,
372/*0x24*/ SABRE_IMAP_AU_PLAY,
373/*0x25*/ SABRE_IMAP_PFAIL,
374/*0x26*/ SABRE_IMAP_KMS,
375/*0x27*/ SABRE_IMAP_FLPY,
376/*0x28*/ SABRE_IMAP_SHW,
377/*0x29*/ SABRE_IMAP_KBD,
378/*0x2a*/ SABRE_IMAP_MS,
379/*0x2b*/ SABRE_IMAP_SER,
380/*0x2c*/ 0 /* reserved */,
381/*0x2d*/ 0 /* reserved */,
382/*0x2e*/ SABRE_IMAP_UE,
383/*0x2f*/ SABRE_IMAP_CE,
384/*0x30*/ SABRE_IMAP_PCIERR,
385/*0x31*/ 0 /* reserved */,
386/*0x32*/ 0 /* reserved */,
387/*0x33*/ SABRE_IMAP_GFX,
388/*0x34*/ SABRE_IMAP_EUPA,
389};
390#define SABRE_ONBOARD_IRQ_BASE 0x20
391#define SABRE_ONBOARD_IRQ_LAST 0x30
392#define sabre_onboard_imap_offset(__ino) \ 304#define sabre_onboard_imap_offset(__ino) \
393 __sabre_onboard_imap_off[(__ino) - SABRE_ONBOARD_IRQ_BASE] 305 (SABRE_OBIO_IMAP_BASE + (((__ino) & 0x1f) << 3))
394 306
395#define sabre_iclr_offset(ino) \ 307#define sabre_iclr_offset(ino) \
396 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ 308 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \
@@ -453,10 +365,6 @@ static unsigned int sabre_irq_build(struct device_node *dp,
453 imap_off = sabre_pcislot_imap_offset(ino); 365 imap_off = sabre_pcislot_imap_offset(ino);
454 } else { 366 } else {
455 /* onboard device */ 367 /* onboard device */
456 if (ino > SABRE_ONBOARD_IRQ_LAST) {
457 prom_printf("sabre_irq_build: Wacky INO [%x]\n", ino);
458 prom_halt();
459 }
460 imap_off = sabre_onboard_imap_offset(ino); 368 imap_off = sabre_onboard_imap_offset(ino);
461 } 369 }
462 370
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c
index bd578cc4856d..10306e476e38 100644
--- a/arch/sparc64/kernel/ptrace.c
+++ b/arch/sparc64/kernel/ptrace.c
@@ -443,7 +443,7 @@ static const struct user_regset sparc64_regsets[] = {
443 */ 443 */
444 [REGSET_GENERAL] = { 444 [REGSET_GENERAL] = {
445 .core_note_type = NT_PRSTATUS, 445 .core_note_type = NT_PRSTATUS,
446 .n = 36 * sizeof(u64), 446 .n = 36,
447 .size = sizeof(u64), .align = sizeof(u64), 447 .size = sizeof(u64), .align = sizeof(u64),
448 .get = genregs64_get, .set = genregs64_set 448 .get = genregs64_get, .set = genregs64_set
449 }, 449 },
@@ -455,7 +455,7 @@ static const struct user_regset sparc64_regsets[] = {
455 */ 455 */
456 [REGSET_FP] = { 456 [REGSET_FP] = {
457 .core_note_type = NT_PRFPREG, 457 .core_note_type = NT_PRFPREG,
458 .n = 35 * sizeof(u64), 458 .n = 35,
459 .size = sizeof(u64), .align = sizeof(u64), 459 .size = sizeof(u64), .align = sizeof(u64),
460 .get = fpregs64_get, .set = fpregs64_set 460 .get = fpregs64_get, .set = fpregs64_set
461 }, 461 },
@@ -801,7 +801,7 @@ static const struct user_regset sparc32_regsets[] = {
801 */ 801 */
802 [REGSET_GENERAL] = { 802 [REGSET_GENERAL] = {
803 .core_note_type = NT_PRSTATUS, 803 .core_note_type = NT_PRSTATUS,
804 .n = 38 * sizeof(u32), 804 .n = 38,
805 .size = sizeof(u32), .align = sizeof(u32), 805 .size = sizeof(u32), .align = sizeof(u32),
806 .get = genregs32_get, .set = genregs32_set 806 .get = genregs32_get, .set = genregs32_set
807 }, 807 },
@@ -817,7 +817,7 @@ static const struct user_regset sparc32_regsets[] = {
817 */ 817 */
818 [REGSET_FP] = { 818 [REGSET_FP] = {
819 .core_note_type = NT_PRFPREG, 819 .core_note_type = NT_PRFPREG,
820 .n = 99 * sizeof(u32), 820 .n = 99,
821 .size = sizeof(u32), .align = sizeof(u32), 821 .size = sizeof(u32), .align = sizeof(u32),
822 .get = fpregs32_get, .set = fpregs32_set 822 .get = fpregs32_get, .set = fpregs32_set
823 }, 823 },
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index 743ccad61c60..2be166c544ca 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -80,8 +80,6 @@ void smp_bogo(struct seq_file *m)
80 i, cpu_data(i).clock_tick); 80 i, cpu_data(i).clock_tick);
81} 81}
82 82
83static __cacheline_aligned_in_smp DEFINE_SPINLOCK(call_lock);
84
85extern void setup_sparc64_timer(void); 83extern void setup_sparc64_timer(void);
86 84
87static volatile unsigned long callin_flag = 0; 85static volatile unsigned long callin_flag = 0;
@@ -120,9 +118,9 @@ void __cpuinit smp_callin(void)
120 while (!cpu_isset(cpuid, smp_commenced_mask)) 118 while (!cpu_isset(cpuid, smp_commenced_mask))
121 rmb(); 119 rmb();
122 120
123 spin_lock(&call_lock); 121 ipi_call_lock();
124 cpu_set(cpuid, cpu_online_map); 122 cpu_set(cpuid, cpu_online_map);
125 spin_unlock(&call_lock); 123 ipi_call_unlock();
126 124
127 /* idle thread is expected to have preempt disabled */ 125 /* idle thread is expected to have preempt disabled */
128 preempt_disable(); 126 preempt_disable();
@@ -1305,10 +1303,6 @@ int __cpu_disable(void)
1305 c->core_id = 0; 1303 c->core_id = 0;
1306 c->proc_id = -1; 1304 c->proc_id = -1;
1307 1305
1308 spin_lock(&call_lock);
1309 cpu_clear(cpu, cpu_online_map);
1310 spin_unlock(&call_lock);
1311
1312 smp_wmb(); 1306 smp_wmb();
1313 1307
1314 /* Make sure no interrupts point to this cpu. */ 1308 /* Make sure no interrupts point to this cpu. */
@@ -1318,6 +1312,10 @@ int __cpu_disable(void)
1318 mdelay(1); 1312 mdelay(1);
1319 local_irq_disable(); 1313 local_irq_disable();
1320 1314
1315 ipi_call_lock();
1316 cpu_clear(cpu, cpu_online_map);
1317 ipi_call_unlock();
1318
1321 return 0; 1319 return 0;
1322} 1320}
1323 1321
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c
index b4aeb0f696dc..a41df7bef035 100644
--- a/arch/sparc64/mm/init.c
+++ b/arch/sparc64/mm/init.c
@@ -1843,7 +1843,7 @@ static int pavail_rescan_ents __initdata;
1843 * memory list again, and make sure it provides at least as much 1843 * memory list again, and make sure it provides at least as much
1844 * memory as 'pavail' does. 1844 * memory as 'pavail' does.
1845 */ 1845 */
1846static void setup_valid_addr_bitmap_from_pavail(void) 1846static void __init setup_valid_addr_bitmap_from_pavail(void)
1847{ 1847{
1848 int i; 1848 int i;
1849 1849
diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
index 2c518fbc52ec..b225219c448c 100644
--- a/arch/x86/Kconfig.cpu
+++ b/arch/x86/Kconfig.cpu
@@ -382,14 +382,17 @@ config X86_OOSTORE
382# P6_NOPs are a relatively minor optimization that require a family >= 382# P6_NOPs are a relatively minor optimization that require a family >=
383# 6 processor, except that it is broken on certain VIA chips. 383# 6 processor, except that it is broken on certain VIA chips.
384# Furthermore, AMD chips prefer a totally different sequence of NOPs 384# Furthermore, AMD chips prefer a totally different sequence of NOPs
385# (which work on all CPUs). As a result, disallow these if we're 385# (which work on all CPUs). In addition, it looks like Virtual PC
386# compiling X86_GENERIC but not X86_64 (these NOPs do work on all 386# does not understand them.
387# x86-64 capable chips); the list of processors in the right-hand clause 387#
388# are the cores that benefit from this optimization. 388# As a result, disallow these if we're not compiling for X86_64 (these
389# NOPs do work on all x86-64 capable chips); the list of processors in
390# the right-hand clause are the cores that benefit from this optimization.
389# 391#
390config X86_P6_NOP 392config X86_P6_NOP
391 def_bool y 393 def_bool y
392 depends on (X86_64 || !X86_GENERIC) && (M686 || MPENTIUMII || MPENTIUMIII || MPENTIUMM || MCORE2 || MPENTIUM4 || MPSC) 394 depends on X86_64
395 depends on (MCORE2 || MPENTIUM4 || MPSC)
393 396
394config X86_TSC 397config X86_TSC
395 def_bool y 398 def_bool y
diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
index 4b9ae7c56748..4d3ff037201f 100644
--- a/arch/x86/boot/cpucheck.c
+++ b/arch/x86/boot/cpucheck.c
@@ -38,12 +38,12 @@ static const u32 req_flags[NCAPINTS] =
38{ 38{
39 REQUIRED_MASK0, 39 REQUIRED_MASK0,
40 REQUIRED_MASK1, 40 REQUIRED_MASK1,
41 REQUIRED_MASK2, 41 0, /* REQUIRED_MASK2 not implemented in this file */
42 REQUIRED_MASK3, 42 0, /* REQUIRED_MASK3 not implemented in this file */
43 REQUIRED_MASK4, 43 REQUIRED_MASK4,
44 REQUIRED_MASK5, 44 0, /* REQUIRED_MASK5 not implemented in this file */
45 REQUIRED_MASK6, 45 REQUIRED_MASK6,
46 REQUIRED_MASK7, 46 0, /* REQUIRED_MASK7 not implemented in this file */
47}; 47};
48 48
49#define A32(a, b, c, d) (((d) << 24)+((c) << 16)+((b) << 8)+(a)) 49#define A32(a, b, c, d) (((d) << 24)+((c) << 16)+((b) << 8)+(a))
diff --git a/arch/x86/configs/i386_defconfig b/arch/x86/configs/i386_defconfig
index 4d73f53287b6..104275e191a8 100644
--- a/arch/x86/configs/i386_defconfig
+++ b/arch/x86/configs/i386_defconfig
@@ -1,13 +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.26-rc1 3# Linux kernel version: 2.6.27-rc4
4# Sun May 4 19:59:02 2008 4# Mon Aug 25 15:04:00 2008
5# 5#
6# CONFIG_64BIT is not set 6# CONFIG_64BIT is not set
7CONFIG_X86_32=y 7CONFIG_X86_32=y
8# CONFIG_X86_64 is not set 8# CONFIG_X86_64 is not set
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_DEFCONFIG_LIST="arch/x86/configs/i386_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set 11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 12CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 13CONFIG_GENERIC_CMOS_UPDATE=y
@@ -53,6 +53,7 @@ CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 53CONFIG_X86_BIOS_REBOOT=y
54CONFIG_X86_TRAMPOLINE=y 54CONFIG_X86_TRAMPOLINE=y
55CONFIG_KTIME_SCALAR=y 55CONFIG_KTIME_SCALAR=y
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
58# General setup 59# General setup
@@ -82,6 +83,7 @@ CONFIG_CGROUPS=y
82CONFIG_CGROUP_NS=y 83CONFIG_CGROUP_NS=y
83# CONFIG_CGROUP_DEVICE is not set 84# CONFIG_CGROUP_DEVICE is not set
84CONFIG_CPUSETS=y 85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
85CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
86CONFIG_FAIR_GROUP_SCHED=y 88CONFIG_FAIR_GROUP_SCHED=y
87# CONFIG_RT_GROUP_SCHED is not set 89# CONFIG_RT_GROUP_SCHED is not set
@@ -105,7 +107,6 @@ CONFIG_SYSCTL=y
105# CONFIG_EMBEDDED is not set 107# CONFIG_EMBEDDED is not set
106CONFIG_UID16=y 108CONFIG_UID16=y
107CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
108CONFIG_SYSCTL_SYSCALL_CHECK=y
109CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
110CONFIG_KALLSYMS_ALL=y 111CONFIG_KALLSYMS_ALL=y
111CONFIG_KALLSYMS_EXTRA_PASS=y 112CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -113,6 +114,7 @@ CONFIG_HOTPLUG=y
113CONFIG_PRINTK=y 114CONFIG_PRINTK=y
114CONFIG_BUG=y 115CONFIG_BUG=y
115CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
117CONFIG_PCSPKR_PLATFORM=y
116# CONFIG_COMPAT_BRK is not set 118# CONFIG_COMPAT_BRK is not set
117CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
118CONFIG_FUTEX=y 120CONFIG_FUTEX=y
@@ -132,27 +134,35 @@ CONFIG_MARKERS=y
132# CONFIG_OPROFILE is not set 134# CONFIG_OPROFILE is not set
133CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
134CONFIG_KPROBES=y 136CONFIG_KPROBES=y
137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
135CONFIG_KRETPROBES=y 138CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 140CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set
138# CONFIG_HAVE_DMA_ATTRS is not set 143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 146CONFIG_PROC_PAGE_MONITOR=y
147CONFIG_HAVE_GENERIC_DMA_COHERENT=y
140CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 150# CONFIG_TINY_SHMEM is not set
143CONFIG_BASE_SMALL=0 151CONFIG_BASE_SMALL=0
144CONFIG_MODULES=y 152CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set
145CONFIG_MODULE_UNLOAD=y 154CONFIG_MODULE_UNLOAD=y
146CONFIG_MODULE_FORCE_UNLOAD=y 155CONFIG_MODULE_FORCE_UNLOAD=y
147# CONFIG_MODVERSIONS is not set 156# CONFIG_MODVERSIONS is not set
148# CONFIG_MODULE_SRCVERSION_ALL is not set 157# CONFIG_MODULE_SRCVERSION_ALL is not set
149# CONFIG_KMOD is not set 158CONFIG_KMOD=y
150CONFIG_STOP_MACHINE=y 159CONFIG_STOP_MACHINE=y
151CONFIG_BLOCK=y 160CONFIG_BLOCK=y
152# CONFIG_LBD is not set 161# CONFIG_LBD is not set
153CONFIG_BLK_DEV_IO_TRACE=y 162CONFIG_BLK_DEV_IO_TRACE=y
154# CONFIG_LSF is not set 163# CONFIG_LSF is not set
155CONFIG_BLK_DEV_BSG=y 164CONFIG_BLK_DEV_BSG=y
165# CONFIG_BLK_DEV_INTEGRITY is not set
156 166
157# 167#
158# IO Schedulers 168# IO Schedulers
@@ -176,19 +186,17 @@ CONFIG_NO_HZ=y
176CONFIG_HIGH_RES_TIMERS=y 186CONFIG_HIGH_RES_TIMERS=y
177CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 187CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
178CONFIG_SMP=y 188CONFIG_SMP=y
189CONFIG_X86_FIND_SMP_CONFIG=y
190CONFIG_X86_MPPARSE=y
179CONFIG_X86_PC=y 191CONFIG_X86_PC=y
180# CONFIG_X86_ELAN is not set 192# CONFIG_X86_ELAN is not set
181# CONFIG_X86_VOYAGER is not set 193# CONFIG_X86_VOYAGER is not set
182# CONFIG_X86_NUMAQ is not set
183# CONFIG_X86_SUMMIT is not set
184# CONFIG_X86_BIGSMP is not set
185# CONFIG_X86_VISWS is not set
186# CONFIG_X86_GENERICARCH is not set 194# CONFIG_X86_GENERICARCH is not set
187# CONFIG_X86_ES7000 is not set
188# CONFIG_X86_RDC321X is not set
189# CONFIG_X86_VSMP is not set 195# CONFIG_X86_VSMP is not set
196# CONFIG_X86_RDC321X is not set
190CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 197CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
191# CONFIG_PARAVIRT_GUEST is not set 198# CONFIG_PARAVIRT_GUEST is not set
199# CONFIG_MEMTEST is not set
192# CONFIG_M386 is not set 200# CONFIG_M386 is not set
193# CONFIG_M486 is not set 201# CONFIG_M486 is not set
194# CONFIG_M586 is not set 202# CONFIG_M586 is not set
@@ -215,21 +223,19 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
215# CONFIG_MPSC is not set 223# CONFIG_MPSC is not set
216CONFIG_MCORE2=y 224CONFIG_MCORE2=y
217# CONFIG_GENERIC_CPU is not set 225# CONFIG_GENERIC_CPU is not set
218# CONFIG_X86_GENERIC is not set 226CONFIG_X86_GENERIC=y
219CONFIG_X86_CPU=y 227CONFIG_X86_CPU=y
220CONFIG_X86_CMPXCHG=y 228CONFIG_X86_CMPXCHG=y
221CONFIG_X86_L1_CACHE_SHIFT=6 229CONFIG_X86_L1_CACHE_SHIFT=7
222CONFIG_X86_XADD=y 230CONFIG_X86_XADD=y
223CONFIG_X86_WP_WORKS_OK=y 231CONFIG_X86_WP_WORKS_OK=y
224CONFIG_X86_INVLPG=y 232CONFIG_X86_INVLPG=y
225CONFIG_X86_BSWAP=y 233CONFIG_X86_BSWAP=y
226CONFIG_X86_POPAD_OK=y 234CONFIG_X86_POPAD_OK=y
227CONFIG_X86_GOOD_APIC=y
228CONFIG_X86_INTEL_USERCOPY=y 235CONFIG_X86_INTEL_USERCOPY=y
229CONFIG_X86_USE_PPRO_CHECKSUM=y 236CONFIG_X86_USE_PPRO_CHECKSUM=y
230CONFIG_X86_P6_NOP=y
231CONFIG_X86_TSC=y 237CONFIG_X86_TSC=y
232CONFIG_X86_MINIMUM_CPU_FAMILY=6 238CONFIG_X86_MINIMUM_CPU_FAMILY=4
233CONFIG_X86_DEBUGCTLMSR=y 239CONFIG_X86_DEBUGCTLMSR=y
234CONFIG_HPET_TIMER=y 240CONFIG_HPET_TIMER=y
235CONFIG_HPET_EMULATE_RTC=y 241CONFIG_HPET_EMULATE_RTC=y
@@ -247,7 +253,7 @@ CONFIG_X86_IO_APIC=y
247CONFIG_VM86=y 253CONFIG_VM86=y
248# CONFIG_TOSHIBA is not set 254# CONFIG_TOSHIBA is not set
249# CONFIG_I8K is not set 255# CONFIG_I8K is not set
250# CONFIG_X86_REBOOTFIXUPS is not set 256CONFIG_X86_REBOOTFIXUPS=y
251# CONFIG_MICROCODE is not set 257# CONFIG_MICROCODE is not set
252CONFIG_X86_MSR=y 258CONFIG_X86_MSR=y
253CONFIG_X86_CPUID=y 259CONFIG_X86_CPUID=y
@@ -256,32 +262,28 @@ CONFIG_HIGHMEM4G=y
256# CONFIG_HIGHMEM64G is not set 262# CONFIG_HIGHMEM64G is not set
257CONFIG_PAGE_OFFSET=0xC0000000 263CONFIG_PAGE_OFFSET=0xC0000000
258CONFIG_HIGHMEM=y 264CONFIG_HIGHMEM=y
259CONFIG_NEED_NODE_MEMMAP_SIZE=y
260CONFIG_ARCH_FLATMEM_ENABLE=y 265CONFIG_ARCH_FLATMEM_ENABLE=y
261CONFIG_ARCH_SPARSEMEM_ENABLE=y 266CONFIG_ARCH_SPARSEMEM_ENABLE=y
262CONFIG_ARCH_SELECT_MEMORY_MODEL=y 267CONFIG_ARCH_SELECT_MEMORY_MODEL=y
263CONFIG_SELECT_MEMORY_MODEL=y 268CONFIG_SELECT_MEMORY_MODEL=y
264# CONFIG_FLATMEM_MANUAL is not set 269CONFIG_FLATMEM_MANUAL=y
265# CONFIG_DISCONTIGMEM_MANUAL is not set 270# CONFIG_DISCONTIGMEM_MANUAL is not set
266CONFIG_SPARSEMEM_MANUAL=y 271# CONFIG_SPARSEMEM_MANUAL is not set
267CONFIG_SPARSEMEM=y 272CONFIG_FLATMEM=y
268CONFIG_HAVE_MEMORY_PRESENT=y 273CONFIG_FLAT_NODE_MEM_MAP=y
269CONFIG_SPARSEMEM_STATIC=y 274CONFIG_SPARSEMEM_STATIC=y
270# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set 275# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
271
272#
273# Memory hotplug is currently incompatible with Software Suspend
274#
275CONFIG_PAGEFLAGS_EXTENDED=y 276CONFIG_PAGEFLAGS_EXTENDED=y
276CONFIG_SPLIT_PTLOCK_CPUS=4 277CONFIG_SPLIT_PTLOCK_CPUS=4
277CONFIG_RESOURCES_64BIT=y 278CONFIG_RESOURCES_64BIT=y
278CONFIG_ZONE_DMA_FLAG=1 279CONFIG_ZONE_DMA_FLAG=1
279CONFIG_BOUNCE=y 280CONFIG_BOUNCE=y
280CONFIG_VIRT_TO_BUS=y 281CONFIG_VIRT_TO_BUS=y
281# CONFIG_HIGHPTE is not set 282CONFIG_HIGHPTE=y
282# CONFIG_MATH_EMULATION is not set 283# CONFIG_MATH_EMULATION is not set
283CONFIG_MTRR=y 284CONFIG_MTRR=y
284# CONFIG_X86_PAT is not set 285# CONFIG_MTRR_SANITIZER is not set
286CONFIG_X86_PAT=y
285CONFIG_EFI=y 287CONFIG_EFI=y
286# CONFIG_IRQBALANCE is not set 288# CONFIG_IRQBALANCE is not set
287CONFIG_SECCOMP=y 289CONFIG_SECCOMP=y
@@ -293,6 +295,7 @@ CONFIG_HZ=1000
293CONFIG_SCHED_HRTICK=y 295CONFIG_SCHED_HRTICK=y
294CONFIG_KEXEC=y 296CONFIG_KEXEC=y
295CONFIG_CRASH_DUMP=y 297CONFIG_CRASH_DUMP=y
298# CONFIG_KEXEC_JUMP is not set
296CONFIG_PHYSICAL_START=0x1000000 299CONFIG_PHYSICAL_START=0x1000000
297CONFIG_RELOCATABLE=y 300CONFIG_RELOCATABLE=y
298CONFIG_PHYSICAL_ALIGN=0x200000 301CONFIG_PHYSICAL_ALIGN=0x200000
@@ -312,6 +315,7 @@ CONFIG_PM_TRACE_RTC=y
312CONFIG_PM_SLEEP_SMP=y 315CONFIG_PM_SLEEP_SMP=y
313CONFIG_PM_SLEEP=y 316CONFIG_PM_SLEEP=y
314CONFIG_SUSPEND=y 317CONFIG_SUSPEND=y
318# CONFIG_PM_TEST_SUSPEND is not set
315CONFIG_SUSPEND_FREEZER=y 319CONFIG_SUSPEND_FREEZER=y
316CONFIG_HIBERNATION=y 320CONFIG_HIBERNATION=y
317CONFIG_PM_STD_PARTITION="" 321CONFIG_PM_STD_PARTITION=""
@@ -337,6 +341,7 @@ CONFIG_ACPI_THERMAL=y
337CONFIG_ACPI_BLACKLIST_YEAR=0 341CONFIG_ACPI_BLACKLIST_YEAR=0
338# CONFIG_ACPI_DEBUG is not set 342# CONFIG_ACPI_DEBUG is not set
339CONFIG_ACPI_EC=y 343CONFIG_ACPI_EC=y
344# CONFIG_ACPI_PCI_SLOT is not set
340CONFIG_ACPI_POWER=y 345CONFIG_ACPI_POWER=y
341CONFIG_ACPI_SYSTEM=y 346CONFIG_ACPI_SYSTEM=y
342CONFIG_X86_PM_TIMER=y 347CONFIG_X86_PM_TIMER=y
@@ -395,8 +400,8 @@ CONFIG_PCI=y
395# CONFIG_PCI_GOBIOS is not set 400# CONFIG_PCI_GOBIOS is not set
396# CONFIG_PCI_GOMMCONFIG is not set 401# CONFIG_PCI_GOMMCONFIG is not set
397# CONFIG_PCI_GODIRECT is not set 402# CONFIG_PCI_GODIRECT is not set
398CONFIG_PCI_GOANY=y
399# CONFIG_PCI_GOOLPC is not set 403# CONFIG_PCI_GOOLPC is not set
404CONFIG_PCI_GOANY=y
400CONFIG_PCI_BIOS=y 405CONFIG_PCI_BIOS=y
401CONFIG_PCI_DIRECT=y 406CONFIG_PCI_DIRECT=y
402CONFIG_PCI_MMCONFIG=y 407CONFIG_PCI_MMCONFIG=y
@@ -448,10 +453,6 @@ CONFIG_HOTPLUG_PCI=y
448CONFIG_BINFMT_ELF=y 453CONFIG_BINFMT_ELF=y
449# CONFIG_BINFMT_AOUT is not set 454# CONFIG_BINFMT_AOUT is not set
450CONFIG_BINFMT_MISC=y 455CONFIG_BINFMT_MISC=y
451
452#
453# Networking
454#
455CONFIG_NET=y 456CONFIG_NET=y
456 457
457# 458#
@@ -475,7 +476,10 @@ CONFIG_IP_FIB_HASH=y
475CONFIG_IP_MULTIPLE_TABLES=y 476CONFIG_IP_MULTIPLE_TABLES=y
476CONFIG_IP_ROUTE_MULTIPATH=y 477CONFIG_IP_ROUTE_MULTIPATH=y
477CONFIG_IP_ROUTE_VERBOSE=y 478CONFIG_IP_ROUTE_VERBOSE=y
478# CONFIG_IP_PNP is not set 479CONFIG_IP_PNP=y
480CONFIG_IP_PNP_DHCP=y
481CONFIG_IP_PNP_BOOTP=y
482CONFIG_IP_PNP_RARP=y
479# CONFIG_NET_IPIP is not set 483# CONFIG_NET_IPIP is not set
480# CONFIG_NET_IPGRE is not set 484# CONFIG_NET_IPGRE is not set
481CONFIG_IP_MROUTE=y 485CONFIG_IP_MROUTE=y
@@ -618,7 +622,6 @@ CONFIG_NET_SCHED=y
618# CONFIG_NET_SCH_HTB is not set 622# CONFIG_NET_SCH_HTB is not set
619# CONFIG_NET_SCH_HFSC is not set 623# CONFIG_NET_SCH_HFSC is not set
620# CONFIG_NET_SCH_PRIO is not set 624# CONFIG_NET_SCH_PRIO is not set
621# CONFIG_NET_SCH_RR is not set
622# CONFIG_NET_SCH_RED is not set 625# CONFIG_NET_SCH_RED is not set
623# CONFIG_NET_SCH_SFQ is not set 626# CONFIG_NET_SCH_SFQ is not set
624# CONFIG_NET_SCH_TEQL is not set 627# CONFIG_NET_SCH_TEQL is not set
@@ -680,28 +683,19 @@ CONFIG_FIB_RULES=y
680CONFIG_CFG80211=y 683CONFIG_CFG80211=y
681CONFIG_NL80211=y 684CONFIG_NL80211=y
682CONFIG_WIRELESS_EXT=y 685CONFIG_WIRELESS_EXT=y
686CONFIG_WIRELESS_EXT_SYSFS=y
683CONFIG_MAC80211=y 687CONFIG_MAC80211=y
684 688
685# 689#
686# Rate control algorithm selection 690# Rate control algorithm selection
687# 691#
692CONFIG_MAC80211_RC_PID=y
688CONFIG_MAC80211_RC_DEFAULT_PID=y 693CONFIG_MAC80211_RC_DEFAULT_PID=y
689# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
690
691#
692# Selecting 'y' for an algorithm will
693#
694
695#
696# build the algorithm into mac80211.
697#
698CONFIG_MAC80211_RC_DEFAULT="pid" 694CONFIG_MAC80211_RC_DEFAULT="pid"
699CONFIG_MAC80211_RC_PID=y
700# CONFIG_MAC80211_MESH is not set 695# CONFIG_MAC80211_MESH is not set
701CONFIG_MAC80211_LEDS=y 696CONFIG_MAC80211_LEDS=y
702# CONFIG_MAC80211_DEBUGFS is not set 697# CONFIG_MAC80211_DEBUGFS is not set
703# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set 698# CONFIG_MAC80211_DEBUG_MENU is not set
704# CONFIG_MAC80211_DEBUG is not set
705# CONFIG_IEEE80211 is not set 699# CONFIG_IEEE80211 is not set
706# CONFIG_RFKILL is not set 700# CONFIG_RFKILL is not set
707# CONFIG_NET_9P is not set 701# CONFIG_NET_9P is not set
@@ -717,6 +711,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
717CONFIG_STANDALONE=y 711CONFIG_STANDALONE=y
718CONFIG_PREVENT_FIRMWARE_BUILD=y 712CONFIG_PREVENT_FIRMWARE_BUILD=y
719CONFIG_FW_LOADER=y 713CONFIG_FW_LOADER=y
714CONFIG_FIRMWARE_IN_KERNEL=y
715CONFIG_EXTRA_FIRMWARE=""
720# CONFIG_DEBUG_DRIVER is not set 716# CONFIG_DEBUG_DRIVER is not set
721CONFIG_DEBUG_DEVRES=y 717CONFIG_DEBUG_DEVRES=y
722# CONFIG_SYS_HYPERVISOR is not set 718# CONFIG_SYS_HYPERVISOR is not set
@@ -749,6 +745,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
749# CONFIG_BLK_DEV_XIP is not set 745# CONFIG_BLK_DEV_XIP is not set
750# CONFIG_CDROM_PKTCDVD is not set 746# CONFIG_CDROM_PKTCDVD is not set
751# CONFIG_ATA_OVER_ETH is not set 747# CONFIG_ATA_OVER_ETH is not set
748# CONFIG_BLK_DEV_HD is not set
752CONFIG_MISC_DEVICES=y 749CONFIG_MISC_DEVICES=y
753# CONFIG_IBM_ASM is not set 750# CONFIG_IBM_ASM is not set
754# CONFIG_PHANTOM is not set 751# CONFIG_PHANTOM is not set
@@ -760,10 +757,12 @@ CONFIG_MISC_DEVICES=y
760# CONFIG_FUJITSU_LAPTOP is not set 757# CONFIG_FUJITSU_LAPTOP is not set
761# CONFIG_TC1100_WMI is not set 758# CONFIG_TC1100_WMI is not set
762# CONFIG_MSI_LAPTOP is not set 759# CONFIG_MSI_LAPTOP is not set
760# CONFIG_COMPAL_LAPTOP is not set
763# CONFIG_SONY_LAPTOP is not set 761# CONFIG_SONY_LAPTOP is not set
764# CONFIG_THINKPAD_ACPI is not set 762# CONFIG_THINKPAD_ACPI is not set
765# CONFIG_INTEL_MENLOW is not set 763# CONFIG_INTEL_MENLOW is not set
766# CONFIG_ENCLOSURE_SERVICES is not set 764# CONFIG_ENCLOSURE_SERVICES is not set
765# CONFIG_HP_ILO is not set
767CONFIG_HAVE_IDE=y 766CONFIG_HAVE_IDE=y
768# CONFIG_IDE is not set 767# CONFIG_IDE is not set
769 768
@@ -802,12 +801,13 @@ CONFIG_SCSI_WAIT_SCAN=m
802# 801#
803CONFIG_SCSI_SPI_ATTRS=y 802CONFIG_SCSI_SPI_ATTRS=y
804# CONFIG_SCSI_FC_ATTRS is not set 803# CONFIG_SCSI_FC_ATTRS is not set
805# CONFIG_SCSI_ISCSI_ATTRS is not set 804CONFIG_SCSI_ISCSI_ATTRS=y
806# CONFIG_SCSI_SAS_ATTRS is not set 805# CONFIG_SCSI_SAS_ATTRS is not set
807# CONFIG_SCSI_SAS_LIBSAS is not set 806# CONFIG_SCSI_SAS_LIBSAS is not set
808# CONFIG_SCSI_SRP_ATTRS is not set 807# CONFIG_SCSI_SRP_ATTRS is not set
809# CONFIG_SCSI_LOWLEVEL is not set 808# CONFIG_SCSI_LOWLEVEL is not set
810# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 809# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
810# CONFIG_SCSI_DH is not set
811CONFIG_ATA=y 811CONFIG_ATA=y
812# CONFIG_ATA_NONSTANDARD is not set 812# CONFIG_ATA_NONSTANDARD is not set
813CONFIG_ATA_ACPI=y 813CONFIG_ATA_ACPI=y
@@ -842,7 +842,7 @@ CONFIG_PATA_AMD=y
842# CONFIG_PATA_CS5536 is not set 842# CONFIG_PATA_CS5536 is not set
843# CONFIG_PATA_CYPRESS is not set 843# CONFIG_PATA_CYPRESS is not set
844# CONFIG_PATA_EFAR is not set 844# CONFIG_PATA_EFAR is not set
845# CONFIG_ATA_GENERIC is not set 845CONFIG_ATA_GENERIC=y
846# CONFIG_PATA_HPT366 is not set 846# CONFIG_PATA_HPT366 is not set
847# CONFIG_PATA_HPT37X is not set 847# CONFIG_PATA_HPT37X is not set
848# CONFIG_PATA_HPT3X2N is not set 848# CONFIG_PATA_HPT3X2N is not set
@@ -852,7 +852,7 @@ CONFIG_PATA_AMD=y
852# CONFIG_PATA_JMICRON is not set 852# CONFIG_PATA_JMICRON is not set
853# CONFIG_PATA_TRIFLEX is not set 853# CONFIG_PATA_TRIFLEX is not set
854# CONFIG_PATA_MARVELL is not set 854# CONFIG_PATA_MARVELL is not set
855# CONFIG_PATA_MPIIX is not set 855CONFIG_PATA_MPIIX=y
856CONFIG_PATA_OLDPIIX=y 856CONFIG_PATA_OLDPIIX=y
857# CONFIG_PATA_NETCELL is not set 857# CONFIG_PATA_NETCELL is not set
858# CONFIG_PATA_NINJA32 is not set 858# CONFIG_PATA_NINJA32 is not set
@@ -871,6 +871,7 @@ CONFIG_PATA_OLDPIIX=y
871# CONFIG_PATA_SIS is not set 871# CONFIG_PATA_SIS is not set
872# CONFIG_PATA_VIA is not set 872# CONFIG_PATA_VIA is not set
873# CONFIG_PATA_WINBOND is not set 873# CONFIG_PATA_WINBOND is not set
874CONFIG_PATA_SCH=y
874CONFIG_MD=y 875CONFIG_MD=y
875CONFIG_BLK_DEV_MD=y 876CONFIG_BLK_DEV_MD=y
876# CONFIG_MD_LINEAR is not set 877# CONFIG_MD_LINEAR is not set
@@ -894,13 +895,16 @@ CONFIG_DM_ZERO=y
894# 895#
895# IEEE 1394 (FireWire) support 896# IEEE 1394 (FireWire) support
896# 897#
898
899#
900# Enable only one of the two stacks, unless you know what you are doing
901#
897# CONFIG_FIREWIRE is not set 902# CONFIG_FIREWIRE is not set
898# CONFIG_IEEE1394 is not set 903# CONFIG_IEEE1394 is not set
899# CONFIG_I2O is not set 904# CONFIG_I2O is not set
900CONFIG_MACINTOSH_DRIVERS=y 905CONFIG_MACINTOSH_DRIVERS=y
901CONFIG_MAC_EMUMOUSEBTN=y 906CONFIG_MAC_EMUMOUSEBTN=y
902CONFIG_NETDEVICES=y 907CONFIG_NETDEVICES=y
903# CONFIG_NETDEVICES_MULTIQUEUE is not set
904# CONFIG_IFB is not set 908# CONFIG_IFB is not set
905# CONFIG_DUMMY is not set 909# CONFIG_DUMMY is not set
906# CONFIG_BONDING is not set 910# CONFIG_BONDING is not set
@@ -910,7 +914,23 @@ CONFIG_NETDEVICES=y
910# CONFIG_VETH is not set 914# CONFIG_VETH is not set
911# CONFIG_NET_SB1000 is not set 915# CONFIG_NET_SB1000 is not set
912# CONFIG_ARCNET is not set 916# CONFIG_ARCNET is not set
913# CONFIG_PHYLIB is not set 917CONFIG_PHYLIB=y
918
919#
920# MII PHY device drivers
921#
922# CONFIG_MARVELL_PHY is not set
923# CONFIG_DAVICOM_PHY is not set
924# CONFIG_QSEMI_PHY is not set
925# CONFIG_LXT_PHY is not set
926# CONFIG_CICADA_PHY is not set
927# CONFIG_VITESSE_PHY is not set
928# CONFIG_SMSC_PHY is not set
929# CONFIG_BROADCOM_PHY is not set
930# CONFIG_ICPLUS_PHY is not set
931# CONFIG_REALTEK_PHY is not set
932# CONFIG_FIXED_PHY is not set
933# CONFIG_MDIO_BITBANG is not set
914CONFIG_NET_ETHERNET=y 934CONFIG_NET_ETHERNET=y
915CONFIG_MII=y 935CONFIG_MII=y
916# CONFIG_HAPPYMEAL is not set 936# CONFIG_HAPPYMEAL is not set
@@ -943,10 +963,10 @@ CONFIG_FORCEDETH=y
943CONFIG_E100=y 963CONFIG_E100=y
944# CONFIG_FEALNX is not set 964# CONFIG_FEALNX is not set
945# CONFIG_NATSEMI is not set 965# CONFIG_NATSEMI is not set
946# CONFIG_NE2K_PCI is not set 966CONFIG_NE2K_PCI=y
947# CONFIG_8139CP is not set 967# CONFIG_8139CP is not set
948CONFIG_8139TOO=y 968CONFIG_8139TOO=y
949CONFIG_8139TOO_PIO=y 969# CONFIG_8139TOO_PIO is not set
950# CONFIG_8139TOO_TUNE_TWISTER is not set 970# CONFIG_8139TOO_TUNE_TWISTER is not set
951# CONFIG_8139TOO_8129 is not set 971# CONFIG_8139TOO_8129 is not set
952# CONFIG_8139_OLD_RX_RESET is not set 972# CONFIG_8139_OLD_RX_RESET is not set
@@ -961,25 +981,24 @@ CONFIG_NETDEV_1000=y
961# CONFIG_ACENIC is not set 981# CONFIG_ACENIC is not set
962# CONFIG_DL2K is not set 982# CONFIG_DL2K is not set
963CONFIG_E1000=y 983CONFIG_E1000=y
964# CONFIG_E1000_NAPI is not set
965# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 984# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
966# CONFIG_E1000E is not set 985CONFIG_E1000E=y
967# CONFIG_E1000E_ENABLED is not set
968# CONFIG_IP1000 is not set 986# CONFIG_IP1000 is not set
969# CONFIG_IGB is not set 987# CONFIG_IGB is not set
970# CONFIG_NS83820 is not set 988# CONFIG_NS83820 is not set
971# CONFIG_HAMACHI is not set 989# CONFIG_HAMACHI is not set
972# CONFIG_YELLOWFIN is not set 990# CONFIG_YELLOWFIN is not set
973# CONFIG_R8169 is not set 991CONFIG_R8169=y
974# CONFIG_SIS190 is not set 992# CONFIG_SIS190 is not set
975# CONFIG_SKGE is not set 993# CONFIG_SKGE is not set
976CONFIG_SKY2=y 994CONFIG_SKY2=y
977# CONFIG_SKY2_DEBUG is not set 995# CONFIG_SKY2_DEBUG is not set
978# CONFIG_VIA_VELOCITY is not set 996# CONFIG_VIA_VELOCITY is not set
979CONFIG_TIGON3=y 997CONFIG_TIGON3=y
980# CONFIG_BNX2 is not set 998CONFIG_BNX2=y
981# CONFIG_QLA3XXX is not set 999# CONFIG_QLA3XXX is not set
982# CONFIG_ATL1 is not set 1000# CONFIG_ATL1 is not set
1001# CONFIG_ATL1E is not set
983CONFIG_NETDEV_10000=y 1002CONFIG_NETDEV_10000=y
984# CONFIG_CHELSIO_T1 is not set 1003# CONFIG_CHELSIO_T1 is not set
985# CONFIG_CHELSIO_T3 is not set 1004# CONFIG_CHELSIO_T3 is not set
@@ -1019,13 +1038,14 @@ CONFIG_WLAN_80211=y
1019# CONFIG_RTL8180 is not set 1038# CONFIG_RTL8180 is not set
1020# CONFIG_RTL8187 is not set 1039# CONFIG_RTL8187 is not set
1021# CONFIG_ADM8211 is not set 1040# CONFIG_ADM8211 is not set
1041# CONFIG_MAC80211_HWSIM is not set
1022# CONFIG_P54_COMMON is not set 1042# CONFIG_P54_COMMON is not set
1023CONFIG_ATH5K=y 1043CONFIG_ATH5K=y
1024# CONFIG_ATH5K_DEBUG is not set 1044# CONFIG_ATH5K_DEBUG is not set
1025# CONFIG_IWLWIFI is not set 1045# CONFIG_ATH9K is not set
1026# CONFIG_IWLCORE is not set 1046# CONFIG_IWLCORE is not set
1027# CONFIG_IWLWIFI_LEDS is not set 1047# CONFIG_IWLWIFI_LEDS is not set
1028# CONFIG_IWL4965 is not set 1048# CONFIG_IWLAGN is not set
1029# CONFIG_IWL3945 is not set 1049# CONFIG_IWL3945 is not set
1030# CONFIG_HOSTAP is not set 1050# CONFIG_HOSTAP is not set
1031# CONFIG_B43 is not set 1051# CONFIG_B43 is not set
@@ -1105,6 +1125,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1105# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1125# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1106# CONFIG_MOUSE_SERIAL is not set 1126# CONFIG_MOUSE_SERIAL is not set
1107# CONFIG_MOUSE_APPLETOUCH is not set 1127# CONFIG_MOUSE_APPLETOUCH is not set
1128# CONFIG_MOUSE_BCM5974 is not set
1108# CONFIG_MOUSE_VSXXXAA is not set 1129# CONFIG_MOUSE_VSXXXAA is not set
1109CONFIG_INPUT_JOYSTICK=y 1130CONFIG_INPUT_JOYSTICK=y
1110# CONFIG_JOYSTICK_ANALOG is not set 1131# CONFIG_JOYSTICK_ANALOG is not set
@@ -1139,12 +1160,14 @@ CONFIG_INPUT_TOUCHSCREEN=y
1139# CONFIG_TOUCHSCREEN_GUNZE is not set 1160# CONFIG_TOUCHSCREEN_GUNZE is not set
1140# CONFIG_TOUCHSCREEN_ELO is not set 1161# CONFIG_TOUCHSCREEN_ELO is not set
1141# CONFIG_TOUCHSCREEN_MTOUCH is not set 1162# CONFIG_TOUCHSCREEN_MTOUCH is not set
1163# CONFIG_TOUCHSCREEN_INEXIO is not set
1142# CONFIG_TOUCHSCREEN_MK712 is not set 1164# CONFIG_TOUCHSCREEN_MK712 is not set
1143# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1165# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1144# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1166# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1145# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1167# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1146# CONFIG_TOUCHSCREEN_UCB1400 is not set 1168# CONFIG_TOUCHSCREEN_UCB1400 is not set
1147# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1169# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1170# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1148CONFIG_INPUT_MISC=y 1171CONFIG_INPUT_MISC=y
1149# CONFIG_INPUT_PCSPKR is not set 1172# CONFIG_INPUT_PCSPKR is not set
1150# CONFIG_INPUT_APANEL is not set 1173# CONFIG_INPUT_APANEL is not set
@@ -1173,6 +1196,7 @@ CONFIG_SERIO_LIBPS2=y
1173# Character devices 1196# Character devices
1174# 1197#
1175CONFIG_VT=y 1198CONFIG_VT=y
1199CONFIG_CONSOLE_TRANSLATIONS=y
1176CONFIG_VT_CONSOLE=y 1200CONFIG_VT_CONSOLE=y
1177CONFIG_HW_CONSOLE=y 1201CONFIG_HW_CONSOLE=y
1178CONFIG_VT_HW_CONSOLE_BINDING=y 1202CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -1223,8 +1247,8 @@ CONFIG_UNIX98_PTYS=y
1223# CONFIG_LEGACY_PTYS is not set 1247# CONFIG_LEGACY_PTYS is not set
1224# CONFIG_IPMI_HANDLER is not set 1248# CONFIG_IPMI_HANDLER is not set
1225CONFIG_HW_RANDOM=y 1249CONFIG_HW_RANDOM=y
1226# CONFIG_HW_RANDOM_INTEL is not set 1250CONFIG_HW_RANDOM_INTEL=y
1227# CONFIG_HW_RANDOM_AMD is not set 1251CONFIG_HW_RANDOM_AMD=y
1228CONFIG_HW_RANDOM_GEODE=y 1252CONFIG_HW_RANDOM_GEODE=y
1229CONFIG_HW_RANDOM_VIA=y 1253CONFIG_HW_RANDOM_VIA=y
1230CONFIG_NVRAM=y 1254CONFIG_NVRAM=y
@@ -1245,7 +1269,6 @@ CONFIG_NVRAM=y
1245# CONFIG_CS5535_GPIO is not set 1269# CONFIG_CS5535_GPIO is not set
1246# CONFIG_RAW_DRIVER is not set 1270# CONFIG_RAW_DRIVER is not set
1247CONFIG_HPET=y 1271CONFIG_HPET=y
1248# CONFIG_HPET_RTC_IRQ is not set
1249# CONFIG_HPET_MMAP is not set 1272# CONFIG_HPET_MMAP is not set
1250# CONFIG_HANGCHECK_TIMER is not set 1273# CONFIG_HANGCHECK_TIMER is not set
1251# CONFIG_TCG_TPM is not set 1274# CONFIG_TCG_TPM is not set
@@ -1254,43 +1277,64 @@ CONFIG_DEVPORT=y
1254CONFIG_I2C=y 1277CONFIG_I2C=y
1255CONFIG_I2C_BOARDINFO=y 1278CONFIG_I2C_BOARDINFO=y
1256# CONFIG_I2C_CHARDEV is not set 1279# CONFIG_I2C_CHARDEV is not set
1280CONFIG_I2C_HELPER_AUTO=y
1257 1281
1258# 1282#
1259# I2C Hardware Bus support 1283# I2C Hardware Bus support
1260# 1284#
1285
1286#
1287# PC SMBus host controller drivers
1288#
1261# CONFIG_I2C_ALI1535 is not set 1289# CONFIG_I2C_ALI1535 is not set
1262# CONFIG_I2C_ALI1563 is not set 1290# CONFIG_I2C_ALI1563 is not set
1263# CONFIG_I2C_ALI15X3 is not set 1291# CONFIG_I2C_ALI15X3 is not set
1264# CONFIG_I2C_AMD756 is not set 1292# CONFIG_I2C_AMD756 is not set
1265# CONFIG_I2C_AMD8111 is not set 1293# CONFIG_I2C_AMD8111 is not set
1266CONFIG_I2C_I801=y 1294CONFIG_I2C_I801=y
1267# CONFIG_I2C_I810 is not set 1295# CONFIG_I2C_ISCH is not set
1268# CONFIG_I2C_PIIX4 is not set 1296# CONFIG_I2C_PIIX4 is not set
1269# CONFIG_I2C_NFORCE2 is not set 1297# CONFIG_I2C_NFORCE2 is not set
1270# CONFIG_I2C_OCORES is not set
1271# CONFIG_I2C_PARPORT_LIGHT is not set
1272# CONFIG_I2C_PROSAVAGE is not set
1273# CONFIG_I2C_SAVAGE4 is not set
1274# CONFIG_I2C_SIMTEC is not set
1275# CONFIG_SCx200_ACB is not set
1276# CONFIG_I2C_SIS5595 is not set 1298# CONFIG_I2C_SIS5595 is not set
1277# CONFIG_I2C_SIS630 is not set 1299# CONFIG_I2C_SIS630 is not set
1278# CONFIG_I2C_SIS96X is not set 1300# CONFIG_I2C_SIS96X is not set
1279# CONFIG_I2C_TAOS_EVM is not set
1280# CONFIG_I2C_STUB is not set
1281# CONFIG_I2C_TINY_USB is not set
1282# CONFIG_I2C_VIA is not set 1301# CONFIG_I2C_VIA is not set
1283# CONFIG_I2C_VIAPRO is not set 1302# CONFIG_I2C_VIAPRO is not set
1303
1304#
1305# I2C system bus drivers (mostly embedded / system-on-chip)
1306#
1307# CONFIG_I2C_OCORES is not set
1308# CONFIG_I2C_SIMTEC is not set
1309
1310#
1311# External I2C/SMBus adapter drivers
1312#
1313# CONFIG_I2C_PARPORT_LIGHT is not set
1314# CONFIG_I2C_TAOS_EVM is not set
1315# CONFIG_I2C_TINY_USB is not set
1316
1317#
1318# Graphics adapter I2C/DDC channel drivers
1319#
1284# CONFIG_I2C_VOODOO3 is not set 1320# CONFIG_I2C_VOODOO3 is not set
1321
1322#
1323# Other I2C/SMBus bus drivers
1324#
1285# CONFIG_I2C_PCA_PLATFORM is not set 1325# CONFIG_I2C_PCA_PLATFORM is not set
1326# CONFIG_I2C_STUB is not set
1327# CONFIG_SCx200_ACB is not set
1286 1328
1287# 1329#
1288# Miscellaneous I2C Chip support 1330# Miscellaneous I2C Chip support
1289# 1331#
1290# CONFIG_DS1682 is not set 1332# CONFIG_DS1682 is not set
1333# CONFIG_AT24 is not set
1291# CONFIG_SENSORS_EEPROM is not set 1334# CONFIG_SENSORS_EEPROM is not set
1292# CONFIG_SENSORS_PCF8574 is not set 1335# CONFIG_SENSORS_PCF8574 is not set
1293# CONFIG_PCF8575 is not set 1336# CONFIG_PCF8575 is not set
1337# CONFIG_SENSORS_PCA9539 is not set
1294# CONFIG_SENSORS_PCF8591 is not set 1338# CONFIG_SENSORS_PCF8591 is not set
1295# CONFIG_SENSORS_MAX6875 is not set 1339# CONFIG_SENSORS_MAX6875 is not set
1296# CONFIG_SENSORS_TSL2550 is not set 1340# CONFIG_SENSORS_TSL2550 is not set
@@ -1299,6 +1343,8 @@ CONFIG_I2C_I801=y
1299# CONFIG_I2C_DEBUG_BUS is not set 1343# CONFIG_I2C_DEBUG_BUS is not set
1300# CONFIG_I2C_DEBUG_CHIP is not set 1344# CONFIG_I2C_DEBUG_CHIP is not set
1301# CONFIG_SPI is not set 1345# CONFIG_SPI is not set
1346CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1347# CONFIG_GPIOLIB is not set
1302# CONFIG_W1 is not set 1348# CONFIG_W1 is not set
1303CONFIG_POWER_SUPPLY=y 1349CONFIG_POWER_SUPPLY=y
1304# CONFIG_POWER_SUPPLY_DEBUG is not set 1350# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -1360,8 +1406,10 @@ CONFIG_SSB_POSSIBLE=y
1360# 1406#
1361# Multifunction device drivers 1407# Multifunction device drivers
1362# 1408#
1409# CONFIG_MFD_CORE is not set
1363# CONFIG_MFD_SM501 is not set 1410# CONFIG_MFD_SM501 is not set
1364# CONFIG_HTC_PASIC3 is not set 1411# CONFIG_HTC_PASIC3 is not set
1412# CONFIG_MFD_TMIO is not set
1365 1413
1366# 1414#
1367# Multimedia devices 1415# Multimedia devices
@@ -1372,6 +1420,7 @@ CONFIG_SSB_POSSIBLE=y
1372# 1420#
1373# CONFIG_VIDEO_DEV is not set 1421# CONFIG_VIDEO_DEV is not set
1374# CONFIG_DVB_CORE is not set 1422# CONFIG_DVB_CORE is not set
1423# CONFIG_VIDEO_MEDIA is not set
1375 1424
1376# 1425#
1377# Multimedia drivers 1426# Multimedia drivers
@@ -1418,7 +1467,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
1418# CONFIG_FB_SYS_IMAGEBLIT is not set 1467# CONFIG_FB_SYS_IMAGEBLIT is not set
1419# CONFIG_FB_FOREIGN_ENDIAN is not set 1468# CONFIG_FB_FOREIGN_ENDIAN is not set
1420# CONFIG_FB_SYS_FOPS is not set 1469# CONFIG_FB_SYS_FOPS is not set
1421CONFIG_FB_DEFERRED_IO=y
1422# CONFIG_FB_SVGALIB is not set 1470# CONFIG_FB_SVGALIB is not set
1423# CONFIG_FB_MACMODES is not set 1471# CONFIG_FB_MACMODES is not set
1424# CONFIG_FB_BACKLIGHT is not set 1472# CONFIG_FB_BACKLIGHT is not set
@@ -1463,6 +1511,7 @@ CONFIG_FB_EFI=y
1463# CONFIG_FB_TRIDENT is not set 1511# CONFIG_FB_TRIDENT is not set
1464# CONFIG_FB_ARK is not set 1512# CONFIG_FB_ARK is not set
1465# CONFIG_FB_PM3 is not set 1513# CONFIG_FB_PM3 is not set
1514# CONFIG_FB_CARMINE is not set
1466# CONFIG_FB_GEODE is not set 1515# CONFIG_FB_GEODE is not set
1467# CONFIG_FB_VIRTUAL is not set 1516# CONFIG_FB_VIRTUAL is not set
1468CONFIG_BACKLIGHT_LCD_SUPPORT=y 1517CONFIG_BACKLIGHT_LCD_SUPPORT=y
@@ -1470,6 +1519,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
1470CONFIG_BACKLIGHT_CLASS_DEVICE=y 1519CONFIG_BACKLIGHT_CLASS_DEVICE=y
1471# CONFIG_BACKLIGHT_CORGI is not set 1520# CONFIG_BACKLIGHT_CORGI is not set
1472# CONFIG_BACKLIGHT_PROGEAR is not set 1521# CONFIG_BACKLIGHT_PROGEAR is not set
1522# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1473 1523
1474# 1524#
1475# Display device support 1525# Display device support
@@ -1489,15 +1539,7 @@ CONFIG_LOGO=y
1489# CONFIG_LOGO_LINUX_MONO is not set 1539# CONFIG_LOGO_LINUX_MONO is not set
1490# CONFIG_LOGO_LINUX_VGA16 is not set 1540# CONFIG_LOGO_LINUX_VGA16 is not set
1491CONFIG_LOGO_LINUX_CLUT224=y 1541CONFIG_LOGO_LINUX_CLUT224=y
1492
1493#
1494# Sound
1495#
1496CONFIG_SOUND=y 1542CONFIG_SOUND=y
1497
1498#
1499# Advanced Linux Sound Architecture
1500#
1501CONFIG_SND=y 1543CONFIG_SND=y
1502CONFIG_SND_TIMER=y 1544CONFIG_SND_TIMER=y
1503CONFIG_SND_PCM=y 1545CONFIG_SND_PCM=y
@@ -1515,20 +1557,14 @@ CONFIG_SND_VERBOSE_PROCFS=y
1515# CONFIG_SND_VERBOSE_PRINTK is not set 1557# CONFIG_SND_VERBOSE_PRINTK is not set
1516# CONFIG_SND_DEBUG is not set 1558# CONFIG_SND_DEBUG is not set
1517CONFIG_SND_VMASTER=y 1559CONFIG_SND_VMASTER=y
1518 1560CONFIG_SND_DRIVERS=y
1519#
1520# Generic devices
1521#
1522# CONFIG_SND_PCSP is not set 1561# CONFIG_SND_PCSP is not set
1523# CONFIG_SND_DUMMY is not set 1562# CONFIG_SND_DUMMY is not set
1524# CONFIG_SND_VIRMIDI is not set 1563# CONFIG_SND_VIRMIDI is not set
1525# CONFIG_SND_MTPAV is not set 1564# CONFIG_SND_MTPAV is not set
1526# CONFIG_SND_SERIAL_U16550 is not set 1565# CONFIG_SND_SERIAL_U16550 is not set
1527# CONFIG_SND_MPU401 is not set 1566# CONFIG_SND_MPU401 is not set
1528 1567CONFIG_SND_PCI=y
1529#
1530# PCI devices
1531#
1532# CONFIG_SND_AD1889 is not set 1568# CONFIG_SND_AD1889 is not set
1533# CONFIG_SND_ALS300 is not set 1569# CONFIG_SND_ALS300 is not set
1534# CONFIG_SND_ALS4000 is not set 1570# CONFIG_SND_ALS4000 is not set
@@ -1603,36 +1639,14 @@ CONFIG_SND_HDA_GENERIC=y
1603# CONFIG_SND_VIRTUOSO is not set 1639# CONFIG_SND_VIRTUOSO is not set
1604# CONFIG_SND_VX222 is not set 1640# CONFIG_SND_VX222 is not set
1605# CONFIG_SND_YMFPCI is not set 1641# CONFIG_SND_YMFPCI is not set
1606 1642CONFIG_SND_USB=y
1607#
1608# USB devices
1609#
1610# CONFIG_SND_USB_AUDIO is not set 1643# CONFIG_SND_USB_AUDIO is not set
1611# CONFIG_SND_USB_USX2Y is not set 1644# CONFIG_SND_USB_USX2Y is not set
1612# CONFIG_SND_USB_CAIAQ is not set 1645# CONFIG_SND_USB_CAIAQ is not set
1613 1646CONFIG_SND_PCMCIA=y
1614#
1615# PCMCIA devices
1616#
1617# CONFIG_SND_VXPOCKET is not set 1647# CONFIG_SND_VXPOCKET is not set
1618# CONFIG_SND_PDAUDIOCF is not set 1648# CONFIG_SND_PDAUDIOCF is not set
1619
1620#
1621# System on Chip audio support
1622#
1623# CONFIG_SND_SOC is not set 1649# CONFIG_SND_SOC is not set
1624
1625#
1626# ALSA SoC audio for Freescale SOCs
1627#
1628
1629#
1630# SoC Audio for the Texas Instruments OMAP
1631#
1632
1633#
1634# Open Sound System
1635#
1636# CONFIG_SOUND_PRIME is not set 1650# CONFIG_SOUND_PRIME is not set
1637CONFIG_HID_SUPPORT=y 1651CONFIG_HID_SUPPORT=y
1638CONFIG_HID=y 1652CONFIG_HID=y
@@ -1668,6 +1682,7 @@ CONFIG_USB_DEVICEFS=y
1668# CONFIG_USB_DYNAMIC_MINORS is not set 1682# CONFIG_USB_DYNAMIC_MINORS is not set
1669CONFIG_USB_SUSPEND=y 1683CONFIG_USB_SUSPEND=y
1670# CONFIG_USB_OTG is not set 1684# CONFIG_USB_OTG is not set
1685CONFIG_USB_MON=y
1671 1686
1672# 1687#
1673# USB Host Controller Drivers 1688# USB Host Controller Drivers
@@ -1691,6 +1706,7 @@ CONFIG_USB_UHCI_HCD=y
1691# 1706#
1692# CONFIG_USB_ACM is not set 1707# CONFIG_USB_ACM is not set
1693CONFIG_USB_PRINTER=y 1708CONFIG_USB_PRINTER=y
1709# CONFIG_USB_WDM is not set
1694 1710
1695# 1711#
1696# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1712,6 +1728,7 @@ CONFIG_USB_STORAGE=y
1712# CONFIG_USB_STORAGE_ALAUDA is not set 1728# CONFIG_USB_STORAGE_ALAUDA is not set
1713# CONFIG_USB_STORAGE_ONETOUCH is not set 1729# CONFIG_USB_STORAGE_ONETOUCH is not set
1714# CONFIG_USB_STORAGE_KARMA is not set 1730# CONFIG_USB_STORAGE_KARMA is not set
1731# CONFIG_USB_STORAGE_SIERRA is not set
1715# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1732# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1716CONFIG_USB_LIBUSUAL=y 1733CONFIG_USB_LIBUSUAL=y
1717 1734
@@ -1720,7 +1737,6 @@ CONFIG_USB_LIBUSUAL=y
1720# 1737#
1721# CONFIG_USB_MDC800 is not set 1738# CONFIG_USB_MDC800 is not set
1722# CONFIG_USB_MICROTEK is not set 1739# CONFIG_USB_MICROTEK is not set
1723CONFIG_USB_MON=y
1724 1740
1725# 1741#
1726# USB port drivers 1742# USB port drivers
@@ -1733,7 +1749,6 @@ CONFIG_USB_MON=y
1733# CONFIG_USB_EMI62 is not set 1749# CONFIG_USB_EMI62 is not set
1734# CONFIG_USB_EMI26 is not set 1750# CONFIG_USB_EMI26 is not set
1735# CONFIG_USB_ADUTUX is not set 1751# CONFIG_USB_ADUTUX is not set
1736# CONFIG_USB_AUERSWALD is not set
1737# CONFIG_USB_RIO500 is not set 1752# CONFIG_USB_RIO500 is not set
1738# CONFIG_USB_LEGOTOWER is not set 1753# CONFIG_USB_LEGOTOWER is not set
1739# CONFIG_USB_LCD is not set 1754# CONFIG_USB_LCD is not set
@@ -1750,6 +1765,7 @@ CONFIG_USB_MON=y
1750# CONFIG_USB_TRANCEVIBRATOR is not set 1765# CONFIG_USB_TRANCEVIBRATOR is not set
1751# CONFIG_USB_IOWARRIOR is not set 1766# CONFIG_USB_IOWARRIOR is not set
1752# CONFIG_USB_TEST is not set 1767# CONFIG_USB_TEST is not set
1768# CONFIG_USB_ISIGHTFW is not set
1753# CONFIG_USB_GADGET is not set 1769# CONFIG_USB_GADGET is not set
1754# CONFIG_MMC is not set 1770# CONFIG_MMC is not set
1755# CONFIG_MEMSTICK is not set 1771# CONFIG_MEMSTICK is not set
@@ -1759,7 +1775,9 @@ CONFIG_LEDS_CLASS=y
1759# 1775#
1760# LED drivers 1776# LED drivers
1761# 1777#
1778# CONFIG_LEDS_PCA9532 is not set
1762# CONFIG_LEDS_CLEVO_MAIL is not set 1779# CONFIG_LEDS_CLEVO_MAIL is not set
1780# CONFIG_LEDS_PCA955X is not set
1763 1781
1764# 1782#
1765# LED Triggers 1783# LED Triggers
@@ -1805,6 +1823,7 @@ CONFIG_RTC_INTF_DEV=y
1805# CONFIG_RTC_DRV_PCF8583 is not set 1823# CONFIG_RTC_DRV_PCF8583 is not set
1806# CONFIG_RTC_DRV_M41T80 is not set 1824# CONFIG_RTC_DRV_M41T80 is not set
1807# CONFIG_RTC_DRV_S35390A is not set 1825# CONFIG_RTC_DRV_S35390A is not set
1826# CONFIG_RTC_DRV_FM3130 is not set
1808 1827
1809# 1828#
1810# SPI RTC drivers 1829# SPI RTC drivers
@@ -1837,11 +1856,13 @@ CONFIG_DMADEVICES=y
1837# Firmware Drivers 1856# Firmware Drivers
1838# 1857#
1839# CONFIG_EDD is not set 1858# CONFIG_EDD is not set
1859CONFIG_FIRMWARE_MEMMAP=y
1840CONFIG_EFI_VARS=y 1860CONFIG_EFI_VARS=y
1841# CONFIG_DELL_RBU is not set 1861# CONFIG_DELL_RBU is not set
1842# CONFIG_DCDBAS is not set 1862# CONFIG_DCDBAS is not set
1843CONFIG_DMIID=y 1863CONFIG_DMIID=y
1844# CONFIG_ISCSI_IBFT_FIND is not set 1864CONFIG_ISCSI_IBFT_FIND=y
1865CONFIG_ISCSI_IBFT=y
1845 1866
1846# 1867#
1847# File systems 1868# File systems
@@ -1920,14 +1941,27 @@ CONFIG_HUGETLB_PAGE=y
1920# CONFIG_CRAMFS is not set 1941# CONFIG_CRAMFS is not set
1921# CONFIG_VXFS_FS is not set 1942# CONFIG_VXFS_FS is not set
1922# CONFIG_MINIX_FS is not set 1943# CONFIG_MINIX_FS is not set
1944# CONFIG_OMFS_FS is not set
1923# CONFIG_HPFS_FS is not set 1945# CONFIG_HPFS_FS is not set
1924# CONFIG_QNX4FS_FS is not set 1946# CONFIG_QNX4FS_FS is not set
1925# CONFIG_ROMFS_FS is not set 1947# CONFIG_ROMFS_FS is not set
1926# CONFIG_SYSV_FS is not set 1948# CONFIG_SYSV_FS is not set
1927# CONFIG_UFS_FS is not set 1949# CONFIG_UFS_FS is not set
1928CONFIG_NETWORK_FILESYSTEMS=y 1950CONFIG_NETWORK_FILESYSTEMS=y
1929# CONFIG_NFS_FS is not set 1951CONFIG_NFS_FS=y
1952CONFIG_NFS_V3=y
1953CONFIG_NFS_V3_ACL=y
1954CONFIG_NFS_V4=y
1955CONFIG_ROOT_NFS=y
1930# CONFIG_NFSD is not set 1956# CONFIG_NFSD is not set
1957CONFIG_LOCKD=y
1958CONFIG_LOCKD_V4=y
1959CONFIG_NFS_ACL_SUPPORT=y
1960CONFIG_NFS_COMMON=y
1961CONFIG_SUNRPC=y
1962CONFIG_SUNRPC_GSS=y
1963CONFIG_RPCSEC_GSS_KRB5=y
1964# CONFIG_RPCSEC_GSS_SPKM3 is not set
1931# CONFIG_SMB_FS is not set 1965# CONFIG_SMB_FS is not set
1932# CONFIG_CIFS is not set 1966# CONFIG_CIFS is not set
1933# CONFIG_NCP_FS is not set 1967# CONFIG_NCP_FS is not set
@@ -2001,9 +2035,9 @@ CONFIG_NLS_UTF8=y
2001# Kernel hacking 2035# Kernel hacking
2002# 2036#
2003CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2037CONFIG_TRACE_IRQFLAGS_SUPPORT=y
2004# CONFIG_PRINTK_TIME is not set 2038CONFIG_PRINTK_TIME=y
2005# CONFIG_ENABLE_WARN_DEPRECATED is not set 2039CONFIG_ENABLE_WARN_DEPRECATED=y
2006# CONFIG_ENABLE_MUST_CHECK is not set 2040CONFIG_ENABLE_MUST_CHECK=y
2007CONFIG_FRAME_WARN=2048 2041CONFIG_FRAME_WARN=2048
2008CONFIG_MAGIC_SYSRQ=y 2042CONFIG_MAGIC_SYSRQ=y
2009# CONFIG_UNUSED_SYMBOLS is not set 2043# CONFIG_UNUSED_SYMBOLS is not set
@@ -2033,6 +2067,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
2033# CONFIG_DEBUG_INFO is not set 2067# CONFIG_DEBUG_INFO is not set
2034# CONFIG_DEBUG_VM is not set 2068# CONFIG_DEBUG_VM is not set
2035# CONFIG_DEBUG_WRITECOUNT is not set 2069# CONFIG_DEBUG_WRITECOUNT is not set
2070CONFIG_DEBUG_MEMORY_INIT=y
2036# CONFIG_DEBUG_LIST is not set 2071# CONFIG_DEBUG_LIST is not set
2037# CONFIG_DEBUG_SG is not set 2072# CONFIG_DEBUG_SG is not set
2038CONFIG_FRAME_POINTER=y 2073CONFIG_FRAME_POINTER=y
@@ -2043,23 +2078,32 @@ CONFIG_FRAME_POINTER=y
2043# CONFIG_LKDTM is not set 2078# CONFIG_LKDTM is not set
2044# CONFIG_FAULT_INJECTION is not set 2079# CONFIG_FAULT_INJECTION is not set
2045# CONFIG_LATENCYTOP is not set 2080# CONFIG_LATENCYTOP is not set
2081CONFIG_SYSCTL_SYSCALL_CHECK=y
2082CONFIG_HAVE_FTRACE=y
2083CONFIG_HAVE_DYNAMIC_FTRACE=y
2084# CONFIG_FTRACE is not set
2085# CONFIG_IRQSOFF_TRACER is not set
2086# CONFIG_SYSPROF_TRACER is not set
2087# CONFIG_SCHED_TRACER is not set
2088# CONFIG_CONTEXT_SWITCH_TRACER is not set
2046CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2089CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2047# CONFIG_SAMPLES is not set 2090# CONFIG_SAMPLES is not set
2048# CONFIG_KGDB is not set
2049CONFIG_HAVE_ARCH_KGDB=y 2091CONFIG_HAVE_ARCH_KGDB=y
2092# CONFIG_KGDB is not set
2050# CONFIG_STRICT_DEVMEM is not set 2093# CONFIG_STRICT_DEVMEM is not set
2094CONFIG_X86_VERBOSE_BOOTUP=y
2051CONFIG_EARLY_PRINTK=y 2095CONFIG_EARLY_PRINTK=y
2052CONFIG_DEBUG_STACKOVERFLOW=y 2096CONFIG_DEBUG_STACKOVERFLOW=y
2053CONFIG_DEBUG_STACK_USAGE=y 2097CONFIG_DEBUG_STACK_USAGE=y
2054# CONFIG_DEBUG_PAGEALLOC is not set 2098# CONFIG_DEBUG_PAGEALLOC is not set
2099# CONFIG_DEBUG_PER_CPU_MAPS is not set
2055# CONFIG_X86_PTDUMP is not set 2100# CONFIG_X86_PTDUMP is not set
2056CONFIG_DEBUG_RODATA=y 2101CONFIG_DEBUG_RODATA=y
2057# CONFIG_DEBUG_RODATA_TEST is not set 2102# CONFIG_DEBUG_RODATA_TEST is not set
2058CONFIG_DEBUG_NX_TEST=m 2103CONFIG_DEBUG_NX_TEST=m
2059# CONFIG_4KSTACKS is not set 2104# CONFIG_4KSTACKS is not set
2060CONFIG_X86_FIND_SMP_CONFIG=y
2061CONFIG_X86_MPPARSE=y
2062CONFIG_DOUBLEFAULT=y 2105CONFIG_DOUBLEFAULT=y
2106# CONFIG_MMIOTRACE is not set
2063CONFIG_IO_DELAY_TYPE_0X80=0 2107CONFIG_IO_DELAY_TYPE_0X80=0
2064CONFIG_IO_DELAY_TYPE_0XED=1 2108CONFIG_IO_DELAY_TYPE_0XED=1
2065CONFIG_IO_DELAY_TYPE_UDELAY=2 2109CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -2071,6 +2115,7 @@ CONFIG_IO_DELAY_0X80=y
2071CONFIG_DEFAULT_IO_DELAY_TYPE=0 2115CONFIG_DEFAULT_IO_DELAY_TYPE=0
2072CONFIG_DEBUG_BOOT_PARAMS=y 2116CONFIG_DEBUG_BOOT_PARAMS=y
2073# CONFIG_CPA_DEBUG is not set 2117# CONFIG_CPA_DEBUG is not set
2118# CONFIG_OPTIMIZE_INLINING is not set
2074 2119
2075# 2120#
2076# Security options 2121# Security options
@@ -2080,7 +2125,6 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y
2080CONFIG_SECURITY=y 2125CONFIG_SECURITY=y
2081CONFIG_SECURITY_NETWORK=y 2126CONFIG_SECURITY_NETWORK=y
2082# CONFIG_SECURITY_NETWORK_XFRM is not set 2127# CONFIG_SECURITY_NETWORK_XFRM is not set
2083CONFIG_SECURITY_CAPABILITIES=y
2084CONFIG_SECURITY_FILE_CAPABILITIES=y 2128CONFIG_SECURITY_FILE_CAPABILITIES=y
2085# CONFIG_SECURITY_ROOTPLUG is not set 2129# CONFIG_SECURITY_ROOTPLUG is not set
2086CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2130CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2141,6 +2185,10 @@ CONFIG_CRYPTO_HMAC=y
2141# CONFIG_CRYPTO_MD4 is not set 2185# CONFIG_CRYPTO_MD4 is not set
2142CONFIG_CRYPTO_MD5=y 2186CONFIG_CRYPTO_MD5=y
2143# CONFIG_CRYPTO_MICHAEL_MIC is not set 2187# CONFIG_CRYPTO_MICHAEL_MIC is not set
2188# CONFIG_CRYPTO_RMD128 is not set
2189# CONFIG_CRYPTO_RMD160 is not set
2190# CONFIG_CRYPTO_RMD256 is not set
2191# CONFIG_CRYPTO_RMD320 is not set
2144CONFIG_CRYPTO_SHA1=y 2192CONFIG_CRYPTO_SHA1=y
2145# CONFIG_CRYPTO_SHA256 is not set 2193# CONFIG_CRYPTO_SHA256 is not set
2146# CONFIG_CRYPTO_SHA512 is not set 2194# CONFIG_CRYPTO_SHA512 is not set
@@ -2151,7 +2199,7 @@ CONFIG_CRYPTO_SHA1=y
2151# Ciphers 2199# Ciphers
2152# 2200#
2153CONFIG_CRYPTO_AES=y 2201CONFIG_CRYPTO_AES=y
2154# CONFIG_CRYPTO_AES_586 is not set 2202CONFIG_CRYPTO_AES_586=y
2155# CONFIG_CRYPTO_ANUBIS is not set 2203# CONFIG_CRYPTO_ANUBIS is not set
2156CONFIG_CRYPTO_ARC4=y 2204CONFIG_CRYPTO_ARC4=y
2157# CONFIG_CRYPTO_BLOWFISH is not set 2205# CONFIG_CRYPTO_BLOWFISH is not set
@@ -2193,6 +2241,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
2193CONFIG_GENERIC_FIND_NEXT_BIT=y 2241CONFIG_GENERIC_FIND_NEXT_BIT=y
2194# CONFIG_CRC_CCITT is not set 2242# CONFIG_CRC_CCITT is not set
2195# CONFIG_CRC16 is not set 2243# CONFIG_CRC16 is not set
2244CONFIG_CRC_T10DIF=y
2196# CONFIG_CRC_ITU_T is not set 2245# CONFIG_CRC_ITU_T is not set
2197CONFIG_CRC32=y 2246CONFIG_CRC32=y
2198# CONFIG_CRC7 is not set 2247# CONFIG_CRC7 is not set
diff --git a/arch/x86/configs/x86_64_defconfig b/arch/x86/configs/x86_64_defconfig
index a40452429625..678c8acefe04 100644
--- a/arch/x86/configs/x86_64_defconfig
+++ b/arch/x86/configs/x86_64_defconfig
@@ -1,13 +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.26-rc1 3# Linux kernel version: 2.6.27-rc4
4# Sun May 4 19:59:57 2008 4# Mon Aug 25 14:40:46 2008
5# 5#
6CONFIG_64BIT=y 6CONFIG_64BIT=y
7# CONFIG_X86_32 is not set 7# CONFIG_X86_32 is not set
8CONFIG_X86_64=y 8CONFIG_X86_64=y
9CONFIG_X86=y 9CONFIG_X86=y
10CONFIG_DEFCONFIG_LIST="arch/x86/configs/x86_64_defconfig" 10CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
11# CONFIG_GENERIC_LOCKBREAK is not set 11# CONFIG_GENERIC_LOCKBREAK is not set
12CONFIG_GENERIC_TIME=y 12CONFIG_GENERIC_TIME=y
13CONFIG_GENERIC_CMOS_UPDATE=y 13CONFIG_GENERIC_CMOS_UPDATE=y
@@ -53,6 +53,7 @@ CONFIG_X86_HT=y
53CONFIG_X86_BIOS_REBOOT=y 53CONFIG_X86_BIOS_REBOOT=y
54CONFIG_X86_TRAMPOLINE=y 54CONFIG_X86_TRAMPOLINE=y
55# CONFIG_KTIME_SCALAR is not set 55# CONFIG_KTIME_SCALAR is not set
56CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 57
57# 58#
58# General setup 59# General setup
@@ -82,6 +83,7 @@ CONFIG_CGROUPS=y
82CONFIG_CGROUP_NS=y 83CONFIG_CGROUP_NS=y
83# CONFIG_CGROUP_DEVICE is not set 84# CONFIG_CGROUP_DEVICE is not set
84CONFIG_CPUSETS=y 85CONFIG_CPUSETS=y
86CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
85CONFIG_GROUP_SCHED=y 87CONFIG_GROUP_SCHED=y
86CONFIG_FAIR_GROUP_SCHED=y 88CONFIG_FAIR_GROUP_SCHED=y
87# CONFIG_RT_GROUP_SCHED is not set 89# CONFIG_RT_GROUP_SCHED is not set
@@ -105,7 +107,6 @@ CONFIG_SYSCTL=y
105# CONFIG_EMBEDDED is not set 107# CONFIG_EMBEDDED is not set
106CONFIG_UID16=y 108CONFIG_UID16=y
107CONFIG_SYSCTL_SYSCALL=y 109CONFIG_SYSCTL_SYSCALL=y
108CONFIG_SYSCTL_SYSCALL_CHECK=y
109CONFIG_KALLSYMS=y 110CONFIG_KALLSYMS=y
110CONFIG_KALLSYMS_ALL=y 111CONFIG_KALLSYMS_ALL=y
111CONFIG_KALLSYMS_EXTRA_PASS=y 112CONFIG_KALLSYMS_EXTRA_PASS=y
@@ -113,6 +114,7 @@ CONFIG_HOTPLUG=y
113CONFIG_PRINTK=y 114CONFIG_PRINTK=y
114CONFIG_BUG=y 115CONFIG_BUG=y
115CONFIG_ELF_CORE=y 116CONFIG_ELF_CORE=y
117CONFIG_PCSPKR_PLATFORM=y
116# CONFIG_COMPAT_BRK is not set 118# CONFIG_COMPAT_BRK is not set
117CONFIG_BASE_FULL=y 119CONFIG_BASE_FULL=y
118CONFIG_FUTEX=y 120CONFIG_FUTEX=y
@@ -132,25 +134,33 @@ CONFIG_MARKERS=y
132# CONFIG_OPROFILE is not set 134# CONFIG_OPROFILE is not set
133CONFIG_HAVE_OPROFILE=y 135CONFIG_HAVE_OPROFILE=y
134CONFIG_KPROBES=y 136CONFIG_KPROBES=y
137CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
135CONFIG_KRETPROBES=y 138CONFIG_KRETPROBES=y
139CONFIG_HAVE_IOREMAP_PROT=y
136CONFIG_HAVE_KPROBES=y 140CONFIG_HAVE_KPROBES=y
137CONFIG_HAVE_KRETPROBES=y 141CONFIG_HAVE_KRETPROBES=y
142# CONFIG_HAVE_ARCH_TRACEHOOK is not set
138# CONFIG_HAVE_DMA_ATTRS is not set 143# CONFIG_HAVE_DMA_ATTRS is not set
144CONFIG_USE_GENERIC_SMP_HELPERS=y
145# CONFIG_HAVE_CLK is not set
139CONFIG_PROC_PAGE_MONITOR=y 146CONFIG_PROC_PAGE_MONITOR=y
147# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
140CONFIG_SLABINFO=y 148CONFIG_SLABINFO=y
141CONFIG_RT_MUTEXES=y 149CONFIG_RT_MUTEXES=y
142# CONFIG_TINY_SHMEM is not set 150# CONFIG_TINY_SHMEM is not set
143CONFIG_BASE_SMALL=0 151CONFIG_BASE_SMALL=0
144CONFIG_MODULES=y 152CONFIG_MODULES=y
153# CONFIG_MODULE_FORCE_LOAD is not set
145CONFIG_MODULE_UNLOAD=y 154CONFIG_MODULE_UNLOAD=y
146CONFIG_MODULE_FORCE_UNLOAD=y 155CONFIG_MODULE_FORCE_UNLOAD=y
147# CONFIG_MODVERSIONS is not set 156# CONFIG_MODVERSIONS is not set
148# CONFIG_MODULE_SRCVERSION_ALL is not set 157# CONFIG_MODULE_SRCVERSION_ALL is not set
149# CONFIG_KMOD is not set 158CONFIG_KMOD=y
150CONFIG_STOP_MACHINE=y 159CONFIG_STOP_MACHINE=y
151CONFIG_BLOCK=y 160CONFIG_BLOCK=y
152CONFIG_BLK_DEV_IO_TRACE=y 161CONFIG_BLK_DEV_IO_TRACE=y
153CONFIG_BLK_DEV_BSG=y 162CONFIG_BLK_DEV_BSG=y
163# CONFIG_BLK_DEV_INTEGRITY is not set
154CONFIG_BLOCK_COMPAT=y 164CONFIG_BLOCK_COMPAT=y
155 165
156# 166#
@@ -175,20 +185,15 @@ CONFIG_NO_HZ=y
175CONFIG_HIGH_RES_TIMERS=y 185CONFIG_HIGH_RES_TIMERS=y
176CONFIG_GENERIC_CLOCKEVENTS_BUILD=y 186CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
177CONFIG_SMP=y 187CONFIG_SMP=y
188CONFIG_X86_FIND_SMP_CONFIG=y
189CONFIG_X86_MPPARSE=y
178CONFIG_X86_PC=y 190CONFIG_X86_PC=y
179# CONFIG_X86_ELAN is not set 191# CONFIG_X86_ELAN is not set
180# CONFIG_X86_VOYAGER is not set 192# CONFIG_X86_VOYAGER is not set
181# CONFIG_X86_NUMAQ is not set
182# CONFIG_X86_SUMMIT is not set
183# CONFIG_X86_BIGSMP is not set
184# CONFIG_X86_VISWS is not set
185# CONFIG_X86_GENERICARCH is not set 193# CONFIG_X86_GENERICARCH is not set
186# CONFIG_X86_ES7000 is not set
187# CONFIG_X86_RDC321X is not set
188# CONFIG_X86_VSMP is not set 194# CONFIG_X86_VSMP is not set
189# CONFIG_PARAVIRT_GUEST is not set 195# CONFIG_PARAVIRT_GUEST is not set
190CONFIG_MEMTEST_BOOTPARAM=y 196# CONFIG_MEMTEST is not set
191CONFIG_MEMTEST_BOOTPARAM_VALUE=0
192# CONFIG_M386 is not set 197# CONFIG_M386 is not set
193# CONFIG_M486 is not set 198# CONFIG_M486 is not set
194# CONFIG_M586 is not set 199# CONFIG_M586 is not set
@@ -220,11 +225,12 @@ CONFIG_X86_L1_CACHE_BYTES=64
220CONFIG_X86_INTERNODE_CACHE_BYTES=64 225CONFIG_X86_INTERNODE_CACHE_BYTES=64
221CONFIG_X86_CMPXCHG=y 226CONFIG_X86_CMPXCHG=y
222CONFIG_X86_L1_CACHE_SHIFT=6 227CONFIG_X86_L1_CACHE_SHIFT=6
223CONFIG_X86_GOOD_APIC=y 228CONFIG_X86_WP_WORKS_OK=y
224CONFIG_X86_INTEL_USERCOPY=y 229CONFIG_X86_INTEL_USERCOPY=y
225CONFIG_X86_USE_PPRO_CHECKSUM=y 230CONFIG_X86_USE_PPRO_CHECKSUM=y
226CONFIG_X86_P6_NOP=y 231CONFIG_X86_P6_NOP=y
227CONFIG_X86_TSC=y 232CONFIG_X86_TSC=y
233CONFIG_X86_CMPXCHG64=y
228CONFIG_X86_CMOV=y 234CONFIG_X86_CMOV=y
229CONFIG_X86_MINIMUM_CPU_FAMILY=64 235CONFIG_X86_MINIMUM_CPU_FAMILY=64
230CONFIG_X86_DEBUGCTLMSR=y 236CONFIG_X86_DEBUGCTLMSR=y
@@ -234,8 +240,10 @@ CONFIG_DMI=y
234CONFIG_GART_IOMMU=y 240CONFIG_GART_IOMMU=y
235CONFIG_CALGARY_IOMMU=y 241CONFIG_CALGARY_IOMMU=y
236CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y 242CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
243CONFIG_AMD_IOMMU=y
237CONFIG_SWIOTLB=y 244CONFIG_SWIOTLB=y
238CONFIG_IOMMU_HELPER=y 245CONFIG_IOMMU_HELPER=y
246# CONFIG_MAXSMP is not set
239CONFIG_NR_CPUS=4 247CONFIG_NR_CPUS=4
240# CONFIG_SCHED_SMT is not set 248# CONFIG_SCHED_SMT is not set
241CONFIG_SCHED_MC=y 249CONFIG_SCHED_MC=y
@@ -281,6 +289,7 @@ CONFIG_ZONE_DMA_FLAG=1
281CONFIG_BOUNCE=y 289CONFIG_BOUNCE=y
282CONFIG_VIRT_TO_BUS=y 290CONFIG_VIRT_TO_BUS=y
283CONFIG_MTRR=y 291CONFIG_MTRR=y
292# CONFIG_MTRR_SANITIZER is not set
284# CONFIG_X86_PAT is not set 293# CONFIG_X86_PAT is not set
285CONFIG_EFI=y 294CONFIG_EFI=y
286CONFIG_SECCOMP=y 295CONFIG_SECCOMP=y
@@ -313,6 +322,7 @@ CONFIG_PM_TRACE_RTC=y
313CONFIG_PM_SLEEP_SMP=y 322CONFIG_PM_SLEEP_SMP=y
314CONFIG_PM_SLEEP=y 323CONFIG_PM_SLEEP=y
315CONFIG_SUSPEND=y 324CONFIG_SUSPEND=y
325# CONFIG_PM_TEST_SUSPEND is not set
316CONFIG_SUSPEND_FREEZER=y 326CONFIG_SUSPEND_FREEZER=y
317CONFIG_HIBERNATION=y 327CONFIG_HIBERNATION=y
318CONFIG_PM_STD_PARTITION="" 328CONFIG_PM_STD_PARTITION=""
@@ -339,6 +349,7 @@ CONFIG_ACPI_NUMA=y
339CONFIG_ACPI_BLACKLIST_YEAR=0 349CONFIG_ACPI_BLACKLIST_YEAR=0
340# CONFIG_ACPI_DEBUG is not set 350# CONFIG_ACPI_DEBUG is not set
341CONFIG_ACPI_EC=y 351CONFIG_ACPI_EC=y
352# CONFIG_ACPI_PCI_SLOT is not set
342CONFIG_ACPI_POWER=y 353CONFIG_ACPI_POWER=y
343CONFIG_ACPI_SYSTEM=y 354CONFIG_ACPI_SYSTEM=y
344CONFIG_X86_PM_TIMER=y 355CONFIG_X86_PM_TIMER=y
@@ -437,10 +448,6 @@ CONFIG_IA32_EMULATION=y
437CONFIG_COMPAT=y 448CONFIG_COMPAT=y
438CONFIG_COMPAT_FOR_U64_ALIGNMENT=y 449CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
439CONFIG_SYSVIPC_COMPAT=y 450CONFIG_SYSVIPC_COMPAT=y
440
441#
442# Networking
443#
444CONFIG_NET=y 451CONFIG_NET=y
445 452
446# 453#
@@ -464,7 +471,10 @@ CONFIG_IP_FIB_HASH=y
464CONFIG_IP_MULTIPLE_TABLES=y 471CONFIG_IP_MULTIPLE_TABLES=y
465CONFIG_IP_ROUTE_MULTIPATH=y 472CONFIG_IP_ROUTE_MULTIPATH=y
466CONFIG_IP_ROUTE_VERBOSE=y 473CONFIG_IP_ROUTE_VERBOSE=y
467# CONFIG_IP_PNP is not set 474CONFIG_IP_PNP=y
475CONFIG_IP_PNP_DHCP=y
476CONFIG_IP_PNP_BOOTP=y
477CONFIG_IP_PNP_RARP=y
468# CONFIG_NET_IPIP is not set 478# CONFIG_NET_IPIP is not set
469# CONFIG_NET_IPGRE is not set 479# CONFIG_NET_IPGRE is not set
470CONFIG_IP_MROUTE=y 480CONFIG_IP_MROUTE=y
@@ -607,7 +617,6 @@ CONFIG_NET_SCHED=y
607# CONFIG_NET_SCH_HTB is not set 617# CONFIG_NET_SCH_HTB is not set
608# CONFIG_NET_SCH_HFSC is not set 618# CONFIG_NET_SCH_HFSC is not set
609# CONFIG_NET_SCH_PRIO is not set 619# CONFIG_NET_SCH_PRIO is not set
610# CONFIG_NET_SCH_RR is not set
611# CONFIG_NET_SCH_RED is not set 620# CONFIG_NET_SCH_RED is not set
612# CONFIG_NET_SCH_SFQ is not set 621# CONFIG_NET_SCH_SFQ is not set
613# CONFIG_NET_SCH_TEQL is not set 622# CONFIG_NET_SCH_TEQL is not set
@@ -669,28 +678,19 @@ CONFIG_FIB_RULES=y
669CONFIG_CFG80211=y 678CONFIG_CFG80211=y
670CONFIG_NL80211=y 679CONFIG_NL80211=y
671CONFIG_WIRELESS_EXT=y 680CONFIG_WIRELESS_EXT=y
681CONFIG_WIRELESS_EXT_SYSFS=y
672CONFIG_MAC80211=y 682CONFIG_MAC80211=y
673 683
674# 684#
675# Rate control algorithm selection 685# Rate control algorithm selection
676# 686#
687CONFIG_MAC80211_RC_PID=y
677CONFIG_MAC80211_RC_DEFAULT_PID=y 688CONFIG_MAC80211_RC_DEFAULT_PID=y
678# CONFIG_MAC80211_RC_DEFAULT_NONE is not set
679
680#
681# Selecting 'y' for an algorithm will
682#
683
684#
685# build the algorithm into mac80211.
686#
687CONFIG_MAC80211_RC_DEFAULT="pid" 689CONFIG_MAC80211_RC_DEFAULT="pid"
688CONFIG_MAC80211_RC_PID=y
689# CONFIG_MAC80211_MESH is not set 690# CONFIG_MAC80211_MESH is not set
690CONFIG_MAC80211_LEDS=y 691CONFIG_MAC80211_LEDS=y
691# CONFIG_MAC80211_DEBUGFS is not set 692# CONFIG_MAC80211_DEBUGFS is not set
692# CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set 693# CONFIG_MAC80211_DEBUG_MENU is not set
693# CONFIG_MAC80211_DEBUG is not set
694# CONFIG_IEEE80211 is not set 694# CONFIG_IEEE80211 is not set
695# CONFIG_RFKILL is not set 695# CONFIG_RFKILL is not set
696# CONFIG_NET_9P is not set 696# CONFIG_NET_9P is not set
@@ -706,6 +706,8 @@ CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
706CONFIG_STANDALONE=y 706CONFIG_STANDALONE=y
707CONFIG_PREVENT_FIRMWARE_BUILD=y 707CONFIG_PREVENT_FIRMWARE_BUILD=y
708CONFIG_FW_LOADER=y 708CONFIG_FW_LOADER=y
709CONFIG_FIRMWARE_IN_KERNEL=y
710CONFIG_EXTRA_FIRMWARE=""
709# CONFIG_DEBUG_DRIVER is not set 711# CONFIG_DEBUG_DRIVER is not set
710CONFIG_DEBUG_DEVRES=y 712CONFIG_DEBUG_DEVRES=y
711# CONFIG_SYS_HYPERVISOR is not set 713# CONFIG_SYS_HYPERVISOR is not set
@@ -738,6 +740,7 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
738# CONFIG_BLK_DEV_XIP is not set 740# CONFIG_BLK_DEV_XIP is not set
739# CONFIG_CDROM_PKTCDVD is not set 741# CONFIG_CDROM_PKTCDVD is not set
740# CONFIG_ATA_OVER_ETH is not set 742# CONFIG_ATA_OVER_ETH is not set
743# CONFIG_BLK_DEV_HD is not set
741CONFIG_MISC_DEVICES=y 744CONFIG_MISC_DEVICES=y
742# CONFIG_IBM_ASM is not set 745# CONFIG_IBM_ASM is not set
743# CONFIG_PHANTOM is not set 746# CONFIG_PHANTOM is not set
@@ -748,10 +751,14 @@ CONFIG_MISC_DEVICES=y
748# CONFIG_ASUS_LAPTOP is not set 751# CONFIG_ASUS_LAPTOP is not set
749# CONFIG_FUJITSU_LAPTOP is not set 752# CONFIG_FUJITSU_LAPTOP is not set
750# CONFIG_MSI_LAPTOP is not set 753# CONFIG_MSI_LAPTOP is not set
754# CONFIG_COMPAL_LAPTOP is not set
751# CONFIG_SONY_LAPTOP is not set 755# CONFIG_SONY_LAPTOP is not set
752# CONFIG_THINKPAD_ACPI is not set 756# CONFIG_THINKPAD_ACPI is not set
753# CONFIG_INTEL_MENLOW is not set 757# CONFIG_INTEL_MENLOW is not set
754# CONFIG_ENCLOSURE_SERVICES is not set 758# CONFIG_ENCLOSURE_SERVICES is not set
759# CONFIG_SGI_XP is not set
760# CONFIG_HP_ILO is not set
761# CONFIG_SGI_GRU is not set
755CONFIG_HAVE_IDE=y 762CONFIG_HAVE_IDE=y
756# CONFIG_IDE is not set 763# CONFIG_IDE is not set
757 764
@@ -790,12 +797,13 @@ CONFIG_SCSI_WAIT_SCAN=m
790# 797#
791CONFIG_SCSI_SPI_ATTRS=y 798CONFIG_SCSI_SPI_ATTRS=y
792# CONFIG_SCSI_FC_ATTRS is not set 799# CONFIG_SCSI_FC_ATTRS is not set
793# CONFIG_SCSI_ISCSI_ATTRS is not set 800CONFIG_SCSI_ISCSI_ATTRS=y
794# CONFIG_SCSI_SAS_ATTRS is not set 801# CONFIG_SCSI_SAS_ATTRS is not set
795# CONFIG_SCSI_SAS_LIBSAS is not set 802# CONFIG_SCSI_SAS_LIBSAS is not set
796# CONFIG_SCSI_SRP_ATTRS is not set 803# CONFIG_SCSI_SRP_ATTRS is not set
797# CONFIG_SCSI_LOWLEVEL is not set 804# CONFIG_SCSI_LOWLEVEL is not set
798# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set 805# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
806# CONFIG_SCSI_DH is not set
799CONFIG_ATA=y 807CONFIG_ATA=y
800# CONFIG_ATA_NONSTANDARD is not set 808# CONFIG_ATA_NONSTANDARD is not set
801CONFIG_ATA_ACPI=y 809CONFIG_ATA_ACPI=y
@@ -857,6 +865,7 @@ CONFIG_PATA_OLDPIIX=y
857# CONFIG_PATA_SIS is not set 865# CONFIG_PATA_SIS is not set
858# CONFIG_PATA_VIA is not set 866# CONFIG_PATA_VIA is not set
859# CONFIG_PATA_WINBOND is not set 867# CONFIG_PATA_WINBOND is not set
868CONFIG_PATA_SCH=y
860CONFIG_MD=y 869CONFIG_MD=y
861CONFIG_BLK_DEV_MD=y 870CONFIG_BLK_DEV_MD=y
862# CONFIG_MD_LINEAR is not set 871# CONFIG_MD_LINEAR is not set
@@ -880,13 +889,16 @@ CONFIG_DM_ZERO=y
880# 889#
881# IEEE 1394 (FireWire) support 890# IEEE 1394 (FireWire) support
882# 891#
892
893#
894# Enable only one of the two stacks, unless you know what you are doing
895#
883# CONFIG_FIREWIRE is not set 896# CONFIG_FIREWIRE is not set
884# CONFIG_IEEE1394 is not set 897# CONFIG_IEEE1394 is not set
885# CONFIG_I2O is not set 898# CONFIG_I2O is not set
886CONFIG_MACINTOSH_DRIVERS=y 899CONFIG_MACINTOSH_DRIVERS=y
887CONFIG_MAC_EMUMOUSEBTN=y 900CONFIG_MAC_EMUMOUSEBTN=y
888CONFIG_NETDEVICES=y 901CONFIG_NETDEVICES=y
889# CONFIG_NETDEVICES_MULTIQUEUE is not set
890# CONFIG_IFB is not set 902# CONFIG_IFB is not set
891# CONFIG_DUMMY is not set 903# CONFIG_DUMMY is not set
892# CONFIG_BONDING is not set 904# CONFIG_BONDING is not set
@@ -896,7 +908,23 @@ CONFIG_NETDEVICES=y
896# CONFIG_VETH is not set 908# CONFIG_VETH is not set
897# CONFIG_NET_SB1000 is not set 909# CONFIG_NET_SB1000 is not set
898# CONFIG_ARCNET is not set 910# CONFIG_ARCNET is not set
899# CONFIG_PHYLIB is not set 911CONFIG_PHYLIB=y
912
913#
914# MII PHY device drivers
915#
916# CONFIG_MARVELL_PHY is not set
917# CONFIG_DAVICOM_PHY is not set
918# CONFIG_QSEMI_PHY is not set
919# CONFIG_LXT_PHY is not set
920# CONFIG_CICADA_PHY is not set
921# CONFIG_VITESSE_PHY is not set
922# CONFIG_SMSC_PHY is not set
923# CONFIG_BROADCOM_PHY is not set
924# CONFIG_ICPLUS_PHY is not set
925# CONFIG_REALTEK_PHY is not set
926# CONFIG_FIXED_PHY is not set
927# CONFIG_MDIO_BITBANG is not set
900CONFIG_NET_ETHERNET=y 928CONFIG_NET_ETHERNET=y
901CONFIG_MII=y 929CONFIG_MII=y
902# CONFIG_HAPPYMEAL is not set 930# CONFIG_HAPPYMEAL is not set
@@ -940,16 +968,15 @@ CONFIG_8139TOO_PIO=y
940# CONFIG_SIS900 is not set 968# CONFIG_SIS900 is not set
941# CONFIG_EPIC100 is not set 969# CONFIG_EPIC100 is not set
942# CONFIG_SUNDANCE is not set 970# CONFIG_SUNDANCE is not set
971# CONFIG_TLAN is not set
943# CONFIG_VIA_RHINE is not set 972# CONFIG_VIA_RHINE is not set
944# CONFIG_SC92031 is not set 973# CONFIG_SC92031 is not set
945CONFIG_NETDEV_1000=y 974CONFIG_NETDEV_1000=y
946# CONFIG_ACENIC is not set 975# CONFIG_ACENIC is not set
947# CONFIG_DL2K is not set 976# CONFIG_DL2K is not set
948CONFIG_E1000=y 977CONFIG_E1000=y
949# CONFIG_E1000_NAPI is not set
950# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set 978# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set
951# CONFIG_E1000E is not set 979# CONFIG_E1000E is not set
952# CONFIG_E1000E_ENABLED is not set
953# CONFIG_IP1000 is not set 980# CONFIG_IP1000 is not set
954# CONFIG_IGB is not set 981# CONFIG_IGB is not set
955# CONFIG_NS83820 is not set 982# CONFIG_NS83820 is not set
@@ -965,6 +992,7 @@ CONFIG_TIGON3=y
965# CONFIG_BNX2 is not set 992# CONFIG_BNX2 is not set
966# CONFIG_QLA3XXX is not set 993# CONFIG_QLA3XXX is not set
967# CONFIG_ATL1 is not set 994# CONFIG_ATL1 is not set
995# CONFIG_ATL1E is not set
968CONFIG_NETDEV_10000=y 996CONFIG_NETDEV_10000=y
969# CONFIG_CHELSIO_T1 is not set 997# CONFIG_CHELSIO_T1 is not set
970# CONFIG_CHELSIO_T3 is not set 998# CONFIG_CHELSIO_T3 is not set
@@ -1003,13 +1031,14 @@ CONFIG_WLAN_80211=y
1003# CONFIG_RTL8180 is not set 1031# CONFIG_RTL8180 is not set
1004# CONFIG_RTL8187 is not set 1032# CONFIG_RTL8187 is not set
1005# CONFIG_ADM8211 is not set 1033# CONFIG_ADM8211 is not set
1034# CONFIG_MAC80211_HWSIM is not set
1006# CONFIG_P54_COMMON is not set 1035# CONFIG_P54_COMMON is not set
1007CONFIG_ATH5K=y 1036CONFIG_ATH5K=y
1008# CONFIG_ATH5K_DEBUG is not set 1037# CONFIG_ATH5K_DEBUG is not set
1009# CONFIG_IWLWIFI is not set 1038# CONFIG_ATH9K is not set
1010# CONFIG_IWLCORE is not set 1039# CONFIG_IWLCORE is not set
1011# CONFIG_IWLWIFI_LEDS is not set 1040# CONFIG_IWLWIFI_LEDS is not set
1012# CONFIG_IWL4965 is not set 1041# CONFIG_IWLAGN is not set
1013# CONFIG_IWL3945 is not set 1042# CONFIG_IWL3945 is not set
1014# CONFIG_HOSTAP is not set 1043# CONFIG_HOSTAP is not set
1015# CONFIG_B43 is not set 1044# CONFIG_B43 is not set
@@ -1088,6 +1117,7 @@ CONFIG_MOUSE_PS2_TRACKPOINT=y
1088# CONFIG_MOUSE_PS2_TOUCHKIT is not set 1117# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1089# CONFIG_MOUSE_SERIAL is not set 1118# CONFIG_MOUSE_SERIAL is not set
1090# CONFIG_MOUSE_APPLETOUCH is not set 1119# CONFIG_MOUSE_APPLETOUCH is not set
1120# CONFIG_MOUSE_BCM5974 is not set
1091# CONFIG_MOUSE_VSXXXAA is not set 1121# CONFIG_MOUSE_VSXXXAA is not set
1092CONFIG_INPUT_JOYSTICK=y 1122CONFIG_INPUT_JOYSTICK=y
1093# CONFIG_JOYSTICK_ANALOG is not set 1123# CONFIG_JOYSTICK_ANALOG is not set
@@ -1122,12 +1152,14 @@ CONFIG_INPUT_TOUCHSCREEN=y
1122# CONFIG_TOUCHSCREEN_GUNZE is not set 1152# CONFIG_TOUCHSCREEN_GUNZE is not set
1123# CONFIG_TOUCHSCREEN_ELO is not set 1153# CONFIG_TOUCHSCREEN_ELO is not set
1124# CONFIG_TOUCHSCREEN_MTOUCH is not set 1154# CONFIG_TOUCHSCREEN_MTOUCH is not set
1155# CONFIG_TOUCHSCREEN_INEXIO is not set
1125# CONFIG_TOUCHSCREEN_MK712 is not set 1156# CONFIG_TOUCHSCREEN_MK712 is not set
1126# CONFIG_TOUCHSCREEN_PENMOUNT is not set 1157# CONFIG_TOUCHSCREEN_PENMOUNT is not set
1127# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set 1158# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
1128# CONFIG_TOUCHSCREEN_TOUCHWIN is not set 1159# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
1129# CONFIG_TOUCHSCREEN_UCB1400 is not set 1160# CONFIG_TOUCHSCREEN_UCB1400 is not set
1130# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set 1161# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
1162# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
1131CONFIG_INPUT_MISC=y 1163CONFIG_INPUT_MISC=y
1132# CONFIG_INPUT_PCSPKR is not set 1164# CONFIG_INPUT_PCSPKR is not set
1133# CONFIG_INPUT_APANEL is not set 1165# CONFIG_INPUT_APANEL is not set
@@ -1155,6 +1187,7 @@ CONFIG_SERIO_LIBPS2=y
1155# Character devices 1187# Character devices
1156# 1188#
1157CONFIG_VT=y 1189CONFIG_VT=y
1190CONFIG_CONSOLE_TRANSLATIONS=y
1158CONFIG_VT_CONSOLE=y 1191CONFIG_VT_CONSOLE=y
1159CONFIG_HW_CONSOLE=y 1192CONFIG_HW_CONSOLE=y
1160CONFIG_VT_HW_CONSOLE_BINDING=y 1193CONFIG_VT_HW_CONSOLE_BINDING=y
@@ -1222,7 +1255,6 @@ CONFIG_NVRAM=y
1222# CONFIG_PC8736x_GPIO is not set 1255# CONFIG_PC8736x_GPIO is not set
1223# CONFIG_RAW_DRIVER is not set 1256# CONFIG_RAW_DRIVER is not set
1224CONFIG_HPET=y 1257CONFIG_HPET=y
1225# CONFIG_HPET_RTC_IRQ is not set
1226# CONFIG_HPET_MMAP is not set 1258# CONFIG_HPET_MMAP is not set
1227# CONFIG_HANGCHECK_TIMER is not set 1259# CONFIG_HANGCHECK_TIMER is not set
1228# CONFIG_TCG_TPM is not set 1260# CONFIG_TCG_TPM is not set
@@ -1231,42 +1263,63 @@ CONFIG_DEVPORT=y
1231CONFIG_I2C=y 1263CONFIG_I2C=y
1232CONFIG_I2C_BOARDINFO=y 1264CONFIG_I2C_BOARDINFO=y
1233# CONFIG_I2C_CHARDEV is not set 1265# CONFIG_I2C_CHARDEV is not set
1266CONFIG_I2C_HELPER_AUTO=y
1234 1267
1235# 1268#
1236# I2C Hardware Bus support 1269# I2C Hardware Bus support
1237# 1270#
1271
1272#
1273# PC SMBus host controller drivers
1274#
1238# CONFIG_I2C_ALI1535 is not set 1275# CONFIG_I2C_ALI1535 is not set
1239# CONFIG_I2C_ALI1563 is not set 1276# CONFIG_I2C_ALI1563 is not set
1240# CONFIG_I2C_ALI15X3 is not set 1277# CONFIG_I2C_ALI15X3 is not set
1241# CONFIG_I2C_AMD756 is not set 1278# CONFIG_I2C_AMD756 is not set
1242# CONFIG_I2C_AMD8111 is not set 1279# CONFIG_I2C_AMD8111 is not set
1243CONFIG_I2C_I801=y 1280CONFIG_I2C_I801=y
1244# CONFIG_I2C_I810 is not set 1281# CONFIG_I2C_ISCH is not set
1245# CONFIG_I2C_PIIX4 is not set 1282# CONFIG_I2C_PIIX4 is not set
1246# CONFIG_I2C_NFORCE2 is not set 1283# CONFIG_I2C_NFORCE2 is not set
1247# CONFIG_I2C_OCORES is not set
1248# CONFIG_I2C_PARPORT_LIGHT is not set
1249# CONFIG_I2C_PROSAVAGE is not set
1250# CONFIG_I2C_SAVAGE4 is not set
1251# CONFIG_I2C_SIMTEC is not set
1252# CONFIG_I2C_SIS5595 is not set 1284# CONFIG_I2C_SIS5595 is not set
1253# CONFIG_I2C_SIS630 is not set 1285# CONFIG_I2C_SIS630 is not set
1254# CONFIG_I2C_SIS96X is not set 1286# CONFIG_I2C_SIS96X is not set
1255# CONFIG_I2C_TAOS_EVM is not set
1256# CONFIG_I2C_STUB is not set
1257# CONFIG_I2C_TINY_USB is not set
1258# CONFIG_I2C_VIA is not set 1287# CONFIG_I2C_VIA is not set
1259# CONFIG_I2C_VIAPRO is not set 1288# CONFIG_I2C_VIAPRO is not set
1289
1290#
1291# I2C system bus drivers (mostly embedded / system-on-chip)
1292#
1293# CONFIG_I2C_OCORES is not set
1294# CONFIG_I2C_SIMTEC is not set
1295
1296#
1297# External I2C/SMBus adapter drivers
1298#
1299# CONFIG_I2C_PARPORT_LIGHT is not set
1300# CONFIG_I2C_TAOS_EVM is not set
1301# CONFIG_I2C_TINY_USB is not set
1302
1303#
1304# Graphics adapter I2C/DDC channel drivers
1305#
1260# CONFIG_I2C_VOODOO3 is not set 1306# CONFIG_I2C_VOODOO3 is not set
1307
1308#
1309# Other I2C/SMBus bus drivers
1310#
1261# CONFIG_I2C_PCA_PLATFORM is not set 1311# CONFIG_I2C_PCA_PLATFORM is not set
1312# CONFIG_I2C_STUB is not set
1262 1313
1263# 1314#
1264# Miscellaneous I2C Chip support 1315# Miscellaneous I2C Chip support
1265# 1316#
1266# CONFIG_DS1682 is not set 1317# CONFIG_DS1682 is not set
1318# CONFIG_AT24 is not set
1267# CONFIG_SENSORS_EEPROM is not set 1319# CONFIG_SENSORS_EEPROM is not set
1268# CONFIG_SENSORS_PCF8574 is not set 1320# CONFIG_SENSORS_PCF8574 is not set
1269# CONFIG_PCF8575 is not set 1321# CONFIG_PCF8575 is not set
1322# CONFIG_SENSORS_PCA9539 is not set
1270# CONFIG_SENSORS_PCF8591 is not set 1323# CONFIG_SENSORS_PCF8591 is not set
1271# CONFIG_SENSORS_MAX6875 is not set 1324# CONFIG_SENSORS_MAX6875 is not set
1272# CONFIG_SENSORS_TSL2550 is not set 1325# CONFIG_SENSORS_TSL2550 is not set
@@ -1275,6 +1328,8 @@ CONFIG_I2C_I801=y
1275# CONFIG_I2C_DEBUG_BUS is not set 1328# CONFIG_I2C_DEBUG_BUS is not set
1276# CONFIG_I2C_DEBUG_CHIP is not set 1329# CONFIG_I2C_DEBUG_CHIP is not set
1277# CONFIG_SPI is not set 1330# CONFIG_SPI is not set
1331CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
1332# CONFIG_GPIOLIB is not set
1278# CONFIG_W1 is not set 1333# CONFIG_W1 is not set
1279CONFIG_POWER_SUPPLY=y 1334CONFIG_POWER_SUPPLY=y
1280# CONFIG_POWER_SUPPLY_DEBUG is not set 1335# CONFIG_POWER_SUPPLY_DEBUG is not set
@@ -1335,8 +1390,10 @@ CONFIG_SSB_POSSIBLE=y
1335# 1390#
1336# Multifunction device drivers 1391# Multifunction device drivers
1337# 1392#
1393# CONFIG_MFD_CORE is not set
1338# CONFIG_MFD_SM501 is not set 1394# CONFIG_MFD_SM501 is not set
1339# CONFIG_HTC_PASIC3 is not set 1395# CONFIG_HTC_PASIC3 is not set
1396# CONFIG_MFD_TMIO is not set
1340 1397
1341# 1398#
1342# Multimedia devices 1399# Multimedia devices
@@ -1347,6 +1404,7 @@ CONFIG_SSB_POSSIBLE=y
1347# 1404#
1348# CONFIG_VIDEO_DEV is not set 1405# CONFIG_VIDEO_DEV is not set
1349# CONFIG_DVB_CORE is not set 1406# CONFIG_DVB_CORE is not set
1407# CONFIG_VIDEO_MEDIA is not set
1350 1408
1351# 1409#
1352# Multimedia drivers 1410# Multimedia drivers
@@ -1387,7 +1445,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
1387# CONFIG_FB_SYS_IMAGEBLIT is not set 1445# CONFIG_FB_SYS_IMAGEBLIT is not set
1388# CONFIG_FB_FOREIGN_ENDIAN is not set 1446# CONFIG_FB_FOREIGN_ENDIAN is not set
1389# CONFIG_FB_SYS_FOPS is not set 1447# CONFIG_FB_SYS_FOPS is not set
1390CONFIG_FB_DEFERRED_IO=y
1391# CONFIG_FB_SVGALIB is not set 1448# CONFIG_FB_SVGALIB is not set
1392# CONFIG_FB_MACMODES is not set 1449# CONFIG_FB_MACMODES is not set
1393# CONFIG_FB_BACKLIGHT is not set 1450# CONFIG_FB_BACKLIGHT is not set
@@ -1430,6 +1487,7 @@ CONFIG_FB_EFI=y
1430# CONFIG_FB_TRIDENT is not set 1487# CONFIG_FB_TRIDENT is not set
1431# CONFIG_FB_ARK is not set 1488# CONFIG_FB_ARK is not set
1432# CONFIG_FB_PM3 is not set 1489# CONFIG_FB_PM3 is not set
1490# CONFIG_FB_CARMINE is not set
1433# CONFIG_FB_GEODE is not set 1491# CONFIG_FB_GEODE is not set
1434# CONFIG_FB_VIRTUAL is not set 1492# CONFIG_FB_VIRTUAL is not set
1435CONFIG_BACKLIGHT_LCD_SUPPORT=y 1493CONFIG_BACKLIGHT_LCD_SUPPORT=y
@@ -1437,6 +1495,7 @@ CONFIG_BACKLIGHT_LCD_SUPPORT=y
1437CONFIG_BACKLIGHT_CLASS_DEVICE=y 1495CONFIG_BACKLIGHT_CLASS_DEVICE=y
1438# CONFIG_BACKLIGHT_CORGI is not set 1496# CONFIG_BACKLIGHT_CORGI is not set
1439# CONFIG_BACKLIGHT_PROGEAR is not set 1497# CONFIG_BACKLIGHT_PROGEAR is not set
1498# CONFIG_BACKLIGHT_MBP_NVIDIA is not set
1440 1499
1441# 1500#
1442# Display device support 1501# Display device support
@@ -1456,15 +1515,7 @@ CONFIG_LOGO=y
1456# CONFIG_LOGO_LINUX_MONO is not set 1515# CONFIG_LOGO_LINUX_MONO is not set
1457# CONFIG_LOGO_LINUX_VGA16 is not set 1516# CONFIG_LOGO_LINUX_VGA16 is not set
1458CONFIG_LOGO_LINUX_CLUT224=y 1517CONFIG_LOGO_LINUX_CLUT224=y
1459
1460#
1461# Sound
1462#
1463CONFIG_SOUND=y 1518CONFIG_SOUND=y
1464
1465#
1466# Advanced Linux Sound Architecture
1467#
1468CONFIG_SND=y 1519CONFIG_SND=y
1469CONFIG_SND_TIMER=y 1520CONFIG_SND_TIMER=y
1470CONFIG_SND_PCM=y 1521CONFIG_SND_PCM=y
@@ -1482,20 +1533,14 @@ CONFIG_SND_VERBOSE_PROCFS=y
1482# CONFIG_SND_VERBOSE_PRINTK is not set 1533# CONFIG_SND_VERBOSE_PRINTK is not set
1483# CONFIG_SND_DEBUG is not set 1534# CONFIG_SND_DEBUG is not set
1484CONFIG_SND_VMASTER=y 1535CONFIG_SND_VMASTER=y
1485 1536CONFIG_SND_DRIVERS=y
1486#
1487# Generic devices
1488#
1489# CONFIG_SND_PCSP is not set 1537# CONFIG_SND_PCSP is not set
1490# CONFIG_SND_DUMMY is not set 1538# CONFIG_SND_DUMMY is not set
1491# CONFIG_SND_VIRMIDI is not set 1539# CONFIG_SND_VIRMIDI is not set
1492# CONFIG_SND_MTPAV is not set 1540# CONFIG_SND_MTPAV is not set
1493# CONFIG_SND_SERIAL_U16550 is not set 1541# CONFIG_SND_SERIAL_U16550 is not set
1494# CONFIG_SND_MPU401 is not set 1542# CONFIG_SND_MPU401 is not set
1495 1543CONFIG_SND_PCI=y
1496#
1497# PCI devices
1498#
1499# CONFIG_SND_AD1889 is not set 1544# CONFIG_SND_AD1889 is not set
1500# CONFIG_SND_ALS300 is not set 1545# CONFIG_SND_ALS300 is not set
1501# CONFIG_SND_ALS4000 is not set 1546# CONFIG_SND_ALS4000 is not set
@@ -1568,36 +1613,14 @@ CONFIG_SND_HDA_GENERIC=y
1568# CONFIG_SND_VIRTUOSO is not set 1613# CONFIG_SND_VIRTUOSO is not set
1569# CONFIG_SND_VX222 is not set 1614# CONFIG_SND_VX222 is not set
1570# CONFIG_SND_YMFPCI is not set 1615# CONFIG_SND_YMFPCI is not set
1571 1616CONFIG_SND_USB=y
1572#
1573# USB devices
1574#
1575# CONFIG_SND_USB_AUDIO is not set 1617# CONFIG_SND_USB_AUDIO is not set
1576# CONFIG_SND_USB_USX2Y is not set 1618# CONFIG_SND_USB_USX2Y is not set
1577# CONFIG_SND_USB_CAIAQ is not set 1619# CONFIG_SND_USB_CAIAQ is not set
1578 1620CONFIG_SND_PCMCIA=y
1579#
1580# PCMCIA devices
1581#
1582# CONFIG_SND_VXPOCKET is not set 1621# CONFIG_SND_VXPOCKET is not set
1583# CONFIG_SND_PDAUDIOCF is not set 1622# CONFIG_SND_PDAUDIOCF is not set
1584
1585#
1586# System on Chip audio support
1587#
1588# CONFIG_SND_SOC is not set 1623# CONFIG_SND_SOC is not set
1589
1590#
1591# ALSA SoC audio for Freescale SOCs
1592#
1593
1594#
1595# SoC Audio for the Texas Instruments OMAP
1596#
1597
1598#
1599# Open Sound System
1600#
1601# CONFIG_SOUND_PRIME is not set 1624# CONFIG_SOUND_PRIME is not set
1602CONFIG_HID_SUPPORT=y 1625CONFIG_HID_SUPPORT=y
1603CONFIG_HID=y 1626CONFIG_HID=y
@@ -1633,6 +1656,7 @@ CONFIG_USB_DEVICEFS=y
1633# CONFIG_USB_DYNAMIC_MINORS is not set 1656# CONFIG_USB_DYNAMIC_MINORS is not set
1634CONFIG_USB_SUSPEND=y 1657CONFIG_USB_SUSPEND=y
1635# CONFIG_USB_OTG is not set 1658# CONFIG_USB_OTG is not set
1659CONFIG_USB_MON=y
1636 1660
1637# 1661#
1638# USB Host Controller Drivers 1662# USB Host Controller Drivers
@@ -1656,6 +1680,7 @@ CONFIG_USB_UHCI_HCD=y
1656# 1680#
1657# CONFIG_USB_ACM is not set 1681# CONFIG_USB_ACM is not set
1658CONFIG_USB_PRINTER=y 1682CONFIG_USB_PRINTER=y
1683# CONFIG_USB_WDM is not set
1659 1684
1660# 1685#
1661# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1686# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
@@ -1677,6 +1702,7 @@ CONFIG_USB_STORAGE=y
1677# CONFIG_USB_STORAGE_ALAUDA is not set 1702# CONFIG_USB_STORAGE_ALAUDA is not set
1678# CONFIG_USB_STORAGE_ONETOUCH is not set 1703# CONFIG_USB_STORAGE_ONETOUCH is not set
1679# CONFIG_USB_STORAGE_KARMA is not set 1704# CONFIG_USB_STORAGE_KARMA is not set
1705# CONFIG_USB_STORAGE_SIERRA is not set
1680# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set 1706# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1681CONFIG_USB_LIBUSUAL=y 1707CONFIG_USB_LIBUSUAL=y
1682 1708
@@ -1685,7 +1711,6 @@ CONFIG_USB_LIBUSUAL=y
1685# 1711#
1686# CONFIG_USB_MDC800 is not set 1712# CONFIG_USB_MDC800 is not set
1687# CONFIG_USB_MICROTEK is not set 1713# CONFIG_USB_MICROTEK is not set
1688CONFIG_USB_MON=y
1689 1714
1690# 1715#
1691# USB port drivers 1716# USB port drivers
@@ -1698,7 +1723,6 @@ CONFIG_USB_MON=y
1698# CONFIG_USB_EMI62 is not set 1723# CONFIG_USB_EMI62 is not set
1699# CONFIG_USB_EMI26 is not set 1724# CONFIG_USB_EMI26 is not set
1700# CONFIG_USB_ADUTUX is not set 1725# CONFIG_USB_ADUTUX is not set
1701# CONFIG_USB_AUERSWALD is not set
1702# CONFIG_USB_RIO500 is not set 1726# CONFIG_USB_RIO500 is not set
1703# CONFIG_USB_LEGOTOWER is not set 1727# CONFIG_USB_LEGOTOWER is not set
1704# CONFIG_USB_LCD is not set 1728# CONFIG_USB_LCD is not set
@@ -1715,6 +1739,7 @@ CONFIG_USB_MON=y
1715# CONFIG_USB_TRANCEVIBRATOR is not set 1739# CONFIG_USB_TRANCEVIBRATOR is not set
1716# CONFIG_USB_IOWARRIOR is not set 1740# CONFIG_USB_IOWARRIOR is not set
1717# CONFIG_USB_TEST is not set 1741# CONFIG_USB_TEST is not set
1742# CONFIG_USB_ISIGHTFW is not set
1718# CONFIG_USB_GADGET is not set 1743# CONFIG_USB_GADGET is not set
1719# CONFIG_MMC is not set 1744# CONFIG_MMC is not set
1720# CONFIG_MEMSTICK is not set 1745# CONFIG_MEMSTICK is not set
@@ -1724,7 +1749,9 @@ CONFIG_LEDS_CLASS=y
1724# 1749#
1725# LED drivers 1750# LED drivers
1726# 1751#
1752# CONFIG_LEDS_PCA9532 is not set
1727# CONFIG_LEDS_CLEVO_MAIL is not set 1753# CONFIG_LEDS_CLEVO_MAIL is not set
1754# CONFIG_LEDS_PCA955X is not set
1728 1755
1729# 1756#
1730# LED Triggers 1757# LED Triggers
@@ -1770,6 +1797,7 @@ CONFIG_RTC_INTF_DEV=y
1770# CONFIG_RTC_DRV_PCF8583 is not set 1797# CONFIG_RTC_DRV_PCF8583 is not set
1771# CONFIG_RTC_DRV_M41T80 is not set 1798# CONFIG_RTC_DRV_M41T80 is not set
1772# CONFIG_RTC_DRV_S35390A is not set 1799# CONFIG_RTC_DRV_S35390A is not set
1800# CONFIG_RTC_DRV_FM3130 is not set
1773 1801
1774# 1802#
1775# SPI RTC drivers 1803# SPI RTC drivers
@@ -1802,11 +1830,13 @@ CONFIG_DMADEVICES=y
1802# Firmware Drivers 1830# Firmware Drivers
1803# 1831#
1804# CONFIG_EDD is not set 1832# CONFIG_EDD is not set
1833CONFIG_FIRMWARE_MEMMAP=y
1805CONFIG_EFI_VARS=y 1834CONFIG_EFI_VARS=y
1806# CONFIG_DELL_RBU is not set 1835# CONFIG_DELL_RBU is not set
1807# CONFIG_DCDBAS is not set 1836# CONFIG_DCDBAS is not set
1808CONFIG_DMIID=y 1837CONFIG_DMIID=y
1809# CONFIG_ISCSI_IBFT_FIND is not set 1838CONFIG_ISCSI_IBFT_FIND=y
1839CONFIG_ISCSI_IBFT=y
1810 1840
1811# 1841#
1812# File systems 1842# File systems
@@ -1886,14 +1916,27 @@ CONFIG_HUGETLB_PAGE=y
1886# CONFIG_CRAMFS is not set 1916# CONFIG_CRAMFS is not set
1887# CONFIG_VXFS_FS is not set 1917# CONFIG_VXFS_FS is not set
1888# CONFIG_MINIX_FS is not set 1918# CONFIG_MINIX_FS is not set
1919# CONFIG_OMFS_FS is not set
1889# CONFIG_HPFS_FS is not set 1920# CONFIG_HPFS_FS is not set
1890# CONFIG_QNX4FS_FS is not set 1921# CONFIG_QNX4FS_FS is not set
1891# CONFIG_ROMFS_FS is not set 1922# CONFIG_ROMFS_FS is not set
1892# CONFIG_SYSV_FS is not set 1923# CONFIG_SYSV_FS is not set
1893# CONFIG_UFS_FS is not set 1924# CONFIG_UFS_FS is not set
1894CONFIG_NETWORK_FILESYSTEMS=y 1925CONFIG_NETWORK_FILESYSTEMS=y
1895# CONFIG_NFS_FS is not set 1926CONFIG_NFS_FS=y
1927CONFIG_NFS_V3=y
1928CONFIG_NFS_V3_ACL=y
1929CONFIG_NFS_V4=y
1930CONFIG_ROOT_NFS=y
1896# CONFIG_NFSD is not set 1931# CONFIG_NFSD is not set
1932CONFIG_LOCKD=y
1933CONFIG_LOCKD_V4=y
1934CONFIG_NFS_ACL_SUPPORT=y
1935CONFIG_NFS_COMMON=y
1936CONFIG_SUNRPC=y
1937CONFIG_SUNRPC_GSS=y
1938CONFIG_RPCSEC_GSS_KRB5=y
1939# CONFIG_RPCSEC_GSS_SPKM3 is not set
1897# CONFIG_SMB_FS is not set 1940# CONFIG_SMB_FS is not set
1898# CONFIG_CIFS is not set 1941# CONFIG_CIFS is not set
1899# CONFIG_NCP_FS is not set 1942# CONFIG_NCP_FS is not set
@@ -1967,9 +2010,9 @@ CONFIG_NLS_UTF8=y
1967# Kernel hacking 2010# Kernel hacking
1968# 2011#
1969CONFIG_TRACE_IRQFLAGS_SUPPORT=y 2012CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1970# CONFIG_PRINTK_TIME is not set 2013CONFIG_PRINTK_TIME=y
1971# CONFIG_ENABLE_WARN_DEPRECATED is not set 2014CONFIG_ENABLE_WARN_DEPRECATED=y
1972# CONFIG_ENABLE_MUST_CHECK is not set 2015CONFIG_ENABLE_MUST_CHECK=y
1973CONFIG_FRAME_WARN=2048 2016CONFIG_FRAME_WARN=2048
1974CONFIG_MAGIC_SYSRQ=y 2017CONFIG_MAGIC_SYSRQ=y
1975# CONFIG_UNUSED_SYMBOLS is not set 2018# CONFIG_UNUSED_SYMBOLS is not set
@@ -1998,6 +2041,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
1998# CONFIG_DEBUG_INFO is not set 2041# CONFIG_DEBUG_INFO is not set
1999# CONFIG_DEBUG_VM is not set 2042# CONFIG_DEBUG_VM is not set
2000# CONFIG_DEBUG_WRITECOUNT is not set 2043# CONFIG_DEBUG_WRITECOUNT is not set
2044CONFIG_DEBUG_MEMORY_INIT=y
2001# CONFIG_DEBUG_LIST is not set 2045# CONFIG_DEBUG_LIST is not set
2002# CONFIG_DEBUG_SG is not set 2046# CONFIG_DEBUG_SG is not set
2003CONFIG_FRAME_POINTER=y 2047CONFIG_FRAME_POINTER=y
@@ -2008,11 +2052,20 @@ CONFIG_FRAME_POINTER=y
2008# CONFIG_LKDTM is not set 2052# CONFIG_LKDTM is not set
2009# CONFIG_FAULT_INJECTION is not set 2053# CONFIG_FAULT_INJECTION is not set
2010# CONFIG_LATENCYTOP is not set 2054# CONFIG_LATENCYTOP is not set
2055CONFIG_SYSCTL_SYSCALL_CHECK=y
2056CONFIG_HAVE_FTRACE=y
2057CONFIG_HAVE_DYNAMIC_FTRACE=y
2058# CONFIG_FTRACE is not set
2059# CONFIG_IRQSOFF_TRACER is not set
2060# CONFIG_SYSPROF_TRACER is not set
2061# CONFIG_SCHED_TRACER is not set
2062# CONFIG_CONTEXT_SWITCH_TRACER is not set
2011CONFIG_PROVIDE_OHCI1394_DMA_INIT=y 2063CONFIG_PROVIDE_OHCI1394_DMA_INIT=y
2012# CONFIG_SAMPLES is not set 2064# CONFIG_SAMPLES is not set
2013# CONFIG_KGDB is not set
2014CONFIG_HAVE_ARCH_KGDB=y 2065CONFIG_HAVE_ARCH_KGDB=y
2066# CONFIG_KGDB is not set
2015# CONFIG_STRICT_DEVMEM is not set 2067# CONFIG_STRICT_DEVMEM is not set
2068CONFIG_X86_VERBOSE_BOOTUP=y
2016CONFIG_EARLY_PRINTK=y 2069CONFIG_EARLY_PRINTK=y
2017CONFIG_DEBUG_STACKOVERFLOW=y 2070CONFIG_DEBUG_STACKOVERFLOW=y
2018CONFIG_DEBUG_STACK_USAGE=y 2071CONFIG_DEBUG_STACK_USAGE=y
@@ -2023,8 +2076,8 @@ CONFIG_DEBUG_RODATA=y
2023# CONFIG_DIRECT_GBPAGES is not set 2076# CONFIG_DIRECT_GBPAGES is not set
2024# CONFIG_DEBUG_RODATA_TEST is not set 2077# CONFIG_DEBUG_RODATA_TEST is not set
2025CONFIG_DEBUG_NX_TEST=m 2078CONFIG_DEBUG_NX_TEST=m
2026CONFIG_X86_MPPARSE=y
2027# CONFIG_IOMMU_DEBUG is not set 2079# CONFIG_IOMMU_DEBUG is not set
2080# CONFIG_MMIOTRACE is not set
2028CONFIG_IO_DELAY_TYPE_0X80=0 2081CONFIG_IO_DELAY_TYPE_0X80=0
2029CONFIG_IO_DELAY_TYPE_0XED=1 2082CONFIG_IO_DELAY_TYPE_0XED=1
2030CONFIG_IO_DELAY_TYPE_UDELAY=2 2083CONFIG_IO_DELAY_TYPE_UDELAY=2
@@ -2036,6 +2089,7 @@ CONFIG_IO_DELAY_0X80=y
2036CONFIG_DEFAULT_IO_DELAY_TYPE=0 2089CONFIG_DEFAULT_IO_DELAY_TYPE=0
2037CONFIG_DEBUG_BOOT_PARAMS=y 2090CONFIG_DEBUG_BOOT_PARAMS=y
2038# CONFIG_CPA_DEBUG is not set 2091# CONFIG_CPA_DEBUG is not set
2092# CONFIG_OPTIMIZE_INLINING is not set
2039 2093
2040# 2094#
2041# Security options 2095# Security options
@@ -2045,7 +2099,6 @@ CONFIG_KEYS_DEBUG_PROC_KEYS=y
2045CONFIG_SECURITY=y 2099CONFIG_SECURITY=y
2046CONFIG_SECURITY_NETWORK=y 2100CONFIG_SECURITY_NETWORK=y
2047# CONFIG_SECURITY_NETWORK_XFRM is not set 2101# CONFIG_SECURITY_NETWORK_XFRM is not set
2048CONFIG_SECURITY_CAPABILITIES=y
2049CONFIG_SECURITY_FILE_CAPABILITIES=y 2102CONFIG_SECURITY_FILE_CAPABILITIES=y
2050# CONFIG_SECURITY_ROOTPLUG is not set 2103# CONFIG_SECURITY_ROOTPLUG is not set
2051CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536 2104CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR=65536
@@ -2106,6 +2159,10 @@ CONFIG_CRYPTO_HMAC=y
2106# CONFIG_CRYPTO_MD4 is not set 2159# CONFIG_CRYPTO_MD4 is not set
2107CONFIG_CRYPTO_MD5=y 2160CONFIG_CRYPTO_MD5=y
2108# CONFIG_CRYPTO_MICHAEL_MIC is not set 2161# CONFIG_CRYPTO_MICHAEL_MIC is not set
2162# CONFIG_CRYPTO_RMD128 is not set
2163# CONFIG_CRYPTO_RMD160 is not set
2164# CONFIG_CRYPTO_RMD256 is not set
2165# CONFIG_CRYPTO_RMD320 is not set
2109CONFIG_CRYPTO_SHA1=y 2166CONFIG_CRYPTO_SHA1=y
2110# CONFIG_CRYPTO_SHA256 is not set 2167# CONFIG_CRYPTO_SHA256 is not set
2111# CONFIG_CRYPTO_SHA512 is not set 2168# CONFIG_CRYPTO_SHA512 is not set
@@ -2155,6 +2212,7 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
2155CONFIG_GENERIC_FIND_NEXT_BIT=y 2212CONFIG_GENERIC_FIND_NEXT_BIT=y
2156# CONFIG_CRC_CCITT is not set 2213# CONFIG_CRC_CCITT is not set
2157# CONFIG_CRC16 is not set 2214# CONFIG_CRC16 is not set
2215CONFIG_CRC_T10DIF=y
2158# CONFIG_CRC_ITU_T is not set 2216# CONFIG_CRC_ITU_T is not set
2159CONFIG_CRC32=y 2217CONFIG_CRC32=y
2160# CONFIG_CRC7 is not set 2218# CONFIG_CRC7 is not set
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index 2763cb37b553..65a0c1b48696 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -145,35 +145,25 @@ static const unsigned char *const p6_nops[ASM_NOP_MAX+1] = {
145extern char __vsyscall_0; 145extern char __vsyscall_0;
146const unsigned char *const *find_nop_table(void) 146const unsigned char *const *find_nop_table(void)
147{ 147{
148 return boot_cpu_data.x86_vendor != X86_VENDOR_INTEL || 148 if (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL &&
149 boot_cpu_data.x86 < 6 ? k8_nops : p6_nops; 149 boot_cpu_has(X86_FEATURE_NOPL))
150 return p6_nops;
151 else
152 return k8_nops;
150} 153}
151 154
152#else /* CONFIG_X86_64 */ 155#else /* CONFIG_X86_64 */
153 156
154static const struct nop {
155 int cpuid;
156 const unsigned char *const *noptable;
157} noptypes[] = {
158 { X86_FEATURE_K8, k8_nops },
159 { X86_FEATURE_K7, k7_nops },
160 { X86_FEATURE_P4, p6_nops },
161 { X86_FEATURE_P3, p6_nops },
162 { -1, NULL }
163};
164
165const unsigned char *const *find_nop_table(void) 157const unsigned char *const *find_nop_table(void)
166{ 158{
167 const unsigned char *const *noptable = intel_nops; 159 if (boot_cpu_has(X86_FEATURE_K8))
168 int i; 160 return k8_nops;
169 161 else if (boot_cpu_has(X86_FEATURE_K7))
170 for (i = 0; noptypes[i].cpuid >= 0; i++) { 162 return k7_nops;
171 if (boot_cpu_has(noptypes[i].cpuid)) { 163 else if (boot_cpu_has(X86_FEATURE_NOPL))
172 noptable = noptypes[i].noptable; 164 return p6_nops;
173 break; 165 else
174 } 166 return intel_nops;
175 }
176 return noptable;
177} 167}
178 168
179#endif /* CONFIG_X86_64 */ 169#endif /* CONFIG_X86_64 */
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index cae9cabc3031..18514ed26104 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -31,6 +31,11 @@ static void __cpuinit early_init_amd(struct cpuinfo_x86 *c)
31 if (c->x86_power & (1<<8)) 31 if (c->x86_power & (1<<8))
32 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); 32 set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC);
33 } 33 }
34
35 /* Set MTRR capability flag if appropriate */
36 if (c->x86_model == 13 || c->x86_model == 9 ||
37 (c->x86_model == 8 && c->x86_mask >= 8))
38 set_cpu_cap(c, X86_FEATURE_K6_MTRR);
34} 39}
35 40
36static void __cpuinit init_amd(struct cpuinfo_x86 *c) 41static void __cpuinit init_amd(struct cpuinfo_x86 *c)
@@ -166,10 +171,6 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
166 mbytes); 171 mbytes);
167 } 172 }
168 173
169 /* Set MTRR capability flag if appropriate */
170 if (c->x86_model == 13 || c->x86_model == 9 ||
171 (c->x86_model == 8 && c->x86_mask >= 8))
172 set_cpu_cap(c, X86_FEATURE_K6_MTRR);
173 break; 174 break;
174 } 175 }
175 176
diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index e0f45edd6a55..a0534c04d38a 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -314,6 +314,16 @@ enum {
314 EAMD3D = 1<<20, 314 EAMD3D = 1<<20,
315}; 315};
316 316
317static void __cpuinit early_init_centaur(struct cpuinfo_x86 *c)
318{
319 switch (c->x86) {
320 case 5:
321 /* Emulate MTRRs using Centaur's MCR. */
322 set_cpu_cap(c, X86_FEATURE_CENTAUR_MCR);
323 break;
324 }
325}
326
317static void __cpuinit init_centaur(struct cpuinfo_x86 *c) 327static void __cpuinit init_centaur(struct cpuinfo_x86 *c)
318{ 328{
319 329
@@ -462,6 +472,7 @@ centaur_size_cache(struct cpuinfo_x86 *c, unsigned int size)
462static struct cpu_dev centaur_cpu_dev __cpuinitdata = { 472static struct cpu_dev centaur_cpu_dev __cpuinitdata = {
463 .c_vendor = "Centaur", 473 .c_vendor = "Centaur",
464 .c_ident = { "CentaurHauls" }, 474 .c_ident = { "CentaurHauls" },
475 .c_early_init = early_init_centaur,
465 .c_init = init_centaur, 476 .c_init = init_centaur,
466 .c_size_cache = centaur_size_cache, 477 .c_size_cache = centaur_size_cache,
467}; 478};
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 80ab20d4fa39..8aab8517642e 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -13,6 +13,7 @@
13#include <asm/mtrr.h> 13#include <asm/mtrr.h>
14#include <asm/mce.h> 14#include <asm/mce.h>
15#include <asm/pat.h> 15#include <asm/pat.h>
16#include <asm/asm.h>
16#ifdef CONFIG_X86_LOCAL_APIC 17#ifdef CONFIG_X86_LOCAL_APIC
17#include <asm/mpspec.h> 18#include <asm/mpspec.h>
18#include <asm/apic.h> 19#include <asm/apic.h>
@@ -334,11 +335,40 @@ static void __init early_cpu_detect(void)
334 335
335 get_cpu_vendor(c, 1); 336 get_cpu_vendor(c, 1);
336 337
338 early_get_cap(c);
339
337 if (c->x86_vendor != X86_VENDOR_UNKNOWN && 340 if (c->x86_vendor != X86_VENDOR_UNKNOWN &&
338 cpu_devs[c->x86_vendor]->c_early_init) 341 cpu_devs[c->x86_vendor]->c_early_init)
339 cpu_devs[c->x86_vendor]->c_early_init(c); 342 cpu_devs[c->x86_vendor]->c_early_init(c);
343}
340 344
341 early_get_cap(c); 345/*
346 * The NOPL instruction is supposed to exist on all CPUs with
347 * family >= 6, unfortunately, that's not true in practice because
348 * of early VIA chips and (more importantly) broken virtualizers that
349 * are not easy to detect. Hence, probe for it based on first
350 * principles.
351 */
352static void __cpuinit detect_nopl(struct cpuinfo_x86 *c)
353{
354 const u32 nopl_signature = 0x888c53b1; /* Random number */
355 u32 has_nopl = nopl_signature;
356
357 clear_cpu_cap(c, X86_FEATURE_NOPL);
358 if (c->x86 >= 6) {
359 asm volatile("\n"
360 "1: .byte 0x0f,0x1f,0xc0\n" /* nopl %eax */
361 "2:\n"
362 " .section .fixup,\"ax\"\n"
363 "3: xor %0,%0\n"
364 " jmp 2b\n"
365 " .previous\n"
366 _ASM_EXTABLE(1b,3b)
367 : "+a" (has_nopl));
368
369 if (has_nopl == nopl_signature)
370 set_cpu_cap(c, X86_FEATURE_NOPL);
371 }
342} 372}
343 373
344static void __cpuinit generic_identify(struct cpuinfo_x86 *c) 374static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
@@ -395,8 +425,8 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
395 } 425 }
396 426
397 init_scattered_cpuid_features(c); 427 init_scattered_cpuid_features(c);
428 detect_nopl(c);
398 } 429 }
399
400} 430}
401 431
402static void __cpuinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c) 432static void __cpuinit squash_the_stupid_serial_number(struct cpuinfo_x86 *c)
diff --git a/arch/x86/kernel/cpu/common_64.c b/arch/x86/kernel/cpu/common_64.c
index dd6e3f15017e..a11f5d4477cd 100644
--- a/arch/x86/kernel/cpu/common_64.c
+++ b/arch/x86/kernel/cpu/common_64.c
@@ -18,6 +18,7 @@
18#include <asm/mtrr.h> 18#include <asm/mtrr.h>
19#include <asm/mce.h> 19#include <asm/mce.h>
20#include <asm/pat.h> 20#include <asm/pat.h>
21#include <asm/asm.h>
21#include <asm/numa.h> 22#include <asm/numa.h>
22#ifdef CONFIG_X86_LOCAL_APIC 23#ifdef CONFIG_X86_LOCAL_APIC
23#include <asm/mpspec.h> 24#include <asm/mpspec.h>
@@ -215,6 +216,39 @@ static void __init early_cpu_support_print(void)
215 } 216 }
216} 217}
217 218
219/*
220 * The NOPL instruction is supposed to exist on all CPUs with
221 * family >= 6, unfortunately, that's not true in practice because
222 * of early VIA chips and (more importantly) broken virtualizers that
223 * are not easy to detect. Hence, probe for it based on first
224 * principles.
225 *
226 * Note: no 64-bit chip is known to lack these, but put the code here
227 * for consistency with 32 bits, and to make it utterly trivial to
228 * diagnose the problem should it ever surface.
229 */
230static void __cpuinit detect_nopl(struct cpuinfo_x86 *c)
231{
232 const u32 nopl_signature = 0x888c53b1; /* Random number */
233 u32 has_nopl = nopl_signature;
234
235 clear_cpu_cap(c, X86_FEATURE_NOPL);
236 if (c->x86 >= 6) {
237 asm volatile("\n"
238 "1: .byte 0x0f,0x1f,0xc0\n" /* nopl %eax */
239 "2:\n"
240 " .section .fixup,\"ax\"\n"
241 "3: xor %0,%0\n"
242 " jmp 2b\n"
243 " .previous\n"
244 _ASM_EXTABLE(1b,3b)
245 : "+a" (has_nopl));
246
247 if (has_nopl == nopl_signature)
248 set_cpu_cap(c, X86_FEATURE_NOPL);
249 }
250}
251
218static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c); 252static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c);
219 253
220void __init early_cpu_init(void) 254void __init early_cpu_init(void)
@@ -313,6 +347,8 @@ static void __cpuinit early_identify_cpu(struct cpuinfo_x86 *c)
313 c->x86_phys_bits = eax & 0xff; 347 c->x86_phys_bits = eax & 0xff;
314 } 348 }
315 349
350 detect_nopl(c);
351
316 if (c->x86_vendor != X86_VENDOR_UNKNOWN && 352 if (c->x86_vendor != X86_VENDOR_UNKNOWN &&
317 cpu_devs[c->x86_vendor]->c_early_init) 353 cpu_devs[c->x86_vendor]->c_early_init)
318 cpu_devs[c->x86_vendor]->c_early_init(c); 354 cpu_devs[c->x86_vendor]->c_early_init(c);
@@ -493,17 +529,20 @@ void pda_init(int cpu)
493 /* others are initialized in smpboot.c */ 529 /* others are initialized in smpboot.c */
494 pda->pcurrent = &init_task; 530 pda->pcurrent = &init_task;
495 pda->irqstackptr = boot_cpu_stack; 531 pda->irqstackptr = boot_cpu_stack;
532 pda->irqstackptr += IRQSTACKSIZE - 64;
496 } else { 533 } else {
497 pda->irqstackptr = (char *) 534 if (!pda->irqstackptr) {
498 __get_free_pages(GFP_ATOMIC, IRQSTACK_ORDER); 535 pda->irqstackptr = (char *)
499 if (!pda->irqstackptr) 536 __get_free_pages(GFP_ATOMIC, IRQSTACK_ORDER);
500 panic("cannot allocate irqstack for cpu %d", cpu); 537 if (!pda->irqstackptr)
538 panic("cannot allocate irqstack for cpu %d",
539 cpu);
540 pda->irqstackptr += IRQSTACKSIZE - 64;
541 }
501 542
502 if (pda->nodenumber == 0 && cpu_to_node(cpu) != NUMA_NO_NODE) 543 if (pda->nodenumber == 0 && cpu_to_node(cpu) != NUMA_NO_NODE)
503 pda->nodenumber = cpu_to_node(cpu); 544 pda->nodenumber = cpu_to_node(cpu);
504 } 545 }
505
506 pda->irqstackptr += IRQSTACKSIZE-64;
507} 546}
508 547
509char boot_exception_stacks[(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ + 548char boot_exception_stacks[(N_EXCEPTION_STACKS - 1) * EXCEPTION_STKSZ +
@@ -601,19 +640,22 @@ void __cpuinit cpu_init(void)
601 /* 640 /*
602 * set up and load the per-CPU TSS 641 * set up and load the per-CPU TSS
603 */ 642 */
604 for (v = 0; v < N_EXCEPTION_STACKS; v++) { 643 if (!orig_ist->ist[0]) {
605 static const unsigned int order[N_EXCEPTION_STACKS] = { 644 static const unsigned int order[N_EXCEPTION_STACKS] = {
606 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER, 645 [0 ... N_EXCEPTION_STACKS - 1] = EXCEPTION_STACK_ORDER,
607 [DEBUG_STACK - 1] = DEBUG_STACK_ORDER 646 [DEBUG_STACK - 1] = DEBUG_STACK_ORDER
608 }; 647 };
609 if (cpu) { 648 for (v = 0; v < N_EXCEPTION_STACKS; v++) {
610 estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]); 649 if (cpu) {
611 if (!estacks) 650 estacks = (char *)__get_free_pages(GFP_ATOMIC, order[v]);
612 panic("Cannot allocate exception stack %ld %d\n", 651 if (!estacks)
613 v, cpu); 652 panic("Cannot allocate exception "
653 "stack %ld %d\n", v, cpu);
654 }
655 estacks += PAGE_SIZE << order[v];
656 orig_ist->ist[v] = t->x86_tss.ist[v] =
657 (unsigned long)estacks;
614 } 658 }
615 estacks += PAGE_SIZE << order[v];
616 orig_ist->ist[v] = t->x86_tss.ist[v] = (unsigned long)estacks;
617 } 659 }
618 660
619 t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap); 661 t->x86_tss.io_bitmap_base = offsetof(struct tss_struct, io_bitmap);
diff --git a/arch/x86/kernel/cpu/cyrix.c b/arch/x86/kernel/cpu/cyrix.c
index e710a21bb6e8..898a5a2002ed 100644
--- a/arch/x86/kernel/cpu/cyrix.c
+++ b/arch/x86/kernel/cpu/cyrix.c
@@ -15,13 +15,11 @@
15/* 15/*
16 * Read NSC/Cyrix DEVID registers (DIR) to get more detailed info. about the CPU 16 * Read NSC/Cyrix DEVID registers (DIR) to get more detailed info. about the CPU
17 */ 17 */
18static void __cpuinit do_cyrix_devid(unsigned char *dir0, unsigned char *dir1) 18static void __cpuinit __do_cyrix_devid(unsigned char *dir0, unsigned char *dir1)
19{ 19{
20 unsigned char ccr2, ccr3; 20 unsigned char ccr2, ccr3;
21 unsigned long flags;
22 21
23 /* we test for DEVID by checking whether CCR3 is writable */ 22 /* we test for DEVID by checking whether CCR3 is writable */
24 local_irq_save(flags);
25 ccr3 = getCx86(CX86_CCR3); 23 ccr3 = getCx86(CX86_CCR3);
26 setCx86(CX86_CCR3, ccr3 ^ 0x80); 24 setCx86(CX86_CCR3, ccr3 ^ 0x80);
27 getCx86(0xc0); /* dummy to change bus */ 25 getCx86(0xc0); /* dummy to change bus */
@@ -44,9 +42,16 @@ static void __cpuinit do_cyrix_devid(unsigned char *dir0, unsigned char *dir1)
44 *dir0 = getCx86(CX86_DIR0); 42 *dir0 = getCx86(CX86_DIR0);
45 *dir1 = getCx86(CX86_DIR1); 43 *dir1 = getCx86(CX86_DIR1);
46 } 44 }
47 local_irq_restore(flags);
48} 45}
49 46
47static void __cpuinit do_cyrix_devid(unsigned char *dir0, unsigned char *dir1)
48{
49 unsigned long flags;
50
51 local_irq_save(flags);
52 __do_cyrix_devid(dir0, dir1);
53 local_irq_restore(flags);
54}
50/* 55/*
51 * Cx86_dir0_msb is a HACK needed by check_cx686_cpuid/slop in bugs.h in 56 * Cx86_dir0_msb is a HACK needed by check_cx686_cpuid/slop in bugs.h in
52 * order to identify the Cyrix CPU model after we're out of setup.c 57 * order to identify the Cyrix CPU model after we're out of setup.c
@@ -161,6 +166,24 @@ static void __cpuinit geode_configure(void)
161 local_irq_restore(flags); 166 local_irq_restore(flags);
162} 167}
163 168
169static void __cpuinit early_init_cyrix(struct cpuinfo_x86 *c)
170{
171 unsigned char dir0, dir0_msn, dir1 = 0;
172
173 __do_cyrix_devid(&dir0, &dir1);
174 dir0_msn = dir0 >> 4; /* identifies CPU "family" */
175
176 switch (dir0_msn) {
177 case 3: /* 6x86/6x86L */
178 /* Emulate MTRRs using Cyrix's ARRs. */
179 set_cpu_cap(c, X86_FEATURE_CYRIX_ARR);
180 break;
181 case 5: /* 6x86MX/M II */
182 /* Emulate MTRRs using Cyrix's ARRs. */
183 set_cpu_cap(c, X86_FEATURE_CYRIX_ARR);
184 break;
185 }
186}
164 187
165static void __cpuinit init_cyrix(struct cpuinfo_x86 *c) 188static void __cpuinit init_cyrix(struct cpuinfo_x86 *c)
166{ 189{
@@ -416,6 +439,7 @@ static void __cpuinit cyrix_identify(struct cpuinfo_x86 *c)
416static struct cpu_dev cyrix_cpu_dev __cpuinitdata = { 439static struct cpu_dev cyrix_cpu_dev __cpuinitdata = {
417 .c_vendor = "Cyrix", 440 .c_vendor = "Cyrix",
418 .c_ident = { "CyrixInstead" }, 441 .c_ident = { "CyrixInstead" },
442 .c_early_init = early_init_cyrix,
419 .c_init = init_cyrix, 443 .c_init = init_cyrix,
420 .c_identify = cyrix_identify, 444 .c_identify = cyrix_identify,
421}; 445};
diff --git a/arch/x86/kernel/cpu/feature_names.c b/arch/x86/kernel/cpu/feature_names.c
index e43ad4ad4cba..c9017799497c 100644
--- a/arch/x86/kernel/cpu/feature_names.c
+++ b/arch/x86/kernel/cpu/feature_names.c
@@ -39,7 +39,8 @@ const char * const x86_cap_flags[NCAPINTS*32] = {
39 NULL, NULL, NULL, NULL, 39 NULL, NULL, NULL, NULL,
40 "constant_tsc", "up", NULL, "arch_perfmon", 40 "constant_tsc", "up", NULL, "arch_perfmon",
41 "pebs", "bts", NULL, NULL, 41 "pebs", "bts", NULL, NULL,
42 "rep_good", NULL, NULL, NULL, NULL, NULL, NULL, NULL, 42 "rep_good", NULL, NULL, NULL,
43 "nopl", NULL, NULL, NULL,
43 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 44 NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
44 45
45 /* Intel-defined (#2) */ 46 /* Intel-defined (#2) */
diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c
index 14b11b3be31c..8e9cd6a8ec12 100644
--- a/arch/x86/kernel/cpuid.c
+++ b/arch/x86/kernel/cpuid.c
@@ -89,6 +89,8 @@ static ssize_t cpuid_read(struct file *file, char __user *buf,
89 struct cpuid_regs cmd; 89 struct cpuid_regs cmd;
90 int cpu = iminor(file->f_path.dentry->d_inode); 90 int cpu = iminor(file->f_path.dentry->d_inode);
91 u64 pos = *ppos; 91 u64 pos = *ppos;
92 ssize_t bytes = 0;
93 int err = 0;
92 94
93 if (count % 16) 95 if (count % 16)
94 return -EINVAL; /* Invalid chunk size */ 96 return -EINVAL; /* Invalid chunk size */
@@ -96,14 +98,19 @@ static ssize_t cpuid_read(struct file *file, char __user *buf,
96 for (; count; count -= 16) { 98 for (; count; count -= 16) {
97 cmd.eax = pos; 99 cmd.eax = pos;
98 cmd.ecx = pos >> 32; 100 cmd.ecx = pos >> 32;
99 smp_call_function_single(cpu, cpuid_smp_cpuid, &cmd, 1); 101 err = smp_call_function_single(cpu, cpuid_smp_cpuid, &cmd, 1);
100 if (copy_to_user(tmp, &cmd, 16)) 102 if (err)
101 return -EFAULT; 103 break;
104 if (copy_to_user(tmp, &cmd, 16)) {
105 err = -EFAULT;
106 break;
107 }
102 tmp += 16; 108 tmp += 16;
109 bytes += 16;
103 *ppos = ++pos; 110 *ppos = ++pos;
104 } 111 }
105 112
106 return tmp - buf; 113 return bytes ? bytes : err;
107} 114}
108 115
109static int cpuid_open(struct inode *inode, struct file *file) 116static int cpuid_open(struct inode *inode, struct file *file)
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 9af89078f7bb..66e48aa2dd1b 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -1203,7 +1203,7 @@ static int __init parse_memmap_opt(char *p)
1203 if (!p) 1203 if (!p)
1204 return -EINVAL; 1204 return -EINVAL;
1205 1205
1206 if (!strcmp(p, "exactmap")) { 1206 if (!strncmp(p, "exactmap", 8)) {
1207#ifdef CONFIG_CRASH_DUMP 1207#ifdef CONFIG_CRASH_DUMP
1208 /* 1208 /*
1209 * If we are doing a crash dump, we still need to know 1209 * If we are doing a crash dump, we still need to know
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 59fd3b6b1303..73deaffadd03 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -210,8 +210,8 @@ static void hpet_legacy_clockevent_register(void)
210 /* Calculate the min / max delta */ 210 /* Calculate the min / max delta */
211 hpet_clockevent.max_delta_ns = clockevent_delta2ns(0x7FFFFFFF, 211 hpet_clockevent.max_delta_ns = clockevent_delta2ns(0x7FFFFFFF,
212 &hpet_clockevent); 212 &hpet_clockevent);
213 hpet_clockevent.min_delta_ns = clockevent_delta2ns(0x30, 213 /* 5 usec minimum reprogramming delta. */
214 &hpet_clockevent); 214 hpet_clockevent.min_delta_ns = 5000;
215 215
216 /* 216 /*
217 * Start hpet with the boot cpu mask and make it 217 * Start hpet with the boot cpu mask and make it
@@ -270,15 +270,22 @@ static void hpet_legacy_set_mode(enum clock_event_mode mode,
270} 270}
271 271
272static int hpet_legacy_next_event(unsigned long delta, 272static int hpet_legacy_next_event(unsigned long delta,
273 struct clock_event_device *evt) 273 struct clock_event_device *evt)
274{ 274{
275 unsigned long cnt; 275 u32 cnt;
276 276
277 cnt = hpet_readl(HPET_COUNTER); 277 cnt = hpet_readl(HPET_COUNTER);
278 cnt += delta; 278 cnt += (u32) delta;
279 hpet_writel(cnt, HPET_T0_CMP); 279 hpet_writel(cnt, HPET_T0_CMP);
280 280
281 return ((long)(hpet_readl(HPET_COUNTER) - cnt ) > 0) ? -ETIME : 0; 281 /*
282 * We need to read back the CMP register to make sure that
283 * what we wrote hit the chip before we compare it to the
284 * counter.
285 */
286 WARN_ON((u32)hpet_readl(HPET_T0_CMP) != cnt);
287
288 return (s32)((u32)hpet_readl(HPET_COUNTER) - cnt) >= 0 ? -ETIME : 0;
282} 289}
283 290
284/* 291/*
diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
index 1c3a66a67f83..720d2607aacb 100644
--- a/arch/x86/kernel/io_delay.c
+++ b/arch/x86/kernel/io_delay.c
@@ -92,6 +92,14 @@ static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
92 DMI_MATCH(DMI_BOARD_NAME, "30BF") 92 DMI_MATCH(DMI_BOARD_NAME, "30BF")
93 } 93 }
94 }, 94 },
95 {
96 .callback = dmi_io_delay_0xed_port,
97 .ident = "Presario F700",
98 .matches = {
99 DMI_MATCH(DMI_BOARD_VENDOR, "Quanta"),
100 DMI_MATCH(DMI_BOARD_NAME, "30D3")
101 }
102 },
95 { } 103 { }
96}; 104};
97 105
diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
index e43938086885..2e2af5d18191 100644
--- a/arch/x86/kernel/msr.c
+++ b/arch/x86/kernel/msr.c
@@ -72,21 +72,28 @@ static ssize_t msr_read(struct file *file, char __user *buf,
72 u32 data[2]; 72 u32 data[2];
73 u32 reg = *ppos; 73 u32 reg = *ppos;
74 int cpu = iminor(file->f_path.dentry->d_inode); 74 int cpu = iminor(file->f_path.dentry->d_inode);
75 int err; 75 int err = 0;
76 ssize_t bytes = 0;
76 77
77 if (count % 8) 78 if (count % 8)
78 return -EINVAL; /* Invalid chunk size */ 79 return -EINVAL; /* Invalid chunk size */
79 80
80 for (; count; count -= 8) { 81 for (; count; count -= 8) {
81 err = rdmsr_safe_on_cpu(cpu, reg, &data[0], &data[1]); 82 err = rdmsr_safe_on_cpu(cpu, reg, &data[0], &data[1]);
82 if (err) 83 if (err) {
83 return -EIO; 84 if (err == -EFAULT) /* Fix idiotic error code */
84 if (copy_to_user(tmp, &data, 8)) 85 err = -EIO;
85 return -EFAULT; 86 break;
87 }
88 if (copy_to_user(tmp, &data, 8)) {
89 err = -EFAULT;
90 break;
91 }
86 tmp += 2; 92 tmp += 2;
93 bytes += 8;
87 } 94 }
88 95
89 return ((char __user *)tmp) - buf; 96 return bytes ? bytes : err;
90} 97}
91 98
92static ssize_t msr_write(struct file *file, const char __user *buf, 99static ssize_t msr_write(struct file *file, const char __user *buf,
@@ -96,21 +103,28 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
96 u32 data[2]; 103 u32 data[2];
97 u32 reg = *ppos; 104 u32 reg = *ppos;
98 int cpu = iminor(file->f_path.dentry->d_inode); 105 int cpu = iminor(file->f_path.dentry->d_inode);
99 int err; 106 int err = 0;
107 ssize_t bytes = 0;
100 108
101 if (count % 8) 109 if (count % 8)
102 return -EINVAL; /* Invalid chunk size */ 110 return -EINVAL; /* Invalid chunk size */
103 111
104 for (; count; count -= 8) { 112 for (; count; count -= 8) {
105 if (copy_from_user(&data, tmp, 8)) 113 if (copy_from_user(&data, tmp, 8)) {
106 return -EFAULT; 114 err = -EFAULT;
115 break;
116 }
107 err = wrmsr_safe_on_cpu(cpu, reg, data[0], data[1]); 117 err = wrmsr_safe_on_cpu(cpu, reg, data[0], data[1]);
108 if (err) 118 if (err) {
109 return -EIO; 119 if (err == -EFAULT) /* Fix idiotic error code */
120 err = -EIO;
121 break;
122 }
110 tmp += 2; 123 tmp += 2;
124 bytes += 8;
111 } 125 }
112 126
113 return ((char __user *)tmp) - buf; 127 return bytes ? bytes : err;
114} 128}
115 129
116static int msr_open(struct inode *inode, struct file *file) 130static int msr_open(struct inode *inode, struct file *file)
diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
index 8e786b0d665a..8f98e9de1b82 100644
--- a/arch/x86/kernel/tsc.c
+++ b/arch/x86/kernel/tsc.c
@@ -122,80 +122,216 @@ static u64 tsc_read_refs(u64 *pm, u64 *hpet)
122 return ULLONG_MAX; 122 return ULLONG_MAX;
123} 123}
124 124
125/** 125/*
126 * native_calibrate_tsc - calibrate the tsc on boot 126 * Try to calibrate the TSC against the Programmable
127 * Interrupt Timer and return the frequency of the TSC
128 * in kHz.
129 *
130 * Return ULONG_MAX on failure to calibrate.
127 */ 131 */
128unsigned long native_calibrate_tsc(void) 132static unsigned long pit_calibrate_tsc(void)
129{ 133{
130 unsigned long flags; 134 u64 tsc, t1, t2, delta;
131 u64 tsc1, tsc2, tr1, tr2, delta, pm1, pm2, hpet1, hpet2; 135 unsigned long tscmin, tscmax;
132 int hpet = is_hpet_enabled(); 136 int pitcnt;
133 unsigned int tsc_khz_val = 0;
134
135 local_irq_save(flags);
136
137 tsc1 = tsc_read_refs(&pm1, hpet ? &hpet1 : NULL);
138 137
138 /* Set the Gate high, disable speaker */
139 outb((inb(0x61) & ~0x02) | 0x01, 0x61); 139 outb((inb(0x61) & ~0x02) | 0x01, 0x61);
140 140
141 /*
142 * Setup CTC channel 2* for mode 0, (interrupt on terminal
143 * count mode), binary count. Set the latch register to 50ms
144 * (LSB then MSB) to begin countdown.
145 */
141 outb(0xb0, 0x43); 146 outb(0xb0, 0x43);
142 outb((CLOCK_TICK_RATE / (1000 / 50)) & 0xff, 0x42); 147 outb((CLOCK_TICK_RATE / (1000 / 50)) & 0xff, 0x42);
143 outb((CLOCK_TICK_RATE / (1000 / 50)) >> 8, 0x42); 148 outb((CLOCK_TICK_RATE / (1000 / 50)) >> 8, 0x42);
144 tr1 = get_cycles();
145 while ((inb(0x61) & 0x20) == 0);
146 tr2 = get_cycles();
147 149
148 tsc2 = tsc_read_refs(&pm2, hpet ? &hpet2 : NULL); 150 tsc = t1 = t2 = get_cycles();
149 151
150 local_irq_restore(flags); 152 pitcnt = 0;
153 tscmax = 0;
154 tscmin = ULONG_MAX;
155 while ((inb(0x61) & 0x20) == 0) {
156 t2 = get_cycles();
157 delta = t2 - tsc;
158 tsc = t2;
159 if ((unsigned long) delta < tscmin)
160 tscmin = (unsigned int) delta;
161 if ((unsigned long) delta > tscmax)
162 tscmax = (unsigned int) delta;
163 pitcnt++;
164 }
151 165
152 /* 166 /*
153 * Preset the result with the raw and inaccurate PIT 167 * Sanity checks:
154 * calibration value 168 *
169 * If we were not able to read the PIT more than 5000
170 * times, then we have been hit by a massive SMI
171 *
172 * If the maximum is 10 times larger than the minimum,
173 * then we got hit by an SMI as well.
155 */ 174 */
156 delta = (tr2 - tr1); 175 if (pitcnt < 5000 || tscmax > 10 * tscmin)
176 return ULONG_MAX;
177
178 /* Calculate the PIT value */
179 delta = t2 - t1;
157 do_div(delta, 50); 180 do_div(delta, 50);
158 tsc_khz_val = delta; 181 return delta;
182}
183
184
185/**
186 * native_calibrate_tsc - calibrate the tsc on boot
187 */
188unsigned long native_calibrate_tsc(void)
189{
190 u64 tsc1, tsc2, delta, pm1, pm2, hpet1, hpet2;
191 unsigned long tsc_pit_min = ULONG_MAX, tsc_ref_min = ULONG_MAX;
192 unsigned long flags;
193 int hpet = is_hpet_enabled(), i;
159 194
160 /* hpet or pmtimer available ? */ 195 /*
196 * Run 5 calibration loops to get the lowest frequency value
197 * (the best estimate). We use two different calibration modes
198 * here:
199 *
200 * 1) PIT loop. We set the PIT Channel 2 to oneshot mode and
201 * load a timeout of 50ms. We read the time right after we
202 * started the timer and wait until the PIT count down reaches
203 * zero. In each wait loop iteration we read the TSC and check
204 * the delta to the previous read. We keep track of the min
205 * and max values of that delta. The delta is mostly defined
206 * by the IO time of the PIT access, so we can detect when a
207 * SMI/SMM disturbance happend between the two reads. If the
208 * maximum time is significantly larger than the minimum time,
209 * then we discard the result and have another try.
210 *
211 * 2) Reference counter. If available we use the HPET or the
212 * PMTIMER as a reference to check the sanity of that value.
213 * We use separate TSC readouts and check inside of the
214 * reference read for a SMI/SMM disturbance. We dicard
215 * disturbed values here as well. We do that around the PIT
216 * calibration delay loop as we have to wait for a certain
217 * amount of time anyway.
218 */
219 for (i = 0; i < 5; i++) {
220 unsigned long tsc_pit_khz;
221
222 /*
223 * Read the start value and the reference count of
224 * hpet/pmtimer when available. Then do the PIT
225 * calibration, which will take at least 50ms, and
226 * read the end value.
227 */
228 local_irq_save(flags);
229 tsc1 = tsc_read_refs(&pm1, hpet ? &hpet1 : NULL);
230 tsc_pit_khz = pit_calibrate_tsc();
231 tsc2 = tsc_read_refs(&pm2, hpet ? &hpet2 : NULL);
232 local_irq_restore(flags);
233
234 /* Pick the lowest PIT TSC calibration so far */
235 tsc_pit_min = min(tsc_pit_min, tsc_pit_khz);
236
237 /* hpet or pmtimer available ? */
238 if (!hpet && !pm1 && !pm2)
239 continue;
240
241 /* Check, whether the sampling was disturbed by an SMI */
242 if (tsc1 == ULLONG_MAX || tsc2 == ULLONG_MAX)
243 continue;
244
245 tsc2 = (tsc2 - tsc1) * 1000000LL;
246
247 if (hpet) {
248 if (hpet2 < hpet1)
249 hpet2 += 0x100000000ULL;
250 hpet2 -= hpet1;
251 tsc1 = ((u64)hpet2 * hpet_readl(HPET_PERIOD));
252 do_div(tsc1, 1000000);
253 } else {
254 if (pm2 < pm1)
255 pm2 += (u64)ACPI_PM_OVRRUN;
256 pm2 -= pm1;
257 tsc1 = pm2 * 1000000000LL;
258 do_div(tsc1, PMTMR_TICKS_PER_SEC);
259 }
260
261 do_div(tsc2, tsc1);
262 tsc_ref_min = min(tsc_ref_min, (unsigned long) tsc2);
263 }
264
265 /*
266 * Now check the results.
267 */
268 if (tsc_pit_min == ULONG_MAX) {
269 /* PIT gave no useful value */
270 printk(KERN_WARNING "TSC: Unable to calibrate against PIT\n");
271
272 /* We don't have an alternative source, disable TSC */
273 if (!hpet && !pm1 && !pm2) {
274 printk("TSC: No reference (HPET/PMTIMER) available\n");
275 return 0;
276 }
277
278 /* The alternative source failed as well, disable TSC */
279 if (tsc_ref_min == ULONG_MAX) {
280 printk(KERN_WARNING "TSC: HPET/PMTIMER calibration "
281 "failed due to SMI disturbance.\n");
282 return 0;
283 }
284
285 /* Use the alternative source */
286 printk(KERN_INFO "TSC: using %s reference calibration\n",
287 hpet ? "HPET" : "PMTIMER");
288
289 return tsc_ref_min;
290 }
291
292 /* We don't have an alternative source, use the PIT calibration value */
161 if (!hpet && !pm1 && !pm2) { 293 if (!hpet && !pm1 && !pm2) {
162 printk(KERN_INFO "TSC calibrated against PIT\n"); 294 printk(KERN_INFO "TSC: Using PIT calibration value\n");
163 goto out; 295 return tsc_pit_min;
164 } 296 }
165 297
166 /* Check, whether the sampling was disturbed by an SMI */ 298 /* The alternative source failed, use the PIT calibration value */
167 if (tsc1 == ULLONG_MAX || tsc2 == ULLONG_MAX) { 299 if (tsc_ref_min == ULONG_MAX) {
168 printk(KERN_WARNING "TSC calibration disturbed by SMI, " 300 printk(KERN_WARNING "TSC: HPET/PMTIMER calibration failed due "
169 "using PIT calibration result\n"); 301 "to SMI disturbance. Using PIT calibration\n");
170 goto out; 302 return tsc_pit_min;
171 } 303 }
172 304
173 tsc2 = (tsc2 - tsc1) * 1000000LL; 305 /* Check the reference deviation */
174 306 delta = ((u64) tsc_pit_min) * 100;
175 if (hpet) { 307 do_div(delta, tsc_ref_min);
176 printk(KERN_INFO "TSC calibrated against HPET\n"); 308
177 if (hpet2 < hpet1) 309 /*
178 hpet2 += 0x100000000ULL; 310 * If both calibration results are inside a 5% window, the we
179 hpet2 -= hpet1; 311 * use the lower frequency of those as it is probably the
180 tsc1 = ((u64)hpet2 * hpet_readl(HPET_PERIOD)); 312 * closest estimate.
181 do_div(tsc1, 1000000); 313 */
182 } else { 314 if (delta >= 95 && delta <= 105) {
183 printk(KERN_INFO "TSC calibrated against PM_TIMER\n"); 315 printk(KERN_INFO "TSC: PIT calibration confirmed by %s.\n",
184 if (pm2 < pm1) 316 hpet ? "HPET" : "PMTIMER");
185 pm2 += (u64)ACPI_PM_OVRRUN; 317 printk(KERN_INFO "TSC: using %s calibration value\n",
186 pm2 -= pm1; 318 tsc_pit_min <= tsc_ref_min ? "PIT" :
187 tsc1 = pm2 * 1000000000LL; 319 hpet ? "HPET" : "PMTIMER");
188 do_div(tsc1, PMTMR_TICKS_PER_SEC); 320 return tsc_pit_min <= tsc_ref_min ? tsc_pit_min : tsc_ref_min;
189 } 321 }
190 322
191 do_div(tsc2, tsc1); 323 printk(KERN_WARNING "TSC: PIT calibration deviates from %s: %lu %lu.\n",
192 tsc_khz_val = tsc2; 324 hpet ? "HPET" : "PMTIMER", tsc_pit_min, tsc_ref_min);
193 325
194out: 326 /*
195 return tsc_khz_val; 327 * The calibration values differ too much. In doubt, we use
328 * the PIT value as we know that there are PMTIMERs around
329 * running at double speed.
330 */
331 printk(KERN_INFO "TSC: Using PIT calibration value\n");
332 return tsc_pit_min;
196} 333}
197 334
198
199#ifdef CONFIG_X86_32 335#ifdef CONFIG_X86_32
200/* Only called from the Powernow K7 cpu freq driver */ 336/* Only called from the Powernow K7 cpu freq driver */
201int recalibrate_cpu_khz(void) 337int recalibrate_cpu_khz(void)
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 0bfe2bd305eb..3da2508eb22a 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -711,6 +711,10 @@ static int kvm_age_rmapp(struct kvm *kvm, unsigned long *rmapp)
711 u64 *spte; 711 u64 *spte;
712 int young = 0; 712 int young = 0;
713 713
714 /* always return old for EPT */
715 if (!shadow_accessed_mask)
716 return 0;
717
714 spte = rmap_next(kvm, rmapp, NULL); 718 spte = rmap_next(kvm, rmapp, NULL);
715 while (spte) { 719 while (spte) {
716 int _young; 720 int _young;
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index e2ee264740c7..8233b86c778c 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -62,6 +62,7 @@ static int npt = 1;
62module_param(npt, int, S_IRUGO); 62module_param(npt, int, S_IRUGO);
63 63
64static void kvm_reput_irq(struct vcpu_svm *svm); 64static void kvm_reput_irq(struct vcpu_svm *svm);
65static void svm_flush_tlb(struct kvm_vcpu *vcpu);
65 66
66static inline struct vcpu_svm *to_svm(struct kvm_vcpu *vcpu) 67static inline struct vcpu_svm *to_svm(struct kvm_vcpu *vcpu)
67{ 68{
@@ -878,6 +879,10 @@ set:
878static void svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) 879static void svm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
879{ 880{
880 unsigned long host_cr4_mce = read_cr4() & X86_CR4_MCE; 881 unsigned long host_cr4_mce = read_cr4() & X86_CR4_MCE;
882 unsigned long old_cr4 = to_svm(vcpu)->vmcb->save.cr4;
883
884 if (npt_enabled && ((old_cr4 ^ cr4) & X86_CR4_PGE))
885 force_new_asid(vcpu);
881 886
882 vcpu->arch.cr4 = cr4; 887 vcpu->arch.cr4 = cr4;
883 if (!npt_enabled) 888 if (!npt_enabled)
@@ -1027,6 +1032,13 @@ static int pf_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run)
1027 KVMTRACE_3D(TDP_FAULT, &svm->vcpu, error_code, 1032 KVMTRACE_3D(TDP_FAULT, &svm->vcpu, error_code,
1028 (u32)fault_address, (u32)(fault_address >> 32), 1033 (u32)fault_address, (u32)(fault_address >> 32),
1029 handler); 1034 handler);
1035 /*
1036 * FIXME: Tis shouldn't be necessary here, but there is a flush
1037 * missing in the MMU code. Until we find this bug, flush the
1038 * complete TLB here on an NPF
1039 */
1040 if (npt_enabled)
1041 svm_flush_tlb(&svm->vcpu);
1030 1042
1031 if (event_injection) 1043 if (event_injection)
1032 kvm_mmu_unprotect_page_virt(&svm->vcpu, fault_address); 1044 kvm_mmu_unprotect_page_virt(&svm->vcpu, fault_address);
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 2a69773e3b26..7041cc52b562 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -3301,8 +3301,7 @@ static int __init vmx_init(void)
3301 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK | 3301 kvm_mmu_set_base_ptes(VMX_EPT_READABLE_MASK |
3302 VMX_EPT_WRITABLE_MASK | 3302 VMX_EPT_WRITABLE_MASK |
3303 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT); 3303 VMX_EPT_DEFAULT_MT << VMX_EPT_MT_EPTE_SHIFT);
3304 kvm_mmu_set_mask_ptes(0ull, VMX_EPT_FAKE_ACCESSED_MASK, 3304 kvm_mmu_set_mask_ptes(0ull, 0ull, 0ull, 0ull,
3305 VMX_EPT_FAKE_DIRTY_MASK, 0ull,
3306 VMX_EPT_EXECUTABLE_MASK); 3305 VMX_EPT_EXECUTABLE_MASK);
3307 kvm_enable_tdp(); 3306 kvm_enable_tdp();
3308 } else 3307 } else
diff --git a/arch/x86/kvm/vmx.h b/arch/x86/kvm/vmx.h
index 425a13436b3f..23e8373507ad 100644
--- a/arch/x86/kvm/vmx.h
+++ b/arch/x86/kvm/vmx.h
@@ -370,8 +370,6 @@ enum vmcs_field {
370#define VMX_EPT_READABLE_MASK 0x1ull 370#define VMX_EPT_READABLE_MASK 0x1ull
371#define VMX_EPT_WRITABLE_MASK 0x2ull 371#define VMX_EPT_WRITABLE_MASK 0x2ull
372#define VMX_EPT_EXECUTABLE_MASK 0x4ull 372#define VMX_EPT_EXECUTABLE_MASK 0x4ull
373#define VMX_EPT_FAKE_ACCESSED_MASK (1ull << 62)
374#define VMX_EPT_FAKE_DIRTY_MASK (1ull << 63)
375 373
376#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul 374#define VMX_EPT_IDENTITY_PAGETABLE_ADDR 0xfffbc000ul
377 375
diff --git a/arch/x86/lib/msr-on-cpu.c b/arch/x86/lib/msr-on-cpu.c
index d5a2b39f882b..01b868ba82f8 100644
--- a/arch/x86/lib/msr-on-cpu.c
+++ b/arch/x86/lib/msr-on-cpu.c
@@ -30,10 +30,11 @@ static int _rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h, int safe)
30 30
31 rv.msr_no = msr_no; 31 rv.msr_no = msr_no;
32 if (safe) { 32 if (safe) {
33 smp_call_function_single(cpu, __rdmsr_safe_on_cpu, &rv, 1); 33 err = smp_call_function_single(cpu, __rdmsr_safe_on_cpu,
34 err = rv.err; 34 &rv, 1);
35 err = err ? err : rv.err;
35 } else { 36 } else {
36 smp_call_function_single(cpu, __rdmsr_on_cpu, &rv, 1); 37 err = smp_call_function_single(cpu, __rdmsr_on_cpu, &rv, 1);
37 } 38 }
38 *l = rv.l; 39 *l = rv.l;
39 *h = rv.h; 40 *h = rv.h;
@@ -64,23 +65,24 @@ static int _wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h, int safe)
64 rv.l = l; 65 rv.l = l;
65 rv.h = h; 66 rv.h = h;
66 if (safe) { 67 if (safe) {
67 smp_call_function_single(cpu, __wrmsr_safe_on_cpu, &rv, 1); 68 err = smp_call_function_single(cpu, __wrmsr_safe_on_cpu,
68 err = rv.err; 69 &rv, 1);
70 err = err ? err : rv.err;
69 } else { 71 } else {
70 smp_call_function_single(cpu, __wrmsr_on_cpu, &rv, 1); 72 err = smp_call_function_single(cpu, __wrmsr_on_cpu, &rv, 1);
71 } 73 }
72 74
73 return err; 75 return err;
74} 76}
75 77
76void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) 78int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
77{ 79{
78 _wrmsr_on_cpu(cpu, msr_no, l, h, 0); 80 return _wrmsr_on_cpu(cpu, msr_no, l, h, 0);
79} 81}
80 82
81void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h) 83int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
82{ 84{
83 _rdmsr_on_cpu(cpu, msr_no, l, h, 0); 85 return _rdmsr_on_cpu(cpu, msr_no, l, h, 0);
84} 86}
85 87
86/* These "safe" variants are slower and should be used when the target MSR 88/* These "safe" variants are slower and should be used when the target MSR
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index d765da913842..8791fc55e715 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -31,11 +31,8 @@
31#include <linux/ioport.h> 31#include <linux/ioport.h>
32#include <linux/errno.h> 32#include <linux/errno.h>
33#include <linux/bootmem.h> 33#include <linux/bootmem.h>
34#include <linux/acpi.h>
35 34
36#include <asm/pat.h> 35#include <asm/pat.h>
37#include <asm/hpet.h>
38#include <asm/io_apic.h>
39 36
40#include "pci.h" 37#include "pci.h"
41 38
@@ -80,77 +77,6 @@ pcibios_align_resource(void *data, struct resource *res,
80} 77}
81EXPORT_SYMBOL(pcibios_align_resource); 78EXPORT_SYMBOL(pcibios_align_resource);
82 79
83static int check_res_with_valid(struct pci_dev *dev, struct resource *res)
84{
85 unsigned long base;
86 unsigned long size;
87 int i;
88
89 base = res->start;
90 size = (res->start == 0 && res->end == res->start) ? 0 :
91 (res->end - res->start + 1);
92
93 if (!base || !size)
94 return 0;
95
96#ifdef CONFIG_HPET_TIMER
97 /* for hpet */
98 if (base == hpet_address && (res->flags & IORESOURCE_MEM)) {
99 dev_info(&dev->dev, "BAR has HPET at %08lx-%08lx\n",
100 base, base + size - 1);
101 return 1;
102 }
103#endif
104
105#ifdef CONFIG_X86_IO_APIC
106 for (i = 0; i < nr_ioapics; i++) {
107 unsigned long ioapic_phys = mp_ioapics[i].mp_apicaddr;
108
109 if (base == ioapic_phys && (res->flags & IORESOURCE_MEM)) {
110 dev_info(&dev->dev, "BAR has ioapic at %08lx-%08lx\n",
111 base, base + size - 1);
112 return 1;
113 }
114 }
115#endif
116
117#ifdef CONFIG_PCI_MMCONFIG
118 for (i = 0; i < pci_mmcfg_config_num; i++) {
119 unsigned long addr;
120
121 addr = pci_mmcfg_config[i].address;
122 if (base == addr && (res->flags & IORESOURCE_MEM)) {
123 dev_info(&dev->dev, "BAR has MMCONFIG at %08lx-%08lx\n",
124 base, base + size - 1);
125 return 1;
126 }
127 }
128#endif
129
130 return 0;
131}
132
133static int check_platform(struct pci_dev *dev, struct resource *res)
134{
135 struct resource *root = NULL;
136
137 /*
138 * forcibly insert it into the
139 * resource tree
140 */
141 if (res->flags & IORESOURCE_MEM)
142 root = &iomem_resource;
143 else if (res->flags & IORESOURCE_IO)
144 root = &ioport_resource;
145
146 if (root && check_res_with_valid(dev, res)) {
147 insert_resource(root, res);
148
149 return 1;
150 }
151
152 return 0;
153}
154/* 80/*
155 * Handle resources of PCI devices. If the world were perfect, we could 81 * Handle resources of PCI devices. If the world were perfect, we could
156 * just allocate all the resource regions and do nothing more. It isn't. 82 * just allocate all the resource regions and do nothing more. It isn't.
@@ -202,10 +128,7 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
202 pr = pci_find_parent_resource(dev, r); 128 pr = pci_find_parent_resource(dev, r);
203 if (!r->start || !pr || 129 if (!r->start || !pr ||
204 request_resource(pr, r) < 0) { 130 request_resource(pr, r) < 0) {
205 if (check_platform(dev, r)) 131 dev_err(&dev->dev, "BAR %d: can't allocate resource\n", idx);
206 continue;
207 dev_err(&dev->dev, "BAR %d: can't "
208 "allocate resource\n", idx);
209 /* 132 /*
210 * Something is wrong with the region. 133 * Something is wrong with the region.
211 * Invalidate the resource to prevent 134 * Invalidate the resource to prevent
@@ -240,17 +163,13 @@ static void __init pcibios_allocate_resources(int pass)
240 else 163 else
241 disabled = !(command & PCI_COMMAND_MEMORY); 164 disabled = !(command & PCI_COMMAND_MEMORY);
242 if (pass == disabled) { 165 if (pass == disabled) {
243 dev_dbg(&dev->dev, "resource %#08llx-%#08llx " 166 dev_dbg(&dev->dev, "resource %#08llx-%#08llx (f=%lx, d=%d, p=%d)\n",
244 "(f=%lx, d=%d, p=%d)\n",
245 (unsigned long long) r->start, 167 (unsigned long long) r->start,
246 (unsigned long long) r->end, 168 (unsigned long long) r->end,
247 r->flags, disabled, pass); 169 r->flags, disabled, pass);
248 pr = pci_find_parent_resource(dev, r); 170 pr = pci_find_parent_resource(dev, r);
249 if (!pr || request_resource(pr, r) < 0) { 171 if (!pr || request_resource(pr, r) < 0) {
250 if (check_platform(dev, r)) 172 dev_err(&dev->dev, "BAR %d: can't allocate resource\n", idx);
251 continue;
252 dev_err(&dev->dev, "BAR %d: can't "
253 "allocate resource\n", idx);
254 /* We'll assign a new address later */ 173 /* We'll assign a new address later */
255 r->end -= r->start; 174 r->end -= r->start;
256 r->start = 0; 175 r->start = 0;
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 9ff6e3cbf08f..a4e201b47f64 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -1324,7 +1324,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initdata = {
1324 .ptep_modify_prot_commit = __ptep_modify_prot_commit, 1324 .ptep_modify_prot_commit = __ptep_modify_prot_commit,
1325 1325
1326 .pte_val = xen_pte_val, 1326 .pte_val = xen_pte_val,
1327 .pte_flags = native_pte_val, 1327 .pte_flags = native_pte_flags,
1328 .pgd_val = xen_pgd_val, 1328 .pgd_val = xen_pgd_val,
1329 1329
1330 .make_pte = xen_make_pte, 1330 .make_pte = xen_make_pte,
diff --git a/block/blk-core.c b/block/blk-core.c
index 4889eb86a39e..2cba5ef97b2b 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -582,6 +582,8 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id)
582 582
583 q->sg_reserved_size = INT_MAX; 583 q->sg_reserved_size = INT_MAX;
584 584
585 blk_set_cmd_filter_defaults(&q->cmd_filter);
586
585 /* 587 /*
586 * all done 588 * all done
587 */ 589 */
diff --git a/block/blk-tag.c b/block/blk-tag.c
index 32667beb03ee..ed5166fbc599 100644
--- a/block/blk-tag.c
+++ b/block/blk-tag.c
@@ -38,7 +38,8 @@ static int __blk_free_tags(struct blk_queue_tag *bqt)
38 38
39 retval = atomic_dec_and_test(&bqt->refcnt); 39 retval = atomic_dec_and_test(&bqt->refcnt);
40 if (retval) { 40 if (retval) {
41 BUG_ON(bqt->busy); 41 BUG_ON(find_first_bit(bqt->tag_map, bqt->max_depth) <
42 bqt->max_depth);
42 43
43 kfree(bqt->tag_index); 44 kfree(bqt->tag_index);
44 bqt->tag_index = NULL; 45 bqt->tag_index = NULL;
@@ -147,7 +148,6 @@ static struct blk_queue_tag *__blk_queue_init_tags(struct request_queue *q,
147 if (init_tag_map(q, tags, depth)) 148 if (init_tag_map(q, tags, depth))
148 goto fail; 149 goto fail;
149 150
150 tags->busy = 0;
151 atomic_set(&tags->refcnt, 1); 151 atomic_set(&tags->refcnt, 1);
152 return tags; 152 return tags;
153fail: 153fail:
@@ -313,7 +313,6 @@ void blk_queue_end_tag(struct request_queue *q, struct request *rq)
313 * unlock memory barrier semantics. 313 * unlock memory barrier semantics.
314 */ 314 */
315 clear_bit_unlock(tag, bqt->tag_map); 315 clear_bit_unlock(tag, bqt->tag_map);
316 bqt->busy--;
317} 316}
318EXPORT_SYMBOL(blk_queue_end_tag); 317EXPORT_SYMBOL(blk_queue_end_tag);
319 318
@@ -368,7 +367,6 @@ int blk_queue_start_tag(struct request_queue *q, struct request *rq)
368 bqt->tag_index[tag] = rq; 367 bqt->tag_index[tag] = rq;
369 blkdev_dequeue_request(rq); 368 blkdev_dequeue_request(rq);
370 list_add(&rq->queuelist, &q->tag_busy_list); 369 list_add(&rq->queuelist, &q->tag_busy_list);
371 bqt->busy++;
372 return 0; 370 return 0;
373} 371}
374EXPORT_SYMBOL(blk_queue_start_tag); 372EXPORT_SYMBOL(blk_queue_start_tag);
diff --git a/block/bsg.c b/block/bsg.c
index 5a68b09a69ba..0aae8d7ba99c 100644
--- a/block/bsg.c
+++ b/block/bsg.c
@@ -45,8 +45,6 @@ struct bsg_device {
45 char name[BUS_ID_SIZE]; 45 char name[BUS_ID_SIZE];
46 int max_queue; 46 int max_queue;
47 unsigned long flags; 47 unsigned long flags;
48 struct blk_scsi_cmd_filter *cmd_filter;
49 mode_t *f_mode;
50}; 48};
51 49
52enum { 50enum {
@@ -174,7 +172,8 @@ unlock:
174} 172}
175 173
176static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq, 174static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
177 struct sg_io_v4 *hdr, struct bsg_device *bd) 175 struct sg_io_v4 *hdr, struct bsg_device *bd,
176 int has_write_perm)
178{ 177{
179 if (hdr->request_len > BLK_MAX_CDB) { 178 if (hdr->request_len > BLK_MAX_CDB) {
180 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL); 179 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
@@ -187,8 +186,7 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
187 return -EFAULT; 186 return -EFAULT;
188 187
189 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) { 188 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
190 if (blk_cmd_filter_verify_command(bd->cmd_filter, rq->cmd, 189 if (blk_verify_command(&q->cmd_filter, rq->cmd, has_write_perm))
191 bd->f_mode))
192 return -EPERM; 190 return -EPERM;
193 } else if (!capable(CAP_SYS_RAWIO)) 191 } else if (!capable(CAP_SYS_RAWIO))
194 return -EPERM; 192 return -EPERM;
@@ -244,7 +242,7 @@ bsg_validate_sgv4_hdr(struct request_queue *q, struct sg_io_v4 *hdr, int *rw)
244 * map sg_io_v4 to a request. 242 * map sg_io_v4 to a request.
245 */ 243 */
246static struct request * 244static struct request *
247bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr) 245bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr, int has_write_perm)
248{ 246{
249 struct request_queue *q = bd->queue; 247 struct request_queue *q = bd->queue;
250 struct request *rq, *next_rq = NULL; 248 struct request *rq, *next_rq = NULL;
@@ -266,7 +264,7 @@ bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr)
266 rq = blk_get_request(q, rw, GFP_KERNEL); 264 rq = blk_get_request(q, rw, GFP_KERNEL);
267 if (!rq) 265 if (!rq)
268 return ERR_PTR(-ENOMEM); 266 return ERR_PTR(-ENOMEM);
269 ret = blk_fill_sgv4_hdr_rq(q, rq, hdr, bd); 267 ret = blk_fill_sgv4_hdr_rq(q, rq, hdr, bd, has_write_perm);
270 if (ret) 268 if (ret)
271 goto out; 269 goto out;
272 270
@@ -568,25 +566,6 @@ static inline void bsg_set_block(struct bsg_device *bd, struct file *file)
568 set_bit(BSG_F_BLOCK, &bd->flags); 566 set_bit(BSG_F_BLOCK, &bd->flags);
569} 567}
570 568
571static void bsg_set_cmd_filter(struct bsg_device *bd,
572 struct file *file)
573{
574 struct inode *inode;
575 struct gendisk *disk;
576
577 if (!file)
578 return;
579
580 inode = file->f_dentry->d_inode;
581 if (!inode)
582 return;
583
584 disk = inode->i_bdev->bd_disk;
585
586 bd->cmd_filter = &disk->cmd_filter;
587 bd->f_mode = &file->f_mode;
588}
589
590/* 569/*
591 * Check if the error is a "real" error that we should return. 570 * Check if the error is a "real" error that we should return.
592 */ 571 */
@@ -608,7 +587,6 @@ bsg_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
608 dprintk("%s: read %Zd bytes\n", bd->name, count); 587 dprintk("%s: read %Zd bytes\n", bd->name, count);
609 588
610 bsg_set_block(bd, file); 589 bsg_set_block(bd, file);
611 bsg_set_cmd_filter(bd, file);
612 590
613 bytes_read = 0; 591 bytes_read = 0;
614 ret = __bsg_read(buf, count, bd, NULL, &bytes_read); 592 ret = __bsg_read(buf, count, bd, NULL, &bytes_read);
@@ -621,7 +599,7 @@ bsg_read(struct file *file, char __user *buf, size_t count, loff_t *ppos)
621} 599}
622 600
623static int __bsg_write(struct bsg_device *bd, const char __user *buf, 601static int __bsg_write(struct bsg_device *bd, const char __user *buf,
624 size_t count, ssize_t *bytes_written) 602 size_t count, ssize_t *bytes_written, int has_write_perm)
625{ 603{
626 struct bsg_command *bc; 604 struct bsg_command *bc;
627 struct request *rq; 605 struct request *rq;
@@ -652,7 +630,7 @@ static int __bsg_write(struct bsg_device *bd, const char __user *buf,
652 /* 630 /*
653 * get a request, fill in the blanks, and add to request queue 631 * get a request, fill in the blanks, and add to request queue
654 */ 632 */
655 rq = bsg_map_hdr(bd, &bc->hdr); 633 rq = bsg_map_hdr(bd, &bc->hdr, has_write_perm);
656 if (IS_ERR(rq)) { 634 if (IS_ERR(rq)) {
657 ret = PTR_ERR(rq); 635 ret = PTR_ERR(rq);
658 rq = NULL; 636 rq = NULL;
@@ -683,10 +661,11 @@ bsg_write(struct file *file, const char __user *buf, size_t count, loff_t *ppos)
683 dprintk("%s: write %Zd bytes\n", bd->name, count); 661 dprintk("%s: write %Zd bytes\n", bd->name, count);
684 662
685 bsg_set_block(bd, file); 663 bsg_set_block(bd, file);
686 bsg_set_cmd_filter(bd, file);
687 664
688 bytes_written = 0; 665 bytes_written = 0;
689 ret = __bsg_write(bd, buf, count, &bytes_written); 666 ret = __bsg_write(bd, buf, count, &bytes_written,
667 file->f_mode & FMODE_WRITE);
668
690 *ppos = bytes_written; 669 *ppos = bytes_written;
691 670
692 /* 671 /*
@@ -792,7 +771,6 @@ static struct bsg_device *bsg_add_device(struct inode *inode,
792 bd->queue = rq; 771 bd->queue = rq;
793 772
794 bsg_set_block(bd, file); 773 bsg_set_block(bd, file);
795 bsg_set_cmd_filter(bd, file);
796 774
797 atomic_set(&bd->ref_count, 1); 775 atomic_set(&bd->ref_count, 1);
798 mutex_lock(&bsg_mutex); 776 mutex_lock(&bsg_mutex);
@@ -943,7 +921,7 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
943 if (copy_from_user(&hdr, uarg, sizeof(hdr))) 921 if (copy_from_user(&hdr, uarg, sizeof(hdr)))
944 return -EFAULT; 922 return -EFAULT;
945 923
946 rq = bsg_map_hdr(bd, &hdr); 924 rq = bsg_map_hdr(bd, &hdr, file->f_mode & FMODE_WRITE);
947 if (IS_ERR(rq)) 925 if (IS_ERR(rq))
948 return PTR_ERR(rq); 926 return PTR_ERR(rq);
949 927
diff --git a/block/cmd-filter.c b/block/cmd-filter.c
index eec4404fd357..79c14996ac11 100644
--- a/block/cmd-filter.c
+++ b/block/cmd-filter.c
@@ -20,15 +20,14 @@
20#include <linux/list.h> 20#include <linux/list.h>
21#include <linux/genhd.h> 21#include <linux/genhd.h>
22#include <linux/spinlock.h> 22#include <linux/spinlock.h>
23#include <linux/parser.h>
24#include <linux/capability.h> 23#include <linux/capability.h>
25#include <linux/bitops.h> 24#include <linux/bitops.h>
26 25
27#include <scsi/scsi.h> 26#include <scsi/scsi.h>
28#include <linux/cdrom.h> 27#include <linux/cdrom.h>
29 28
30int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter, 29int blk_verify_command(struct blk_cmd_filter *filter,
31 unsigned char *cmd, mode_t *f_mode) 30 unsigned char *cmd, int has_write_perm)
32{ 31{
33 /* root can do any command. */ 32 /* root can do any command. */
34 if (capable(CAP_SYS_RAWIO)) 33 if (capable(CAP_SYS_RAWIO))
@@ -43,34 +42,16 @@ int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter,
43 return 0; 42 return 0;
44 43
45 /* Write-safe commands require a writable open */ 44 /* Write-safe commands require a writable open */
46 if (test_bit(cmd[0], filter->write_ok) && (*f_mode & FMODE_WRITE)) 45 if (test_bit(cmd[0], filter->write_ok) && has_write_perm)
47 return 0; 46 return 0;
48 47
49 return -EPERM; 48 return -EPERM;
50} 49}
51EXPORT_SYMBOL(blk_cmd_filter_verify_command);
52
53int blk_verify_command(struct file *file, unsigned char *cmd)
54{
55 struct gendisk *disk;
56 struct inode *inode;
57
58 if (!file)
59 return -EINVAL;
60
61 inode = file->f_dentry->d_inode;
62 if (!inode)
63 return -EINVAL;
64
65 disk = inode->i_bdev->bd_disk;
66
67 return blk_cmd_filter_verify_command(&disk->cmd_filter,
68 cmd, &file->f_mode);
69}
70EXPORT_SYMBOL(blk_verify_command); 50EXPORT_SYMBOL(blk_verify_command);
71 51
52#if 0
72/* and now, the sysfs stuff */ 53/* and now, the sysfs stuff */
73static ssize_t rcf_cmds_show(struct blk_scsi_cmd_filter *filter, char *page, 54static ssize_t rcf_cmds_show(struct blk_cmd_filter *filter, char *page,
74 int rw) 55 int rw)
75{ 56{
76 char *npage = page; 57 char *npage = page;
@@ -84,8 +65,7 @@ static ssize_t rcf_cmds_show(struct blk_scsi_cmd_filter *filter, char *page,
84 65
85 for (i = 0; i < BLK_SCSI_MAX_CMDS; i++) { 66 for (i = 0; i < BLK_SCSI_MAX_CMDS; i++) {
86 if (test_bit(i, okbits)) { 67 if (test_bit(i, okbits)) {
87 sprintf(npage, "%02x", i); 68 npage += sprintf(npage, "0x%02x", i);
88 npage += 2;
89 if (i < BLK_SCSI_MAX_CMDS - 1) 69 if (i < BLK_SCSI_MAX_CMDS - 1)
90 sprintf(npage++, " "); 70 sprintf(npage++, " ");
91 } 71 }
@@ -97,57 +77,65 @@ static ssize_t rcf_cmds_show(struct blk_scsi_cmd_filter *filter, char *page,
97 return npage - page; 77 return npage - page;
98} 78}
99 79
100static ssize_t rcf_readcmds_show(struct blk_scsi_cmd_filter *filter, char *page) 80static ssize_t rcf_readcmds_show(struct blk_cmd_filter *filter, char *page)
101{ 81{
102 return rcf_cmds_show(filter, page, READ); 82 return rcf_cmds_show(filter, page, READ);
103} 83}
104 84
105static ssize_t rcf_writecmds_show(struct blk_scsi_cmd_filter *filter, 85static ssize_t rcf_writecmds_show(struct blk_cmd_filter *filter,
106 char *page) 86 char *page)
107{ 87{
108 return rcf_cmds_show(filter, page, WRITE); 88 return rcf_cmds_show(filter, page, WRITE);
109} 89}
110 90
111static ssize_t rcf_cmds_store(struct blk_scsi_cmd_filter *filter, 91static ssize_t rcf_cmds_store(struct blk_cmd_filter *filter,
112 const char *page, size_t count, int rw) 92 const char *page, size_t count, int rw)
113{ 93{
114 ssize_t ret = 0;
115 unsigned long okbits[BLK_SCSI_CMD_PER_LONG], *target_okbits; 94 unsigned long okbits[BLK_SCSI_CMD_PER_LONG], *target_okbits;
116 int cmd, status, len; 95 int cmd, set;
117 substring_t ss; 96 char *p, *status;
118 97
119 memset(&okbits, 0, sizeof(okbits)); 98 if (rw == READ) {
120 99 memcpy(&okbits, filter->read_ok, sizeof(okbits));
121 for (len = strlen(page); len > 0; len -= 3) { 100 target_okbits = filter->read_ok;
122 if (len < 2) 101 } else {
123 break; 102 memcpy(&okbits, filter->write_ok, sizeof(okbits));
124 ss.from = (char *) page + ret; 103 target_okbits = filter->write_ok;
125 ss.to = (char *) page + ret + 2; 104 }
126 ret += 3; 105
127 status = match_hex(&ss, &cmd); 106 while ((p = strsep((char **)&page, " ")) != NULL) {
107 set = 1;
108
109 if (p[0] == '+') {
110 p++;
111 } else if (p[0] == '-') {
112 set = 0;
113 p++;
114 }
115
116 cmd = simple_strtol(p, &status, 16);
117
128 /* either of these cases means invalid input, so do nothing. */ 118 /* either of these cases means invalid input, so do nothing. */
129 if (status || cmd >= BLK_SCSI_MAX_CMDS) 119 if ((status == p) || cmd >= BLK_SCSI_MAX_CMDS)
130 return -EINVAL; 120 return -EINVAL;
131 121
132 __set_bit(cmd, okbits); 122 if (set)
123 __set_bit(cmd, okbits);
124 else
125 __clear_bit(cmd, okbits);
133 } 126 }
134 127
135 if (rw == READ) 128 memcpy(target_okbits, okbits, sizeof(okbits));
136 target_okbits = filter->read_ok;
137 else
138 target_okbits = filter->write_ok;
139
140 memmove(target_okbits, okbits, sizeof(okbits));
141 return count; 129 return count;
142} 130}
143 131
144static ssize_t rcf_readcmds_store(struct blk_scsi_cmd_filter *filter, 132static ssize_t rcf_readcmds_store(struct blk_cmd_filter *filter,
145 const char *page, size_t count) 133 const char *page, size_t count)
146{ 134{
147 return rcf_cmds_store(filter, page, count, READ); 135 return rcf_cmds_store(filter, page, count, READ);
148} 136}
149 137
150static ssize_t rcf_writecmds_store(struct blk_scsi_cmd_filter *filter, 138static ssize_t rcf_writecmds_store(struct blk_cmd_filter *filter,
151 const char *page, size_t count) 139 const char *page, size_t count)
152{ 140{
153 return rcf_cmds_store(filter, page, count, WRITE); 141 return rcf_cmds_store(filter, page, count, WRITE);
@@ -155,8 +143,8 @@ static ssize_t rcf_writecmds_store(struct blk_scsi_cmd_filter *filter,
155 143
156struct rcf_sysfs_entry { 144struct rcf_sysfs_entry {
157 struct attribute attr; 145 struct attribute attr;
158 ssize_t (*show)(struct blk_scsi_cmd_filter *, char *); 146 ssize_t (*show)(struct blk_cmd_filter *, char *);
159 ssize_t (*store)(struct blk_scsi_cmd_filter *, const char *, size_t); 147 ssize_t (*store)(struct blk_cmd_filter *, const char *, size_t);
160}; 148};
161 149
162static struct rcf_sysfs_entry rcf_readcmds_entry = { 150static struct rcf_sysfs_entry rcf_readcmds_entry = {
@@ -183,9 +171,9 @@ static ssize_t
183rcf_attr_show(struct kobject *kobj, struct attribute *attr, char *page) 171rcf_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
184{ 172{
185 struct rcf_sysfs_entry *entry = to_rcf(attr); 173 struct rcf_sysfs_entry *entry = to_rcf(attr);
186 struct blk_scsi_cmd_filter *filter; 174 struct blk_cmd_filter *filter;
187 175
188 filter = container_of(kobj, struct blk_scsi_cmd_filter, kobj); 176 filter = container_of(kobj, struct blk_cmd_filter, kobj);
189 if (entry->show) 177 if (entry->show)
190 return entry->show(filter, page); 178 return entry->show(filter, page);
191 179
@@ -197,7 +185,7 @@ rcf_attr_store(struct kobject *kobj, struct attribute *attr,
197 const char *page, size_t length) 185 const char *page, size_t length)
198{ 186{
199 struct rcf_sysfs_entry *entry = to_rcf(attr); 187 struct rcf_sysfs_entry *entry = to_rcf(attr);
200 struct blk_scsi_cmd_filter *filter; 188 struct blk_cmd_filter *filter;
201 189
202 if (!capable(CAP_SYS_RAWIO)) 190 if (!capable(CAP_SYS_RAWIO))
203 return -EPERM; 191 return -EPERM;
@@ -205,7 +193,7 @@ rcf_attr_store(struct kobject *kobj, struct attribute *attr,
205 if (!entry->store) 193 if (!entry->store)
206 return -EINVAL; 194 return -EINVAL;
207 195
208 filter = container_of(kobj, struct blk_scsi_cmd_filter, kobj); 196 filter = container_of(kobj, struct blk_cmd_filter, kobj);
209 return entry->store(filter, page, length); 197 return entry->store(filter, page, length);
210} 198}
211 199
@@ -219,116 +207,31 @@ static struct kobj_type rcf_ktype = {
219 .default_attrs = default_attrs, 207 .default_attrs = default_attrs,
220}; 208};
221 209
222#ifndef MAINTENANCE_IN_CMD
223#define MAINTENANCE_IN_CMD 0xa3
224#endif
225
226static void rcf_set_defaults(struct blk_scsi_cmd_filter *filter)
227{
228 /* Basic read-only commands */
229 __set_bit(TEST_UNIT_READY, filter->read_ok);
230 __set_bit(REQUEST_SENSE, filter->read_ok);
231 __set_bit(READ_6, filter->read_ok);
232 __set_bit(READ_10, filter->read_ok);
233 __set_bit(READ_12, filter->read_ok);
234 __set_bit(READ_16, filter->read_ok);
235 __set_bit(READ_BUFFER, filter->read_ok);
236 __set_bit(READ_DEFECT_DATA, filter->read_ok);
237 __set_bit(READ_CAPACITY, filter->read_ok);
238 __set_bit(READ_LONG, filter->read_ok);
239 __set_bit(INQUIRY, filter->read_ok);
240 __set_bit(MODE_SENSE, filter->read_ok);
241 __set_bit(MODE_SENSE_10, filter->read_ok);
242 __set_bit(LOG_SENSE, filter->read_ok);
243 __set_bit(START_STOP, filter->read_ok);
244 __set_bit(GPCMD_VERIFY_10, filter->read_ok);
245 __set_bit(VERIFY_16, filter->read_ok);
246 __set_bit(REPORT_LUNS, filter->read_ok);
247 __set_bit(SERVICE_ACTION_IN, filter->read_ok);
248 __set_bit(RECEIVE_DIAGNOSTIC, filter->read_ok);
249 __set_bit(MAINTENANCE_IN_CMD, filter->read_ok);
250 __set_bit(GPCMD_READ_BUFFER_CAPACITY, filter->read_ok);
251
252 /* Audio CD commands */
253 __set_bit(GPCMD_PLAY_CD, filter->read_ok);
254 __set_bit(GPCMD_PLAY_AUDIO_10, filter->read_ok);
255 __set_bit(GPCMD_PLAY_AUDIO_MSF, filter->read_ok);
256 __set_bit(GPCMD_PLAY_AUDIO_TI, filter->read_ok);
257 __set_bit(GPCMD_PAUSE_RESUME, filter->read_ok);
258
259 /* CD/DVD data reading */
260 __set_bit(GPCMD_READ_CD, filter->read_ok);
261 __set_bit(GPCMD_READ_CD_MSF, filter->read_ok);
262 __set_bit(GPCMD_READ_DISC_INFO, filter->read_ok);
263 __set_bit(GPCMD_READ_CDVD_CAPACITY, filter->read_ok);
264 __set_bit(GPCMD_READ_DVD_STRUCTURE, filter->read_ok);
265 __set_bit(GPCMD_READ_HEADER, filter->read_ok);
266 __set_bit(GPCMD_READ_TRACK_RZONE_INFO, filter->read_ok);
267 __set_bit(GPCMD_READ_SUBCHANNEL, filter->read_ok);
268 __set_bit(GPCMD_READ_TOC_PMA_ATIP, filter->read_ok);
269 __set_bit(GPCMD_REPORT_KEY, filter->read_ok);
270 __set_bit(GPCMD_SCAN, filter->read_ok);
271 __set_bit(GPCMD_GET_CONFIGURATION, filter->read_ok);
272 __set_bit(GPCMD_READ_FORMAT_CAPACITIES, filter->read_ok);
273 __set_bit(GPCMD_GET_EVENT_STATUS_NOTIFICATION, filter->read_ok);
274 __set_bit(GPCMD_GET_PERFORMANCE, filter->read_ok);
275 __set_bit(GPCMD_SEEK, filter->read_ok);
276 __set_bit(GPCMD_STOP_PLAY_SCAN, filter->read_ok);
277
278 /* Basic writing commands */
279 __set_bit(WRITE_6, filter->write_ok);
280 __set_bit(WRITE_10, filter->write_ok);
281 __set_bit(WRITE_VERIFY, filter->write_ok);
282 __set_bit(WRITE_12, filter->write_ok);
283 __set_bit(WRITE_VERIFY_12, filter->write_ok);
284 __set_bit(WRITE_16, filter->write_ok);
285 __set_bit(WRITE_LONG, filter->write_ok);
286 __set_bit(WRITE_LONG_2, filter->write_ok);
287 __set_bit(ERASE, filter->write_ok);
288 __set_bit(GPCMD_MODE_SELECT_10, filter->write_ok);
289 __set_bit(MODE_SELECT, filter->write_ok);
290 __set_bit(LOG_SELECT, filter->write_ok);
291 __set_bit(GPCMD_BLANK, filter->write_ok);
292 __set_bit(GPCMD_CLOSE_TRACK, filter->write_ok);
293 __set_bit(GPCMD_FLUSH_CACHE, filter->write_ok);
294 __set_bit(GPCMD_FORMAT_UNIT, filter->write_ok);
295 __set_bit(GPCMD_REPAIR_RZONE_TRACK, filter->write_ok);
296 __set_bit(GPCMD_RESERVE_RZONE_TRACK, filter->write_ok);
297 __set_bit(GPCMD_SEND_DVD_STRUCTURE, filter->write_ok);
298 __set_bit(GPCMD_SEND_EVENT, filter->write_ok);
299 __set_bit(GPCMD_SEND_KEY, filter->write_ok);
300 __set_bit(GPCMD_SEND_OPC, filter->write_ok);
301 __set_bit(GPCMD_SEND_CUE_SHEET, filter->write_ok);
302 __set_bit(GPCMD_SET_SPEED, filter->write_ok);
303 __set_bit(GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL, filter->write_ok);
304 __set_bit(GPCMD_LOAD_UNLOAD, filter->write_ok);
305 __set_bit(GPCMD_SET_STREAMING, filter->write_ok);
306}
307
308int blk_register_filter(struct gendisk *disk) 210int blk_register_filter(struct gendisk *disk)
309{ 211{
310 int ret; 212 int ret;
311 struct blk_scsi_cmd_filter *filter = &disk->cmd_filter; 213 struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
312 struct kobject *parent = kobject_get(disk->holder_dir->parent); 214 struct kobject *parent = kobject_get(disk->holder_dir->parent);
313 215
314 if (!parent) 216 if (!parent)
315 return -ENODEV; 217 return -ENODEV;
316 218
317 ret = kobject_init_and_add(&filter->kobj, &rcf_ktype, parent, 219 ret = kobject_init_and_add(&filter->kobj, &rcf_ktype, parent,
318 "%s", "cmd_filter"); 220 "%s", "cmd_filter");
319 221
320 if (ret < 0) 222 if (ret < 0)
321 return ret; 223 return ret;
322 224
323 rcf_set_defaults(filter);
324 return 0; 225 return 0;
325} 226}
227EXPORT_SYMBOL(blk_register_filter);
326 228
327void blk_unregister_filter(struct gendisk *disk) 229void blk_unregister_filter(struct gendisk *disk)
328{ 230{
329 struct blk_scsi_cmd_filter *filter = &disk->cmd_filter; 231 struct blk_cmd_filter *filter = &disk->queue->cmd_filter;
330 232
331 kobject_put(&filter->kobj); 233 kobject_put(&filter->kobj);
332 kobject_put(disk->holder_dir->parent); 234 kobject_put(disk->holder_dir->parent);
333} 235}
334 236EXPORT_SYMBOL(blk_unregister_filter);
237#endif
diff --git a/block/genhd.c b/block/genhd.c
index 656c2c7abf99..e0ce23ac2ece 100644
--- a/block/genhd.c
+++ b/block/genhd.c
@@ -190,7 +190,6 @@ void add_disk(struct gendisk *disk)
190 disk->minors, NULL, exact_match, exact_lock, disk); 190 disk->minors, NULL, exact_match, exact_lock, disk);
191 register_disk(disk); 191 register_disk(disk);
192 blk_register_queue(disk); 192 blk_register_queue(disk);
193 blk_register_filter(disk);
194 193
195 bdi = &disk->queue->backing_dev_info; 194 bdi = &disk->queue->backing_dev_info;
196 bdi_register_dev(bdi, MKDEV(disk->major, disk->first_minor)); 195 bdi_register_dev(bdi, MKDEV(disk->major, disk->first_minor));
@@ -203,7 +202,6 @@ EXPORT_SYMBOL(del_gendisk); /* in partitions/check.c */
203 202
204void unlink_gendisk(struct gendisk *disk) 203void unlink_gendisk(struct gendisk *disk)
205{ 204{
206 blk_unregister_filter(disk);
207 sysfs_remove_link(&disk->dev.kobj, "bdi"); 205 sysfs_remove_link(&disk->dev.kobj, "bdi");
208 bdi_unregister(&disk->queue->backing_dev_info); 206 bdi_unregister(&disk->queue->backing_dev_info);
209 blk_unregister_queue(disk); 207 blk_unregister_queue(disk);
@@ -309,7 +307,7 @@ static void *part_start(struct seq_file *part, loff_t *pos)
309 loff_t k = *pos; 307 loff_t k = *pos;
310 308
311 if (!k) 309 if (!k)
312 seq_puts(part, "major minor #blocks name\n\n"); 310 part->private = (void *)1LU; /* tell show to print header */
313 311
314 mutex_lock(&block_class_lock); 312 mutex_lock(&block_class_lock);
315 dev = class_find_device(&block_class, NULL, &k, find_start); 313 dev = class_find_device(&block_class, NULL, &k, find_start);
@@ -351,6 +349,17 @@ static int show_partition(struct seq_file *part, void *v)
351 int n; 349 int n;
352 char buf[BDEVNAME_SIZE]; 350 char buf[BDEVNAME_SIZE];
353 351
352 /*
353 * Print header if start told us to do. This is to preserve
354 * the original behavior of not printing header if no
355 * partition exists. This hackery will be removed later with
356 * class iteration clean up.
357 */
358 if (part->private) {
359 seq_puts(part, "major minor #blocks name\n\n");
360 part->private = NULL;
361 }
362
354 /* Don't show non-partitionable removeable devices or empty devices */ 363 /* Don't show non-partitionable removeable devices or empty devices */
355 if (!get_capacity(sgp) || 364 if (!get_capacity(sgp) ||
356 (sgp->minors == 1 && (sgp->flags & GENHD_FL_REMOVABLE))) 365 (sgp->minors == 1 && (sgp->flags & GENHD_FL_REMOVABLE)))
diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
index 12a5182173f6..ec4b7f234626 100644
--- a/block/scsi_ioctl.c
+++ b/block/scsi_ioctl.c
@@ -105,12 +105,96 @@ static int sg_emulated_host(struct request_queue *q, int __user *p)
105 return put_user(1, p); 105 return put_user(1, p);
106} 106}
107 107
108void blk_set_cmd_filter_defaults(struct blk_cmd_filter *filter)
109{
110 /* Basic read-only commands */
111 __set_bit(TEST_UNIT_READY, filter->read_ok);
112 __set_bit(REQUEST_SENSE, filter->read_ok);
113 __set_bit(READ_6, filter->read_ok);
114 __set_bit(READ_10, filter->read_ok);
115 __set_bit(READ_12, filter->read_ok);
116 __set_bit(READ_16, filter->read_ok);
117 __set_bit(READ_BUFFER, filter->read_ok);
118 __set_bit(READ_DEFECT_DATA, filter->read_ok);
119 __set_bit(READ_CAPACITY, filter->read_ok);
120 __set_bit(READ_LONG, filter->read_ok);
121 __set_bit(INQUIRY, filter->read_ok);
122 __set_bit(MODE_SENSE, filter->read_ok);
123 __set_bit(MODE_SENSE_10, filter->read_ok);
124 __set_bit(LOG_SENSE, filter->read_ok);
125 __set_bit(START_STOP, filter->read_ok);
126 __set_bit(GPCMD_VERIFY_10, filter->read_ok);
127 __set_bit(VERIFY_16, filter->read_ok);
128 __set_bit(REPORT_LUNS, filter->read_ok);
129 __set_bit(SERVICE_ACTION_IN, filter->read_ok);
130 __set_bit(RECEIVE_DIAGNOSTIC, filter->read_ok);
131 __set_bit(MAINTENANCE_IN, filter->read_ok);
132 __set_bit(GPCMD_READ_BUFFER_CAPACITY, filter->read_ok);
133
134 /* Audio CD commands */
135 __set_bit(GPCMD_PLAY_CD, filter->read_ok);
136 __set_bit(GPCMD_PLAY_AUDIO_10, filter->read_ok);
137 __set_bit(GPCMD_PLAY_AUDIO_MSF, filter->read_ok);
138 __set_bit(GPCMD_PLAY_AUDIO_TI, filter->read_ok);
139 __set_bit(GPCMD_PAUSE_RESUME, filter->read_ok);
140
141 /* CD/DVD data reading */
142 __set_bit(GPCMD_READ_CD, filter->read_ok);
143 __set_bit(GPCMD_READ_CD_MSF, filter->read_ok);
144 __set_bit(GPCMD_READ_DISC_INFO, filter->read_ok);
145 __set_bit(GPCMD_READ_CDVD_CAPACITY, filter->read_ok);
146 __set_bit(GPCMD_READ_DVD_STRUCTURE, filter->read_ok);
147 __set_bit(GPCMD_READ_HEADER, filter->read_ok);
148 __set_bit(GPCMD_READ_TRACK_RZONE_INFO, filter->read_ok);
149 __set_bit(GPCMD_READ_SUBCHANNEL, filter->read_ok);
150 __set_bit(GPCMD_READ_TOC_PMA_ATIP, filter->read_ok);
151 __set_bit(GPCMD_REPORT_KEY, filter->read_ok);
152 __set_bit(GPCMD_SCAN, filter->read_ok);
153 __set_bit(GPCMD_GET_CONFIGURATION, filter->read_ok);
154 __set_bit(GPCMD_READ_FORMAT_CAPACITIES, filter->read_ok);
155 __set_bit(GPCMD_GET_EVENT_STATUS_NOTIFICATION, filter->read_ok);
156 __set_bit(GPCMD_GET_PERFORMANCE, filter->read_ok);
157 __set_bit(GPCMD_SEEK, filter->read_ok);
158 __set_bit(GPCMD_STOP_PLAY_SCAN, filter->read_ok);
159
160 /* Basic writing commands */
161 __set_bit(WRITE_6, filter->write_ok);
162 __set_bit(WRITE_10, filter->write_ok);
163 __set_bit(WRITE_VERIFY, filter->write_ok);
164 __set_bit(WRITE_12, filter->write_ok);
165 __set_bit(WRITE_VERIFY_12, filter->write_ok);
166 __set_bit(WRITE_16, filter->write_ok);
167 __set_bit(WRITE_LONG, filter->write_ok);
168 __set_bit(WRITE_LONG_2, filter->write_ok);
169 __set_bit(ERASE, filter->write_ok);
170 __set_bit(GPCMD_MODE_SELECT_10, filter->write_ok);
171 __set_bit(MODE_SELECT, filter->write_ok);
172 __set_bit(LOG_SELECT, filter->write_ok);
173 __set_bit(GPCMD_BLANK, filter->write_ok);
174 __set_bit(GPCMD_CLOSE_TRACK, filter->write_ok);
175 __set_bit(GPCMD_FLUSH_CACHE, filter->write_ok);
176 __set_bit(GPCMD_FORMAT_UNIT, filter->write_ok);
177 __set_bit(GPCMD_REPAIR_RZONE_TRACK, filter->write_ok);
178 __set_bit(GPCMD_RESERVE_RZONE_TRACK, filter->write_ok);
179 __set_bit(GPCMD_SEND_DVD_STRUCTURE, filter->write_ok);
180 __set_bit(GPCMD_SEND_EVENT, filter->write_ok);
181 __set_bit(GPCMD_SEND_KEY, filter->write_ok);
182 __set_bit(GPCMD_SEND_OPC, filter->write_ok);
183 __set_bit(GPCMD_SEND_CUE_SHEET, filter->write_ok);
184 __set_bit(GPCMD_SET_SPEED, filter->write_ok);
185 __set_bit(GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL, filter->write_ok);
186 __set_bit(GPCMD_LOAD_UNLOAD, filter->write_ok);
187 __set_bit(GPCMD_SET_STREAMING, filter->write_ok);
188}
189EXPORT_SYMBOL_GPL(blk_set_cmd_filter_defaults);
190
108static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq, 191static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
109 struct sg_io_hdr *hdr, struct file *file) 192 struct sg_io_hdr *hdr, struct file *file)
110{ 193{
111 if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len)) 194 if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
112 return -EFAULT; 195 return -EFAULT;
113 if (blk_verify_command(file, rq->cmd)) 196 if (blk_verify_command(&q->cmd_filter, rq->cmd,
197 file->f_mode & FMODE_WRITE))
114 return -EPERM; 198 return -EPERM;
115 199
116 /* 200 /*
@@ -298,7 +382,7 @@ int sg_scsi_ioctl(struct file *file, struct request_queue *q,
298 struct gendisk *disk, struct scsi_ioctl_command __user *sic) 382 struct gendisk *disk, struct scsi_ioctl_command __user *sic)
299{ 383{
300 struct request *rq; 384 struct request *rq;
301 int err; 385 int err, write_perm = 0;
302 unsigned int in_len, out_len, bytes, opcode, cmdlen; 386 unsigned int in_len, out_len, bytes, opcode, cmdlen;
303 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE]; 387 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
304 388
@@ -340,7 +424,11 @@ int sg_scsi_ioctl(struct file *file, struct request_queue *q,
340 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len)) 424 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
341 goto error; 425 goto error;
342 426
343 err = blk_verify_command(file, rq->cmd); 427 /* scsi_ioctl passes NULL */
428 if (file && (file->f_mode & FMODE_WRITE))
429 write_perm = 1;
430
431 err = blk_verify_command(&q->cmd_filter, rq->cmd, write_perm);
344 if (err) 432 if (err)
345 goto error; 433 goto error;
346 434
diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c
index 85eaf7b1c531..e8362c1efa30 100644
--- a/crypto/async_tx/async_tx.c
+++ b/crypto/async_tx/async_tx.c
@@ -137,7 +137,8 @@ async_tx_run_dependencies(struct dma_async_tx_descriptor *tx)
137 spin_lock_bh(&next->lock); 137 spin_lock_bh(&next->lock);
138 next->parent = NULL; 138 next->parent = NULL;
139 _next = next->next; 139 _next = next->next;
140 next->next = NULL; 140 if (_next && _next->chan == chan)
141 next->next = NULL;
141 spin_unlock_bh(&next->lock); 142 spin_unlock_bh(&next->lock);
142 143
143 next->tx_submit(next); 144 next->tx_submit(next);
diff --git a/crypto/camellia.c b/crypto/camellia.c
index b1cc4de6493c..493fee7e0a8b 100644
--- a/crypto/camellia.c
+++ b/crypto/camellia.c
@@ -35,8 +35,6 @@
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/kernel.h> 36#include <linux/kernel.h>
37#include <linux/module.h> 37#include <linux/module.h>
38#include <linux/bitops.h>
39#include <asm/unaligned.h>
40 38
41static const u32 camellia_sp1110[256] = { 39static const u32 camellia_sp1110[256] = {
42 0x70707000,0x82828200,0x2c2c2c00,0xececec00, 40 0x70707000,0x82828200,0x2c2c2c00,0xececec00,
@@ -337,6 +335,20 @@ static const u32 camellia_sp4404[256] = {
337/* 335/*
338 * macros 336 * macros
339 */ 337 */
338#define GETU32(v, pt) \
339 do { \
340 /* latest breed of gcc is clever enough to use move */ \
341 memcpy(&(v), (pt), 4); \
342 (v) = be32_to_cpu(v); \
343 } while(0)
344
345/* rotation right shift 1byte */
346#define ROR8(x) (((x) >> 8) + ((x) << 24))
347/* rotation left shift 1bit */
348#define ROL1(x) (((x) << 1) + ((x) >> 31))
349/* rotation left shift 1byte */
350#define ROL8(x) (((x) << 8) + ((x) >> 24))
351
340#define ROLDQ(ll, lr, rl, rr, w0, w1, bits) \ 352#define ROLDQ(ll, lr, rl, rr, w0, w1, bits) \
341 do { \ 353 do { \
342 w0 = ll; \ 354 w0 = ll; \
@@ -371,7 +383,7 @@ static const u32 camellia_sp4404[256] = {
371 ^ camellia_sp3033[(u8)(il >> 8)] \ 383 ^ camellia_sp3033[(u8)(il >> 8)] \
372 ^ camellia_sp4404[(u8)(il )]; \ 384 ^ camellia_sp4404[(u8)(il )]; \
373 yl ^= yr; \ 385 yl ^= yr; \
374 yr = ror32(yr, 8); \ 386 yr = ROR8(yr); \
375 yr ^= yl; \ 387 yr ^= yl; \
376 } while(0) 388 } while(0)
377 389
@@ -393,7 +405,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
393 subL[7] ^= subL[1]; subR[7] ^= subR[1]; 405 subL[7] ^= subL[1]; subR[7] ^= subR[1];
394 subL[1] ^= subR[1] & ~subR[9]; 406 subL[1] ^= subR[1] & ~subR[9];
395 dw = subL[1] & subL[9], 407 dw = subL[1] & subL[9],
396 subR[1] ^= rol32(dw, 1); /* modified for FLinv(kl2) */ 408 subR[1] ^= ROL1(dw); /* modified for FLinv(kl2) */
397 /* round 8 */ 409 /* round 8 */
398 subL[11] ^= subL[1]; subR[11] ^= subR[1]; 410 subL[11] ^= subL[1]; subR[11] ^= subR[1];
399 /* round 10 */ 411 /* round 10 */
@@ -402,7 +414,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
402 subL[15] ^= subL[1]; subR[15] ^= subR[1]; 414 subL[15] ^= subL[1]; subR[15] ^= subR[1];
403 subL[1] ^= subR[1] & ~subR[17]; 415 subL[1] ^= subR[1] & ~subR[17];
404 dw = subL[1] & subL[17], 416 dw = subL[1] & subL[17],
405 subR[1] ^= rol32(dw, 1); /* modified for FLinv(kl4) */ 417 subR[1] ^= ROL1(dw); /* modified for FLinv(kl4) */
406 /* round 14 */ 418 /* round 14 */
407 subL[19] ^= subL[1]; subR[19] ^= subR[1]; 419 subL[19] ^= subL[1]; subR[19] ^= subR[1];
408 /* round 16 */ 420 /* round 16 */
@@ -418,7 +430,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
418 } else { 430 } else {
419 subL[1] ^= subR[1] & ~subR[25]; 431 subL[1] ^= subR[1] & ~subR[25];
420 dw = subL[1] & subL[25], 432 dw = subL[1] & subL[25],
421 subR[1] ^= rol32(dw, 1); /* modified for FLinv(kl6) */ 433 subR[1] ^= ROL1(dw); /* modified for FLinv(kl6) */
422 /* round 20 */ 434 /* round 20 */
423 subL[27] ^= subL[1]; subR[27] ^= subR[1]; 435 subL[27] ^= subL[1]; subR[27] ^= subR[1];
424 /* round 22 */ 436 /* round 22 */
@@ -438,7 +450,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
438 subL[26] ^= kw4l; subR[26] ^= kw4r; 450 subL[26] ^= kw4l; subR[26] ^= kw4r;
439 kw4l ^= kw4r & ~subR[24]; 451 kw4l ^= kw4r & ~subR[24];
440 dw = kw4l & subL[24], 452 dw = kw4l & subL[24],
441 kw4r ^= rol32(dw, 1); /* modified for FL(kl5) */ 453 kw4r ^= ROL1(dw); /* modified for FL(kl5) */
442 } 454 }
443 /* round 17 */ 455 /* round 17 */
444 subL[22] ^= kw4l; subR[22] ^= kw4r; 456 subL[22] ^= kw4l; subR[22] ^= kw4r;
@@ -448,7 +460,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
448 subL[18] ^= kw4l; subR[18] ^= kw4r; 460 subL[18] ^= kw4l; subR[18] ^= kw4r;
449 kw4l ^= kw4r & ~subR[16]; 461 kw4l ^= kw4r & ~subR[16];
450 dw = kw4l & subL[16], 462 dw = kw4l & subL[16],
451 kw4r ^= rol32(dw, 1); /* modified for FL(kl3) */ 463 kw4r ^= ROL1(dw); /* modified for FL(kl3) */
452 /* round 11 */ 464 /* round 11 */
453 subL[14] ^= kw4l; subR[14] ^= kw4r; 465 subL[14] ^= kw4l; subR[14] ^= kw4r;
454 /* round 9 */ 466 /* round 9 */
@@ -457,7 +469,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
457 subL[10] ^= kw4l; subR[10] ^= kw4r; 469 subL[10] ^= kw4l; subR[10] ^= kw4r;
458 kw4l ^= kw4r & ~subR[8]; 470 kw4l ^= kw4r & ~subR[8];
459 dw = kw4l & subL[8], 471 dw = kw4l & subL[8],
460 kw4r ^= rol32(dw, 1); /* modified for FL(kl1) */ 472 kw4r ^= ROL1(dw); /* modified for FL(kl1) */
461 /* round 5 */ 473 /* round 5 */
462 subL[6] ^= kw4l; subR[6] ^= kw4r; 474 subL[6] ^= kw4l; subR[6] ^= kw4r;
463 /* round 3 */ 475 /* round 3 */
@@ -482,7 +494,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
482 SUBKEY_R(6) = subR[5] ^ subR[7]; 494 SUBKEY_R(6) = subR[5] ^ subR[7];
483 tl = subL[10] ^ (subR[10] & ~subR[8]); 495 tl = subL[10] ^ (subR[10] & ~subR[8]);
484 dw = tl & subL[8], /* FL(kl1) */ 496 dw = tl & subL[8], /* FL(kl1) */
485 tr = subR[10] ^ rol32(dw, 1); 497 tr = subR[10] ^ ROL1(dw);
486 SUBKEY_L(7) = subL[6] ^ tl; /* round 6 */ 498 SUBKEY_L(7) = subL[6] ^ tl; /* round 6 */
487 SUBKEY_R(7) = subR[6] ^ tr; 499 SUBKEY_R(7) = subR[6] ^ tr;
488 SUBKEY_L(8) = subL[8]; /* FL(kl1) */ 500 SUBKEY_L(8) = subL[8]; /* FL(kl1) */
@@ -491,7 +503,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
491 SUBKEY_R(9) = subR[9]; 503 SUBKEY_R(9) = subR[9];
492 tl = subL[7] ^ (subR[7] & ~subR[9]); 504 tl = subL[7] ^ (subR[7] & ~subR[9]);
493 dw = tl & subL[9], /* FLinv(kl2) */ 505 dw = tl & subL[9], /* FLinv(kl2) */
494 tr = subR[7] ^ rol32(dw, 1); 506 tr = subR[7] ^ ROL1(dw);
495 SUBKEY_L(10) = tl ^ subL[11]; /* round 7 */ 507 SUBKEY_L(10) = tl ^ subL[11]; /* round 7 */
496 SUBKEY_R(10) = tr ^ subR[11]; 508 SUBKEY_R(10) = tr ^ subR[11];
497 SUBKEY_L(11) = subL[10] ^ subL[12]; /* round 8 */ 509 SUBKEY_L(11) = subL[10] ^ subL[12]; /* round 8 */
@@ -504,7 +516,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
504 SUBKEY_R(14) = subR[13] ^ subR[15]; 516 SUBKEY_R(14) = subR[13] ^ subR[15];
505 tl = subL[18] ^ (subR[18] & ~subR[16]); 517 tl = subL[18] ^ (subR[18] & ~subR[16]);
506 dw = tl & subL[16], /* FL(kl3) */ 518 dw = tl & subL[16], /* FL(kl3) */
507 tr = subR[18] ^ rol32(dw, 1); 519 tr = subR[18] ^ ROL1(dw);
508 SUBKEY_L(15) = subL[14] ^ tl; /* round 12 */ 520 SUBKEY_L(15) = subL[14] ^ tl; /* round 12 */
509 SUBKEY_R(15) = subR[14] ^ tr; 521 SUBKEY_R(15) = subR[14] ^ tr;
510 SUBKEY_L(16) = subL[16]; /* FL(kl3) */ 522 SUBKEY_L(16) = subL[16]; /* FL(kl3) */
@@ -513,7 +525,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
513 SUBKEY_R(17) = subR[17]; 525 SUBKEY_R(17) = subR[17];
514 tl = subL[15] ^ (subR[15] & ~subR[17]); 526 tl = subL[15] ^ (subR[15] & ~subR[17]);
515 dw = tl & subL[17], /* FLinv(kl4) */ 527 dw = tl & subL[17], /* FLinv(kl4) */
516 tr = subR[15] ^ rol32(dw, 1); 528 tr = subR[15] ^ ROL1(dw);
517 SUBKEY_L(18) = tl ^ subL[19]; /* round 13 */ 529 SUBKEY_L(18) = tl ^ subL[19]; /* round 13 */
518 SUBKEY_R(18) = tr ^ subR[19]; 530 SUBKEY_R(18) = tr ^ subR[19];
519 SUBKEY_L(19) = subL[18] ^ subL[20]; /* round 14 */ 531 SUBKEY_L(19) = subL[18] ^ subL[20]; /* round 14 */
@@ -532,7 +544,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
532 } else { 544 } else {
533 tl = subL[26] ^ (subR[26] & ~subR[24]); 545 tl = subL[26] ^ (subR[26] & ~subR[24]);
534 dw = tl & subL[24], /* FL(kl5) */ 546 dw = tl & subL[24], /* FL(kl5) */
535 tr = subR[26] ^ rol32(dw, 1); 547 tr = subR[26] ^ ROL1(dw);
536 SUBKEY_L(23) = subL[22] ^ tl; /* round 18 */ 548 SUBKEY_L(23) = subL[22] ^ tl; /* round 18 */
537 SUBKEY_R(23) = subR[22] ^ tr; 549 SUBKEY_R(23) = subR[22] ^ tr;
538 SUBKEY_L(24) = subL[24]; /* FL(kl5) */ 550 SUBKEY_L(24) = subL[24]; /* FL(kl5) */
@@ -541,7 +553,7 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
541 SUBKEY_R(25) = subR[25]; 553 SUBKEY_R(25) = subR[25];
542 tl = subL[23] ^ (subR[23] & ~subR[25]); 554 tl = subL[23] ^ (subR[23] & ~subR[25]);
543 dw = tl & subL[25], /* FLinv(kl6) */ 555 dw = tl & subL[25], /* FLinv(kl6) */
544 tr = subR[23] ^ rol32(dw, 1); 556 tr = subR[23] ^ ROL1(dw);
545 SUBKEY_L(26) = tl ^ subL[27]; /* round 19 */ 557 SUBKEY_L(26) = tl ^ subL[27]; /* round 19 */
546 SUBKEY_R(26) = tr ^ subR[27]; 558 SUBKEY_R(26) = tr ^ subR[27];
547 SUBKEY_L(27) = subL[26] ^ subL[28]; /* round 20 */ 559 SUBKEY_L(27) = subL[26] ^ subL[28]; /* round 20 */
@@ -561,17 +573,17 @@ static void camellia_setup_tail(u32 *subkey, u32 *subL, u32 *subR, int max)
561 /* apply the inverse of the last half of P-function */ 573 /* apply the inverse of the last half of P-function */
562 i = 2; 574 i = 2;
563 do { 575 do {
564 dw = SUBKEY_L(i + 0) ^ SUBKEY_R(i + 0); dw = rol32(dw, 8);/* round 1 */ 576 dw = SUBKEY_L(i + 0) ^ SUBKEY_R(i + 0); dw = ROL8(dw);/* round 1 */
565 SUBKEY_R(i + 0) = SUBKEY_L(i + 0) ^ dw; SUBKEY_L(i + 0) = dw; 577 SUBKEY_R(i + 0) = SUBKEY_L(i + 0) ^ dw; SUBKEY_L(i + 0) = dw;
566 dw = SUBKEY_L(i + 1) ^ SUBKEY_R(i + 1); dw = rol32(dw, 8);/* round 2 */ 578 dw = SUBKEY_L(i + 1) ^ SUBKEY_R(i + 1); dw = ROL8(dw);/* round 2 */
567 SUBKEY_R(i + 1) = SUBKEY_L(i + 1) ^ dw; SUBKEY_L(i + 1) = dw; 579 SUBKEY_R(i + 1) = SUBKEY_L(i + 1) ^ dw; SUBKEY_L(i + 1) = dw;
568 dw = SUBKEY_L(i + 2) ^ SUBKEY_R(i + 2); dw = rol32(dw, 8);/* round 3 */ 580 dw = SUBKEY_L(i + 2) ^ SUBKEY_R(i + 2); dw = ROL8(dw);/* round 3 */
569 SUBKEY_R(i + 2) = SUBKEY_L(i + 2) ^ dw; SUBKEY_L(i + 2) = dw; 581 SUBKEY_R(i + 2) = SUBKEY_L(i + 2) ^ dw; SUBKEY_L(i + 2) = dw;
570 dw = SUBKEY_L(i + 3) ^ SUBKEY_R(i + 3); dw = rol32(dw, 8);/* round 4 */ 582 dw = SUBKEY_L(i + 3) ^ SUBKEY_R(i + 3); dw = ROL8(dw);/* round 4 */
571 SUBKEY_R(i + 3) = SUBKEY_L(i + 3) ^ dw; SUBKEY_L(i + 3) = dw; 583 SUBKEY_R(i + 3) = SUBKEY_L(i + 3) ^ dw; SUBKEY_L(i + 3) = dw;
572 dw = SUBKEY_L(i + 4) ^ SUBKEY_R(i + 4); dw = rol32(dw, 9);/* round 5 */ 584 dw = SUBKEY_L(i + 4) ^ SUBKEY_R(i + 4); dw = ROL8(dw);/* round 5 */
573 SUBKEY_R(i + 4) = SUBKEY_L(i + 4) ^ dw; SUBKEY_L(i + 4) = dw; 585 SUBKEY_R(i + 4) = SUBKEY_L(i + 4) ^ dw; SUBKEY_L(i + 4) = dw;
574 dw = SUBKEY_L(i + 5) ^ SUBKEY_R(i + 5); dw = rol32(dw, 8);/* round 6 */ 586 dw = SUBKEY_L(i + 5) ^ SUBKEY_R(i + 5); dw = ROL8(dw);/* round 6 */
575 SUBKEY_R(i + 5) = SUBKEY_L(i + 5) ^ dw; SUBKEY_L(i + 5) = dw; 587 SUBKEY_R(i + 5) = SUBKEY_L(i + 5) ^ dw; SUBKEY_L(i + 5) = dw;
576 i += 8; 588 i += 8;
577 } while (i < max); 589 } while (i < max);
@@ -587,10 +599,10 @@ static void camellia_setup128(const unsigned char *key, u32 *subkey)
587 /** 599 /**
588 * k == kll || klr || krl || krr (|| is concatenation) 600 * k == kll || klr || krl || krr (|| is concatenation)
589 */ 601 */
590 kll = get_unaligned_be32(key); 602 GETU32(kll, key );
591 klr = get_unaligned_be32(key + 4); 603 GETU32(klr, key + 4);
592 krl = get_unaligned_be32(key + 8); 604 GETU32(krl, key + 8);
593 krr = get_unaligned_be32(key + 12); 605 GETU32(krr, key + 12);
594 606
595 /* generate KL dependent subkeys */ 607 /* generate KL dependent subkeys */
596 /* kw1 */ 608 /* kw1 */
@@ -695,14 +707,14 @@ static void camellia_setup256(const unsigned char *key, u32 *subkey)
695 * key = (kll || klr || krl || krr || krll || krlr || krrl || krrr) 707 * key = (kll || klr || krl || krr || krll || krlr || krrl || krrr)
696 * (|| is concatenation) 708 * (|| is concatenation)
697 */ 709 */
698 kll = get_unaligned_be32(key); 710 GETU32(kll, key );
699 klr = get_unaligned_be32(key + 4); 711 GETU32(klr, key + 4);
700 krl = get_unaligned_be32(key + 8); 712 GETU32(krl, key + 8);
701 krr = get_unaligned_be32(key + 12); 713 GETU32(krr, key + 12);
702 krll = get_unaligned_be32(key + 16); 714 GETU32(krll, key + 16);
703 krlr = get_unaligned_be32(key + 20); 715 GETU32(krlr, key + 20);
704 krrl = get_unaligned_be32(key + 24); 716 GETU32(krrl, key + 24);
705 krrr = get_unaligned_be32(key + 28); 717 GETU32(krrr, key + 28);
706 718
707 /* generate KL dependent subkeys */ 719 /* generate KL dependent subkeys */
708 /* kw1 */ 720 /* kw1 */
@@ -858,13 +870,13 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey)
858 t0 &= ll; \ 870 t0 &= ll; \
859 t2 |= rr; \ 871 t2 |= rr; \
860 rl ^= t2; \ 872 rl ^= t2; \
861 lr ^= rol32(t0, 1); \ 873 lr ^= ROL1(t0); \
862 t3 = krl; \ 874 t3 = krl; \
863 t1 = klr; \ 875 t1 = klr; \
864 t3 &= rl; \ 876 t3 &= rl; \
865 t1 |= lr; \ 877 t1 |= lr; \
866 ll ^= t1; \ 878 ll ^= t1; \
867 rr ^= rol32(t3, 1); \ 879 rr ^= ROL1(t3); \
868 } while(0) 880 } while(0)
869 881
870#define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir) \ 882#define CAMELLIA_ROUNDSM(xl, xr, kl, kr, yl, yr, il, ir) \
@@ -880,7 +892,7 @@ static void camellia_setup192(const unsigned char *key, u32 *subkey)
880 il ^= kl; \ 892 il ^= kl; \
881 ir ^= il ^ kr; \ 893 ir ^= il ^ kr; \
882 yl ^= ir; \ 894 yl ^= ir; \
883 yr ^= ror32(il, 8) ^ ir; \ 895 yr ^= ROR8(il) ^ ir; \
884 } while(0) 896 } while(0)
885 897
886/* max = 24: 128bit encrypt, max = 32: 256bit encrypt */ 898/* max = 24: 128bit encrypt, max = 32: 256bit encrypt */
diff --git a/drivers/acpi/dispatcher/dsobject.c b/drivers/acpi/dispatcher/dsobject.c
index 1022e38994c2..0f2805899210 100644
--- a/drivers/acpi/dispatcher/dsobject.c
+++ b/drivers/acpi/dispatcher/dsobject.c
@@ -496,7 +496,7 @@ acpi_ds_build_internal_package_obj(struct acpi_walk_state *walk_state,
496 arg = arg->common.next; 496 arg = arg->common.next;
497 } 497 }
498 498
499 ACPI_ERROR((AE_INFO, 499 ACPI_WARNING((AE_INFO,
500 "Package List length (%X) larger than NumElements count (%X), truncated\n", 500 "Package List length (%X) larger than NumElements count (%X), truncated\n",
501 i, element_count)); 501 i, element_count));
502 } else if (i < element_count) { 502 } else if (i < element_count) {
diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
index d3f0a62efcc1..ee68ac54c0d4 100644
--- a/drivers/acpi/processor_core.c
+++ b/drivers/acpi/processor_core.c
@@ -138,7 +138,7 @@ static struct dmi_system_id __cpuinitdata processor_idle_dmi_table[] = {
138 { 138 {
139 set_no_mwait, "Extensa 5220", { 139 set_no_mwait, "Extensa 5220", {
140 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"), 140 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
141 DMI_MATCH(DMI_SYS_VENDOR, "ACER"), 141 DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
142 DMI_MATCH(DMI_PRODUCT_VERSION, "0100"), 142 DMI_MATCH(DMI_PRODUCT_VERSION, "0100"),
143 DMI_MATCH(DMI_BOARD_NAME, "Columbia") }, NULL}, 143 DMI_MATCH(DMI_BOARD_NAME, "Columbia") }, NULL},
144 {}, 144 {},
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 80e32093e977..80c251ec6d2a 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -71,7 +71,7 @@ static DEFINE_MUTEX(performance_mutex);
71 * 1 -> ignore _PPC totally -> forced by user through boot param 71 * 1 -> ignore _PPC totally -> forced by user through boot param
72 */ 72 */
73static int ignore_ppc = -1; 73static int ignore_ppc = -1;
74module_param(ignore_ppc, uint, 0644); 74module_param(ignore_ppc, int, 0644);
75MODULE_PARM_DESC(ignore_ppc, "If the frequency of your machine gets wrongly" \ 75MODULE_PARM_DESC(ignore_ppc, "If the frequency of your machine gets wrongly" \
76 "limited by BIOS, this should help"); 76 "limited by BIOS, this should help");
77 77
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index bcf2c70fca87..a4e3767b8c64 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -107,6 +107,13 @@ static int wait_transaction_complete(struct acpi_smb_hc *hc, int timeout)
107 if (wait_event_timeout(hc->wait, smb_check_done(hc), 107 if (wait_event_timeout(hc->wait, smb_check_done(hc),
108 msecs_to_jiffies(timeout))) 108 msecs_to_jiffies(timeout)))
109 return 0; 109 return 0;
110 /*
111 * After the timeout happens, OS will try to check the status of SMbus.
112 * If the status is what OS expected, it will be regarded as the bogus
113 * timeout.
114 */
115 if (smb_check_done(hc))
116 return 0;
110 else 117 else
111 return -ETIME; 118 return -ETIME;
112} 119}
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index c3419182c9a7..775c97a282bd 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -300,6 +300,8 @@ int __init acpi_table_init(void)
300 300
301static int __init acpi_parse_apic_instance(char *str) 301static int __init acpi_parse_apic_instance(char *str)
302{ 302{
303 if (!str)
304 return -EINVAL;
303 305
304 acpi_apic_instance = simple_strtoul(str, NULL, 0); 306 acpi_apic_instance = simple_strtoul(str, NULL, 0);
305 307
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index ae8494944c45..11c8c19f0fb7 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -448,8 +448,10 @@ config PATA_MARVELL
448 tristate "Marvell PATA support via legacy mode" 448 tristate "Marvell PATA support via legacy mode"
449 depends on PCI 449 depends on PCI
450 help 450 help
451 This option enables limited support for the Marvell 88SE6145 ATA 451 This option enables limited support for the Marvell 88SE61xx ATA
452 controller. 452 controllers. If you wish to use only the SATA ports then select
453 the AHCI driver alone. If you wish to the use the PATA port or
454 both SATA and PATA include this driver.
453 455
454 If unsure, say N. 456 If unsure, say N.
455 457
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index c729e6988bbb..2e1a7cb2ed5f 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -420,7 +420,7 @@ static const struct ata_port_info ahci_port_info[] = {
420 /* board_ahci_mv */ 420 /* board_ahci_mv */
421 { 421 {
422 AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ | AHCI_HFLAG_NO_MSI | 422 AHCI_HFLAGS (AHCI_HFLAG_NO_NCQ | AHCI_HFLAG_NO_MSI |
423 AHCI_HFLAG_MV_PATA), 423 AHCI_HFLAG_MV_PATA | AHCI_HFLAG_NO_PMP),
424 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 424 .flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
425 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA, 425 ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA,
426 .pio_mask = 0x1f, /* pio0-4 */ 426 .pio_mask = 0x1f, /* pio0-4 */
@@ -487,7 +487,9 @@ static const struct pci_device_id ahci_pci_tbl[] = {
487 { PCI_VDEVICE(INTEL, 0x3a05), board_ahci }, /* ICH10 */ 487 { PCI_VDEVICE(INTEL, 0x3a05), board_ahci }, /* ICH10 */
488 { PCI_VDEVICE(INTEL, 0x3a25), board_ahci }, /* ICH10 */ 488 { PCI_VDEVICE(INTEL, 0x3a25), board_ahci }, /* ICH10 */
489 { PCI_VDEVICE(INTEL, 0x3b24), board_ahci }, /* PCH RAID */ 489 { PCI_VDEVICE(INTEL, 0x3b24), board_ahci }, /* PCH RAID */
490 { PCI_VDEVICE(INTEL, 0x3b25), board_ahci }, /* PCH RAID */
490 { PCI_VDEVICE(INTEL, 0x3b2b), board_ahci }, /* PCH RAID */ 491 { PCI_VDEVICE(INTEL, 0x3b2b), board_ahci }, /* PCH RAID */
492 { PCI_VDEVICE(INTEL, 0x3b2c), board_ahci }, /* PCH RAID */
491 493
492 /* JMicron 360/1/3/5/6, match class to avoid IDE function */ 494 /* JMicron 360/1/3/5/6, match class to avoid IDE function */
493 { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 495 { PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID,
@@ -610,6 +612,15 @@ module_param(ahci_em_messages, int, 0444);
610MODULE_PARM_DESC(ahci_em_messages, 612MODULE_PARM_DESC(ahci_em_messages,
611 "Set AHCI Enclosure Management Message type (0 = disabled, 1 = LED"); 613 "Set AHCI Enclosure Management Message type (0 = disabled, 1 = LED");
612 614
615#if defined(CONFIG_PATA_MARVELL) || defined(CONFIG_PATA_MARVELL_MODULE)
616static int marvell_enable;
617#else
618static int marvell_enable = 1;
619#endif
620module_param(marvell_enable, int, 0644);
621MODULE_PARM_DESC(marvell_enable, "Marvell SATA via AHCI (1 = enabled)");
622
623
613static inline int ahci_nr_ports(u32 cap) 624static inline int ahci_nr_ports(u32 cap)
614{ 625{
615 return (cap & 0x1f) + 1; 626 return (cap & 0x1f) + 1;
@@ -732,6 +743,8 @@ static void ahci_save_initial_config(struct pci_dev *pdev,
732 "MV_AHCI HACK: port_map %x -> %x\n", 743 "MV_AHCI HACK: port_map %x -> %x\n",
733 port_map, 744 port_map,
734 port_map & mv); 745 port_map & mv);
746 dev_printk(KERN_ERR, &pdev->dev,
747 "Disabling your PATA port. Use the boot option 'ahci.marvell_enable=0' to avoid this.\n");
735 748
736 port_map &= mv; 749 port_map &= mv;
737 } 750 }
@@ -2533,6 +2546,12 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
2533 if (!printed_version++) 2546 if (!printed_version++)
2534 dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n"); 2547 dev_printk(KERN_DEBUG, &pdev->dev, "version " DRV_VERSION "\n");
2535 2548
2549 /* The AHCI driver can only drive the SATA ports, the PATA driver
2550 can drive them all so if both drivers are selected make sure
2551 AHCI stays out of the way */
2552 if (pdev->vendor == PCI_VENDOR_ID_MARVELL && !marvell_enable)
2553 return -ENODEV;
2554
2536 /* acquire resources */ 2555 /* acquire resources */
2537 rc = pcim_enable_device(pdev); 2556 rc = pcim_enable_device(pdev);
2538 if (rc) 2557 if (rc)
diff --git a/drivers/ata/ata_piix.c b/drivers/ata/ata_piix.c
index b1d08a8f5003..e6b4606e36b6 100644
--- a/drivers/ata/ata_piix.c
+++ b/drivers/ata/ata_piix.c
@@ -1499,7 +1499,7 @@ static int __devinit piix_init_one(struct pci_dev *pdev,
1499 * off. 1499 * off.
1500 */ 1500 */
1501 if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2652) { 1501 if (pdev->vendor == PCI_VENDOR_ID_INTEL && pdev->device == 0x2652) {
1502 int rc = piix_disable_ahci(pdev); 1502 rc = piix_disable_ahci(pdev);
1503 if (rc) 1503 if (rc)
1504 return rc; 1504 return rc;
1505 } 1505 }
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c
index 304fdc6f1dc2..2a4c516894f0 100644
--- a/drivers/ata/libata-sff.c
+++ b/drivers/ata/libata-sff.c
@@ -1315,11 +1315,6 @@ fsm_start:
1315 break; 1315 break;
1316 1316
1317 case HSM_ST_ERR: 1317 case HSM_ST_ERR:
1318 /* make sure qc->err_mask is available to
1319 * know what's wrong and recover
1320 */
1321 WARN_ON(!(qc->err_mask & (AC_ERR_DEV | AC_ERR_HSM)));
1322
1323 ap->hsm_task_state = HSM_ST_IDLE; 1318 ap->hsm_task_state = HSM_ST_IDLE;
1324 1319
1325 /* complete taskfile transaction */ 1320 /* complete taskfile transaction */
diff --git a/drivers/ata/pata_marvell.c b/drivers/ata/pata_marvell.c
index 24a011b25024..0d87eec84966 100644
--- a/drivers/ata/pata_marvell.c
+++ b/drivers/ata/pata_marvell.c
@@ -20,29 +20,30 @@
20#include <linux/ata.h> 20#include <linux/ata.h>
21 21
22#define DRV_NAME "pata_marvell" 22#define DRV_NAME "pata_marvell"
23#define DRV_VERSION "0.1.4" 23#define DRV_VERSION "0.1.6"
24 24
25/** 25/**
26 * marvell_pre_reset - check for 40/80 pin 26 * marvell_pata_active - check if PATA is active
27 * @link: link 27 * @pdev: PCI device
28 * @deadline: deadline jiffies for the operation
29 * 28 *
30 * Perform the PATA port setup we need. 29 * Returns 1 if the PATA port may be active. We know how to check this
30 * for the 6145 but not the other devices
31 */ 31 */
32 32
33static int marvell_pre_reset(struct ata_link *link, unsigned long deadline) 33static int marvell_pata_active(struct pci_dev *pdev)
34{ 34{
35 struct ata_port *ap = link->ap; 35 int i;
36 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
37 u32 devices; 36 u32 devices;
38 void __iomem *barp; 37 void __iomem *barp;
39 int i;
40 38
41 /* Check if our port is enabled */ 39 /* We don't yet know how to do this for other devices */
40 if (pdev->device != 0x6145)
41 return 1;
42 42
43 barp = pci_iomap(pdev, 5, 0x10); 43 barp = pci_iomap(pdev, 5, 0x10);
44 if (barp == NULL) 44 if (barp == NULL)
45 return -ENOMEM; 45 return -ENOMEM;
46
46 printk("BAR5:"); 47 printk("BAR5:");
47 for(i = 0; i <= 0x0F; i++) 48 for(i = 0; i <= 0x0F; i++)
48 printk("%02X:%02X ", i, ioread8(barp + i)); 49 printk("%02X:%02X ", i, ioread8(barp + i));
@@ -51,9 +52,27 @@ static int marvell_pre_reset(struct ata_link *link, unsigned long deadline)
51 devices = ioread32(barp + 0x0C); 52 devices = ioread32(barp + 0x0C);
52 pci_iounmap(pdev, barp); 53 pci_iounmap(pdev, barp);
53 54
54 if ((pdev->device == 0x6145) && (ap->port_no == 0) && 55 if (devices & 0x10)
55 (!(devices & 0x10))) /* PATA enable ? */ 56 return 1;
56 return -ENOENT; 57 return 0;
58}
59
60/**
61 * marvell_pre_reset - check for 40/80 pin
62 * @link: link
63 * @deadline: deadline jiffies for the operation
64 *
65 * Perform the PATA port setup we need.
66 */
67
68static int marvell_pre_reset(struct ata_link *link, unsigned long deadline)
69{
70 struct ata_port *ap = link->ap;
71 struct pci_dev *pdev = to_pci_dev(ap->host->dev);
72
73 if (pdev->device == 0x6145 && ap->port_no == 0 &&
74 !marvell_pata_active(pdev)) /* PATA enable ? */
75 return -ENOENT;
57 76
58 return ata_sff_prereset(link, deadline); 77 return ata_sff_prereset(link, deadline);
59} 78}
@@ -128,6 +147,12 @@ static int marvell_init_one (struct pci_dev *pdev, const struct pci_device_id *i
128 if (pdev->device == 0x6101) 147 if (pdev->device == 0x6101)
129 ppi[1] = &ata_dummy_port_info; 148 ppi[1] = &ata_dummy_port_info;
130 149
150#if defined(CONFIG_AHCI) || defined(CONFIG_AHCI_MODULE)
151 if (!marvell_pata_active(pdev)) {
152 printk(KERN_INFO DRV_NAME ": PATA port not active, deferring to AHCI driver.\n");
153 return -ENODEV;
154 }
155#endif
131 return ata_pci_sff_init_one(pdev, ppi, &marvell_sht, NULL); 156 return ata_pci_sff_init_one(pdev, ppi, &marvell_sht, NULL);
132} 157}
133 158
diff --git a/drivers/ata/pata_sil680.c b/drivers/ata/pata_sil680.c
index 720b8645f58a..e970b227fbce 100644
--- a/drivers/ata/pata_sil680.c
+++ b/drivers/ata/pata_sil680.c
@@ -322,9 +322,6 @@ static int __devinit sil680_init_one(struct pci_dev *pdev,
322 /* Try to acquire MMIO resources and fallback to PIO if 322 /* Try to acquire MMIO resources and fallback to PIO if
323 * that fails 323 * that fails
324 */ 324 */
325 rc = pcim_enable_device(pdev);
326 if (rc)
327 return rc;
328 rc = pcim_iomap_regions(pdev, 1 << SIL680_MMIO_BAR, DRV_NAME); 325 rc = pcim_iomap_regions(pdev, 1 << SIL680_MMIO_BAR, DRV_NAME);
329 if (rc) 326 if (rc)
330 goto use_ioports; 327 goto use_ioports;
diff --git a/drivers/ata/sata_inic162x.c b/drivers/ata/sata_inic162x.c
index 3ead02fe379e..5032c32fa505 100644
--- a/drivers/ata/sata_inic162x.c
+++ b/drivers/ata/sata_inic162x.c
@@ -96,6 +96,7 @@ enum {
96 PORT_SCR = 0x20, 96 PORT_SCR = 0x20,
97 97
98 /* HOST_CTL bits */ 98 /* HOST_CTL bits */
99 HCTL_LEDEN = (1 << 3), /* enable LED operation */
99 HCTL_IRQOFF = (1 << 8), /* global IRQ off */ 100 HCTL_IRQOFF = (1 << 8), /* global IRQ off */
100 HCTL_FTHD0 = (1 << 10), /* fifo threshold 0 */ 101 HCTL_FTHD0 = (1 << 10), /* fifo threshold 0 */
101 HCTL_FTHD1 = (1 << 11), /* fifo threshold 1*/ 102 HCTL_FTHD1 = (1 << 11), /* fifo threshold 1*/
@@ -540,7 +541,7 @@ static unsigned int inic_qc_issue(struct ata_queued_cmd *qc)
540 void __iomem *port_base = inic_port_base(ap); 541 void __iomem *port_base = inic_port_base(ap);
541 542
542 /* fire up the ADMA engine */ 543 /* fire up the ADMA engine */
543 writew(HCTL_FTHD0, port_base + HOST_CTL); 544 writew(HCTL_FTHD0 | HCTL_LEDEN, port_base + HOST_CTL);
544 writew(IDMA_CTL_GO, port_base + PORT_IDMA_CTL); 545 writew(IDMA_CTL_GO, port_base + PORT_IDMA_CTL);
545 writeb(0, port_base + PORT_CPB_PTQFIFO); 546 writeb(0, port_base + PORT_CPB_PTQFIFO);
546 547
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index 13c1d2af18ac..c815f8ecf6e6 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -667,7 +667,8 @@ static const struct pci_device_id mv_pci_tbl[] = {
667 { PCI_VDEVICE(MARVELL, 0x5041), chip_504x }, 667 { PCI_VDEVICE(MARVELL, 0x5041), chip_504x },
668 { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 }, 668 { PCI_VDEVICE(MARVELL, 0x5080), chip_5080 },
669 { PCI_VDEVICE(MARVELL, 0x5081), chip_508x }, 669 { PCI_VDEVICE(MARVELL, 0x5081), chip_508x },
670 /* RocketRAID 1740/174x have different identifiers */ 670 /* RocketRAID 1720/174x have different identifiers */
671 { PCI_VDEVICE(TTI, 0x1720), chip_6042 },
671 { PCI_VDEVICE(TTI, 0x1740), chip_508x }, 672 { PCI_VDEVICE(TTI, 0x1740), chip_508x },
672 { PCI_VDEVICE(TTI, 0x1742), chip_508x }, 673 { PCI_VDEVICE(TTI, 0x1742), chip_508x },
673 674
diff --git a/drivers/ata/sata_nv.c b/drivers/ata/sata_nv.c
index 858f70610eda..1e1f3f3757ae 100644
--- a/drivers/ata/sata_nv.c
+++ b/drivers/ata/sata_nv.c
@@ -309,8 +309,6 @@ static void nv_nf2_freeze(struct ata_port *ap);
309static void nv_nf2_thaw(struct ata_port *ap); 309static void nv_nf2_thaw(struct ata_port *ap);
310static void nv_ck804_freeze(struct ata_port *ap); 310static void nv_ck804_freeze(struct ata_port *ap);
311static void nv_ck804_thaw(struct ata_port *ap); 311static void nv_ck804_thaw(struct ata_port *ap);
312static int nv_hardreset(struct ata_link *link, unsigned int *class,
313 unsigned long deadline);
314static int nv_adma_slave_config(struct scsi_device *sdev); 312static int nv_adma_slave_config(struct scsi_device *sdev);
315static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc); 313static int nv_adma_check_atapi_dma(struct ata_queued_cmd *qc);
316static void nv_adma_qc_prep(struct ata_queued_cmd *qc); 314static void nv_adma_qc_prep(struct ata_queued_cmd *qc);
@@ -407,7 +405,7 @@ static struct scsi_host_template nv_swncq_sht = {
407 405
408static struct ata_port_operations nv_generic_ops = { 406static struct ata_port_operations nv_generic_ops = {
409 .inherits = &ata_bmdma_port_ops, 407 .inherits = &ata_bmdma_port_ops,
410 .hardreset = nv_hardreset, 408 .hardreset = ATA_OP_NULL,
411 .scr_read = nv_scr_read, 409 .scr_read = nv_scr_read,
412 .scr_write = nv_scr_write, 410 .scr_write = nv_scr_write,
413}; 411};
@@ -1588,21 +1586,6 @@ static void nv_mcp55_thaw(struct ata_port *ap)
1588 ata_sff_thaw(ap); 1586 ata_sff_thaw(ap);
1589} 1587}
1590 1588
1591static int nv_hardreset(struct ata_link *link, unsigned int *class,
1592 unsigned long deadline)
1593{
1594 int rc;
1595
1596 /* SATA hardreset fails to retrieve proper device signature on
1597 * some controllers. Request follow up SRST. For more info,
1598 * see http://bugzilla.kernel.org/show_bug.cgi?id=3352
1599 */
1600 rc = sata_sff_hardreset(link, class, deadline);
1601 if (rc)
1602 return rc;
1603 return -EAGAIN;
1604}
1605
1606static void nv_adma_error_handler(struct ata_port *ap) 1589static void nv_adma_error_handler(struct ata_port *ap)
1607{ 1590{
1608 struct nv_adma_port_priv *pp = ap->private_data; 1591 struct nv_adma_port_priv *pp = ap->private_data;
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
index 158eed4d5161..29b7a648cc6e 100644
--- a/drivers/block/pktcdvd.c
+++ b/drivers/block/pktcdvd.c
@@ -49,7 +49,6 @@
49#include <linux/types.h> 49#include <linux/types.h>
50#include <linux/kernel.h> 50#include <linux/kernel.h>
51#include <linux/kthread.h> 51#include <linux/kthread.h>
52#include <linux/smp_lock.h>
53#include <linux/errno.h> 52#include <linux/errno.h>
54#include <linux/spinlock.h> 53#include <linux/spinlock.h>
55#include <linux/file.h> 54#include <linux/file.h>
@@ -2798,14 +2797,9 @@ out_mem:
2798 return ret; 2797 return ret;
2799} 2798}
2800 2799
2801static long pkt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) 2800static int pkt_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
2802{ 2801{
2803 struct inode *inode = file->f_path.dentry->d_inode; 2802 struct pktcdvd_device *pd = inode->i_bdev->bd_disk->private_data;
2804 struct pktcdvd_device *pd;
2805 long ret;
2806
2807 lock_kernel();
2808 pd = inode->i_bdev->bd_disk->private_data;
2809 2803
2810 VPRINTK("pkt_ioctl: cmd %x, dev %d:%d\n", cmd, imajor(inode), iminor(inode)); 2804 VPRINTK("pkt_ioctl: cmd %x, dev %d:%d\n", cmd, imajor(inode), iminor(inode));
2811 2805
@@ -2818,8 +2812,7 @@ static long pkt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2818 case CDROM_LAST_WRITTEN: 2812 case CDROM_LAST_WRITTEN:
2819 case CDROM_SEND_PACKET: 2813 case CDROM_SEND_PACKET:
2820 case SCSI_IOCTL_SEND_COMMAND: 2814 case SCSI_IOCTL_SEND_COMMAND:
2821 ret = blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg); 2815 return blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg);
2822 break;
2823 2816
2824 case CDROMEJECT: 2817 case CDROMEJECT:
2825 /* 2818 /*
@@ -2828,15 +2821,14 @@ static long pkt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
2828 */ 2821 */
2829 if (pd->refcnt == 1) 2822 if (pd->refcnt == 1)
2830 pkt_lock_door(pd, 0); 2823 pkt_lock_door(pd, 0);
2831 ret = blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg); 2824 return blkdev_ioctl(pd->bdev->bd_inode, file, cmd, arg);
2832 break;
2833 2825
2834 default: 2826 default:
2835 VPRINTK(DRIVER_NAME": Unknown ioctl for %s (%x)\n", pd->name, cmd); 2827 VPRINTK(DRIVER_NAME": Unknown ioctl for %s (%x)\n", pd->name, cmd);
2836 ret = -ENOTTY; 2828 return -ENOTTY;
2837 } 2829 }
2838 unlock_kernel(); 2830
2839 return ret; 2831 return 0;
2840} 2832}
2841 2833
2842static int pkt_media_changed(struct gendisk *disk) 2834static int pkt_media_changed(struct gendisk *disk)
@@ -2858,7 +2850,7 @@ static struct block_device_operations pktcdvd_ops = {
2858 .owner = THIS_MODULE, 2850 .owner = THIS_MODULE,
2859 .open = pkt_open, 2851 .open = pkt_open,
2860 .release = pkt_close, 2852 .release = pkt_close,
2861 .unlocked_ioctl = pkt_ioctl, 2853 .ioctl = pkt_ioctl,
2862 .media_changed = pkt_media_changed, 2854 .media_changed = pkt_media_changed,
2863}; 2855};
2864 2856
@@ -3023,8 +3015,7 @@ static void pkt_get_status(struct pkt_ctrl_command *ctrl_cmd)
3023 mutex_unlock(&ctl_mutex); 3015 mutex_unlock(&ctl_mutex);
3024} 3016}
3025 3017
3026static long pkt_ctl_ioctl(struct file *file, unsigned int cmd, 3018static int pkt_ctl_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
3027 unsigned long arg)
3028{ 3019{
3029 void __user *argp = (void __user *)arg; 3020 void __user *argp = (void __user *)arg;
3030 struct pkt_ctrl_command ctrl_cmd; 3021 struct pkt_ctrl_command ctrl_cmd;
@@ -3041,22 +3032,16 @@ static long pkt_ctl_ioctl(struct file *file, unsigned int cmd,
3041 case PKT_CTRL_CMD_SETUP: 3032 case PKT_CTRL_CMD_SETUP:
3042 if (!capable(CAP_SYS_ADMIN)) 3033 if (!capable(CAP_SYS_ADMIN))
3043 return -EPERM; 3034 return -EPERM;
3044 lock_kernel();
3045 ret = pkt_setup_dev(new_decode_dev(ctrl_cmd.dev), &pkt_dev); 3035 ret = pkt_setup_dev(new_decode_dev(ctrl_cmd.dev), &pkt_dev);
3046 ctrl_cmd.pkt_dev = new_encode_dev(pkt_dev); 3036 ctrl_cmd.pkt_dev = new_encode_dev(pkt_dev);
3047 unlock_kernel();
3048 break; 3037 break;
3049 case PKT_CTRL_CMD_TEARDOWN: 3038 case PKT_CTRL_CMD_TEARDOWN:
3050 if (!capable(CAP_SYS_ADMIN)) 3039 if (!capable(CAP_SYS_ADMIN))
3051 return -EPERM; 3040 return -EPERM;
3052 lock_kernel();
3053 ret = pkt_remove_dev(new_decode_dev(ctrl_cmd.pkt_dev)); 3041 ret = pkt_remove_dev(new_decode_dev(ctrl_cmd.pkt_dev));
3054 unlock_kernel();
3055 break; 3042 break;
3056 case PKT_CTRL_CMD_STATUS: 3043 case PKT_CTRL_CMD_STATUS:
3057 lock_kernel();
3058 pkt_get_status(&ctrl_cmd); 3044 pkt_get_status(&ctrl_cmd);
3059 unlock_kernel();
3060 break; 3045 break;
3061 default: 3046 default:
3062 return -ENOTTY; 3047 return -ENOTTY;
@@ -3069,7 +3054,7 @@ static long pkt_ctl_ioctl(struct file *file, unsigned int cmd,
3069 3054
3070 3055
3071static const struct file_operations pkt_ctl_fops = { 3056static const struct file_operations pkt_ctl_fops = {
3072 .unlocked_ioctl = pkt_ctl_ioctl, 3057 .ioctl = pkt_ctl_ioctl,
3073 .owner = THIS_MODULE, 3058 .owner = THIS_MODULE,
3074}; 3059};
3075 3060
diff --git a/drivers/char/random.c b/drivers/char/random.c
index 1838aa3d24fe..7ce1ac4baa6d 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -407,7 +407,7 @@ struct entropy_store {
407 /* read-write data: */ 407 /* read-write data: */
408 spinlock_t lock; 408 spinlock_t lock;
409 unsigned add_ptr; 409 unsigned add_ptr;
410 int entropy_count; 410 int entropy_count; /* Must at no time exceed ->POOLBITS! */
411 int input_rotate; 411 int input_rotate;
412}; 412};
413 413
@@ -520,6 +520,7 @@ static void mix_pool_bytes(struct entropy_store *r, const void *in, int bytes)
520static void credit_entropy_bits(struct entropy_store *r, int nbits) 520static void credit_entropy_bits(struct entropy_store *r, int nbits)
521{ 521{
522 unsigned long flags; 522 unsigned long flags;
523 int entropy_count;
523 524
524 if (!nbits) 525 if (!nbits)
525 return; 526 return;
@@ -527,20 +528,20 @@ static void credit_entropy_bits(struct entropy_store *r, int nbits)
527 spin_lock_irqsave(&r->lock, flags); 528 spin_lock_irqsave(&r->lock, flags);
528 529
529 DEBUG_ENT("added %d entropy credits to %s\n", nbits, r->name); 530 DEBUG_ENT("added %d entropy credits to %s\n", nbits, r->name);
530 r->entropy_count += nbits; 531 entropy_count = r->entropy_count;
531 if (r->entropy_count < 0) { 532 entropy_count += nbits;
533 if (entropy_count < 0) {
532 DEBUG_ENT("negative entropy/overflow\n"); 534 DEBUG_ENT("negative entropy/overflow\n");
533 r->entropy_count = 0; 535 entropy_count = 0;
534 } else if (r->entropy_count > r->poolinfo->POOLBITS) 536 } else if (entropy_count > r->poolinfo->POOLBITS)
535 r->entropy_count = r->poolinfo->POOLBITS; 537 entropy_count = r->poolinfo->POOLBITS;
538 r->entropy_count = entropy_count;
536 539
537 /* should we wake readers? */ 540 /* should we wake readers? */
538 if (r == &input_pool && 541 if (r == &input_pool && entropy_count >= random_read_wakeup_thresh) {
539 r->entropy_count >= random_read_wakeup_thresh) {
540 wake_up_interruptible(&random_read_wait); 542 wake_up_interruptible(&random_read_wait);
541 kill_fasync(&fasync, SIGIO, POLL_IN); 543 kill_fasync(&fasync, SIGIO, POLL_IN);
542 } 544 }
543
544 spin_unlock_irqrestore(&r->lock, flags); 545 spin_unlock_irqrestore(&r->lock, flags);
545} 546}
546 547
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
index a27160ba21d7..daeb8f766971 100644
--- a/drivers/char/tty_io.c
+++ b/drivers/char/tty_io.c
@@ -2498,7 +2498,7 @@ static int tiocgwinsz(struct tty_struct *tty, struct winsize __user *arg)
2498/** 2498/**
2499 * tty_do_resize - resize event 2499 * tty_do_resize - resize event
2500 * @tty: tty being resized 2500 * @tty: tty being resized
2501 * @real_tty: real tty (if using a pty/tty pair) 2501 * @real_tty: real tty (not the same as tty if using a pty/tty pair)
2502 * @rows: rows (character) 2502 * @rows: rows (character)
2503 * @cols: cols (character) 2503 * @cols: cols (character)
2504 * 2504 *
@@ -2512,7 +2512,8 @@ int tty_do_resize(struct tty_struct *tty, struct tty_struct *real_tty,
2512 struct pid *pgrp, *rpgrp; 2512 struct pid *pgrp, *rpgrp;
2513 unsigned long flags; 2513 unsigned long flags;
2514 2514
2515 mutex_lock(&tty->termios_mutex); 2515 /* For a PTY we need to lock the tty side */
2516 mutex_lock(&real_tty->termios_mutex);
2516 if (!memcmp(ws, &tty->winsize, sizeof(*ws))) 2517 if (!memcmp(ws, &tty->winsize, sizeof(*ws)))
2517 goto done; 2518 goto done;
2518 /* Get the PID values and reference them so we can 2519 /* Get the PID values and reference them so we can
@@ -2533,7 +2534,7 @@ int tty_do_resize(struct tty_struct *tty, struct tty_struct *real_tty,
2533 tty->winsize = *ws; 2534 tty->winsize = *ws;
2534 real_tty->winsize = *ws; 2535 real_tty->winsize = *ws;
2535done: 2536done:
2536 mutex_unlock(&tty->termios_mutex); 2537 mutex_unlock(&real_tty->termios_mutex);
2537 return 0; 2538 return 0;
2538} 2539}
2539 2540
diff --git a/drivers/char/tty_ioctl.c b/drivers/char/tty_ioctl.c
index ea9fc5d03b99..bf34e4597421 100644
--- a/drivers/char/tty_ioctl.c
+++ b/drivers/char/tty_ioctl.c
@@ -937,12 +937,14 @@ int tty_mode_ioctl(struct tty_struct *tty, struct file *file,
937 return 0; 937 return 0;
938#endif 938#endif
939 case TIOCGSOFTCAR: 939 case TIOCGSOFTCAR:
940 return put_user(C_CLOCAL(tty) ? 1 : 0, 940 /* FIXME: for correctness we may need to take the termios
941 lock here - review */
942 return put_user(C_CLOCAL(real_tty) ? 1 : 0,
941 (int __user *)arg); 943 (int __user *)arg);
942 case TIOCSSOFTCAR: 944 case TIOCSSOFTCAR:
943 if (get_user(arg, (unsigned int __user *) arg)) 945 if (get_user(arg, (unsigned int __user *) arg))
944 return -EFAULT; 946 return -EFAULT;
945 return tty_change_softcar(tty, arg); 947 return tty_change_softcar(real_tty, arg);
946 default: 948 default:
947 return -ENOIOCTLCMD; 949 return -ENOIOCTLCMD;
948 } 950 }
diff --git a/drivers/clocksource/acpi_pm.c b/drivers/clocksource/acpi_pm.c
index 5ca1d80de182..4eee533f3f4a 100644
--- a/drivers/clocksource/acpi_pm.c
+++ b/drivers/clocksource/acpi_pm.c
@@ -21,6 +21,7 @@
21#include <linux/errno.h> 21#include <linux/errno.h>
22#include <linux/init.h> 22#include <linux/init.h>
23#include <linux/pci.h> 23#include <linux/pci.h>
24#include <linux/delay.h>
24#include <asm/io.h> 25#include <asm/io.h>
25 26
26/* 27/*
@@ -151,13 +152,13 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_LE,
151 */ 152 */
152static int verify_pmtmr_rate(void) 153static int verify_pmtmr_rate(void)
153{ 154{
154 u32 value1, value2; 155 cycle_t value1, value2;
155 unsigned long count, delta; 156 unsigned long count, delta;
156 157
157 mach_prepare_counter(); 158 mach_prepare_counter();
158 value1 = read_pmtmr(); 159 value1 = clocksource_acpi_pm.read();
159 mach_countup(&count); 160 mach_countup(&count);
160 value2 = read_pmtmr(); 161 value2 = clocksource_acpi_pm.read();
161 delta = (value2 - value1) & ACPI_PM_MASK; 162 delta = (value2 - value1) & ACPI_PM_MASK;
162 163
163 /* Check that the PMTMR delta is within 5% of what we expect */ 164 /* Check that the PMTMR delta is within 5% of what we expect */
@@ -175,10 +176,13 @@ static int verify_pmtmr_rate(void)
175#define verify_pmtmr_rate() (0) 176#define verify_pmtmr_rate() (0)
176#endif 177#endif
177 178
179/* Number of monotonicity checks to perform during initialization */
180#define ACPI_PM_MONOTONICITY_CHECKS 10
181
178static int __init init_acpi_pm_clocksource(void) 182static int __init init_acpi_pm_clocksource(void)
179{ 183{
180 u32 value1, value2; 184 cycle_t value1, value2;
181 unsigned int i; 185 unsigned int i, j, good = 0;
182 186
183 if (!pmtmr_ioport) 187 if (!pmtmr_ioport)
184 return -ENODEV; 188 return -ENODEV;
@@ -187,24 +191,32 @@ static int __init init_acpi_pm_clocksource(void)
187 clocksource_acpi_pm.shift); 191 clocksource_acpi_pm.shift);
188 192
189 /* "verify" this timing source: */ 193 /* "verify" this timing source: */
190 value1 = read_pmtmr(); 194 for (j = 0; j < ACPI_PM_MONOTONICITY_CHECKS; j++) {
191 for (i = 0; i < 10000; i++) { 195 value1 = clocksource_acpi_pm.read();
192 value2 = read_pmtmr(); 196 for (i = 0; i < 10000; i++) {
193 if (value2 == value1) 197 value2 = clocksource_acpi_pm.read();
194 continue; 198 if (value2 == value1)
195 if (value2 > value1) 199 continue;
196 goto pm_good; 200 if (value2 > value1)
197 if ((value2 < value1) && ((value2) < 0xFFF)) 201 good++;
198 goto pm_good; 202 break;
199 printk(KERN_INFO "PM-Timer had inconsistent results:" 203 if ((value2 < value1) && ((value2) < 0xFFF))
200 " 0x%#x, 0x%#x - aborting.\n", value1, value2); 204 good++;
201 return -EINVAL; 205 break;
206 printk(KERN_INFO "PM-Timer had inconsistent results:"
207 " 0x%#llx, 0x%#llx - aborting.\n",
208 value1, value2);
209 return -EINVAL;
210 }
211 udelay(300 * i);
212 }
213
214 if (good != ACPI_PM_MONOTONICITY_CHECKS) {
215 printk(KERN_INFO "PM-Timer failed consistency check "
216 " (0x%#llx) - aborting.\n", value1);
217 return -ENODEV;
202 } 218 }
203 printk(KERN_INFO "PM-Timer had no reasonable result:"
204 " 0x%#x - aborting.\n", value1);
205 return -ENODEV;
206 219
207pm_good:
208 if (verify_pmtmr_rate() != 0) 220 if (verify_pmtmr_rate() != 0)
209 return -ENODEV; 221 return -ENODEV;
210 222
diff --git a/drivers/crypto/talitos.c b/drivers/crypto/talitos.c
index ee827a7f7c6a..b6ad3ac5916e 100644
--- a/drivers/crypto/talitos.c
+++ b/drivers/crypto/talitos.c
@@ -1157,6 +1157,8 @@ static int aead_authenc_givencrypt(
1157 edesc->desc.hdr = ctx->desc_hdr_template | DESC_HDR_MODE0_ENCRYPT; 1157 edesc->desc.hdr = ctx->desc_hdr_template | DESC_HDR_MODE0_ENCRYPT;
1158 1158
1159 memcpy(req->giv, ctx->iv, crypto_aead_ivsize(authenc)); 1159 memcpy(req->giv, ctx->iv, crypto_aead_ivsize(authenc));
1160 /* avoid consecutive packets going out with same IV */
1161 *(__be64 *)req->giv ^= cpu_to_be64(req->seq);
1160 1162
1161 return ipsec_esp(edesc, areq, req->giv, req->seq, 1163 return ipsec_esp(edesc, areq, req->giv, req->seq,
1162 ipsec_esp_encrypt_done); 1164 ipsec_esp_encrypt_done);
@@ -1449,6 +1451,8 @@ static int talitos_probe(struct of_device *ofdev,
1449 1451
1450 priv->ofdev = ofdev; 1452 priv->ofdev = ofdev;
1451 1453
1454 INIT_LIST_HEAD(&priv->alg_list);
1455
1452 tasklet_init(&priv->done_task, talitos_done, (unsigned long)dev); 1456 tasklet_init(&priv->done_task, talitos_done, (unsigned long)dev);
1453 tasklet_init(&priv->error_task, talitos_error, (unsigned long)dev); 1457 tasklet_init(&priv->error_task, talitos_error, (unsigned long)dev);
1454 1458
@@ -1575,8 +1579,6 @@ static int talitos_probe(struct of_device *ofdev,
1575 } 1579 }
1576 1580
1577 /* register crypto algorithms the device supports */ 1581 /* register crypto algorithms the device supports */
1578 INIT_LIST_HEAD(&priv->alg_list);
1579
1580 for (i = 0; i < ARRAY_SIZE(driver_algs); i++) { 1582 for (i = 0; i < ARRAY_SIZE(driver_algs); i++) {
1581 if (hw_supports(dev, driver_algs[i].desc_hdr_template)) { 1583 if (hw_supports(dev, driver_algs[i].desc_hdr_template)) {
1582 struct talitos_crypto_alg *t_alg; 1584 struct talitos_crypto_alg *t_alg;
diff --git a/drivers/firmware/iscsi_ibft.c b/drivers/firmware/iscsi_ibft.c
index 8024e3bfd877..b91ef63126ed 100644
--- a/drivers/firmware/iscsi_ibft.c
+++ b/drivers/firmware/iscsi_ibft.c
@@ -669,8 +669,7 @@ static int __init ibft_register_kobjects(struct ibft_table_header *header,
669 669
670 control = (void *)header + sizeof(*header); 670 control = (void *)header + sizeof(*header);
671 end = (void *)control + control->hdr.length; 671 end = (void *)control + control->hdr.length;
672 eot_offset = (void *)header + header->length - 672 eot_offset = (void *)header + header->length - (void *)control;
673 (void *)control - sizeof(*header);
674 rc = ibft_verify_hdr("control", (struct ibft_hdr *)control, id_control, 673 rc = ibft_verify_hdr("control", (struct ibft_hdr *)control, id_control,
675 sizeof(*control)); 674 sizeof(*control));
676 675
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
index 089c015c01d1..53f0e5af1cc8 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -400,27 +400,31 @@ static void drm_locked_tasklet_func(unsigned long data)
400{ 400{
401 struct drm_device *dev = (struct drm_device *)data; 401 struct drm_device *dev = (struct drm_device *)data;
402 unsigned long irqflags; 402 unsigned long irqflags;
403 403 void (*tasklet_func)(struct drm_device *);
404
404 spin_lock_irqsave(&dev->tasklet_lock, irqflags); 405 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
406 tasklet_func = dev->locked_tasklet_func;
407 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
405 408
406 if (!dev->locked_tasklet_func || 409 if (!tasklet_func ||
407 !drm_lock_take(&dev->lock, 410 !drm_lock_take(&dev->lock,
408 DRM_KERNEL_CONTEXT)) { 411 DRM_KERNEL_CONTEXT)) {
409 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
410 return; 412 return;
411 } 413 }
412 414
413 dev->lock.lock_time = jiffies; 415 dev->lock.lock_time = jiffies;
414 atomic_inc(&dev->counts[_DRM_STAT_LOCKS]); 416 atomic_inc(&dev->counts[_DRM_STAT_LOCKS]);
415 417
416 dev->locked_tasklet_func(dev); 418 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
419 tasklet_func = dev->locked_tasklet_func;
420 dev->locked_tasklet_func = NULL;
421 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
422
423 if (tasklet_func != NULL)
424 tasklet_func(dev);
417 425
418 drm_lock_free(&dev->lock, 426 drm_lock_free(&dev->lock,
419 DRM_KERNEL_CONTEXT); 427 DRM_KERNEL_CONTEXT);
420
421 dev->locked_tasklet_func = NULL;
422
423 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
424} 428}
425 429
426/** 430/**
diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
index 0998723cde79..a4caf95485d7 100644
--- a/drivers/gpu/drm/drm_lock.c
+++ b/drivers/gpu/drm/drm_lock.c
@@ -105,14 +105,19 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv)
105 ret ? "interrupted" : "has lock"); 105 ret ? "interrupted" : "has lock");
106 if (ret) return ret; 106 if (ret) return ret;
107 107
108 sigemptyset(&dev->sigmask); 108 /* don't set the block all signals on the master process for now
109 sigaddset(&dev->sigmask, SIGSTOP); 109 * really probably not the correct answer but lets us debug xkb
110 sigaddset(&dev->sigmask, SIGTSTP); 110 * xserver for now */
111 sigaddset(&dev->sigmask, SIGTTIN); 111 if (!file_priv->master) {
112 sigaddset(&dev->sigmask, SIGTTOU); 112 sigemptyset(&dev->sigmask);
113 dev->sigdata.context = lock->context; 113 sigaddset(&dev->sigmask, SIGSTOP);
114 dev->sigdata.lock = dev->lock.hw_lock; 114 sigaddset(&dev->sigmask, SIGTSTP);
115 block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask); 115 sigaddset(&dev->sigmask, SIGTTIN);
116 sigaddset(&dev->sigmask, SIGTTOU);
117 dev->sigdata.context = lock->context;
118 dev->sigdata.lock = dev->lock.hw_lock;
119 block_all_signals(drm_notifier, &dev->sigdata, &dev->sigmask);
120 }
116 121
117 if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY)) 122 if (dev->driver->dma_ready && (lock->flags & _DRM_LOCK_READY))
118 dev->driver->dma_ready(dev); 123 dev->driver->dma_ready(dev);
@@ -150,6 +155,7 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
150{ 155{
151 struct drm_lock *lock = data; 156 struct drm_lock *lock = data;
152 unsigned long irqflags; 157 unsigned long irqflags;
158 void (*tasklet_func)(struct drm_device *);
153 159
154 if (lock->context == DRM_KERNEL_CONTEXT) { 160 if (lock->context == DRM_KERNEL_CONTEXT) {
155 DRM_ERROR("Process %d using kernel context %d\n", 161 DRM_ERROR("Process %d using kernel context %d\n",
@@ -158,14 +164,11 @@ int drm_unlock(struct drm_device *dev, void *data, struct drm_file *file_priv)
158 } 164 }
159 165
160 spin_lock_irqsave(&dev->tasklet_lock, irqflags); 166 spin_lock_irqsave(&dev->tasklet_lock, irqflags);
161 167 tasklet_func = dev->locked_tasklet_func;
162 if (dev->locked_tasklet_func) { 168 dev->locked_tasklet_func = NULL;
163 dev->locked_tasklet_func(dev);
164
165 dev->locked_tasklet_func = NULL;
166 }
167
168 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags); 169 spin_unlock_irqrestore(&dev->tasklet_lock, irqflags);
170 if (tasklet_func != NULL)
171 tasklet_func(dev);
169 172
170 atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]); 173 atomic_inc(&dev->counts[_DRM_STAT_UNLOCKS]);
171 174
diff --git a/drivers/gpu/drm/radeon/r300_cmdbuf.c b/drivers/gpu/drm/radeon/r300_cmdbuf.c
index 702df45320f7..4b27d9abb7bc 100644
--- a/drivers/gpu/drm/radeon/r300_cmdbuf.c
+++ b/drivers/gpu/drm/radeon/r300_cmdbuf.c
@@ -77,6 +77,9 @@ static int r300_emit_cliprects(drm_radeon_private_t *dev_priv,
77 return -EFAULT; 77 return -EFAULT;
78 } 78 }
79 79
80 box.x2--; /* Hardware expects inclusive bottom-right corner */
81 box.y2--;
82
80 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) { 83 if ((dev_priv->flags & RADEON_FAMILY_MASK) >= CHIP_RV515) {
81 box.x1 = (box.x1) & 84 box.x1 = (box.x1) &
82 R300_CLIPRECT_MASK; 85 R300_CLIPRECT_MASK;
@@ -95,8 +98,8 @@ static int r300_emit_cliprects(drm_radeon_private_t *dev_priv,
95 R300_CLIPRECT_MASK; 98 R300_CLIPRECT_MASK;
96 box.y2 = (box.y2 + R300_CLIPRECT_OFFSET) & 99 box.y2 = (box.y2 + R300_CLIPRECT_OFFSET) &
97 R300_CLIPRECT_MASK; 100 R300_CLIPRECT_MASK;
98
99 } 101 }
102
100 OUT_RING((box.x1 << R300_CLIPRECT_X_SHIFT) | 103 OUT_RING((box.x1 << R300_CLIPRECT_X_SHIFT) |
101 (box.y1 << R300_CLIPRECT_Y_SHIFT)); 104 (box.y1 << R300_CLIPRECT_Y_SHIFT));
102 OUT_RING((box.x2 << R300_CLIPRECT_X_SHIFT) | 105 OUT_RING((box.x2 << R300_CLIPRECT_X_SHIFT) |
@@ -136,6 +139,18 @@ static int r300_emit_cliprects(drm_radeon_private_t *dev_priv,
136 ADVANCE_RING(); 139 ADVANCE_RING();
137 } 140 }
138 141
142 /* flus cache and wait idle clean after cliprect change */
143 BEGIN_RING(2);
144 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
145 OUT_RING(R300_RB3D_DC_FLUSH);
146 ADVANCE_RING();
147 BEGIN_RING(2);
148 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
149 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
150 ADVANCE_RING();
151 /* set flush flag */
152 dev_priv->track_flush |= RADEON_FLUSH_EMITED;
153
139 return 0; 154 return 0;
140} 155}
141 156
@@ -166,13 +181,13 @@ void r300_init_reg_flags(struct drm_device *dev)
166 ADD_RANGE(0x21DC, 1); 181 ADD_RANGE(0x21DC, 1);
167 ADD_RANGE(R300_VAP_UNKNOWN_221C, 1); 182 ADD_RANGE(R300_VAP_UNKNOWN_221C, 1);
168 ADD_RANGE(R300_VAP_CLIP_X_0, 4); 183 ADD_RANGE(R300_VAP_CLIP_X_0, 4);
169 ADD_RANGE(R300_VAP_PVS_WAITIDLE, 1); 184 ADD_RANGE(R300_VAP_PVS_STATE_FLUSH_REG, 1);
170 ADD_RANGE(R300_VAP_UNKNOWN_2288, 1); 185 ADD_RANGE(R300_VAP_UNKNOWN_2288, 1);
171 ADD_RANGE(R300_VAP_OUTPUT_VTX_FMT_0, 2); 186 ADD_RANGE(R300_VAP_OUTPUT_VTX_FMT_0, 2);
172 ADD_RANGE(R300_VAP_PVS_CNTL_1, 3); 187 ADD_RANGE(R300_VAP_PVS_CNTL_1, 3);
173 ADD_RANGE(R300_GB_ENABLE, 1); 188 ADD_RANGE(R300_GB_ENABLE, 1);
174 ADD_RANGE(R300_GB_MSPOS0, 5); 189 ADD_RANGE(R300_GB_MSPOS0, 5);
175 ADD_RANGE(R300_TX_CNTL, 1); 190 ADD_RANGE(R300_TX_INVALTAGS, 1);
176 ADD_RANGE(R300_TX_ENABLE, 1); 191 ADD_RANGE(R300_TX_ENABLE, 1);
177 ADD_RANGE(0x4200, 4); 192 ADD_RANGE(0x4200, 4);
178 ADD_RANGE(0x4214, 1); 193 ADD_RANGE(0x4214, 1);
@@ -388,15 +403,28 @@ static __inline__ int r300_emit_vpu(drm_radeon_private_t *dev_priv,
388 if (sz * 16 > cmdbuf->bufsz) 403 if (sz * 16 > cmdbuf->bufsz)
389 return -EINVAL; 404 return -EINVAL;
390 405
391 BEGIN_RING(5 + sz * 4); 406 /* VAP is very sensitive so we purge cache before we program it
392 /* Wait for VAP to come to senses.. */ 407 * and we also flush its state before & after */
393 /* there is no need to emit it multiple times, (only once before VAP is programmed, 408 BEGIN_RING(6);
394 but this optimization is for later */ 409 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
395 OUT_RING_REG(R300_VAP_PVS_WAITIDLE, 0); 410 OUT_RING(R300_RB3D_DC_FLUSH);
411 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
412 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
413 OUT_RING(CP_PACKET0(R300_VAP_PVS_STATE_FLUSH_REG, 0));
414 OUT_RING(0);
415 ADVANCE_RING();
416 /* set flush flag */
417 dev_priv->track_flush |= RADEON_FLUSH_EMITED;
418
419 BEGIN_RING(3 + sz * 4);
396 OUT_RING_REG(R300_VAP_PVS_UPLOAD_ADDRESS, addr); 420 OUT_RING_REG(R300_VAP_PVS_UPLOAD_ADDRESS, addr);
397 OUT_RING(CP_PACKET0_TABLE(R300_VAP_PVS_UPLOAD_DATA, sz * 4 - 1)); 421 OUT_RING(CP_PACKET0_TABLE(R300_VAP_PVS_UPLOAD_DATA, sz * 4 - 1));
398 OUT_RING_TABLE((int *)cmdbuf->buf, sz * 4); 422 OUT_RING_TABLE((int *)cmdbuf->buf, sz * 4);
423 ADVANCE_RING();
399 424
425 BEGIN_RING(2);
426 OUT_RING(CP_PACKET0(R300_VAP_PVS_STATE_FLUSH_REG, 0));
427 OUT_RING(0);
400 ADVANCE_RING(); 428 ADVANCE_RING();
401 429
402 cmdbuf->buf += sz * 16; 430 cmdbuf->buf += sz * 16;
@@ -424,6 +452,15 @@ static __inline__ int r300_emit_clear(drm_radeon_private_t *dev_priv,
424 OUT_RING_TABLE((int *)cmdbuf->buf, 8); 452 OUT_RING_TABLE((int *)cmdbuf->buf, 8);
425 ADVANCE_RING(); 453 ADVANCE_RING();
426 454
455 BEGIN_RING(4);
456 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
457 OUT_RING(R300_RB3D_DC_FLUSH);
458 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
459 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
460 ADVANCE_RING();
461 /* set flush flag */
462 dev_priv->track_flush |= RADEON_FLUSH_EMITED;
463
427 cmdbuf->buf += 8 * 4; 464 cmdbuf->buf += 8 * 4;
428 cmdbuf->bufsz -= 8 * 4; 465 cmdbuf->bufsz -= 8 * 4;
429 466
@@ -543,22 +580,23 @@ static __inline__ int r300_emit_bitblt_multi(drm_radeon_private_t *dev_priv,
543 return 0; 580 return 0;
544} 581}
545 582
546static __inline__ int r300_emit_indx_buffer(drm_radeon_private_t *dev_priv, 583static __inline__ int r300_emit_draw_indx_2(drm_radeon_private_t *dev_priv,
547 drm_radeon_kcmd_buffer_t *cmdbuf) 584 drm_radeon_kcmd_buffer_t *cmdbuf)
548{ 585{
549 u32 *cmd = (u32 *) cmdbuf->buf; 586 u32 *cmd;
550 int count, ret; 587 int count;
588 int expected_count;
551 RING_LOCALS; 589 RING_LOCALS;
552 590
553 count=(cmd[0]>>16) & 0x3fff; 591 cmd = (u32 *) cmdbuf->buf;
592 count = (cmd[0]>>16) & 0x3fff;
593 expected_count = cmd[1] >> 16;
594 if (!(cmd[1] & R300_VAP_VF_CNTL__INDEX_SIZE_32bit))
595 expected_count = (expected_count+1)/2;
554 596
555 if ((cmd[1] & 0x8000ffff) != 0x80000810) { 597 if (count && count != expected_count) {
556 DRM_ERROR("Invalid indx_buffer reg address %08X\n", cmd[1]); 598 DRM_ERROR("3D_DRAW_INDX_2: packet size %i, expected %i\n",
557 return -EINVAL; 599 count, expected_count);
558 }
559 ret = !radeon_check_offset(dev_priv, cmd[2]);
560 if (ret) {
561 DRM_ERROR("Invalid indx_buffer offset is %08X\n", cmd[2]);
562 return -EINVAL; 600 return -EINVAL;
563 } 601 }
564 602
@@ -570,6 +608,50 @@ static __inline__ int r300_emit_indx_buffer(drm_radeon_private_t *dev_priv,
570 cmdbuf->buf += (count+2)*4; 608 cmdbuf->buf += (count+2)*4;
571 cmdbuf->bufsz -= (count+2)*4; 609 cmdbuf->bufsz -= (count+2)*4;
572 610
611 if (!count) {
612 drm_r300_cmd_header_t header;
613
614 if (cmdbuf->bufsz < 4*4 + sizeof(header)) {
615 DRM_ERROR("3D_DRAW_INDX_2: expect subsequent INDX_BUFFER, but stream is too short.\n");
616 return -EINVAL;
617 }
618
619 header.u = *(unsigned int *)cmdbuf->buf;
620
621 cmdbuf->buf += sizeof(header);
622 cmdbuf->bufsz -= sizeof(header);
623 cmd = (u32 *) cmdbuf->buf;
624
625 if (header.header.cmd_type != R300_CMD_PACKET3 ||
626 header.packet3.packet != R300_CMD_PACKET3_RAW ||
627 cmd[0] != CP_PACKET3(RADEON_CP_INDX_BUFFER, 2)) {
628 DRM_ERROR("3D_DRAW_INDX_2: expect subsequent INDX_BUFFER.\n");
629 return -EINVAL;
630 }
631
632 if ((cmd[1] & 0x8000ffff) != 0x80000810) {
633 DRM_ERROR("Invalid indx_buffer reg address %08X\n", cmd[1]);
634 return -EINVAL;
635 }
636 if (!radeon_check_offset(dev_priv, cmd[2])) {
637 DRM_ERROR("Invalid indx_buffer offset is %08X\n", cmd[2]);
638 return -EINVAL;
639 }
640 if (cmd[3] != expected_count) {
641 DRM_ERROR("INDX_BUFFER: buffer size %i, expected %i\n",
642 cmd[3], expected_count);
643 return -EINVAL;
644 }
645
646 BEGIN_RING(4);
647 OUT_RING(cmd[0]);
648 OUT_RING_TABLE((int *)(cmdbuf->buf + 4), 3);
649 ADVANCE_RING();
650
651 cmdbuf->buf += 4*4;
652 cmdbuf->bufsz -= 4*4;
653 }
654
573 return 0; 655 return 0;
574} 656}
575 657
@@ -613,11 +695,22 @@ static __inline__ int r300_emit_raw_packet3(drm_radeon_private_t *dev_priv,
613 case RADEON_CNTL_BITBLT_MULTI: 695 case RADEON_CNTL_BITBLT_MULTI:
614 return r300_emit_bitblt_multi(dev_priv, cmdbuf); 696 return r300_emit_bitblt_multi(dev_priv, cmdbuf);
615 697
616 case RADEON_CP_INDX_BUFFER: /* DRAW_INDX_2 without INDX_BUFFER seems to lock up the gpu */ 698 case RADEON_CP_INDX_BUFFER:
617 return r300_emit_indx_buffer(dev_priv, cmdbuf); 699 DRM_ERROR("packet3 INDX_BUFFER without preceding 3D_DRAW_INDX_2 is illegal.\n");
618 case RADEON_CP_3D_DRAW_IMMD_2: /* triggers drawing using in-packet vertex data */ 700 return -EINVAL;
619 case RADEON_CP_3D_DRAW_VBUF_2: /* triggers drawing of vertex buffers setup elsewhere */ 701 case RADEON_CP_3D_DRAW_IMMD_2:
620 case RADEON_CP_3D_DRAW_INDX_2: /* triggers drawing using indices to vertex buffer */ 702 /* triggers drawing using in-packet vertex data */
703 case RADEON_CP_3D_DRAW_VBUF_2:
704 /* triggers drawing of vertex buffers setup elsewhere */
705 dev_priv->track_flush &= ~(RADEON_FLUSH_EMITED |
706 RADEON_PURGE_EMITED);
707 break;
708 case RADEON_CP_3D_DRAW_INDX_2:
709 /* triggers drawing using indices to vertex buffer */
710 /* whenever we send vertex we clear flush & purge */
711 dev_priv->track_flush &= ~(RADEON_FLUSH_EMITED |
712 RADEON_PURGE_EMITED);
713 return r300_emit_draw_indx_2(dev_priv, cmdbuf);
621 case RADEON_WAIT_FOR_IDLE: 714 case RADEON_WAIT_FOR_IDLE:
622 case RADEON_CP_NOP: 715 case RADEON_CP_NOP:
623 /* these packets are safe */ 716 /* these packets are safe */
@@ -713,17 +806,53 @@ static __inline__ int r300_emit_packet3(drm_radeon_private_t *dev_priv,
713 */ 806 */
714static __inline__ void r300_pacify(drm_radeon_private_t *dev_priv) 807static __inline__ void r300_pacify(drm_radeon_private_t *dev_priv)
715{ 808{
809 uint32_t cache_z, cache_3d, cache_2d;
716 RING_LOCALS; 810 RING_LOCALS;
717 811
718 BEGIN_RING(6); 812 cache_z = R300_ZC_FLUSH;
719 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); 813 cache_2d = R300_RB2D_DC_FLUSH;
720 OUT_RING(R300_RB3D_DSTCACHE_UNKNOWN_0A); 814 cache_3d = R300_RB3D_DC_FLUSH;
815 if (!(dev_priv->track_flush & RADEON_PURGE_EMITED)) {
816 /* we can purge, primitive where draw since last purge */
817 cache_z |= R300_ZC_FREE;
818 cache_2d |= R300_RB2D_DC_FREE;
819 cache_3d |= R300_RB3D_DC_FREE;
820 }
821
822 /* flush & purge zbuffer */
823 BEGIN_RING(2);
721 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0)); 824 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0));
722 OUT_RING(R300_ZB_ZCACHE_CTLSTAT_ZC_FLUSH_FLUSH_AND_FREE| 825 OUT_RING(cache_z);
723 R300_ZB_ZCACHE_CTLSTAT_ZC_FREE_FREE); 826 ADVANCE_RING();
724 OUT_RING(CP_PACKET3(RADEON_CP_NOP, 0)); 827 /* flush & purge 3d */
725 OUT_RING(0x0); 828 BEGIN_RING(2);
829 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0));
830 OUT_RING(cache_3d);
831 ADVANCE_RING();
832 /* flush & purge texture */
833 BEGIN_RING(2);
834 OUT_RING(CP_PACKET0(R300_TX_INVALTAGS, 0));
835 OUT_RING(0);
836 ADVANCE_RING();
837 /* FIXME: is this one really needed ? */
838 BEGIN_RING(2);
839 OUT_RING(CP_PACKET0(R300_RB3D_AARESOLVE_CTL, 0));
840 OUT_RING(0);
841 ADVANCE_RING();
842 BEGIN_RING(2);
843 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
844 OUT_RING(RADEON_WAIT_3D_IDLECLEAN);
845 ADVANCE_RING();
846 /* flush & purge 2d through E2 as RB2D will trigger lockup */
847 BEGIN_RING(4);
848 OUT_RING(CP_PACKET0(R300_DSTCACHE_CTLSTAT, 0));
849 OUT_RING(cache_2d);
850 OUT_RING(CP_PACKET0(RADEON_WAIT_UNTIL, 0));
851 OUT_RING(RADEON_WAIT_2D_IDLECLEAN |
852 RADEON_WAIT_HOST_IDLECLEAN);
726 ADVANCE_RING(); 853 ADVANCE_RING();
854 /* set flush & purge flags */
855 dev_priv->track_flush |= RADEON_FLUSH_EMITED | RADEON_PURGE_EMITED;
727} 856}
728 857
729/** 858/**
@@ -905,8 +1034,7 @@ int r300_do_cp_cmdbuf(struct drm_device *dev,
905 1034
906 DRM_DEBUG("\n"); 1035 DRM_DEBUG("\n");
907 1036
908 /* See the comment above r300_emit_begin3d for why this call must be here, 1037 /* pacify */
909 * and what the cleanup gotos are for. */
910 r300_pacify(dev_priv); 1038 r300_pacify(dev_priv);
911 1039
912 if (cmdbuf->nbox <= R300_SIMULTANEOUS_CLIPRECTS) { 1040 if (cmdbuf->nbox <= R300_SIMULTANEOUS_CLIPRECTS) {
diff --git a/drivers/gpu/drm/radeon/r300_reg.h b/drivers/gpu/drm/radeon/r300_reg.h
index a6802f26afc4..ee6f811599a3 100644
--- a/drivers/gpu/drm/radeon/r300_reg.h
+++ b/drivers/gpu/drm/radeon/r300_reg.h
@@ -317,7 +317,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
317 * Therefore, I suspect writing zero to 0x2284 synchronizes the engine and 317 * Therefore, I suspect writing zero to 0x2284 synchronizes the engine and
318 * avoids bugs caused by still running shaders reading bad data from memory. 318 * avoids bugs caused by still running shaders reading bad data from memory.
319 */ 319 */
320#define R300_VAP_PVS_WAITIDLE 0x2284 /* GUESS */ 320#define R300_VAP_PVS_STATE_FLUSH_REG 0x2284
321 321
322/* Absolutely no clue what this register is about. */ 322/* Absolutely no clue what this register is about. */
323#define R300_VAP_UNKNOWN_2288 0x2288 323#define R300_VAP_UNKNOWN_2288 0x2288
@@ -513,7 +513,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
513/* gap */ 513/* gap */
514 514
515/* Zero to flush caches. */ 515/* Zero to flush caches. */
516#define R300_TX_CNTL 0x4100 516#define R300_TX_INVALTAGS 0x4100
517#define R300_TX_FLUSH 0x0 517#define R300_TX_FLUSH 0x0
518 518
519/* The upper enable bits are guessed, based on fglrx reported limits. */ 519/* The upper enable bits are guessed, based on fglrx reported limits. */
@@ -1362,6 +1362,7 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
1362#define R300_RB3D_COLORPITCH2 0x4E40 /* GUESS */ 1362#define R300_RB3D_COLORPITCH2 0x4E40 /* GUESS */
1363#define R300_RB3D_COLORPITCH3 0x4E44 /* GUESS */ 1363#define R300_RB3D_COLORPITCH3 0x4E44 /* GUESS */
1364 1364
1365#define R300_RB3D_AARESOLVE_CTL 0x4E88
1365/* gap */ 1366/* gap */
1366 1367
1367/* Guess by Vladimir. 1368/* Guess by Vladimir.
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
index f0de81a5689d..248ab4a7d39f 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -40,6 +40,7 @@
40#define RADEON_FIFO_DEBUG 0 40#define RADEON_FIFO_DEBUG 0
41 41
42static int radeon_do_cleanup_cp(struct drm_device * dev); 42static int radeon_do_cleanup_cp(struct drm_device * dev);
43static void radeon_do_cp_start(drm_radeon_private_t * dev_priv);
43 44
44static u32 R500_READ_MCIND(drm_radeon_private_t *dev_priv, int addr) 45static u32 R500_READ_MCIND(drm_radeon_private_t *dev_priv, int addr)
45{ 46{
@@ -198,23 +199,8 @@ static int radeon_do_pixcache_flush(drm_radeon_private_t * dev_priv)
198 DRM_UDELAY(1); 199 DRM_UDELAY(1);
199 } 200 }
200 } else { 201 } else {
201 /* 3D */ 202 /* don't flush or purge cache here or lockup */
202 tmp = RADEON_READ(R300_RB3D_DSTCACHE_CTLSTAT); 203 return 0;
203 tmp |= RADEON_RB3D_DC_FLUSH_ALL;
204 RADEON_WRITE(R300_RB3D_DSTCACHE_CTLSTAT, tmp);
205
206 /* 2D */
207 tmp = RADEON_READ(R300_DSTCACHE_CTLSTAT);
208 tmp |= RADEON_RB3D_DC_FLUSH_ALL;
209 RADEON_WRITE(R300_DSTCACHE_CTLSTAT, tmp);
210
211 for (i = 0; i < dev_priv->usec_timeout; i++) {
212 if (!(RADEON_READ(R300_DSTCACHE_CTLSTAT)
213 & RADEON_RB3D_DC_BUSY)) {
214 return 0;
215 }
216 DRM_UDELAY(1);
217 }
218 } 204 }
219 205
220#if RADEON_FIFO_DEBUG 206#if RADEON_FIFO_DEBUG
@@ -237,6 +223,9 @@ static int radeon_do_wait_for_fifo(drm_radeon_private_t * dev_priv, int entries)
237 return 0; 223 return 0;
238 DRM_UDELAY(1); 224 DRM_UDELAY(1);
239 } 225 }
226 DRM_DEBUG("wait for fifo failed status : 0x%08X 0x%08X\n",
227 RADEON_READ(RADEON_RBBM_STATUS),
228 RADEON_READ(R300_VAP_CNTL_STATUS));
240 229
241#if RADEON_FIFO_DEBUG 230#if RADEON_FIFO_DEBUG
242 DRM_ERROR("failed!\n"); 231 DRM_ERROR("failed!\n");
@@ -263,6 +252,9 @@ static int radeon_do_wait_for_idle(drm_radeon_private_t * dev_priv)
263 } 252 }
264 DRM_UDELAY(1); 253 DRM_UDELAY(1);
265 } 254 }
255 DRM_DEBUG("wait idle failed status : 0x%08X 0x%08X\n",
256 RADEON_READ(RADEON_RBBM_STATUS),
257 RADEON_READ(R300_VAP_CNTL_STATUS));
266 258
267#if RADEON_FIFO_DEBUG 259#if RADEON_FIFO_DEBUG
268 DRM_ERROR("failed!\n"); 260 DRM_ERROR("failed!\n");
@@ -443,14 +435,20 @@ static void radeon_do_cp_start(drm_radeon_private_t * dev_priv)
443 435
444 dev_priv->cp_running = 1; 436 dev_priv->cp_running = 1;
445 437
446 BEGIN_RING(6); 438 BEGIN_RING(8);
447 439 /* isync can only be written through cp on r5xx write it here */
440 OUT_RING(CP_PACKET0(RADEON_ISYNC_CNTL, 0));
441 OUT_RING(RADEON_ISYNC_ANY2D_IDLE3D |
442 RADEON_ISYNC_ANY3D_IDLE2D |
443 RADEON_ISYNC_WAIT_IDLEGUI |
444 RADEON_ISYNC_CPSCRATCH_IDLEGUI);
448 RADEON_PURGE_CACHE(); 445 RADEON_PURGE_CACHE();
449 RADEON_PURGE_ZCACHE(); 446 RADEON_PURGE_ZCACHE();
450 RADEON_WAIT_UNTIL_IDLE(); 447 RADEON_WAIT_UNTIL_IDLE();
451
452 ADVANCE_RING(); 448 ADVANCE_RING();
453 COMMIT_RING(); 449 COMMIT_RING();
450
451 dev_priv->track_flush |= RADEON_FLUSH_EMITED | RADEON_PURGE_EMITED;
454} 452}
455 453
456/* Reset the Command Processor. This will not flush any pending 454/* Reset the Command Processor. This will not flush any pending
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
index 3f0eca957aa7..099381693175 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -220,6 +220,9 @@ struct radeon_virt_surface {
220 struct drm_file *file_priv; 220 struct drm_file *file_priv;
221}; 221};
222 222
223#define RADEON_FLUSH_EMITED (1 < 0)
224#define RADEON_PURGE_EMITED (1 < 1)
225
223typedef struct drm_radeon_private { 226typedef struct drm_radeon_private {
224 drm_radeon_ring_buffer_t ring; 227 drm_radeon_ring_buffer_t ring;
225 drm_radeon_sarea_t *sarea_priv; 228 drm_radeon_sarea_t *sarea_priv;
@@ -311,6 +314,7 @@ typedef struct drm_radeon_private {
311 unsigned long fb_aper_offset; 314 unsigned long fb_aper_offset;
312 315
313 int num_gb_pipes; 316 int num_gb_pipes;
317 int track_flush;
314} drm_radeon_private_t; 318} drm_radeon_private_t;
315 319
316typedef struct drm_radeon_buf_priv { 320typedef struct drm_radeon_buf_priv {
@@ -693,7 +697,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
693#define R300_ZB_ZCACHE_CTLSTAT 0x4f18 697#define R300_ZB_ZCACHE_CTLSTAT 0x4f18
694# define R300_ZC_FLUSH (1 << 0) 698# define R300_ZC_FLUSH (1 << 0)
695# define R300_ZC_FREE (1 << 1) 699# define R300_ZC_FREE (1 << 1)
696# define R300_ZC_FLUSH_ALL 0x3
697# define R300_ZC_BUSY (1 << 31) 700# define R300_ZC_BUSY (1 << 31)
698#define RADEON_RB3D_DSTCACHE_CTLSTAT 0x325c 701#define RADEON_RB3D_DSTCACHE_CTLSTAT 0x325c
699# define RADEON_RB3D_DC_FLUSH (3 << 0) 702# define RADEON_RB3D_DC_FLUSH (3 << 0)
@@ -701,6 +704,8 @@ extern int r300_do_cp_cmdbuf(struct drm_device * dev,
701# define RADEON_RB3D_DC_FLUSH_ALL 0xf 704# define RADEON_RB3D_DC_FLUSH_ALL 0xf
702# define RADEON_RB3D_DC_BUSY (1 << 31) 705# define RADEON_RB3D_DC_BUSY (1 << 31)
703#define R300_RB3D_DSTCACHE_CTLSTAT 0x4e4c 706#define R300_RB3D_DSTCACHE_CTLSTAT 0x4e4c
707# define R300_RB3D_DC_FLUSH (2 << 0)
708# define R300_RB3D_DC_FREE (2 << 2)
704# define R300_RB3D_DC_FINISH (1 << 4) 709# define R300_RB3D_DC_FINISH (1 << 4)
705#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c 710#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c
706# define RADEON_Z_TEST_MASK (7 << 4) 711# define RADEON_Z_TEST_MASK (7 << 4)
@@ -1246,17 +1251,17 @@ do { \
1246 OUT_RING(RADEON_RB3D_DC_FLUSH); \ 1251 OUT_RING(RADEON_RB3D_DC_FLUSH); \
1247 } else { \ 1252 } else { \
1248 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1253 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \
1249 OUT_RING(RADEON_RB3D_DC_FLUSH); \ 1254 OUT_RING(R300_RB3D_DC_FLUSH); \
1250 } \ 1255 } \
1251} while (0) 1256} while (0)
1252 1257
1253#define RADEON_PURGE_CACHE() do { \ 1258#define RADEON_PURGE_CACHE() do { \
1254 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \ 1259 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1255 OUT_RING(CP_PACKET0(RADEON_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1260 OUT_RING(CP_PACKET0(RADEON_RB3D_DSTCACHE_CTLSTAT, 0)); \
1256 OUT_RING(RADEON_RB3D_DC_FLUSH_ALL); \ 1261 OUT_RING(RADEON_RB3D_DC_FLUSH | RADEON_RB3D_DC_FREE); \
1257 } else { \ 1262 } else { \
1258 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1263 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \
1259 OUT_RING(RADEON_RB3D_DC_FLUSH_ALL); \ 1264 OUT_RING(R300_RB3D_DC_FLUSH | R300_RB3D_DC_FREE); \
1260 } \ 1265 } \
1261} while (0) 1266} while (0)
1262 1267
@@ -1273,10 +1278,10 @@ do { \
1273#define RADEON_PURGE_ZCACHE() do { \ 1278#define RADEON_PURGE_ZCACHE() do { \
1274 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \ 1279 if ((dev_priv->flags & RADEON_FAMILY_MASK) <= CHIP_RV280) { \
1275 OUT_RING(CP_PACKET0(RADEON_RB3D_ZCACHE_CTLSTAT, 0)); \ 1280 OUT_RING(CP_PACKET0(RADEON_RB3D_ZCACHE_CTLSTAT, 0)); \
1276 OUT_RING(RADEON_RB3D_ZC_FLUSH_ALL); \ 1281 OUT_RING(RADEON_RB3D_ZC_FLUSH | RADEON_RB3D_ZC_FREE); \
1277 } else { \ 1282 } else { \
1278 OUT_RING(CP_PACKET0(R300_RB3D_DSTCACHE_CTLSTAT, 0)); \ 1283 OUT_RING(CP_PACKET0(R300_ZB_ZCACHE_CTLSTAT, 0)); \
1279 OUT_RING(R300_ZC_FLUSH_ALL); \ 1284 OUT_RING(R300_ZC_FLUSH | R300_ZC_FREE); \
1280 } \ 1285 } \
1281} while (0) 1286} while (0)
1282 1287
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index d402e8d813ce..3309e862f317 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -540,6 +540,15 @@ config SENSORS_LM93
540 This driver can also be built as a module. If so, the module 540 This driver can also be built as a module. If so, the module
541 will be called lm93. 541 will be called lm93.
542 542
543config SENSORS_MAX1111
544 tristate "Maxim MAX1111 Multichannel, Serial 8-bit ADC chip"
545 depends on SPI_MASTER
546 help
547 Say y here to support Maxim's MAX1111 ADC chips.
548
549 This driver can also be built as a module. If so, the module
550 will be called max1111.
551
543config SENSORS_MAX1619 552config SENSORS_MAX1619
544 tristate "Maxim MAX1619 sensor chip" 553 tristate "Maxim MAX1619 sensor chip"
545 depends on I2C 554 depends on I2C
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
index 950134ab8426..6babc801b348 100644
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -59,6 +59,7 @@ obj-$(CONFIG_SENSORS_LM87) += lm87.o
59obj-$(CONFIG_SENSORS_LM90) += lm90.o 59obj-$(CONFIG_SENSORS_LM90) += lm90.o
60obj-$(CONFIG_SENSORS_LM92) += lm92.o 60obj-$(CONFIG_SENSORS_LM92) += lm92.o
61obj-$(CONFIG_SENSORS_LM93) += lm93.o 61obj-$(CONFIG_SENSORS_LM93) += lm93.o
62obj-$(CONFIG_SENSORS_MAX1111) += max1111.o
62obj-$(CONFIG_SENSORS_MAX1619) += max1619.o 63obj-$(CONFIG_SENSORS_MAX1619) += max1619.o
63obj-$(CONFIG_SENSORS_MAX6650) += max6650.o 64obj-$(CONFIG_SENSORS_MAX6650) += max6650.o
64obj-$(CONFIG_SENSORS_PC87360) += pc87360.o 65obj-$(CONFIG_SENSORS_PC87360) += pc87360.o
diff --git a/drivers/hwmon/max1111.c b/drivers/hwmon/max1111.c
new file mode 100644
index 000000000000..bfaa665ccf32
--- /dev/null
+++ b/drivers/hwmon/max1111.c
@@ -0,0 +1,244 @@
1/*
2 * max1111.c - +2.7V, Low-Power, Multichannel, Serial 8-bit ADCs
3 *
4 * Based on arch/arm/mach-pxa/corgi_ssp.c
5 *
6 * Copyright (C) 2004-2005 Richard Purdie
7 *
8 * Copyright (C) 2008 Marvell International Ltd.
9 * Eric Miao <eric.miao@marvell.com>
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License version 2 as
13 * publishhed by the Free Software Foundation.
14 */
15
16#include <linux/module.h>
17#include <linux/kernel.h>
18#include <linux/init.h>
19#include <linux/err.h>
20#include <linux/hwmon.h>
21#include <linux/hwmon-sysfs.h>
22#include <linux/spi/spi.h>
23
24#define MAX1111_TX_BUF_SIZE 1
25#define MAX1111_RX_BUF_SIZE 2
26
27/* MAX1111 Commands */
28#define MAX1111_CTRL_PD0 (1u << 0)
29#define MAX1111_CTRL_PD1 (1u << 1)
30#define MAX1111_CTRL_SGL (1u << 2)
31#define MAX1111_CTRL_UNI (1u << 3)
32#define MAX1111_CTRL_SEL_SH (5) /* NOTE: bit 4 is ignored */
33#define MAX1111_CTRL_STR (1u << 7)
34
35struct max1111_data {
36 struct spi_device *spi;
37 struct device *hwmon_dev;
38 struct spi_message msg;
39 struct spi_transfer xfer[2];
40 uint8_t *tx_buf;
41 uint8_t *rx_buf;
42};
43
44static int max1111_read(struct device *dev, int channel)
45{
46 struct max1111_data *data = dev_get_drvdata(dev);
47 uint8_t v1, v2;
48 int err;
49
50 data->tx_buf[0] = (channel << MAX1111_CTRL_SEL_SH) |
51 MAX1111_CTRL_PD0 | MAX1111_CTRL_PD1 |
52 MAX1111_CTRL_SGL | MAX1111_CTRL_UNI | MAX1111_CTRL_STR;
53
54 err = spi_sync(data->spi, &data->msg);
55 if (err < 0) {
56 dev_err(dev, "spi_sync failed with %d\n", err);
57 return err;
58 }
59
60 v1 = data->rx_buf[0];
61 v2 = data->rx_buf[1];
62
63 if ((v1 & 0xc0) || (v2 & 0x3f))
64 return -EINVAL;
65
66 return (v1 << 2) | (v2 >> 6);
67}
68
69#ifdef CONFIG_SHARPSL_PM
70static struct max1111_data *the_max1111;
71
72int max1111_read_channel(int channel)
73{
74 return max1111_read(&the_max1111->spi->dev, channel);
75}
76EXPORT_SYMBOL(max1111_read_channel);
77#endif
78
79/*
80 * NOTE: SPI devices do not have a default 'name' attribute, which is
81 * likely to be used by hwmon applications to distinguish between
82 * different devices, explicitly add a name attribute here.
83 */
84static ssize_t show_name(struct device *dev,
85 struct device_attribute *attr, char *buf)
86{
87 return sprintf(buf, "max1111\n");
88}
89
90static ssize_t show_adc(struct device *dev,
91 struct device_attribute *attr, char *buf)
92{
93 int channel = to_sensor_dev_attr(attr)->index;
94 int ret;
95
96 ret = max1111_read(dev, channel);
97 if (ret < 0)
98 return ret;
99
100 return sprintf(buf, "%d\n", ret);
101}
102
103#define MAX1111_ADC_ATTR(_id) \
104 SENSOR_DEVICE_ATTR(adc##_id##_in, S_IRUGO, show_adc, NULL, _id)
105
106static DEVICE_ATTR(name, S_IRUGO, show_name, NULL);
107static MAX1111_ADC_ATTR(0);
108static MAX1111_ADC_ATTR(1);
109static MAX1111_ADC_ATTR(2);
110static MAX1111_ADC_ATTR(3);
111
112static struct attribute *max1111_attributes[] = {
113 &dev_attr_name.attr,
114 &sensor_dev_attr_adc0_in.dev_attr.attr,
115 &sensor_dev_attr_adc1_in.dev_attr.attr,
116 &sensor_dev_attr_adc2_in.dev_attr.attr,
117 &sensor_dev_attr_adc3_in.dev_attr.attr,
118 NULL,
119};
120
121static const struct attribute_group max1111_attr_group = {
122 .attrs = max1111_attributes,
123};
124
125static int setup_transfer(struct max1111_data *data)
126{
127 struct spi_message *m;
128 struct spi_transfer *x;
129
130 data->tx_buf = kmalloc(MAX1111_TX_BUF_SIZE, GFP_KERNEL);
131 if (!data->tx_buf)
132 return -ENOMEM;
133
134 data->rx_buf = kmalloc(MAX1111_RX_BUF_SIZE, GFP_KERNEL);
135 if (!data->rx_buf) {
136 kfree(data->tx_buf);
137 return -ENOMEM;
138 }
139
140 m = &data->msg;
141 x = &data->xfer[0];
142
143 spi_message_init(m);
144
145 x->tx_buf = &data->tx_buf[0];
146 x->len = 1;
147 spi_message_add_tail(x, m);
148
149 x++;
150 x->rx_buf = &data->rx_buf[0];
151 x->len = 2;
152 spi_message_add_tail(x, m);
153
154 return 0;
155}
156
157static int __devinit max1111_probe(struct spi_device *spi)
158{
159 struct max1111_data *data;
160 int err;
161
162 spi->bits_per_word = 8;
163 spi->mode = SPI_MODE_0;
164 err = spi_setup(spi);
165 if (err < 0)
166 return err;
167
168 data = kzalloc(sizeof(struct max1111_data), GFP_KERNEL);
169 if (data == NULL) {
170 dev_err(&spi->dev, "failed to allocate memory\n");
171 return -ENOMEM;
172 }
173
174 err = setup_transfer(data);
175 if (err)
176 goto err_free_data;
177
178 data->spi = spi;
179 spi_set_drvdata(spi, data);
180
181 err = sysfs_create_group(&spi->dev.kobj, &max1111_attr_group);
182 if (err) {
183 dev_err(&spi->dev, "failed to create attribute group\n");
184 goto err_free_all;
185 }
186
187 data->hwmon_dev = hwmon_device_register(&spi->dev);
188 if (IS_ERR(data->hwmon_dev)) {
189 dev_err(&spi->dev, "failed to create hwmon device\n");
190 err = PTR_ERR(data->hwmon_dev);
191 goto err_remove;
192 }
193
194#ifdef CONFIG_SHARPSL_PM
195 the_max1111 = data;
196#endif
197 return 0;
198
199err_remove:
200 sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
201err_free_all:
202 kfree(data->rx_buf);
203 kfree(data->tx_buf);
204err_free_data:
205 kfree(data);
206 return err;
207}
208
209static int __devexit max1111_remove(struct spi_device *spi)
210{
211 struct max1111_data *data = spi_get_drvdata(spi);
212
213 hwmon_device_unregister(data->hwmon_dev);
214 sysfs_remove_group(&spi->dev.kobj, &max1111_attr_group);
215 kfree(data->rx_buf);
216 kfree(data->tx_buf);
217 kfree(data);
218 return 0;
219}
220
221static struct spi_driver max1111_driver = {
222 .driver = {
223 .name = "max1111",
224 .owner = THIS_MODULE,
225 },
226 .probe = max1111_probe,
227 .remove = __devexit_p(max1111_remove),
228};
229
230static int __init max1111_init(void)
231{
232 return spi_register_driver(&max1111_driver);
233}
234module_init(max1111_init);
235
236static void __exit max1111_exit(void)
237{
238 spi_unregister_driver(&max1111_driver);
239}
240module_exit(max1111_exit);
241
242MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>");
243MODULE_DESCRIPTION("MAX1111 ADC Driver");
244MODULE_LICENSE("GPL");
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c
index 44d838410f15..906f9b9d715d 100644
--- a/drivers/i2c/busses/i2c-pxa.c
+++ b/drivers/i2c/busses/i2c-pxa.c
@@ -38,7 +38,44 @@
38#include <asm/irq.h> 38#include <asm/irq.h>
39#include <asm/io.h> 39#include <asm/io.h>
40#include <mach/i2c.h> 40#include <mach/i2c.h>
41#include <mach/pxa-regs.h> 41
42/*
43 * I2C registers and bit definitions
44 */
45#define IBMR (0x00)
46#define IDBR (0x08)
47#define ICR (0x10)
48#define ISR (0x18)
49#define ISAR (0x20)
50
51#define ICR_START (1 << 0) /* start bit */
52#define ICR_STOP (1 << 1) /* stop bit */
53#define ICR_ACKNAK (1 << 2) /* send ACK(0) or NAK(1) */
54#define ICR_TB (1 << 3) /* transfer byte bit */
55#define ICR_MA (1 << 4) /* master abort */
56#define ICR_SCLE (1 << 5) /* master clock enable */
57#define ICR_IUE (1 << 6) /* unit enable */
58#define ICR_GCD (1 << 7) /* general call disable */
59#define ICR_ITEIE (1 << 8) /* enable tx interrupts */
60#define ICR_IRFIE (1 << 9) /* enable rx interrupts */
61#define ICR_BEIE (1 << 10) /* enable bus error ints */
62#define ICR_SSDIE (1 << 11) /* slave STOP detected int enable */
63#define ICR_ALDIE (1 << 12) /* enable arbitration interrupt */
64#define ICR_SADIE (1 << 13) /* slave address detected int enable */
65#define ICR_UR (1 << 14) /* unit reset */
66#define ICR_FM (1 << 15) /* fast mode */
67
68#define ISR_RWM (1 << 0) /* read/write mode */
69#define ISR_ACKNAK (1 << 1) /* ack/nak status */
70#define ISR_UB (1 << 2) /* unit busy */
71#define ISR_IBB (1 << 3) /* bus busy */
72#define ISR_SSD (1 << 4) /* slave stop detected */
73#define ISR_ALD (1 << 5) /* arbitration loss detected */
74#define ISR_ITE (1 << 6) /* tx buffer empty */
75#define ISR_IRF (1 << 7) /* rx buffer full */
76#define ISR_GCAD (1 << 8) /* general call address detected */
77#define ISR_SAD (1 << 9) /* slave address detected */
78#define ISR_BED (1 << 10) /* bus error no ACK/NAK */
42 79
43struct pxa_i2c { 80struct pxa_i2c {
44 spinlock_t lock; 81 spinlock_t lock;
@@ -60,19 +97,21 @@ struct pxa_i2c {
60 u32 icrlog[32]; 97 u32 icrlog[32];
61 98
62 void __iomem *reg_base; 99 void __iomem *reg_base;
100 unsigned int reg_shift;
63 101
64 unsigned long iobase; 102 unsigned long iobase;
65 unsigned long iosize; 103 unsigned long iosize;
66 104
67 int irq; 105 int irq;
68 int use_pio; 106 unsigned int use_pio :1;
107 unsigned int fast_mode :1;
69}; 108};
70 109
71#define _IBMR(i2c) ((i2c)->reg_base + 0) 110#define _IBMR(i2c) ((i2c)->reg_base + (0x0 << (i2c)->reg_shift))
72#define _IDBR(i2c) ((i2c)->reg_base + 8) 111#define _IDBR(i2c) ((i2c)->reg_base + (0x4 << (i2c)->reg_shift))
73#define _ICR(i2c) ((i2c)->reg_base + 0x10) 112#define _ICR(i2c) ((i2c)->reg_base + (0x8 << (i2c)->reg_shift))
74#define _ISR(i2c) ((i2c)->reg_base + 0x18) 113#define _ISR(i2c) ((i2c)->reg_base + (0xc << (i2c)->reg_shift))
75#define _ISAR(i2c) ((i2c)->reg_base + 0x20) 114#define _ISAR(i2c) ((i2c)->reg_base + (0x10 << (i2c)->reg_shift))
76 115
77/* 116/*
78 * I2C Slave mode address 117 * I2C Slave mode address
@@ -188,14 +227,14 @@ static inline int i2c_pxa_is_slavemode(struct pxa_i2c *i2c)
188 227
189static void i2c_pxa_abort(struct pxa_i2c *i2c) 228static void i2c_pxa_abort(struct pxa_i2c *i2c)
190{ 229{
191 unsigned long timeout = jiffies + HZ/4; 230 int i = 250;
192 231
193 if (i2c_pxa_is_slavemode(i2c)) { 232 if (i2c_pxa_is_slavemode(i2c)) {
194 dev_dbg(&i2c->adap.dev, "%s: called in slave mode\n", __func__); 233 dev_dbg(&i2c->adap.dev, "%s: called in slave mode\n", __func__);
195 return; 234 return;
196 } 235 }
197 236
198 while (time_before(jiffies, timeout) && (readl(_IBMR(i2c)) & 0x1) == 0) { 237 while ((i > 0) && (readl(_IBMR(i2c)) & 0x1) == 0) {
199 unsigned long icr = readl(_ICR(i2c)); 238 unsigned long icr = readl(_ICR(i2c));
200 239
201 icr &= ~ICR_START; 240 icr &= ~ICR_START;
@@ -205,7 +244,8 @@ static void i2c_pxa_abort(struct pxa_i2c *i2c)
205 244
206 show_state(i2c); 245 show_state(i2c);
207 246
208 msleep(1); 247 mdelay(1);
248 i --;
209 } 249 }
210 250
211 writel(readl(_ICR(i2c)) & ~(ICR_MA | ICR_START | ICR_STOP), 251 writel(readl(_ICR(i2c)) & ~(ICR_MA | ICR_START | ICR_STOP),
@@ -364,7 +404,7 @@ static void i2c_pxa_reset(struct pxa_i2c *i2c)
364 writel(i2c->slave_addr, _ISAR(i2c)); 404 writel(i2c->slave_addr, _ISAR(i2c));
365 405
366 /* set control register values */ 406 /* set control register values */
367 writel(I2C_ICR_INIT, _ICR(i2c)); 407 writel(I2C_ICR_INIT | (i2c->fast_mode ? ICR_FM : 0), _ICR(i2c));
368 408
369#ifdef CONFIG_I2C_PXA_SLAVE 409#ifdef CONFIG_I2C_PXA_SLAVE
370 dev_info(&i2c->adap.dev, "Enabling slave mode\n"); 410 dev_info(&i2c->adap.dev, "Enabling slave mode\n");
@@ -907,12 +947,6 @@ static int i2c_pxa_xfer(struct i2c_adapter *adap, struct i2c_msg msgs[], int num
907 struct pxa_i2c *i2c = adap->algo_data; 947 struct pxa_i2c *i2c = adap->algo_data;
908 int ret, i; 948 int ret, i;
909 949
910 /* If the I2C controller is disabled we need to reset it (probably due
911 to a suspend/resume destroying state). We do this here as we can then
912 avoid worrying about resuming the controller before its users. */
913 if (!(readl(_ICR(i2c)) & ICR_IUE))
914 i2c_pxa_reset(i2c);
915
916 for (i = adap->retries; i >= 0; i--) { 950 for (i = adap->retries; i >= 0; i--) {
917 ret = i2c_pxa_do_xfer(i2c, msgs, num); 951 ret = i2c_pxa_do_xfer(i2c, msgs, num);
918 if (ret != I2C_RETRY) 952 if (ret != I2C_RETRY)
@@ -993,6 +1027,7 @@ static int i2c_pxa_probe(struct platform_device *dev)
993 ret = -EIO; 1027 ret = -EIO;
994 goto eremap; 1028 goto eremap;
995 } 1029 }
1030 i2c->reg_shift = (cpu_is_pxa3xx() && (dev->id == 1)) ? 0 : 1;
996 1031
997 i2c->iobase = res->start; 1032 i2c->iobase = res->start;
998 i2c->iosize = res_len(res); 1033 i2c->iosize = res_len(res);
@@ -1013,6 +1048,7 @@ static int i2c_pxa_probe(struct platform_device *dev)
1013 if (plat) { 1048 if (plat) {
1014 i2c->adap.class = plat->class; 1049 i2c->adap.class = plat->class;
1015 i2c->use_pio = plat->use_pio; 1050 i2c->use_pio = plat->use_pio;
1051 i2c->fast_mode = plat->fast_mode;
1016 } 1052 }
1017 1053
1018 if (i2c->use_pio) { 1054 if (i2c->use_pio) {
@@ -1082,9 +1118,33 @@ static int __exit i2c_pxa_remove(struct platform_device *dev)
1082 return 0; 1118 return 0;
1083} 1119}
1084 1120
1121#ifdef CONFIG_PM
1122static int i2c_pxa_suspend_late(struct platform_device *dev, pm_message_t state)
1123{
1124 struct pxa_i2c *i2c = platform_get_drvdata(dev);
1125 clk_disable(i2c->clk);
1126 return 0;
1127}
1128
1129static int i2c_pxa_resume_early(struct platform_device *dev)
1130{
1131 struct pxa_i2c *i2c = platform_get_drvdata(dev);
1132
1133 clk_enable(i2c->clk);
1134 i2c_pxa_reset(i2c);
1135
1136 return 0;
1137}
1138#else
1139#define i2c_pxa_suspend_late NULL
1140#define i2c_pxa_resume_early NULL
1141#endif
1142
1085static struct platform_driver i2c_pxa_driver = { 1143static struct platform_driver i2c_pxa_driver = {
1086 .probe = i2c_pxa_probe, 1144 .probe = i2c_pxa_probe,
1087 .remove = __exit_p(i2c_pxa_remove), 1145 .remove = __exit_p(i2c_pxa_remove),
1146 .suspend_late = i2c_pxa_suspend_late,
1147 .resume_early = i2c_pxa_resume_early,
1088 .driver = { 1148 .driver = {
1089 .name = "pxa2xx-i2c", 1149 .name = "pxa2xx-i2c",
1090 .owner = THIS_MODULE, 1150 .owner = THIS_MODULE,
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c
index 840e634fa31f..640cbb237328 100644
--- a/drivers/i2c/busses/i2c-sh_mobile.c
+++ b/drivers/i2c/busses/i2c-sh_mobile.c
@@ -31,13 +31,84 @@
31#include <linux/clk.h> 31#include <linux/clk.h>
32#include <linux/io.h> 32#include <linux/io.h>
33 33
34/* Transmit operation: */
35/* */
36/* 0 byte transmit */
37/* BUS: S A8 ACK P */
38/* IRQ: DTE WAIT */
39/* ICIC: */
40/* ICCR: 0x94 0x90 */
41/* ICDR: A8 */
42/* */
43/* 1 byte transmit */
44/* BUS: S A8 ACK D8(1) ACK P */
45/* IRQ: DTE WAIT WAIT */
46/* ICIC: -DTE */
47/* ICCR: 0x94 0x90 */
48/* ICDR: A8 D8(1) */
49/* */
50/* 2 byte transmit */
51/* BUS: S A8 ACK D8(1) ACK D8(2) ACK P */
52/* IRQ: DTE WAIT WAIT WAIT */
53/* ICIC: -DTE */
54/* ICCR: 0x94 0x90 */
55/* ICDR: A8 D8(1) D8(2) */
56/* */
57/* 3 bytes or more, +---------+ gets repeated */
58/* */
59/* */
60/* Receive operation: */
61/* */
62/* 0 byte receive - not supported since slave may hold SDA low */
63/* */
64/* 1 byte receive [TX] | [RX] */
65/* BUS: S A8 ACK | D8(1) ACK P */
66/* IRQ: DTE WAIT | WAIT DTE */
67/* ICIC: -DTE | +DTE */
68/* ICCR: 0x94 0x81 | 0xc0 */
69/* ICDR: A8 | D8(1) */
70/* */
71/* 2 byte receive [TX]| [RX] */
72/* BUS: S A8 ACK | D8(1) ACK D8(2) ACK P */
73/* IRQ: DTE WAIT | WAIT WAIT DTE */
74/* ICIC: -DTE | +DTE */
75/* ICCR: 0x94 0x81 | 0xc0 */
76/* ICDR: A8 | D8(1) D8(2) */
77/* */
78/* 3 byte receive [TX] | [RX] */
79/* BUS: S A8 ACK | D8(1) ACK D8(2) ACK D8(3) ACK P */
80/* IRQ: DTE WAIT | WAIT WAIT WAIT DTE */
81/* ICIC: -DTE | +DTE */
82/* ICCR: 0x94 0x81 | 0xc0 */
83/* ICDR: A8 | D8(1) D8(2) D8(3) */
84/* */
85/* 4 bytes or more, this part is repeated +---------+ */
86/* */
87/* */
88/* Interrupt order and BUSY flag */
89/* ___ _ */
90/* SDA ___\___XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXAAAAAAAAA___/ */
91/* SCL \_/1\_/2\_/3\_/4\_/5\_/6\_/7\_/8\___/9\_____/ */
92/* */
93/* S D7 D6 D5 D4 D3 D2 D1 D0 P */
94/* ___ */
95/* WAIT IRQ ________________________________/ \___________ */
96/* TACK IRQ ____________________________________/ \_______ */
97/* DTE IRQ __________________________________________/ \_ */
98/* AL IRQ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX */
99/* _______________________________________________ */
100/* BUSY __/ \_ */
101/* */
102
34enum sh_mobile_i2c_op { 103enum sh_mobile_i2c_op {
35 OP_START = 0, 104 OP_START = 0,
36 OP_TX_ONLY, 105 OP_TX_FIRST,
106 OP_TX,
37 OP_TX_STOP, 107 OP_TX_STOP,
38 OP_TX_TO_RX, 108 OP_TX_TO_RX,
39 OP_RX_ONLY, 109 OP_RX,
40 OP_RX_STOP, 110 OP_RX_STOP,
111 OP_RX_STOP_DATA,
41}; 112};
42 113
43struct sh_mobile_i2c_data { 114struct sh_mobile_i2c_data {
@@ -127,25 +198,34 @@ static unsigned char i2c_op(struct sh_mobile_i2c_data *pd,
127 spin_lock_irqsave(&pd->lock, flags); 198 spin_lock_irqsave(&pd->lock, flags);
128 199
129 switch (op) { 200 switch (op) {
130 case OP_START: 201 case OP_START: /* issue start and trigger DTE interrupt */
131 iowrite8(0x94, ICCR(pd)); 202 iowrite8(0x94, ICCR(pd));
132 break; 203 break;
133 case OP_TX_ONLY: 204 case OP_TX_FIRST: /* disable DTE interrupt and write data */
205 iowrite8(ICIC_WAITE | ICIC_ALE | ICIC_TACKE, ICIC(pd));
134 iowrite8(data, ICDR(pd)); 206 iowrite8(data, ICDR(pd));
135 break; 207 break;
136 case OP_TX_STOP: 208 case OP_TX: /* write data */
137 iowrite8(data, ICDR(pd)); 209 iowrite8(data, ICDR(pd));
138 iowrite8(0x90, ICCR(pd));
139 iowrite8(ICIC_ALE | ICIC_TACKE, ICIC(pd));
140 break; 210 break;
141 case OP_TX_TO_RX: 211 case OP_TX_STOP: /* write data and issue a stop afterwards */
142 iowrite8(data, ICDR(pd)); 212 iowrite8(data, ICDR(pd));
213 iowrite8(0x90, ICCR(pd));
214 break;
215 case OP_TX_TO_RX: /* select read mode */
143 iowrite8(0x81, ICCR(pd)); 216 iowrite8(0x81, ICCR(pd));
144 break; 217 break;
145 case OP_RX_ONLY: 218 case OP_RX: /* just read data */
146 ret = ioread8(ICDR(pd)); 219 ret = ioread8(ICDR(pd));
147 break; 220 break;
148 case OP_RX_STOP: 221 case OP_RX_STOP: /* enable DTE interrupt, issue stop */
222 iowrite8(ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE,
223 ICIC(pd));
224 iowrite8(0xc0, ICCR(pd));
225 break;
226 case OP_RX_STOP_DATA: /* enable DTE interrupt, read data, issue stop */
227 iowrite8(ICIC_DTEE | ICIC_WAITE | ICIC_ALE | ICIC_TACKE,
228 ICIC(pd));
149 ret = ioread8(ICDR(pd)); 229 ret = ioread8(ICDR(pd));
150 iowrite8(0xc0, ICCR(pd)); 230 iowrite8(0xc0, ICCR(pd));
151 break; 231 break;
@@ -157,58 +237,120 @@ static unsigned char i2c_op(struct sh_mobile_i2c_data *pd,
157 return ret; 237 return ret;
158} 238}
159 239
240static int sh_mobile_i2c_is_first_byte(struct sh_mobile_i2c_data *pd)
241{
242 if (pd->pos == -1)
243 return 1;
244
245 return 0;
246}
247
248static int sh_mobile_i2c_is_last_byte(struct sh_mobile_i2c_data *pd)
249{
250 if (pd->pos == (pd->msg->len - 1))
251 return 1;
252
253 return 0;
254}
255
256static void sh_mobile_i2c_get_data(struct sh_mobile_i2c_data *pd,
257 unsigned char *buf)
258{
259 switch (pd->pos) {
260 case -1:
261 *buf = (pd->msg->addr & 0x7f) << 1;
262 *buf |= (pd->msg->flags & I2C_M_RD) ? 1 : 0;
263 break;
264 default:
265 *buf = pd->msg->buf[pd->pos];
266 }
267}
268
269static int sh_mobile_i2c_isr_tx(struct sh_mobile_i2c_data *pd)
270{
271 unsigned char data;
272
273 if (pd->pos == pd->msg->len)
274 return 1;
275
276 sh_mobile_i2c_get_data(pd, &data);
277
278 if (sh_mobile_i2c_is_last_byte(pd))
279 i2c_op(pd, OP_TX_STOP, data);
280 else if (sh_mobile_i2c_is_first_byte(pd))
281 i2c_op(pd, OP_TX_FIRST, data);
282 else
283 i2c_op(pd, OP_TX, data);
284
285 pd->pos++;
286 return 0;
287}
288
289static int sh_mobile_i2c_isr_rx(struct sh_mobile_i2c_data *pd)
290{
291 unsigned char data;
292 int real_pos;
293
294 do {
295 if (pd->pos <= -1) {
296 sh_mobile_i2c_get_data(pd, &data);
297
298 if (sh_mobile_i2c_is_first_byte(pd))
299 i2c_op(pd, OP_TX_FIRST, data);
300 else
301 i2c_op(pd, OP_TX, data);
302 break;
303 }
304
305 if (pd->pos == 0) {
306 i2c_op(pd, OP_TX_TO_RX, 0);
307 break;
308 }
309
310 real_pos = pd->pos - 2;
311
312 if (pd->pos == pd->msg->len) {
313 if (real_pos < 0) {
314 i2c_op(pd, OP_RX_STOP, 0);
315 break;
316 }
317 data = i2c_op(pd, OP_RX_STOP_DATA, 0);
318 } else
319 data = i2c_op(pd, OP_RX, 0);
320
321 pd->msg->buf[real_pos] = data;
322 } while (0);
323
324 pd->pos++;
325 return pd->pos == (pd->msg->len + 2);
326}
327
160static irqreturn_t sh_mobile_i2c_isr(int irq, void *dev_id) 328static irqreturn_t sh_mobile_i2c_isr(int irq, void *dev_id)
161{ 329{
162 struct platform_device *dev = dev_id; 330 struct platform_device *dev = dev_id;
163 struct sh_mobile_i2c_data *pd = platform_get_drvdata(dev); 331 struct sh_mobile_i2c_data *pd = platform_get_drvdata(dev);
164 struct i2c_msg *msg = pd->msg; 332 unsigned char sr;
165 unsigned char data, sr; 333 int wakeup;
166 int wakeup = 0;
167 334
168 sr = ioread8(ICSR(pd)); 335 sr = ioread8(ICSR(pd));
169 pd->sr |= sr; 336 pd->sr |= sr; /* remember state */
170 337
171 dev_dbg(pd->dev, "i2c_isr 0x%02x 0x%02x %s %d %d!\n", sr, pd->sr, 338 dev_dbg(pd->dev, "i2c_isr 0x%02x 0x%02x %s %d %d!\n", sr, pd->sr,
172 (msg->flags & I2C_M_RD) ? "read" : "write", 339 (pd->msg->flags & I2C_M_RD) ? "read" : "write",
173 pd->pos, msg->len); 340 pd->pos, pd->msg->len);
174 341
175 if (sr & (ICSR_AL | ICSR_TACK)) { 342 if (sr & (ICSR_AL | ICSR_TACK)) {
176 iowrite8(0, ICIC(pd)); /* disable interrupts */ 343 /* don't interrupt transaction - continue to issue stop */
177 wakeup = 1; 344 iowrite8(sr & ~(ICSR_AL | ICSR_TACK), ICSR(pd));
178 goto do_wakeup; 345 wakeup = 0;
179 } 346 } else if (pd->msg->flags & I2C_M_RD)
347 wakeup = sh_mobile_i2c_isr_rx(pd);
348 else
349 wakeup = sh_mobile_i2c_isr_tx(pd);
180 350
181 if (pd->pos == msg->len) { 351 if (sr & ICSR_WAIT) /* TODO: add delay here to support slow acks */
182 i2c_op(pd, OP_RX_ONLY, 0); 352 iowrite8(sr & ~ICSR_WAIT, ICSR(pd));
183 wakeup = 1;
184 goto do_wakeup;
185 }
186 353
187 if (pd->pos == -1) {
188 data = (msg->addr & 0x7f) << 1;
189 data |= (msg->flags & I2C_M_RD) ? 1 : 0;
190 } else
191 data = msg->buf[pd->pos];
192
193 if ((pd->pos == -1) || !(msg->flags & I2C_M_RD)) {
194 if (msg->flags & I2C_M_RD)
195 i2c_op(pd, OP_TX_TO_RX, data);
196 else if (pd->pos == (msg->len - 1)) {
197 i2c_op(pd, OP_TX_STOP, data);
198 wakeup = 1;
199 } else
200 i2c_op(pd, OP_TX_ONLY, data);
201 } else {
202 if (pd->pos == (msg->len - 1))
203 data = i2c_op(pd, OP_RX_STOP, 0);
204 else
205 data = i2c_op(pd, OP_RX_ONLY, 0);
206
207 msg->buf[pd->pos] = data;
208 }
209 pd->pos++;
210
211 do_wakeup:
212 if (wakeup) { 354 if (wakeup) {
213 pd->sr |= SW_DONE; 355 pd->sr |= SW_DONE;
214 wake_up(&pd->wait); 356 wake_up(&pd->wait);
@@ -219,6 +361,11 @@ static irqreturn_t sh_mobile_i2c_isr(int irq, void *dev_id)
219 361
220static int start_ch(struct sh_mobile_i2c_data *pd, struct i2c_msg *usr_msg) 362static int start_ch(struct sh_mobile_i2c_data *pd, struct i2c_msg *usr_msg)
221{ 363{
364 if (usr_msg->len == 0 && (usr_msg->flags & I2C_M_RD)) {
365 dev_err(pd->dev, "Unsupported zero length i2c read\n");
366 return -EIO;
367 }
368
222 /* Initialize channel registers */ 369 /* Initialize channel registers */
223 iowrite8(ioread8(ICCR(pd)) & ~ICCR_ICE, ICCR(pd)); 370 iowrite8(ioread8(ICCR(pd)) & ~ICCR_ICE, ICCR(pd));
224 371
@@ -233,9 +380,8 @@ static int start_ch(struct sh_mobile_i2c_data *pd, struct i2c_msg *usr_msg)
233 pd->pos = -1; 380 pd->pos = -1;
234 pd->sr = 0; 381 pd->sr = 0;
235 382
236 /* Enable all interrupts except wait */ 383 /* Enable all interrupts to begin with */
237 iowrite8(ioread8(ICIC(pd)) | ICIC_ALE | ICIC_TACKE | ICIC_DTEE, 384 iowrite8(ICIC_WAITE | ICIC_ALE | ICIC_TACKE | ICIC_DTEE, ICIC(pd));
238 ICIC(pd));
239 return 0; 385 return 0;
240} 386}
241 387
@@ -268,25 +414,18 @@ static int sh_mobile_i2c_xfer(struct i2c_adapter *adapter,
268 if (!k) 414 if (!k)
269 dev_err(pd->dev, "Transfer request timed out\n"); 415 dev_err(pd->dev, "Transfer request timed out\n");
270 416
271 retry_count = 10; 417 retry_count = 1000;
272again: 418again:
273 val = ioread8(ICSR(pd)); 419 val = ioread8(ICSR(pd));
274 420
275 dev_dbg(pd->dev, "val 0x%02x pd->sr 0x%02x\n", val, pd->sr); 421 dev_dbg(pd->dev, "val 0x%02x pd->sr 0x%02x\n", val, pd->sr);
276 422
277 if ((val | pd->sr) & (ICSR_TACK | ICSR_AL)) {
278 err = -EIO;
279 break;
280 }
281
282 /* the interrupt handler may wake us up before the 423 /* the interrupt handler may wake us up before the
283 * transfer is finished, so poll the hardware 424 * transfer is finished, so poll the hardware
284 * until we're done. 425 * until we're done.
285 */ 426 */
286 427 if (val & ICSR_BUSY) {
287 if (!(!(val & ICSR_BUSY) && (val & ICSR_SCLM) && 428 udelay(10);
288 (val & ICSR_SDAM))) {
289 msleep(1);
290 if (retry_count--) 429 if (retry_count--)
291 goto again; 430 goto again;
292 431
@@ -294,6 +433,12 @@ again:
294 dev_err(pd->dev, "Polling timed out\n"); 433 dev_err(pd->dev, "Polling timed out\n");
295 break; 434 break;
296 } 435 }
436
437 /* handle missing acknowledge and arbitration lost */
438 if ((val | pd->sr) & (ICSR_TACK | ICSR_AL)) {
439 err = -EIO;
440 break;
441 }
297 } 442 }
298 443
299 deactivate_ch(pd); 444 deactivate_ch(pd);
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index 550853f79ae8..b346a687ab59 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -108,6 +108,9 @@ static int i2c_device_probe(struct device *dev)
108 if (!driver->probe || !driver->id_table) 108 if (!driver->probe || !driver->id_table)
109 return -ENODEV; 109 return -ENODEV;
110 client->driver = driver; 110 client->driver = driver;
111 if (!device_can_wakeup(&client->dev))
112 device_init_wakeup(&client->dev,
113 client->flags & I2C_CLIENT_WAKE);
111 dev_dbg(dev, "probe\n"); 114 dev_dbg(dev, "probe\n");
112 115
113 status = driver->probe(client, i2c_match_id(driver->id_table, client)); 116 status = driver->probe(client, i2c_match_id(driver->id_table, client));
@@ -262,9 +265,8 @@ i2c_new_device(struct i2c_adapter *adap, struct i2c_board_info const *info)
262 client->adapter = adap; 265 client->adapter = adap;
263 266
264 client->dev.platform_data = info->platform_data; 267 client->dev.platform_data = info->platform_data;
265 device_init_wakeup(&client->dev, info->flags & I2C_CLIENT_WAKE);
266 268
267 client->flags = info->flags & ~I2C_CLIENT_WAKE; 269 client->flags = info->flags;
268 client->addr = info->addr; 270 client->addr = info->addr;
269 client->irq = info->irq; 271 client->irq = info->irq;
270 272
@@ -1188,8 +1190,8 @@ int i2c_probe(struct i2c_adapter *adapter,
1188 && address_data->normal_i2c[0] == I2C_CLIENT_END) 1190 && address_data->normal_i2c[0] == I2C_CLIENT_END)
1189 return 0; 1191 return 0;
1190 1192
1191 dev_warn(&adapter->dev, "SMBus Quick command not supported, " 1193 dev_dbg(&adapter->dev, "SMBus Quick command not supported, "
1192 "can't probe for chips\n"); 1194 "can't probe for chips\n");
1193 return -EOPNOTSUPP; 1195 return -EOPNOTSUPP;
1194 } 1196 }
1195 1197
@@ -1350,6 +1352,10 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver)
1350 } 1352 }
1351 } 1353 }
1352 1354
1355 /* Stop here if the classes do not match */
1356 if (!(adapter->class & driver->class))
1357 goto exit_free;
1358
1353 /* Stop here if we can't use SMBUS_QUICK */ 1359 /* Stop here if we can't use SMBUS_QUICK */
1354 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK)) { 1360 if (!i2c_check_functionality(adapter, I2C_FUNC_SMBUS_QUICK)) {
1355 if (address_data->probe[0] == I2C_CLIENT_END 1361 if (address_data->probe[0] == I2C_CLIENT_END
@@ -1362,10 +1368,6 @@ static int i2c_detect(struct i2c_adapter *adapter, struct i2c_driver *driver)
1362 goto exit_free; 1368 goto exit_free;
1363 } 1369 }
1364 1370
1365 /* Stop here if the classes do not match */
1366 if (!(adapter->class & driver->class))
1367 goto exit_free;
1368
1369 /* Probe entries are done second, and are not affected by ignore 1371 /* Probe entries are done second, and are not affected by ignore
1370 entries either */ 1372 entries either */
1371 for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2) { 1373 for (i = 0; address_data->probe[i] != I2C_CLIENT_END; i += 2) {
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index a34758d29516..fc735ab08ff4 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -242,7 +242,7 @@ config BLK_DEV_IDEFLOPPY
242 module will be called ide-floppy. 242 module will be called ide-floppy.
243 243
244config BLK_DEV_IDESCSI 244config BLK_DEV_IDESCSI
245 tristate "SCSI emulation support" 245 tristate "SCSI emulation support (DEPRECATED)"
246 depends on SCSI 246 depends on SCSI
247 select IDE_ATAPI 247 select IDE_ATAPI
248 ---help--- 248 ---help---
@@ -255,20 +255,6 @@ config BLK_DEV_IDESCSI
255 and will allow you to use a SCSI device driver instead of a native 255 and will allow you to use a SCSI device driver instead of a native
256 ATAPI driver. 256 ATAPI driver.
257 257
258 This is useful if you have an ATAPI device for which no native
259 driver has been written (for example, an ATAPI PD-CD drive);
260 you can then use this emulation together with an appropriate SCSI
261 device driver. In order to do this, say Y here and to "SCSI support"
262 and "SCSI generic support", below. You must then provide the kernel
263 command line "hdx=ide-scsi" (try "man bootparam" or see the
264 documentation of your boot loader (lilo or loadlin) about how to
265 pass options to the kernel at boot time) for devices if you want the
266 native EIDE sub-drivers to skip over the native support, so that
267 this SCSI emulation can be used instead.
268
269 Note that this option does NOT allow you to attach SCSI devices to a
270 box that doesn't have a SCSI host adapter installed.
271
272 If both this SCSI emulation and native ATAPI support are compiled 258 If both this SCSI emulation and native ATAPI support are compiled
273 into the kernel, the native support will be used. 259 into the kernel, the native support will be used.
274 260
diff --git a/drivers/ide/arm/palm_bk3710.c b/drivers/ide/arm/palm_bk3710.c
index f788fa5a977b..4fd91dcf1dc2 100644
--- a/drivers/ide/arm/palm_bk3710.c
+++ b/drivers/ide/arm/palm_bk3710.c
@@ -343,11 +343,10 @@ static struct ide_port_info __devinitdata palm_bk3710_port_info = {
343 .mwdma_mask = ATA_MWDMA2, 343 .mwdma_mask = ATA_MWDMA2,
344}; 344};
345 345
346static int __devinit palm_bk3710_probe(struct platform_device *pdev) 346static int __init palm_bk3710_probe(struct platform_device *pdev)
347{ 347{
348 struct clk *clk; 348 struct clk *clk;
349 struct resource *mem, *irq; 349 struct resource *mem, *irq;
350 struct ide_host *host;
351 unsigned long base, rate; 350 unsigned long base, rate;
352 int i, rc; 351 int i, rc;
353 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL }; 352 hw_regs_t hw, *hws[] = { &hw, NULL, NULL, NULL };
@@ -390,6 +389,7 @@ static int __devinit palm_bk3710_probe(struct platform_device *pdev)
390 hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i; 389 hw.io_ports_array[i] = base + IDE_PALM_ATA_PRI_REG_OFFSET + i;
391 hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET; 390 hw.io_ports.ctl_addr = base + IDE_PALM_ATA_PRI_CTL_OFFSET;
392 hw.irq = irq->start; 391 hw.irq = irq->start;
392 hw.dev = &pdev->dev;
393 hw.chipset = ide_palm3710; 393 hw.chipset = ide_palm3710;
394 394
395 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 : 395 palm_bk3710_port_info.udma_mask = rate < 100000000 ? ATA_UDMA4 :
@@ -413,13 +413,11 @@ static struct platform_driver platform_bk_driver = {
413 .name = "palm_bk3710", 413 .name = "palm_bk3710",
414 .owner = THIS_MODULE, 414 .owner = THIS_MODULE,
415 }, 415 },
416 .probe = palm_bk3710_probe,
417 .remove = NULL,
418}; 416};
419 417
420static int __init palm_bk3710_init(void) 418static int __init palm_bk3710_init(void)
421{ 419{
422 return platform_driver_register(&platform_bk_driver); 420 return platform_driver_probe(&platform_bk_driver, palm_bk3710_probe);
423} 421}
424 422
425module_init(palm_bk3710_init); 423module_init(palm_bk3710_init);
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index 68b9cf0138b0..07ef88bd109b 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -445,20 +445,6 @@ static void idedisk_check_hpa(ide_drive_t *drive)
445 } 445 }
446} 446}
447 447
448/*
449 * Compute drive->capacity, the full capacity of the drive
450 * Called with drive->id != NULL.
451 *
452 * To compute capacity, this uses either of
453 *
454 * 1. CHS value set by user (whatever user sets will be trusted)
455 * 2. LBA value from target drive (require new ATA feature)
456 * 3. LBA value from system BIOS (new one is OK, old one may break)
457 * 4. CHS value from system BIOS (traditional style)
458 *
459 * in above order (i.e., if value of higher priority is available,
460 * reset will be ignored).
461 */
462static void init_idedisk_capacity(ide_drive_t *drive) 448static void init_idedisk_capacity(ide_drive_t *drive)
463{ 449{
464 struct hd_driveid *id = drive->id; 450 struct hd_driveid *id = drive->id;
diff --git a/drivers/ide/pci/hpt366.c b/drivers/ide/pci/hpt366.c
index eb107eef0dbc..c37ab1743819 100644
--- a/drivers/ide/pci/hpt366.c
+++ b/drivers/ide/pci/hpt366.c
@@ -613,6 +613,14 @@ static int check_in_drive_list(ide_drive_t *drive, const char **list)
613 return 0; 613 return 0;
614} 614}
615 615
616static struct hpt_info *hpt3xx_get_info(struct device *dev)
617{
618 struct ide_host *host = dev_get_drvdata(dev);
619 struct hpt_info *info = (struct hpt_info *)host->host_priv;
620
621 return dev == host->dev[1] ? info + 1 : info;
622}
623
616/* 624/*
617 * The Marvell bridge chips used on the HighPoint SATA cards do not seem 625 * The Marvell bridge chips used on the HighPoint SATA cards do not seem
618 * to support the UltraDMA modes 1, 2, and 3 as well as any MWDMA modes... 626 * to support the UltraDMA modes 1, 2, and 3 as well as any MWDMA modes...
@@ -621,9 +629,7 @@ static int check_in_drive_list(ide_drive_t *drive, const char **list)
621static u8 hpt3xx_udma_filter(ide_drive_t *drive) 629static u8 hpt3xx_udma_filter(ide_drive_t *drive)
622{ 630{
623 ide_hwif_t *hwif = HWIF(drive); 631 ide_hwif_t *hwif = HWIF(drive);
624 struct pci_dev *dev = to_pci_dev(hwif->dev); 632 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
625 struct ide_host *host = pci_get_drvdata(dev);
626 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
627 u8 mask = hwif->ultra_mask; 633 u8 mask = hwif->ultra_mask;
628 634
629 switch (info->chip_type) { 635 switch (info->chip_type) {
@@ -662,9 +668,7 @@ static u8 hpt3xx_udma_filter(ide_drive_t *drive)
662static u8 hpt3xx_mdma_filter(ide_drive_t *drive) 668static u8 hpt3xx_mdma_filter(ide_drive_t *drive)
663{ 669{
664 ide_hwif_t *hwif = HWIF(drive); 670 ide_hwif_t *hwif = HWIF(drive);
665 struct pci_dev *dev = to_pci_dev(hwif->dev); 671 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
666 struct ide_host *host = pci_get_drvdata(dev);
667 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
668 672
669 switch (info->chip_type) { 673 switch (info->chip_type) {
670 case HPT372 : 674 case HPT372 :
@@ -700,8 +704,7 @@ static void hpt3xx_set_mode(ide_drive_t *drive, const u8 speed)
700{ 704{
701 ide_hwif_t *hwif = drive->hwif; 705 ide_hwif_t *hwif = drive->hwif;
702 struct pci_dev *dev = to_pci_dev(hwif->dev); 706 struct pci_dev *dev = to_pci_dev(hwif->dev);
703 struct ide_host *host = pci_get_drvdata(dev); 707 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
704 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
705 struct hpt_timings *t = info->timings; 708 struct hpt_timings *t = info->timings;
706 u8 itr_addr = 0x40 + (drive->dn * 4); 709 u8 itr_addr = 0x40 + (drive->dn * 4);
707 u32 old_itr = 0; 710 u32 old_itr = 0;
@@ -744,8 +747,7 @@ static void hpt3xx_maskproc(ide_drive_t *drive, int mask)
744{ 747{
745 ide_hwif_t *hwif = HWIF(drive); 748 ide_hwif_t *hwif = HWIF(drive);
746 struct pci_dev *dev = to_pci_dev(hwif->dev); 749 struct pci_dev *dev = to_pci_dev(hwif->dev);
747 struct ide_host *host = pci_get_drvdata(dev); 750 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
748 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
749 751
750 if (drive->quirk_list) { 752 if (drive->quirk_list) {
751 if (info->chip_type >= HPT370) { 753 if (info->chip_type >= HPT370) {
@@ -973,8 +975,7 @@ static int __devinit hpt37x_calibrate_dpll(struct pci_dev *dev, u16 f_low, u16 f
973static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev) 975static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev)
974{ 976{
975 unsigned long io_base = pci_resource_start(dev, 4); 977 unsigned long io_base = pci_resource_start(dev, 4);
976 struct ide_host *host = pci_get_drvdata(dev); 978 struct hpt_info *info = hpt3xx_get_info(&dev->dev);
977 struct hpt_info *info = host->host_priv + (&dev->dev == host->dev[1]);
978 const char *name = DRV_NAME; 979 const char *name = DRV_NAME;
979 u8 pci_clk, dpll_clk = 0; /* PCI and DPLL clock in MHz */ 980 u8 pci_clk, dpll_clk = 0; /* PCI and DPLL clock in MHz */
980 u8 chip_type; 981 u8 chip_type;
@@ -1217,8 +1218,7 @@ static unsigned int __devinit init_chipset_hpt366(struct pci_dev *dev)
1217static u8 hpt3xx_cable_detect(ide_hwif_t *hwif) 1218static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
1218{ 1219{
1219 struct pci_dev *dev = to_pci_dev(hwif->dev); 1220 struct pci_dev *dev = to_pci_dev(hwif->dev);
1220 struct ide_host *host = pci_get_drvdata(dev); 1221 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
1221 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
1222 u8 chip_type = info->chip_type; 1222 u8 chip_type = info->chip_type;
1223 u8 scr1 = 0, ata66 = hwif->channel ? 0x01 : 0x02; 1223 u8 scr1 = 0, ata66 = hwif->channel ? 0x01 : 0x02;
1224 1224
@@ -1262,8 +1262,7 @@ static u8 hpt3xx_cable_detect(ide_hwif_t *hwif)
1262static void __devinit init_hwif_hpt366(ide_hwif_t *hwif) 1262static void __devinit init_hwif_hpt366(ide_hwif_t *hwif)
1263{ 1263{
1264 struct pci_dev *dev = to_pci_dev(hwif->dev); 1264 struct pci_dev *dev = to_pci_dev(hwif->dev);
1265 struct ide_host *host = pci_get_drvdata(dev); 1265 struct hpt_info *info = hpt3xx_get_info(hwif->dev);
1266 struct hpt_info *info = host->host_priv + (hwif->dev == host->dev[1]);
1267 int serialize = HPT_SERIALIZE_IO; 1266 int serialize = HPT_SERIALIZE_IO;
1268 u8 chip_type = info->chip_type; 1267 u8 chip_type = info->chip_type;
1269 u8 new_mcr, old_mcr = 0; 1268 u8 new_mcr, old_mcr = 0;
diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c
index a4cdb465cd1d..87f5c5a87b98 100644
--- a/drivers/infiniband/hw/mlx4/mr.c
+++ b/drivers/infiniband/hw/mlx4/mr.c
@@ -204,6 +204,8 @@ struct ib_mr *mlx4_ib_alloc_fast_reg_mr(struct ib_pd *pd,
204 if (err) 204 if (err)
205 goto err_mr; 205 goto err_mr;
206 206
207 mr->ibmr.rkey = mr->ibmr.lkey = mr->mmr.key;
208
207 return &mr->ibmr; 209 return &mr->ibmr;
208 210
209err_mr: 211err_mr:
diff --git a/drivers/input/keyboard/bf54x-keys.c b/drivers/input/keyboard/bf54x-keys.c
index 6f227d3dbda1..e348cfccc17a 100644
--- a/drivers/input/keyboard/bf54x-keys.c
+++ b/drivers/input/keyboard/bf54x-keys.c
@@ -43,7 +43,7 @@
43#include <linux/input.h> 43#include <linux/input.h>
44 44
45#include <asm/portmux.h> 45#include <asm/portmux.h>
46#include <asm/mach/bf54x_keys.h> 46#include <mach/bf54x_keys.h>
47 47
48#define DRV_NAME "bf54x-keys" 48#define DRV_NAME "bf54x-keys"
49#define TIME_SCALE 100 /* 100 ns */ 49#define TIME_SCALE 100 /* 100 ns */
diff --git a/drivers/input/keyboard/corgikbd.c b/drivers/input/keyboard/corgikbd.c
index 134e67bf6a90..c8ed065ea0cb 100644
--- a/drivers/input/keyboard/corgikbd.c
+++ b/drivers/input/keyboard/corgikbd.c
@@ -80,9 +80,9 @@ struct corgikbd {
80#define KB_ACTIVATE_DELAY 10 80#define KB_ACTIVATE_DELAY 10
81 81
82/* Helper functions for reading the keyboard matrix 82/* Helper functions for reading the keyboard matrix
83 * Note: We should really be using pxa_gpio_mode to alter GPDR but it 83 * Note: We should really be using the generic gpio functions to alter
84 * requires a function call per GPIO bit which is excessive 84 * GPDR but it requires a function call per GPIO bit which is
85 * when we need to access 12 bits at once multiple times. 85 * excessive when we need to access 12 bits at once, multiple times.
86 * These functions must be called within local_irq_save()/local_irq_restore() 86 * These functions must be called within local_irq_save()/local_irq_restore()
87 * or similar. 87 * or similar.
88 */ 88 */
diff --git a/drivers/input/keyboard/spitzkbd.c b/drivers/input/keyboard/spitzkbd.c
index de67b8e0a799..c48b76a46a58 100644
--- a/drivers/input/keyboard/spitzkbd.c
+++ b/drivers/input/keyboard/spitzkbd.c
@@ -101,9 +101,9 @@ struct spitzkbd {
101#define KB_ACTIVATE_DELAY 10 101#define KB_ACTIVATE_DELAY 10
102 102
103/* Helper functions for reading the keyboard matrix 103/* Helper functions for reading the keyboard matrix
104 * Note: We should really be using pxa_gpio_mode to alter GPDR but it 104 * Note: We should really be using the generic gpio functions to alter
105 * requires a function call per GPIO bit which is excessive 105 * GPDR but it requires a function call per GPIO bit which is
106 * when we need to access 11 bits at once, multiple times. 106 * excessive when we need to access 11 bits at once, multiple times.
107 * These functions must be called within local_irq_save()/local_irq_restore() 107 * These functions must be called within local_irq_save()/local_irq_restore()
108 * or similar. 108 * or similar.
109 */ 109 */
diff --git a/drivers/input/keyboard/tosakbd.c b/drivers/input/keyboard/tosakbd.c
index 44cb50af3ce9..677276b12020 100644
--- a/drivers/input/keyboard/tosakbd.c
+++ b/drivers/input/keyboard/tosakbd.c
@@ -59,9 +59,9 @@ struct tosakbd {
59 59
60 60
61/* Helper functions for reading the keyboard matrix 61/* Helper functions for reading the keyboard matrix
62 * Note: We should really be using pxa_gpio_mode to alter GPDR but it 62 * Note: We should really be using the generic gpio functions to alter
63 * requires a function call per GPIO bit which is excessive 63 * GPDR but it requires a function call per GPIO bit which is
64 * when we need to access 12 bits at once, multiple times. 64 * excessive when we need to access 12 bits at once, multiple times.
65 * These functions must be called within local_irq_save()/local_irq_restore() 65 * These functions must be called within local_irq_save()/local_irq_restore()
66 * or similar. 66 * or similar.
67 */ 67 */
diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
index 2ec921bf3c60..18f4d7f6ce6d 100644
--- a/drivers/input/mouse/bcm5974.c
+++ b/drivers/input/mouse/bcm5974.c
@@ -63,7 +63,7 @@
63} 63}
64 64
65/* table of devices that work with this driver */ 65/* table of devices that work with this driver */
66static const struct usb_device_id bcm5974_table [] = { 66static const struct usb_device_id bcm5974_table[] = {
67 /* MacbookAir1.1 */ 67 /* MacbookAir1.1 */
68 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ANSI), 68 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ANSI),
69 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ISO), 69 BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING_ISO),
@@ -105,7 +105,7 @@ struct tp_header {
105 105
106/* trackpad finger structure */ 106/* trackpad finger structure */
107struct tp_finger { 107struct tp_finger {
108 __le16 origin; /* left/right origin? */ 108 __le16 origin; /* zero when switching track finger */
109 __le16 abs_x; /* absolute x coodinate */ 109 __le16 abs_x; /* absolute x coodinate */
110 __le16 abs_y; /* absolute y coodinate */ 110 __le16 abs_y; /* absolute y coodinate */
111 __le16 rel_x; /* relative x coodinate */ 111 __le16 rel_x; /* relative x coodinate */
@@ -159,6 +159,7 @@ struct bcm5974 {
159 struct bt_data *bt_data; /* button transferred data */ 159 struct bt_data *bt_data; /* button transferred data */
160 struct urb *tp_urb; /* trackpad usb request block */ 160 struct urb *tp_urb; /* trackpad usb request block */
161 struct tp_data *tp_data; /* trackpad transferred data */ 161 struct tp_data *tp_data; /* trackpad transferred data */
162 int fingers; /* number of fingers on trackpad */
162}; 163};
163 164
164/* logical dimensions */ 165/* logical dimensions */
@@ -172,6 +173,10 @@ struct bcm5974 {
172#define SN_WIDTH 100 /* width signal-to-noise ratio */ 173#define SN_WIDTH 100 /* width signal-to-noise ratio */
173#define SN_COORD 250 /* coordinate signal-to-noise ratio */ 174#define SN_COORD 250 /* coordinate signal-to-noise ratio */
174 175
176/* pressure thresholds */
177#define PRESSURE_LOW (2 * DIM_PRESSURE / SN_PRESSURE)
178#define PRESSURE_HIGH (3 * PRESSURE_LOW)
179
175/* device constants */ 180/* device constants */
176static const struct bcm5974_config bcm5974_config_table[] = { 181static const struct bcm5974_config bcm5974_config_table[] = {
177 { 182 {
@@ -248,6 +253,7 @@ static void setup_events_to_report(struct input_dev *input_dev,
248 0, cfg->y.dim, cfg->y.fuzz, 0); 253 0, cfg->y.dim, cfg->y.fuzz, 0);
249 254
250 __set_bit(EV_KEY, input_dev->evbit); 255 __set_bit(EV_KEY, input_dev->evbit);
256 __set_bit(BTN_TOUCH, input_dev->keybit);
251 __set_bit(BTN_TOOL_FINGER, input_dev->keybit); 257 __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
252 __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit); 258 __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
253 __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit); 259 __set_bit(BTN_TOOL_TRIPLETAP, input_dev->keybit);
@@ -273,32 +279,66 @@ static int report_tp_state(struct bcm5974 *dev, int size)
273 const struct tp_finger *f = dev->tp_data->finger; 279 const struct tp_finger *f = dev->tp_data->finger;
274 struct input_dev *input = dev->input; 280 struct input_dev *input = dev->input;
275 const int fingers = (size - 26) / 28; 281 const int fingers = (size - 26) / 28;
276 int p = 0, w, x, y, n = 0; 282 int raw_p, raw_w, raw_x, raw_y;
283 int ptest = 0, origin = 0, nmin = 0, nmax = 0;
284 int abs_p = 0, abs_w = 0, abs_x = 0, abs_y = 0;
277 285
278 if (size < 26 || (size - 26) % 28 != 0) 286 if (size < 26 || (size - 26) % 28 != 0)
279 return -EIO; 287 return -EIO;
280 288
289 /* always track the first finger; when detached, start over */
281 if (fingers) { 290 if (fingers) {
282 p = raw2int(f->force_major); 291 raw_p = raw2int(f->force_major);
283 w = raw2int(f->size_major); 292 raw_w = raw2int(f->size_major);
284 x = raw2int(f->abs_x); 293 raw_x = raw2int(f->abs_x);
285 y = raw2int(f->abs_y); 294 raw_y = raw2int(f->abs_y);
286 n = p > 0 ? fingers : 0;
287 295
288 dprintk(9, 296 dprintk(9,
289 "bcm5974: p: %+05d w: %+05d x: %+05d y: %+05d n: %d\n", 297 "bcm5974: raw: p: %+05d w: %+05d x: %+05d y: %+05d\n",
290 p, w, x, y, n); 298 raw_p, raw_w, raw_x, raw_y);
299
300 ptest = int2bound(&c->p, raw_p);
301 origin = raw2int(f->origin);
302 }
291 303
292 input_report_abs(input, ABS_TOOL_WIDTH, int2bound(&c->w, w)); 304 /* while tracking finger still valid, count all fingers */
293 input_report_abs(input, ABS_X, int2bound(&c->x, x - c->x.devmin)); 305 if (ptest > PRESSURE_LOW && origin) {
294 input_report_abs(input, ABS_Y, int2bound(&c->y, c->y.devmax - y)); 306 abs_p = ptest;
307 abs_w = int2bound(&c->w, raw_w);
308 abs_x = int2bound(&c->x, raw_x - c->x.devmin);
309 abs_y = int2bound(&c->y, c->y.devmax - raw_y);
310 for (; f != dev->tp_data->finger + fingers; f++) {
311 ptest = int2bound(&c->p, raw2int(f->force_major));
312 if (ptest > PRESSURE_LOW)
313 nmax++;
314 if (ptest > PRESSURE_HIGH)
315 nmin++;
316 }
295 } 317 }
296 318
297 input_report_abs(input, ABS_PRESSURE, int2bound(&c->p, p)); 319 if (dev->fingers < nmin)
320 dev->fingers = nmin;
321 if (dev->fingers > nmax)
322 dev->fingers = nmax;
323
324 input_report_key(input, BTN_TOUCH, dev->fingers > 0);
325 input_report_key(input, BTN_TOOL_FINGER, dev->fingers == 1);
326 input_report_key(input, BTN_TOOL_DOUBLETAP, dev->fingers == 2);
327 input_report_key(input, BTN_TOOL_TRIPLETAP, dev->fingers > 2);
298 328
299 input_report_key(input, BTN_TOOL_FINGER, n == 1); 329 input_report_abs(input, ABS_PRESSURE, abs_p);
300 input_report_key(input, BTN_TOOL_DOUBLETAP, n == 2); 330 input_report_abs(input, ABS_TOOL_WIDTH, abs_w);
301 input_report_key(input, BTN_TOOL_TRIPLETAP, n > 2); 331
332 if (abs_p) {
333 input_report_abs(input, ABS_X, abs_x);
334 input_report_abs(input, ABS_Y, abs_y);
335
336 dprintk(8,
337 "bcm5974: abs: p: %+05d w: %+05d x: %+05d y: %+05d "
338 "nmin: %d nmax: %d n: %d\n",
339 abs_p, abs_w, abs_x, abs_y, nmin, nmax, dev->fingers);
340
341 }
302 342
303 input_sync(input); 343 input_sync(input);
304 344
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h
index 3282b741e246..5aafe24984c5 100644
--- a/drivers/input/serio/i8042-x86ia64io.h
+++ b/drivers/input/serio/i8042-x86ia64io.h
@@ -305,7 +305,7 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = {
305 .ident = "Lenovo 3000 n100", 305 .ident = "Lenovo 3000 n100",
306 .matches = { 306 .matches = {
307 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), 307 DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
308 DMI_MATCH(DMI_PRODUCT_VERSION, "3000 N100"), 308 DMI_MATCH(DMI_PRODUCT_NAME, "076804U"),
309 }, 309 },
310 }, 310 },
311 { 311 {
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index 25287e80e236..6e1e8c624f9e 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -220,6 +220,7 @@ config TOUCHSCREEN_ATMEL_TSADCC
220config TOUCHSCREEN_UCB1400 220config TOUCHSCREEN_UCB1400
221 tristate "Philips UCB1400 touchscreen" 221 tristate "Philips UCB1400 touchscreen"
222 select AC97_BUS 222 select AC97_BUS
223 depends on UCB1400_CORE
223 help 224 help
224 This enables support for the Philips UCB1400 touchscreen interface. 225 This enables support for the Philips UCB1400 touchscreen interface.
225 The UCB1400 is an AC97 audio codec. The touchscreen interface 226 The UCB1400 is an AC97 audio codec. The touchscreen interface
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c
index ce6f48c695f5..8583c766d565 100644
--- a/drivers/input/touchscreen/ads7846.c
+++ b/drivers/input/touchscreen/ads7846.c
@@ -24,6 +24,7 @@
24#include <linux/input.h> 24#include <linux/input.h>
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/slab.h> 26#include <linux/slab.h>
27#include <linux/gpio.h>
27#include <linux/spi/spi.h> 28#include <linux/spi/spi.h>
28#include <linux/spi/ads7846.h> 29#include <linux/spi/ads7846.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
@@ -116,6 +117,7 @@ struct ads7846 {
116 void *filter_data; 117 void *filter_data;
117 void (*filter_cleanup)(void *data); 118 void (*filter_cleanup)(void *data);
118 int (*get_pendown_state)(void); 119 int (*get_pendown_state)(void);
120 int gpio_pendown;
119}; 121};
120 122
121/* leave chip selected when we're done, for quicker re-select? */ 123/* leave chip selected when we're done, for quicker re-select? */
@@ -491,6 +493,14 @@ static struct attribute_group ads784x_attr_group = {
491 493
492/*--------------------------------------------------------------------------*/ 494/*--------------------------------------------------------------------------*/
493 495
496static int get_pendown_state(struct ads7846 *ts)
497{
498 if (ts->get_pendown_state)
499 return ts->get_pendown_state();
500
501 return !gpio_get_value(ts->gpio_pendown);
502}
503
494/* 504/*
495 * PENIRQ only kicks the timer. The timer only reissues the SPI transfer, 505 * PENIRQ only kicks the timer. The timer only reissues the SPI transfer,
496 * to retrieve touchscreen status. 506 * to retrieve touchscreen status.
@@ -550,7 +560,7 @@ static void ads7846_rx(void *ads)
550 */ 560 */
551 if (ts->penirq_recheck_delay_usecs) { 561 if (ts->penirq_recheck_delay_usecs) {
552 udelay(ts->penirq_recheck_delay_usecs); 562 udelay(ts->penirq_recheck_delay_usecs);
553 if (!ts->get_pendown_state()) 563 if (!get_pendown_state(ts))
554 Rt = 0; 564 Rt = 0;
555 } 565 }
556 566
@@ -677,7 +687,7 @@ static enum hrtimer_restart ads7846_timer(struct hrtimer *handle)
677 687
678 spin_lock_irq(&ts->lock); 688 spin_lock_irq(&ts->lock);
679 689
680 if (unlikely(!ts->get_pendown_state() || 690 if (unlikely(!get_pendown_state(ts) ||
681 device_suspended(&ts->spi->dev))) { 691 device_suspended(&ts->spi->dev))) {
682 if (ts->pendown) { 692 if (ts->pendown) {
683 struct input_dev *input = ts->input; 693 struct input_dev *input = ts->input;
@@ -716,7 +726,7 @@ static irqreturn_t ads7846_irq(int irq, void *handle)
716 unsigned long flags; 726 unsigned long flags;
717 727
718 spin_lock_irqsave(&ts->lock, flags); 728 spin_lock_irqsave(&ts->lock, flags);
719 if (likely(ts->get_pendown_state())) { 729 if (likely(get_pendown_state(ts))) {
720 if (!ts->irq_disabled) { 730 if (!ts->irq_disabled) {
721 /* The ARM do_simple_IRQ() dispatcher doesn't act 731 /* The ARM do_simple_IRQ() dispatcher doesn't act
722 * like the other dispatchers: it will report IRQs 732 * like the other dispatchers: it will report IRQs
@@ -806,6 +816,36 @@ static int ads7846_resume(struct spi_device *spi)
806 return 0; 816 return 0;
807} 817}
808 818
819static int __devinit setup_pendown(struct spi_device *spi, struct ads7846 *ts)
820{
821 struct ads7846_platform_data *pdata = spi->dev.platform_data;
822 int err;
823
824 /* REVISIT when the irq can be triggered active-low, or if for some
825 * reason the touchscreen isn't hooked up, we don't need to access
826 * the pendown state.
827 */
828 if (!pdata->get_pendown_state && !gpio_is_valid(pdata->gpio_pendown)) {
829 dev_err(&spi->dev, "no get_pendown_state nor gpio_pendown?\n");
830 return -EINVAL;
831 }
832
833 if (pdata->get_pendown_state) {
834 ts->get_pendown_state = pdata->get_pendown_state;
835 return 0;
836 }
837
838 err = gpio_request(pdata->gpio_pendown, "ads7846_pendown");
839 if (err) {
840 dev_err(&spi->dev, "failed to request pendown GPIO%d\n",
841 pdata->gpio_pendown);
842 return err;
843 }
844
845 ts->gpio_pendown = pdata->gpio_pendown;
846 return 0;
847}
848
809static int __devinit ads7846_probe(struct spi_device *spi) 849static int __devinit ads7846_probe(struct spi_device *spi)
810{ 850{
811 struct ads7846 *ts; 851 struct ads7846 *ts;
@@ -833,15 +873,6 @@ static int __devinit ads7846_probe(struct spi_device *spi)
833 return -EINVAL; 873 return -EINVAL;
834 } 874 }
835 875
836 /* REVISIT when the irq can be triggered active-low, or if for some
837 * reason the touchscreen isn't hooked up, we don't need to access
838 * the pendown state.
839 */
840 if (pdata->get_pendown_state == NULL) {
841 dev_dbg(&spi->dev, "no get_pendown_state function?\n");
842 return -EINVAL;
843 }
844
845 /* We'd set TX wordsize 8 bits and RX wordsize to 13 bits ... except 876 /* We'd set TX wordsize 8 bits and RX wordsize to 13 bits ... except
846 * that even if the hardware can do that, the SPI controller driver 877 * that even if the hardware can do that, the SPI controller driver
847 * may not. So we stick to very-portable 8 bit words, both RX and TX. 878 * may not. So we stick to very-portable 8 bit words, both RX and TX.
@@ -893,7 +924,10 @@ static int __devinit ads7846_probe(struct spi_device *spi)
893 ts->filter_data = ts; 924 ts->filter_data = ts;
894 } else 925 } else
895 ts->filter = ads7846_no_filter; 926 ts->filter = ads7846_no_filter;
896 ts->get_pendown_state = pdata->get_pendown_state; 927
928 err = setup_pendown(spi, ts);
929 if (err)
930 goto err_cleanup_filter;
897 931
898 if (pdata->penirq_recheck_delay_usecs) 932 if (pdata->penirq_recheck_delay_usecs)
899 ts->penirq_recheck_delay_usecs = 933 ts->penirq_recheck_delay_usecs =
@@ -1085,7 +1119,7 @@ static int __devinit ads7846_probe(struct spi_device *spi)
1085 spi->dev.driver->name, ts)) { 1119 spi->dev.driver->name, ts)) {
1086 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq); 1120 dev_dbg(&spi->dev, "irq %d busy?\n", spi->irq);
1087 err = -EBUSY; 1121 err = -EBUSY;
1088 goto err_cleanup_filter; 1122 goto err_free_gpio;
1089 } 1123 }
1090 1124
1091 err = ads784x_hwmon_register(spi, ts); 1125 err = ads784x_hwmon_register(spi, ts);
@@ -1116,6 +1150,9 @@ static int __devinit ads7846_probe(struct spi_device *spi)
1116 ads784x_hwmon_unregister(spi, ts); 1150 ads784x_hwmon_unregister(spi, ts);
1117 err_free_irq: 1151 err_free_irq:
1118 free_irq(spi->irq, ts); 1152 free_irq(spi->irq, ts);
1153 err_free_gpio:
1154 if (ts->gpio_pendown != -1)
1155 gpio_free(ts->gpio_pendown);
1119 err_cleanup_filter: 1156 err_cleanup_filter:
1120 if (ts->filter_cleanup) 1157 if (ts->filter_cleanup)
1121 ts->filter_cleanup(ts->filter_data); 1158 ts->filter_cleanup(ts->filter_data);
@@ -1140,6 +1177,9 @@ static int __devexit ads7846_remove(struct spi_device *spi)
1140 /* suspend left the IRQ disabled */ 1177 /* suspend left the IRQ disabled */
1141 enable_irq(ts->spi->irq); 1178 enable_irq(ts->spi->irq);
1142 1179
1180 if (ts->gpio_pendown != -1)
1181 gpio_free(ts->gpio_pendown);
1182
1143 if (ts->filter_cleanup) 1183 if (ts->filter_cleanup)
1144 ts->filter_cleanup(ts->filter_data); 1184 ts->filter_cleanup(ts->filter_data);
1145 1185
diff --git a/drivers/input/touchscreen/ucb1400_ts.c b/drivers/input/touchscreen/ucb1400_ts.c
index bce018e45bce..54986627def0 100644
--- a/drivers/input/touchscreen/ucb1400_ts.c
+++ b/drivers/input/touchscreen/ucb1400_ts.c
@@ -5,6 +5,10 @@
5 * Created: September 25, 2006 5 * Created: September 25, 2006
6 * Copyright: MontaVista Software, Inc. 6 * Copyright: MontaVista Software, Inc.
7 * 7 *
8 * Spliting done by: Marek Vasut <marek.vasut@gmail.com>
9 * If something doesnt work and it worked before spliting, e-mail me,
10 * dont bother Nicolas please ;-)
11 *
8 * 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
9 * it under the terms of the GNU General Public License version 2 as 13 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation. 14 * published by the Free Software Foundation.
@@ -25,124 +29,16 @@
25#include <linux/slab.h> 29#include <linux/slab.h>
26#include <linux/kthread.h> 30#include <linux/kthread.h>
27#include <linux/freezer.h> 31#include <linux/freezer.h>
28 32#include <linux/ucb1400.h>
29#include <sound/core.h>
30#include <sound/ac97_codec.h>
31
32
33/*
34 * Interesting UCB1400 AC-link registers
35 */
36
37#define UCB_IE_RIS 0x5e
38#define UCB_IE_FAL 0x60
39#define UCB_IE_STATUS 0x62
40#define UCB_IE_CLEAR 0x62
41#define UCB_IE_ADC (1 << 11)
42#define UCB_IE_TSPX (1 << 12)
43
44#define UCB_TS_CR 0x64
45#define UCB_TS_CR_TSMX_POW (1 << 0)
46#define UCB_TS_CR_TSPX_POW (1 << 1)
47#define UCB_TS_CR_TSMY_POW (1 << 2)
48#define UCB_TS_CR_TSPY_POW (1 << 3)
49#define UCB_TS_CR_TSMX_GND (1 << 4)
50#define UCB_TS_CR_TSPX_GND (1 << 5)
51#define UCB_TS_CR_TSMY_GND (1 << 6)
52#define UCB_TS_CR_TSPY_GND (1 << 7)
53#define UCB_TS_CR_MODE_INT (0 << 8)
54#define UCB_TS_CR_MODE_PRES (1 << 8)
55#define UCB_TS_CR_MODE_POS (2 << 8)
56#define UCB_TS_CR_BIAS_ENA (1 << 11)
57#define UCB_TS_CR_TSPX_LOW (1 << 12)
58#define UCB_TS_CR_TSMX_LOW (1 << 13)
59
60#define UCB_ADC_CR 0x66
61#define UCB_ADC_SYNC_ENA (1 << 0)
62#define UCB_ADC_VREFBYP_CON (1 << 1)
63#define UCB_ADC_INP_TSPX (0 << 2)
64#define UCB_ADC_INP_TSMX (1 << 2)
65#define UCB_ADC_INP_TSPY (2 << 2)
66#define UCB_ADC_INP_TSMY (3 << 2)
67#define UCB_ADC_INP_AD0 (4 << 2)
68#define UCB_ADC_INP_AD1 (5 << 2)
69#define UCB_ADC_INP_AD2 (6 << 2)
70#define UCB_ADC_INP_AD3 (7 << 2)
71#define UCB_ADC_EXT_REF (1 << 5)
72#define UCB_ADC_START (1 << 7)
73#define UCB_ADC_ENA (1 << 15)
74
75#define UCB_ADC_DATA 0x68
76#define UCB_ADC_DAT_VALID (1 << 15)
77#define UCB_ADC_DAT_VALUE(x) ((x) & 0x3ff)
78
79#define UCB_ID 0x7e
80#define UCB_ID_1400 0x4304
81
82
83struct ucb1400 {
84 struct snd_ac97 *ac97;
85 struct input_dev *ts_idev;
86
87 int irq;
88
89 wait_queue_head_t ts_wait;
90 struct task_struct *ts_task;
91
92 unsigned int irq_pending; /* not bit field shared */
93 unsigned int ts_restart:1;
94 unsigned int adcsync:1;
95};
96 33
97static int adcsync; 34static int adcsync;
98static int ts_delay = 55; /* us */ 35static int ts_delay = 55; /* us */
99static int ts_delay_pressure; /* us */ 36static int ts_delay_pressure; /* us */
100 37
101static inline u16 ucb1400_reg_read(struct ucb1400 *ucb, u16 reg)
102{
103 return ucb->ac97->bus->ops->read(ucb->ac97, reg);
104}
105
106static inline void ucb1400_reg_write(struct ucb1400 *ucb, u16 reg, u16 val)
107{
108 ucb->ac97->bus->ops->write(ucb->ac97, reg, val);
109}
110
111static inline void ucb1400_adc_enable(struct ucb1400 *ucb)
112{
113 ucb1400_reg_write(ucb, UCB_ADC_CR, UCB_ADC_ENA);
114}
115
116static unsigned int ucb1400_adc_read(struct ucb1400 *ucb, u16 adc_channel)
117{
118 unsigned int val;
119
120 if (ucb->adcsync)
121 adc_channel |= UCB_ADC_SYNC_ENA;
122
123 ucb1400_reg_write(ucb, UCB_ADC_CR, UCB_ADC_ENA | adc_channel);
124 ucb1400_reg_write(ucb, UCB_ADC_CR, UCB_ADC_ENA | adc_channel | UCB_ADC_START);
125
126 for (;;) {
127 val = ucb1400_reg_read(ucb, UCB_ADC_DATA);
128 if (val & UCB_ADC_DAT_VALID)
129 break;
130 /* yield to other processes */
131 schedule_timeout_uninterruptible(1);
132 }
133
134 return UCB_ADC_DAT_VALUE(val);
135}
136
137static inline void ucb1400_adc_disable(struct ucb1400 *ucb)
138{
139 ucb1400_reg_write(ucb, UCB_ADC_CR, 0);
140}
141
142/* Switch to interrupt mode. */ 38/* Switch to interrupt mode. */
143static inline void ucb1400_ts_mode_int(struct ucb1400 *ucb) 39static inline void ucb1400_ts_mode_int(struct snd_ac97 *ac97)
144{ 40{
145 ucb1400_reg_write(ucb, UCB_TS_CR, 41 ucb1400_reg_write(ac97, UCB_TS_CR,
146 UCB_TS_CR_TSMX_POW | UCB_TS_CR_TSPX_POW | 42 UCB_TS_CR_TSMX_POW | UCB_TS_CR_TSPX_POW |
147 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND | 43 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND |
148 UCB_TS_CR_MODE_INT); 44 UCB_TS_CR_MODE_INT);
@@ -152,14 +48,14 @@ static inline void ucb1400_ts_mode_int(struct ucb1400 *ucb)
152 * Switch to pressure mode, and read pressure. We don't need to wait 48 * Switch to pressure mode, and read pressure. We don't need to wait
153 * here, since both plates are being driven. 49 * here, since both plates are being driven.
154 */ 50 */
155static inline unsigned int ucb1400_ts_read_pressure(struct ucb1400 *ucb) 51static inline unsigned int ucb1400_ts_read_pressure(struct ucb1400_ts *ucb)
156{ 52{
157 ucb1400_reg_write(ucb, UCB_TS_CR, 53 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
158 UCB_TS_CR_TSMX_POW | UCB_TS_CR_TSPX_POW | 54 UCB_TS_CR_TSMX_POW | UCB_TS_CR_TSPX_POW |
159 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND | 55 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_GND |
160 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); 56 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
161 udelay(ts_delay_pressure); 57 udelay(ts_delay_pressure);
162 return ucb1400_adc_read(ucb, UCB_ADC_INP_TSPY); 58 return ucb1400_adc_read(ucb->ac97, UCB_ADC_INP_TSPY, adcsync);
163} 59}
164 60
165/* 61/*
@@ -168,21 +64,21 @@ static inline unsigned int ucb1400_ts_read_pressure(struct ucb1400 *ucb)
168 * gives a faster response time. Even so, we need to wait about 55us 64 * gives a faster response time. Even so, we need to wait about 55us
169 * for things to stabilise. 65 * for things to stabilise.
170 */ 66 */
171static inline unsigned int ucb1400_ts_read_xpos(struct ucb1400 *ucb) 67static inline unsigned int ucb1400_ts_read_xpos(struct ucb1400_ts *ucb)
172{ 68{
173 ucb1400_reg_write(ucb, UCB_TS_CR, 69 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
174 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | 70 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW |
175 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); 71 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
176 ucb1400_reg_write(ucb, UCB_TS_CR, 72 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
177 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | 73 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW |
178 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); 74 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
179 ucb1400_reg_write(ucb, UCB_TS_CR, 75 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
180 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | 76 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW |
181 UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA); 77 UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA);
182 78
183 udelay(ts_delay); 79 udelay(ts_delay);
184 80
185 return ucb1400_adc_read(ucb, UCB_ADC_INP_TSPY); 81 return ucb1400_adc_read(ucb->ac97, UCB_ADC_INP_TSPY, adcsync);
186} 82}
187 83
188/* 84/*
@@ -191,63 +87,63 @@ static inline unsigned int ucb1400_ts_read_xpos(struct ucb1400 *ucb)
191 * gives a faster response time. Even so, we need to wait about 55us 87 * gives a faster response time. Even so, we need to wait about 55us
192 * for things to stabilise. 88 * for things to stabilise.
193 */ 89 */
194static inline unsigned int ucb1400_ts_read_ypos(struct ucb1400 *ucb) 90static inline unsigned int ucb1400_ts_read_ypos(struct ucb1400_ts *ucb)
195{ 91{
196 ucb1400_reg_write(ucb, UCB_TS_CR, 92 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
197 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | 93 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW |
198 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); 94 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
199 ucb1400_reg_write(ucb, UCB_TS_CR, 95 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
200 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | 96 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW |
201 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); 97 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
202 ucb1400_reg_write(ucb, UCB_TS_CR, 98 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
203 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | 99 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW |
204 UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA); 100 UCB_TS_CR_MODE_POS | UCB_TS_CR_BIAS_ENA);
205 101
206 udelay(ts_delay); 102 udelay(ts_delay);
207 103
208 return ucb1400_adc_read(ucb, UCB_ADC_INP_TSPX); 104 return ucb1400_adc_read(ucb->ac97, UCB_ADC_INP_TSPX, adcsync);
209} 105}
210 106
211/* 107/*
212 * Switch to X plate resistance mode. Set MX to ground, PX to 108 * Switch to X plate resistance mode. Set MX to ground, PX to
213 * supply. Measure current. 109 * supply. Measure current.
214 */ 110 */
215static inline unsigned int ucb1400_ts_read_xres(struct ucb1400 *ucb) 111static inline unsigned int ucb1400_ts_read_xres(struct ucb1400_ts *ucb)
216{ 112{
217 ucb1400_reg_write(ucb, UCB_TS_CR, 113 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
218 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW | 114 UCB_TS_CR_TSMX_GND | UCB_TS_CR_TSPX_POW |
219 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); 115 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
220 return ucb1400_adc_read(ucb, 0); 116 return ucb1400_adc_read(ucb->ac97, 0, adcsync);
221} 117}
222 118
223/* 119/*
224 * Switch to Y plate resistance mode. Set MY to ground, PY to 120 * Switch to Y plate resistance mode. Set MY to ground, PY to
225 * supply. Measure current. 121 * supply. Measure current.
226 */ 122 */
227static inline unsigned int ucb1400_ts_read_yres(struct ucb1400 *ucb) 123static inline unsigned int ucb1400_ts_read_yres(struct ucb1400_ts *ucb)
228{ 124{
229 ucb1400_reg_write(ucb, UCB_TS_CR, 125 ucb1400_reg_write(ucb->ac97, UCB_TS_CR,
230 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW | 126 UCB_TS_CR_TSMY_GND | UCB_TS_CR_TSPY_POW |
231 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA); 127 UCB_TS_CR_MODE_PRES | UCB_TS_CR_BIAS_ENA);
232 return ucb1400_adc_read(ucb, 0); 128 return ucb1400_adc_read(ucb->ac97, 0, adcsync);
233} 129}
234 130
235static inline int ucb1400_ts_pen_down(struct ucb1400 *ucb) 131static inline int ucb1400_ts_pen_down(struct snd_ac97 *ac97)
236{ 132{
237 unsigned short val = ucb1400_reg_read(ucb, UCB_TS_CR); 133 unsigned short val = ucb1400_reg_read(ac97, UCB_TS_CR);
238 return (val & (UCB_TS_CR_TSPX_LOW | UCB_TS_CR_TSMX_LOW)); 134 return val & (UCB_TS_CR_TSPX_LOW | UCB_TS_CR_TSMX_LOW);
239} 135}
240 136
241static inline void ucb1400_ts_irq_enable(struct ucb1400 *ucb) 137static inline void ucb1400_ts_irq_enable(struct snd_ac97 *ac97)
242{ 138{
243 ucb1400_reg_write(ucb, UCB_IE_CLEAR, UCB_IE_TSPX); 139 ucb1400_reg_write(ac97, UCB_IE_CLEAR, UCB_IE_TSPX);
244 ucb1400_reg_write(ucb, UCB_IE_CLEAR, 0); 140 ucb1400_reg_write(ac97, UCB_IE_CLEAR, 0);
245 ucb1400_reg_write(ucb, UCB_IE_FAL, UCB_IE_TSPX); 141 ucb1400_reg_write(ac97, UCB_IE_FAL, UCB_IE_TSPX);
246} 142}
247 143
248static inline void ucb1400_ts_irq_disable(struct ucb1400 *ucb) 144static inline void ucb1400_ts_irq_disable(struct snd_ac97 *ac97)
249{ 145{
250 ucb1400_reg_write(ucb, UCB_IE_FAL, 0); 146 ucb1400_reg_write(ac97, UCB_IE_FAL, 0);
251} 147}
252 148
253static void ucb1400_ts_evt_add(struct input_dev *idev, u16 pressure, u16 x, u16 y) 149static void ucb1400_ts_evt_add(struct input_dev *idev, u16 pressure, u16 x, u16 y)
@@ -264,25 +160,24 @@ static void ucb1400_ts_event_release(struct input_dev *idev)
264 input_sync(idev); 160 input_sync(idev);
265} 161}
266 162
267static void ucb1400_handle_pending_irq(struct ucb1400 *ucb) 163static void ucb1400_handle_pending_irq(struct ucb1400_ts *ucb)
268{ 164{
269 unsigned int isr; 165 unsigned int isr;
270 166
271 isr = ucb1400_reg_read(ucb, UCB_IE_STATUS); 167 isr = ucb1400_reg_read(ucb->ac97, UCB_IE_STATUS);
272 ucb1400_reg_write(ucb, UCB_IE_CLEAR, isr); 168 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, isr);
273 ucb1400_reg_write(ucb, UCB_IE_CLEAR, 0); 169 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0);
274 170
275 if (isr & UCB_IE_TSPX) 171 if (isr & UCB_IE_TSPX) {
276 ucb1400_ts_irq_disable(ucb); 172 ucb1400_ts_irq_disable(ucb->ac97);
277 else 173 enable_irq(ucb->irq);
174 } else
278 printk(KERN_ERR "ucb1400: unexpected IE_STATUS = %#x\n", isr); 175 printk(KERN_ERR "ucb1400: unexpected IE_STATUS = %#x\n", isr);
279
280 enable_irq(ucb->irq);
281} 176}
282 177
283static int ucb1400_ts_thread(void *_ucb) 178static int ucb1400_ts_thread(void *_ucb)
284{ 179{
285 struct ucb1400 *ucb = _ucb; 180 struct ucb1400_ts *ucb = _ucb;
286 struct task_struct *tsk = current; 181 struct task_struct *tsk = current;
287 int valid = 0; 182 int valid = 0;
288 struct sched_param param = { .sched_priority = 1 }; 183 struct sched_param param = { .sched_priority = 1 };
@@ -301,19 +196,19 @@ static int ucb1400_ts_thread(void *_ucb)
301 ucb1400_handle_pending_irq(ucb); 196 ucb1400_handle_pending_irq(ucb);
302 } 197 }
303 198
304 ucb1400_adc_enable(ucb); 199 ucb1400_adc_enable(ucb->ac97);
305 x = ucb1400_ts_read_xpos(ucb); 200 x = ucb1400_ts_read_xpos(ucb);
306 y = ucb1400_ts_read_ypos(ucb); 201 y = ucb1400_ts_read_ypos(ucb);
307 p = ucb1400_ts_read_pressure(ucb); 202 p = ucb1400_ts_read_pressure(ucb);
308 ucb1400_adc_disable(ucb); 203 ucb1400_adc_disable(ucb->ac97);
309 204
310 /* Switch back to interrupt mode. */ 205 /* Switch back to interrupt mode. */
311 ucb1400_ts_mode_int(ucb); 206 ucb1400_ts_mode_int(ucb->ac97);
312 207
313 msleep(10); 208 msleep(10);
314 209
315 if (ucb1400_ts_pen_down(ucb)) { 210 if (ucb1400_ts_pen_down(ucb->ac97)) {
316 ucb1400_ts_irq_enable(ucb); 211 ucb1400_ts_irq_enable(ucb->ac97);
317 212
318 /* 213 /*
319 * If we spat out a valid sample set last time, 214 * If we spat out a valid sample set last time,
@@ -332,8 +227,8 @@ static int ucb1400_ts_thread(void *_ucb)
332 } 227 }
333 228
334 wait_event_freezable_timeout(ucb->ts_wait, 229 wait_event_freezable_timeout(ucb->ts_wait,
335 ucb->irq_pending || ucb->ts_restart || kthread_should_stop(), 230 ucb->irq_pending || ucb->ts_restart ||
336 timeout); 231 kthread_should_stop(), timeout);
337 } 232 }
338 233
339 /* Send the "pen off" if we are stopping with the pen still active */ 234 /* Send the "pen off" if we are stopping with the pen still active */
@@ -356,7 +251,7 @@ static int ucb1400_ts_thread(void *_ucb)
356 */ 251 */
357static irqreturn_t ucb1400_hard_irq(int irqnr, void *devid) 252static irqreturn_t ucb1400_hard_irq(int irqnr, void *devid)
358{ 253{
359 struct ucb1400 *ucb = devid; 254 struct ucb1400_ts *ucb = devid;
360 255
361 if (irqnr == ucb->irq) { 256 if (irqnr == ucb->irq) {
362 disable_irq(ucb->irq); 257 disable_irq(ucb->irq);
@@ -369,7 +264,7 @@ static irqreturn_t ucb1400_hard_irq(int irqnr, void *devid)
369 264
370static int ucb1400_ts_open(struct input_dev *idev) 265static int ucb1400_ts_open(struct input_dev *idev)
371{ 266{
372 struct ucb1400 *ucb = input_get_drvdata(idev); 267 struct ucb1400_ts *ucb = input_get_drvdata(idev);
373 int ret = 0; 268 int ret = 0;
374 269
375 BUG_ON(ucb->ts_task); 270 BUG_ON(ucb->ts_task);
@@ -385,34 +280,14 @@ static int ucb1400_ts_open(struct input_dev *idev)
385 280
386static void ucb1400_ts_close(struct input_dev *idev) 281static void ucb1400_ts_close(struct input_dev *idev)
387{ 282{
388 struct ucb1400 *ucb = input_get_drvdata(idev); 283 struct ucb1400_ts *ucb = input_get_drvdata(idev);
389 284
390 if (ucb->ts_task) 285 if (ucb->ts_task)
391 kthread_stop(ucb->ts_task); 286 kthread_stop(ucb->ts_task);
392 287
393 ucb1400_ts_irq_disable(ucb); 288 ucb1400_ts_irq_disable(ucb->ac97);
394 ucb1400_reg_write(ucb, UCB_TS_CR, 0); 289 ucb1400_reg_write(ucb->ac97, UCB_TS_CR, 0);
395}
396
397#ifdef CONFIG_PM
398static int ucb1400_ts_resume(struct device *dev)
399{
400 struct ucb1400 *ucb = dev_get_drvdata(dev);
401
402 if (ucb->ts_task) {
403 /*
404 * Restart the TS thread to ensure the
405 * TS interrupt mode is set up again
406 * after sleep.
407 */
408 ucb->ts_restart = 1;
409 wake_up(&ucb->ts_wait);
410 }
411 return 0;
412} 290}
413#else
414#define ucb1400_ts_resume NULL
415#endif
416 291
417#ifndef NO_IRQ 292#ifndef NO_IRQ
418#define NO_IRQ 0 293#define NO_IRQ 0
@@ -422,25 +297,26 @@ static int ucb1400_ts_resume(struct device *dev)
422 * Try to probe our interrupt, rather than relying on lots of 297 * Try to probe our interrupt, rather than relying on lots of
423 * hard-coded machine dependencies. 298 * hard-coded machine dependencies.
424 */ 299 */
425static int ucb1400_detect_irq(struct ucb1400 *ucb) 300static int ucb1400_ts_detect_irq(struct ucb1400_ts *ucb)
426{ 301{
427 unsigned long mask, timeout; 302 unsigned long mask, timeout;
428 303
429 mask = probe_irq_on(); 304 mask = probe_irq_on();
430 305
431 /* Enable the ADC interrupt. */ 306 /* Enable the ADC interrupt. */
432 ucb1400_reg_write(ucb, UCB_IE_RIS, UCB_IE_ADC); 307 ucb1400_reg_write(ucb->ac97, UCB_IE_RIS, UCB_IE_ADC);
433 ucb1400_reg_write(ucb, UCB_IE_FAL, UCB_IE_ADC); 308 ucb1400_reg_write(ucb->ac97, UCB_IE_FAL, UCB_IE_ADC);
434 ucb1400_reg_write(ucb, UCB_IE_CLEAR, 0xffff); 309 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0xffff);
435 ucb1400_reg_write(ucb, UCB_IE_CLEAR, 0); 310 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0);
436 311
437 /* Cause an ADC interrupt. */ 312 /* Cause an ADC interrupt. */
438 ucb1400_reg_write(ucb, UCB_ADC_CR, UCB_ADC_ENA); 313 ucb1400_reg_write(ucb->ac97, UCB_ADC_CR, UCB_ADC_ENA);
439 ucb1400_reg_write(ucb, UCB_ADC_CR, UCB_ADC_ENA | UCB_ADC_START); 314 ucb1400_reg_write(ucb->ac97, UCB_ADC_CR, UCB_ADC_ENA | UCB_ADC_START);
440 315
441 /* Wait for the conversion to complete. */ 316 /* Wait for the conversion to complete. */
442 timeout = jiffies + HZ/2; 317 timeout = jiffies + HZ/2;
443 while (!(ucb1400_reg_read(ucb, UCB_ADC_DATA) & UCB_ADC_DAT_VALID)) { 318 while (!(ucb1400_reg_read(ucb->ac97, UCB_ADC_DATA) &
319 UCB_ADC_DAT_VALID)) {
444 cpu_relax(); 320 cpu_relax();
445 if (time_after(jiffies, timeout)) { 321 if (time_after(jiffies, timeout)) {
446 printk(KERN_ERR "ucb1400: timed out in IRQ probe\n"); 322 printk(KERN_ERR "ucb1400: timed out in IRQ probe\n");
@@ -448,13 +324,13 @@ static int ucb1400_detect_irq(struct ucb1400 *ucb)
448 return -ENODEV; 324 return -ENODEV;
449 } 325 }
450 } 326 }
451 ucb1400_reg_write(ucb, UCB_ADC_CR, 0); 327 ucb1400_reg_write(ucb->ac97, UCB_ADC_CR, 0);
452 328
453 /* Disable and clear interrupt. */ 329 /* Disable and clear interrupt. */
454 ucb1400_reg_write(ucb, UCB_IE_RIS, 0); 330 ucb1400_reg_write(ucb->ac97, UCB_IE_RIS, 0);
455 ucb1400_reg_write(ucb, UCB_IE_FAL, 0); 331 ucb1400_reg_write(ucb->ac97, UCB_IE_FAL, 0);
456 ucb1400_reg_write(ucb, UCB_IE_CLEAR, 0xffff); 332 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0xffff);
457 ucb1400_reg_write(ucb, UCB_IE_CLEAR, 0); 333 ucb1400_reg_write(ucb->ac97, UCB_IE_CLEAR, 0);
458 334
459 /* Read triggered interrupt. */ 335 /* Read triggered interrupt. */
460 ucb->irq = probe_irq_off(mask); 336 ucb->irq = probe_irq_off(mask);
@@ -464,36 +340,25 @@ static int ucb1400_detect_irq(struct ucb1400 *ucb)
464 return 0; 340 return 0;
465} 341}
466 342
467static int ucb1400_ts_probe(struct device *dev) 343static int ucb1400_ts_probe(struct platform_device *dev)
468{ 344{
469 struct ucb1400 *ucb; 345 int error, x_res, y_res;
470 struct input_dev *idev; 346 struct ucb1400_ts *ucb = dev->dev.platform_data;
471 int error, id, x_res, y_res;
472 347
473 ucb = kzalloc(sizeof(struct ucb1400), GFP_KERNEL); 348 ucb->ts_idev = input_allocate_device();
474 idev = input_allocate_device(); 349 if (!ucb->ts_idev) {
475 if (!ucb || !idev) {
476 error = -ENOMEM; 350 error = -ENOMEM;
477 goto err_free_devs; 351 goto err;
478 } 352 }
479 353
480 ucb->ts_idev = idev; 354 error = ucb1400_ts_detect_irq(ucb);
481 ucb->adcsync = adcsync;
482 ucb->ac97 = to_ac97_t(dev);
483 init_waitqueue_head(&ucb->ts_wait);
484
485 id = ucb1400_reg_read(ucb, UCB_ID);
486 if (id != UCB_ID_1400) {
487 error = -ENODEV;
488 goto err_free_devs;
489 }
490
491 error = ucb1400_detect_irq(ucb);
492 if (error) { 355 if (error) {
493 printk(KERN_ERR "UCB1400: IRQ probe failed\n"); 356 printk(KERN_ERR "UCB1400: IRQ probe failed\n");
494 goto err_free_devs; 357 goto err_free_devs;
495 } 358 }
496 359
360 init_waitqueue_head(&ucb->ts_wait);
361
497 error = request_irq(ucb->irq, ucb1400_hard_irq, IRQF_TRIGGER_RISING, 362 error = request_irq(ucb->irq, ucb1400_hard_irq, IRQF_TRIGGER_RISING,
498 "UCB1400", ucb); 363 "UCB1400", ucb);
499 if (error) { 364 if (error) {
@@ -503,80 +368,101 @@ static int ucb1400_ts_probe(struct device *dev)
503 } 368 }
504 printk(KERN_DEBUG "UCB1400: found IRQ %d\n", ucb->irq); 369 printk(KERN_DEBUG "UCB1400: found IRQ %d\n", ucb->irq);
505 370
506 input_set_drvdata(idev, ucb); 371 input_set_drvdata(ucb->ts_idev, ucb);
507 372
508 idev->dev.parent = dev; 373 ucb->ts_idev->dev.parent = &dev->dev;
509 idev->name = "UCB1400 touchscreen interface"; 374 ucb->ts_idev->name = "UCB1400 touchscreen interface";
510 idev->id.vendor = ucb1400_reg_read(ucb, AC97_VENDOR_ID1); 375 ucb->ts_idev->id.vendor = ucb1400_reg_read(ucb->ac97,
511 idev->id.product = id; 376 AC97_VENDOR_ID1);
512 idev->open = ucb1400_ts_open; 377 ucb->ts_idev->id.product = ucb->id;
513 idev->close = ucb1400_ts_close; 378 ucb->ts_idev->open = ucb1400_ts_open;
514 idev->evbit[0] = BIT_MASK(EV_ABS); 379 ucb->ts_idev->close = ucb1400_ts_close;
380 ucb->ts_idev->evbit[0] = BIT_MASK(EV_ABS);
515 381
516 ucb1400_adc_enable(ucb); 382 ucb1400_adc_enable(ucb->ac97);
517 x_res = ucb1400_ts_read_xres(ucb); 383 x_res = ucb1400_ts_read_xres(ucb);
518 y_res = ucb1400_ts_read_yres(ucb); 384 y_res = ucb1400_ts_read_yres(ucb);
519 ucb1400_adc_disable(ucb); 385 ucb1400_adc_disable(ucb->ac97);
520 printk(KERN_DEBUG "UCB1400: x/y = %d/%d\n", x_res, y_res); 386 printk(KERN_DEBUG "UCB1400: x/y = %d/%d\n", x_res, y_res);
521 387
522 input_set_abs_params(idev, ABS_X, 0, x_res, 0, 0); 388 input_set_abs_params(ucb->ts_idev, ABS_X, 0, x_res, 0, 0);
523 input_set_abs_params(idev, ABS_Y, 0, y_res, 0, 0); 389 input_set_abs_params(ucb->ts_idev, ABS_Y, 0, y_res, 0, 0);
524 input_set_abs_params(idev, ABS_PRESSURE, 0, 0, 0, 0); 390 input_set_abs_params(ucb->ts_idev, ABS_PRESSURE, 0, 0, 0, 0);
525 391
526 error = input_register_device(idev); 392 error = input_register_device(ucb->ts_idev);
527 if (error) 393 if (error)
528 goto err_free_irq; 394 goto err_free_irq;
529 395
530 dev_set_drvdata(dev, ucb);
531 return 0; 396 return 0;
532 397
533 err_free_irq: 398err_free_irq:
534 free_irq(ucb->irq, ucb); 399 free_irq(ucb->irq, ucb);
535 err_free_devs: 400err_free_devs:
536 input_free_device(idev); 401 input_free_device(ucb->ts_idev);
537 kfree(ucb); 402err:
538 return error; 403 return error;
404
539} 405}
540 406
541static int ucb1400_ts_remove(struct device *dev) 407static int ucb1400_ts_remove(struct platform_device *dev)
542{ 408{
543 struct ucb1400 *ucb = dev_get_drvdata(dev); 409 struct ucb1400_ts *ucb = dev->dev.platform_data;
544 410
545 free_irq(ucb->irq, ucb); 411 free_irq(ucb->irq, ucb);
546 input_unregister_device(ucb->ts_idev); 412 input_unregister_device(ucb->ts_idev);
547 dev_set_drvdata(dev, NULL);
548 kfree(ucb);
549 return 0; 413 return 0;
550} 414}
551 415
552static struct device_driver ucb1400_ts_driver = { 416#ifdef CONFIG_PM
553 .name = "ucb1400_ts", 417static int ucb1400_ts_resume(struct platform_device *dev)
554 .owner = THIS_MODULE, 418{
555 .bus = &ac97_bus_type, 419 struct ucb1400_ts *ucb = platform_get_drvdata(dev);
556 .probe = ucb1400_ts_probe, 420
557 .remove = ucb1400_ts_remove, 421 if (ucb->ts_task) {
558 .resume = ucb1400_ts_resume, 422 /*
423 * Restart the TS thread to ensure the
424 * TS interrupt mode is set up again
425 * after sleep.
426 */
427 ucb->ts_restart = 1;
428 wake_up(&ucb->ts_wait);
429 }
430 return 0;
431}
432#else
433#define ucb1400_ts_resume NULL
434#endif
435
436static struct platform_driver ucb1400_ts_driver = {
437 .probe = ucb1400_ts_probe,
438 .remove = ucb1400_ts_remove,
439 .resume = ucb1400_ts_resume,
440 .driver = {
441 .name = "ucb1400_ts",
442 },
559}; 443};
560 444
561static int __init ucb1400_ts_init(void) 445static int __init ucb1400_ts_init(void)
562{ 446{
563 return driver_register(&ucb1400_ts_driver); 447 return platform_driver_register(&ucb1400_ts_driver);
564} 448}
565 449
566static void __exit ucb1400_ts_exit(void) 450static void __exit ucb1400_ts_exit(void)
567{ 451{
568 driver_unregister(&ucb1400_ts_driver); 452 platform_driver_unregister(&ucb1400_ts_driver);
569} 453}
570 454
571module_param(adcsync, bool, 0444); 455module_param(adcsync, bool, 0444);
572MODULE_PARM_DESC(adcsync, "Synchronize touch readings with ADCSYNC pin."); 456MODULE_PARM_DESC(adcsync, "Synchronize touch readings with ADCSYNC pin.");
573 457
574module_param(ts_delay, int, 0444); 458module_param(ts_delay, int, 0444);
575MODULE_PARM_DESC(ts_delay, "Delay between panel setup and position read. Default = 55us."); 459MODULE_PARM_DESC(ts_delay, "Delay between panel setup and"
460 " position read. Default = 55us.");
576 461
577module_param(ts_delay_pressure, int, 0444); 462module_param(ts_delay_pressure, int, 0444);
578MODULE_PARM_DESC(ts_delay_pressure, 463MODULE_PARM_DESC(ts_delay_pressure,
579 "delay between panel setup and pressure read. Default = 0us."); 464 "delay between panel setup and pressure read."
465 " Default = 0us.");
580 466
581module_init(ucb1400_ts_init); 467module_init(ucb1400_ts_init);
582module_exit(ucb1400_ts_exit); 468module_exit(ucb1400_ts_exit);
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index 9556262dda5a..5b14262af017 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -24,13 +24,6 @@ config LEDS_ATMEL_PWM
24 This option enables support for LEDs driven using outputs 24 This option enables support for LEDs driven using outputs
25 of the dedicated PWM controller found on newer Atmel SOCs. 25 of the dedicated PWM controller found on newer Atmel SOCs.
26 26
27config LEDS_CORGI
28 tristate "LED Support for the Sharp SL-C7x0 series"
29 depends on LEDS_CLASS && PXA_SHARP_C7xx
30 help
31 This option enables support for the LEDs on Sharp Zaurus
32 SL-C7x0 series (C700, C750, C760, C860).
33
34config LEDS_LOCOMO 27config LEDS_LOCOMO
35 tristate "LED Support for Locomo device" 28 tristate "LED Support for Locomo device"
36 depends on LEDS_CLASS && SHARP_LOCOMO 29 depends on LEDS_CLASS && SHARP_LOCOMO
@@ -38,13 +31,6 @@ config LEDS_LOCOMO
38 This option enables support for the LEDs on Sharp Locomo. 31 This option enables support for the LEDs on Sharp Locomo.
39 Zaurus models SL-5500 and SL-5600. 32 Zaurus models SL-5500 and SL-5600.
40 33
41config LEDS_SPITZ
42 tristate "LED Support for the Sharp SL-Cxx00 series"
43 depends on LEDS_CLASS && PXA_SHARP_Cxx00
44 help
45 This option enables support for the LEDs on Sharp Zaurus
46 SL-Cxx00 series (C1000, C3000, C3100).
47
48config LEDS_S3C24XX 34config LEDS_S3C24XX
49 tristate "LED Support for Samsung S3C24XX GPIO LEDs" 35 tristate "LED Support for Samsung S3C24XX GPIO LEDs"
50 depends on LEDS_CLASS && ARCH_S3C2410 36 depends on LEDS_CLASS && ARCH_S3C2410
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
index ff7982b44565..3a8e6a04363c 100644
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
@@ -6,9 +6,7 @@ obj-$(CONFIG_LEDS_TRIGGERS) += led-triggers.o
6 6
7# LED Platform Drivers 7# LED Platform Drivers
8obj-$(CONFIG_LEDS_ATMEL_PWM) += leds-atmel-pwm.o 8obj-$(CONFIG_LEDS_ATMEL_PWM) += leds-atmel-pwm.o
9obj-$(CONFIG_LEDS_CORGI) += leds-corgi.o
10obj-$(CONFIG_LEDS_LOCOMO) += leds-locomo.o 9obj-$(CONFIG_LEDS_LOCOMO) += leds-locomo.o
11obj-$(CONFIG_LEDS_SPITZ) += leds-spitz.o
12obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c24xx.o 10obj-$(CONFIG_LEDS_S3C24XX) += leds-s3c24xx.o
13obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o 11obj-$(CONFIG_LEDS_AMS_DELTA) += leds-ams-delta.o
14obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o 12obj-$(CONFIG_LEDS_NET48XX) += leds-net48xx.o
diff --git a/drivers/leds/leds-corgi.c b/drivers/leds/leds-corgi.c
deleted file mode 100644
index bc2dcd89f635..000000000000
--- a/drivers/leds/leds-corgi.c
+++ /dev/null
@@ -1,124 +0,0 @@
1/*
2 * LED Triggers Core
3 *
4 * Copyright 2005-2006 Openedhand Ltd.
5 *
6 * Author: Richard Purdie <rpurdie@openedhand.com>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12 */
13
14#include <linux/kernel.h>
15#include <linux/init.h>
16#include <linux/platform_device.h>
17#include <linux/leds.h>
18#include <mach/corgi.h>
19#include <mach/hardware.h>
20#include <mach/pxa-regs.h>
21#include <asm/hardware/scoop.h>
22
23static void corgiled_amber_set(struct led_classdev *led_cdev,
24 enum led_brightness value)
25{
26 if (value)
27 GPSR0 = GPIO_bit(CORGI_GPIO_LED_ORANGE);
28 else
29 GPCR0 = GPIO_bit(CORGI_GPIO_LED_ORANGE);
30}
31
32static void corgiled_green_set(struct led_classdev *led_cdev,
33 enum led_brightness value)
34{
35 if (value)
36 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_LED_GREEN);
37 else
38 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_LED_GREEN);
39}
40
41static struct led_classdev corgi_amber_led = {
42 .name = "corgi:amber:charge",
43 .default_trigger = "sharpsl-charge",
44 .brightness_set = corgiled_amber_set,
45};
46
47static struct led_classdev corgi_green_led = {
48 .name = "corgi:green:mail",
49 .default_trigger = "nand-disk",
50 .brightness_set = corgiled_green_set,
51};
52
53#ifdef CONFIG_PM
54static int corgiled_suspend(struct platform_device *dev, pm_message_t state)
55{
56#ifdef CONFIG_LEDS_TRIGGERS
57 if (corgi_amber_led.trigger &&
58 strcmp(corgi_amber_led.trigger->name, "sharpsl-charge"))
59#endif
60 led_classdev_suspend(&corgi_amber_led);
61 led_classdev_suspend(&corgi_green_led);
62 return 0;
63}
64
65static int corgiled_resume(struct platform_device *dev)
66{
67 led_classdev_resume(&corgi_amber_led);
68 led_classdev_resume(&corgi_green_led);
69 return 0;
70}
71#endif
72
73static int corgiled_probe(struct platform_device *pdev)
74{
75 int ret;
76
77 ret = led_classdev_register(&pdev->dev, &corgi_amber_led);
78 if (ret < 0)
79 return ret;
80
81 ret = led_classdev_register(&pdev->dev, &corgi_green_led);
82 if (ret < 0)
83 led_classdev_unregister(&corgi_amber_led);
84
85 return ret;
86}
87
88static int corgiled_remove(struct platform_device *pdev)
89{
90 led_classdev_unregister(&corgi_amber_led);
91 led_classdev_unregister(&corgi_green_led);
92 return 0;
93}
94
95static struct platform_driver corgiled_driver = {
96 .probe = corgiled_probe,
97 .remove = corgiled_remove,
98#ifdef CONFIG_PM
99 .suspend = corgiled_suspend,
100 .resume = corgiled_resume,
101#endif
102 .driver = {
103 .name = "corgi-led",
104 .owner = THIS_MODULE,
105 },
106};
107
108static int __init corgiled_init(void)
109{
110 return platform_driver_register(&corgiled_driver);
111}
112
113static void __exit corgiled_exit(void)
114{
115 platform_driver_unregister(&corgiled_driver);
116}
117
118module_init(corgiled_init);
119module_exit(corgiled_exit);
120
121MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
122MODULE_DESCRIPTION("Corgi LED driver");
123MODULE_LICENSE("GPL");
124MODULE_ALIAS("platform:corgi-led");
diff --git a/drivers/leds/leds-spitz.c b/drivers/leds/leds-spitz.c
deleted file mode 100644
index 178831c64bfb..000000000000
--- a/drivers/leds/leds-spitz.c
+++ /dev/null
@@ -1,131 +0,0 @@
1/*
2 * LED Triggers Core
3 *
4 * Copyright 2005-2006 Openedhand Ltd.
5 *
6 * Author: Richard Purdie <rpurdie@openedhand.com>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12 */
13
14#include <linux/kernel.h>
15#include <linux/init.h>
16#include <linux/platform_device.h>
17#include <linux/leds.h>
18#include <asm/hardware/scoop.h>
19#include <asm/mach-types.h>
20#include <mach/hardware.h>
21#include <mach/pxa-regs.h>
22#include <mach/spitz.h>
23
24static void spitzled_amber_set(struct led_classdev *led_cdev,
25 enum led_brightness value)
26{
27 if (value)
28 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_ORANGE);
29 else
30 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_ORANGE);
31}
32
33static void spitzled_green_set(struct led_classdev *led_cdev,
34 enum led_brightness value)
35{
36 if (value)
37 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
38 else
39 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_LED_GREEN);
40}
41
42static struct led_classdev spitz_amber_led = {
43 .name = "spitz:amber:charge",
44 .default_trigger = "sharpsl-charge",
45 .brightness_set = spitzled_amber_set,
46};
47
48static struct led_classdev spitz_green_led = {
49 .name = "spitz:green:hddactivity",
50 .default_trigger = "ide-disk",
51 .brightness_set = spitzled_green_set,
52};
53
54#ifdef CONFIG_PM
55static int spitzled_suspend(struct platform_device *dev, pm_message_t state)
56{
57#ifdef CONFIG_LEDS_TRIGGERS
58 if (spitz_amber_led.trigger &&
59 strcmp(spitz_amber_led.trigger->name, "sharpsl-charge"))
60#endif
61 led_classdev_suspend(&spitz_amber_led);
62 led_classdev_suspend(&spitz_green_led);
63 return 0;
64}
65
66static int spitzled_resume(struct platform_device *dev)
67{
68 led_classdev_resume(&spitz_amber_led);
69 led_classdev_resume(&spitz_green_led);
70 return 0;
71}
72#endif
73
74static int spitzled_probe(struct platform_device *pdev)
75{
76 int ret;
77
78 if (machine_is_akita()) {
79 spitz_green_led.name = "spitz:green:mail";
80 spitz_green_led.default_trigger = "nand-disk";
81 }
82
83 ret = led_classdev_register(&pdev->dev, &spitz_amber_led);
84 if (ret < 0)
85 return ret;
86
87 ret = led_classdev_register(&pdev->dev, &spitz_green_led);
88 if (ret < 0)
89 led_classdev_unregister(&spitz_amber_led);
90
91 return ret;
92}
93
94static int spitzled_remove(struct platform_device *pdev)
95{
96 led_classdev_unregister(&spitz_amber_led);
97 led_classdev_unregister(&spitz_green_led);
98
99 return 0;
100}
101
102static struct platform_driver spitzled_driver = {
103 .probe = spitzled_probe,
104 .remove = spitzled_remove,
105#ifdef CONFIG_PM
106 .suspend = spitzled_suspend,
107 .resume = spitzled_resume,
108#endif
109 .driver = {
110 .name = "spitz-led",
111 .owner = THIS_MODULE,
112 },
113};
114
115static int __init spitzled_init(void)
116{
117 return platform_driver_register(&spitzled_driver);
118}
119
120static void __exit spitzled_exit(void)
121{
122 platform_driver_unregister(&spitzled_driver);
123}
124
125module_init(spitzled_init);
126module_exit(spitzled_exit);
127
128MODULE_AUTHOR("Richard Purdie <rpurdie@openedhand.com>");
129MODULE_DESCRIPTION("Spitz LED driver");
130MODULE_LICENSE("GPL");
131MODULE_ALIAS("platform:spitz-led");
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 7e65bad522cb..ac89a5deaca2 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -238,15 +238,47 @@ static struct page *read_sb_page(mddev_t *mddev, long offset, unsigned long inde
238 238
239} 239}
240 240
241static mdk_rdev_t *next_active_rdev(mdk_rdev_t *rdev, mddev_t *mddev)
242{
243 /* Iterate the disks of an mddev, using rcu to protect access to the
244 * linked list, and raising the refcount of devices we return to ensure
245 * they don't disappear while in use.
246 * As devices are only added or removed when raid_disk is < 0 and
247 * nr_pending is 0 and In_sync is clear, the entries we return will
248 * still be in the same position on the list when we re-enter
249 * list_for_each_continue_rcu.
250 */
251 struct list_head *pos;
252 rcu_read_lock();
253 if (rdev == NULL)
254 /* start at the beginning */
255 pos = &mddev->disks;
256 else {
257 /* release the previous rdev and start from there. */
258 rdev_dec_pending(rdev, mddev);
259 pos = &rdev->same_set;
260 }
261 list_for_each_continue_rcu(pos, &mddev->disks) {
262 rdev = list_entry(pos, mdk_rdev_t, same_set);
263 if (rdev->raid_disk >= 0 &&
264 test_bit(In_sync, &rdev->flags) &&
265 !test_bit(Faulty, &rdev->flags)) {
266 /* this is a usable devices */
267 atomic_inc(&rdev->nr_pending);
268 rcu_read_unlock();
269 return rdev;
270 }
271 }
272 rcu_read_unlock();
273 return NULL;
274}
275
241static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait) 276static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait)
242{ 277{
243 mdk_rdev_t *rdev; 278 mdk_rdev_t *rdev = NULL;
244 mddev_t *mddev = bitmap->mddev; 279 mddev_t *mddev = bitmap->mddev;
245 280
246 rcu_read_lock(); 281 while ((rdev = next_active_rdev(rdev, mddev)) != NULL) {
247 rdev_for_each_rcu(rdev, mddev)
248 if (test_bit(In_sync, &rdev->flags)
249 && !test_bit(Faulty, &rdev->flags)) {
250 int size = PAGE_SIZE; 282 int size = PAGE_SIZE;
251 if (page->index == bitmap->file_pages-1) 283 if (page->index == bitmap->file_pages-1)
252 size = roundup(bitmap->last_page_size, 284 size = roundup(bitmap->last_page_size,
@@ -281,8 +313,7 @@ static int write_sb_page(struct bitmap *bitmap, struct page *page, int wait)
281 + page->index * (PAGE_SIZE/512), 313 + page->index * (PAGE_SIZE/512),
282 size, 314 size,
283 page); 315 page);
284 } 316 }
285 rcu_read_unlock();
286 317
287 if (wait) 318 if (wait)
288 md_super_wait(mddev); 319 md_super_wait(mddev);
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 8cfadc5bd2ba..4790c83d78d0 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3841,8 +3841,6 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open)
3841 3841
3842 del_timer_sync(&mddev->safemode_timer); 3842 del_timer_sync(&mddev->safemode_timer);
3843 3843
3844 invalidate_partition(disk, 0);
3845
3846 switch(mode) { 3844 switch(mode) {
3847 case 1: /* readonly */ 3845 case 1: /* readonly */
3848 err = -ENXIO; 3846 err = -ENXIO;
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c
index e8bc7abf2409..99be9e5c85f7 100644
--- a/drivers/media/common/saa7146_video.c
+++ b/drivers/media/common/saa7146_video.c
@@ -1068,7 +1068,7 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
1068 { 1068 {
1069 v4l2_std_id *id = arg; 1069 v4l2_std_id *id = arg;
1070 int found = 0; 1070 int found = 0;
1071 int i, err; 1071 int i;
1072 1072
1073 DEB_EE(("VIDIOC_S_STD\n")); 1073 DEB_EE(("VIDIOC_S_STD\n"));
1074 1074
@@ -1116,7 +1116,6 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
1116 case VIDIOC_OVERLAY: 1116 case VIDIOC_OVERLAY:
1117 { 1117 {
1118 int on = *(int *)arg; 1118 int on = *(int *)arg;
1119 int err = 0;
1120 1119
1121 DEB_D(("VIDIOC_OVERLAY on:%d\n",on)); 1120 DEB_D(("VIDIOC_OVERLAY on:%d\n",on));
1122 if (on != 0) { 1121 if (on != 0) {
@@ -1192,7 +1191,6 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
1192 case VIDIOCGMBUF: 1191 case VIDIOCGMBUF:
1193 { 1192 {
1194 struct video_mbuf *mbuf = arg; 1193 struct video_mbuf *mbuf = arg;
1195 struct videobuf_queue *q;
1196 int i; 1194 int i;
1197 1195
1198 /* fixme: number of capture buffers and sizes for v4l apps */ 1196 /* fixme: number of capture buffers and sizes for v4l apps */
diff --git a/drivers/media/common/tuners/mt2131.c b/drivers/media/common/tuners/mt2131.c
index e254bcfc2efb..e8d3c48f8605 100644
--- a/drivers/media/common/tuners/mt2131.c
+++ b/drivers/media/common/tuners/mt2131.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner" 2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/mt2131.h b/drivers/media/common/tuners/mt2131.h
index cd8376f6f7b4..6632de640df0 100644
--- a/drivers/media/common/tuners/mt2131.h
+++ b/drivers/media/common/tuners/mt2131.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner" 2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/mt2131_priv.h b/drivers/media/common/tuners/mt2131_priv.h
index e930759c2c00..4e05a67e88c1 100644
--- a/drivers/media/common/tuners/mt2131_priv.h
+++ b/drivers/media/common/tuners/mt2131_priv.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner" 2 * Driver for Microtune MT2131 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/mxl5005s.c b/drivers/media/common/tuners/mxl5005s.c
index 0dc2bef9f6a3..227642b044ae 100644
--- a/drivers/media/common/tuners/mxl5005s.c
+++ b/drivers/media/common/tuners/mxl5005s.c
@@ -2,7 +2,7 @@
2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver 2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver
3 3
4 Copyright (C) 2008 MaxLinear 4 Copyright (C) 2008 MaxLinear
5 Copyright (C) 2006 Steven Toth <stoth@hauppauge.com> 5 Copyright (C) 2006 Steven Toth <stoth@linuxtv.org>
6 Functions: 6 Functions:
7 mxl5005s_reset() 7 mxl5005s_reset()
8 mxl5005s_writereg() 8 mxl5005s_writereg()
@@ -3837,7 +3837,7 @@ static u16 MXL_Hystersis_Test(struct dvb_frontend *fe, int Hystersis)
3837/* ---------------------------------------------------------------- 3837/* ----------------------------------------------------------------
3838 * Begin: Everything after here is new code to adapt the 3838 * Begin: Everything after here is new code to adapt the
3839 * proprietary Realtek driver into a Linux API tuner. 3839 * proprietary Realtek driver into a Linux API tuner.
3840 * Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 3840 * Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
3841 */ 3841 */
3842static int mxl5005s_reset(struct dvb_frontend *fe) 3842static int mxl5005s_reset(struct dvb_frontend *fe)
3843{ 3843{
diff --git a/drivers/media/common/tuners/mxl5005s.h b/drivers/media/common/tuners/mxl5005s.h
index 396db150bf0c..7ac6815b30aa 100644
--- a/drivers/media/common/tuners/mxl5005s.h
+++ b/drivers/media/common/tuners/mxl5005s.h
@@ -2,7 +2,7 @@
2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver 2 MaxLinear MXL5005S VSB/QAM/DVBT tuner driver
3 3
4 Copyright (C) 2008 MaxLinear 4 Copyright (C) 2008 MaxLinear
5 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 5 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
6 6
7 This program is free software; you can redistribute it and/or modify 7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by 8 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/tuner-simple.c b/drivers/media/common/tuners/tuner-simple.c
index 597e47f5d69c..aa773a658a2a 100644
--- a/drivers/media/common/tuners/tuner-simple.c
+++ b/drivers/media/common/tuners/tuner-simple.c
@@ -253,7 +253,7 @@ static struct tuner_params *simple_tuner_params(struct dvb_frontend *fe,
253 253
254static int simple_config_lookup(struct dvb_frontend *fe, 254static int simple_config_lookup(struct dvb_frontend *fe,
255 struct tuner_params *t_params, 255 struct tuner_params *t_params,
256 int *frequency, u8 *config, u8 *cb) 256 unsigned *frequency, u8 *config, u8 *cb)
257{ 257{
258 struct tuner_simple_priv *priv = fe->tuner_priv; 258 struct tuner_simple_priv *priv = fe->tuner_priv;
259 int i; 259 int i;
@@ -587,45 +587,45 @@ static int simple_set_tv_freq(struct dvb_frontend *fe,
587 priv->last_div = div; 587 priv->last_div = div;
588 if (t_params->has_tda9887) { 588 if (t_params->has_tda9887) {
589 struct v4l2_priv_tun_config tda9887_cfg; 589 struct v4l2_priv_tun_config tda9887_cfg;
590 int config = 0; 590 int tda_config = 0;
591 int is_secam_l = (params->std & (V4L2_STD_SECAM_L | 591 int is_secam_l = (params->std & (V4L2_STD_SECAM_L |
592 V4L2_STD_SECAM_LC)) && 592 V4L2_STD_SECAM_LC)) &&
593 !(params->std & ~(V4L2_STD_SECAM_L | 593 !(params->std & ~(V4L2_STD_SECAM_L |
594 V4L2_STD_SECAM_LC)); 594 V4L2_STD_SECAM_LC));
595 595
596 tda9887_cfg.tuner = TUNER_TDA9887; 596 tda9887_cfg.tuner = TUNER_TDA9887;
597 tda9887_cfg.priv = &config; 597 tda9887_cfg.priv = &tda_config;
598 598
599 if (params->std == V4L2_STD_SECAM_LC) { 599 if (params->std == V4L2_STD_SECAM_LC) {
600 if (t_params->port1_active ^ t_params->port1_invert_for_secam_lc) 600 if (t_params->port1_active ^ t_params->port1_invert_for_secam_lc)
601 config |= TDA9887_PORT1_ACTIVE; 601 tda_config |= TDA9887_PORT1_ACTIVE;
602 if (t_params->port2_active ^ t_params->port2_invert_for_secam_lc) 602 if (t_params->port2_active ^ t_params->port2_invert_for_secam_lc)
603 config |= TDA9887_PORT2_ACTIVE; 603 tda_config |= TDA9887_PORT2_ACTIVE;
604 } else { 604 } else {
605 if (t_params->port1_active) 605 if (t_params->port1_active)
606 config |= TDA9887_PORT1_ACTIVE; 606 tda_config |= TDA9887_PORT1_ACTIVE;
607 if (t_params->port2_active) 607 if (t_params->port2_active)
608 config |= TDA9887_PORT2_ACTIVE; 608 tda_config |= TDA9887_PORT2_ACTIVE;
609 } 609 }
610 if (t_params->intercarrier_mode) 610 if (t_params->intercarrier_mode)
611 config |= TDA9887_INTERCARRIER; 611 tda_config |= TDA9887_INTERCARRIER;
612 if (is_secam_l) { 612 if (is_secam_l) {
613 if (i == 0 && t_params->default_top_secam_low) 613 if (i == 0 && t_params->default_top_secam_low)
614 config |= TDA9887_TOP(t_params->default_top_secam_low); 614 tda_config |= TDA9887_TOP(t_params->default_top_secam_low);
615 else if (i == 1 && t_params->default_top_secam_mid) 615 else if (i == 1 && t_params->default_top_secam_mid)
616 config |= TDA9887_TOP(t_params->default_top_secam_mid); 616 tda_config |= TDA9887_TOP(t_params->default_top_secam_mid);
617 else if (t_params->default_top_secam_high) 617 else if (t_params->default_top_secam_high)
618 config |= TDA9887_TOP(t_params->default_top_secam_high); 618 tda_config |= TDA9887_TOP(t_params->default_top_secam_high);
619 } else { 619 } else {
620 if (i == 0 && t_params->default_top_low) 620 if (i == 0 && t_params->default_top_low)
621 config |= TDA9887_TOP(t_params->default_top_low); 621 tda_config |= TDA9887_TOP(t_params->default_top_low);
622 else if (i == 1 && t_params->default_top_mid) 622 else if (i == 1 && t_params->default_top_mid)
623 config |= TDA9887_TOP(t_params->default_top_mid); 623 tda_config |= TDA9887_TOP(t_params->default_top_mid);
624 else if (t_params->default_top_high) 624 else if (t_params->default_top_high)
625 config |= TDA9887_TOP(t_params->default_top_high); 625 tda_config |= TDA9887_TOP(t_params->default_top_high);
626 } 626 }
627 if (t_params->default_pll_gating_18) 627 if (t_params->default_pll_gating_18)
628 config |= TDA9887_GATING_18; 628 tda_config |= TDA9887_GATING_18;
629 i2c_clients_command(priv->i2c_props.adap, TUNER_SET_CONFIG, 629 i2c_clients_command(priv->i2c_props.adap, TUNER_SET_CONFIG,
630 &tda9887_cfg); 630 &tda9887_cfg);
631 } 631 }
@@ -813,7 +813,8 @@ static u32 simple_dvb_configure(struct dvb_frontend *fe, u8 *buf,
813 static struct tuner_params *t_params; 813 static struct tuner_params *t_params;
814 u8 config, cb; 814 u8 config, cb;
815 u32 div; 815 u32 div;
816 int ret, frequency = params->frequency / 62500; 816 int ret;
817 unsigned frequency = params->frequency / 62500;
817 818
818 t_params = simple_tuner_params(fe, TUNER_PARAM_TYPE_DIGITAL); 819 t_params = simple_tuner_params(fe, TUNER_PARAM_TYPE_DIGITAL);
819 ret = simple_config_lookup(fe, t_params, &frequency, &config, &cb); 820 ret = simple_config_lookup(fe, t_params, &frequency, &config, &cb);
diff --git a/drivers/media/common/tuners/xc5000.c b/drivers/media/common/tuners/xc5000.c
index 5f99de0ad612..dcddfa803a75 100644
--- a/drivers/media/common/tuners/xc5000.c
+++ b/drivers/media/common/tuners/xc5000.c
@@ -2,7 +2,7 @@
2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner" 2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2007 Xceive Corporation 4 * Copyright (c) 2007 Xceive Corporation
5 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 5 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/xc5000.h b/drivers/media/common/tuners/xc5000.h
index c910715addc9..5389f740945a 100644
--- a/drivers/media/common/tuners/xc5000.h
+++ b/drivers/media/common/tuners/xc5000.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner" 2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/common/tuners/xc5000_priv.h b/drivers/media/common/tuners/xc5000_priv.h
index a72a9887fe7f..b2a0074c99c9 100644
--- a/drivers/media/common/tuners/xc5000_priv.h
+++ b/drivers/media/common/tuners/xc5000_priv.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner" 2 * Driver for Xceive XC5000 "QAM/8VSB single chip tuner"
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
index f9d087669d5d..4eed783f4bce 100644
--- a/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
+++ b/drivers/media/dvb/b2c2/flexcop-fe-tuner.c
@@ -137,7 +137,8 @@ static int flexcop_send_diseqc_msg(struct dvb_frontend* fe, int len, u8 *msg, un
137 flexcop_diseqc_send_byte(fe, 0xff); 137 flexcop_diseqc_send_byte(fe, 0xff);
138 else { 138 else {
139 flexcop_set_tone(fe, SEC_TONE_ON); 139 flexcop_set_tone(fe, SEC_TONE_ON);
140 udelay(12500); 140 mdelay(12);
141 udelay(500);
141 flexcop_set_tone(fe, SEC_TONE_OFF); 142 flexcop_set_tone(fe, SEC_TONE_OFF);
142 } 143 }
143 msleep(20); 144 msleep(20);
diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c
index 55973eaf3711..43a112ec6d44 100644
--- a/drivers/media/dvb/b2c2/flexcop-i2c.c
+++ b/drivers/media/dvb/b2c2/flexcop-i2c.c
@@ -221,12 +221,12 @@ int flexcop_i2c_init(struct flexcop_device *fc)
221 fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM; 221 fc->fc_i2c_adap[1].port = FC_I2C_PORT_EEPROM;
222 fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER; 222 fc->fc_i2c_adap[2].port = FC_I2C_PORT_TUNER;
223 223
224 strncpy(fc->fc_i2c_adap[0].i2c_adap.name, 224 strlcpy(fc->fc_i2c_adap[0].i2c_adap.name, "B2C2 FlexCop I2C to demod",
225 "B2C2 FlexCop I2C to demod", I2C_NAME_SIZE); 225 sizeof(fc->fc_i2c_adap[0].i2c_adap.name));
226 strncpy(fc->fc_i2c_adap[1].i2c_adap.name, 226 strlcpy(fc->fc_i2c_adap[1].i2c_adap.name, "B2C2 FlexCop I2C to eeprom",
227 "B2C2 FlexCop I2C to eeprom", I2C_NAME_SIZE); 227 sizeof(fc->fc_i2c_adap[1].i2c_adap.name));
228 strncpy(fc->fc_i2c_adap[2].i2c_adap.name, 228 strlcpy(fc->fc_i2c_adap[2].i2c_adap.name, "B2C2 FlexCop I2C to tuner",
229 "B2C2 FlexCop I2C to tuner", I2C_NAME_SIZE); 229 sizeof(fc->fc_i2c_adap[2].i2c_adap.name));
230 230
231 i2c_set_adapdata(&fc->fc_i2c_adap[0].i2c_adap, &fc->fc_i2c_adap[0]); 231 i2c_set_adapdata(&fc->fc_i2c_adap[0].i2c_adap, &fc->fc_i2c_adap[0]);
232 i2c_set_adapdata(&fc->fc_i2c_adap[1].i2c_adap, &fc->fc_i2c_adap[1]); 232 i2c_set_adapdata(&fc->fc_i2c_adap[1].i2c_adap, &fc->fc_i2c_adap[1]);
diff --git a/drivers/media/dvb/bt8xx/dst.c b/drivers/media/dvb/bt8xx/dst.c
index a7637562e742..aa3db57d32d9 100644
--- a/drivers/media/dvb/bt8xx/dst.c
+++ b/drivers/media/dvb/bt8xx/dst.c
@@ -1244,7 +1244,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len)
1244 goto error; 1244 goto error;
1245 } 1245 }
1246 if (state->type_flags & DST_TYPE_HAS_FW_1) 1246 if (state->type_flags & DST_TYPE_HAS_FW_1)
1247 udelay(3000); 1247 mdelay(3);
1248 if (read_dst(state, &reply, GET_ACK)) { 1248 if (read_dst(state, &reply, GET_ACK)) {
1249 dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. "); 1249 dprintk(verbose, DST_DEBUG, 1, "Trying to recover.. ");
1250 if ((dst_error_recovery(state)) < 0) { 1250 if ((dst_error_recovery(state)) < 0) {
@@ -1260,7 +1260,7 @@ static int dst_command(struct dst_state *state, u8 *data, u8 len)
1260 if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3)) 1260 if (len >= 2 && data[0] == 0 && (data[1] == 1 || data[1] == 3))
1261 goto error; 1261 goto error;
1262 if (state->type_flags & DST_TYPE_HAS_FW_1) 1262 if (state->type_flags & DST_TYPE_HAS_FW_1)
1263 udelay(3000); 1263 mdelay(3);
1264 else 1264 else
1265 udelay(2000); 1265 udelay(2000);
1266 if (!dst_wait_dst_ready(state, NO_DELAY)) 1266 if (!dst_wait_dst_ready(state, NO_DELAY))
diff --git a/drivers/media/dvb/dvb-core/dmxdev.c b/drivers/media/dvb/dvb-core/dmxdev.c
index 1cf9fcb6f514..069d847ba887 100644
--- a/drivers/media/dvb/dvb-core/dmxdev.c
+++ b/drivers/media/dvb/dvb-core/dmxdev.c
@@ -641,7 +641,6 @@ static int dvb_dmxdev_filter_start(struct dmxdev_filter *filter)
641 struct timespec timeout = { 0 }; 641 struct timespec timeout = { 0 };
642 struct dmx_pes_filter_params *para = &filter->params.pes; 642 struct dmx_pes_filter_params *para = &filter->params.pes;
643 dmx_output_t otype; 643 dmx_output_t otype;
644 int ret;
645 int ts_type; 644 int ts_type;
646 enum dmx_ts_pes ts_pes; 645 enum dmx_ts_pes ts_pes;
647 struct dmx_ts_feed **tsfeed = &filter->feed.ts; 646 struct dmx_ts_feed **tsfeed = &filter->feed.ts;
diff --git a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
index 8e5dd7b1f034..98ee16773ff2 100644
--- a/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
+++ b/drivers/media/dvb/dvb-core/dvb_ca_en50221.c
@@ -1032,7 +1032,7 @@ static int dvb_ca_en50221_thread(void *data)
1032 /* we need this extra check for annoying interfaces like the budget-av */ 1032 /* we need this extra check for annoying interfaces like the budget-av */
1033 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) && 1033 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) &&
1034 (ca->pub->poll_slot_status)) { 1034 (ca->pub->poll_slot_status)) {
1035 int status = ca->pub->poll_slot_status(ca->pub, slot, 0); 1035 status = ca->pub->poll_slot_status(ca->pub, slot, 0);
1036 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) { 1036 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) {
1037 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE; 1037 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
1038 dvb_ca_en50221_thread_update_delay(ca); 1038 dvb_ca_en50221_thread_update_delay(ca);
@@ -1089,7 +1089,7 @@ static int dvb_ca_en50221_thread(void *data)
1089 /* we need this extra check for annoying interfaces like the budget-av */ 1089 /* we need this extra check for annoying interfaces like the budget-av */
1090 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) && 1090 if ((!(ca->flags & DVB_CA_EN50221_FLAG_IRQ_CAMCHANGE)) &&
1091 (ca->pub->poll_slot_status)) { 1091 (ca->pub->poll_slot_status)) {
1092 int status = ca->pub->poll_slot_status(ca->pub, slot, 0); 1092 status = ca->pub->poll_slot_status(ca->pub, slot, 0);
1093 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) { 1093 if (!(status & DVB_CA_EN50221_POLL_CAM_PRESENT)) {
1094 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE; 1094 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_NONE;
1095 dvb_ca_en50221_thread_update_delay(ca); 1095 dvb_ca_en50221_thread_update_delay(ca);
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 8cbdb218952f..3526e3ee9487 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -889,13 +889,13 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
889 * initialization, so parg is 8 bits and does not 889 * initialization, so parg is 8 bits and does not
890 * include the initialization or start bit 890 * include the initialization or start bit
891 */ 891 */
892 unsigned long cmd = ((unsigned long) parg) << 1; 892 unsigned long swcmd = ((unsigned long) parg) << 1;
893 struct timeval nexttime; 893 struct timeval nexttime;
894 struct timeval tv[10]; 894 struct timeval tv[10];
895 int i; 895 int i;
896 u8 last = 1; 896 u8 last = 1;
897 if (dvb_frontend_debug) 897 if (dvb_frontend_debug)
898 printk("%s switch command: 0x%04lx\n", __func__, cmd); 898 printk("%s switch command: 0x%04lx\n", __func__, swcmd);
899 do_gettimeofday(&nexttime); 899 do_gettimeofday(&nexttime);
900 if (dvb_frontend_debug) 900 if (dvb_frontend_debug)
901 memcpy(&tv[0], &nexttime, sizeof(struct timeval)); 901 memcpy(&tv[0], &nexttime, sizeof(struct timeval));
@@ -908,12 +908,12 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
908 for (i = 0; i < 9; i++) { 908 for (i = 0; i < 9; i++) {
909 if (dvb_frontend_debug) 909 if (dvb_frontend_debug)
910 do_gettimeofday(&tv[i + 1]); 910 do_gettimeofday(&tv[i + 1]);
911 if ((cmd & 0x01) != last) { 911 if ((swcmd & 0x01) != last) {
912 /* set voltage to (last ? 13V : 18V) */ 912 /* set voltage to (last ? 13V : 18V) */
913 fe->ops.set_voltage(fe, (last) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18); 913 fe->ops.set_voltage(fe, (last) ? SEC_VOLTAGE_13 : SEC_VOLTAGE_18);
914 last = (last) ? 0 : 1; 914 last = (last) ? 0 : 1;
915 } 915 }
916 cmd = cmd >> 1; 916 swcmd = swcmd >> 1;
917 if (i != 8) 917 if (i != 8)
918 dvb_frontend_sleep_until(&nexttime, 8000); 918 dvb_frontend_sleep_until(&nexttime, 8000);
919 } 919 }
diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index aaa0b6f0b521..563400277a42 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -210,7 +210,7 @@ static int cxusb_aver_power_ctrl(struct dvb_usb_device *d, int onoff)
210 if (d->state == DVB_USB_STATE_INIT && 210 if (d->state == DVB_USB_STATE_INIT &&
211 usb_set_interface(d->udev, 0, 0) < 0) 211 usb_set_interface(d->udev, 0, 0) < 0)
212 err("set interface failed"); 212 err("set interface failed");
213 do; while (!(ret = cxusb_ctrl_msg(d, CMD_POWER_ON, NULL, 0, NULL, 0)) && 213 do {} while (!(ret = cxusb_ctrl_msg(d, CMD_POWER_ON, NULL, 0, NULL, 0)) &&
214 !(ret = cxusb_ctrl_msg(d, 0x15, NULL, 0, NULL, 0)) && 214 !(ret = cxusb_ctrl_msg(d, 0x15, NULL, 0, NULL, 0)) &&
215 !(ret = cxusb_ctrl_msg(d, 0x17, NULL, 0, NULL, 0)) && 0); 215 !(ret = cxusb_ctrl_msg(d, 0x17, NULL, 0, NULL, 0)) && 0);
216 if (!ret) { 216 if (!ret) {
diff --git a/drivers/media/dvb/dvb-usb/dib0700_devices.c b/drivers/media/dvb/dvb-usb/dib0700_devices.c
index 3dd20bfbed32..6c0e5c5f4362 100644
--- a/drivers/media/dvb/dvb-usb/dib0700_devices.c
+++ b/drivers/media/dvb/dvb-usb/dib0700_devices.c
@@ -1117,7 +1117,8 @@ struct usb_device_id dib0700_usb_id_table[] = {
1117 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_HT_EXPRESS) }, 1117 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_HT_EXPRESS) },
1118 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS) }, 1118 { USB_DEVICE(USB_VID_TERRATEC, USB_PID_TERRATEC_CINERGY_T_XXS) },
1119 { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P_2) }, 1119 { USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_STK7700P_2) },
1120 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009) }, 1120/* 35 */{ USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_TD_STICK_52009) },
1121 { USB_DEVICE(USB_VID_HAUPPAUGE, USB_PID_HAUPPAUGE_NOVA_T_500_3) },
1121 { 0 } /* Terminating entry */ 1122 { 0 } /* Terminating entry */
1122}; 1123};
1123MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table); 1124MODULE_DEVICE_TABLE(usb, dib0700_usb_id_table);
@@ -1373,7 +1374,7 @@ struct dvb_usb_device_properties dib0700_devices[] = {
1373 } 1374 }
1374 }, 1375 },
1375 1376
1376 .num_device_descs = 3, 1377 .num_device_descs = 4,
1377 .devices = { 1378 .devices = {
1378 { "DiBcom STK7070PD reference design", 1379 { "DiBcom STK7070PD reference design",
1379 { &dib0700_usb_id_table[17], NULL }, 1380 { &dib0700_usb_id_table[17], NULL },
@@ -1386,6 +1387,10 @@ struct dvb_usb_device_properties dib0700_devices[] = {
1386 { "Hauppauge Nova-TD Stick (52009)", 1387 { "Hauppauge Nova-TD Stick (52009)",
1387 { &dib0700_usb_id_table[35], NULL }, 1388 { &dib0700_usb_id_table[35], NULL },
1388 { NULL }, 1389 { NULL },
1390 },
1391 { "Hauppauge Nova-TD-500 (84xxx)",
1392 { &dib0700_usb_id_table[36], NULL },
1393 { NULL },
1389 } 1394 }
1390 } 1395 }
1391 }, { DIB0700_DEFAULT_DEVICE_PROPERTIES, 1396 }, { DIB0700_DEFAULT_DEVICE_PROPERTIES,
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
index 029b437caf9a..03dfb9f2fe30 100644
--- a/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
+++ b/drivers/media/dvb/dvb-usb/dvb-usb-ids.h
@@ -129,6 +129,7 @@
129#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301 129#define USB_PID_WINTV_NOVA_T_USB2_WARM 0x9301
130#define USB_PID_HAUPPAUGE_NOVA_T_500 0x9941 130#define USB_PID_HAUPPAUGE_NOVA_T_500 0x9941
131#define USB_PID_HAUPPAUGE_NOVA_T_500_2 0x9950 131#define USB_PID_HAUPPAUGE_NOVA_T_500_2 0x9950
132#define USB_PID_HAUPPAUGE_NOVA_T_500_3 0x8400
132#define USB_PID_HAUPPAUGE_NOVA_T_STICK 0x7050 133#define USB_PID_HAUPPAUGE_NOVA_T_STICK 0x7050
133#define USB_PID_HAUPPAUGE_NOVA_T_STICK_2 0x7060 134#define USB_PID_HAUPPAUGE_NOVA_T_STICK_2 0x7060
134#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070 135#define USB_PID_HAUPPAUGE_NOVA_T_STICK_3 0x7070
diff --git a/drivers/media/dvb/frontends/au8522.c b/drivers/media/dvb/frontends/au8522.c
index f7b71657f0f6..0b82cc2a1e16 100644
--- a/drivers/media/dvb/frontends/au8522.c
+++ b/drivers/media/dvb/frontends/au8522.c
@@ -1,7 +1,7 @@
1/* 1/*
2 Auvitek AU8522 QAM/8VSB demodulator driver 2 Auvitek AU8522 QAM/8VSB demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -304,6 +304,43 @@ static int au8522_mse2snr_lookup(struct mse2snr_tab *tab, int sz, int mse,
304 return ret; 304 return ret;
305} 305}
306 306
307static int au8522_set_if(struct dvb_frontend *fe, enum au8522_if_freq if_freq)
308{
309 struct au8522_state *state = fe->demodulator_priv;
310 u8 r0b5, r0b6, r0b7;
311 char *ifmhz;
312
313 switch (if_freq) {
314 case AU8522_IF_3_25MHZ:
315 ifmhz = "3.25";
316 r0b5 = 0x00;
317 r0b6 = 0x3d;
318 r0b7 = 0xa0;
319 break;
320 case AU8522_IF_4MHZ:
321 ifmhz = "4.00";
322 r0b5 = 0x00;
323 r0b6 = 0x4b;
324 r0b7 = 0xd9;
325 break;
326 case AU8522_IF_6MHZ:
327 ifmhz = "6.00";
328 r0b5 = 0xfb;
329 r0b6 = 0x8e;
330 r0b7 = 0x39;
331 break;
332 default:
333 dprintk("%s() IF Frequency not supported\n", __func__);
334 return -EINVAL;
335 }
336 dprintk("%s() %s MHz\n", __func__, ifmhz);
337 au8522_writereg(state, 0x80b5, r0b5);
338 au8522_writereg(state, 0x80b6, r0b6);
339 au8522_writereg(state, 0x80b7, r0b7);
340
341 return 0;
342}
343
307/* VSB Modulation table */ 344/* VSB Modulation table */
308static struct { 345static struct {
309 u16 reg; 346 u16 reg;
@@ -334,9 +371,6 @@ static struct {
334 { 0x80af, 0x66 }, 371 { 0x80af, 0x66 },
335 { 0x821b, 0xcc }, 372 { 0x821b, 0xcc },
336 { 0x821d, 0x80 }, 373 { 0x821d, 0x80 },
337 { 0x80b5, 0xfb },
338 { 0x80b6, 0x8e },
339 { 0x80b7, 0x39 },
340 { 0x80a4, 0xe8 }, 374 { 0x80a4, 0xe8 },
341 { 0x8231, 0x13 }, 375 { 0x8231, 0x13 },
342}; 376};
@@ -350,9 +384,6 @@ static struct {
350 { 0x80a4, 0x00 }, 384 { 0x80a4, 0x00 },
351 { 0x8081, 0xc4 }, 385 { 0x8081, 0xc4 },
352 { 0x80a5, 0x40 }, 386 { 0x80a5, 0x40 },
353 { 0x80b5, 0xfb },
354 { 0x80b6, 0x8e },
355 { 0x80b7, 0x39 },
356 { 0x80aa, 0x77 }, 387 { 0x80aa, 0x77 },
357 { 0x80ad, 0x77 }, 388 { 0x80ad, 0x77 },
358 { 0x80a6, 0x67 }, 389 { 0x80a6, 0x67 },
@@ -438,6 +469,7 @@ static int au8522_enable_modulation(struct dvb_frontend *fe,
438 au8522_writereg(state, 469 au8522_writereg(state,
439 VSB_mod_tab[i].reg, 470 VSB_mod_tab[i].reg,
440 VSB_mod_tab[i].data); 471 VSB_mod_tab[i].data);
472 au8522_set_if(fe, state->config->vsb_if);
441 break; 473 break;
442 case QAM_64: 474 case QAM_64:
443 case QAM_256: 475 case QAM_256:
@@ -446,6 +478,7 @@ static int au8522_enable_modulation(struct dvb_frontend *fe,
446 au8522_writereg(state, 478 au8522_writereg(state,
447 QAM_mod_tab[i].reg, 479 QAM_mod_tab[i].reg,
448 QAM_mod_tab[i].data); 480 QAM_mod_tab[i].data);
481 au8522_set_if(fe, state->config->qam_if);
449 break; 482 break;
450 default: 483 default:
451 dprintk("%s() Invalid modulation\n", __func__); 484 dprintk("%s() Invalid modulation\n", __func__);
diff --git a/drivers/media/dvb/frontends/au8522.h b/drivers/media/dvb/frontends/au8522.h
index d7affa3cdb27..595915ade8c3 100644
--- a/drivers/media/dvb/frontends/au8522.h
+++ b/drivers/media/dvb/frontends/au8522.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Auvitek AU8522 QAM/8VSB demodulator driver 2 Auvitek AU8522 QAM/8VSB demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -24,6 +24,12 @@
24 24
25#include <linux/dvb/frontend.h> 25#include <linux/dvb/frontend.h>
26 26
27enum au8522_if_freq {
28 AU8522_IF_6MHZ = 0,
29 AU8522_IF_4MHZ,
30 AU8522_IF_3_25MHZ,
31};
32
27struct au8522_config { 33struct au8522_config {
28 /* the demodulator's i2c address */ 34 /* the demodulator's i2c address */
29 u8 demod_address; 35 u8 demod_address;
@@ -32,6 +38,9 @@ struct au8522_config {
32#define AU8522_TUNERLOCKING 0 38#define AU8522_TUNERLOCKING 0
33#define AU8522_DEMODLOCKING 1 39#define AU8522_DEMODLOCKING 1
34 u8 status_mode; 40 u8 status_mode;
41
42 enum au8522_if_freq vsb_if;
43 enum au8522_if_freq qam_if;
35}; 44};
36 45
37#if defined(CONFIG_DVB_AU8522) || \ 46#if defined(CONFIG_DVB_AU8522) || \
diff --git a/drivers/media/dvb/frontends/cx22702.c b/drivers/media/dvb/frontends/cx22702.c
index cc1db4e371c3..9430e03dba6c 100644
--- a/drivers/media/dvb/frontends/cx22702.c
+++ b/drivers/media/dvb/frontends/cx22702.c
@@ -7,7 +7,7 @@
7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH 7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH
8 Holger Waechtler <holger@convergence.de> 8 Holger Waechtler <holger@convergence.de>
9 9
10 Copyright (C) 2004 Steven Toth <stoth@hauppauge.com> 10 Copyright (C) 2004 Steven Toth <stoth@linuxtv.org>
11 11
12 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
13 it under the terms of the GNU General Public License as published by 13 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/cx22702.h b/drivers/media/dvb/frontends/cx22702.h
index 8af766a31552..b1e465c6c2ce 100644
--- a/drivers/media/dvb/frontends/cx22702.h
+++ b/drivers/media/dvb/frontends/cx22702.h
@@ -7,7 +7,7 @@
7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH 7 Copyright (C) 2001-2002 Convergence Integrated Media GmbH
8 Holger Waechtler <holger@convergence.de> 8 Holger Waechtler <holger@convergence.de>
9 9
10 Copyright (C) 2004 Steven Toth <stoth@hauppauge.com> 10 Copyright (C) 2004 Steven Toth <stoth@linuxtv.org>
11 11
12 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
13 it under the terms of the GNU General Public License as published by 13 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/cx24123.c b/drivers/media/dvb/frontends/cx24123.c
index 7f68d78c6558..7156157cb34b 100644
--- a/drivers/media/dvb/frontends/cx24123.c
+++ b/drivers/media/dvb/frontends/cx24123.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver 2 * Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver
3 * 3 *
4 * Copyright (C) 2005 Steven Toth <stoth@hauppauge.com> 4 * Copyright (C) 2005 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * Support for KWorld DVB-S 100 by Vadim Catana <skystar@moldova.cc> 6 * Support for KWorld DVB-S 100 by Vadim Catana <skystar@moldova.cc>
7 * 7 *
@@ -1072,8 +1072,8 @@ struct dvb_frontend* cx24123_attach(const struct cx24123_config* config,
1072 if (config->dont_use_pll) 1072 if (config->dont_use_pll)
1073 cx24123_repeater_mode(state, 1, 0); 1073 cx24123_repeater_mode(state, 1, 0);
1074 1074
1075 strncpy(state->tuner_i2c_adapter.name, 1075 strlcpy(state->tuner_i2c_adapter.name, "CX24123 tuner I2C bus",
1076 "CX24123 tuner I2C bus", I2C_NAME_SIZE); 1076 sizeof(state->tuner_i2c_adapter.name));
1077 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL, 1077 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL,
1078 state->tuner_i2c_adapter.algo = &cx24123_tuner_i2c_algo; 1078 state->tuner_i2c_adapter.algo = &cx24123_tuner_i2c_algo;
1079 state->tuner_i2c_adapter.algo_data = NULL; 1079 state->tuner_i2c_adapter.algo_data = NULL;
diff --git a/drivers/media/dvb/frontends/cx24123.h b/drivers/media/dvb/frontends/cx24123.h
index 81ebc3d2f19f..cc6b411d6d20 100644
--- a/drivers/media/dvb/frontends/cx24123.h
+++ b/drivers/media/dvb/frontends/cx24123.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver 2 Conexant cx24123/cx24109 - DVB QPSK Satellite demod/tuner driver
3 3
4 Copyright (C) 2005 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2005 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/s5h1409.c b/drivers/media/dvb/frontends/s5h1409.c
index 5ddb2dca305c..7500a1c53e68 100644
--- a/drivers/media/dvb/frontends/s5h1409.c
+++ b/drivers/media/dvb/frontends/s5h1409.c
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1409 VSB/QAM demodulator driver 2 Samsung S5H1409 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2006 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2006 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -404,6 +404,7 @@ static int s5h1409_enable_modulation(struct dvb_frontend* fe,
404 break; 404 break;
405 case QAM_64: 405 case QAM_64:
406 case QAM_256: 406 case QAM_256:
407 case QAM_AUTO:
407 dprintk("%s() QAM_AUTO (64/256)\n", __func__); 408 dprintk("%s() QAM_AUTO (64/256)\n", __func__);
408 if (state->if_freq != S5H1409_QAM_IF_FREQ) 409 if (state->if_freq != S5H1409_QAM_IF_FREQ)
409 s5h1409_set_if_freq(fe, S5H1409_QAM_IF_FREQ); 410 s5h1409_set_if_freq(fe, S5H1409_QAM_IF_FREQ);
diff --git a/drivers/media/dvb/frontends/s5h1409.h b/drivers/media/dvb/frontends/s5h1409.h
index 59f4335964c6..d1a1d2eb8e11 100644
--- a/drivers/media/dvb/frontends/s5h1409.h
+++ b/drivers/media/dvb/frontends/s5h1409.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1409 VSB/QAM demodulator driver 2 Samsung S5H1409 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2006 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2006 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/s5h1411.c b/drivers/media/dvb/frontends/s5h1411.c
index cff360ce1ba3..2da1a3763de9 100644
--- a/drivers/media/dvb/frontends/s5h1411.c
+++ b/drivers/media/dvb/frontends/s5h1411.c
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1411 VSB/QAM demodulator driver 2 Samsung S5H1411 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -488,6 +488,7 @@ static int s5h1411_enable_modulation(struct dvb_frontend *fe,
488 break; 488 break;
489 case QAM_64: 489 case QAM_64:
490 case QAM_256: 490 case QAM_256:
491 case QAM_AUTO:
491 dprintk("%s() QAM_AUTO (64/256)\n", __func__); 492 dprintk("%s() QAM_AUTO (64/256)\n", __func__);
492 s5h1411_set_if_freq(fe, state->config->qam_if); 493 s5h1411_set_if_freq(fe, state->config->qam_if);
493 s5h1411_writereg(state, S5H1411_I2C_TOP_ADDR, 0x00, 0x0171); 494 s5h1411_writereg(state, S5H1411_I2C_TOP_ADDR, 0x00, 0x0171);
diff --git a/drivers/media/dvb/frontends/s5h1411.h b/drivers/media/dvb/frontends/s5h1411.h
index 1855f64ed4d8..7d542bc00c48 100644
--- a/drivers/media/dvb/frontends/s5h1411.h
+++ b/drivers/media/dvb/frontends/s5h1411.h
@@ -1,7 +1,7 @@
1/* 1/*
2 Samsung S5H1411 VSB/QAM demodulator driver 2 Samsung S5H1411 VSB/QAM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/frontends/s5h1420.c b/drivers/media/dvb/frontends/s5h1420.c
index 720ed9ff7c5f..747d3fa2e5e5 100644
--- a/drivers/media/dvb/frontends/s5h1420.c
+++ b/drivers/media/dvb/frontends/s5h1420.c
@@ -915,7 +915,8 @@ struct dvb_frontend *s5h1420_attach(const struct s5h1420_config *config,
915 state->frontend.demodulator_priv = state; 915 state->frontend.demodulator_priv = state;
916 916
917 /* create tuner i2c adapter */ 917 /* create tuner i2c adapter */
918 strncpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus", I2C_NAME_SIZE); 918 strlcpy(state->tuner_i2c_adapter.name, "S5H1420-PN1010 tuner I2C bus",
919 sizeof(state->tuner_i2c_adapter.name));
919 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL, 920 state->tuner_i2c_adapter.class = I2C_CLASS_TV_DIGITAL,
920 state->tuner_i2c_adapter.algo = &s5h1420_tuner_i2c_algo; 921 state->tuner_i2c_adapter.algo = &s5h1420_tuner_i2c_algo;
921 state->tuner_i2c_adapter.algo_data = NULL; 922 state->tuner_i2c_adapter.algo_data = NULL;
diff --git a/drivers/media/dvb/frontends/tda10048.c b/drivers/media/dvb/frontends/tda10048.c
index 0ab8d86b3ae3..04e7f1cc1403 100644
--- a/drivers/media/dvb/frontends/tda10048.c
+++ b/drivers/media/dvb/frontends/tda10048.c
@@ -1,7 +1,7 @@
1/* 1/*
2 NXP TDA10048HN DVB OFDM demodulator driver 2 NXP TDA10048HN DVB OFDM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
@@ -303,7 +303,7 @@ static int tda10048_firmware_upload(struct dvb_frontend *fe)
303 303
304 if (fw->size != TDA10048_DEFAULT_FIRMWARE_SIZE) { 304 if (fw->size != TDA10048_DEFAULT_FIRMWARE_SIZE) {
305 printk(KERN_ERR "%s: firmware incorrect size\n", __func__); 305 printk(KERN_ERR "%s: firmware incorrect size\n", __func__);
306 return -EIO; 306 ret = -EIO;
307 } else { 307 } else {
308 printk(KERN_INFO "%s: firmware uploading\n", __func__); 308 printk(KERN_INFO "%s: firmware uploading\n", __func__);
309 309
diff --git a/drivers/media/dvb/frontends/tda10048.h b/drivers/media/dvb/frontends/tda10048.h
index 2b5c78e62c86..0457b24601fa 100644
--- a/drivers/media/dvb/frontends/tda10048.h
+++ b/drivers/media/dvb/frontends/tda10048.h
@@ -1,7 +1,7 @@
1/* 1/*
2 NXP TDA10048HN DVB OFDM demodulator driver 2 NXP TDA10048HN DVB OFDM demodulator driver
3 3
4 Copyright (C) 2008 Steven Toth <stoth@hauppauge.com> 4 Copyright (C) 2008 Steven Toth <stoth@linuxtv.org>
5 5
6 This program is free software; you can redistribute it and/or modify 6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by 7 it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/dvb/siano/sms-cards.c b/drivers/media/dvb/siano/sms-cards.c
index e7a8ac0c4049..cc5efb643f33 100644
--- a/drivers/media/dvb/siano/sms-cards.c
+++ b/drivers/media/dvb/siano/sms-cards.c
@@ -4,7 +4,7 @@
4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org> 4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 3 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation; 8 * published by the Free Software Foundation;
9 * 9 *
10 * Software distributed under the License is distributed on an "AS IS" 10 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/sms-cards.h b/drivers/media/dvb/siano/sms-cards.h
index 83b39bc203fe..c8f3da6f9bc1 100644
--- a/drivers/media/dvb/siano/sms-cards.h
+++ b/drivers/media/dvb/siano/sms-cards.h
@@ -4,7 +4,7 @@
4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org> 4 * Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 3 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation; 8 * published by the Free Software Foundation;
9 * 9 *
10 * Software distributed under the License is distributed on an "AS IS" 10 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smscoreapi.c b/drivers/media/dvb/siano/smscoreapi.c
index c5f45fed69dc..6576fbb40fc6 100644
--- a/drivers/media/dvb/siano/smscoreapi.c
+++ b/drivers/media/dvb/siano/smscoreapi.c
@@ -8,7 +8,7 @@
8 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 8 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
9 * 9 *
10 * This program is free software; you can redistribute it and/or modify 10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 3 as 11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation; 12 * published by the Free Software Foundation;
13 * 13 *
14 * Software distributed under the License is distributed on an "AS IS" 14 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smscoreapi.h b/drivers/media/dvb/siano/smscoreapi.h
index c1f8f1dccb11..8d973f726fb8 100644
--- a/drivers/media/dvb/siano/smscoreapi.h
+++ b/drivers/media/dvb/siano/smscoreapi.h
@@ -6,7 +6,7 @@
6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 3 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation; 10 * published by the Free Software Foundation;
11 * 11 *
12 * Software distributed under the License is distributed on an "AS IS" 12 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smsdvb.c b/drivers/media/dvb/siano/smsdvb.c
index 229274a14110..8d490e133f35 100644
--- a/drivers/media/dvb/siano/smsdvb.c
+++ b/drivers/media/dvb/siano/smsdvb.c
@@ -6,7 +6,7 @@
6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 3 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation; 10 * published by the Free Software Foundation;
11 * 11 *
12 * Software distributed under the License is distributed on an "AS IS" 12 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/siano/smsusb.c b/drivers/media/dvb/siano/smsusb.c
index c10b1849c6a3..87a3c24454b9 100644
--- a/drivers/media/dvb/siano/smsusb.c
+++ b/drivers/media/dvb/siano/smsusb.c
@@ -6,7 +6,7 @@
6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc. 6 * Copyright (c), 2005-2008 Siano Mobile Silicon, Inc.
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 3 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation; 10 * published by the Free Software Foundation;
11 * 11 *
12 * Software distributed under the License is distributed on an "AS IS" 12 * Software distributed under the License is distributed on an "AS IS"
diff --git a/drivers/media/dvb/ttpci/budget-patch.c b/drivers/media/dvb/ttpci/budget-patch.c
index 39bd0a20f53a..aa5ed4ef19f2 100644
--- a/drivers/media/dvb/ttpci/budget-patch.c
+++ b/drivers/media/dvb/ttpci/budget-patch.c
@@ -116,7 +116,8 @@ static int SendDiSEqCMsg (struct budget *budget, int len, u8 *msg, unsigned long
116 DiseqcSendByte(budget, 0xff); 116 DiseqcSendByte(budget, 0xff);
117 else { 117 else {
118 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); 118 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI);
119 udelay(12500); 119 mdelay(12);
120 udelay(500);
120 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); 121 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO);
121 } 122 }
122 msleep(20); 123 msleep(20);
diff --git a/drivers/media/dvb/ttpci/budget.c b/drivers/media/dvb/ttpci/budget.c
index 2293d80c6e51..f0068996ac07 100644
--- a/drivers/media/dvb/ttpci/budget.c
+++ b/drivers/media/dvb/ttpci/budget.c
@@ -108,7 +108,8 @@ static int SendDiSEqCMsg (struct budget *budget, int len, u8 *msg, unsigned long
108 DiseqcSendByte(budget, 0xff); 108 DiseqcSendByte(budget, 0xff);
109 else { 109 else {
110 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); 110 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI);
111 udelay(12500); 111 mdelay(12);
112 udelay(500);
112 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); 113 saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO);
113 } 114 }
114 msleep(20); 115 msleep(20);
diff --git a/drivers/media/radio/Makefile b/drivers/media/radio/Makefile
index a30159f6fa42..7ca71ab96b43 100644
--- a/drivers/media/radio/Makefile
+++ b/drivers/media/radio/Makefile
@@ -2,8 +2,6 @@
2# Makefile for the kernel character device drivers. 2# Makefile for the kernel character device drivers.
3# 3#
4 4
5miropcm20-objs := miropcm20-rds-core.o miropcm20-radio.o
6
7obj-$(CONFIG_RADIO_AZTECH) += radio-aztech.o 5obj-$(CONFIG_RADIO_AZTECH) += radio-aztech.o
8obj-$(CONFIG_RADIO_RTRACK2) += radio-rtrack2.o 6obj-$(CONFIG_RADIO_RTRACK2) += radio-rtrack2.o
9obj-$(CONFIG_RADIO_SF16FMI) += radio-sf16fmi.o 7obj-$(CONFIG_RADIO_SF16FMI) += radio-sf16fmi.o
@@ -14,8 +12,6 @@ obj-$(CONFIG_RADIO_TERRATEC) += radio-terratec.o
14obj-$(CONFIG_RADIO_MAXIRADIO) += radio-maxiradio.o 12obj-$(CONFIG_RADIO_MAXIRADIO) += radio-maxiradio.o
15obj-$(CONFIG_RADIO_RTRACK) += radio-aimslab.o 13obj-$(CONFIG_RADIO_RTRACK) += radio-aimslab.o
16obj-$(CONFIG_RADIO_ZOLTRIX) += radio-zoltrix.o 14obj-$(CONFIG_RADIO_ZOLTRIX) += radio-zoltrix.o
17obj-$(CONFIG_RADIO_MIROPCM20) += miropcm20.o
18obj-$(CONFIG_RADIO_MIROPCM20_RDS) += miropcm20-rds.o
19obj-$(CONFIG_RADIO_GEMTEK) += radio-gemtek.o 15obj-$(CONFIG_RADIO_GEMTEK) += radio-gemtek.o
20obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o 16obj-$(CONFIG_RADIO_GEMTEK_PCI) += radio-gemtek-pci.o
21obj-$(CONFIG_RADIO_TRUST) += radio-trust.o 17obj-$(CONFIG_RADIO_TRUST) += radio-trust.o
diff --git a/drivers/media/radio/dsbr100.c b/drivers/media/radio/dsbr100.c
index 1ed88f3abe61..70c65a745923 100644
--- a/drivers/media/radio/dsbr100.c
+++ b/drivers/media/radio/dsbr100.c
@@ -493,7 +493,7 @@ static int usb_dsbr100_probe(struct usb_interface *intf,
493 radio->usbdev = interface_to_usbdev(intf); 493 radio->usbdev = interface_to_usbdev(intf);
494 radio->curfreq = FREQ_MIN*FREQ_MUL; 494 radio->curfreq = FREQ_MIN*FREQ_MUL;
495 video_set_drvdata(radio->videodev, radio); 495 video_set_drvdata(radio->videodev, radio);
496 if (video_register_device(radio->videodev, VFL_TYPE_RADIO,radio_nr)) { 496 if (video_register_device(radio->videodev, VFL_TYPE_RADIO, radio_nr) < 0) {
497 warn("Could not register video device"); 497 warn("Could not register video device");
498 video_device_release(radio->videodev); 498 video_device_release(radio->videodev);
499 kfree(radio->transfer_buffer); 499 kfree(radio->transfer_buffer);
diff --git a/drivers/media/radio/miropcm20-radio.c b/drivers/media/radio/miropcm20-radio.c
deleted file mode 100644
index 7fd7ee2d32c1..000000000000
--- a/drivers/media/radio/miropcm20-radio.c
+++ /dev/null
@@ -1,266 +0,0 @@
1/* Miro PCM20 radio driver for Linux radio support
2 * (c) 1998 Ruurd Reitsma <R.A.Reitsma@wbmt.tudelft.nl>
3 * Thanks to Norberto Pellici for the ACI device interface specification
4 * The API part is based on the radiotrack driver by M. Kirkwood
5 * This driver relies on the aci mixer (drivers/sound/aci.c)
6 * Look there for further info...
7 */
8
9/* Revision history:
10 *
11 * 1998 Ruurd Reitsma <R.A.Reitsma@wbmt.tudelft.nl>
12 * 2000-09-05 Robert Siemer <Robert.Siemer@gmx.de>
13 * removed unfinished volume control (maybe adding it later again)
14 * use OSS-mixer; added stereo control
15 */
16
17/* What ever you think about the ACI, version 0x07 is not very well!
18 * I can't get frequency, 'tuner status', 'tuner flags' or mute/mono
19 * conditions... Robert
20 */
21
22#include <linux/module.h>
23#include <linux/init.h>
24#include <linux/videodev.h>
25#include <media/v4l2-common.h>
26#include <media/v4l2-ioctl.h>
27#include "oss/aci.h"
28#include "miropcm20-rds-core.h"
29
30static int radio_nr = -1;
31module_param(radio_nr, int, 0);
32
33struct pcm20_device {
34 unsigned long freq;
35 int muted;
36 int stereo;
37};
38
39
40static int pcm20_mute(struct pcm20_device *dev, unsigned char mute)
41{
42 dev->muted = mute;
43 return aci_write_cmd(ACI_SET_TUNERMUTE, mute);
44}
45
46static int pcm20_stereo(struct pcm20_device *dev, unsigned char stereo)
47{
48 dev->stereo = stereo;
49 return aci_write_cmd(ACI_SET_TUNERMONO, !stereo);
50}
51
52static int pcm20_setfreq(struct pcm20_device *dev, unsigned long freq)
53{
54 unsigned char freql;
55 unsigned char freqh;
56
57 dev->freq=freq;
58
59 freq /= 160;
60 if (!(aci_version==0x07 || aci_version>=0xb0))
61 freq /= 10; /* I don't know exactly which version
62 * needs this hack */
63 freql = freq & 0xff;
64 freqh = freq >> 8;
65
66 aci_rds_cmd(RDS_RESET, NULL, 0);
67 pcm20_stereo(dev, 1);
68
69 return aci_rw_cmd(ACI_WRITE_TUNE, freql, freqh);
70}
71
72static int pcm20_getflags(struct pcm20_device *dev, __u32 *flags, __u16 *signal)
73{
74 /* okay, check for signal, stereo and rds here... */
75 int i;
76 unsigned char buf;
77
78 if ((i=aci_rw_cmd(ACI_READ_TUNERSTATION, -1, -1))<0)
79 return i;
80 pr_debug("check_sig: 0x%x\n", i);
81 if (i & 0x80) {
82 /* no signal from tuner */
83 *flags=0;
84 *signal=0;
85 return 0;
86 } else
87 *signal=0xffff;
88
89 if ((i=aci_rw_cmd(ACI_READ_TUNERSTEREO, -1, -1))<0)
90 return i;
91 if (i & 0x40) {
92 *flags=0;
93 } else {
94 /* stereo */
95 *flags=VIDEO_TUNER_STEREO_ON;
96 /* I can't see stereo, when forced to mono */
97 dev->stereo=1;
98 }
99
100 if ((i=aci_rds_cmd(RDS_STATUS, &buf, 1))<0)
101 return i;
102 if (buf & 1)
103 /* RDS available */
104 *flags|=VIDEO_TUNER_RDS_ON;
105 else
106 return 0;
107
108 if ((i=aci_rds_cmd(RDS_RXVALUE, &buf, 1))<0)
109 return i;
110 pr_debug("rds-signal: %d\n", buf);
111 if (buf > 15) {
112 printk("miropcm20-radio: RX strengths unexpected high...\n");
113 buf=15;
114 }
115 /* refine signal */
116 if ((*signal=SCALE(15, 0xffff, buf))==0)
117 *signal = 1;
118
119 return 0;
120}
121
122static int pcm20_do_ioctl(struct inode *inode, struct file *file,
123 unsigned int cmd, void *arg)
124{
125 struct video_device *dev = video_devdata(file);
126 struct pcm20_device *pcm20 = dev->priv;
127 int i;
128
129 switch(cmd)
130 {
131 case VIDIOCGCAP:
132 {
133 struct video_capability *v = arg;
134 memset(v,0,sizeof(*v));
135 v->type=VID_TYPE_TUNER;
136 strcpy(v->name, "Miro PCM20");
137 v->channels=1;
138 v->audios=1;
139 return 0;
140 }
141 case VIDIOCGTUNER:
142 {
143 struct video_tuner *v = arg;
144 if(v->tuner) /* Only 1 tuner */
145 return -EINVAL;
146 v->rangelow=87*16000;
147 v->rangehigh=108*16000;
148 pcm20_getflags(pcm20, &v->flags, &v->signal);
149 v->flags|=VIDEO_TUNER_LOW;
150 v->mode=VIDEO_MODE_AUTO;
151 strcpy(v->name, "FM");
152 return 0;
153 }
154 case VIDIOCSTUNER:
155 {
156 struct video_tuner *v = arg;
157 if(v->tuner!=0)
158 return -EINVAL;
159 /* Only 1 tuner so no setting needed ! */
160 return 0;
161 }
162 case VIDIOCGFREQ:
163 {
164 unsigned long *freq = arg;
165 *freq = pcm20->freq;
166 return 0;
167 }
168 case VIDIOCSFREQ:
169 {
170 unsigned long *freq = arg;
171 pcm20->freq = *freq;
172 i=pcm20_setfreq(pcm20, pcm20->freq);
173 pr_debug("First view (setfreq): 0x%x\n", i);
174 return i;
175 }
176 case VIDIOCGAUDIO:
177 {
178 struct video_audio *v = arg;
179 memset(v,0, sizeof(*v));
180 v->flags=VIDEO_AUDIO_MUTABLE;
181 if (pcm20->muted)
182 v->flags|=VIDEO_AUDIO_MUTE;
183 v->mode=VIDEO_SOUND_STEREO;
184 if (pcm20->stereo)
185 v->mode|=VIDEO_SOUND_MONO;
186 /* v->step=2048; */
187 strcpy(v->name, "Radio");
188 return 0;
189 }
190 case VIDIOCSAUDIO:
191 {
192 struct video_audio *v = arg;
193 if(v->audio)
194 return -EINVAL;
195
196 pcm20_mute(pcm20, !!(v->flags&VIDEO_AUDIO_MUTE));
197 if(v->flags&VIDEO_SOUND_MONO)
198 pcm20_stereo(pcm20, 0);
199 if(v->flags&VIDEO_SOUND_STEREO)
200 pcm20_stereo(pcm20, 1);
201
202 return 0;
203 }
204 default:
205 return -ENOIOCTLCMD;
206 }
207}
208
209static int pcm20_ioctl(struct inode *inode, struct file *file,
210 unsigned int cmd, unsigned long arg)
211{
212 return video_usercopy(inode, file, cmd, arg, pcm20_do_ioctl);
213}
214
215static struct pcm20_device pcm20_unit = {
216 .freq = 87*16000,
217 .muted = 1,
218};
219
220static const struct file_operations pcm20_fops = {
221 .owner = THIS_MODULE,
222 .open = video_exclusive_open,
223 .release = video_exclusive_release,
224 .ioctl = pcm20_ioctl,
225#ifdef CONFIG_COMPAT
226 .compat_ioctl = v4l_compat_ioctl32,
227#endif
228 .llseek = no_llseek,
229};
230
231static struct video_device pcm20_radio = {
232 .name = "Miro PCM 20 radio",
233 .fops = &pcm20_fops,
234 .priv = &pcm20_unit
235};
236
237static int __init pcm20_init(void)
238{
239 if(video_register_device(&pcm20_radio, VFL_TYPE_RADIO, radio_nr)==-1)
240 goto video_register_device;
241
242 if(attach_aci_rds()<0)
243 goto attach_aci_rds;
244
245 printk(KERN_INFO "Miro PCM20 radio card driver.\n");
246
247 return 0;
248
249 attach_aci_rds:
250 video_unregister_device(&pcm20_radio);
251 video_register_device:
252 return -EINVAL;
253}
254
255MODULE_AUTHOR("Ruurd Reitsma");
256MODULE_DESCRIPTION("A driver for the Miro PCM20 radio card.");
257MODULE_LICENSE("GPL");
258
259static void __exit pcm20_cleanup(void)
260{
261 unload_aci_rds();
262 video_unregister_device(&pcm20_radio);
263}
264
265module_init(pcm20_init);
266module_exit(pcm20_cleanup);
diff --git a/drivers/media/radio/miropcm20-rds-core.c b/drivers/media/radio/miropcm20-rds-core.c
deleted file mode 100644
index 9428d8b2642c..000000000000
--- a/drivers/media/radio/miropcm20-rds-core.c
+++ /dev/null
@@ -1,211 +0,0 @@
1/*
2 * Many thanks to Fred Seidel <seidel@metabox.de>, the
3 * designer of the RDS decoder hardware. With his help
4 * I was able to code this driver.
5 * Thanks also to Norberto Pellicci, Dominic Mounteney
6 * <DMounteney@pinnaclesys.com> and www.teleauskunft.de
7 * for good hints on finding Fred. It was somewhat hard
8 * to locate him here in Germany... [:
9 *
10 * Revision history:
11 *
12 * 2000-08-09 Robert Siemer <Robert.Siemer@gmx.de>
13 * RDS support for MiroSound PCM20 radio
14 */
15
16#include <linux/module.h>
17#include <linux/errno.h>
18#include <linux/string.h>
19#include <linux/init.h>
20#include <linux/slab.h>
21#include <linux/mutex.h>
22
23#include <asm/io.h>
24#include "oss/aci.h"
25#include "miropcm20-rds-core.h"
26
27#define DEBUG 0
28
29static struct mutex aci_rds_mutex;
30
31#define RDS_DATASHIFT 2 /* Bit 2 */
32#define RDS_DATAMASK (1 << RDS_DATASHIFT)
33#define RDS_BUSYMASK 0x10 /* Bit 4 */
34#define RDS_CLOCKMASK 0x08 /* Bit 3 */
35
36#define RDS_DATA(x) (((x) >> RDS_DATASHIFT) & 1)
37
38
39#if DEBUG
40static void print_matrix(char array[], unsigned int length)
41{
42 int i, j;
43
44 for (i=0; i<length; i++) {
45 printk(KERN_DEBUG "aci-rds: ");
46 for (j=7; j>=0; j--) {
47 printk("%d", (array[i] >> j) & 0x1);
48 }
49 if (i%8 == 0)
50 printk(" byte-border\n");
51 else
52 printk("\n");
53 }
54}
55#endif /* DEBUG */
56
57static int byte2trans(unsigned char byte, unsigned char sendbuffer[], int size)
58{
59 int i;
60
61 if (size != 8)
62 return -1;
63 for (i = 7; i >= 0; i--)
64 sendbuffer[7-i] = (byte & (1 << i)) ? RDS_DATAMASK : 0;
65 sendbuffer[0] |= RDS_CLOCKMASK;
66
67 return 0;
68}
69
70static int rds_waitread(void)
71{
72 unsigned char byte;
73 int i=2000;
74
75 do {
76 byte=inb(RDS_REGISTER);
77 i--;
78 }
79 while ((byte & RDS_BUSYMASK) && i);
80
81 if (i) {
82 #if DEBUG
83 printk(KERN_DEBUG "rds_waitread()");
84 print_matrix(&byte, 1);
85 #endif
86 return (byte);
87 } else {
88 printk(KERN_WARNING "aci-rds: rds_waitread() timeout...\n");
89 return -1;
90 }
91}
92
93/* don't use any ..._nowait() function if you are not sure what you do... */
94
95static inline void rds_rawwrite_nowait(unsigned char byte)
96{
97 #if DEBUG
98 printk(KERN_DEBUG "rds_rawwrite()");
99 print_matrix(&byte, 1);
100 #endif
101 outb(byte, RDS_REGISTER);
102}
103
104static int rds_rawwrite(unsigned char byte)
105{
106 if (rds_waitread() >= 0) {
107 rds_rawwrite_nowait(byte);
108 return 0;
109 } else
110 return -1;
111}
112
113static int rds_write(unsigned char cmd)
114{
115 unsigned char sendbuffer[8];
116 int i;
117
118 if (byte2trans(cmd, sendbuffer, 8) != 0){
119 return -1;
120 } else {
121 for (i=0; i<8; i++) {
122 rds_rawwrite(sendbuffer[i]);
123 }
124 }
125 return 0;
126}
127
128static int rds_readcycle_nowait(void)
129{
130 rds_rawwrite_nowait(0);
131 return rds_waitread();
132}
133
134static int rds_readcycle(void)
135{
136 if (rds_rawwrite(0) < 0)
137 return -1;
138 return rds_waitread();
139}
140
141static int rds_read(unsigned char databuffer[], int datasize)
142{
143 #define READSIZE (8*datasize)
144
145 int i,j;
146
147 if (datasize < 1) /* nothing to read */
148 return 0;
149
150 /* to be able to use rds_readcycle_nowait()
151 I have to waitread() here */
152 if (rds_waitread() < 0)
153 return -1;
154
155 memset(databuffer, 0, datasize);
156
157 for (i=0; i< READSIZE; i++)
158 if((j=rds_readcycle_nowait()) < 0) {
159 return -1;
160 } else {
161 databuffer[i/8]|=(RDS_DATA(j) << (7-(i%8)));
162 }
163
164 return 0;
165}
166
167static int rds_ack(void)
168{
169 int i=rds_readcycle();
170
171 if (i < 0)
172 return -1;
173 if (i & RDS_DATAMASK) {
174 return 0; /* ACK */
175 } else {
176 printk(KERN_DEBUG "aci-rds: NACK\n");
177 return 1; /* NACK */
178 }
179}
180
181int aci_rds_cmd(unsigned char cmd, unsigned char databuffer[], int datasize)
182{
183 int ret;
184
185 if (mutex_lock_interruptible(&aci_rds_mutex))
186 return -EINTR;
187
188 rds_write(cmd);
189
190 /* RDS_RESET doesn't need further processing */
191 if (cmd!=RDS_RESET && (rds_ack() || rds_read(databuffer, datasize)))
192 ret = -1;
193 else
194 ret = 0;
195
196 mutex_unlock(&aci_rds_mutex);
197
198 return ret;
199}
200EXPORT_SYMBOL(aci_rds_cmd);
201
202int __init attach_aci_rds(void)
203{
204 mutex_init(&aci_rds_mutex);
205 return 0;
206}
207
208void __exit unload_aci_rds(void)
209{
210}
211MODULE_LICENSE("GPL");
diff --git a/drivers/media/radio/miropcm20-rds-core.h b/drivers/media/radio/miropcm20-rds-core.h
deleted file mode 100644
index aeb5761f0469..000000000000
--- a/drivers/media/radio/miropcm20-rds-core.h
+++ /dev/null
@@ -1,19 +0,0 @@
1#ifndef _MIROPCM20_RDS_CORE_H_
2#define _MIROPCM20_RDS_CORE_H_
3
4extern int aci_rds_cmd(unsigned char cmd, unsigned char databuffer[], int datasize);
5
6#define RDS_STATUS 0x01
7#define RDS_STATIONNAME 0x02
8#define RDS_TEXT 0x03
9#define RDS_ALTFREQ 0x04
10#define RDS_TIMEDATE 0x05
11#define RDS_PI_CODE 0x06
12#define RDS_PTYTATP 0x07
13#define RDS_RESET 0x08
14#define RDS_RXVALUE 0x09
15
16extern void __exit unload_aci_rds(void);
17extern int __init attach_aci_rds(void);
18
19#endif /* _MIROPCM20_RDS_CORE_H_ */
diff --git a/drivers/media/radio/miropcm20-rds.c b/drivers/media/radio/miropcm20-rds.c
deleted file mode 100644
index 3e840f74d45c..000000000000
--- a/drivers/media/radio/miropcm20-rds.c
+++ /dev/null
@@ -1,136 +0,0 @@
1/* MiroSOUND PCM20 radio rds interface driver
2 * (c) 2001 Robert Siemer <Robert.Siemer@gmx.de>
3 * Thanks to Fred Seidel. See miropcm20-rds-core.c for further information.
4 */
5
6/* Revision history:
7 *
8 * 2001-04-18 Robert Siemer <Robert.Siemer@gmx.de>
9 * separate file for user interface driver
10 */
11
12#include <linux/module.h>
13#include <linux/init.h>
14#include <linux/slab.h>
15#include <linux/smp_lock.h>
16#include <linux/fs.h>
17#include <linux/miscdevice.h>
18#include <linux/delay.h>
19#include <asm/uaccess.h>
20#include "miropcm20-rds-core.h"
21
22static char * text_buffer;
23static int rds_users;
24
25
26static int rds_f_open(struct inode *in, struct file *fi)
27{
28 if (rds_users)
29 return -EBUSY;
30
31 lock_kernel();
32 rds_users++;
33 if ((text_buffer=kmalloc(66, GFP_KERNEL)) == 0) {
34 rds_users--;
35 printk(KERN_NOTICE "aci-rds: Out of memory by open()...\n");
36 unlock_kernel();
37 return -ENOMEM;
38 }
39
40 unlock_kernel();
41 return 0;
42}
43
44static int rds_f_release(struct inode *in, struct file *fi)
45{
46 kfree(text_buffer);
47
48 rds_users--;
49 return 0;
50}
51
52static void print_matrix(char *ch, char out[])
53{
54 int j;
55
56 for (j=7; j>=0; j--) {
57 out[7-j] = ((*ch >> j) & 0x1) + '0';
58 }
59}
60
61static ssize_t rds_f_read(struct file *file, char __user *buffer, size_t length, loff_t *offset)
62{
63// i = sprintf(text_buffer, "length: %d, offset: %d\n", length, *offset);
64
65 char c;
66 char bits[8];
67
68 msleep(2000);
69 aci_rds_cmd(RDS_STATUS, &c, 1);
70 print_matrix(&c, bits);
71 if (copy_to_user(buffer, bits, 8))
72 return -EFAULT;
73
74/* if ((c >> 3) & 1) {
75 aci_rds_cmd(RDS_STATIONNAME, text_buffer+1, 8);
76 text_buffer[0] = ' ' ;
77 text_buffer[9] = '\n';
78 return copy_to_user(buffer+8, text_buffer, 10) ? -EFAULT: 18;
79 }
80*/
81/* if ((c >> 6) & 1) {
82 aci_rds_cmd(RDS_PTYTATP, &c, 1);
83 if ( c & 1)
84 sprintf(text_buffer, " M");
85 else
86 sprintf(text_buffer, " S");
87 if ((c >> 1) & 1)
88 sprintf(text_buffer+2, " TA");
89 else
90 sprintf(text_buffer+2, " --");
91 if ((c >> 7) & 1)
92 sprintf(text_buffer+5, " TP");
93 else
94 sprintf(text_buffer+5, " --");
95 sprintf(text_buffer+8, " %2d\n", (c >> 2) & 0x1f);
96 return copy_to_user(buffer+8, text_buffer, 12) ? -EFAULT: 20;
97 }
98*/
99
100 if ((c >> 4) & 1) {
101 aci_rds_cmd(RDS_TEXT, text_buffer, 65);
102 text_buffer[0] = ' ' ;
103 text_buffer[65] = '\n';
104 return copy_to_user(buffer+8, text_buffer,66) ? -EFAULT : 66+8;
105 } else {
106 put_user('\n', buffer+8);
107 return 9;
108 }
109}
110
111static const struct file_operations rds_fops = {
112 .owner = THIS_MODULE,
113 .read = rds_f_read,
114 .open = rds_f_open,
115 .release = rds_f_release
116};
117
118static struct miscdevice rds_miscdev = {
119 .minor = MISC_DYNAMIC_MINOR,
120 .name = "radiotext",
121 .fops = &rds_fops,
122};
123
124static int __init miropcm20_rds_init(void)
125{
126 return misc_register(&rds_miscdev);
127}
128
129static void __exit miropcm20_rds_cleanup(void)
130{
131 misc_deregister(&rds_miscdev);
132}
133
134module_init(miropcm20_rds_init);
135module_exit(miropcm20_rds_cleanup);
136MODULE_LICENSE("GPL");
diff --git a/drivers/media/radio/radio-aimslab.c b/drivers/media/radio/radio-aimslab.c
index eba9209b3024..1f064f4b32df 100644
--- a/drivers/media/radio/radio-aimslab.c
+++ b/drivers/media/radio/radio-aimslab.c
@@ -426,8 +426,7 @@ static int __init rtrack_init(void)
426 426
427 rtrack_radio.priv=&rtrack_unit; 427 rtrack_radio.priv=&rtrack_unit;
428 428
429 if(video_register_device(&rtrack_radio, VFL_TYPE_RADIO, radio_nr)==-1) 429 if (video_register_device(&rtrack_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
430 {
431 release_region(io, 2); 430 release_region(io, 2);
432 return -EINVAL; 431 return -EINVAL;
433 } 432 }
diff --git a/drivers/media/radio/radio-aztech.c b/drivers/media/radio/radio-aztech.c
index 3fe5504428c5..628c689e3ffe 100644
--- a/drivers/media/radio/radio-aztech.c
+++ b/drivers/media/radio/radio-aztech.c
@@ -394,8 +394,7 @@ static int __init aztech_init(void)
394 mutex_init(&lock); 394 mutex_init(&lock);
395 aztech_radio.priv=&aztech_unit; 395 aztech_radio.priv=&aztech_unit;
396 396
397 if(video_register_device(&aztech_radio, VFL_TYPE_RADIO, radio_nr)==-1) 397 if (video_register_device(&aztech_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
398 {
399 release_region(io,2); 398 release_region(io,2);
400 return -EINVAL; 399 return -EINVAL;
401 } 400 }
diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
index 6166e726ed72..04c3698d32e4 100644
--- a/drivers/media/radio/radio-cadet.c
+++ b/drivers/media/radio/radio-cadet.c
@@ -682,7 +682,7 @@ static int __init cadet_init(void)
682 } 682 }
683 if (!request_region(io,2,"cadet")) 683 if (!request_region(io,2,"cadet"))
684 goto fail; 684 goto fail;
685 if(video_register_device(&cadet_radio,VFL_TYPE_RADIO,radio_nr)==-1) { 685 if (video_register_device(&cadet_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
686 release_region(io,2); 686 release_region(io,2);
687 goto fail; 687 goto fail;
688 } 688 }
diff --git a/drivers/media/radio/radio-gemtek-pci.c b/drivers/media/radio/radio-gemtek-pci.c
index 36e754e3ffb2..5cd7f032298d 100644
--- a/drivers/media/radio/radio-gemtek-pci.c
+++ b/drivers/media/radio/radio-gemtek-pci.c
@@ -425,7 +425,7 @@ static int __devinit gemtek_pci_probe( struct pci_dev *pci_dev, const struct pci
425 } 425 }
426 *devradio = vdev_template; 426 *devradio = vdev_template;
427 427
428 if ( video_register_device( devradio, VFL_TYPE_RADIO , nr_radio) == -1 ) { 428 if (video_register_device(devradio, VFL_TYPE_RADIO, nr_radio) < 0) {
429 kfree( devradio ); 429 kfree( devradio );
430 goto err_video; 430 goto err_video;
431 } 431 }
diff --git a/drivers/media/radio/radio-gemtek.c b/drivers/media/radio/radio-gemtek.c
index 2b1a6221de6d..0a0f956bb308 100644
--- a/drivers/media/radio/radio-gemtek.c
+++ b/drivers/media/radio/radio-gemtek.c
@@ -612,8 +612,7 @@ static int __init gemtek_init(void)
612 612
613 gemtek_radio.priv = &gemtek_unit; 613 gemtek_radio.priv = &gemtek_unit;
614 614
615 if (video_register_device(&gemtek_radio, VFL_TYPE_RADIO, 615 if (video_register_device(&gemtek_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
616 radio_nr) == -1) {
617 release_region(io, 1); 616 release_region(io, 1);
618 return -EBUSY; 617 return -EBUSY;
619 } 618 }
diff --git a/drivers/media/radio/radio-maestro.c b/drivers/media/radio/radio-maestro.c
index 0ada1c697e8a..9ef0a763eeb7 100644
--- a/drivers/media/radio/radio-maestro.c
+++ b/drivers/media/radio/radio-maestro.c
@@ -409,8 +409,7 @@ static int __devinit maestro_probe(struct pci_dev *pdev,
409 video_set_drvdata(maestro_radio_inst, radio_unit); 409 video_set_drvdata(maestro_radio_inst, radio_unit);
410 pci_set_drvdata(pdev, maestro_radio_inst); 410 pci_set_drvdata(pdev, maestro_radio_inst);
411 411
412 retval = video_register_device(maestro_radio_inst, VFL_TYPE_RADIO, 412 retval = video_register_device(maestro_radio_inst, VFL_TYPE_RADIO, radio_nr);
413 radio_nr);
414 if (retval) { 413 if (retval) {
415 printk(KERN_ERR "can't register video device!\n"); 414 printk(KERN_ERR "can't register video device!\n");
416 goto errfr1; 415 goto errfr1;
diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
index 43c75497dc49..0cc6fcb041fd 100644
--- a/drivers/media/radio/radio-maxiradio.c
+++ b/drivers/media/radio/radio-maxiradio.c
@@ -156,28 +156,28 @@ static void set_freq(__u16 io, __u32 freq)
156{ 156{
157 unsigned long int si; 157 unsigned long int si;
158 int bl; 158 int bl;
159 int data = FREQ2BITS(freq); 159 int val = FREQ2BITS(freq);
160 160
161 /* TEA5757 shift register bits (see pdf) */ 161 /* TEA5757 shift register bits (see pdf) */
162 162
163 outbit(0,io); // 24 search 163 outbit(0, io); /* 24 search */
164 outbit(1,io); // 23 search up/down 164 outbit(1, io); /* 23 search up/down */
165 165
166 outbit(0,io); // 22 stereo/mono 166 outbit(0, io); /* 22 stereo/mono */
167 167
168 outbit(0,io); // 21 band 168 outbit(0, io); /* 21 band */
169 outbit(0,io); // 20 band (only 00=FM works I think) 169 outbit(0, io); /* 20 band (only 00=FM works I think) */
170 170
171 outbit(0,io); // 19 port ? 171 outbit(0, io); /* 19 port ? */
172 outbit(0,io); // 18 port ? 172 outbit(0, io); /* 18 port ? */
173 173
174 outbit(0,io); // 17 search level 174 outbit(0, io); /* 17 search level */
175 outbit(0,io); // 16 search level 175 outbit(0, io); /* 16 search level */
176 176
177 si = 0x8000; 177 si = 0x8000;
178 for (bl = 1; bl <= 16 ; bl++) { 178 for (bl = 1; bl <= 16; bl++) {
179 outbit(data & si,io); 179 outbit(val & si, io);
180 si >>=1; 180 si >>= 1;
181 } 181 }
182 182
183 dprintk(1, "Radio freq set to %d.%02d MHz\n", 183 dprintk(1, "Radio freq set to %d.%02d MHz\n",
@@ -410,7 +410,7 @@ static int __devinit maxiradio_init_one(struct pci_dev *pdev, const struct pci_d
410 mutex_init(&radio_unit.lock); 410 mutex_init(&radio_unit.lock);
411 maxiradio_radio.priv = &radio_unit; 411 maxiradio_radio.priv = &radio_unit;
412 412
413 if (video_register_device(&maxiradio_radio, VFL_TYPE_RADIO, radio_nr)==-1) { 413 if (video_register_device(&maxiradio_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
414 printk("radio-maxiradio: can't register device!"); 414 printk("radio-maxiradio: can't register device!");
415 goto err_out_free_region; 415 goto err_out_free_region;
416 } 416 }
diff --git a/drivers/media/radio/radio-rtrack2.c b/drivers/media/radio/radio-rtrack2.c
index e2dde0807268..6d820e2481e7 100644
--- a/drivers/media/radio/radio-rtrack2.c
+++ b/drivers/media/radio/radio-rtrack2.c
@@ -332,8 +332,7 @@ static int __init rtrack2_init(void)
332 rtrack2_radio.priv=&rtrack2_unit; 332 rtrack2_radio.priv=&rtrack2_unit;
333 333
334 spin_lock_init(&lock); 334 spin_lock_init(&lock);
335 if(video_register_device(&rtrack2_radio, VFL_TYPE_RADIO, radio_nr)==-1) 335 if (video_register_device(&rtrack2_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
336 {
337 release_region(io, 4); 336 release_region(io, 4);
338 return -EINVAL; 337 return -EINVAL;
339 } 338 }
diff --git a/drivers/media/radio/radio-sf16fmi.c b/drivers/media/radio/radio-sf16fmi.c
index bb5d92f104af..0d478f54a907 100644
--- a/drivers/media/radio/radio-sf16fmi.c
+++ b/drivers/media/radio/radio-sf16fmi.c
@@ -377,7 +377,7 @@ static int __init fmi_init(void)
377 377
378 mutex_init(&lock); 378 mutex_init(&lock);
379 379
380 if (video_register_device(&fmi_radio, VFL_TYPE_RADIO, radio_nr) == -1) { 380 if (video_register_device(&fmi_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
381 release_region(io, 2); 381 release_region(io, 2);
382 return -EINVAL; 382 return -EINVAL;
383 } 383 }
diff --git a/drivers/media/radio/radio-si470x.c b/drivers/media/radio/radio-si470x.c
index a4984ff87c9c..16c7ef20265c 100644
--- a/drivers/media/radio/radio-si470x.c
+++ b/drivers/media/radio/radio-si470x.c
@@ -1694,8 +1694,8 @@ static int si470x_usb_driver_probe(struct usb_interface *intf,
1694 INIT_DELAYED_WORK(&radio->work, si470x_work); 1694 INIT_DELAYED_WORK(&radio->work, si470x_work);
1695 1695
1696 /* register video device */ 1696 /* register video device */
1697 if (video_register_device(radio->videodev, VFL_TYPE_RADIO, radio_nr)) { 1697 retval = video_register_device(radio->videodev, VFL_TYPE_RADIO, radio_nr);
1698 retval = -EIO; 1698 if (retval) {
1699 printk(KERN_WARNING DRIVER_NAME 1699 printk(KERN_WARNING DRIVER_NAME
1700 ": Could not register video device\n"); 1700 ": Could not register video device\n");
1701 goto err_all; 1701 goto err_all;
diff --git a/drivers/media/radio/radio-terratec.c b/drivers/media/radio/radio-terratec.c
index cefa44fc5aed..0876fecc5f27 100644
--- a/drivers/media/radio/radio-terratec.c
+++ b/drivers/media/radio/radio-terratec.c
@@ -405,8 +405,7 @@ static int __init terratec_init(void)
405 405
406 spin_lock_init(&lock); 406 spin_lock_init(&lock);
407 407
408 if(video_register_device(&terratec_radio, VFL_TYPE_RADIO, radio_nr)==-1) 408 if (video_register_device(&terratec_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
409 {
410 release_region(io,2); 409 release_region(io,2);
411 return -EINVAL; 410 return -EINVAL;
412 } 411 }
diff --git a/drivers/media/radio/radio-trust.c b/drivers/media/radio/radio-trust.c
index d70172d23edb..193161956253 100644
--- a/drivers/media/radio/radio-trust.c
+++ b/drivers/media/radio/radio-trust.c
@@ -378,8 +378,7 @@ static int __init trust_init(void)
378 printk(KERN_ERR "trust: port 0x%x already in use\n", io); 378 printk(KERN_ERR "trust: port 0x%x already in use\n", io);
379 return -EBUSY; 379 return -EBUSY;
380 } 380 }
381 if(video_register_device(&trust_radio, VFL_TYPE_RADIO, radio_nr)==-1) 381 if (video_register_device(&trust_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
382 {
383 release_region(io, 2); 382 release_region(io, 2);
384 return -EINVAL; 383 return -EINVAL;
385 } 384 }
diff --git a/drivers/media/radio/radio-zoltrix.c b/drivers/media/radio/radio-zoltrix.c
index 9f17a332fa11..51d57ed3b3e1 100644
--- a/drivers/media/radio/radio-zoltrix.c
+++ b/drivers/media/radio/radio-zoltrix.c
@@ -446,8 +446,7 @@ static int __init zoltrix_init(void)
446 return -EBUSY; 446 return -EBUSY;
447 } 447 }
448 448
449 if (video_register_device(&zoltrix_radio, VFL_TYPE_RADIO, radio_nr) == -1) 449 if (video_register_device(&zoltrix_radio, VFL_TYPE_RADIO, radio_nr) < 0) {
450 {
451 release_region(io, 2); 450 release_region(io, 2);
452 return -EINVAL; 451 return -EINVAL;
453 } 452 }
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
index ecbfa1b39b70..3e9e0dcd217e 100644
--- a/drivers/media/video/Kconfig
+++ b/drivers/media/video/Kconfig
@@ -968,7 +968,7 @@ config VIDEO_PXA27x
968 968
969config VIDEO_SH_MOBILE_CEU 969config VIDEO_SH_MOBILE_CEU
970 tristate "SuperH Mobile CEU Interface driver" 970 tristate "SuperH Mobile CEU Interface driver"
971 depends on VIDEO_DEV 971 depends on VIDEO_DEV && HAS_DMA
972 select SOC_CAMERA 972 select SOC_CAMERA
973 select VIDEOBUF_DMA_CONTIG 973 select VIDEOBUF_DMA_CONTIG
974 ---help--- 974 ---help---
diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
index bbc6f8b82297..ef7c8d3ffb18 100644
--- a/drivers/media/video/Makefile
+++ b/drivers/media/video/Makefile
@@ -20,6 +20,8 @@ ifeq ($(CONFIG_VIDEO_V4L1_COMPAT),y)
20 obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o 20 obj-$(CONFIG_VIDEO_DEV) += v4l1-compat.o
21endif 21endif
22 22
23obj-$(CONFIG_VIDEO_TUNER) += tuner.o
24
23obj-$(CONFIG_VIDEO_BT848) += bt8xx/ 25obj-$(CONFIG_VIDEO_BT848) += bt8xx/
24obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o 26obj-$(CONFIG_VIDEO_IR_I2C) += ir-kbd-i2c.o
25obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o 27obj-$(CONFIG_VIDEO_TVAUDIO) += tvaudio.o
@@ -85,8 +87,6 @@ obj-$(CONFIG_VIDEO_HEXIUM_GEMINI) += hexium_gemini.o
85obj-$(CONFIG_VIDEO_DPC) += dpc7146.o 87obj-$(CONFIG_VIDEO_DPC) += dpc7146.o
86obj-$(CONFIG_TUNER_3036) += tuner-3036.o 88obj-$(CONFIG_TUNER_3036) += tuner-3036.o
87 89
88obj-$(CONFIG_VIDEO_TUNER) += tuner.o
89
90obj-$(CONFIG_VIDEOBUF_GEN) += videobuf-core.o 90obj-$(CONFIG_VIDEOBUF_GEN) += videobuf-core.o
91obj-$(CONFIG_VIDEOBUF_DMA_SG) += videobuf-dma-sg.o 91obj-$(CONFIG_VIDEOBUF_DMA_SG) += videobuf-dma-sg.o
92obj-$(CONFIG_VIDEOBUF_DMA_CONTIG) += videobuf-dma-contig.o 92obj-$(CONFIG_VIDEOBUF_DMA_CONTIG) += videobuf-dma-contig.o
diff --git a/drivers/media/video/au0828/Kconfig b/drivers/media/video/au0828/Kconfig
index ed9a50f189fc..018f72b8e3e2 100644
--- a/drivers/media/video/au0828/Kconfig
+++ b/drivers/media/video/au0828/Kconfig
@@ -7,6 +7,7 @@ config VIDEO_AU0828
7 select DVB_AU8522 if !DVB_FE_CUSTOMIZE 7 select DVB_AU8522 if !DVB_FE_CUSTOMIZE
8 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE 8 select MEDIA_TUNER_XC5000 if !DVB_FE_CUSTOMIZE
9 select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE 9 select MEDIA_TUNER_MXL5007T if !DVB_FE_CUSTOMIZE
10 select MEDIA_TUNER_TDA18271 if !DVB_FE_CUSTOMIZE
10 ---help--- 11 ---help---
11 This is a video4linux driver for Auvitek's USB device. 12 This is a video4linux driver for Auvitek's USB device.
12 13
diff --git a/drivers/media/video/au0828/au0828-cards.c b/drivers/media/video/au0828/au0828-cards.c
index 443e59009762..ed48908a9034 100644
--- a/drivers/media/video/au0828/au0828-cards.c
+++ b/drivers/media/video/au0828/au0828-cards.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -38,6 +38,9 @@ struct au0828_board au0828_boards[] = {
38 [AU0828_BOARD_DVICO_FUSIONHDTV7] = { 38 [AU0828_BOARD_DVICO_FUSIONHDTV7] = {
39 .name = "DViCO FusionHDTV USB", 39 .name = "DViCO FusionHDTV USB",
40 }, 40 },
41 [AU0828_BOARD_HAUPPAUGE_WOODBURY] = {
42 .name = "Hauppauge Woodbury",
43 },
41}; 44};
42 45
43/* Tuner callback function for au0828 boards. Currently only needed 46/* Tuner callback function for au0828 boards. Currently only needed
@@ -115,6 +118,7 @@ void au0828_card_setup(struct au0828_dev *dev)
115 case AU0828_BOARD_HAUPPAUGE_HVR850: 118 case AU0828_BOARD_HAUPPAUGE_HVR850:
116 case AU0828_BOARD_HAUPPAUGE_HVR950Q: 119 case AU0828_BOARD_HAUPPAUGE_HVR950Q:
117 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: 120 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
121 case AU0828_BOARD_HAUPPAUGE_WOODBURY:
118 if (dev->i2c_rc == 0) 122 if (dev->i2c_rc == 0)
119 hauppauge_eeprom(dev, eeprom+0xa0); 123 hauppauge_eeprom(dev, eeprom+0xa0);
120 break; 124 break;
@@ -134,6 +138,7 @@ void au0828_gpio_setup(struct au0828_dev *dev)
134 case AU0828_BOARD_HAUPPAUGE_HVR850: 138 case AU0828_BOARD_HAUPPAUGE_HVR850:
135 case AU0828_BOARD_HAUPPAUGE_HVR950Q: 139 case AU0828_BOARD_HAUPPAUGE_HVR950Q:
136 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL: 140 case AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL:
141 case AU0828_BOARD_HAUPPAUGE_WOODBURY:
137 /* GPIO's 142 /* GPIO's
138 * 4 - CS5340 143 * 4 - CS5340
139 * 5 - AU8522 Demodulator 144 * 5 - AU8522 Demodulator
@@ -205,6 +210,8 @@ struct usb_device_id au0828_usb_id_table [] = {
205 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, 210 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
206 { USB_DEVICE(0x2040, 0x7281), 211 { USB_DEVICE(0x2040, 0x7281),
207 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL }, 212 .driver_info = AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL },
213 { USB_DEVICE(0x2040, 0x8200),
214 .driver_info = AU0828_BOARD_HAUPPAUGE_WOODBURY },
208 { }, 215 { },
209}; 216};
210 217
diff --git a/drivers/media/video/au0828/au0828-cards.h b/drivers/media/video/au0828/au0828-cards.h
index c37f5fd0fa80..48a1882c2b6b 100644
--- a/drivers/media/video/au0828/au0828-cards.h
+++ b/drivers/media/video/au0828/au0828-cards.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -24,3 +24,4 @@
24#define AU0828_BOARD_HAUPPAUGE_HVR850 2 24#define AU0828_BOARD_HAUPPAUGE_HVR850 2
25#define AU0828_BOARD_DVICO_FUSIONHDTV7 3 25#define AU0828_BOARD_DVICO_FUSIONHDTV7 3
26#define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4 26#define AU0828_BOARD_HAUPPAUGE_HVR950Q_MXL 4
27#define AU0828_BOARD_HAUPPAUGE_WOODBURY 5
diff --git a/drivers/media/video/au0828/au0828-core.c b/drivers/media/video/au0828/au0828-core.c
index 54bfc0f05295..d856de9f742f 100644
--- a/drivers/media/video/au0828/au0828-core.c
+++ b/drivers/media/video/au0828/au0828-core.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -252,5 +252,5 @@ module_init(au0828_init);
252module_exit(au0828_exit); 252module_exit(au0828_exit);
253 253
254MODULE_DESCRIPTION("Driver for Auvitek AU0828 based products"); 254MODULE_DESCRIPTION("Driver for Auvitek AU0828 based products");
255MODULE_AUTHOR("Steven Toth <stoth@hauppauge.com>"); 255MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>");
256MODULE_LICENSE("GPL"); 256MODULE_LICENSE("GPL");
diff --git a/drivers/media/video/au0828/au0828-dvb.c b/drivers/media/video/au0828/au0828-dvb.c
index 584a83a94a2a..ba94be7e0ac1 100644
--- a/drivers/media/video/au0828/au0828-dvb.c
+++ b/drivers/media/video/au0828/au0828-dvb.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -29,6 +29,7 @@
29#include "au8522.h" 29#include "au8522.h"
30#include "xc5000.h" 30#include "xc5000.h"
31#include "mxl5007t.h" 31#include "mxl5007t.h"
32#include "tda18271.h"
32 33
33DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); 34DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
34 35
@@ -38,6 +39,15 @@ DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
38static struct au8522_config hauppauge_hvr950q_config = { 39static struct au8522_config hauppauge_hvr950q_config = {
39 .demod_address = 0x8e >> 1, 40 .demod_address = 0x8e >> 1,
40 .status_mode = AU8522_DEMODLOCKING, 41 .status_mode = AU8522_DEMODLOCKING,
42 .qam_if = AU8522_IF_6MHZ,
43 .vsb_if = AU8522_IF_6MHZ,
44};
45
46static struct au8522_config hauppauge_woodbury_config = {
47 .demod_address = 0x8e >> 1,
48 .status_mode = AU8522_DEMODLOCKING,
49 .qam_if = AU8522_IF_4MHZ,
50 .vsb_if = AU8522_IF_3_25MHZ,
41}; 51};
42 52
43static struct xc5000_config hauppauge_hvr950q_tunerconfig = { 53static struct xc5000_config hauppauge_hvr950q_tunerconfig = {
@@ -51,6 +61,10 @@ static struct mxl5007t_config mxl5007t_hvr950q_config = {
51 .if_freq_hz = MxL_IF_6_MHZ, 61 .if_freq_hz = MxL_IF_6_MHZ,
52}; 62};
53 63
64static struct tda18271_config hauppauge_woodbury_tunerconfig = {
65 .gate = TDA18271_GATE_DIGITAL,
66};
67
54/*-------------------------------------------------------------------*/ 68/*-------------------------------------------------------------------*/
55static void urb_completion(struct urb *purb) 69static void urb_completion(struct urb *purb)
56{ 70{
@@ -357,6 +371,15 @@ int au0828_dvb_register(struct au0828_dev *dev)
357 &dev->i2c_adap, 0x60, 371 &dev->i2c_adap, 0x60,
358 &mxl5007t_hvr950q_config); 372 &mxl5007t_hvr950q_config);
359 break; 373 break;
374 case AU0828_BOARD_HAUPPAUGE_WOODBURY:
375 dvb->frontend = dvb_attach(au8522_attach,
376 &hauppauge_woodbury_config,
377 &dev->i2c_adap);
378 if (dvb->frontend != NULL)
379 dvb_attach(tda18271_attach, dvb->frontend,
380 0x60, &dev->i2c_adap,
381 &hauppauge_woodbury_tunerconfig);
382 break;
360 default: 383 default:
361 printk(KERN_WARNING "The frontend of your DVB/ATSC card " 384 printk(KERN_WARNING "The frontend of your DVB/ATSC card "
362 "isn't supported yet\n"); 385 "isn't supported yet\n");
diff --git a/drivers/media/video/au0828/au0828-i2c.c b/drivers/media/video/au0828/au0828-i2c.c
index 741a4937b050..d618fbaade1b 100644
--- a/drivers/media/video/au0828/au0828-i2c.c
+++ b/drivers/media/video/au0828/au0828-i2c.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek AU0828 USB bridge 2 * Driver for the Auvitek AU0828 USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/au0828/au0828-reg.h b/drivers/media/video/au0828/au0828-reg.h
index 39827550891c..1e87fa0c6842 100644
--- a/drivers/media/video/au0828/au0828-reg.h
+++ b/drivers/media/video/au0828/au0828-reg.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek USB bridge 2 * Driver for the Auvitek USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/au0828/au0828.h b/drivers/media/video/au0828/au0828.h
index 7beb571798e5..4f10ff300135 100644
--- a/drivers/media/video/au0828/au0828.h
+++ b/drivers/media/video/au0828/au0828.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Auvitek AU0828 USB bridge 2 * Driver for the Auvitek AU0828 USB bridge
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/bt8xx/bttv-cards.c b/drivers/media/video/bt8xx/bttv-cards.c
index 1c56ae92ce74..6081edc362df 100644
--- a/drivers/media/video/bt8xx/bttv-cards.c
+++ b/drivers/media/video/bt8xx/bttv-cards.c
@@ -3144,8 +3144,9 @@ static void identify_by_eeprom(struct bttv *btv, unsigned char eeprom_data[256])
3144 3144
3145static void flyvideo_gpio(struct bttv *btv) 3145static void flyvideo_gpio(struct bttv *btv)
3146{ 3146{
3147 int gpio,has_remote,has_radio,is_capture_only,is_lr90,has_tda9820_tda9821; 3147 int gpio, has_remote, has_radio, is_capture_only;
3148 int tuner=UNSET,ttype; 3148 int is_lr90, has_tda9820_tda9821;
3149 int tuner_type = UNSET, ttype;
3149 3150
3150 gpio_inout(0xffffff, 0); 3151 gpio_inout(0xffffff, 0);
3151 udelay(8); /* without this we would see the 0x1800 mask */ 3152 udelay(8); /* without this we would see the 0x1800 mask */
@@ -3163,20 +3164,26 @@ static void flyvideo_gpio(struct bttv *btv)
3163 * xxxF00(LR26/LR50), xxxFE0(LR90): Remote control chip (LVA001 or CF45) soldered 3164 * xxxF00(LR26/LR50), xxxFE0(LR90): Remote control chip (LVA001 or CF45) soldered
3164 * Note: Some bits are Audio_Mask ! 3165 * Note: Some bits are Audio_Mask !
3165 */ 3166 */
3166 ttype=(gpio&0x0f0000)>>16; 3167 ttype = (gpio & 0x0f0000) >> 16;
3167 switch(ttype) { 3168 switch (ttype) {
3168 case 0x0: tuner=2; /* NTSC, e.g. TPI8NSR11P */ 3169 case 0x0:
3170 tuner_type = 2; /* NTSC, e.g. TPI8NSR11P */
3169 break; 3171 break;
3170 case 0x2: tuner=39;/* LG NTSC (newer TAPC series) TAPC-H701P */ 3172 case 0x2:
3173 tuner_type = 39; /* LG NTSC (newer TAPC series) TAPC-H701P */
3171 break; 3174 break;
3172 case 0x4: tuner=5; /* Philips PAL TPI8PSB02P, TPI8PSB12P, TPI8PSB12D or FI1216, FM1216 */ 3175 case 0x4:
3176 tuner_type = 5; /* Philips PAL TPI8PSB02P, TPI8PSB12P, TPI8PSB12D or FI1216, FM1216 */
3173 break; 3177 break;
3174 case 0x6: tuner=37;/* LG PAL (newer TAPC series) TAPC-G702P */ 3178 case 0x6:
3179 tuner_type = 37; /* LG PAL (newer TAPC series) TAPC-G702P */
3175 break; 3180 break;
3176 case 0xC: tuner=3; /* Philips SECAM(+PAL) FQ1216ME or FI1216MF */ 3181 case 0xC:
3182 tuner_type = 3; /* Philips SECAM(+PAL) FQ1216ME or FI1216MF */
3177 break; 3183 break;
3178 default: 3184 default:
3179 printk(KERN_INFO "bttv%d: FlyVideo_gpio: unknown tuner type.\n", btv->c.nr); 3185 printk(KERN_INFO "bttv%d: FlyVideo_gpio: unknown tuner type.\n", btv->c.nr);
3186 break;
3180 } 3187 }
3181 3188
3182 has_remote = gpio & 0x800000; 3189 has_remote = gpio & 0x800000;
@@ -3189,23 +3196,26 @@ static void flyvideo_gpio(struct bttv *btv)
3189 /* 3196 /*
3190 * gpio & 0x001000 output bit for audio routing */ 3197 * gpio & 0x001000 output bit for audio routing */
3191 3198
3192 if(is_capture_only) 3199 if (is_capture_only)
3193 tuner = TUNER_ABSENT; /* No tuner present */ 3200 tuner_type = TUNER_ABSENT; /* No tuner present */
3194 3201
3195 printk(KERN_INFO "bttv%d: FlyVideo Radio=%s RemoteControl=%s Tuner=%d gpio=0x%06x\n", 3202 printk(KERN_INFO "bttv%d: FlyVideo Radio=%s RemoteControl=%s Tuner=%d gpio=0x%06x\n",
3196 btv->c.nr, has_radio? "yes":"no ", has_remote? "yes":"no ", tuner, gpio); 3203 btv->c.nr, has_radio ? "yes" : "no ",
3204 has_remote ? "yes" : "no ", tuner_type, gpio);
3197 printk(KERN_INFO "bttv%d: FlyVideo LR90=%s tda9821/tda9820=%s capture_only=%s\n", 3205 printk(KERN_INFO "bttv%d: FlyVideo LR90=%s tda9821/tda9820=%s capture_only=%s\n",
3198 btv->c.nr, is_lr90?"yes":"no ", has_tda9820_tda9821?"yes":"no ", 3206 btv->c.nr, is_lr90 ? "yes" : "no ",
3199 is_capture_only?"yes":"no "); 3207 has_tda9820_tda9821 ? "yes" : "no ",
3208 is_capture_only ? "yes" : "no ");
3200 3209
3201 if (tuner != UNSET) /* only set if known tuner autodetected, else let insmod option through */ 3210 if (tuner_type != UNSET) /* only set if known tuner autodetected, else let insmod option through */
3202 btv->tuner_type = tuner; 3211 btv->tuner_type = tuner_type;
3203 btv->has_radio = has_radio; 3212 btv->has_radio = has_radio;
3204 3213
3205 /* LR90 Audio Routing is done by 2 hef4052, so Audio_Mask has 4 bits: 0x001c80 3214 /* LR90 Audio Routing is done by 2 hef4052, so Audio_Mask has 4 bits: 0x001c80
3206 * LR26/LR50 only has 1 hef4052, Audio_Mask 0x000c00 3215 * LR26/LR50 only has 1 hef4052, Audio_Mask 0x000c00
3207 * Audio options: from tuner, from tda9821/tda9821(mono,stereo,sap), from tda9874, ext., mute */ 3216 * Audio options: from tuner, from tda9821/tda9821(mono,stereo,sap), from tda9874, ext., mute */
3208 if(has_tda9820_tda9821) btv->audio_mode_gpio = lt9415_audio; 3217 if (has_tda9820_tda9821)
3218 btv->audio_mode_gpio = lt9415_audio;
3209 /* todo: if(has_tda9874) btv->audio_mode_gpio = fv2000s_audio; */ 3219 /* todo: if(has_tda9874) btv->audio_mode_gpio = fv2000s_audio; */
3210} 3220}
3211 3221
@@ -3962,7 +3972,7 @@ static int tuner_1_table[] = {
3962 3972
3963static void __devinit avermedia_eeprom(struct bttv *btv) 3973static void __devinit avermedia_eeprom(struct bttv *btv)
3964{ 3974{
3965 int tuner_make,tuner_tv_fm,tuner_format,tuner=0; 3975 int tuner_make, tuner_tv_fm, tuner_format, tuner_type = 0;
3966 3976
3967 tuner_make = (eeprom_data[0x41] & 0x7); 3977 tuner_make = (eeprom_data[0x41] & 0x7);
3968 tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3; 3978 tuner_tv_fm = (eeprom_data[0x41] & 0x18) >> 3;
@@ -3970,24 +3980,24 @@ static void __devinit avermedia_eeprom(struct bttv *btv)
3970 btv->has_remote = (eeprom_data[0x42] & 0x01); 3980 btv->has_remote = (eeprom_data[0x42] & 0x01);
3971 3981
3972 if (tuner_make == 0 || tuner_make == 2) 3982 if (tuner_make == 0 || tuner_make == 2)
3973 if(tuner_format <=0x0a) 3983 if (tuner_format <= 0x0a)
3974 tuner = tuner_0_table[tuner_format]; 3984 tuner_type = tuner_0_table[tuner_format];
3975 if (tuner_make == 1) 3985 if (tuner_make == 1)
3976 if(tuner_format <=9) 3986 if (tuner_format <= 9)
3977 tuner = tuner_1_table[tuner_format]; 3987 tuner_type = tuner_1_table[tuner_format];
3978 3988
3979 if (tuner_make == 4) 3989 if (tuner_make == 4)
3980 if(tuner_format == 0x09) 3990 if (tuner_format == 0x09)
3981 tuner = TUNER_LG_NTSC_NEW_TAPC; /* TAPC-G702P */ 3991 tuner_type = TUNER_LG_NTSC_NEW_TAPC; /* TAPC-G702P */
3982 3992
3983 printk(KERN_INFO "bttv%d: Avermedia eeprom[0x%02x%02x]: tuner=", 3993 printk(KERN_INFO "bttv%d: Avermedia eeprom[0x%02x%02x]: tuner=",
3984 btv->c.nr,eeprom_data[0x41],eeprom_data[0x42]); 3994 btv->c.nr, eeprom_data[0x41], eeprom_data[0x42]);
3985 if(tuner) { 3995 if (tuner_type) {
3986 btv->tuner_type=tuner; 3996 btv->tuner_type = tuner_type;
3987 printk("%d",tuner); 3997 printk(KERN_CONT "%d", tuner_type);
3988 } else 3998 } else
3989 printk("Unknown type"); 3999 printk(KERN_CONT "Unknown type");
3990 printk(" radio:%s remote control:%s\n", 4000 printk(KERN_CONT " radio:%s remote control:%s\n",
3991 tuner_tv_fm ? "yes" : "no", 4001 tuner_tv_fm ? "yes" : "no",
3992 btv->has_remote ? "yes" : "no"); 4002 btv->has_remote ? "yes" : "no");
3993} 4003}
@@ -4029,7 +4039,8 @@ static void __devinit boot_msp34xx(struct bttv *btv, int pin)
4029 4039
4030 gpio_inout(mask,mask); 4040 gpio_inout(mask,mask);
4031 gpio_bits(mask,0); 4041 gpio_bits(mask,0);
4032 udelay(2500); 4042 mdelay(2);
4043 udelay(500);
4033 gpio_bits(mask,mask); 4044 gpio_bits(mask,mask);
4034 4045
4035 if (bttv_gpio) 4046 if (bttv_gpio)
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index 85bf31ab8789..6ae4cc860efe 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -96,7 +96,6 @@ static unsigned int irq_iswitch;
96static unsigned int uv_ratio = 50; 96static unsigned int uv_ratio = 50;
97static unsigned int full_luma_range; 97static unsigned int full_luma_range;
98static unsigned int coring; 98static unsigned int coring;
99extern int no_overlay;
100 99
101/* API features (turn on/off stuff for testing) */ 100/* API features (turn on/off stuff for testing) */
102static unsigned int v4l2 = 1; 101static unsigned int v4l2 = 1;
diff --git a/drivers/media/video/bt8xx/bttv-risc.c b/drivers/media/video/bt8xx/bttv-risc.c
index 649682aac1ac..5b1b8e4c78ba 100644
--- a/drivers/media/video/bt8xx/bttv-risc.c
+++ b/drivers/media/video/bt8xx/bttv-risc.c
@@ -244,7 +244,8 @@ bttv_risc_overlay(struct bttv *btv, struct btcx_riscmem *risc,
244 const struct bttv_format *fmt, struct bttv_overlay *ov, 244 const struct bttv_format *fmt, struct bttv_overlay *ov,
245 int skip_even, int skip_odd) 245 int skip_even, int skip_odd)
246{ 246{
247 int dwords,rc,line,maxy,start,end,skip,nskips; 247 int dwords, rc, line, maxy, start, end;
248 unsigned skip, nskips;
248 struct btcx_skiplist *skips; 249 struct btcx_skiplist *skips;
249 __le32 *rp; 250 __le32 *rp;
250 u32 ri,ra; 251 u32 ri,ra;
diff --git a/drivers/media/video/bt8xx/bttvp.h b/drivers/media/video/bt8xx/bttvp.h
index 08ef54a22c9e..b4d940b2e447 100644
--- a/drivers/media/video/bt8xx/bttvp.h
+++ b/drivers/media/video/bt8xx/bttvp.h
@@ -267,6 +267,11 @@ int bttv_sub_add_device(struct bttv_core *core, char *name);
267int bttv_sub_del_devices(struct bttv_core *core); 267int bttv_sub_del_devices(struct bttv_core *core);
268 268
269/* ---------------------------------------------------------- */ 269/* ---------------------------------------------------------- */
270/* bttv-cards.c */
271
272extern int no_overlay;
273
274/* ---------------------------------------------------------- */
270/* bttv-driver.c */ 275/* bttv-driver.c */
271 276
272/* insmod options */ 277/* insmod options */
diff --git a/drivers/media/video/btcx-risc.c b/drivers/media/video/btcx-risc.c
index f42701f82e7f..3324ab38f58c 100644
--- a/drivers/media/video/btcx-risc.c
+++ b/drivers/media/video/btcx-risc.c
@@ -184,12 +184,12 @@ btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips)
184} 184}
185 185
186void 186void
187btcx_calc_skips(int line, int width, unsigned int *maxy, 187btcx_calc_skips(int line, int width, int *maxy,
188 struct btcx_skiplist *skips, unsigned int *nskips, 188 struct btcx_skiplist *skips, unsigned int *nskips,
189 const struct v4l2_clip *clips, unsigned int nclips) 189 const struct v4l2_clip *clips, unsigned int nclips)
190{ 190{
191 unsigned int clip,skip; 191 unsigned int clip,skip;
192 int end,maxline; 192 int end, maxline;
193 193
194 skip=0; 194 skip=0;
195 maxline = 9999; 195 maxline = 9999;
diff --git a/drivers/media/video/btcx-risc.h b/drivers/media/video/btcx-risc.h
index 861bc8112824..f8bc6e8e7b51 100644
--- a/drivers/media/video/btcx-risc.h
+++ b/drivers/media/video/btcx-risc.h
@@ -23,7 +23,7 @@ int btcx_screen_clips(int swidth, int sheight, struct v4l2_rect *win,
23int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips, 23int btcx_align(struct v4l2_rect *win, struct v4l2_clip *clips,
24 unsigned int n, int mask); 24 unsigned int n, int mask);
25void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips); 25void btcx_sort_clips(struct v4l2_clip *clips, unsigned int nclips);
26void btcx_calc_skips(int line, int width, unsigned int *maxy, 26void btcx_calc_skips(int line, int width, int *maxy,
27 struct btcx_skiplist *skips, unsigned int *nskips, 27 struct btcx_skiplist *skips, unsigned int *nskips,
28 const struct v4l2_clip *clips, unsigned int nclips); 28 const struct v4l2_clip *clips, unsigned int nclips);
29 29
diff --git a/drivers/media/video/bw-qcam.c b/drivers/media/video/bw-qcam.c
index d3b3268bace8..6e39e253ce53 100644
--- a/drivers/media/video/bw-qcam.c
+++ b/drivers/media/video/bw-qcam.c
@@ -946,8 +946,7 @@ static int init_bwqcam(struct parport *port)
946 946
947 printk(KERN_INFO "Connectix Quickcam on %s\n", qcam->pport->name); 947 printk(KERN_INFO "Connectix Quickcam on %s\n", qcam->pport->name);
948 948
949 if(video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr)==-1) 949 if (video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
950 {
951 parport_unregister_device(qcam->pdev); 950 parport_unregister_device(qcam->pdev);
952 kfree(qcam); 951 kfree(qcam);
953 return -ENODEV; 952 return -ENODEV;
diff --git a/drivers/media/video/c-qcam.c b/drivers/media/video/c-qcam.c
index fe9379b282d3..7f6c6b4bec10 100644
--- a/drivers/media/video/c-qcam.c
+++ b/drivers/media/video/c-qcam.c
@@ -787,8 +787,7 @@ static int init_cqcam(struct parport *port)
787 787
788 parport_release(qcam->pdev); 788 parport_release(qcam->pdev);
789 789
790 if (video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr)==-1) 790 if (video_register_device(&qcam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
791 {
792 printk(KERN_ERR "Unable to register Colour QuickCam on %s\n", 791 printk(KERN_ERR "Unable to register Colour QuickCam on %s\n",
793 qcam->pport->name); 792 qcam->pport->name);
794 parport_unregister_device(qcam->pdev); 793 parport_unregister_device(qcam->pdev);
diff --git a/drivers/media/video/cpia.c b/drivers/media/video/cpia.c
index dc8cc6115e2f..a661800b0e69 100644
--- a/drivers/media/video/cpia.c
+++ b/drivers/media/video/cpia.c
@@ -3955,7 +3955,7 @@ struct cam_data *cpia_register_camera(struct cpia_camera_ops *ops, void *lowleve
3955 camera->lowlevel_data = lowlevel; 3955 camera->lowlevel_data = lowlevel;
3956 3956
3957 /* register v4l device */ 3957 /* register v4l device */
3958 if (video_register_device(&camera->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { 3958 if (video_register_device(&camera->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
3959 kfree(camera); 3959 kfree(camera);
3960 printk(KERN_DEBUG "video_register_device failed\n"); 3960 printk(KERN_DEBUG "video_register_device failed\n");
3961 return NULL; 3961 return NULL;
diff --git a/drivers/media/video/cpia2/cpia2_v4l.c b/drivers/media/video/cpia2/cpia2_v4l.c
index 515c8b57a60d..eb9f15cd4c45 100644
--- a/drivers/media/video/cpia2/cpia2_v4l.c
+++ b/drivers/media/video/cpia2/cpia2_v4l.c
@@ -1024,7 +1024,6 @@ static int ioctl_queryctrl(void *arg,struct camera_data *cam)
1024 if(cam->params.pnp_id.device_type == DEVICE_STV_672 && 1024 if(cam->params.pnp_id.device_type == DEVICE_STV_672 &&
1025 cam->params.version.sensor_flags==CPIA2_VP_SENSOR_FLAGS_500){ 1025 cam->params.version.sensor_flags==CPIA2_VP_SENSOR_FLAGS_500){
1026 // Maximum 15fps 1026 // Maximum 15fps
1027 int i;
1028 for(i=0; i<c->maximum; ++i) { 1027 for(i=0; i<c->maximum; ++i) {
1029 if(framerate_controls[i].value == 1028 if(framerate_controls[i].value ==
1030 CPIA2_VP_FRAMERATE_15) { 1029 CPIA2_VP_FRAMERATE_15) {
@@ -1959,8 +1958,7 @@ int cpia2_register_camera(struct camera_data *cam)
1959 reset_camera_struct_v4l(cam); 1958 reset_camera_struct_v4l(cam);
1960 1959
1961 /* register v4l device */ 1960 /* register v4l device */
1962 if (video_register_device 1961 if (video_register_device(cam->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
1963 (cam->vdev, VFL_TYPE_GRABBER, video_nr) == -1) {
1964 ERR("video_register_device failed\n"); 1962 ERR("video_register_device failed\n");
1965 video_device_release(cam->vdev); 1963 video_device_release(cam->vdev);
1966 return -ENODEV; 1964 return -ENODEV;
diff --git a/drivers/media/video/cx18/cx18-av-firmware.c b/drivers/media/video/cx18/cx18-av-firmware.c
index 834b9248242e..e996a4e3123a 100644
--- a/drivers/media/video/cx18/cx18-av-firmware.c
+++ b/drivers/media/video/cx18/cx18-av-firmware.c
@@ -32,7 +32,7 @@ int cx18_av_loadfw(struct cx18 *cx)
32 u32 v; 32 u32 v;
33 const u8 *ptr; 33 const u8 *ptr;
34 int i; 34 int i;
35 int retries = 0; 35 int retries1 = 0;
36 36
37 if (request_firmware(&fw, FWFILE, &cx->dev->dev) != 0) { 37 if (request_firmware(&fw, FWFILE, &cx->dev->dev) != 0) {
38 CX18_ERR("unable to open firmware %s\n", FWFILE); 38 CX18_ERR("unable to open firmware %s\n", FWFILE);
@@ -41,7 +41,7 @@ int cx18_av_loadfw(struct cx18 *cx)
41 41
42 /* The firmware load often has byte errors, so allow for several 42 /* The firmware load often has byte errors, so allow for several
43 retries, both at byte level and at the firmware load level. */ 43 retries, both at byte level and at the firmware load level. */
44 while (retries < 5) { 44 while (retries1 < 5) {
45 cx18_av_write4(cx, CXADEC_CHIP_CTRL, 0x00010000); 45 cx18_av_write4(cx, CXADEC_CHIP_CTRL, 0x00010000);
46 cx18_av_write(cx, CXADEC_STD_DET_CTL, 0xf6); 46 cx18_av_write(cx, CXADEC_STD_DET_CTL, 0xf6);
47 47
@@ -57,9 +57,9 @@ int cx18_av_loadfw(struct cx18 *cx)
57 for (i = 0; i < size; i++) { 57 for (i = 0; i < size; i++) {
58 u32 dl_control = 0x0F000000 | i | ((u32)ptr[i] << 16); 58 u32 dl_control = 0x0F000000 | i | ((u32)ptr[i] << 16);
59 u32 value = 0; 59 u32 value = 0;
60 int retries; 60 int retries2;
61 61
62 for (retries = 0; retries < 5; retries++) { 62 for (retries2 = 0; retries2 < 5; retries2++) {
63 cx18_av_write4(cx, CXADEC_DL_CTL, dl_control); 63 cx18_av_write4(cx, CXADEC_DL_CTL, dl_control);
64 udelay(10); 64 udelay(10);
65 value = cx18_av_read4(cx, CXADEC_DL_CTL); 65 value = cx18_av_read4(cx, CXADEC_DL_CTL);
@@ -69,18 +69,18 @@ int cx18_av_loadfw(struct cx18 *cx)
69 the address. We can only write the lower 69 the address. We can only write the lower
70 address byte of the address. */ 70 address byte of the address. */
71 if ((value & 0x3F00) != (dl_control & 0x3F00)) { 71 if ((value & 0x3F00) != (dl_control & 0x3F00)) {
72 retries = 5; 72 retries2 = 5;
73 break; 73 break;
74 } 74 }
75 } 75 }
76 if (retries >= 5) 76 if (retries2 >= 5)
77 break; 77 break;
78 } 78 }
79 if (i == size) 79 if (i == size)
80 break; 80 break;
81 retries++; 81 retries1++;
82 } 82 }
83 if (retries >= 5) { 83 if (retries1 >= 5) {
84 CX18_ERR("unable to load firmware %s\n", FWFILE); 84 CX18_ERR("unable to load firmware %s\n", FWFILE);
85 release_firmware(fw); 85 release_firmware(fw);
86 return -EIO; 86 return -EIO;
diff --git a/drivers/media/video/cx18/cx18-driver.c b/drivers/media/video/cx18/cx18-driver.c
index 22434aadde31..bd18afebbf86 100644
--- a/drivers/media/video/cx18/cx18-driver.c
+++ b/drivers/media/video/cx18/cx18-driver.c
@@ -74,9 +74,9 @@ static int radio[CX18_MAX_CARDS] = { -1, -1, -1, -1, -1, -1, -1, -1,
74 -1, -1, -1, -1, -1, -1, -1, -1, 74 -1, -1, -1, -1, -1, -1, -1, -1,
75 -1, -1, -1, -1, -1, -1, -1, -1 }; 75 -1, -1, -1, -1, -1, -1, -1, -1 };
76 76
77static int cardtype_c = 1; 77static unsigned cardtype_c = 1;
78static int tuner_c = 1; 78static unsigned tuner_c = 1;
79static int radio_c = 1; 79static unsigned radio_c = 1;
80static char pal[] = "--"; 80static char pal[] = "--";
81static char secam[] = "--"; 81static char secam[] = "--";
82static char ntsc[] = "-"; 82static char ntsc[] = "-";
diff --git a/drivers/media/video/cx18/cx18-dvb.c b/drivers/media/video/cx18/cx18-dvb.c
index cae38985b131..1e420a804fc9 100644
--- a/drivers/media/video/cx18/cx18-dvb.c
+++ b/drivers/media/video/cx18/cx18-dvb.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * cx18 functions for DVB support 2 * cx18 functions for DVB support
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx18/cx18-dvb.h b/drivers/media/video/cx18/cx18-dvb.h
index d6a6ccda79a9..bf8d8f6f5455 100644
--- a/drivers/media/video/cx18/cx18-dvb.h
+++ b/drivers/media/video/cx18/cx18-dvb.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * cx18 functions for DVB support 2 * cx18 functions for DVB support
3 * 3 *
4 * Copyright (c) 2008 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2008 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx18/cx18-irq.c b/drivers/media/video/cx18/cx18-irq.c
index 25114a5cbd57..ab218315c84b 100644
--- a/drivers/media/video/cx18/cx18-irq.c
+++ b/drivers/media/video/cx18/cx18-irq.c
@@ -61,7 +61,7 @@ static void epu_dma_done(struct cx18 *cx, struct cx18_mailbox *mb)
61 CX18_WARN("Ack struct = %d for %s\n", 61 CX18_WARN("Ack struct = %d for %s\n",
62 mb->args[2], s->name); 62 mb->args[2], s->name);
63 id = read_enc(off); 63 id = read_enc(off);
64 buf = cx18_queue_find_buf(s, id, read_enc(off + 4)); 64 buf = cx18_queue_get_buf_irq(s, id, read_enc(off + 4));
65 CX18_DEBUG_HI_DMA("DMA DONE for %s (buffer %d)\n", s->name, id); 65 CX18_DEBUG_HI_DMA("DMA DONE for %s (buffer %d)\n", s->name, id);
66 if (buf) { 66 if (buf) {
67 cx18_buf_sync_for_cpu(s, buf); 67 cx18_buf_sync_for_cpu(s, buf);
diff --git a/drivers/media/video/cx18/cx18-queue.c b/drivers/media/video/cx18/cx18-queue.c
index 6990b77c6200..dbe792ac3001 100644
--- a/drivers/media/video/cx18/cx18-queue.c
+++ b/drivers/media/video/cx18/cx18-queue.c
@@ -78,12 +78,13 @@ struct cx18_buffer *cx18_dequeue(struct cx18_stream *s, struct cx18_queue *q)
78 return buf; 78 return buf;
79} 79}
80 80
81struct cx18_buffer *cx18_queue_find_buf(struct cx18_stream *s, u32 id, 81struct cx18_buffer *cx18_queue_get_buf_irq(struct cx18_stream *s, u32 id,
82 u32 bytesused) 82 u32 bytesused)
83{ 83{
84 struct cx18 *cx = s->cx; 84 struct cx18 *cx = s->cx;
85 struct list_head *p; 85 struct list_head *p;
86 86
87 spin_lock(&s->qlock);
87 list_for_each(p, &s->q_free.list) { 88 list_for_each(p, &s->q_free.list) {
88 struct cx18_buffer *buf = 89 struct cx18_buffer *buf =
89 list_entry(p, struct cx18_buffer, list); 90 list_entry(p, struct cx18_buffer, list);
@@ -92,114 +93,48 @@ struct cx18_buffer *cx18_queue_find_buf(struct cx18_stream *s, u32 id,
92 continue; 93 continue;
93 buf->bytesused = bytesused; 94 buf->bytesused = bytesused;
94 /* the transport buffers are handled differently, 95 /* the transport buffers are handled differently,
95 so there is no need to move them to the full queue */ 96 they are not moved to the full queue */
96 if (s->type == CX18_ENC_STREAM_TYPE_TS) 97 if (s->type != CX18_ENC_STREAM_TYPE_TS) {
97 return buf; 98 s->q_free.buffers--;
98 s->q_free.buffers--; 99 s->q_free.length -= s->buf_size;
99 s->q_free.length -= s->buf_size; 100 s->q_full.buffers++;
100 s->q_full.buffers++; 101 s->q_full.length += s->buf_size;
101 s->q_full.length += s->buf_size; 102 s->q_full.bytesused += buf->bytesused;
102 s->q_full.bytesused += buf->bytesused; 103 list_move_tail(&buf->list, &s->q_full.list);
103 list_move_tail(&buf->list, &s->q_full.list); 104 }
105 spin_unlock(&s->qlock);
104 return buf; 106 return buf;
105 } 107 }
108 spin_unlock(&s->qlock);
106 CX18_ERR("Cannot find buffer %d for stream %s\n", id, s->name); 109 CX18_ERR("Cannot find buffer %d for stream %s\n", id, s->name);
107 return NULL; 110 return NULL;
108} 111}
109 112
110static void cx18_queue_move_buf(struct cx18_stream *s, struct cx18_queue *from, 113/* Move all buffers of a queue to q_free, while flushing the buffers */
111 struct cx18_queue *to, int clear, int full) 114static void cx18_queue_flush(struct cx18_stream *s, struct cx18_queue *q)
112{
113 struct cx18_buffer *buf =
114 list_entry(from->list.next, struct cx18_buffer, list);
115
116 list_move_tail(from->list.next, &to->list);
117 from->buffers--;
118 from->length -= s->buf_size;
119 from->bytesused -= buf->bytesused - buf->readpos;
120 /* special handling for q_free */
121 if (clear)
122 buf->bytesused = buf->readpos = buf->b_flags = 0;
123 else if (full) {
124 /* special handling for stolen buffers, assume
125 all bytes are used. */
126 buf->bytesused = s->buf_size;
127 buf->readpos = buf->b_flags = 0;
128 }
129 to->buffers++;
130 to->length += s->buf_size;
131 to->bytesused += buf->bytesused - buf->readpos;
132}
133
134/* Move 'needed_bytes' worth of buffers from queue 'from' into queue 'to'.
135 If 'needed_bytes' == 0, then move all buffers from 'from' into 'to'.
136 If 'steal' != NULL, then buffers may also taken from that queue if
137 needed.
138
139 The buffer is automatically cleared if it goes to the free queue. It is
140 also cleared if buffers need to be taken from the 'steal' queue and
141 the 'from' queue is the free queue.
142
143 When 'from' is q_free, then needed_bytes is compared to the total
144 available buffer length, otherwise needed_bytes is compared to the
145 bytesused value. For the 'steal' queue the total available buffer
146 length is always used.
147
148 -ENOMEM is returned if the buffers could not be obtained, 0 if all
149 buffers where obtained from the 'from' list and if non-zero then
150 the number of stolen buffers is returned. */
151static int cx18_queue_move(struct cx18_stream *s, struct cx18_queue *from,
152 struct cx18_queue *steal, struct cx18_queue *to,
153 int needed_bytes)
154{ 115{
155 unsigned long flags; 116 unsigned long flags;
156 int rc = 0; 117 struct cx18_buffer *buf;
157 int from_free = from == &s->q_free;
158 int to_free = to == &s->q_free;
159 int bytes_available;
160
161 spin_lock_irqsave(&s->qlock, flags);
162 if (needed_bytes == 0) {
163 from_free = 1;
164 needed_bytes = from->length;
165 }
166
167 bytes_available = from_free ? from->length : from->bytesused;
168 bytes_available += steal ? steal->length : 0;
169 118
170 if (bytes_available < needed_bytes) { 119 if (q == &s->q_free)
171 spin_unlock_irqrestore(&s->qlock, flags); 120 return;
172 return -ENOMEM;
173 }
174 if (from_free) {
175 u32 old_length = to->length;
176 121
177 while (to->length - old_length < needed_bytes) { 122 spin_lock_irqsave(&s->qlock, flags);
178 if (list_empty(&from->list)) 123 while (!list_empty(&q->list)) {
179 from = steal; 124 buf = list_entry(q->list.next, struct cx18_buffer, list);
180 if (from == steal) 125 list_move_tail(q->list.next, &s->q_free.list);
181 rc++; /* keep track of 'stolen' buffers */ 126 buf->bytesused = buf->readpos = buf->b_flags = 0;
182 cx18_queue_move_buf(s, from, to, 1, 0); 127 s->q_free.buffers++;
183 } 128 s->q_free.length += s->buf_size;
184 } else {
185 u32 old_bytesused = to->bytesused;
186
187 while (to->bytesused - old_bytesused < needed_bytes) {
188 if (list_empty(&from->list))
189 from = steal;
190 if (from == steal)
191 rc++; /* keep track of 'stolen' buffers */
192 cx18_queue_move_buf(s, from, to, to_free, rc);
193 }
194 } 129 }
130 cx18_queue_init(q);
195 spin_unlock_irqrestore(&s->qlock, flags); 131 spin_unlock_irqrestore(&s->qlock, flags);
196 return rc;
197} 132}
198 133
199void cx18_flush_queues(struct cx18_stream *s) 134void cx18_flush_queues(struct cx18_stream *s)
200{ 135{
201 cx18_queue_move(s, &s->q_io, NULL, &s->q_free, 0); 136 cx18_queue_flush(s, &s->q_io);
202 cx18_queue_move(s, &s->q_full, NULL, &s->q_free, 0); 137 cx18_queue_flush(s, &s->q_full);
203} 138}
204 139
205int cx18_stream_alloc(struct cx18_stream *s) 140int cx18_stream_alloc(struct cx18_stream *s)
@@ -214,10 +149,10 @@ int cx18_stream_alloc(struct cx18_stream *s)
214 s->name, s->buffers, s->buf_size, 149 s->name, s->buffers, s->buf_size,
215 s->buffers * s->buf_size / 1024); 150 s->buffers * s->buf_size / 1024);
216 151
217 if (((char *)&cx->scb->cpu_mdl[cx->mdl_offset + s->buffers] - 152 if (((char __iomem *)&cx->scb->cpu_mdl[cx->mdl_offset + s->buffers] -
218 (char *)cx->scb) > SCB_RESERVED_SIZE) { 153 (char __iomem *)cx->scb) > SCB_RESERVED_SIZE) {
219 unsigned bufsz = (((char *)cx->scb) + SCB_RESERVED_SIZE - 154 unsigned bufsz = (((char __iomem *)cx->scb) + SCB_RESERVED_SIZE -
220 ((char *)cx->scb->cpu_mdl)); 155 ((char __iomem *)cx->scb->cpu_mdl));
221 156
222 CX18_ERR("Too many buffers, cannot fit in SCB area\n"); 157 CX18_ERR("Too many buffers, cannot fit in SCB area\n");
223 CX18_ERR("Max buffers = %zd\n", 158 CX18_ERR("Max buffers = %zd\n",
diff --git a/drivers/media/video/cx18/cx18-queue.h b/drivers/media/video/cx18/cx18-queue.h
index 91423b9863a4..7f93bb13c09f 100644
--- a/drivers/media/video/cx18/cx18-queue.h
+++ b/drivers/media/video/cx18/cx18-queue.h
@@ -46,7 +46,7 @@ void cx18_queue_init(struct cx18_queue *q);
46void cx18_enqueue(struct cx18_stream *s, struct cx18_buffer *buf, 46void cx18_enqueue(struct cx18_stream *s, struct cx18_buffer *buf,
47 struct cx18_queue *q); 47 struct cx18_queue *q);
48struct cx18_buffer *cx18_dequeue(struct cx18_stream *s, struct cx18_queue *q); 48struct cx18_buffer *cx18_dequeue(struct cx18_stream *s, struct cx18_queue *q);
49struct cx18_buffer *cx18_queue_find_buf(struct cx18_stream *s, u32 id, 49struct cx18_buffer *cx18_queue_get_buf_irq(struct cx18_stream *s, u32 id,
50 u32 bytesused); 50 u32 bytesused);
51void cx18_flush_queues(struct cx18_stream *s); 51void cx18_flush_queues(struct cx18_stream *s);
52 52
diff --git a/drivers/media/video/cx23885/cx23885-417.c b/drivers/media/video/cx23885/cx23885-417.c
index 8118091568fc..7b0e8c01692e 100644
--- a/drivers/media/video/cx23885/cx23885-417.c
+++ b/drivers/media/video/cx23885/cx23885-417.c
@@ -4,7 +4,7 @@
4 * 4 *
5 * (c) 2004 Jelle Foks <jelle@foks.8m.com> 5 * (c) 2004 Jelle Foks <jelle@foks.8m.com>
6 * (c) 2004 Gerd Knorr <kraxel@bytesex.org> 6 * (c) 2004 Gerd Knorr <kraxel@bytesex.org>
7 * (c) 2008 Steven Toth <stoth@hauppauge.com> 7 * (c) 2008 Steven Toth <stoth@linuxtv.org>
8 * - CX23885/7/8 support 8 * - CX23885/7/8 support
9 * 9 *
10 * Includes parts from the ivtv driver( http://ivtv.sourceforge.net/), 10 * Includes parts from the ivtv driver( http://ivtv.sourceforge.net/),
diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index a19de850955d..c36d3f632104 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
index 6286a9cf957e..25fb09938744 100644
--- a/drivers/media/video/cx23885/cx23885-core.c
+++ b/drivers/media/video/cx23885/cx23885-core.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
33#include "cx23885.h" 33#include "cx23885.h"
34 34
35MODULE_DESCRIPTION("Driver for cx23885 based TV cards"); 35MODULE_DESCRIPTION("Driver for cx23885 based TV cards");
36MODULE_AUTHOR("Steven Toth <stoth@hauppauge.com>"); 36MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>");
37MODULE_LICENSE("GPL"); 37MODULE_LICENSE("GPL");
38 38
39static unsigned int debug; 39static unsigned int debug;
diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
index 0a2e6558cd66..291b9d008da8 100644
--- a/drivers/media/video/cx23885/cx23885-dvb.c
+++ b/drivers/media/video/cx23885/cx23885-dvb.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-i2c.c b/drivers/media/video/cx23885/cx23885-i2c.c
index c6bb0a05bc1c..f98e476e9617 100644
--- a/drivers/media/video/cx23885/cx23885-i2c.c
+++ b/drivers/media/video/cx23885/cx23885-i2c.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-reg.h b/drivers/media/video/cx23885/cx23885-reg.h
index bdd11bc513ad..20b68a236260 100644
--- a/drivers/media/video/cx23885/cx23885-reg.h
+++ b/drivers/media/video/cx23885/cx23885-reg.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-vbi.c b/drivers/media/video/cx23885/cx23885-vbi.c
index e36e3fcae2fb..35e61cd112fc 100644
--- a/drivers/media/video/cx23885/cx23885-vbi.c
+++ b/drivers/media/video/cx23885/cx23885-vbi.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx23885/cx23885-video.c b/drivers/media/video/cx23885/cx23885-video.c
index ad2235dab5b1..6047c78d84bf 100644
--- a/drivers/media/video/cx23885/cx23885-video.c
+++ b/drivers/media/video/cx23885/cx23885-video.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2007 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2007 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -41,7 +41,7 @@
41#endif 41#endif
42 42
43MODULE_DESCRIPTION("v4l2 driver module for cx23885 based TV cards"); 43MODULE_DESCRIPTION("v4l2 driver module for cx23885 based TV cards");
44MODULE_AUTHOR("Steven Toth <stoth@hauppauge.com>"); 44MODULE_AUTHOR("Steven Toth <stoth@linuxtv.org>");
45MODULE_LICENSE("GPL"); 45MODULE_LICENSE("GPL");
46 46
47/* ------------------------------------------------------------------ */ 47/* ------------------------------------------------------------------ */
diff --git a/drivers/media/video/cx23885/cx23885.h b/drivers/media/video/cx23885/cx23885.h
index 00dfdc89d641..e23d97c071e0 100644
--- a/drivers/media/video/cx23885/cx23885.h
+++ b/drivers/media/video/cx23885/cx23885.h
@@ -1,7 +1,7 @@
1/* 1/*
2 * Driver for the Conexant CX23885 PCIe bridge 2 * Driver for the Conexant CX23885 PCIe bridge
3 * 3 *
4 * Copyright (c) 2006 Steven Toth <stoth@hauppauge.com> 4 * Copyright (c) 2006 Steven Toth <stoth@linuxtv.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
index 209d3bcb5dbb..4da8cd74f00e 100644
--- a/drivers/media/video/cx25840/cx25840-core.c
+++ b/drivers/media/video/cx25840/cx25840-core.c
@@ -13,7 +13,7 @@
13 * NTSC sliced VBI support by Christopher Neufeld <television@cneufeld.ca> 13 * NTSC sliced VBI support by Christopher Neufeld <television@cneufeld.ca>
14 * with additional fixes by Hans Verkuil <hverkuil@xs4all.nl>. 14 * with additional fixes by Hans Verkuil <hverkuil@xs4all.nl>.
15 * 15 *
16 * CX23885 support by Steven Toth <stoth@hauppauge.com>. 16 * CX23885 support by Steven Toth <stoth@linuxtv.org>.
17 * 17 *
18 * This program is free software; you can redistribute it and/or 18 * This program is free software; you can redistribute it and/or
19 * modify it under the terms of the GNU General Public License 19 * modify it under the terms of the GNU General Public License
diff --git a/drivers/media/video/dabusb.c b/drivers/media/video/dabusb.c
index 48f4b92a8f8b..79faedf58521 100644
--- a/drivers/media/video/dabusb.c
+++ b/drivers/media/video/dabusb.c
@@ -403,6 +403,7 @@ static int dabusb_fpga_download (pdabusb_t s, const char *fname)
403 ret = request_firmware(&fw, "dabusb/bitstream.bin", &s->usbdev->dev); 403 ret = request_firmware(&fw, "dabusb/bitstream.bin", &s->usbdev->dev);
404 if (ret) { 404 if (ret) {
405 err("Failed to load \"dabusb/bitstream.bin\": %d\n", ret); 405 err("Failed to load \"dabusb/bitstream.bin\": %d\n", ret);
406 kfree(b);
406 return ret; 407 return ret;
407 } 408 }
408 409
diff --git a/drivers/media/video/et61x251/et61x251_core.c b/drivers/media/video/et61x251/et61x251_core.c
index 2d170d101c21..8db2a05bf9c5 100644
--- a/drivers/media/video/et61x251/et61x251_core.c
+++ b/drivers/media/video/et61x251/et61x251_core.c
@@ -2588,6 +2588,7 @@ et61x251_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
2588 cam->v4ldev->fops = &et61x251_fops; 2588 cam->v4ldev->fops = &et61x251_fops;
2589 cam->v4ldev->minor = video_nr[dev_nr]; 2589 cam->v4ldev->minor = video_nr[dev_nr];
2590 cam->v4ldev->release = video_device_release; 2590 cam->v4ldev->release = video_device_release;
2591 cam->v4ldev->parent = &udev->dev;
2591 video_set_drvdata(cam->v4ldev, cam); 2592 video_set_drvdata(cam->v4ldev, cam);
2592 2593
2593 init_completion(&cam->probe); 2594 init_completion(&cam->probe);
diff --git a/drivers/media/video/gspca/conex.c b/drivers/media/video/gspca/conex.c
index cd3a3f5829b2..4d9f4cc255a9 100644
--- a/drivers/media/video/gspca/conex.c
+++ b/drivers/media/video/gspca/conex.c
@@ -124,7 +124,7 @@ static void reg_r(struct gspca_dev *gspca_dev,
124 struct usb_device *dev = gspca_dev->dev; 124 struct usb_device *dev = gspca_dev->dev;
125 125
126#ifdef GSPCA_DEBUG 126#ifdef GSPCA_DEBUG
127 if (len > sizeof gspca_dev->usb_buf) { 127 if (len > USB_BUF_SZ) {
128 err("reg_r: buffer overflow"); 128 err("reg_r: buffer overflow");
129 return; 129 return;
130 } 130 }
@@ -164,7 +164,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
164 struct usb_device *dev = gspca_dev->dev; 164 struct usb_device *dev = gspca_dev->dev;
165 165
166#ifdef GSPCA_DEBUG 166#ifdef GSPCA_DEBUG
167 if (len > sizeof gspca_dev->usb_buf) { 167 if (len > USB_BUF_SZ) {
168 err("reg_w: buffer overflow"); 168 err("reg_w: buffer overflow");
169 return; 169 return;
170 } 170 }
@@ -731,13 +731,13 @@ static void cx11646_jpeg(struct gspca_dev*gspca_dev)
731 reg_w_val(gspca_dev, 0x0000, 0x00); 731 reg_w_val(gspca_dev, 0x0000, 0x00);
732 /* wait for completion */ 732 /* wait for completion */
733 retry = 50; 733 retry = 50;
734 while (retry--) { 734 do {
735 reg_r(gspca_dev, 0x0002, 1); 735 reg_r(gspca_dev, 0x0002, 1);
736 /* 0x07 until 0x00 */ 736 /* 0x07 until 0x00 */
737 if (gspca_dev->usb_buf[0] == 0x00) 737 if (gspca_dev->usb_buf[0] == 0x00)
738 break; 738 break;
739 reg_w_val(gspca_dev, 0x0053, 0x00); 739 reg_w_val(gspca_dev, 0x0053, 0x00);
740 } 740 } while (--retry);
741 if (retry == 0) 741 if (retry == 0)
742 PDEBUG(D_ERR, "Damned Errors sending jpeg Table"); 742 PDEBUG(D_ERR, "Damned Errors sending jpeg Table");
743 /* send the qtable now */ 743 /* send the qtable now */
@@ -826,8 +826,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
826 return 0; 826 return 0;
827} 827}
828 828
829/* this function is called at open time */ 829/* this function is called at probe and resume time */
830static int sd_open(struct gspca_dev *gspca_dev) 830static int sd_init(struct gspca_dev *gspca_dev)
831{ 831{
832 cx11646_init1(gspca_dev); 832 cx11646_init1(gspca_dev);
833 cx11646_initsize(gspca_dev); 833 cx11646_initsize(gspca_dev);
@@ -845,10 +845,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
845 cx11646_jpeg(gspca_dev); 845 cx11646_jpeg(gspca_dev);
846} 846}
847 847
848static void sd_stopN(struct gspca_dev *gspca_dev)
849{
850}
851
852static void sd_stop0(struct gspca_dev *gspca_dev) 848static void sd_stop0(struct gspca_dev *gspca_dev)
853{ 849{
854 int retry = 50; 850 int retry = 50;
@@ -871,10 +867,6 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
871 reg_w_val(gspca_dev, 0x00fc, 0xe0); 867 reg_w_val(gspca_dev, 0x00fc, 0xe0);
872} 868}
873 869
874static void sd_close(struct gspca_dev *gspca_dev)
875{
876}
877
878static void sd_pkt_scan(struct gspca_dev *gspca_dev, 870static void sd_pkt_scan(struct gspca_dev *gspca_dev,
879 struct gspca_frame *frame, /* target */ 871 struct gspca_frame *frame, /* target */
880 __u8 *data, /* isoc packet */ 872 __u8 *data, /* isoc packet */
@@ -998,11 +990,9 @@ static struct sd_desc sd_desc = {
998 .ctrls = sd_ctrls, 990 .ctrls = sd_ctrls,
999 .nctrls = ARRAY_SIZE(sd_ctrls), 991 .nctrls = ARRAY_SIZE(sd_ctrls),
1000 .config = sd_config, 992 .config = sd_config,
1001 .open = sd_open, 993 .init = sd_init,
1002 .start = sd_start, 994 .start = sd_start,
1003 .stopN = sd_stopN,
1004 .stop0 = sd_stop0, 995 .stop0 = sd_stop0,
1005 .close = sd_close,
1006 .pkt_scan = sd_pkt_scan, 996 .pkt_scan = sd_pkt_scan,
1007}; 997};
1008 998
@@ -1026,6 +1016,10 @@ static struct usb_driver sd_driver = {
1026 .id_table = device_table, 1016 .id_table = device_table,
1027 .probe = sd_probe, 1017 .probe = sd_probe,
1028 .disconnect = gspca_disconnect, 1018 .disconnect = gspca_disconnect,
1019#ifdef CONFIG_PM
1020 .suspend = gspca_suspend,
1021 .resume = gspca_resume,
1022#endif
1029}; 1023};
1030 1024
1031/* -- module insert / remove -- */ 1025/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/etoms.c b/drivers/media/video/gspca/etoms.c
index 1dbe92d01e6a..4ff0e386914b 100644
--- a/drivers/media/video/gspca/etoms.c
+++ b/drivers/media/video/gspca/etoms.c
@@ -81,6 +81,7 @@ static struct ctrl sd_ctrls[] = {
81 .set = sd_setcontrast, 81 .set = sd_setcontrast,
82 .get = sd_getcontrast, 82 .get = sd_getcontrast,
83 }, 83 },
84#define COLOR_IDX 2
84 { 85 {
85 { 86 {
86 .id = V4L2_CID_SATURATION, 87 .id = V4L2_CID_SATURATION,
@@ -234,7 +235,7 @@ static void reg_r(struct gspca_dev *gspca_dev,
234 struct usb_device *dev = gspca_dev->dev; 235 struct usb_device *dev = gspca_dev->dev;
235 236
236#ifdef GSPCA_DEBUG 237#ifdef GSPCA_DEBUG
237 if (len > sizeof gspca_dev->usb_buf) { 238 if (len > USB_BUF_SZ) {
238 err("reg_r: buffer overflow"); 239 err("reg_r: buffer overflow");
239 return; 240 return;
240 } 241 }
@@ -272,7 +273,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
272 struct usb_device *dev = gspca_dev->dev; 273 struct usb_device *dev = gspca_dev->dev;
273 274
274#ifdef GSPCA_DEBUG 275#ifdef GSPCA_DEBUG
275 if (len > sizeof gspca_dev->usb_buf) { 276 if (len > USB_BUF_SZ) {
276 err("reg_w: buffer overflow"); 277 err("reg_w: buffer overflow");
277 return; 278 return;
278 } 279 }
@@ -665,6 +666,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
665 } else { 666 } else {
666 cam->cam_mode = vga_mode; 667 cam->cam_mode = vga_mode;
667 cam->nmodes = sizeof vga_mode / sizeof vga_mode[0]; 668 cam->nmodes = sizeof vga_mode / sizeof vga_mode[0];
669 gspca_dev->ctrl_dis = (1 << COLOR_IDX);
668 } 670 }
669 sd->brightness = BRIGHTNESS_DEF; 671 sd->brightness = BRIGHTNESS_DEF;
670 sd->contrast = CONTRAST_DEF; 672 sd->contrast = CONTRAST_DEF;
@@ -674,8 +676,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
674 return 0; 676 return 0;
675} 677}
676 678
677/* this function is called at open time */ 679/* this function is called at probe and resume time */
678static int sd_open(struct gspca_dev *gspca_dev) 680static int sd_init(struct gspca_dev *gspca_dev)
679{ 681{
680 struct sd *sd = (struct sd *) gspca_dev; 682 struct sd *sd = (struct sd *) gspca_dev;
681 683
@@ -709,14 +711,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
709 et_video(gspca_dev, 0); /* video off */ 711 et_video(gspca_dev, 0); /* video off */
710} 712}
711 713
712static void sd_stop0(struct gspca_dev *gspca_dev)
713{
714}
715
716static void sd_close(struct gspca_dev *gspca_dev)
717{
718}
719
720static __u8 Et_getgainG(struct gspca_dev *gspca_dev) 714static __u8 Et_getgainG(struct gspca_dev *gspca_dev)
721{ 715{
722 struct sd *sd = (struct sd *) gspca_dev; 716 struct sd *sd = (struct sd *) gspca_dev;
@@ -893,21 +887,19 @@ static struct sd_desc sd_desc = {
893 .ctrls = sd_ctrls, 887 .ctrls = sd_ctrls,
894 .nctrls = ARRAY_SIZE(sd_ctrls), 888 .nctrls = ARRAY_SIZE(sd_ctrls),
895 .config = sd_config, 889 .config = sd_config,
896 .open = sd_open, 890 .init = sd_init,
897 .start = sd_start, 891 .start = sd_start,
898 .stopN = sd_stopN, 892 .stopN = sd_stopN,
899 .stop0 = sd_stop0,
900 .close = sd_close,
901 .pkt_scan = sd_pkt_scan, 893 .pkt_scan = sd_pkt_scan,
902 .dq_callback = do_autogain, 894 .dq_callback = do_autogain,
903}; 895};
904 896
905/* -- module initialisation -- */ 897/* -- module initialisation -- */
906static __devinitdata struct usb_device_id device_table[] = { 898static __devinitdata struct usb_device_id device_table[] = {
907#ifndef CONFIG_USB_ET61X251
908 {USB_DEVICE(0x102c, 0x6151), .driver_info = SENSOR_PAS106}, 899 {USB_DEVICE(0x102c, 0x6151), .driver_info = SENSOR_PAS106},
909#endif 900#if !defined CONFIG_USB_ET61X251 && !defined CONFIG_USB_ET61X251_MODULE
910 {USB_DEVICE(0x102c, 0x6251), .driver_info = SENSOR_TAS5130CXX}, 901 {USB_DEVICE(0x102c, 0x6251), .driver_info = SENSOR_TAS5130CXX},
902#endif
911 {} 903 {}
912}; 904};
913 905
@@ -926,6 +918,10 @@ static struct usb_driver sd_driver = {
926 .id_table = device_table, 918 .id_table = device_table,
927 .probe = sd_probe, 919 .probe = sd_probe,
928 .disconnect = gspca_disconnect, 920 .disconnect = gspca_disconnect,
921#ifdef CONFIG_PM
922 .suspend = gspca_suspend,
923 .resume = gspca_resume,
924#endif
929}; 925};
930 926
931/* -- module insert / remove -- */ 927/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
index 15d302b28b79..7be69284da03 100644
--- a/drivers/media/video/gspca/gspca.c
+++ b/drivers/media/video/gspca/gspca.c
@@ -114,7 +114,10 @@ static void fill_frame(struct gspca_dev *gspca_dev,
114 cam_pkt_op pkt_scan; 114 cam_pkt_op pkt_scan;
115 115
116 if (urb->status != 0) { 116 if (urb->status != 0) {
117 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status); 117#ifdef CONFIG_PM
118 if (!gspca_dev->frozen)
119#endif
120 PDEBUG(D_ERR|D_PACK, "urb status: %d", urb->status);
118 return; /* disconnection ? */ 121 return; /* disconnection ? */
119 } 122 }
120 pkt_scan = gspca_dev->sd_desc->pkt_scan; 123 pkt_scan = gspca_dev->sd_desc->pkt_scan;
@@ -555,10 +558,12 @@ static void gspca_stream_off(struct gspca_dev *gspca_dev)
555 gspca_dev->streaming = 0; 558 gspca_dev->streaming = 0;
556 atomic_set(&gspca_dev->nevent, 0); 559 atomic_set(&gspca_dev->nevent, 0);
557 if (gspca_dev->present) { 560 if (gspca_dev->present) {
558 gspca_dev->sd_desc->stopN(gspca_dev); 561 if (gspca_dev->sd_desc->stopN)
562 gspca_dev->sd_desc->stopN(gspca_dev);
559 destroy_urbs(gspca_dev); 563 destroy_urbs(gspca_dev);
560 gspca_set_alt0(gspca_dev); 564 gspca_set_alt0(gspca_dev);
561 gspca_dev->sd_desc->stop0(gspca_dev); 565 if (gspca_dev->sd_desc->stop0)
566 gspca_dev->sd_desc->stop0(gspca_dev);
562 PDEBUG(D_STREAM, "stream off OK"); 567 PDEBUG(D_STREAM, "stream off OK");
563 } 568 }
564} 569}
@@ -767,19 +772,7 @@ static int dev_open(struct inode *inode, struct file *file)
767 goto out; 772 goto out;
768 } 773 }
769 774
770 /* if not done yet, initialize the sensor */ 775 if (gspca_dev->users > 4) { /* (arbitrary value) */
771 if (gspca_dev->users == 0) {
772 if (mutex_lock_interruptible(&gspca_dev->usb_lock)) {
773 ret = -ERESTARTSYS;
774 goto out;
775 }
776 ret = gspca_dev->sd_desc->open(gspca_dev);
777 mutex_unlock(&gspca_dev->usb_lock);
778 if (ret != 0) {
779 PDEBUG(D_ERR|D_CONF, "init device failed %d", ret);
780 goto out;
781 }
782 } else if (gspca_dev->users > 4) { /* (arbitrary value) */
783 ret = -EBUSY; 776 ret = -EBUSY;
784 goto out; 777 goto out;
785 } 778 }
@@ -792,6 +785,7 @@ static int dev_open(struct inode *inode, struct file *file)
792 else 785 else
793 gspca_dev->vdev.debug &= ~3; 786 gspca_dev->vdev.debug &= ~3;
794#endif 787#endif
788 ret = 0;
795out: 789out:
796 mutex_unlock(&gspca_dev->queue_lock); 790 mutex_unlock(&gspca_dev->queue_lock);
797 if (ret != 0) 791 if (ret != 0)
@@ -812,11 +806,11 @@ static int dev_close(struct inode *inode, struct file *file)
812 806
813 /* if the file did the capture, free the streaming resources */ 807 /* if the file did the capture, free the streaming resources */
814 if (gspca_dev->capt_file == file) { 808 if (gspca_dev->capt_file == file) {
815 mutex_lock(&gspca_dev->usb_lock); 809 if (gspca_dev->streaming) {
816 if (gspca_dev->streaming) 810 mutex_lock(&gspca_dev->usb_lock);
817 gspca_stream_off(gspca_dev); 811 gspca_stream_off(gspca_dev);
818 gspca_dev->sd_desc->close(gspca_dev); 812 mutex_unlock(&gspca_dev->usb_lock);
819 mutex_unlock(&gspca_dev->usb_lock); 813 }
820 frame_free(gspca_dev); 814 frame_free(gspca_dev);
821 gspca_dev->capt_file = NULL; 815 gspca_dev->capt_file = NULL;
822 gspca_dev->memory = GSPCA_MEMORY_NO; 816 gspca_dev->memory = GSPCA_MEMORY_NO;
@@ -853,42 +847,44 @@ static int vidioc_querycap(struct file *file, void *priv,
853 return 0; 847 return 0;
854} 848}
855 849
856/* the use of V4L2_CTRL_FLAG_NEXT_CTRL asks for the controls to be sorted */
857static int vidioc_queryctrl(struct file *file, void *priv, 850static int vidioc_queryctrl(struct file *file, void *priv,
858 struct v4l2_queryctrl *q_ctrl) 851 struct v4l2_queryctrl *q_ctrl)
859{ 852{
860 struct gspca_dev *gspca_dev = priv; 853 struct gspca_dev *gspca_dev = priv;
861 int i; 854 int i, ix;
862 u32 id; 855 u32 id;
863 856
857 ix = -1;
864 id = q_ctrl->id; 858 id = q_ctrl->id;
865 if (id & V4L2_CTRL_FLAG_NEXT_CTRL) { 859 if (id & V4L2_CTRL_FLAG_NEXT_CTRL) {
866 id &= V4L2_CTRL_ID_MASK; 860 id &= V4L2_CTRL_ID_MASK;
867 id++; 861 id++;
868 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) { 862 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) {
869 if (id >= gspca_dev->sd_desc->ctrls[i].qctrl.id) { 863 if (gspca_dev->sd_desc->ctrls[i].qctrl.id < id)
870 memcpy(q_ctrl, 864 continue;
871 &gspca_dev->sd_desc->ctrls[i].qctrl, 865 if (ix < 0) {
872 sizeof *q_ctrl); 866 ix = i;
873 return 0; 867 continue;
874 } 868 }
869 if (gspca_dev->sd_desc->ctrls[i].qctrl.id
870 > gspca_dev->sd_desc->ctrls[ix].qctrl.id)
871 continue;
872 ix = i;
875 } 873 }
876 return -EINVAL;
877 } 874 }
878 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) { 875 for (i = 0; i < gspca_dev->sd_desc->nctrls; i++) {
879 if (id == gspca_dev->sd_desc->ctrls[i].qctrl.id) { 876 if (id == gspca_dev->sd_desc->ctrls[i].qctrl.id) {
880 memcpy(q_ctrl, 877 ix = i;
881 &gspca_dev->sd_desc->ctrls[i].qctrl, 878 break;
882 sizeof *q_ctrl);
883 return 0;
884 } 879 }
885 } 880 }
886 if (id >= V4L2_CID_BASE 881 if (ix < 0)
887 && id <= V4L2_CID_LASTP1) { 882 return -EINVAL;
883 memcpy(q_ctrl, &gspca_dev->sd_desc->ctrls[ix].qctrl,
884 sizeof *q_ctrl);
885 if (gspca_dev->ctrl_dis & (1 << ix))
888 q_ctrl->flags |= V4L2_CTRL_FLAG_DISABLED; 886 q_ctrl->flags |= V4L2_CTRL_FLAG_DISABLED;
889 return 0; 887 return 0;
890 }
891 return -EINVAL;
892} 888}
893 889
894static int vidioc_s_ctrl(struct file *file, void *priv, 890static int vidioc_s_ctrl(struct file *file, void *priv,
@@ -903,6 +899,8 @@ static int vidioc_s_ctrl(struct file *file, void *priv,
903 i++, ctrls++) { 899 i++, ctrls++) {
904 if (ctrl->id != ctrls->qctrl.id) 900 if (ctrl->id != ctrls->qctrl.id)
905 continue; 901 continue;
902 if (gspca_dev->ctrl_dis & (1 << i))
903 return -EINVAL;
906 if (ctrl->value < ctrls->qctrl.minimum 904 if (ctrl->value < ctrls->qctrl.minimum
907 || ctrl->value > ctrls->qctrl.maximum) 905 || ctrl->value > ctrls->qctrl.maximum)
908 return -ERANGE; 906 return -ERANGE;
@@ -929,6 +927,8 @@ static int vidioc_g_ctrl(struct file *file, void *priv,
929 i++, ctrls++) { 927 i++, ctrls++) {
930 if (ctrl->id != ctrls->qctrl.id) 928 if (ctrl->id != ctrls->qctrl.id)
931 continue; 929 continue;
930 if (gspca_dev->ctrl_dis & (1 << i))
931 return -EINVAL;
932 if (mutex_lock_interruptible(&gspca_dev->usb_lock)) 932 if (mutex_lock_interruptible(&gspca_dev->usb_lock))
933 return -ERESTARTSYS; 933 return -ERESTARTSYS;
934 ret = ctrls->get(gspca_dev, &ctrl->value); 934 ret = ctrls->get(gspca_dev, &ctrl->value);
@@ -1403,7 +1403,7 @@ static int vidioc_dqbuf(struct file *file, void *priv,
1403 i = ret; /* frame index */ 1403 i = ret; /* frame index */
1404 frame = &gspca_dev->frame[i]; 1404 frame = &gspca_dev->frame[i];
1405 if (gspca_dev->memory == V4L2_MEMORY_USERPTR) { 1405 if (gspca_dev->memory == V4L2_MEMORY_USERPTR) {
1406 if (copy_to_user((__u8 *) frame->v4l2_buf.m.userptr, 1406 if (copy_to_user((__u8 __user *) frame->v4l2_buf.m.userptr,
1407 frame->data, 1407 frame->data,
1408 frame->v4l2_buf.bytesused)) { 1408 frame->v4l2_buf.bytesused)) {
1409 PDEBUG(D_ERR|D_STREAM, 1409 PDEBUG(D_ERR|D_STREAM,
@@ -1731,6 +1731,12 @@ int gspca_dev_probe(struct usb_interface *intf,
1731 err("couldn't kzalloc gspca struct"); 1731 err("couldn't kzalloc gspca struct");
1732 return -EIO; 1732 return -EIO;
1733 } 1733 }
1734 gspca_dev->usb_buf = kmalloc(USB_BUF_SZ, GFP_KERNEL);
1735 if (!gspca_dev->usb_buf) {
1736 err("out of memory");
1737 ret = -EIO;
1738 goto out;
1739 }
1734 gspca_dev->dev = dev; 1740 gspca_dev->dev = dev;
1735 gspca_dev->iface = interface->bInterfaceNumber; 1741 gspca_dev->iface = interface->bInterfaceNumber;
1736 gspca_dev->nbalt = intf->num_altsetting; 1742 gspca_dev->nbalt = intf->num_altsetting;
@@ -1738,10 +1744,13 @@ int gspca_dev_probe(struct usb_interface *intf,
1738/* gspca_dev->users = 0; (done by kzalloc) */ 1744/* gspca_dev->users = 0; (done by kzalloc) */
1739 gspca_dev->nbufread = 2; 1745 gspca_dev->nbufread = 2;
1740 1746
1741 /* configure the subdriver */ 1747 /* configure the subdriver and initialize the USB device */
1742 ret = gspca_dev->sd_desc->config(gspca_dev, id); 1748 ret = gspca_dev->sd_desc->config(gspca_dev, id);
1743 if (ret < 0) 1749 if (ret < 0)
1744 goto out; 1750 goto out;
1751 ret = gspca_dev->sd_desc->init(gspca_dev);
1752 if (ret < 0)
1753 goto out;
1745 ret = gspca_set_alt0(gspca_dev); 1754 ret = gspca_set_alt0(gspca_dev);
1746 if (ret < 0) 1755 if (ret < 0)
1747 goto out; 1756 goto out;
@@ -1771,6 +1780,7 @@ int gspca_dev_probe(struct usb_interface *intf,
1771 PDEBUG(D_PROBE, "probe ok"); 1780 PDEBUG(D_PROBE, "probe ok");
1772 return 0; 1781 return 0;
1773out: 1782out:
1783 kfree(gspca_dev->usb_buf);
1774 kfree(gspca_dev); 1784 kfree(gspca_dev);
1775 return ret; 1785 return ret;
1776} 1786}
@@ -1803,11 +1813,42 @@ void gspca_disconnect(struct usb_interface *intf)
1803/* We don't want people trying to open up the device */ 1813/* We don't want people trying to open up the device */
1804 video_unregister_device(&gspca_dev->vdev); 1814 video_unregister_device(&gspca_dev->vdev);
1805/* Free the memory */ 1815/* Free the memory */
1816 kfree(gspca_dev->usb_buf);
1806 kfree(gspca_dev); 1817 kfree(gspca_dev);
1807 PDEBUG(D_PROBE, "disconnect complete"); 1818 PDEBUG(D_PROBE, "disconnect complete");
1808} 1819}
1809EXPORT_SYMBOL(gspca_disconnect); 1820EXPORT_SYMBOL(gspca_disconnect);
1810 1821
1822#ifdef CONFIG_PM
1823int gspca_suspend(struct usb_interface *intf, pm_message_t message)
1824{
1825 struct gspca_dev *gspca_dev = usb_get_intfdata(intf);
1826
1827 if (!gspca_dev->streaming)
1828 return 0;
1829 gspca_dev->frozen = 1; /* avoid urb error messages */
1830 if (gspca_dev->sd_desc->stopN)
1831 gspca_dev->sd_desc->stopN(gspca_dev);
1832 destroy_urbs(gspca_dev);
1833 gspca_set_alt0(gspca_dev);
1834 if (gspca_dev->sd_desc->stop0)
1835 gspca_dev->sd_desc->stop0(gspca_dev);
1836 return 0;
1837}
1838EXPORT_SYMBOL(gspca_suspend);
1839
1840int gspca_resume(struct usb_interface *intf)
1841{
1842 struct gspca_dev *gspca_dev = usb_get_intfdata(intf);
1843
1844 gspca_dev->frozen = 0;
1845 gspca_dev->sd_desc->init(gspca_dev);
1846 if (gspca_dev->streaming)
1847 return gspca_init_transfer(gspca_dev);
1848 return 0;
1849}
1850EXPORT_SYMBOL(gspca_resume);
1851#endif
1811/* -- cam driver utility functions -- */ 1852/* -- cam driver utility functions -- */
1812 1853
1813/* auto gain and exposure algorithm based on the knee algorithm described here: 1854/* auto gain and exposure algorithm based on the knee algorithm described here:
diff --git a/drivers/media/video/gspca/gspca.h b/drivers/media/video/gspca/gspca.h
index 67e448940eaa..c17625cff9ba 100644
--- a/drivers/media/video/gspca/gspca.h
+++ b/drivers/media/video/gspca/gspca.h
@@ -56,7 +56,6 @@ extern int gspca_debug;
56 56
57/* device information - set at probe time */ 57/* device information - set at probe time */
58struct cam { 58struct cam {
59 char *dev_name;
60 struct v4l2_pix_format *cam_mode; /* size nmodes */ 59 struct v4l2_pix_format *cam_mode; /* size nmodes */
61 char nmodes; 60 char nmodes;
62 __u8 epaddr; 61 __u8 epaddr;
@@ -91,15 +90,14 @@ struct sd_desc {
91/* controls */ 90/* controls */
92 const struct ctrl *ctrls; 91 const struct ctrl *ctrls;
93 int nctrls; 92 int nctrls;
94/* operations */ 93/* mandatory operations */
95 cam_cf_op config; /* called on probe */ 94 cam_cf_op config; /* called on probe */
96 cam_op open; /* called on open */ 95 cam_op init; /* called on probe and resume */
97 cam_v_op start; /* called on stream on */ 96 cam_v_op start; /* called on stream on */
98 cam_v_op stopN; /* called on stream off - main alt */
99 cam_v_op stop0; /* called on stream off - alt 0 */
100 cam_v_op close; /* called on close */
101 cam_pkt_op pkt_scan; 97 cam_pkt_op pkt_scan;
102/* optional operations */ 98/* optional operations */
99 cam_v_op stopN; /* called on stream off - main alt */
100 cam_v_op stop0; /* called on stream off - alt 0 */
103 cam_v_op dq_callback; /* called when a frame has been dequeued */ 101 cam_v_op dq_callback; /* called when a frame has been dequeued */
104 cam_jpg_op get_jcomp; 102 cam_jpg_op get_jcomp;
105 cam_jpg_op set_jcomp; 103 cam_jpg_op set_jcomp;
@@ -127,8 +125,10 @@ struct gspca_dev {
127 125
128 struct cam cam; /* device information */ 126 struct cam cam; /* device information */
129 const struct sd_desc *sd_desc; /* subdriver description */ 127 const struct sd_desc *sd_desc; /* subdriver description */
128 unsigned ctrl_dis; /* disabled controls (bit map) */
130 129
131 __u8 usb_buf[8]; /* buffer for USB exchanges */ 130#define USB_BUF_SZ 64
131 __u8 *usb_buf; /* buffer for USB exchanges */
132 struct urb *urb[MAX_NURBS]; 132 struct urb *urb[MAX_NURBS];
133 133
134 __u8 *frbuf; /* buffer for nframes */ 134 __u8 *frbuf; /* buffer for nframes */
@@ -155,6 +155,9 @@ struct gspca_dev {
155 struct mutex queue_lock; /* ISOC queue protection */ 155 struct mutex queue_lock; /* ISOC queue protection */
156 __u32 sequence; /* frame sequence number */ 156 __u32 sequence; /* frame sequence number */
157 char streaming; 157 char streaming;
158#ifdef CONFIG_PM
159 char frozen; /* suspend - resume */
160#endif
158 char users; /* number of opens */ 161 char users; /* number of opens */
159 char present; /* device connected */ 162 char present; /* device connected */
160 char nbufread; /* number of buffers for read() */ 163 char nbufread; /* number of buffers for read() */
@@ -174,6 +177,10 @@ struct gspca_frame *gspca_frame_add(struct gspca_dev *gspca_dev,
174 struct gspca_frame *frame, 177 struct gspca_frame *frame,
175 const __u8 *data, 178 const __u8 *data,
176 int len); 179 int len);
180#ifdef CONFIG_PM
181int gspca_suspend(struct usb_interface *intf, pm_message_t message);
182int gspca_resume(struct usb_interface *intf);
183#endif
177int gspca_auto_gain_n_exposure(struct gspca_dev *gspca_dev, int avg_lum, 184int gspca_auto_gain_n_exposure(struct gspca_dev *gspca_dev, int avg_lum,
178 int desired_avg_lum, int deadzone, int gain_knee, int exposure_knee); 185 int desired_avg_lum, int deadzone, int gain_knee, int exposure_knee);
179#endif /* GSPCAV2_H */ 186#endif /* GSPCAV2_H */
diff --git a/drivers/media/video/gspca/mars.c b/drivers/media/video/gspca/mars.c
index 21c4ee56a10a..4d5db47ba8cb 100644
--- a/drivers/media/video/gspca/mars.c
+++ b/drivers/media/video/gspca/mars.c
@@ -100,22 +100,6 @@ static int reg_w(struct gspca_dev *gspca_dev,
100 return rc; 100 return rc;
101} 101}
102 102
103static int reg_w_buf(struct gspca_dev *gspca_dev,
104 __u16 index, __u8 *buf, int len)
105{
106 int rc;
107
108 rc = usb_control_msg(gspca_dev->dev,
109 usb_sndbulkpipe(gspca_dev->dev, 4),
110 0x12,
111 0xc8, /* ?? */
112 0, /* value */
113 index, buf, len, 500);
114 if (rc < 0)
115 PDEBUG(D_ERR, "reg write [%02x] error %d", index, rc);
116 return rc;
117}
118
119static void bulk_w(struct gspca_dev *gspca_dev, 103static void bulk_w(struct gspca_dev *gspca_dev,
120 __u16 *pch, 104 __u16 *pch,
121 __u16 Address) 105 __u16 Address)
@@ -144,8 +128,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
144 return 0; 128 return 0;
145} 129}
146 130
147/* this function is called at open time */ 131/* this function is called at probe and resume time */
148static int sd_open(struct gspca_dev *gspca_dev) 132static int sd_init(struct gspca_dev *gspca_dev)
149{ 133{
150 return 0; 134 return 0;
151} 135}
@@ -175,7 +159,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
175 /* 159 /*
176 Initialize the MR97113 chip register 160 Initialize the MR97113 chip register
177 */ 161 */
178 data = kmalloc(16, GFP_KERNEL);
179 data[0] = 0x00; /* address */ 162 data[0] = 0x00; /* address */
180 data[1] = 0x0c | 0x01; /* reg 0 */ 163 data[1] = 0x0c | 0x01; /* reg 0 */
181 data[2] = 0x01; /* reg 1 */ 164 data[2] = 0x01; /* reg 1 */
@@ -195,12 +178,10 @@ static void sd_start(struct gspca_dev *gspca_dev)
195 data[10] = 0x5d; /* reg 9, I2C device address 178 data[10] = 0x5d; /* reg 9, I2C device address
196 * [for PAS5101 (0x40)] [for MI (0x5d)] */ 179 * [for PAS5101 (0x40)] [for MI (0x5d)] */
197 180
198 err_code = reg_w_buf(gspca_dev, data[0], data, 11); 181 err_code = reg_w(gspca_dev, data[0], 11);
199 kfree(data);
200 if (err_code < 0) 182 if (err_code < 0)
201 return; 183 return;
202 184
203 data = gspca_dev->usb_buf;
204 data[0] = 0x23; /* address */ 185 data[0] = 0x23; /* address */
205 data[1] = 0x09; /* reg 35, append frame header */ 186 data[1] = 0x09; /* reg 35, append frame header */
206 187
@@ -358,14 +339,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
358 PDEBUG(D_ERR, "Camera Stop failed"); 339 PDEBUG(D_ERR, "Camera Stop failed");
359} 340}
360 341
361static void sd_stop0(struct gspca_dev *gspca_dev)
362{
363}
364
365static void sd_close(struct gspca_dev *gspca_dev)
366{
367}
368
369static void sd_pkt_scan(struct gspca_dev *gspca_dev, 342static void sd_pkt_scan(struct gspca_dev *gspca_dev,
370 struct gspca_frame *frame, /* target */ 343 struct gspca_frame *frame, /* target */
371 __u8 *data, /* isoc packet */ 344 __u8 *data, /* isoc packet */
@@ -411,11 +384,9 @@ static const struct sd_desc sd_desc = {
411 .ctrls = sd_ctrls, 384 .ctrls = sd_ctrls,
412 .nctrls = ARRAY_SIZE(sd_ctrls), 385 .nctrls = ARRAY_SIZE(sd_ctrls),
413 .config = sd_config, 386 .config = sd_config,
414 .open = sd_open, 387 .init = sd_init,
415 .start = sd_start, 388 .start = sd_start,
416 .stopN = sd_stopN, 389 .stopN = sd_stopN,
417 .stop0 = sd_stop0,
418 .close = sd_close,
419 .pkt_scan = sd_pkt_scan, 390 .pkt_scan = sd_pkt_scan,
420}; 391};
421 392
@@ -439,6 +410,10 @@ static struct usb_driver sd_driver = {
439 .id_table = device_table, 410 .id_table = device_table,
440 .probe = sd_probe, 411 .probe = sd_probe,
441 .disconnect = gspca_disconnect, 412 .disconnect = gspca_disconnect,
413#ifdef CONFIG_PM
414 .suspend = gspca_suspend,
415 .resume = gspca_resume,
416#endif
442}; 417};
443 418
444/* -- module insert / remove -- */ 419/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/ov519.c b/drivers/media/video/gspca/ov519.c
index b4f00ec0885c..4df4eec9f7e7 100644
--- a/drivers/media/video/gspca/ov519.c
+++ b/drivers/media/video/gspca/ov519.c
@@ -63,11 +63,10 @@ struct sd {
63#define SEN_OV6630 2 63#define SEN_OV6630 2
64#define SEN_OV7610 3 64#define SEN_OV7610 3
65#define SEN_OV7620 4 65#define SEN_OV7620 4
66#define SEN_OV7630 5 66#define SEN_OV7640 5
67#define SEN_OV7640 6 67#define SEN_OV7670 6
68#define SEN_OV7670 7 68#define SEN_OV76BE 7
69#define SEN_OV76BE 8 69#define SEN_OV8610 8
70#define SEN_OV8610 9
71 70
72}; 71};
73 72
@@ -127,6 +126,7 @@ static struct ctrl sd_ctrls[] = {
127 .get = sd_getcolors, 126 .get = sd_getcolors,
128 }, 127 },
129/* next controls work with ov7670 only */ 128/* next controls work with ov7670 only */
129#define HFLIP_IDX 3
130 { 130 {
131 { 131 {
132 .id = V4L2_CID_HFLIP, 132 .id = V4L2_CID_HFLIP,
@@ -141,6 +141,7 @@ static struct ctrl sd_ctrls[] = {
141 .set = sd_sethflip, 141 .set = sd_sethflip,
142 .get = sd_gethflip, 142 .get = sd_gethflip,
143 }, 143 },
144#define VFLIP_IDX 4
144 { 145 {
145 { 146 {
146 .id = V4L2_CID_VFLIP, 147 .id = V4L2_CID_VFLIP,
@@ -293,6 +294,541 @@ static struct v4l2_pix_format sif_mode[] = {
293#define OV7670_REG_HAECC7 0xaa /* Hist AEC/AGC control 7 */ 294#define OV7670_REG_HAECC7 0xaa /* Hist AEC/AGC control 7 */
294#define OV7670_REG_BD60MAX 0xab /* 60hz banding step limit */ 295#define OV7670_REG_BD60MAX 0xab /* 60hz banding step limit */
295 296
297struct ov_regvals {
298 __u8 reg;
299 __u8 val;
300};
301struct ov_i2c_regvals {
302 __u8 reg;
303 __u8 val;
304};
305
306static const struct ov_i2c_regvals norm_6x20[] = {
307 { 0x12, 0x80 }, /* reset */
308 { 0x11, 0x01 },
309 { 0x03, 0x60 },
310 { 0x05, 0x7f }, /* For when autoadjust is off */
311 { 0x07, 0xa8 },
312 /* The ratio of 0x0c and 0x0d controls the white point */
313 { 0x0c, 0x24 },
314 { 0x0d, 0x24 },
315 { 0x0f, 0x15 }, /* COMS */
316 { 0x10, 0x75 }, /* AEC Exposure time */
317 { 0x12, 0x24 }, /* Enable AGC */
318 { 0x14, 0x04 },
319 /* 0x16: 0x06 helps frame stability with moving objects */
320 { 0x16, 0x06 },
321/* { 0x20, 0x30 }, * Aperture correction enable */
322 { 0x26, 0xb2 }, /* BLC enable */
323 /* 0x28: 0x05 Selects RGB format if RGB on */
324 { 0x28, 0x05 },
325 { 0x2a, 0x04 }, /* Disable framerate adjust */
326/* { 0x2b, 0xac }, * Framerate; Set 2a[7] first */
327 { 0x2d, 0x99 },
328 { 0x33, 0xa0 }, /* Color Processing Parameter */
329 { 0x34, 0xd2 }, /* Max A/D range */
330 { 0x38, 0x8b },
331 { 0x39, 0x40 },
332
333 { 0x3c, 0x39 }, /* Enable AEC mode changing */
334 { 0x3c, 0x3c }, /* Change AEC mode */
335 { 0x3c, 0x24 }, /* Disable AEC mode changing */
336
337 { 0x3d, 0x80 },
338 /* These next two registers (0x4a, 0x4b) are undocumented.
339 * They control the color balance */
340 { 0x4a, 0x80 },
341 { 0x4b, 0x80 },
342 { 0x4d, 0xd2 }, /* This reduces noise a bit */
343 { 0x4e, 0xc1 },
344 { 0x4f, 0x04 },
345/* Do 50-53 have any effect? */
346/* Toggle 0x12[2] off and on here? */
347};
348
349static const struct ov_i2c_regvals norm_6x30[] = {
350 { 0x12, 0x80 }, /* Reset */
351 { 0x00, 0x1f }, /* Gain */
352 { 0x01, 0x99 }, /* Blue gain */
353 { 0x02, 0x7c }, /* Red gain */
354 { 0x03, 0xc0 }, /* Saturation */
355 { 0x05, 0x0a }, /* Contrast */
356 { 0x06, 0x95 }, /* Brightness */
357 { 0x07, 0x2d }, /* Sharpness */
358 { 0x0c, 0x20 },
359 { 0x0d, 0x20 },
360 { 0x0e, 0x20 },
361 { 0x0f, 0x05 },
362 { 0x10, 0x9a },
363 { 0x11, 0x00 }, /* Pixel clock = fastest */
364 { 0x12, 0x24 }, /* Enable AGC and AWB */
365 { 0x13, 0x21 },
366 { 0x14, 0x80 },
367 { 0x15, 0x01 },
368 { 0x16, 0x03 },
369 { 0x17, 0x38 },
370 { 0x18, 0xea },
371 { 0x19, 0x04 },
372 { 0x1a, 0x93 },
373 { 0x1b, 0x00 },
374 { 0x1e, 0xc4 },
375 { 0x1f, 0x04 },
376 { 0x20, 0x20 },
377 { 0x21, 0x10 },
378 { 0x22, 0x88 },
379 { 0x23, 0xc0 }, /* Crystal circuit power level */
380 { 0x25, 0x9a }, /* Increase AEC black ratio */
381 { 0x26, 0xb2 }, /* BLC enable */
382 { 0x27, 0xa2 },
383 { 0x28, 0x00 },
384 { 0x29, 0x00 },
385 { 0x2a, 0x84 }, /* 60 Hz power */
386 { 0x2b, 0xa8 }, /* 60 Hz power */
387 { 0x2c, 0xa0 },
388 { 0x2d, 0x95 }, /* Enable auto-brightness */
389 { 0x2e, 0x88 },
390 { 0x33, 0x26 },
391 { 0x34, 0x03 },
392 { 0x36, 0x8f },
393 { 0x37, 0x80 },
394 { 0x38, 0x83 },
395 { 0x39, 0x80 },
396 { 0x3a, 0x0f },
397 { 0x3b, 0x3c },
398 { 0x3c, 0x1a },
399 { 0x3d, 0x80 },
400 { 0x3e, 0x80 },
401 { 0x3f, 0x0e },
402 { 0x40, 0x00 }, /* White bal */
403 { 0x41, 0x00 }, /* White bal */
404 { 0x42, 0x80 },
405 { 0x43, 0x3f }, /* White bal */
406 { 0x44, 0x80 },
407 { 0x45, 0x20 },
408 { 0x46, 0x20 },
409 { 0x47, 0x80 },
410 { 0x48, 0x7f },
411 { 0x49, 0x00 },
412 { 0x4a, 0x00 },
413 { 0x4b, 0x80 },
414 { 0x4c, 0xd0 },
415 { 0x4d, 0x10 }, /* U = 0.563u, V = 0.714v */
416 { 0x4e, 0x40 },
417 { 0x4f, 0x07 }, /* UV avg., col. killer: max */
418 { 0x50, 0xff },
419 { 0x54, 0x23 }, /* Max AGC gain: 18dB */
420 { 0x55, 0xff },
421 { 0x56, 0x12 },
422 { 0x57, 0x81 },
423 { 0x58, 0x75 },
424 { 0x59, 0x01 }, /* AGC dark current comp.: +1 */
425 { 0x5a, 0x2c },
426 { 0x5b, 0x0f }, /* AWB chrominance levels */
427 { 0x5c, 0x10 },
428 { 0x3d, 0x80 },
429 { 0x27, 0xa6 },
430 { 0x12, 0x20 }, /* Toggle AWB */
431 { 0x12, 0x24 },
432};
433
434/* Lawrence Glaister <lg@jfm.bc.ca> reports:
435 *
436 * Register 0x0f in the 7610 has the following effects:
437 *
438 * 0x85 (AEC method 1): Best overall, good contrast range
439 * 0x45 (AEC method 2): Very overexposed
440 * 0xa5 (spec sheet default): Ok, but the black level is
441 * shifted resulting in loss of contrast
442 * 0x05 (old driver setting): very overexposed, too much
443 * contrast
444 */
445static const struct ov_i2c_regvals norm_7610[] = {
446 { 0x10, 0xff },
447 { 0x16, 0x06 },
448 { 0x28, 0x24 },
449 { 0x2b, 0xac },
450 { 0x12, 0x00 },
451 { 0x38, 0x81 },
452 { 0x28, 0x24 }, /* 0c */
453 { 0x0f, 0x85 }, /* lg's setting */
454 { 0x15, 0x01 },
455 { 0x20, 0x1c },
456 { 0x23, 0x2a },
457 { 0x24, 0x10 },
458 { 0x25, 0x8a },
459 { 0x26, 0xa2 },
460 { 0x27, 0xc2 },
461 { 0x2a, 0x04 },
462 { 0x2c, 0xfe },
463 { 0x2d, 0x93 },
464 { 0x30, 0x71 },
465 { 0x31, 0x60 },
466 { 0x32, 0x26 },
467 { 0x33, 0x20 },
468 { 0x34, 0x48 },
469 { 0x12, 0x24 },
470 { 0x11, 0x01 },
471 { 0x0c, 0x24 },
472 { 0x0d, 0x24 },
473};
474
475static const struct ov_i2c_regvals norm_7620[] = {
476 { 0x00, 0x00 }, /* gain */
477 { 0x01, 0x80 }, /* blue gain */
478 { 0x02, 0x80 }, /* red gain */
479 { 0x03, 0xc0 }, /* OV7670_REG_VREF */
480 { 0x06, 0x60 },
481 { 0x07, 0x00 },
482 { 0x0c, 0x24 },
483 { 0x0c, 0x24 },
484 { 0x0d, 0x24 },
485 { 0x11, 0x01 },
486 { 0x12, 0x24 },
487 { 0x13, 0x01 },
488 { 0x14, 0x84 },
489 { 0x15, 0x01 },
490 { 0x16, 0x03 },
491 { 0x17, 0x2f },
492 { 0x18, 0xcf },
493 { 0x19, 0x06 },
494 { 0x1a, 0xf5 },
495 { 0x1b, 0x00 },
496 { 0x20, 0x18 },
497 { 0x21, 0x80 },
498 { 0x22, 0x80 },
499 { 0x23, 0x00 },
500 { 0x26, 0xa2 },
501 { 0x27, 0xea },
502 { 0x28, 0x20 },
503 { 0x29, 0x00 },
504 { 0x2a, 0x10 },
505 { 0x2b, 0x00 },
506 { 0x2c, 0x88 },
507 { 0x2d, 0x91 },
508 { 0x2e, 0x80 },
509 { 0x2f, 0x44 },
510 { 0x60, 0x27 },
511 { 0x61, 0x02 },
512 { 0x62, 0x5f },
513 { 0x63, 0xd5 },
514 { 0x64, 0x57 },
515 { 0x65, 0x83 },
516 { 0x66, 0x55 },
517 { 0x67, 0x92 },
518 { 0x68, 0xcf },
519 { 0x69, 0x76 },
520 { 0x6a, 0x22 },
521 { 0x6b, 0x00 },
522 { 0x6c, 0x02 },
523 { 0x6d, 0x44 },
524 { 0x6e, 0x80 },
525 { 0x6f, 0x1d },
526 { 0x70, 0x8b },
527 { 0x71, 0x00 },
528 { 0x72, 0x14 },
529 { 0x73, 0x54 },
530 { 0x74, 0x00 },
531 { 0x75, 0x8e },
532 { 0x76, 0x00 },
533 { 0x77, 0xff },
534 { 0x78, 0x80 },
535 { 0x79, 0x80 },
536 { 0x7a, 0x80 },
537 { 0x7b, 0xe2 },
538 { 0x7c, 0x00 },
539};
540
541/* 7640 and 7648. The defaults should be OK for most registers. */
542static const struct ov_i2c_regvals norm_7640[] = {
543 { 0x12, 0x80 },
544 { 0x12, 0x14 },
545};
546
547/* 7670. Defaults taken from OmniVision provided data,
548* as provided by Jonathan Corbet of OLPC */
549static const struct ov_i2c_regvals norm_7670[] = {
550 { OV7670_REG_COM7, OV7670_COM7_RESET },
551 { OV7670_REG_TSLB, 0x04 }, /* OV */
552 { OV7670_REG_COM7, OV7670_COM7_FMT_VGA }, /* VGA */
553 { OV7670_REG_CLKRC, 0x01 },
554/*
555 * Set the hardware window. These values from OV don't entirely
556 * make sense - hstop is less than hstart. But they work...
557 */
558 { OV7670_REG_HSTART, 0x13 },
559 { OV7670_REG_HSTOP, 0x01 },
560 { OV7670_REG_HREF, 0xb6 },
561 { OV7670_REG_VSTART, 0x02 },
562 { OV7670_REG_VSTOP, 0x7a },
563 { OV7670_REG_VREF, 0x0a },
564
565 { OV7670_REG_COM3, 0 },
566 { OV7670_REG_COM14, 0 },
567/* Mystery scaling numbers */
568 { 0x70, 0x3a },
569 { 0x71, 0x35 },
570 { 0x72, 0x11 },
571 { 0x73, 0xf0 },
572 { 0xa2, 0x02 },
573/* { OV7670_REG_COM10, 0x0 }, */
574
575/* Gamma curve values */
576 { 0x7a, 0x20 },
577 { 0x7b, 0x10 },
578 { 0x7c, 0x1e },
579 { 0x7d, 0x35 },
580 { 0x7e, 0x5a },
581 { 0x7f, 0x69 },
582 { 0x80, 0x76 },
583 { 0x81, 0x80 },
584 { 0x82, 0x88 },
585 { 0x83, 0x8f },
586 { 0x84, 0x96 },
587 { 0x85, 0xa3 },
588 { 0x86, 0xaf },
589 { 0x87, 0xc4 },
590 { 0x88, 0xd7 },
591 { 0x89, 0xe8 },
592
593/* AGC and AEC parameters. Note we start by disabling those features,
594 then turn them only after tweaking the values. */
595 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
596 | OV7670_COM8_AECSTEP
597 | OV7670_COM8_BFILT },
598 { OV7670_REG_GAIN, 0 },
599 { OV7670_REG_AECH, 0 },
600 { OV7670_REG_COM4, 0x40 }, /* magic reserved bit */
601 { OV7670_REG_COM9, 0x18 }, /* 4x gain + magic rsvd bit */
602 { OV7670_REG_BD50MAX, 0x05 },
603 { OV7670_REG_BD60MAX, 0x07 },
604 { OV7670_REG_AEW, 0x95 },
605 { OV7670_REG_AEB, 0x33 },
606 { OV7670_REG_VPT, 0xe3 },
607 { OV7670_REG_HAECC1, 0x78 },
608 { OV7670_REG_HAECC2, 0x68 },
609 { 0xa1, 0x03 }, /* magic */
610 { OV7670_REG_HAECC3, 0xd8 },
611 { OV7670_REG_HAECC4, 0xd8 },
612 { OV7670_REG_HAECC5, 0xf0 },
613 { OV7670_REG_HAECC6, 0x90 },
614 { OV7670_REG_HAECC7, 0x94 },
615 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
616 | OV7670_COM8_AECSTEP
617 | OV7670_COM8_BFILT
618 | OV7670_COM8_AGC
619 | OV7670_COM8_AEC },
620
621/* Almost all of these are magic "reserved" values. */
622 { OV7670_REG_COM5, 0x61 },
623 { OV7670_REG_COM6, 0x4b },
624 { 0x16, 0x02 },
625 { OV7670_REG_MVFP, 0x07 },
626 { 0x21, 0x02 },
627 { 0x22, 0x91 },
628 { 0x29, 0x07 },
629 { 0x33, 0x0b },
630 { 0x35, 0x0b },
631 { 0x37, 0x1d },
632 { 0x38, 0x71 },
633 { 0x39, 0x2a },
634 { OV7670_REG_COM12, 0x78 },
635 { 0x4d, 0x40 },
636 { 0x4e, 0x20 },
637 { OV7670_REG_GFIX, 0 },
638 { 0x6b, 0x4a },
639 { 0x74, 0x10 },
640 { 0x8d, 0x4f },
641 { 0x8e, 0 },
642 { 0x8f, 0 },
643 { 0x90, 0 },
644 { 0x91, 0 },
645 { 0x96, 0 },
646 { 0x9a, 0 },
647 { 0xb0, 0x84 },
648 { 0xb1, 0x0c },
649 { 0xb2, 0x0e },
650 { 0xb3, 0x82 },
651 { 0xb8, 0x0a },
652
653/* More reserved magic, some of which tweaks white balance */
654 { 0x43, 0x0a },
655 { 0x44, 0xf0 },
656 { 0x45, 0x34 },
657 { 0x46, 0x58 },
658 { 0x47, 0x28 },
659 { 0x48, 0x3a },
660 { 0x59, 0x88 },
661 { 0x5a, 0x88 },
662 { 0x5b, 0x44 },
663 { 0x5c, 0x67 },
664 { 0x5d, 0x49 },
665 { 0x5e, 0x0e },
666 { 0x6c, 0x0a },
667 { 0x6d, 0x55 },
668 { 0x6e, 0x11 },
669 { 0x6f, 0x9f },
670 /* "9e for advance AWB" */
671 { 0x6a, 0x40 },
672 { OV7670_REG_BLUE, 0x40 },
673 { OV7670_REG_RED, 0x60 },
674 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
675 | OV7670_COM8_AECSTEP
676 | OV7670_COM8_BFILT
677 | OV7670_COM8_AGC
678 | OV7670_COM8_AEC
679 | OV7670_COM8_AWB },
680
681/* Matrix coefficients */
682 { 0x4f, 0x80 },
683 { 0x50, 0x80 },
684 { 0x51, 0 },
685 { 0x52, 0x22 },
686 { 0x53, 0x5e },
687 { 0x54, 0x80 },
688 { 0x58, 0x9e },
689
690 { OV7670_REG_COM16, OV7670_COM16_AWBGAIN },
691 { OV7670_REG_EDGE, 0 },
692 { 0x75, 0x05 },
693 { 0x76, 0xe1 },
694 { 0x4c, 0 },
695 { 0x77, 0x01 },
696 { OV7670_REG_COM13, OV7670_COM13_GAMMA
697 | OV7670_COM13_UVSAT
698 | 2}, /* was 3 */
699 { 0x4b, 0x09 },
700 { 0xc9, 0x60 },
701 { OV7670_REG_COM16, 0x38 },
702 { 0x56, 0x40 },
703
704 { 0x34, 0x11 },
705 { OV7670_REG_COM11, OV7670_COM11_EXP|OV7670_COM11_HZAUTO },
706 { 0xa4, 0x88 },
707 { 0x96, 0 },
708 { 0x97, 0x30 },
709 { 0x98, 0x20 },
710 { 0x99, 0x30 },
711 { 0x9a, 0x84 },
712 { 0x9b, 0x29 },
713 { 0x9c, 0x03 },
714 { 0x9d, 0x4c },
715 { 0x9e, 0x3f },
716 { 0x78, 0x04 },
717
718/* Extra-weird stuff. Some sort of multiplexor register */
719 { 0x79, 0x01 },
720 { 0xc8, 0xf0 },
721 { 0x79, 0x0f },
722 { 0xc8, 0x00 },
723 { 0x79, 0x10 },
724 { 0xc8, 0x7e },
725 { 0x79, 0x0a },
726 { 0xc8, 0x80 },
727 { 0x79, 0x0b },
728 { 0xc8, 0x01 },
729 { 0x79, 0x0c },
730 { 0xc8, 0x0f },
731 { 0x79, 0x0d },
732 { 0xc8, 0x20 },
733 { 0x79, 0x09 },
734 { 0xc8, 0x80 },
735 { 0x79, 0x02 },
736 { 0xc8, 0xc0 },
737 { 0x79, 0x03 },
738 { 0xc8, 0x40 },
739 { 0x79, 0x05 },
740 { 0xc8, 0x30 },
741 { 0x79, 0x26 },
742};
743
744static const struct ov_i2c_regvals norm_8610[] = {
745 { 0x12, 0x80 },
746 { 0x00, 0x00 },
747 { 0x01, 0x80 },
748 { 0x02, 0x80 },
749 { 0x03, 0xc0 },
750 { 0x04, 0x30 },
751 { 0x05, 0x30 }, /* was 0x10, new from windrv 090403 */
752 { 0x06, 0x70 }, /* was 0x80, new from windrv 090403 */
753 { 0x0a, 0x86 },
754 { 0x0b, 0xb0 },
755 { 0x0c, 0x20 },
756 { 0x0d, 0x20 },
757 { 0x11, 0x01 },
758 { 0x12, 0x25 },
759 { 0x13, 0x01 },
760 { 0x14, 0x04 },
761 { 0x15, 0x01 }, /* Lin and Win think different about UV order */
762 { 0x16, 0x03 },
763 { 0x17, 0x38 }, /* was 0x2f, new from windrv 090403 */
764 { 0x18, 0xea }, /* was 0xcf, new from windrv 090403 */
765 { 0x19, 0x02 }, /* was 0x06, new from windrv 090403 */
766 { 0x1a, 0xf5 },
767 { 0x1b, 0x00 },
768 { 0x20, 0xd0 }, /* was 0x90, new from windrv 090403 */
769 { 0x23, 0xc0 }, /* was 0x00, new from windrv 090403 */
770 { 0x24, 0x30 }, /* was 0x1d, new from windrv 090403 */
771 { 0x25, 0x50 }, /* was 0x57, new from windrv 090403 */
772 { 0x26, 0xa2 },
773 { 0x27, 0xea },
774 { 0x28, 0x00 },
775 { 0x29, 0x00 },
776 { 0x2a, 0x80 },
777 { 0x2b, 0xc8 }, /* was 0xcc, new from windrv 090403 */
778 { 0x2c, 0xac },
779 { 0x2d, 0x45 }, /* was 0xd5, new from windrv 090403 */
780 { 0x2e, 0x80 },
781 { 0x2f, 0x14 }, /* was 0x01, new from windrv 090403 */
782 { 0x4c, 0x00 },
783 { 0x4d, 0x30 }, /* was 0x10, new from windrv 090403 */
784 { 0x60, 0x02 }, /* was 0x01, new from windrv 090403 */
785 { 0x61, 0x00 }, /* was 0x09, new from windrv 090403 */
786 { 0x62, 0x5f }, /* was 0xd7, new from windrv 090403 */
787 { 0x63, 0xff },
788 { 0x64, 0x53 }, /* new windrv 090403 says 0x57,
789 * maybe thats wrong */
790 { 0x65, 0x00 },
791 { 0x66, 0x55 },
792 { 0x67, 0xb0 },
793 { 0x68, 0xc0 }, /* was 0xaf, new from windrv 090403 */
794 { 0x69, 0x02 },
795 { 0x6a, 0x22 },
796 { 0x6b, 0x00 },
797 { 0x6c, 0x99 }, /* was 0x80, old windrv says 0x00, but
798 * deleting bit7 colors the first images red */
799 { 0x6d, 0x11 }, /* was 0x00, new from windrv 090403 */
800 { 0x6e, 0x11 }, /* was 0x00, new from windrv 090403 */
801 { 0x6f, 0x01 },
802 { 0x70, 0x8b },
803 { 0x71, 0x00 },
804 { 0x72, 0x14 },
805 { 0x73, 0x54 },
806 { 0x74, 0x00 },/* 0x60? - was 0x00, new from windrv 090403 */
807 { 0x75, 0x0e },
808 { 0x76, 0x02 }, /* was 0x02, new from windrv 090403 */
809 { 0x77, 0xff },
810 { 0x78, 0x80 },
811 { 0x79, 0x80 },
812 { 0x7a, 0x80 },
813 { 0x7b, 0x10 }, /* was 0x13, new from windrv 090403 */
814 { 0x7c, 0x00 },
815 { 0x7d, 0x08 }, /* was 0x09, new from windrv 090403 */
816 { 0x7e, 0x08 }, /* was 0xc0, new from windrv 090403 */
817 { 0x7f, 0xfb },
818 { 0x80, 0x28 },
819 { 0x81, 0x00 },
820 { 0x82, 0x23 },
821 { 0x83, 0x0b },
822 { 0x84, 0x00 },
823 { 0x85, 0x62 }, /* was 0x61, new from windrv 090403 */
824 { 0x86, 0xc9 },
825 { 0x87, 0x00 },
826 { 0x88, 0x00 },
827 { 0x89, 0x01 },
828 { 0x12, 0x20 },
829 { 0x12, 0x25 }, /* was 0x24, new from windrv 090403 */
830};
831
296static unsigned char ov7670_abs_to_sm(unsigned char v) 832static unsigned char ov7670_abs_to_sm(unsigned char v)
297{ 833{
298 if (v > 127) 834 if (v > 127)
@@ -537,18 +1073,10 @@ static int ov51x_set_slave_ids(struct sd *sd,
537 rc = reg_w(sd, R51x_I2C_W_SID, slave); 1073 rc = reg_w(sd, R51x_I2C_W_SID, slave);
538 if (rc < 0) 1074 if (rc < 0)
539 return rc; 1075 return rc;
1076 sd->primary_i2c_slave = slave;
540 return reg_w(sd, R51x_I2C_R_SID, slave + 1); 1077 return reg_w(sd, R51x_I2C_R_SID, slave + 1);
541} 1078}
542 1079
543struct ov_regvals {
544 __u8 reg;
545 __u8 val;
546};
547struct ov_i2c_regvals {
548 __u8 reg;
549 __u8 val;
550};
551
552static int write_regvals(struct sd *sd, 1080static int write_regvals(struct sd *sd,
553 const struct ov_regvals *regvals, 1081 const struct ov_regvals *regvals,
554 int n) 1082 int n)
@@ -591,101 +1119,9 @@ static int write_i2c_regvals(struct sd *sd,
591static int ov8xx0_configure(struct sd *sd) 1119static int ov8xx0_configure(struct sd *sd)
592{ 1120{
593 int rc; 1121 int rc;
594 static const struct ov_i2c_regvals norm_8610[] = {
595 { 0x12, 0x80 },
596 { 0x00, 0x00 },
597 { 0x01, 0x80 },
598 { 0x02, 0x80 },
599 { 0x03, 0xc0 },
600 { 0x04, 0x30 },
601 { 0x05, 0x30 }, /* was 0x10, new from windrv 090403 */
602 { 0x06, 0x70 }, /* was 0x80, new from windrv 090403 */
603 { 0x0a, 0x86 },
604 { 0x0b, 0xb0 },
605 { 0x0c, 0x20 },
606 { 0x0d, 0x20 },
607 { 0x11, 0x01 },
608 { 0x12, 0x25 },
609 { 0x13, 0x01 },
610 { 0x14, 0x04 },
611 { 0x15, 0x01 }, /* Lin and Win think different about UV order */
612 { 0x16, 0x03 },
613 { 0x17, 0x38 }, /* was 0x2f, new from windrv 090403 */
614 { 0x18, 0xea }, /* was 0xcf, new from windrv 090403 */
615 { 0x19, 0x02 }, /* was 0x06, new from windrv 090403 */
616 { 0x1a, 0xf5 },
617 { 0x1b, 0x00 },
618 { 0x20, 0xd0 }, /* was 0x90, new from windrv 090403 */
619 { 0x23, 0xc0 }, /* was 0x00, new from windrv 090403 */
620 { 0x24, 0x30 }, /* was 0x1d, new from windrv 090403 */
621 { 0x25, 0x50 }, /* was 0x57, new from windrv 090403 */
622 { 0x26, 0xa2 },
623 { 0x27, 0xea },
624 { 0x28, 0x00 },
625 { 0x29, 0x00 },
626 { 0x2a, 0x80 },
627 { 0x2b, 0xc8 }, /* was 0xcc, new from windrv 090403 */
628 { 0x2c, 0xac },
629 { 0x2d, 0x45 }, /* was 0xd5, new from windrv 090403 */
630 { 0x2e, 0x80 },
631 { 0x2f, 0x14 }, /* was 0x01, new from windrv 090403 */
632 { 0x4c, 0x00 },
633 { 0x4d, 0x30 }, /* was 0x10, new from windrv 090403 */
634 { 0x60, 0x02 }, /* was 0x01, new from windrv 090403 */
635 { 0x61, 0x00 }, /* was 0x09, new from windrv 090403 */
636 { 0x62, 0x5f }, /* was 0xd7, new from windrv 090403 */
637 { 0x63, 0xff },
638 { 0x64, 0x53 }, /* new windrv 090403 says 0x57,
639 * maybe thats wrong */
640 { 0x65, 0x00 },
641 { 0x66, 0x55 },
642 { 0x67, 0xb0 },
643 { 0x68, 0xc0 }, /* was 0xaf, new from windrv 090403 */
644 { 0x69, 0x02 },
645 { 0x6a, 0x22 },
646 { 0x6b, 0x00 },
647 { 0x6c, 0x99 }, /* was 0x80, old windrv says 0x00, but
648 deleting bit7 colors the first images red */
649 { 0x6d, 0x11 }, /* was 0x00, new from windrv 090403 */
650 { 0x6e, 0x11 }, /* was 0x00, new from windrv 090403 */
651 { 0x6f, 0x01 },
652 { 0x70, 0x8b },
653 { 0x71, 0x00 },
654 { 0x72, 0x14 },
655 { 0x73, 0x54 },
656 { 0x74, 0x00 },/* 0x60? - was 0x00, new from windrv 090403 */
657 { 0x75, 0x0e },
658 { 0x76, 0x02 }, /* was 0x02, new from windrv 090403 */
659 { 0x77, 0xff },
660 { 0x78, 0x80 },
661 { 0x79, 0x80 },
662 { 0x7a, 0x80 },
663 { 0x7b, 0x10 }, /* was 0x13, new from windrv 090403 */
664 { 0x7c, 0x00 },
665 { 0x7d, 0x08 }, /* was 0x09, new from windrv 090403 */
666 { 0x7e, 0x08 }, /* was 0xc0, new from windrv 090403 */
667 { 0x7f, 0xfb },
668 { 0x80, 0x28 },
669 { 0x81, 0x00 },
670 { 0x82, 0x23 },
671 { 0x83, 0x0b },
672 { 0x84, 0x00 },
673 { 0x85, 0x62 }, /* was 0x61, new from windrv 090403 */
674 { 0x86, 0xc9 },
675 { 0x87, 0x00 },
676 { 0x88, 0x00 },
677 { 0x89, 0x01 },
678 { 0x12, 0x20 },
679 { 0x12, 0x25 }, /* was 0x24, new from windrv 090403 */
680 };
681 1122
682 PDEBUG(D_PROBE, "starting ov8xx0 configuration"); 1123 PDEBUG(D_PROBE, "starting ov8xx0 configuration");
683 1124
684 if (init_ov_sensor(sd) < 0)
685 PDEBUG(D_ERR|D_PROBE, "Failed to read sensor ID");
686 else
687 PDEBUG(D_PROBE, "OV86x0 initialized");
688
689 /* Detect sensor (sub)type */ 1125 /* Detect sensor (sub)type */
690 rc = i2c_r(sd, OV7610_REG_COM_I); 1126 rc = i2c_r(sd, OV7610_REG_COM_I);
691 if (rc < 0) { 1127 if (rc < 0) {
@@ -698,9 +1134,6 @@ static int ov8xx0_configure(struct sd *sd)
698 PDEBUG(D_ERR, "Unknown image sensor version: %d", rc & 3); 1134 PDEBUG(D_ERR, "Unknown image sensor version: %d", rc & 3);
699 return -1; 1135 return -1;
700 } 1136 }
701 PDEBUG(D_PROBE, "Writing 8610 registers");
702 if (write_i2c_regvals(sd, norm_8610, ARRAY_SIZE(norm_8610)))
703 return -1;
704 1137
705 /* Set sensor-specific vars */ 1138 /* Set sensor-specific vars */
706/* sd->sif = 0; already done */ 1139/* sd->sif = 0; already done */
@@ -714,252 +1147,6 @@ static int ov7xx0_configure(struct sd *sd)
714{ 1147{
715 int rc, high, low; 1148 int rc, high, low;
716 1149
717 /* Lawrence Glaister <lg@jfm.bc.ca> reports:
718 *
719 * Register 0x0f in the 7610 has the following effects:
720 *
721 * 0x85 (AEC method 1): Best overall, good contrast range
722 * 0x45 (AEC method 2): Very overexposed
723 * 0xa5 (spec sheet default): Ok, but the black level is
724 * shifted resulting in loss of contrast
725 * 0x05 (old driver setting): very overexposed, too much
726 * contrast
727 */
728 static const struct ov_i2c_regvals norm_7610[] = {
729 { 0x10, 0xff },
730 { 0x16, 0x06 },
731 { 0x28, 0x24 },
732 { 0x2b, 0xac },
733 { 0x12, 0x00 },
734 { 0x38, 0x81 },
735 { 0x28, 0x24 }, /* 0c */
736 { 0x0f, 0x85 }, /* lg's setting */
737 { 0x15, 0x01 },
738 { 0x20, 0x1c },
739 { 0x23, 0x2a },
740 { 0x24, 0x10 },
741 { 0x25, 0x8a },
742 { 0x26, 0xa2 },
743 { 0x27, 0xc2 },
744 { 0x2a, 0x04 },
745 { 0x2c, 0xfe },
746 { 0x2d, 0x93 },
747 { 0x30, 0x71 },
748 { 0x31, 0x60 },
749 { 0x32, 0x26 },
750 { 0x33, 0x20 },
751 { 0x34, 0x48 },
752 { 0x12, 0x24 },
753 { 0x11, 0x01 },
754 { 0x0c, 0x24 },
755 { 0x0d, 0x24 },
756 };
757
758 static const struct ov_i2c_regvals norm_7620[] = {
759 { 0x00, 0x00 }, /* gain */
760 { 0x01, 0x80 }, /* blue gain */
761 { 0x02, 0x80 }, /* red gain */
762 { 0x03, 0xc0 }, /* OV7670_REG_VREF */
763 { 0x06, 0x60 },
764 { 0x07, 0x00 },
765 { 0x0c, 0x24 },
766 { 0x0c, 0x24 },
767 { 0x0d, 0x24 },
768 { 0x11, 0x01 },
769 { 0x12, 0x24 },
770 { 0x13, 0x01 },
771 { 0x14, 0x84 },
772 { 0x15, 0x01 },
773 { 0x16, 0x03 },
774 { 0x17, 0x2f },
775 { 0x18, 0xcf },
776 { 0x19, 0x06 },
777 { 0x1a, 0xf5 },
778 { 0x1b, 0x00 },
779 { 0x20, 0x18 },
780 { 0x21, 0x80 },
781 { 0x22, 0x80 },
782 { 0x23, 0x00 },
783 { 0x26, 0xa2 },
784 { 0x27, 0xea },
785 { 0x28, 0x20 },
786 { 0x29, 0x00 },
787 { 0x2a, 0x10 },
788 { 0x2b, 0x00 },
789 { 0x2c, 0x88 },
790 { 0x2d, 0x91 },
791 { 0x2e, 0x80 },
792 { 0x2f, 0x44 },
793 { 0x60, 0x27 },
794 { 0x61, 0x02 },
795 { 0x62, 0x5f },
796 { 0x63, 0xd5 },
797 { 0x64, 0x57 },
798 { 0x65, 0x83 },
799 { 0x66, 0x55 },
800 { 0x67, 0x92 },
801 { 0x68, 0xcf },
802 { 0x69, 0x76 },
803 { 0x6a, 0x22 },
804 { 0x6b, 0x00 },
805 { 0x6c, 0x02 },
806 { 0x6d, 0x44 },
807 { 0x6e, 0x80 },
808 { 0x6f, 0x1d },
809 { 0x70, 0x8b },
810 { 0x71, 0x00 },
811 { 0x72, 0x14 },
812 { 0x73, 0x54 },
813 { 0x74, 0x00 },
814 { 0x75, 0x8e },
815 { 0x76, 0x00 },
816 { 0x77, 0xff },
817 { 0x78, 0x80 },
818 { 0x79, 0x80 },
819 { 0x7a, 0x80 },
820 { 0x7b, 0xe2 },
821 { 0x7c, 0x00 },
822 };
823
824 /* 7640 and 7648. The defaults should be OK for most registers. */
825 static const struct ov_i2c_regvals norm_7640[] = {
826 { 0x12, 0x80 },
827 { 0x12, 0x14 },
828 };
829
830 /* 7670. Defaults taken from OmniVision provided data,
831 * as provided by Jonathan Corbet of OLPC */
832 static const struct ov_i2c_regvals norm_7670[] = {
833 { OV7670_REG_COM7, OV7670_COM7_RESET },
834 { OV7670_REG_TSLB, 0x04 }, /* OV */
835 { OV7670_REG_COM7, OV7670_COM7_FMT_VGA }, /* VGA */
836 { OV7670_REG_CLKRC, 0x01 },
837 /*
838 * Set the hardware window. These values from OV don't entirely
839 * make sense - hstop is less than hstart. But they work...
840 */
841 { OV7670_REG_HSTART, 0x13 }, { OV7670_REG_HSTOP, 0x01 },
842 { OV7670_REG_HREF, 0xb6 }, { OV7670_REG_VSTART, 0x02 },
843 { OV7670_REG_VSTOP, 0x7a }, { OV7670_REG_VREF, 0x0a },
844
845 { OV7670_REG_COM3, 0 }, { OV7670_REG_COM14, 0 },
846 /* Mystery scaling numbers */
847 { 0x70, 0x3a }, { 0x71, 0x35 },
848 { 0x72, 0x11 }, { 0x73, 0xf0 },
849 { 0xa2, 0x02 },
850/* { OV7670_REG_COM10, 0x0 }, */
851
852 /* Gamma curve values */
853 { 0x7a, 0x20 },
854 { 0x7b, 0x10 },
855 { 0x7c, 0x1e },
856 { 0x7d, 0x35 },
857 { 0x7e, 0x5a }, { 0x7f, 0x69 },
858 { 0x80, 0x76 }, { 0x81, 0x80 },
859 { 0x82, 0x88 }, { 0x83, 0x8f },
860 { 0x84, 0x96 }, { 0x85, 0xa3 },
861 { 0x86, 0xaf }, { 0x87, 0xc4 },
862 { 0x88, 0xd7 }, { 0x89, 0xe8 },
863
864 /* AGC and AEC parameters. Note we start by disabling those features,
865 then turn them only after tweaking the values. */
866 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
867 | OV7670_COM8_AECSTEP
868 | OV7670_COM8_BFILT },
869 { OV7670_REG_GAIN, 0 }, { OV7670_REG_AECH, 0 },
870 { OV7670_REG_COM4, 0x40 }, /* magic reserved bit */
871 { OV7670_REG_COM9, 0x18 }, /* 4x gain + magic rsvd bit */
872 { OV7670_REG_BD50MAX, 0x05 }, { OV7670_REG_BD60MAX, 0x07 },
873 { OV7670_REG_AEW, 0x95 }, { OV7670_REG_AEB, 0x33 },
874 { OV7670_REG_VPT, 0xe3 }, { OV7670_REG_HAECC1, 0x78 },
875 { OV7670_REG_HAECC2, 0x68 },
876 { 0xa1, 0x03 }, /* magic */
877 { OV7670_REG_HAECC3, 0xd8 }, { OV7670_REG_HAECC4, 0xd8 },
878 { OV7670_REG_HAECC5, 0xf0 }, { OV7670_REG_HAECC6, 0x90 },
879 { OV7670_REG_HAECC7, 0x94 },
880 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
881 | OV7670_COM8_AECSTEP
882 | OV7670_COM8_BFILT
883 | OV7670_COM8_AGC
884 | OV7670_COM8_AEC },
885
886 /* Almost all of these are magic "reserved" values. */
887 { OV7670_REG_COM5, 0x61 }, { OV7670_REG_COM6, 0x4b },
888 { 0x16, 0x02 },
889 { OV7670_REG_MVFP, 0x07 },
890 { 0x21, 0x02 }, { 0x22, 0x91 },
891 { 0x29, 0x07 }, { 0x33, 0x0b },
892 { 0x35, 0x0b }, { 0x37, 0x1d },
893 { 0x38, 0x71 }, { 0x39, 0x2a },
894 { OV7670_REG_COM12, 0x78 }, { 0x4d, 0x40 },
895 { 0x4e, 0x20 }, { OV7670_REG_GFIX, 0 },
896 { 0x6b, 0x4a }, { 0x74, 0x10 },
897 { 0x8d, 0x4f }, { 0x8e, 0 },
898 { 0x8f, 0 }, { 0x90, 0 },
899 { 0x91, 0 }, { 0x96, 0 },
900 { 0x9a, 0 }, { 0xb0, 0x84 },
901 { 0xb1, 0x0c }, { 0xb2, 0x0e },
902 { 0xb3, 0x82 }, { 0xb8, 0x0a },
903
904 /* More reserved magic, some of which tweaks white balance */
905 { 0x43, 0x0a }, { 0x44, 0xf0 },
906 { 0x45, 0x34 }, { 0x46, 0x58 },
907 { 0x47, 0x28 }, { 0x48, 0x3a },
908 { 0x59, 0x88 }, { 0x5a, 0x88 },
909 { 0x5b, 0x44 }, { 0x5c, 0x67 },
910 { 0x5d, 0x49 }, { 0x5e, 0x0e },
911 { 0x6c, 0x0a }, { 0x6d, 0x55 },
912 { 0x6e, 0x11 }, { 0x6f, 0x9f },
913 /* "9e for advance AWB" */
914 { 0x6a, 0x40 }, { OV7670_REG_BLUE, 0x40 },
915 { OV7670_REG_RED, 0x60 },
916 { OV7670_REG_COM8, OV7670_COM8_FASTAEC
917 | OV7670_COM8_AECSTEP
918 | OV7670_COM8_BFILT
919 | OV7670_COM8_AGC
920 | OV7670_COM8_AEC
921 | OV7670_COM8_AWB },
922
923 /* Matrix coefficients */
924 { 0x4f, 0x80 }, { 0x50, 0x80 },
925 { 0x51, 0 }, { 0x52, 0x22 },
926 { 0x53, 0x5e }, { 0x54, 0x80 },
927 { 0x58, 0x9e },
928
929 { OV7670_REG_COM16, OV7670_COM16_AWBGAIN },
930 { OV7670_REG_EDGE, 0 },
931 { 0x75, 0x05 }, { 0x76, 0xe1 },
932 { 0x4c, 0 }, { 0x77, 0x01 },
933 { OV7670_REG_COM13, OV7670_COM13_GAMMA
934 | OV7670_COM13_UVSAT
935 | 2}, /* was 3 */
936 { 0x4b, 0x09 },
937 { 0xc9, 0x60 }, { OV7670_REG_COM16, 0x38 },
938 { 0x56, 0x40 },
939
940 { 0x34, 0x11 },
941 { OV7670_REG_COM11, OV7670_COM11_EXP|OV7670_COM11_HZAUTO },
942 { 0xa4, 0x88 }, { 0x96, 0 },
943 { 0x97, 0x30 }, { 0x98, 0x20 },
944 { 0x99, 0x30 }, { 0x9a, 0x84 },
945 { 0x9b, 0x29 }, { 0x9c, 0x03 },
946 { 0x9d, 0x4c }, { 0x9e, 0x3f },
947 { 0x78, 0x04 },
948
949 /* Extra-weird stuff. Some sort of multiplexor register */
950 { 0x79, 0x01 }, { 0xc8, 0xf0 },
951 { 0x79, 0x0f }, { 0xc8, 0x00 },
952 { 0x79, 0x10 }, { 0xc8, 0x7e },
953 { 0x79, 0x0a }, { 0xc8, 0x80 },
954 { 0x79, 0x0b }, { 0xc8, 0x01 },
955 { 0x79, 0x0c }, { 0xc8, 0x0f },
956 { 0x79, 0x0d }, { 0xc8, 0x20 },
957 { 0x79, 0x09 }, { 0xc8, 0x80 },
958 { 0x79, 0x02 }, { 0xc8, 0xc0 },
959 { 0x79, 0x03 }, { 0xc8, 0x40 },
960 { 0x79, 0x05 }, { 0xc8, 0x30 },
961 { 0x79, 0x26 },
962 };
963 1150
964 PDEBUG(D_PROBE, "starting OV7xx0 configuration"); 1151 PDEBUG(D_PROBE, "starting OV7xx0 configuration");
965 1152
@@ -1011,8 +1198,9 @@ static int ov7xx0_configure(struct sd *sd)
1011 switch (low) { 1198 switch (low) {
1012 case 0x30: 1199 case 0x30:
1013 PDEBUG(D_PROBE, "Sensor is an OV7630/OV7635"); 1200 PDEBUG(D_PROBE, "Sensor is an OV7630/OV7635");
1014 sd->sensor = SEN_OV7630; 1201 PDEBUG(D_ERR,
1015 break; 1202 "7630 is not supported by this driver");
1203 return -1;
1016 case 0x40: 1204 case 0x40:
1017 PDEBUG(D_PROBE, "Sensor is an OV7645"); 1205 PDEBUG(D_PROBE, "Sensor is an OV7645");
1018 sd->sensor = SEN_OV7640; /* FIXME */ 1206 sd->sensor = SEN_OV7640; /* FIXME */
@@ -1038,32 +1226,6 @@ static int ov7xx0_configure(struct sd *sd)
1038 return -1; 1226 return -1;
1039 } 1227 }
1040 1228
1041 switch (sd->sensor) {
1042 case SEN_OV7620:
1043 PDEBUG(D_PROBE, "Writing 7620 registers");
1044 if (write_i2c_regvals(sd, norm_7620, ARRAY_SIZE(norm_7620)))
1045 return -1;
1046 break;
1047 case SEN_OV7630:
1048 PDEBUG(D_ERR, "7630 is not supported by this driver version");
1049 return -1;
1050 case SEN_OV7640:
1051 PDEBUG(D_PROBE, "Writing 7640 registers");
1052 if (write_i2c_regvals(sd, norm_7640, ARRAY_SIZE(norm_7640)))
1053 return -1;
1054 break;
1055 case SEN_OV7670:
1056 PDEBUG(D_PROBE, "Writing 7670 registers");
1057 if (write_i2c_regvals(sd, norm_7670, ARRAY_SIZE(norm_7670)))
1058 return -1;
1059 break;
1060 default:
1061 PDEBUG(D_PROBE, "Writing 7610 registers");
1062 if (write_i2c_regvals(sd, norm_7610, ARRAY_SIZE(norm_7610)))
1063 return -1;
1064 break;
1065 }
1066
1067 /* Set sensor-specific vars */ 1229 /* Set sensor-specific vars */
1068/* sd->sif = 0; already done */ 1230/* sd->sif = 0; already done */
1069 return 0; 1231 return 0;
@@ -1073,141 +1235,7 @@ static int ov7xx0_configure(struct sd *sd)
1073static int ov6xx0_configure(struct sd *sd) 1235static int ov6xx0_configure(struct sd *sd)
1074{ 1236{
1075 int rc; 1237 int rc;
1076 static const struct ov_i2c_regvals norm_6x20[] = { 1238 PDEBUG(D_PROBE, "starting OV6xx0 configuration");
1077 { 0x12, 0x80 }, /* reset */
1078 { 0x11, 0x01 },
1079 { 0x03, 0x60 },
1080 { 0x05, 0x7f }, /* For when autoadjust is off */
1081 { 0x07, 0xa8 },
1082 /* The ratio of 0x0c and 0x0d controls the white point */
1083 { 0x0c, 0x24 },
1084 { 0x0d, 0x24 },
1085 { 0x0f, 0x15 }, /* COMS */
1086 { 0x10, 0x75 }, /* AEC Exposure time */
1087 { 0x12, 0x24 }, /* Enable AGC */
1088 { 0x14, 0x04 },
1089 /* 0x16: 0x06 helps frame stability with moving objects */
1090 { 0x16, 0x06 },
1091/* { 0x20, 0x30 }, * Aperture correction enable */
1092 { 0x26, 0xb2 }, /* BLC enable */
1093 /* 0x28: 0x05 Selects RGB format if RGB on */
1094 { 0x28, 0x05 },
1095 { 0x2a, 0x04 }, /* Disable framerate adjust */
1096/* { 0x2b, 0xac }, * Framerate; Set 2a[7] first */
1097 { 0x2d, 0x99 },
1098 { 0x33, 0xa0 }, /* Color Processing Parameter */
1099 { 0x34, 0xd2 }, /* Max A/D range */
1100 { 0x38, 0x8b },
1101 { 0x39, 0x40 },
1102
1103 { 0x3c, 0x39 }, /* Enable AEC mode changing */
1104 { 0x3c, 0x3c }, /* Change AEC mode */
1105 { 0x3c, 0x24 }, /* Disable AEC mode changing */
1106
1107 { 0x3d, 0x80 },
1108 /* These next two registers (0x4a, 0x4b) are undocumented.
1109 * They control the color balance */
1110 { 0x4a, 0x80 },
1111 { 0x4b, 0x80 },
1112 { 0x4d, 0xd2 }, /* This reduces noise a bit */
1113 { 0x4e, 0xc1 },
1114 { 0x4f, 0x04 },
1115/* Do 50-53 have any effect? */
1116/* Toggle 0x12[2] off and on here? */
1117 };
1118
1119 static const struct ov_i2c_regvals norm_6x30[] = {
1120 { 0x12, 0x80 }, /* Reset */
1121 { 0x00, 0x1f }, /* Gain */
1122 { 0x01, 0x99 }, /* Blue gain */
1123 { 0x02, 0x7c }, /* Red gain */
1124 { 0x03, 0xc0 }, /* Saturation */
1125 { 0x05, 0x0a }, /* Contrast */
1126 { 0x06, 0x95 }, /* Brightness */
1127 { 0x07, 0x2d }, /* Sharpness */
1128 { 0x0c, 0x20 },
1129 { 0x0d, 0x20 },
1130 { 0x0e, 0x20 },
1131 { 0x0f, 0x05 },
1132 { 0x10, 0x9a },
1133 { 0x11, 0x00 }, /* Pixel clock = fastest */
1134 { 0x12, 0x24 }, /* Enable AGC and AWB */
1135 { 0x13, 0x21 },
1136 { 0x14, 0x80 },
1137 { 0x15, 0x01 },
1138 { 0x16, 0x03 },
1139 { 0x17, 0x38 },
1140 { 0x18, 0xea },
1141 { 0x19, 0x04 },
1142 { 0x1a, 0x93 },
1143 { 0x1b, 0x00 },
1144 { 0x1e, 0xc4 },
1145 { 0x1f, 0x04 },
1146 { 0x20, 0x20 },
1147 { 0x21, 0x10 },
1148 { 0x22, 0x88 },
1149 { 0x23, 0xc0 }, /* Crystal circuit power level */
1150 { 0x25, 0x9a }, /* Increase AEC black ratio */
1151 { 0x26, 0xb2 }, /* BLC enable */
1152 { 0x27, 0xa2 },
1153 { 0x28, 0x00 },
1154 { 0x29, 0x00 },
1155 { 0x2a, 0x84 }, /* 60 Hz power */
1156 { 0x2b, 0xa8 }, /* 60 Hz power */
1157 { 0x2c, 0xa0 },
1158 { 0x2d, 0x95 }, /* Enable auto-brightness */
1159 { 0x2e, 0x88 },
1160 { 0x33, 0x26 },
1161 { 0x34, 0x03 },
1162 { 0x36, 0x8f },
1163 { 0x37, 0x80 },
1164 { 0x38, 0x83 },
1165 { 0x39, 0x80 },
1166 { 0x3a, 0x0f },
1167 { 0x3b, 0x3c },
1168 { 0x3c, 0x1a },
1169 { 0x3d, 0x80 },
1170 { 0x3e, 0x80 },
1171 { 0x3f, 0x0e },
1172 { 0x40, 0x00 }, /* White bal */
1173 { 0x41, 0x00 }, /* White bal */
1174 { 0x42, 0x80 },
1175 { 0x43, 0x3f }, /* White bal */
1176 { 0x44, 0x80 },
1177 { 0x45, 0x20 },
1178 { 0x46, 0x20 },
1179 { 0x47, 0x80 },
1180 { 0x48, 0x7f },
1181 { 0x49, 0x00 },
1182 { 0x4a, 0x00 },
1183 { 0x4b, 0x80 },
1184 { 0x4c, 0xd0 },
1185 { 0x4d, 0x10 }, /* U = 0.563u, V = 0.714v */
1186 { 0x4e, 0x40 },
1187 { 0x4f, 0x07 }, /* UV avg., col. killer: max */
1188 { 0x50, 0xff },
1189 { 0x54, 0x23 }, /* Max AGC gain: 18dB */
1190 { 0x55, 0xff },
1191 { 0x56, 0x12 },
1192 { 0x57, 0x81 },
1193 { 0x58, 0x75 },
1194 { 0x59, 0x01 }, /* AGC dark current comp.: +1 */
1195 { 0x5a, 0x2c },
1196 { 0x5b, 0x0f }, /* AWB chrominance levels */
1197 { 0x5c, 0x10 },
1198 { 0x3d, 0x80 },
1199 { 0x27, 0xa6 },
1200 { 0x12, 0x20 }, /* Toggle AWB */
1201 { 0x12, 0x24 },
1202 };
1203
1204 PDEBUG(D_PROBE, "starting sensor configuration");
1205
1206 if (init_ov_sensor(sd) < 0) {
1207 PDEBUG(D_ERR, "Failed to read sensor ID.");
1208 return -1;
1209 }
1210 PDEBUG(D_PROBE, "OV6xx0 sensor detected");
1211 1239
1212 /* Detect sensor (sub)type */ 1240 /* Detect sensor (sub)type */
1213 rc = i2c_r(sd, OV7610_REG_COM_I); 1241 rc = i2c_r(sd, OV7610_REG_COM_I);
@@ -1251,15 +1279,6 @@ static int ov6xx0_configure(struct sd *sd)
1251 /* Set sensor-specific vars */ 1279 /* Set sensor-specific vars */
1252 sd->sif = 1; 1280 sd->sif = 1;
1253 1281
1254 if (sd->sensor == SEN_OV6620) {
1255 PDEBUG(D_PROBE, "Writing 6x20 registers");
1256 if (write_i2c_regvals(sd, norm_6x20, ARRAY_SIZE(norm_6x20)))
1257 return -1;
1258 } else {
1259 PDEBUG(D_PROBE, "Writing 6x30 registers");
1260 if (write_i2c_regvals(sd, norm_6x30, ARRAY_SIZE(norm_6x30)))
1261 return -1;
1262 }
1263 return 0; 1282 return 0;
1264} 1283}
1265 1284
@@ -1298,22 +1317,31 @@ static int sd_config(struct gspca_dev *gspca_dev,
1298 ov51x_led_control(sd, 0); /* turn LED off */ 1317 ov51x_led_control(sd, 0); /* turn LED off */
1299 1318
1300 /* Test for 76xx */ 1319 /* Test for 76xx */
1301 sd->primary_i2c_slave = OV7xx0_SID;
1302 if (ov51x_set_slave_ids(sd, OV7xx0_SID) < 0) 1320 if (ov51x_set_slave_ids(sd, OV7xx0_SID) < 0)
1303 goto error; 1321 goto error;
1304 1322
1305 /* The OV519 must be more aggressive about sensor detection since 1323 /* The OV519 must be more aggressive about sensor detection since
1306 * I2C write will never fail if the sensor is not present. We have 1324 * I2C write will never fail if the sensor is not present. We have
1307 * to try to initialize the sensor to detect its presence */ 1325 * to try to initialize the sensor to detect its presence */
1308 if (init_ov_sensor(sd) < 0) { 1326 if (init_ov_sensor(sd) >= 0) {
1327 if (ov7xx0_configure(sd) < 0) {
1328 PDEBUG(D_ERR, "Failed to configure OV7xx0");
1329 goto error;
1330 }
1331 } else {
1332
1309 /* Test for 6xx0 */ 1333 /* Test for 6xx0 */
1310 sd->primary_i2c_slave = OV6xx0_SID;
1311 if (ov51x_set_slave_ids(sd, OV6xx0_SID) < 0) 1334 if (ov51x_set_slave_ids(sd, OV6xx0_SID) < 0)
1312 goto error; 1335 goto error;
1313 1336
1314 if (init_ov_sensor(sd) < 0) { 1337 if (init_ov_sensor(sd) >= 0) {
1338 if (ov6xx0_configure(sd) < 0) {
1339 PDEBUG(D_ERR, "Failed to configure OV6xx0");
1340 goto error;
1341 }
1342 } else {
1343
1315 /* Test for 8xx0 */ 1344 /* Test for 8xx0 */
1316 sd->primary_i2c_slave = OV8xx0_SID;
1317 if (ov51x_set_slave_ids(sd, OV8xx0_SID) < 0) 1345 if (ov51x_set_slave_ids(sd, OV8xx0_SID) < 0)
1318 goto error; 1346 goto error;
1319 1347
@@ -1321,24 +1349,13 @@ static int sd_config(struct gspca_dev *gspca_dev,
1321 PDEBUG(D_ERR, 1349 PDEBUG(D_ERR,
1322 "Can't determine sensor slave IDs"); 1350 "Can't determine sensor slave IDs");
1323 goto error; 1351 goto error;
1324 } else {
1325 if (ov8xx0_configure(sd) < 0) {
1326 PDEBUG(D_ERR,
1327 "Failed to configure OV8xx0 sensor");
1328 goto error;
1329 }
1330 } 1352 }
1331 } else { 1353 if (ov8xx0_configure(sd) < 0) {
1332 if (ov6xx0_configure(sd) < 0) { 1354 PDEBUG(D_ERR,
1333 PDEBUG(D_ERR, "Failed to configure OV6xx0"); 1355 "Failed to configure OV8xx0 sensor");
1334 goto error; 1356 goto error;
1335 } 1357 }
1336 } 1358 }
1337 } else {
1338 if (ov7xx0_configure(sd) < 0) {
1339 PDEBUG(D_ERR, "Failed to configure OV7xx0");
1340 goto error;
1341 }
1342 } 1359 }
1343 1360
1344 cam = &gspca_dev->cam; 1361 cam = &gspca_dev->cam;
@@ -1355,15 +1372,53 @@ static int sd_config(struct gspca_dev *gspca_dev,
1355 sd->colors = COLOR_DEF; 1372 sd->colors = COLOR_DEF;
1356 sd->hflip = HFLIP_DEF; 1373 sd->hflip = HFLIP_DEF;
1357 sd->vflip = VFLIP_DEF; 1374 sd->vflip = VFLIP_DEF;
1375 if (sd->sensor != SEN_OV7670)
1376 gspca_dev->ctrl_dis = (1 << HFLIP_IDX)
1377 | (1 << VFLIP_IDX);
1358 return 0; 1378 return 0;
1359error: 1379error:
1360 PDEBUG(D_ERR, "OV519 Config failed"); 1380 PDEBUG(D_ERR, "OV519 Config failed");
1361 return -EBUSY; 1381 return -EBUSY;
1362} 1382}
1363 1383
1364/* this function is called at open time */ 1384/* this function is called at probe and resume time */
1365static int sd_open(struct gspca_dev *gspca_dev) 1385static int sd_init(struct gspca_dev *gspca_dev)
1366{ 1386{
1387 struct sd *sd = (struct sd *) gspca_dev;
1388
1389 /* initialize the sensor */
1390 switch (sd->sensor) {
1391 case SEN_OV6620:
1392 if (write_i2c_regvals(sd, norm_6x20, ARRAY_SIZE(norm_6x20)))
1393 return -EIO;
1394 break;
1395 case SEN_OV6630:
1396 if (write_i2c_regvals(sd, norm_6x30, ARRAY_SIZE(norm_6x30)))
1397 return -EIO;
1398 break;
1399 default:
1400/* case SEN_OV7610: */
1401/* case SEN_OV76BE: */
1402 if (write_i2c_regvals(sd, norm_7610, ARRAY_SIZE(norm_7610)))
1403 return -EIO;
1404 break;
1405 case SEN_OV7620:
1406 if (write_i2c_regvals(sd, norm_7620, ARRAY_SIZE(norm_7620)))
1407 return -EIO;
1408 break;
1409 case SEN_OV7640:
1410 if (write_i2c_regvals(sd, norm_7640, ARRAY_SIZE(norm_7640)))
1411 return -EIO;
1412 break;
1413 case SEN_OV7670:
1414 if (write_i2c_regvals(sd, norm_7670, ARRAY_SIZE(norm_7670)))
1415 return -EIO;
1416 break;
1417 case SEN_OV8610:
1418 if (write_i2c_regvals(sd, norm_8610, ARRAY_SIZE(norm_8610)))
1419 return -EIO;
1420 break;
1421 }
1367 return 0; 1422 return 0;
1368} 1423}
1369 1424
@@ -1827,14 +1882,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1827 ov51x_led_control((struct sd *) gspca_dev, 0); 1882 ov51x_led_control((struct sd *) gspca_dev, 0);
1828} 1883}
1829 1884
1830static void sd_stop0(struct gspca_dev *gspca_dev)
1831{
1832}
1833
1834static void sd_close(struct gspca_dev *gspca_dev)
1835{
1836}
1837
1838static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1885static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1839 struct gspca_frame *frame, /* target */ 1886 struct gspca_frame *frame, /* target */
1840 __u8 *data, /* isoc packet */ 1887 __u8 *data, /* isoc packet */
@@ -2091,11 +2138,9 @@ static const struct sd_desc sd_desc = {
2091 .ctrls = sd_ctrls, 2138 .ctrls = sd_ctrls,
2092 .nctrls = ARRAY_SIZE(sd_ctrls), 2139 .nctrls = ARRAY_SIZE(sd_ctrls),
2093 .config = sd_config, 2140 .config = sd_config,
2094 .open = sd_open, 2141 .init = sd_init,
2095 .start = sd_start, 2142 .start = sd_start,
2096 .stopN = sd_stopN, 2143 .stopN = sd_stopN,
2097 .stop0 = sd_stop0,
2098 .close = sd_close,
2099 .pkt_scan = sd_pkt_scan, 2144 .pkt_scan = sd_pkt_scan,
2100}; 2145};
2101 2146
@@ -2132,6 +2177,10 @@ static struct usb_driver sd_driver = {
2132 .id_table = device_table, 2177 .id_table = device_table,
2133 .probe = sd_probe, 2178 .probe = sd_probe,
2134 .disconnect = gspca_disconnect, 2179 .disconnect = gspca_disconnect,
2180#ifdef CONFIG_PM
2181 .suspend = gspca_suspend,
2182 .resume = gspca_resume,
2183#endif
2135}; 2184};
2136 2185
2137/* -- module insert / remove -- */ 2186/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/pac207.c b/drivers/media/video/gspca/pac207.c
index 7ef18d578811..83b5f740c947 100644
--- a/drivers/media/video/gspca/pac207.c
+++ b/drivers/media/video/gspca/pac207.c
@@ -56,12 +56,6 @@ MODULE_LICENSE("GPL");
56#define PAC207_GAIN_KNEE 20 56#define PAC207_GAIN_KNEE 20
57 57
58#define PAC207_AUTOGAIN_DEADZONE 30 58#define PAC207_AUTOGAIN_DEADZONE 30
59/* We calculating the autogain at the end of the transfer of a frame, at this
60 moment a frame with the old settings is being transmitted, and a frame is
61 being captured with the old settings. So if we adjust the autogain we must
62 ignore atleast the 2 next frames for the new settings to come into effect
63 before doing any other adjustments */
64#define PAC207_AUTOGAIN_IGNORE_FRAMES 3
65 59
66/* specific webcam descriptor */ 60/* specific webcam descriptor */
67struct sd { 61struct sd {
@@ -131,7 +125,8 @@ static struct ctrl sd_ctrls[] = {
131 .minimum = 0, 125 .minimum = 0,
132 .maximum = 1, 126 .maximum = 1,
133 .step = 1, 127 .step = 1,
134 .default_value = 1, 128#define AUTOGAIN_DEF 1
129 .default_value = AUTOGAIN_DEF,
135 .flags = 0, 130 .flags = 0,
136 }, 131 },
137 .set = sd_setautogain, 132 .set = sd_setautogain,
@@ -181,9 +176,6 @@ static const __u8 pac207_sensor_init[][8] = {
181 /* 48 reg_72 Rate Control end BalSize_4a =0x36 */ 176 /* 48 reg_72 Rate Control end BalSize_4a =0x36 */
182static const __u8 PacReg72[] = { 0x00, 0x00, 0x36, 0x00 }; 177static const __u8 PacReg72[] = { 0x00, 0x00, 0x36, 0x00 };
183 178
184static const unsigned char pac207_sof_marker[5] =
185 { 0xff, 0xff, 0x00, 0xff, 0x96 };
186
187static int pac207_write_regs(struct gspca_dev *gspca_dev, u16 index, 179static int pac207_write_regs(struct gspca_dev *gspca_dev, u16 index,
188 const u8 *buffer, u16 length) 180 const u8 *buffer, u16 length)
189{ 181{
@@ -259,35 +251,32 @@ static int sd_config(struct gspca_dev *gspca_dev,
259 return -ENODEV; 251 return -ENODEV;
260 } 252 }
261 253
262 pac207_write_reg(gspca_dev, 0x41, 0x00);
263 /* Bit_0=Image Format,
264 * Bit_1=LED,
265 * Bit_2=Compression test mode enable */
266 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */
267 pac207_write_reg(gspca_dev, 0x11, 0x30); /* Analog Bias */
268
269 PDEBUG(D_PROBE, 254 PDEBUG(D_PROBE,
270 "Pixart PAC207BCA Image Processor and Control Chip detected" 255 "Pixart PAC207BCA Image Processor and Control Chip detected"
271 " (vid/pid 0x%04X:0x%04X)", id->idVendor, id->idProduct); 256 " (vid/pid 0x%04X:0x%04X)", id->idVendor, id->idProduct);
272 257
273 cam = &gspca_dev->cam; 258 cam = &gspca_dev->cam;
274 cam->dev_name = (char *) id->driver_info;
275 cam->epaddr = 0x05; 259 cam->epaddr = 0x05;
276 cam->cam_mode = sif_mode; 260 cam->cam_mode = sif_mode;
277 cam->nmodes = ARRAY_SIZE(sif_mode); 261 cam->nmodes = ARRAY_SIZE(sif_mode);
278 sd->brightness = PAC207_BRIGHTNESS_DEFAULT; 262 sd->brightness = PAC207_BRIGHTNESS_DEFAULT;
279 sd->exposure = PAC207_EXPOSURE_DEFAULT; 263 sd->exposure = PAC207_EXPOSURE_DEFAULT;
280 sd->gain = PAC207_GAIN_DEFAULT; 264 sd->gain = PAC207_GAIN_DEFAULT;
265 sd->autogain = AUTOGAIN_DEF;
281 266
282 return 0; 267 return 0;
283} 268}
284 269
285/* this function is called at open time */ 270/* this function is called at probe and resume time */
286static int sd_open(struct gspca_dev *gspca_dev) 271static int sd_init(struct gspca_dev *gspca_dev)
287{ 272{
288 struct sd *sd = (struct sd *) gspca_dev; 273 pac207_write_reg(gspca_dev, 0x41, 0x00);
274 /* Bit_0=Image Format,
275 * Bit_1=LED,
276 * Bit_2=Compression test mode enable */
277 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */
278 pac207_write_reg(gspca_dev, 0x11, 0x30); /* Analog Bias */
289 279
290 sd->autogain = 1;
291 return 0; 280 return 0;
292} 281}
293 282
@@ -343,14 +332,8 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
343 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */ 332 pac207_write_reg(gspca_dev, 0x0f, 0x00); /* Power Control */
344} 333}
345 334
346static void sd_stop0(struct gspca_dev *gspca_dev) 335/* Include pac common sof detection functions */
347{ 336#include "pac_common.h"
348}
349
350/* this function is called at close time */
351static void sd_close(struct gspca_dev *gspca_dev)
352{
353}
354 337
355static void pac207_do_auto_gain(struct gspca_dev *gspca_dev) 338static void pac207_do_auto_gain(struct gspca_dev *gspca_dev)
356{ 339{
@@ -365,33 +348,7 @@ static void pac207_do_auto_gain(struct gspca_dev *gspca_dev)
365 else if (gspca_auto_gain_n_exposure(gspca_dev, avg_lum, 348 else if (gspca_auto_gain_n_exposure(gspca_dev, avg_lum,
366 100 + sd->brightness / 2, PAC207_AUTOGAIN_DEADZONE, 349 100 + sd->brightness / 2, PAC207_AUTOGAIN_DEADZONE,
367 PAC207_GAIN_KNEE, PAC207_EXPOSURE_KNEE)) 350 PAC207_GAIN_KNEE, PAC207_EXPOSURE_KNEE))
368 sd->autogain_ignore_frames = PAC207_AUTOGAIN_IGNORE_FRAMES; 351 sd->autogain_ignore_frames = PAC_AUTOGAIN_IGNORE_FRAMES;
369}
370
371static unsigned char *pac207_find_sof(struct gspca_dev *gspca_dev,
372 unsigned char *m, int len)
373{
374 struct sd *sd = (struct sd *) gspca_dev;
375 int i;
376
377 /* Search for the SOF marker (fixed part) in the header */
378 for (i = 0; i < len; i++) {
379 if (m[i] == pac207_sof_marker[sd->sof_read]) {
380 sd->sof_read++;
381 if (sd->sof_read == sizeof(pac207_sof_marker)) {
382 PDEBUG(D_STREAM,
383 "SOF found, bytes to analyze: %u."
384 " Frame starts at byte #%u",
385 len, i + 1);
386 sd->sof_read = 0;
387 return m + i + 1;
388 }
389 } else {
390 sd->sof_read = 0;
391 }
392 }
393
394 return NULL;
395} 352}
396 353
397static void sd_pkt_scan(struct gspca_dev *gspca_dev, 354static void sd_pkt_scan(struct gspca_dev *gspca_dev,
@@ -402,14 +359,14 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
402 struct sd *sd = (struct sd *) gspca_dev; 359 struct sd *sd = (struct sd *) gspca_dev;
403 unsigned char *sof; 360 unsigned char *sof;
404 361
405 sof = pac207_find_sof(gspca_dev, data, len); 362 sof = pac_find_sof(gspca_dev, data, len);
406 if (sof) { 363 if (sof) {
407 int n; 364 int n;
408 365
409 /* finish decoding current frame */ 366 /* finish decoding current frame */
410 n = sof - data; 367 n = sof - data;
411 if (n > sizeof pac207_sof_marker) 368 if (n > sizeof pac_sof_marker)
412 n -= sizeof pac207_sof_marker; 369 n -= sizeof pac_sof_marker;
413 else 370 else
414 n = 0; 371 n = 0;
415 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, 372 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame,
@@ -537,7 +494,7 @@ static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val)
537 sd->gain = PAC207_GAIN_DEFAULT; 494 sd->gain = PAC207_GAIN_DEFAULT;
538 if (gspca_dev->streaming) { 495 if (gspca_dev->streaming) {
539 sd->autogain_ignore_frames = 496 sd->autogain_ignore_frames =
540 PAC207_AUTOGAIN_IGNORE_FRAMES; 497 PAC_AUTOGAIN_IGNORE_FRAMES;
541 setexposure(gspca_dev); 498 setexposure(gspca_dev);
542 setgain(gspca_dev); 499 setgain(gspca_dev);
543 } 500 }
@@ -560,11 +517,9 @@ static const struct sd_desc sd_desc = {
560 .ctrls = sd_ctrls, 517 .ctrls = sd_ctrls,
561 .nctrls = ARRAY_SIZE(sd_ctrls), 518 .nctrls = ARRAY_SIZE(sd_ctrls),
562 .config = sd_config, 519 .config = sd_config,
563 .open = sd_open, 520 .init = sd_init,
564 .start = sd_start, 521 .start = sd_start,
565 .stopN = sd_stopN, 522 .stopN = sd_stopN,
566 .stop0 = sd_stop0,
567 .close = sd_close,
568 .dq_callback = pac207_do_auto_gain, 523 .dq_callback = pac207_do_auto_gain,
569 .pkt_scan = sd_pkt_scan, 524 .pkt_scan = sd_pkt_scan,
570}; 525};
@@ -597,6 +552,10 @@ static struct usb_driver sd_driver = {
597 .id_table = device_table, 552 .id_table = device_table,
598 .probe = sd_probe, 553 .probe = sd_probe,
599 .disconnect = gspca_disconnect, 554 .disconnect = gspca_disconnect,
555#ifdef CONFIG_PM
556 .suspend = gspca_suspend,
557 .resume = gspca_resume,
558#endif
600}; 559};
601 560
602/* -- module insert / remove -- */ 561/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/pac7311.c b/drivers/media/video/gspca/pac7311.c
index 815bea6edc44..d4be51843286 100644
--- a/drivers/media/video/gspca/pac7311.c
+++ b/drivers/media/video/gspca/pac7311.c
@@ -19,6 +19,36 @@
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 20 */
21 21
22/* Some documentation about various registers as determined by trial and error.
23 When the register addresses differ between the 7202 and the 7311 the 2
24 different addresses are written as 7302addr/7311addr, when one of the 2
25 addresses is a - sign that register description is not valid for the
26 matching IC.
27
28 Register page 1:
29
30 Address Description
31 -/0x08 Unknown compressor related, must always be 8 except when not
32 in 640x480 resolution and page 4 reg 2 <= 3 then set it to 9 !
33 -/0x1b Auto white balance related, bit 0 is AWB enable (inverted)
34 bits 345 seem to toggle per color gains on/off (inverted)
35 0x78 Global control, bit 6 controls the LED (inverted)
36 -/0x80 JPEG compression ratio ? Best not touched
37
38 Register page 3/4:
39
40 Address Description
41 0x02 Clock divider 2-63, fps =~ 60 / val. Must be a multiple of 3 on
42 the 7302, so one of 3, 6, 9, ..., except when between 6 and 12?
43 -/0x0f Master gain 1-245, low value = high gain
44 0x10/- Master gain 0-31
45 -/0x10 Another gain 0-15, limited influence (1-2x gain I guess)
46 0x21 Bitfield: 0-1 unused, 2-3 vflip/hflip, 4-5 unknown, 6-7 unused
47 -/0x27 Seems to toggle various gains on / off, Setting bit 7 seems to
48 completely disable the analog amplification block. Set to 0x68
49 for max gain, 0x14 for minimal gain.
50*/
51
22#define MODULE_NAME "pac7311" 52#define MODULE_NAME "pac7311"
23 53
24#include "gspca.h" 54#include "gspca.h"
@@ -31,18 +61,23 @@ MODULE_LICENSE("GPL");
31struct sd { 61struct sd {
32 struct gspca_dev gspca_dev; /* !! must be the first item */ 62 struct gspca_dev gspca_dev; /* !! must be the first item */
33 63
34 int lum_sum;
35 atomic_t avg_lum;
36 atomic_t do_gain;
37
38 unsigned char brightness; 64 unsigned char brightness;
39 unsigned char contrast; 65 unsigned char contrast;
40 unsigned char colors; 66 unsigned char colors;
67 unsigned char gain;
68 unsigned char exposure;
41 unsigned char autogain; 69 unsigned char autogain;
70 __u8 hflip;
71 __u8 vflip;
72
73 __u8 sensor;
74#define SENSOR_PAC7302 0
75#define SENSOR_PAC7311 1
42 76
43 char ffseq; 77 u8 sof_read;
44 signed char ag_cnt; 78 u8 autogain_ignore_frames;
45#define AG_CNT_START 13 79
80 atomic_t avg_lum;
46}; 81};
47 82
48/* V4L2 controls supported by the driver */ 83/* V4L2 controls supported by the driver */
@@ -54,8 +89,18 @@ static int sd_setcolors(struct gspca_dev *gspca_dev, __s32 val);
54static int sd_getcolors(struct gspca_dev *gspca_dev, __s32 *val); 89static int sd_getcolors(struct gspca_dev *gspca_dev, __s32 *val);
55static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val); 90static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val);
56static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val); 91static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val);
92static int sd_sethflip(struct gspca_dev *gspca_dev, __s32 val);
93static int sd_gethflip(struct gspca_dev *gspca_dev, __s32 *val);
94static int sd_setvflip(struct gspca_dev *gspca_dev, __s32 val);
95static int sd_getvflip(struct gspca_dev *gspca_dev, __s32 *val);
96static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val);
97static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val);
98static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val);
99static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val);
57 100
58static struct ctrl sd_ctrls[] = { 101static struct ctrl sd_ctrls[] = {
102/* This control is pac7302 only */
103#define BRIGHTNESS_IDX 0
59 { 104 {
60 { 105 {
61 .id = V4L2_CID_BRIGHTNESS, 106 .id = V4L2_CID_BRIGHTNESS,
@@ -71,13 +116,15 @@ static struct ctrl sd_ctrls[] = {
71 .set = sd_setbrightness, 116 .set = sd_setbrightness,
72 .get = sd_getbrightness, 117 .get = sd_getbrightness,
73 }, 118 },
119/* This control is for both the 7302 and the 7311 */
74 { 120 {
75 { 121 {
76 .id = V4L2_CID_CONTRAST, 122 .id = V4L2_CID_CONTRAST,
77 .type = V4L2_CTRL_TYPE_INTEGER, 123 .type = V4L2_CTRL_TYPE_INTEGER,
78 .name = "Contrast", 124 .name = "Contrast",
79 .minimum = 0, 125 .minimum = 0,
80 .maximum = 255, 126#define CONTRAST_MAX 255
127 .maximum = CONTRAST_MAX,
81 .step = 1, 128 .step = 1,
82#define CONTRAST_DEF 127 129#define CONTRAST_DEF 127
83 .default_value = CONTRAST_DEF, 130 .default_value = CONTRAST_DEF,
@@ -85,13 +132,16 @@ static struct ctrl sd_ctrls[] = {
85 .set = sd_setcontrast, 132 .set = sd_setcontrast,
86 .get = sd_getcontrast, 133 .get = sd_getcontrast,
87 }, 134 },
135/* This control is pac7302 only */
136#define SATURATION_IDX 2
88 { 137 {
89 { 138 {
90 .id = V4L2_CID_SATURATION, 139 .id = V4L2_CID_SATURATION,
91 .type = V4L2_CTRL_TYPE_INTEGER, 140 .type = V4L2_CTRL_TYPE_INTEGER,
92 .name = "Color", 141 .name = "Saturation",
93 .minimum = 0, 142 .minimum = 0,
94 .maximum = 255, 143#define COLOR_MAX 255
144 .maximum = COLOR_MAX,
95 .step = 1, 145 .step = 1,
96#define COLOR_DEF 127 146#define COLOR_DEF 127
97 .default_value = COLOR_DEF, 147 .default_value = COLOR_DEF,
@@ -99,6 +149,39 @@ static struct ctrl sd_ctrls[] = {
99 .set = sd_setcolors, 149 .set = sd_setcolors,
100 .get = sd_getcolors, 150 .get = sd_getcolors,
101 }, 151 },
152/* All controls below are for both the 7302 and the 7311 */
153 {
154 {
155 .id = V4L2_CID_GAIN,
156 .type = V4L2_CTRL_TYPE_INTEGER,
157 .name = "Gain",
158 .minimum = 0,
159#define GAIN_MAX 255
160 .maximum = GAIN_MAX,
161 .step = 1,
162#define GAIN_DEF 127
163#define GAIN_KNEE 255 /* Gain seems to cause little noise on the pac73xx */
164 .default_value = GAIN_DEF,
165 },
166 .set = sd_setgain,
167 .get = sd_getgain,
168 },
169 {
170 {
171 .id = V4L2_CID_EXPOSURE,
172 .type = V4L2_CTRL_TYPE_INTEGER,
173 .name = "Exposure",
174 .minimum = 0,
175#define EXPOSURE_MAX 255
176 .maximum = EXPOSURE_MAX,
177 .step = 1,
178#define EXPOSURE_DEF 16 /* 32 ms / 30 fps */
179#define EXPOSURE_KNEE 50 /* 100 ms / 10 fps */
180 .default_value = EXPOSURE_DEF,
181 },
182 .set = sd_setexposure,
183 .get = sd_getexposure,
184 },
102 { 185 {
103 { 186 {
104 .id = V4L2_CID_AUTOGAIN, 187 .id = V4L2_CID_AUTOGAIN,
@@ -113,101 +196,207 @@ static struct ctrl sd_ctrls[] = {
113 .set = sd_setautogain, 196 .set = sd_setautogain,
114 .get = sd_getautogain, 197 .get = sd_getautogain,
115 }, 198 },
199 {
200 {
201 .id = V4L2_CID_HFLIP,
202 .type = V4L2_CTRL_TYPE_BOOLEAN,
203 .name = "Mirror",
204 .minimum = 0,
205 .maximum = 1,
206 .step = 1,
207#define HFLIP_DEF 0
208 .default_value = HFLIP_DEF,
209 },
210 .set = sd_sethflip,
211 .get = sd_gethflip,
212 },
213 {
214 {
215 .id = V4L2_CID_VFLIP,
216 .type = V4L2_CTRL_TYPE_BOOLEAN,
217 .name = "Vflip",
218 .minimum = 0,
219 .maximum = 1,
220 .step = 1,
221#define VFLIP_DEF 0
222 .default_value = VFLIP_DEF,
223 },
224 .set = sd_setvflip,
225 .get = sd_getvflip,
226 },
116}; 227};
117 228
118static struct v4l2_pix_format vga_mode[] = { 229static struct v4l2_pix_format vga_mode[] = {
119 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 230 {160, 120, V4L2_PIX_FMT_PJPG, V4L2_FIELD_NONE,
120 .bytesperline = 160, 231 .bytesperline = 160,
121 .sizeimage = 160 * 120 * 3 / 8 + 590, 232 .sizeimage = 160 * 120 * 3 / 8 + 590,
122 .colorspace = V4L2_COLORSPACE_JPEG, 233 .colorspace = V4L2_COLORSPACE_JPEG,
123 .priv = 2}, 234 .priv = 2},
124 {320, 240, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 235 {320, 240, V4L2_PIX_FMT_PJPG, V4L2_FIELD_NONE,
125 .bytesperline = 320, 236 .bytesperline = 320,
126 .sizeimage = 320 * 240 * 3 / 8 + 590, 237 .sizeimage = 320 * 240 * 3 / 8 + 590,
127 .colorspace = V4L2_COLORSPACE_JPEG, 238 .colorspace = V4L2_COLORSPACE_JPEG,
128 .priv = 1}, 239 .priv = 1},
129 {640, 480, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 240 {640, 480, V4L2_PIX_FMT_PJPG, V4L2_FIELD_NONE,
130 .bytesperline = 640, 241 .bytesperline = 640,
131 .sizeimage = 640 * 480 * 3 / 8 + 590, 242 .sizeimage = 640 * 480 * 3 / 8 + 590,
132 .colorspace = V4L2_COLORSPACE_JPEG, 243 .colorspace = V4L2_COLORSPACE_JPEG,
133 .priv = 0}, 244 .priv = 0},
134}; 245};
135 246
136#define PAC7311_JPEG_HEADER_SIZE (sizeof pac7311_jpeg_header) /* (594) */ 247/* pac 7302 */
137 248static const __u8 init_7302[] = {
138static const __u8 pac7311_jpeg_header[] = { 249/* index,value */
139 0xff, 0xd8, 250 0xff, 0x01, /* page 1 */
140 0xff, 0xe0, 0x00, 0x03, 0x20, 251 0x78, 0x00, /* deactivate */
141 0xff, 0xc0, 0x00, 0x11, 0x08, 252 0xff, 0x01,
142 0x01, 0xe0, /* 12: height */ 253 0x78, 0x40, /* led off */
143 0x02, 0x80, /* 14: width */ 254};
144 0x03, /* 16 */ 255static const __u8 start_7302[] = {
145 0x01, 0x21, 0x00, 256/* index, len, [value]* */
146 0x02, 0x11, 0x01, 257 0xff, 1, 0x00, /* page 0 */
147 0x03, 0x11, 0x01, 258 0x00, 12, 0x01, 0x40, 0x40, 0x40, 0x01, 0xe0, 0x02, 0x80,
148 0xff, 0xdb, 0x00, 0x84, 259 0x00, 0x00, 0x00, 0x00,
149 0x00, 0x10, 0x0b, 0x0c, 0x0e, 0x0c, 0x0a, 0x10, 0x0e, 0x0d, 260 0x0d, 24, 0x03, 0x01, 0x00, 0xb5, 0x07, 0xcb, 0x00, 0x00,
150 0x0e, 0x12, 0x11, 0x10, 0x13, 0x18, 0x28, 0x1a, 0x18, 0x16, 261 0x07, 0xc8, 0x00, 0xea, 0x07, 0xcf, 0x07, 0xf7,
151 0x16, 0x18, 0x31, 0x23, 0x25, 0x1d, 0x28, 0x3a, 0x33, 0x3d, 262 0x07, 0x7e, 0x01, 0x0b, 0x00, 0x00, 0x00, 0x11,
152 0x3c, 0x39, 0x33, 0x38, 0x37, 0x40, 0x48, 0x5c, 0x4e, 0x40, 263 0x26, 2, 0xaa, 0xaa,
153 0x44, 0x57, 0x45, 0x37, 0x38, 0x50, 0x6d, 0x51, 0x57, 0x5f, 264 0x2e, 1, 0x31,
154 0x62, 0x67, 0x68, 0x67, 0x3e, 0x4d, 0x71, 0x79, 0x70, 0x64, 265 0x38, 1, 0x01,
155 0x78, 0x5c, 0x65, 0x67, 0x63, 0x01, 0x11, 0x12, 0x12, 0x18, 266 0x3a, 3, 0x14, 0xff, 0x5a,
156 0x15, 0x18, 0x2f, 0x1a, 0x1a, 0x2f, 0x63, 0x42, 0x38, 0x42, 267 0x43, 11, 0x00, 0x0a, 0x18, 0x11, 0x01, 0x2c, 0x88, 0x11,
157 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 268 0x00, 0x54, 0x11,
158 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 269 0x55, 1, 0x00,
159 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 270 0x62, 4, 0x10, 0x1e, 0x1e, 0x18,
160 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 271 0x6b, 1, 0x00,
161 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 272 0x6e, 3, 0x08, 0x06, 0x00,
162 0xff, 0xc4, 0x01, 0xa2, 0x00, 0x00, 0x01, 0x05, 0x01, 0x01, 273 0x72, 3, 0x00, 0xff, 0x00,
163 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 274 0x7d, 23, 0x01, 0x01, 0x58, 0x46, 0x50, 0x3c, 0x50, 0x3c,
164 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 275 0x54, 0x46, 0x54, 0x56, 0x52, 0x50, 0x52, 0x50,
165 0x09, 0x0a, 0x0b, 0x10, 0x00, 0x02, 0x01, 0x03, 0x03, 0x02, 276 0x56, 0x64, 0xa4, 0x00, 0xda, 0x00, 0x00,
166 0x04, 0x03, 0x05, 0x05, 0x04, 0x04, 0x00, 0x00, 0x01, 0x7d, 277 0xa2, 10, 0x22, 0x2c, 0x3c, 0x54, 0x69, 0x7c, 0x9c, 0xb9,
167 0x01, 0x02, 0x03, 0x00, 0x04, 0x11, 0x05, 0x12, 0x21, 0x31, 278 0xd2, 0xeb,
168 0x41, 0x06, 0x13, 0x51, 0x61, 0x07, 0x22, 0x71, 0x14, 0x32, 279 0xaf, 1, 0x02,
169 0x81, 0x91, 0xa1, 0x08, 0x23, 0x42, 0xb1, 0xc1, 0x15, 0x52, 280 0xb5, 2, 0x08, 0x08,
170 0xd1, 0xf0, 0x24, 0x33, 0x62, 0x72, 0x82, 0x09, 0x0a, 0x16, 281 0xb8, 2, 0x08, 0x88,
171 0x17, 0x18, 0x19, 0x1a, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 282 0xc4, 4, 0xae, 0x01, 0x04, 0x01,
172 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 283 0xcc, 1, 0x00,
173 0x46, 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 284 0xd1, 11, 0x01, 0x30, 0x49, 0x5e, 0x6f, 0x7f, 0x8e, 0xa9,
174 0x58, 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 285 0xc1, 0xd7, 0xec,
175 0x6a, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x83, 286 0xdc, 1, 0x01,
176 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 287 0xff, 1, 0x01, /* page 1 */
177 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 288 0x12, 3, 0x02, 0x00, 0x01,
178 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 289 0x3e, 2, 0x00, 0x00,
179 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 290 0x76, 5, 0x01, 0x20, 0x40, 0x00, 0xf2,
180 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 291 0x7c, 1, 0x00,
181 0xd9, 0xda, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 292 0x7f, 10, 0x4b, 0x0f, 0x01, 0x2c, 0x02, 0x58, 0x03, 0x20,
182 0xe9, 0xea, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 293 0x02, 0x00,
183 0xf9, 0xfa, 0x01, 0x00, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 294 0x96, 5, 0x01, 0x10, 0x04, 0x01, 0x04,
184 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 295 0xc8, 14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00,
185 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 296 0x07, 0x00, 0x01, 0x07, 0x04, 0x01,
186 0x0b, 0x11, 0x00, 0x02, 0x01, 0x02, 0x04, 0x04, 0x03, 0x04, 297 0xd8, 1, 0x01,
187 0x07, 0x05, 0x04, 0x04, 0x00, 0x01, 0x02, 0x77, 0x00, 0x01, 298 0xdb, 2, 0x00, 0x01,
188 0x02, 0x03, 0x11, 0x04, 0x05, 0x21, 0x31, 0x06, 0x12, 0x41, 299 0xde, 7, 0x00, 0x01, 0x04, 0x04, 0x00, 0x00, 0x00,
189 0x51, 0x07, 0x61, 0x71, 0x13, 0x22, 0x32, 0x81, 0x08, 0x14, 300 0xe6, 4, 0x00, 0x00, 0x00, 0x01,
190 0x42, 0x91, 0xa1, 0xb1, 0xc1, 0x09, 0x23, 0x33, 0x52, 0xf0, 301 0xeb, 1, 0x00,
191 0x15, 0x62, 0x72, 0xd1, 0x0a, 0x16, 0x24, 0x34, 0xe1, 0x25, 302 0xff, 1, 0x02, /* page 2 */
192 0xf1, 0x17, 0x18, 0x19, 0x1a, 0x26, 0x27, 0x28, 0x29, 0x2a, 303 0x22, 1, 0x00,
193 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x43, 0x44, 0x45, 0x46, 304 0xff, 1, 0x03, /* page 3 */
194 0x47, 0x48, 0x49, 0x4a, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 305 0x00, 255, /* load the page 3 */
195 0x59, 0x5a, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 306 0x11, 1, 0x01,
196 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x82, 0x83, 307 0xff, 1, 0x02, /* page 2 */
197 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x92, 0x93, 0x94, 308 0x13, 1, 0x00,
198 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0xa2, 0xa3, 0xa4, 0xa5, 309 0x22, 4, 0x1f, 0xa4, 0xf0, 0x96,
199 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 310 0x27, 2, 0x14, 0x0c,
200 0xb7, 0xb8, 0xb9, 0xba, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 311 0x2a, 5, 0xc8, 0x00, 0x18, 0x12, 0x22,
201 0xc8, 0xc9, 0xca, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, 0xd8, 312 0x64, 8, 0x00, 0x00, 0xf0, 0x01, 0x14, 0x44, 0x44, 0x44,
202 0xd9, 0xda, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 313 0x6e, 1, 0x08,
203 0xea, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa, 314 0xff, 1, 0x01, /* page 1 */
204 0xff, 0xda, 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 315 0x78, 1, 0x00,
205 0x11, 0x00, 0x3f, 0x00 316 0, 0 /* end of sequence */
317};
318
319/* page 3 - the value 0xaa says skip the index - see reg_w_page() */
320static const __u8 page3_7302[] = {
321 0x90, 0x40, 0x03, 0x50, 0xc2, 0x01, 0x14, 0x16,
322 0x14, 0x12, 0x00, 0x00, 0x00, 0x02, 0x33, 0x00,
323 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
324 0x00, 0x00, 0x00, 0x47, 0x01, 0xb3, 0x01, 0x00,
325 0x00, 0x08, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x21,
326 0x00, 0x00, 0x00, 0x54, 0xf4, 0x02, 0x52, 0x54,
327 0xa4, 0xb8, 0xe0, 0x2a, 0xf6, 0x00, 0x00, 0x00,
328 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
329 0x00, 0xfc, 0x00, 0xf2, 0x1f, 0x04, 0x00, 0x00,
330 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x10, 0x00, 0x00,
331 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
332 0x00, 0x40, 0xff, 0x03, 0x19, 0x00, 0x00, 0x00,
333 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
334 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xc8, 0xc8,
335 0xc8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50,
336 0x08, 0x10, 0x24, 0x40, 0x00, 0x00, 0x00, 0x00,
337 0x01, 0x00, 0x02, 0x47, 0x00, 0x00, 0x00, 0x00,
338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
339 0x00, 0x02, 0xfa, 0x00, 0x64, 0x5a, 0x28, 0x00,
340 0x00
341};
342
343/* pac 7311 */
344static const __u8 init_7311[] = {
345 0x78, 0x40, /* Bit_0=start stream, Bit_6=LED */
346 0x78, 0x40, /* Bit_0=start stream, Bit_6=LED */
347 0x78, 0x44, /* Bit_0=start stream, Bit_6=LED */
348 0xff, 0x04,
349 0x27, 0x80,
350 0x28, 0xca,
351 0x29, 0x53,
352 0x2a, 0x0e,
353 0xff, 0x01,
354 0x3e, 0x20,
355};
356
357static const __u8 start_7311[] = {
358/* index, len, [value]* */
359 0xff, 1, 0x01, /* page 1 */
360 0x02, 43, 0x48, 0x0a, 0x40, 0x08, 0x00, 0x00, 0x08, 0x00,
361 0x06, 0xff, 0x11, 0xff, 0x5a, 0x30, 0x90, 0x4c,
362 0x00, 0x07, 0x00, 0x0a, 0x10, 0x00, 0xa0, 0x10,
363 0x02, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x01, 0x00,
364 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
365 0x00, 0x00, 0x00,
366 0x3e, 42, 0x00, 0x00, 0x78, 0x52, 0x4a, 0x52, 0x78, 0x6e,
367 0x48, 0x46, 0x48, 0x6e, 0x5f, 0x49, 0x42, 0x49,
368 0x5f, 0x5f, 0x49, 0x42, 0x49, 0x5f, 0x6e, 0x48,
369 0x46, 0x48, 0x6e, 0x78, 0x52, 0x4a, 0x52, 0x78,
370 0x00, 0x00, 0x09, 0x1b, 0x34, 0x49, 0x5c, 0x9b,
371 0xd0, 0xff,
372 0x78, 6, 0x44, 0x00, 0xf2, 0x01, 0x01, 0x80,
373 0x7f, 18, 0x2a, 0x1c, 0x00, 0xc8, 0x02, 0x58, 0x03, 0x84,
374 0x12, 0x00, 0x1a, 0x04, 0x08, 0x0c, 0x10, 0x14,
375 0x18, 0x20,
376 0x96, 3, 0x01, 0x08, 0x04,
377 0xa0, 4, 0x44, 0x44, 0x44, 0x04,
378 0xf0, 13, 0x01, 0x00, 0x00, 0x00, 0x22, 0x00, 0x20, 0x00,
379 0x3f, 0x00, 0x0a, 0x01, 0x00,
380 0xff, 1, 0x04, /* page 4 */
381 0x00, 254, /* load the page 4 */
382 0x11, 1, 0x01,
383 0, 0 /* end of sequence */
384};
385
386/* page 4 - the value 0xaa says skip the index - see reg_w_page() */
387static const __u8 page4_7311[] = {
388 0xaa, 0xaa, 0x04, 0x54, 0x07, 0x2b, 0x09, 0x0f,
389 0x09, 0x00, 0xaa, 0xaa, 0x07, 0x00, 0x00, 0x62,
390 0x08, 0xaa, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
391 0x00, 0x00, 0x00, 0x03, 0xa0, 0x01, 0xf4, 0xaa,
392 0xaa, 0x00, 0x08, 0xaa, 0x03, 0xaa, 0x00, 0x68,
393 0xca, 0x10, 0x06, 0x78, 0x00, 0x00, 0x00, 0x00,
394 0x23, 0x28, 0x04, 0x11, 0x00, 0x00
206}; 395};
207 396
208static void reg_w_buf(struct gspca_dev *gspca_dev, 397static void reg_w_buf(struct gspca_dev *gspca_dev,
209 __u16 index, 398 __u8 index,
210 const char *buffer, __u16 len) 399 const char *buffer, int len)
211{ 400{
212 memcpy(gspca_dev->usb_buf, buffer, len); 401 memcpy(gspca_dev->usb_buf, buffer, len);
213 usb_control_msg(gspca_dev->dev, 402 usb_control_msg(gspca_dev->dev,
@@ -219,21 +408,9 @@ static void reg_w_buf(struct gspca_dev *gspca_dev,
219 500); 408 500);
220} 409}
221 410
222static __u8 reg_r(struct gspca_dev *gspca_dev,
223 __u16 index)
224{
225 usb_control_msg(gspca_dev->dev,
226 usb_rcvctrlpipe(gspca_dev->dev, 0),
227 0, /* request */
228 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
229 0, /* value */
230 index, gspca_dev->usb_buf, 1,
231 500);
232 return gspca_dev->usb_buf[0];
233}
234 411
235static void reg_w(struct gspca_dev *gspca_dev, 412static void reg_w(struct gspca_dev *gspca_dev,
236 __u16 index, 413 __u8 index,
237 __u8 value) 414 __u8 value)
238{ 415{
239 gspca_dev->usb_buf[0] = value; 416 gspca_dev->usb_buf[0] = value;
@@ -241,10 +418,78 @@ static void reg_w(struct gspca_dev *gspca_dev,
241 usb_sndctrlpipe(gspca_dev->dev, 0), 418 usb_sndctrlpipe(gspca_dev->dev, 0),
242 0, /* request */ 419 0, /* request */
243 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 420 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
244 value, index, gspca_dev->usb_buf, 1, 421 0, index, gspca_dev->usb_buf, 1,
245 500); 422 500);
246} 423}
247 424
425static void reg_w_seq(struct gspca_dev *gspca_dev,
426 const __u8 *seq, int len)
427{
428 while (--len >= 0) {
429 reg_w(gspca_dev, seq[0], seq[1]);
430 seq += 2;
431 }
432}
433
434/* load the beginning of a page */
435static void reg_w_page(struct gspca_dev *gspca_dev,
436 const __u8 *page, int len)
437{
438 int index;
439
440 for (index = 0; index < len; index++) {
441 if (page[index] == 0xaa) /* skip this index */
442 continue;
443 gspca_dev->usb_buf[0] = page[index];
444 usb_control_msg(gspca_dev->dev,
445 usb_sndctrlpipe(gspca_dev->dev, 0),
446 0, /* request */
447 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
448 0, index, gspca_dev->usb_buf, 1,
449 500);
450 }
451}
452
453/* output a variable sequence */
454static void reg_w_var(struct gspca_dev *gspca_dev,
455 const __u8 *seq)
456{
457 int index, len;
458
459 for (;;) {
460 index = *seq++;
461 len = *seq++;
462 switch (len) {
463 case 0:
464 return;
465 case 254:
466 reg_w_page(gspca_dev, page4_7311, sizeof page4_7311);
467 break;
468 case 255:
469 reg_w_page(gspca_dev, page3_7302, sizeof page3_7302);
470 break;
471 default:
472 if (len > 64) {
473 PDEBUG(D_ERR|D_STREAM,
474 "Incorrect variable sequence");
475 return;
476 }
477 while (len > 0) {
478 if (len < 8) {
479 reg_w_buf(gspca_dev, index, seq, len);
480 seq += len;
481 break;
482 }
483 reg_w_buf(gspca_dev, index, seq, 8);
484 seq += 8;
485 index += 8;
486 len -= 8;
487 }
488 }
489 }
490 /* not reached */
491}
492
248/* this function is called at probe time */ 493/* this function is called at probe time */
249static int sd_config(struct gspca_dev *gspca_dev, 494static int sd_config(struct gspca_dev *gspca_dev,
250 const struct usb_device_id *id) 495 const struct usb_device_id *id)
@@ -252,203 +497,245 @@ static int sd_config(struct gspca_dev *gspca_dev,
252 struct sd *sd = (struct sd *) gspca_dev; 497 struct sd *sd = (struct sd *) gspca_dev;
253 struct cam *cam; 498 struct cam *cam;
254 499
255 PDEBUG(D_CONF, "Find Sensor PAC7311");
256 reg_w(gspca_dev, 0x78, 0x40); /* Bit_0=start stream, Bit_7=LED */
257 reg_w(gspca_dev, 0x78, 0x40); /* Bit_0=start stream, Bit_7=LED */
258 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */
259 reg_w(gspca_dev, 0xff, 0x04);
260 reg_w(gspca_dev, 0x27, 0x80);
261 reg_w(gspca_dev, 0x28, 0xca);
262 reg_w(gspca_dev, 0x29, 0x53);
263 reg_w(gspca_dev, 0x2a, 0x0e);
264 reg_w(gspca_dev, 0xff, 0x01);
265 reg_w(gspca_dev, 0x3e, 0x20);
266
267 cam = &gspca_dev->cam; 500 cam = &gspca_dev->cam;
268 cam->epaddr = 0x05; 501 cam->epaddr = 0x05;
269 cam->cam_mode = vga_mode; 502
270 cam->nmodes = ARRAY_SIZE(vga_mode); 503 sd->sensor = id->driver_info;
504 if (sd->sensor == SENSOR_PAC7302) {
505 PDEBUG(D_CONF, "Find Sensor PAC7302");
506 cam->cam_mode = &vga_mode[2]; /* only 640x480 */
507 cam->nmodes = 1;
508 } else {
509 PDEBUG(D_CONF, "Find Sensor PAC7311");
510 cam->cam_mode = vga_mode;
511 cam->nmodes = ARRAY_SIZE(vga_mode);
512 gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX)
513 | (1 << SATURATION_IDX);
514 }
271 515
272 sd->brightness = BRIGHTNESS_DEF; 516 sd->brightness = BRIGHTNESS_DEF;
273 sd->contrast = CONTRAST_DEF; 517 sd->contrast = CONTRAST_DEF;
274 sd->colors = COLOR_DEF; 518 sd->colors = COLOR_DEF;
519 sd->gain = GAIN_DEF;
520 sd->exposure = EXPOSURE_DEF;
275 sd->autogain = AUTOGAIN_DEF; 521 sd->autogain = AUTOGAIN_DEF;
276 sd->ag_cnt = -1; 522 sd->hflip = HFLIP_DEF;
523 sd->vflip = VFLIP_DEF;
277 return 0; 524 return 0;
278} 525}
279 526
280static void setbrightness(struct gspca_dev *gspca_dev) 527/* This function is used by pac7302 only */
528static void setbrightcont(struct gspca_dev *gspca_dev)
529{
530 struct sd *sd = (struct sd *) gspca_dev;
531 int i, v;
532 static const __u8 max[10] =
533 {0x29, 0x33, 0x42, 0x5a, 0x6e, 0x80, 0x9f, 0xbb,
534 0xd4, 0xec};
535 static const __u8 delta[10] =
536 {0x35, 0x33, 0x33, 0x2f, 0x2a, 0x25, 0x1e, 0x17,
537 0x11, 0x0b};
538
539 reg_w(gspca_dev, 0xff, 0x00); /* page 0 */
540 for (i = 0; i < 10; i++) {
541 v = max[i];
542 v += (sd->brightness - BRIGHTNESS_MAX)
543 * 150 / BRIGHTNESS_MAX; /* 200 ? */
544 v -= delta[i] * sd->contrast / CONTRAST_MAX;
545 if (v < 0)
546 v = 0;
547 else if (v > 0xff)
548 v = 0xff;
549 reg_w(gspca_dev, 0xa2 + i, v);
550 }
551 reg_w(gspca_dev, 0xdc, 0x01);
552}
553
554/* This function is used by pac7311 only */
555static void setcontrast(struct gspca_dev *gspca_dev)
281{ 556{
282 struct sd *sd = (struct sd *) gspca_dev; 557 struct sd *sd = (struct sd *) gspca_dev;
283 int brightness;
284 558
285/*jfm: inverted?*/
286 brightness = BRIGHTNESS_MAX - sd->brightness;
287 reg_w(gspca_dev, 0xff, 0x04); 559 reg_w(gspca_dev, 0xff, 0x04);
288/* reg_w(gspca_dev, 0x0e, 0x00); */ 560 reg_w(gspca_dev, 0x10, sd->contrast >> 4);
289 reg_w(gspca_dev, 0x0f, brightness);
290 /* load registers to sensor (Bit 0, auto clear) */ 561 /* load registers to sensor (Bit 0, auto clear) */
291 reg_w(gspca_dev, 0x11, 0x01); 562 reg_w(gspca_dev, 0x11, 0x01);
292 PDEBUG(D_CONF|D_STREAM, "brightness: %i", brightness);
293} 563}
294 564
295static void setcontrast(struct gspca_dev *gspca_dev) 565/* This function is used by pac7302 only */
566static void setcolors(struct gspca_dev *gspca_dev)
296{ 567{
297 struct sd *sd = (struct sd *) gspca_dev; 568 struct sd *sd = (struct sd *) gspca_dev;
569 int i, v;
570 static const int a[9] =
571 {217, -212, 0, -101, 170, -67, -38, -315, 355};
572 static const int b[9] =
573 {19, 106, 0, 19, 106, 1, 19, 106, 1};
298 574
299 reg_w(gspca_dev, 0xff, 0x01); 575 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
300 reg_w(gspca_dev, 0x80, sd->contrast);
301 /* load registers to sensor (Bit 0, auto clear) */
302 reg_w(gspca_dev, 0x11, 0x01); 576 reg_w(gspca_dev, 0x11, 0x01);
303 PDEBUG(D_CONF|D_STREAM, "contrast: %i", sd->contrast); 577 reg_w(gspca_dev, 0xff, 0x00); /* page 0 */
578 reg_w(gspca_dev, 0xff, 0x00); /* page 0 */
579 for (i = 0; i < 9; i++) {
580 v = a[i] * sd->colors / COLOR_MAX + b[i];
581 reg_w(gspca_dev, 0x0f + 2 * i, (v >> 8) & 0x07);
582 reg_w(gspca_dev, 0x0f + 2 * i + 1, v);
583 }
584 reg_w(gspca_dev, 0xdc, 0x01);
585 PDEBUG(D_CONF|D_STREAM, "color: %i", sd->colors);
304} 586}
305 587
306static void setcolors(struct gspca_dev *gspca_dev) 588static void setgain(struct gspca_dev *gspca_dev)
307{ 589{
308 struct sd *sd = (struct sd *) gspca_dev; 590 struct sd *sd = (struct sd *) gspca_dev;
309 591
310 reg_w(gspca_dev, 0xff, 0x01); 592 if (sd->sensor == SENSOR_PAC7302) {
311 reg_w(gspca_dev, 0x10, sd->colors); 593 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
594 reg_w(gspca_dev, 0x10, sd->gain >> 3);
595 } else {
596 int gain = GAIN_MAX - sd->gain;
597 if (gain < 1)
598 gain = 1;
599 else if (gain > 245)
600 gain = 245;
601 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */
602 reg_w(gspca_dev, 0x0e, 0x00);
603 reg_w(gspca_dev, 0x0f, gain);
604 }
312 /* load registers to sensor (Bit 0, auto clear) */ 605 /* load registers to sensor (Bit 0, auto clear) */
313 reg_w(gspca_dev, 0x11, 0x01); 606 reg_w(gspca_dev, 0x11, 0x01);
314 PDEBUG(D_CONF|D_STREAM, "color: %i", sd->colors);
315} 607}
316 608
317static void setautogain(struct gspca_dev *gspca_dev) 609static void setexposure(struct gspca_dev *gspca_dev)
318{ 610{
319 struct sd *sd = (struct sd *) gspca_dev; 611 struct sd *sd = (struct sd *) gspca_dev;
612 __u8 reg;
613
614 /* register 2 of frame 3/4 contains the clock divider configuring the
615 no fps according to the formula: 60 / reg. sd->exposure is the
616 desired exposure time in ms. */
617 reg = 120 * sd->exposure / 1000;
618 if (reg < 2)
619 reg = 2;
620 else if (reg > 63)
621 reg = 63;
622
623 if (sd->sensor == SENSOR_PAC7302) {
624 /* On the pac7302 reg2 MUST be a multiple of 3, so round it to
625 the nearest multiple of 3, except when between 6 and 12? */
626 if (reg < 6 || reg > 12)
627 reg = ((reg + 1) / 3) * 3;
628 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
629 reg_w(gspca_dev, 0x02, reg);
630 } else {
631 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */
632 reg_w(gspca_dev, 0x02, reg);
633 /* Page 1 register 8 must always be 0x08 except when not in
634 640x480 mode and Page3/4 reg 2 <= 3 then it must be 9 */
635 reg_w(gspca_dev, 0xff, 0x01);
636 if (gspca_dev->cam.cam_mode[(int)gspca_dev->curr_mode].priv &&
637 reg <= 3)
638 reg_w(gspca_dev, 0x08, 0x09);
639 else
640 reg_w(gspca_dev, 0x08, 0x08);
641 }
642 /* load registers to sensor (Bit 0, auto clear) */
643 reg_w(gspca_dev, 0x11, 0x01);
644}
320 645
321 if (sd->autogain) { 646static void sethvflip(struct gspca_dev *gspca_dev)
322 sd->lum_sum = 0; 647{
323 sd->ag_cnt = AG_CNT_START; 648 struct sd *sd = (struct sd *) gspca_dev;
649 __u8 data;
650
651 if (sd->sensor == SENSOR_PAC7302) {
652 reg_w(gspca_dev, 0xff, 0x03); /* page 3 */
653 data = (sd->hflip ? 0x08 : 0x00)
654 | (sd->vflip ? 0x04 : 0x00);
324 } else { 655 } else {
325 sd->ag_cnt = -1; 656 reg_w(gspca_dev, 0xff, 0x04); /* page 4 */
657 data = (sd->hflip ? 0x04 : 0x00)
658 | (sd->vflip ? 0x08 : 0x00);
326 } 659 }
660 reg_w(gspca_dev, 0x21, data);
661 /* load registers to sensor (Bit 0, auto clear) */
662 reg_w(gspca_dev, 0x11, 0x01);
327} 663}
328 664
329/* this function is called at open time */ 665/* this function is called at probe and resume time */
330static int sd_open(struct gspca_dev *gspca_dev) 666static int sd_init(struct gspca_dev *gspca_dev)
331{ 667{
332 reg_w(gspca_dev, 0x78, 0x00); /* Turn on LED */ 668 struct sd *sd = (struct sd *) gspca_dev;
669
670 if (sd->sensor == SENSOR_PAC7302)
671 reg_w_seq(gspca_dev, init_7302, sizeof init_7302);
672 else
673 reg_w_seq(gspca_dev, init_7311, sizeof init_7311);
674
333 return 0; 675 return 0;
334} 676}
335 677
336static void sd_start(struct gspca_dev *gspca_dev) 678static void sd_start(struct gspca_dev *gspca_dev)
337{ 679{
338 reg_w(gspca_dev, 0xff, 0x01); 680 struct sd *sd = (struct sd *) gspca_dev;
339 reg_w_buf(gspca_dev, 0x0002, "\x48\x0a\x40\x08\x00\x00\x08\x00", 8);
340 reg_w_buf(gspca_dev, 0x000a, "\x06\xff\x11\xff\x5a\x30\x90\x4c", 8);
341 reg_w_buf(gspca_dev, 0x0012, "\x00\x07\x00\x0a\x10\x00\xa0\x10", 8);
342 reg_w_buf(gspca_dev, 0x001a, "\x02\x00\x00\x00\x00\x0b\x01\x00", 8);
343 reg_w_buf(gspca_dev, 0x0022, "\x00\x00\x00\x00\x00\x00\x00\x00", 8);
344 reg_w_buf(gspca_dev, 0x002a, "\x00\x00\x00", 3);
345 reg_w_buf(gspca_dev, 0x003e, "\x00\x00\x78\x52\x4a\x52\x78\x6e", 8);
346 reg_w_buf(gspca_dev, 0x0046, "\x48\x46\x48\x6e\x5f\x49\x42\x49", 8);
347 reg_w_buf(gspca_dev, 0x004e, "\x5f\x5f\x49\x42\x49\x5f\x6e\x48", 8);
348 reg_w_buf(gspca_dev, 0x0056, "\x46\x48\x6e\x78\x52\x4a\x52\x78", 8);
349 reg_w_buf(gspca_dev, 0x005e, "\x00\x00\x09\x1b\x34\x49\x5c\x9b", 8);
350 reg_w_buf(gspca_dev, 0x0066, "\xd0\xff", 2);
351 reg_w_buf(gspca_dev, 0x0078, "\x44\x00\xf2\x01\x01\x80", 6);
352 reg_w_buf(gspca_dev, 0x007f, "\x2a\x1c\x00\xc8\x02\x58\x03\x84", 8);
353 reg_w_buf(gspca_dev, 0x0087, "\x12\x00\x1a\x04\x08\x0c\x10\x14", 8);
354 reg_w_buf(gspca_dev, 0x008f, "\x18\x20", 2);
355 reg_w_buf(gspca_dev, 0x0096, "\x01\x08\x04", 3);
356 reg_w_buf(gspca_dev, 0x00a0, "\x44\x44\x44\x04", 4);
357 reg_w_buf(gspca_dev, 0x00f0, "\x01\x00\x00\x00\x22\x00\x20\x00", 8);
358 reg_w_buf(gspca_dev, 0x00f8, "\x3f\x00\x0a\x01\x00", 5);
359 681
360 reg_w(gspca_dev, 0xff, 0x04); 682 sd->sof_read = 0;
361 reg_w(gspca_dev, 0x02, 0x04); 683
362 reg_w(gspca_dev, 0x03, 0x54); 684 if (sd->sensor == SENSOR_PAC7302) {
363 reg_w(gspca_dev, 0x04, 0x07); 685 reg_w_var(gspca_dev, start_7302);
364 reg_w(gspca_dev, 0x05, 0x2b); 686 setbrightcont(gspca_dev);
365 reg_w(gspca_dev, 0x06, 0x09); 687 setcolors(gspca_dev);
366 reg_w(gspca_dev, 0x07, 0x0f); 688 } else {
367 reg_w(gspca_dev, 0x08, 0x09); 689 reg_w_var(gspca_dev, start_7311);
368 reg_w(gspca_dev, 0x09, 0x00); 690 setcontrast(gspca_dev);
369 reg_w(gspca_dev, 0x0c, 0x07); 691 }
370 reg_w(gspca_dev, 0x0d, 0x00); 692 setgain(gspca_dev);
371 reg_w(gspca_dev, 0x0e, 0x00); 693 setexposure(gspca_dev);
372 reg_w(gspca_dev, 0x0f, 0x62); 694 sethvflip(gspca_dev);
373 reg_w(gspca_dev, 0x10, 0x08);
374 reg_w(gspca_dev, 0x12, 0x07);
375 reg_w(gspca_dev, 0x13, 0x00);
376 reg_w(gspca_dev, 0x14, 0x00);
377 reg_w(gspca_dev, 0x15, 0x00);
378 reg_w(gspca_dev, 0x16, 0x00);
379 reg_w(gspca_dev, 0x17, 0x00);
380 reg_w(gspca_dev, 0x18, 0x00);
381 reg_w(gspca_dev, 0x19, 0x00);
382 reg_w(gspca_dev, 0x1a, 0x00);
383 reg_w(gspca_dev, 0x1b, 0x03);
384 reg_w(gspca_dev, 0x1c, 0xa0);
385 reg_w(gspca_dev, 0x1d, 0x01);
386 reg_w(gspca_dev, 0x1e, 0xf4);
387 reg_w(gspca_dev, 0x21, 0x00);
388 reg_w(gspca_dev, 0x22, 0x08);
389 reg_w(gspca_dev, 0x24, 0x03);
390 reg_w(gspca_dev, 0x26, 0x00);
391 reg_w(gspca_dev, 0x27, 0x01);
392 reg_w(gspca_dev, 0x28, 0xca);
393 reg_w(gspca_dev, 0x29, 0x10);
394 reg_w(gspca_dev, 0x2a, 0x06);
395 reg_w(gspca_dev, 0x2b, 0x78);
396 reg_w(gspca_dev, 0x2c, 0x00);
397 reg_w(gspca_dev, 0x2d, 0x00);
398 reg_w(gspca_dev, 0x2e, 0x00);
399 reg_w(gspca_dev, 0x2f, 0x00);
400 reg_w(gspca_dev, 0x30, 0x23);
401 reg_w(gspca_dev, 0x31, 0x28);
402 reg_w(gspca_dev, 0x32, 0x04);
403 reg_w(gspca_dev, 0x33, 0x11);
404 reg_w(gspca_dev, 0x34, 0x00);
405 reg_w(gspca_dev, 0x35, 0x00);
406 reg_w(gspca_dev, 0x11, 0x01);
407 setcontrast(gspca_dev);
408 setbrightness(gspca_dev);
409 setcolors(gspca_dev);
410 setautogain(gspca_dev);
411 695
412 /* set correct resolution */ 696 /* set correct resolution */
413 switch (gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv) { 697 switch (gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv) {
414 case 2: /* 160x120 */ 698 case 2: /* 160x120 pac7311 */
415 reg_w(gspca_dev, 0xff, 0x04);
416 reg_w(gspca_dev, 0x02, 0x03);
417 reg_w(gspca_dev, 0xff, 0x01); 699 reg_w(gspca_dev, 0xff, 0x01);
418 reg_w(gspca_dev, 0x08, 0x09);
419 reg_w(gspca_dev, 0x17, 0x20); 700 reg_w(gspca_dev, 0x17, 0x20);
420 reg_w(gspca_dev, 0x1b, 0x00);
421/* reg_w(gspca_dev, 0x80, 0x69); */
422 reg_w(gspca_dev, 0x87, 0x10); 701 reg_w(gspca_dev, 0x87, 0x10);
423 break; 702 break;
424 case 1: /* 320x240 */ 703 case 1: /* 320x240 pac7311 */
425 reg_w(gspca_dev, 0xff, 0x04);
426 reg_w(gspca_dev, 0x02, 0x03);
427 reg_w(gspca_dev, 0xff, 0x01); 704 reg_w(gspca_dev, 0xff, 0x01);
428 reg_w(gspca_dev, 0x08, 0x09);
429 reg_w(gspca_dev, 0x17, 0x30); 705 reg_w(gspca_dev, 0x17, 0x30);
430/* reg_w(gspca_dev, 0x80, 0x3f); */
431 reg_w(gspca_dev, 0x87, 0x11); 706 reg_w(gspca_dev, 0x87, 0x11);
432 break; 707 break;
433 case 0: /* 640x480 */ 708 case 0: /* 640x480 */
434 reg_w(gspca_dev, 0xff, 0x04); 709 if (sd->sensor == SENSOR_PAC7302)
435 reg_w(gspca_dev, 0x02, 0x03); 710 break;
436 reg_w(gspca_dev, 0xff, 0x01); 711 reg_w(gspca_dev, 0xff, 0x01);
437 reg_w(gspca_dev, 0x08, 0x08);
438 reg_w(gspca_dev, 0x17, 0x00); 712 reg_w(gspca_dev, 0x17, 0x00);
439/* reg_w(gspca_dev, 0x80, 0x1c); */
440 reg_w(gspca_dev, 0x87, 0x12); 713 reg_w(gspca_dev, 0x87, 0x12);
441 break; 714 break;
442 } 715 }
443 716
717 sd->sof_read = 0;
718 sd->autogain_ignore_frames = 0;
719 atomic_set(&sd->avg_lum, -1);
720
444 /* start stream */ 721 /* start stream */
445 reg_w(gspca_dev, 0xff, 0x01); 722 reg_w(gspca_dev, 0xff, 0x01);
446 reg_w(gspca_dev, 0x78, 0x04); 723 if (sd->sensor == SENSOR_PAC7302)
447 reg_w(gspca_dev, 0x78, 0x05); 724 reg_w(gspca_dev, 0x78, 0x01);
725 else
726 reg_w(gspca_dev, 0x78, 0x05);
448} 727}
449 728
450static void sd_stopN(struct gspca_dev *gspca_dev) 729static void sd_stopN(struct gspca_dev *gspca_dev)
451{ 730{
731 struct sd *sd = (struct sd *) gspca_dev;
732
733 if (sd->sensor == SENSOR_PAC7302) {
734 reg_w(gspca_dev, 0xff, 0x01);
735 reg_w(gspca_dev, 0x78, 0x00);
736 reg_w(gspca_dev, 0x78, 0x00);
737 return;
738 }
452 reg_w(gspca_dev, 0xff, 0x04); 739 reg_w(gspca_dev, 0xff, 0x04);
453 reg_w(gspca_dev, 0x27, 0x80); 740 reg_w(gspca_dev, 0x27, 0x80);
454 reg_w(gspca_dev, 0x28, 0xca); 741 reg_w(gspca_dev, 0x28, 0xca);
@@ -456,187 +743,147 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
456 reg_w(gspca_dev, 0x2a, 0x0e); 743 reg_w(gspca_dev, 0x2a, 0x0e);
457 reg_w(gspca_dev, 0xff, 0x01); 744 reg_w(gspca_dev, 0xff, 0x01);
458 reg_w(gspca_dev, 0x3e, 0x20); 745 reg_w(gspca_dev, 0x3e, 0x20);
459 reg_w(gspca_dev, 0x78, 0x04); /* Bit_0=start stream, Bit_7=LED */ 746 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */
460 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */ 747 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */
461 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */ 748 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_6=LED */
462} 749}
463 750
464static void sd_stop0(struct gspca_dev *gspca_dev) 751static void sd_stop0(struct gspca_dev *gspca_dev)
465{ 752{
466} 753 struct sd *sd = (struct sd *) gspca_dev;
467 754
468/* this function is called at close time */ 755 if (sd->sensor == SENSOR_PAC7302) {
469static void sd_close(struct gspca_dev *gspca_dev) 756 reg_w(gspca_dev, 0xff, 0x01);
470{ 757 reg_w(gspca_dev, 0x78, 0x40);
471 reg_w(gspca_dev, 0xff, 0x04); 758 }
472 reg_w(gspca_dev, 0x27, 0x80);
473 reg_w(gspca_dev, 0x28, 0xca);
474 reg_w(gspca_dev, 0x29, 0x53);
475 reg_w(gspca_dev, 0x2a, 0x0e);
476 reg_w(gspca_dev, 0xff, 0x01);
477 reg_w(gspca_dev, 0x3e, 0x20);
478 reg_w(gspca_dev, 0x78, 0x04); /* Bit_0=start stream, Bit_7=LED */
479 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */
480 reg_w(gspca_dev, 0x78, 0x44); /* Bit_0=start stream, Bit_7=LED */
481} 759}
482 760
761/* Include pac common sof detection functions */
762#include "pac_common.h"
763
483static void do_autogain(struct gspca_dev *gspca_dev) 764static void do_autogain(struct gspca_dev *gspca_dev)
484{ 765{
485 struct sd *sd = (struct sd *) gspca_dev; 766 struct sd *sd = (struct sd *) gspca_dev;
486 int luma; 767 int avg_lum = atomic_read(&sd->avg_lum);
487 int luma_mean = 128; 768 int desired_lum, deadzone;
488 int luma_delta = 20;
489 __u8 spring = 5;
490 int Gbright;
491 769
492 if (!atomic_read(&sd->do_gain)) 770 if (avg_lum == -1)
493 return; 771 return;
494 atomic_set(&sd->do_gain, 0); 772
495 773 if (sd->sensor == SENSOR_PAC7302) {
496 luma = atomic_read(&sd->avg_lum); 774 desired_lum = 270 + sd->brightness * 4;
497 Gbright = reg_r(gspca_dev, 0x02); 775 /* Hack hack, with the 7202 the first exposure step is
498 PDEBUG(D_FRAM, "luma mean %d", luma); 776 pretty large, so if we're about to make the first
499 if (luma < luma_mean - luma_delta || 777 exposure increase make the deadzone large to avoid
500 luma > luma_mean + luma_delta) { 778 oscilating */
501 Gbright += (luma_mean - luma) >> spring; 779 if (desired_lum > avg_lum && sd->gain == GAIN_DEF &&
502 if (Gbright > 0x1a) 780 sd->exposure > EXPOSURE_DEF &&
503 Gbright = 0x1a; 781 sd->exposure < 42)
504 else if (Gbright < 4) 782 deadzone = 90;
505 Gbright = 4; 783 else
506 PDEBUG(D_FRAM, "gbright %d", Gbright); 784 deadzone = 30;
507 reg_w(gspca_dev, 0xff, 0x04); 785 } else {
508 reg_w(gspca_dev, 0x0f, Gbright); 786 desired_lum = 200;
509 /* load registers to sensor (Bit 0, auto clear) */ 787 deadzone = 20;
510 reg_w(gspca_dev, 0x11, 0x01);
511 } 788 }
789
790 if (sd->autogain_ignore_frames > 0)
791 sd->autogain_ignore_frames--;
792 else if (gspca_auto_gain_n_exposure(gspca_dev, avg_lum, desired_lum,
793 deadzone, GAIN_KNEE, EXPOSURE_KNEE))
794 sd->autogain_ignore_frames = PAC_AUTOGAIN_IGNORE_FRAMES;
512} 795}
513 796
797static const unsigned char pac7311_jpeg_header1[] = {
798 0xff, 0xd8, 0xff, 0xc0, 0x00, 0x11, 0x08
799};
800
801static const unsigned char pac7311_jpeg_header2[] = {
802 0x03, 0x01, 0x21, 0x00, 0x02, 0x11, 0x01, 0x03, 0x11, 0x01, 0xff, 0xda,
803 0x00, 0x0c, 0x03, 0x01, 0x00, 0x02, 0x11, 0x03, 0x11, 0x00, 0x3f, 0x00
804};
805
806/* this function is run at interrupt level */
514static void sd_pkt_scan(struct gspca_dev *gspca_dev, 807static void sd_pkt_scan(struct gspca_dev *gspca_dev,
515 struct gspca_frame *frame, /* target */ 808 struct gspca_frame *frame, /* target */
516 __u8 *data, /* isoc packet */ 809 __u8 *data, /* isoc packet */
517 int len) /* iso packet length */ 810 int len) /* iso packet length */
518{ 811{
519 struct sd *sd = (struct sd *) gspca_dev; 812 struct sd *sd = (struct sd *) gspca_dev;
520 unsigned char tmpbuf[4]; 813 unsigned char *sof;
521 int i, p, ffseq; 814
522 815 sof = pac_find_sof(gspca_dev, data, len);
523/* if (len < 5) { */ 816 if (sof) {
524 if (len < 6) { 817 unsigned char tmpbuf[4];
525/* gspca_dev->last_packet_type = DISCARD_PACKET; */ 818 int n, lum_offset, footer_length;
526 return; 819
527 } 820 if (sd->sensor == SENSOR_PAC7302) {
528 821 /* 6 bytes after the FF D9 EOF marker a number of lumination
529 ffseq = sd->ffseq; 822 bytes are send corresponding to different parts of the
530 823 image, the 14th and 15th byte after the EOF seem to
531 for (p = 0; p < len - 6; p++) { 824 correspond to the center of the image */
532 if ((data[0 + p] == 0xff) 825 lum_offset = 61 + sizeof pac_sof_marker;
533 && (data[1 + p] == 0xff) 826 footer_length = 74;
534 && (data[2 + p] == 0x00) 827 } else {
535 && (data[3 + p] == 0xff) 828 lum_offset = 24 + sizeof pac_sof_marker;
536 && (data[4 + p] == 0x96)) { 829 footer_length = 26;
537 830 }
538 /* start of frame */
539 if (sd->ag_cnt >= 0 && p > 28) {
540 sd->lum_sum += data[p - 23];
541 if (--sd->ag_cnt < 0) {
542 sd->ag_cnt = AG_CNT_START;
543 atomic_set(&sd->avg_lum,
544 sd->lum_sum / AG_CNT_START);
545 sd->lum_sum = 0;
546 atomic_set(&sd->do_gain, 1);
547 }
548 }
549 831
550 /* copy the end of data to the current frame */ 832 /* Finish decoding current frame */
833 n = (sof - data) - (footer_length + sizeof pac_sof_marker);
834 if (n < 0) {
835 frame->data_end += n;
836 n = 0;
837 }
838 frame = gspca_frame_add(gspca_dev, INTER_PACKET, frame,
839 data, n);
840 if (gspca_dev->last_packet_type != DISCARD_PACKET &&
841 frame->data_end[-2] == 0xff &&
842 frame->data_end[-1] == 0xd9)
551 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, 843 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame,
552 data, p); 844 NULL, 0);
553 845
554 /* put the JPEG header in the new frame */ 846 n = sof - data;
555 gspca_frame_add(gspca_dev, FIRST_PACKET, frame, 847 len -= n;
556 (unsigned char *) pac7311_jpeg_header, 848 data = sof;
557 12); 849
850 /* Get average lumination */
851 if (gspca_dev->last_packet_type == LAST_PACKET &&
852 n >= lum_offset)
853 atomic_set(&sd->avg_lum, data[-lum_offset] +
854 data[-lum_offset + 1]);
855 else
856 atomic_set(&sd->avg_lum, -1);
857
858 /* Start the new frame with the jpeg header */
859 gspca_frame_add(gspca_dev, FIRST_PACKET, frame,
860 pac7311_jpeg_header1, sizeof(pac7311_jpeg_header1));
861 if (sd->sensor == SENSOR_PAC7302) {
862 /* The PAC7302 has the image rotated 90 degrees */
863 tmpbuf[0] = gspca_dev->width >> 8;
864 tmpbuf[1] = gspca_dev->width & 0xff;
865 tmpbuf[2] = gspca_dev->height >> 8;
866 tmpbuf[3] = gspca_dev->height & 0xff;
867 } else {
558 tmpbuf[0] = gspca_dev->height >> 8; 868 tmpbuf[0] = gspca_dev->height >> 8;
559 tmpbuf[1] = gspca_dev->height & 0xff; 869 tmpbuf[1] = gspca_dev->height & 0xff;
560 tmpbuf[2] = gspca_dev->width >> 8; 870 tmpbuf[2] = gspca_dev->width >> 8;
561 tmpbuf[3] = gspca_dev->width & 0xff; 871 tmpbuf[3] = gspca_dev->width & 0xff;
562 gspca_frame_add(gspca_dev, INTER_PACKET, frame,
563 tmpbuf, 4);
564 gspca_frame_add(gspca_dev, INTER_PACKET, frame,
565 (unsigned char *) &pac7311_jpeg_header[16],
566 PAC7311_JPEG_HEADER_SIZE - 16);
567
568 data += p + 7;
569 len -= p + 7;
570 ffseq = 0;
571 break;
572 } 872 }
873 gspca_frame_add(gspca_dev, INTER_PACKET, frame, tmpbuf, 4);
874 gspca_frame_add(gspca_dev, INTER_PACKET, frame,
875 pac7311_jpeg_header2, sizeof(pac7311_jpeg_header2));
573 } 876 }
574
575 /* remove the 'ff ff ff xx' sequences */
576 switch (ffseq) {
577 case 3:
578 data += 1;
579 len -= 1;
580 break;
581 case 2:
582 if (data[0] == 0xff) {
583 data += 2;
584 len -= 2;
585 frame->data_end -= 2;
586 }
587 break;
588 case 1:
589 if (data[0] == 0xff
590 && data[1] == 0xff) {
591 data += 3;
592 len -= 3;
593 frame->data_end -= 1;
594 }
595 break;
596 }
597 for (i = 0; i < len - 4; i++) {
598 if (data[i] == 0xff
599 && data[i + 1] == 0xff
600 && data[i + 2] == 0xff) {
601 memmove(&data[i], &data[i + 4], len - i - 4);
602 len -= 4;
603 }
604 }
605 ffseq = 0;
606 if (data[len - 4] == 0xff) {
607 if (data[len - 3] == 0xff
608 && data[len - 2] == 0xff) {
609 len -= 4;
610 }
611 } else if (data[len - 3] == 0xff) {
612 if (data[len - 2] == 0xff
613 && data[len - 1] == 0xff)
614 ffseq = 3;
615 } else if (data[len - 2] == 0xff) {
616 if (data[len - 1] == 0xff)
617 ffseq = 2;
618 } else if (data[len - 1] == 0xff)
619 ffseq = 1;
620 sd->ffseq = ffseq;
621 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); 877 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
622} 878}
623 879
624static void getbrightness(struct gspca_dev *gspca_dev)
625{
626/* sd->brightness = reg_r(gspca_dev, 0x08);
627 return sd->brightness; */
628/* PDEBUG(D_CONF, "Called pac7311_getbrightness: Not implemented yet"); */
629}
630
631
632
633static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val) 880static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val)
634{ 881{
635 struct sd *sd = (struct sd *) gspca_dev; 882 struct sd *sd = (struct sd *) gspca_dev;
636 883
637 sd->brightness = val; 884 sd->brightness = val;
638 if (gspca_dev->streaming) 885 if (gspca_dev->streaming)
639 setbrightness(gspca_dev); 886 setbrightcont(gspca_dev);
640 return 0; 887 return 0;
641} 888}
642 889
@@ -644,7 +891,6 @@ static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val)
644{ 891{
645 struct sd *sd = (struct sd *) gspca_dev; 892 struct sd *sd = (struct sd *) gspca_dev;
646 893
647 getbrightness(gspca_dev);
648 *val = sd->brightness; 894 *val = sd->brightness;
649 return 0; 895 return 0;
650} 896}
@@ -654,8 +900,12 @@ static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
654 struct sd *sd = (struct sd *) gspca_dev; 900 struct sd *sd = (struct sd *) gspca_dev;
655 901
656 sd->contrast = val; 902 sd->contrast = val;
657 if (gspca_dev->streaming) 903 if (gspca_dev->streaming) {
658 setcontrast(gspca_dev); 904 if (sd->sensor == SENSOR_PAC7302)
905 setbrightcont(gspca_dev);
906 else
907 setcontrast(gspca_dev);
908 }
659 return 0; 909 return 0;
660} 910}
661 911
@@ -663,7 +913,6 @@ static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val)
663{ 913{
664 struct sd *sd = (struct sd *) gspca_dev; 914 struct sd *sd = (struct sd *) gspca_dev;
665 915
666/* getcontrast(gspca_dev); */
667 *val = sd->contrast; 916 *val = sd->contrast;
668 return 0; 917 return 0;
669} 918}
@@ -682,18 +931,66 @@ static int sd_getcolors(struct gspca_dev *gspca_dev, __s32 *val)
682{ 931{
683 struct sd *sd = (struct sd *) gspca_dev; 932 struct sd *sd = (struct sd *) gspca_dev;
684 933
685/* getcolors(gspca_dev); */
686 *val = sd->colors; 934 *val = sd->colors;
687 return 0; 935 return 0;
688} 936}
689 937
938static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val)
939{
940 struct sd *sd = (struct sd *) gspca_dev;
941
942 sd->gain = val;
943 if (gspca_dev->streaming)
944 setgain(gspca_dev);
945 return 0;
946}
947
948static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val)
949{
950 struct sd *sd = (struct sd *) gspca_dev;
951
952 *val = sd->gain;
953 return 0;
954}
955
956static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val)
957{
958 struct sd *sd = (struct sd *) gspca_dev;
959
960 sd->exposure = val;
961 if (gspca_dev->streaming)
962 setexposure(gspca_dev);
963 return 0;
964}
965
966static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val)
967{
968 struct sd *sd = (struct sd *) gspca_dev;
969
970 *val = sd->exposure;
971 return 0;
972}
973
690static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val) 974static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val)
691{ 975{
692 struct sd *sd = (struct sd *) gspca_dev; 976 struct sd *sd = (struct sd *) gspca_dev;
693 977
694 sd->autogain = val; 978 sd->autogain = val;
695 if (gspca_dev->streaming) 979 /* when switching to autogain set defaults to make sure
696 setautogain(gspca_dev); 980 we are on a valid point of the autogain gain /
981 exposure knee graph, and give this change time to
982 take effect before doing autogain. */
983 if (sd->autogain) {
984 sd->exposure = EXPOSURE_DEF;
985 sd->gain = GAIN_DEF;
986 if (gspca_dev->streaming) {
987 sd->autogain_ignore_frames =
988 PAC_AUTOGAIN_IGNORE_FRAMES;
989 setexposure(gspca_dev);
990 setgain(gspca_dev);
991 }
992 }
993
697 return 0; 994 return 0;
698} 995}
699 996
@@ -705,30 +1002,67 @@ static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val)
705 return 0; 1002 return 0;
706} 1003}
707 1004
1005static int sd_sethflip(struct gspca_dev *gspca_dev, __s32 val)
1006{
1007 struct sd *sd = (struct sd *) gspca_dev;
1008
1009 sd->hflip = val;
1010 if (gspca_dev->streaming)
1011 sethvflip(gspca_dev);
1012 return 0;
1013}
1014
1015static int sd_gethflip(struct gspca_dev *gspca_dev, __s32 *val)
1016{
1017 struct sd *sd = (struct sd *) gspca_dev;
1018
1019 *val = sd->hflip;
1020 return 0;
1021}
1022
1023static int sd_setvflip(struct gspca_dev *gspca_dev, __s32 val)
1024{
1025 struct sd *sd = (struct sd *) gspca_dev;
1026
1027 sd->vflip = val;
1028 if (gspca_dev->streaming)
1029 sethvflip(gspca_dev);
1030 return 0;
1031}
1032
1033static int sd_getvflip(struct gspca_dev *gspca_dev, __s32 *val)
1034{
1035 struct sd *sd = (struct sd *) gspca_dev;
1036
1037 *val = sd->vflip;
1038 return 0;
1039}
1040
708/* sub-driver description */ 1041/* sub-driver description */
709static struct sd_desc sd_desc = { 1042static struct sd_desc sd_desc = {
710 .name = MODULE_NAME, 1043 .name = MODULE_NAME,
711 .ctrls = sd_ctrls, 1044 .ctrls = sd_ctrls,
712 .nctrls = ARRAY_SIZE(sd_ctrls), 1045 .nctrls = ARRAY_SIZE(sd_ctrls),
713 .config = sd_config, 1046 .config = sd_config,
714 .open = sd_open, 1047 .init = sd_init,
715 .start = sd_start, 1048 .start = sd_start,
716 .stopN = sd_stopN, 1049 .stopN = sd_stopN,
717 .stop0 = sd_stop0, 1050 .stop0 = sd_stop0,
718 .close = sd_close,
719 .pkt_scan = sd_pkt_scan, 1051 .pkt_scan = sd_pkt_scan,
720 .dq_callback = do_autogain, 1052 .dq_callback = do_autogain,
721}; 1053};
722 1054
723/* -- module initialisation -- */ 1055/* -- module initialisation -- */
724static __devinitdata struct usb_device_id device_table[] = { 1056static __devinitdata struct usb_device_id device_table[] = {
725 {USB_DEVICE(0x093a, 0x2600)}, 1057 {USB_DEVICE(0x093a, 0x2600), .driver_info = SENSOR_PAC7311},
726 {USB_DEVICE(0x093a, 0x2601)}, 1058 {USB_DEVICE(0x093a, 0x2601), .driver_info = SENSOR_PAC7311},
727 {USB_DEVICE(0x093a, 0x2603)}, 1059 {USB_DEVICE(0x093a, 0x2603), .driver_info = SENSOR_PAC7311},
728 {USB_DEVICE(0x093a, 0x2608)}, 1060 {USB_DEVICE(0x093a, 0x2608), .driver_info = SENSOR_PAC7311},
729 {USB_DEVICE(0x093a, 0x260e)}, 1061 {USB_DEVICE(0x093a, 0x260e), .driver_info = SENSOR_PAC7311},
730 {USB_DEVICE(0x093a, 0x260f)}, 1062 {USB_DEVICE(0x093a, 0x260f), .driver_info = SENSOR_PAC7311},
731 {USB_DEVICE(0x093a, 0x2621)}, 1063 {USB_DEVICE(0x093a, 0x2621), .driver_info = SENSOR_PAC7302},
1064 {USB_DEVICE(0x093a, 0x2624), .driver_info = SENSOR_PAC7302},
1065 {USB_DEVICE(0x093a, 0x2626), .driver_info = SENSOR_PAC7302},
732 {} 1066 {}
733}; 1067};
734MODULE_DEVICE_TABLE(usb, device_table); 1068MODULE_DEVICE_TABLE(usb, device_table);
@@ -746,6 +1080,10 @@ static struct usb_driver sd_driver = {
746 .id_table = device_table, 1080 .id_table = device_table,
747 .probe = sd_probe, 1081 .probe = sd_probe,
748 .disconnect = gspca_disconnect, 1082 .disconnect = gspca_disconnect,
1083#ifdef CONFIG_PM
1084 .suspend = gspca_suspend,
1085 .resume = gspca_resume,
1086#endif
749}; 1087};
750 1088
751/* -- module insert / remove -- */ 1089/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/pac_common.h b/drivers/media/video/gspca/pac_common.h
new file mode 100644
index 000000000000..34d4b1494cd5
--- /dev/null
+++ b/drivers/media/video/gspca/pac_common.h
@@ -0,0 +1,60 @@
1/*
2 * Pixart PAC207BCA / PAC73xx common functions
3 *
4 * Copyright (C) 2008 Hans de Goede <j.w.r.degoede@hhs.nl>
5 * Copyright (C) 2005 Thomas Kaiser thomas@kaiser-linux.li
6 * Copyleft (C) 2005 Michel Xhaard mxhaard@magic.fr
7 *
8 * V4L2 by Jean-Francois Moine <http://moinejf.free.fr>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 *
24 */
25
26/* We calculate the autogain at the end of the transfer of a frame, at this
27 moment a frame with the old settings is being transmitted, and a frame is
28 being captured with the old settings. So if we adjust the autogain we must
29 ignore atleast the 2 next frames for the new settings to come into effect
30 before doing any other adjustments */
31#define PAC_AUTOGAIN_IGNORE_FRAMES 3
32
33static const unsigned char pac_sof_marker[5] =
34 { 0xff, 0xff, 0x00, 0xff, 0x96 };
35
36static unsigned char *pac_find_sof(struct gspca_dev *gspca_dev,
37 unsigned char *m, int len)
38{
39 struct sd *sd = (struct sd *) gspca_dev;
40 int i;
41
42 /* Search for the SOF marker (fixed part) in the header */
43 for (i = 0; i < len; i++) {
44 if (m[i] == pac_sof_marker[sd->sof_read]) {
45 sd->sof_read++;
46 if (sd->sof_read == sizeof(pac_sof_marker)) {
47 PDEBUG(D_FRAM,
48 "SOF found, bytes to analyze: %u."
49 " Frame starts at byte #%u",
50 len, i + 1);
51 sd->sof_read = 0;
52 return m + i + 1;
53 }
54 } else {
55 sd->sof_read = 0;
56 }
57 }
58
59 return NULL;
60}
diff --git a/drivers/media/video/gspca/sonixb.c b/drivers/media/video/gspca/sonixb.c
index 11210c71f66c..5dd78c6766ea 100644
--- a/drivers/media/video/gspca/sonixb.c
+++ b/drivers/media/video/gspca/sonixb.c
@@ -20,6 +20,26 @@
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 */ 21 */
22 22
23/* Some documentation on known sonixb registers:
24
25Reg Use
260x10 high nibble red gain low nibble blue gain
270x11 low nibble green gain
280x12 hstart
290x13 vstart
300x15 hsize (hsize = register-value * 16)
310x16 vsize (vsize = register-value * 16)
320x17 bit 0 toggle compression quality (according to sn9c102 driver)
330x18 bit 7 enables compression, bit 4-5 set image down scaling:
34 00 scale 1, 01 scale 1/2, 10, scale 1/4
350x19 high-nibble is sensor clock divider, changes exposure on sensors which
36 use a clock generated by the bridge. Some sensors have their own clock.
370x1c auto_exposure area (for avg_lum) startx (startx = register-value * 32)
380x1d auto_exposure area (for avg_lum) starty (starty = register-value * 32)
390x1e auto_exposure area (for avg_lum) stopx (hsize = (0x1e - 0x1c) * 32)
400x1f auto_exposure area (for avg_lum) stopy (vsize = (0x1f - 0x1d) * 32)
41*/
42
23#define MODULE_NAME "sonixb" 43#define MODULE_NAME "sonixb"
24 44
25#include "gspca.h" 45#include "gspca.h"
@@ -31,10 +51,8 @@ MODULE_LICENSE("GPL");
31/* specific webcam descriptor */ 51/* specific webcam descriptor */
32struct sd { 52struct sd {
33 struct gspca_dev gspca_dev; /* !! must be the first item */ 53 struct gspca_dev gspca_dev; /* !! must be the first item */
34
35 struct sd_desc sd_desc; /* our nctrls differ dependend upon the
36 sensor, so we use a per cam copy */
37 atomic_t avg_lum; 54 atomic_t avg_lum;
55 int prev_avg_lum;
38 56
39 unsigned char gain; 57 unsigned char gain;
40 unsigned char exposure; 58 unsigned char exposure;
@@ -44,8 +62,12 @@ struct sd {
44 unsigned char frames_to_drop; 62 unsigned char frames_to_drop;
45 unsigned char freq; /* light freq filter setting */ 63 unsigned char freq; /* light freq filter setting */
46 64
47 unsigned char fr_h_sz; /* size of frame header */ 65 __u8 bridge; /* Type of bridge */
48 char sensor; /* Type of image sensor chip */ 66#define BRIDGE_101 0
67#define BRIDGE_102 0 /* We make no difference between 101 and 102 */
68#define BRIDGE_103 1
69
70 __u8 sensor; /* Type of image sensor chip */
49#define SENSOR_HV7131R 0 71#define SENSOR_HV7131R 0
50#define SENSOR_OV6650 1 72#define SENSOR_OV6650 1
51#define SENSOR_OV7630 2 73#define SENSOR_OV7630 2
@@ -53,16 +75,35 @@ struct sd {
53#define SENSOR_PAS202 4 75#define SENSOR_PAS202 4
54#define SENSOR_TAS5110 5 76#define SENSOR_TAS5110 5
55#define SENSOR_TAS5130CXX 6 77#define SENSOR_TAS5130CXX 6
56 char sensor_has_gain;
57 __u8 sensor_addr;
58 __u8 reg11; 78 __u8 reg11;
59}; 79};
60 80
61/* flags used in the device id table */ 81typedef const __u8 sensor_init_t[8];
82
83struct sensor_data {
84 const __u8 *bridge_init[2];
85 int bridge_init_size[2];
86 sensor_init_t *sensor_init;
87 int sensor_init_size;
88 sensor_init_t *sensor_bridge_init[2];
89 int sensor_bridge_init_size[2];
90 int flags;
91 unsigned ctrl_dis;
92 __u8 sensor_addr;
93};
94
95/* sensor_data flags */
62#define F_GAIN 0x01 /* has gain */ 96#define F_GAIN 0x01 /* has gain */
63#define F_AUTO 0x02 /* has autogain */ 97#define F_SIF 0x02 /* sif or vga */
64#define F_SIF 0x04 /* sif or vga */ 98
65#define F_H18 0x08 /* long (18 b) or short (12 b) frame header */ 99/* priv field of struct v4l2_pix_format flags (do not use low nibble!) */
100#define MODE_RAW 0x10 /* raw bayer mode */
101#define MODE_REDUCED_SIF 0x20 /* vga mode (320x240 / 160x120) on sif cam */
102
103/* ctrl_dis helper macros */
104#define NO_EXPO ((1 << EXPOSURE_IDX) | (1 << AUTOGAIN_IDX))
105#define NO_FREQ (1 << FREQ_IDX)
106#define NO_BRIGHTNESS (1 << BRIGHTNESS_IDX)
66 107
67#define COMP2 0x8f 108#define COMP2 0x8f
68#define COMP 0xc7 /* 0x87 //0x07 */ 109#define COMP 0xc7 /* 0x87 //0x07 */
@@ -73,6 +114,18 @@ struct sd {
73 114
74#define SYS_CLK 0x04 115#define SYS_CLK 0x04
75 116
117#define SENS(bridge_1, bridge_3, sensor, sensor_1, \
118 sensor_3, _flags, _ctrl_dis, _sensor_addr) \
119{ \
120 .bridge_init = { bridge_1, bridge_3 }, \
121 .bridge_init_size = { sizeof(bridge_1), sizeof(bridge_3) }, \
122 .sensor_init = sensor, \
123 .sensor_init_size = sizeof(sensor), \
124 .sensor_bridge_init = { sensor_1, sensor_3,}, \
125 .sensor_bridge_init_size = { sizeof(sensor_1), sizeof(sensor_3)}, \
126 .flags = _flags, .ctrl_dis = _ctrl_dis, .sensor_addr = _sensor_addr \
127}
128
76/* We calculate the autogain at the end of the transfer of a frame, at this 129/* We calculate the autogain at the end of the transfer of a frame, at this
77 moment a frame with the old settings is being transmitted, and a frame is 130 moment a frame with the old settings is being transmitted, and a frame is
78 being captured with the old settings. So if we adjust the autogain we must 131 being captured with the old settings. So if we adjust the autogain we must
@@ -95,6 +148,7 @@ static int sd_setfreq(struct gspca_dev *gspca_dev, __s32 val);
95static int sd_getfreq(struct gspca_dev *gspca_dev, __s32 *val); 148static int sd_getfreq(struct gspca_dev *gspca_dev, __s32 *val);
96 149
97static struct ctrl sd_ctrls[] = { 150static struct ctrl sd_ctrls[] = {
151#define BRIGHTNESS_IDX 0
98 { 152 {
99 { 153 {
100 .id = V4L2_CID_BRIGHTNESS, 154 .id = V4L2_CID_BRIGHTNESS,
@@ -109,6 +163,7 @@ static struct ctrl sd_ctrls[] = {
109 .set = sd_setbrightness, 163 .set = sd_setbrightness,
110 .get = sd_getbrightness, 164 .get = sd_getbrightness,
111 }, 165 },
166#define GAIN_IDX 1
112 { 167 {
113 { 168 {
114 .id = V4L2_CID_GAIN, 169 .id = V4L2_CID_GAIN,
@@ -124,6 +179,7 @@ static struct ctrl sd_ctrls[] = {
124 .set = sd_setgain, 179 .set = sd_setgain,
125 .get = sd_getgain, 180 .get = sd_getgain,
126 }, 181 },
182#define EXPOSURE_IDX 2
127 { 183 {
128 { 184 {
129 .id = V4L2_CID_EXPOSURE, 185 .id = V4L2_CID_EXPOSURE,
@@ -140,6 +196,7 @@ static struct ctrl sd_ctrls[] = {
140 .set = sd_setexposure, 196 .set = sd_setexposure,
141 .get = sd_getexposure, 197 .get = sd_getexposure,
142 }, 198 },
199#define AUTOGAIN_IDX 3
143 { 200 {
144 { 201 {
145 .id = V4L2_CID_AUTOGAIN, 202 .id = V4L2_CID_AUTOGAIN,
@@ -155,6 +212,7 @@ static struct ctrl sd_ctrls[] = {
155 .set = sd_setautogain, 212 .set = sd_setautogain,
156 .get = sd_getautogain, 213 .get = sd_getautogain,
157 }, 214 },
215#define FREQ_IDX 4
158 { 216 {
159 { 217 {
160 .id = V4L2_CID_POWER_LINE_FREQUENCY, 218 .id = V4L2_CID_POWER_LINE_FREQUENCY,
@@ -172,31 +230,56 @@ static struct ctrl sd_ctrls[] = {
172}; 230};
173 231
174static struct v4l2_pix_format vga_mode[] = { 232static struct v4l2_pix_format vga_mode[] = {
233 {160, 120, V4L2_PIX_FMT_SBGGR8, V4L2_FIELD_NONE,
234 .bytesperline = 160,
235 .sizeimage = 160 * 120 * 5 / 4,
236 .colorspace = V4L2_COLORSPACE_SRGB,
237 .priv = 2 | MODE_RAW},
175 {160, 120, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 238 {160, 120, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
176 .bytesperline = 160, 239 .bytesperline = 160,
177 .sizeimage = 160 * 120, 240 .sizeimage = 160 * 120 * 5 / 4,
178 .colorspace = V4L2_COLORSPACE_SRGB, 241 .colorspace = V4L2_COLORSPACE_SRGB,
179 .priv = 2}, 242 .priv = 2},
180 {320, 240, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 243 {320, 240, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
181 .bytesperline = 320, 244 .bytesperline = 320,
182 .sizeimage = 320 * 240, 245 .sizeimage = 320 * 240 * 5 / 4,
183 .colorspace = V4L2_COLORSPACE_SRGB, 246 .colorspace = V4L2_COLORSPACE_SRGB,
184 .priv = 1}, 247 .priv = 1},
185 {640, 480, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 248 {640, 480, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
186 .bytesperline = 640, 249 .bytesperline = 640,
187 .sizeimage = 640 * 480, 250 .sizeimage = 640 * 480 * 5 / 4,
188 .colorspace = V4L2_COLORSPACE_SRGB, 251 .colorspace = V4L2_COLORSPACE_SRGB,
189 .priv = 0}, 252 .priv = 0},
190}; 253};
191static struct v4l2_pix_format sif_mode[] = { 254static struct v4l2_pix_format sif_mode[] = {
255 {160, 120, V4L2_PIX_FMT_SBGGR8, V4L2_FIELD_NONE,
256 .bytesperline = 160,
257 .sizeimage = 160 * 120,
258 .colorspace = V4L2_COLORSPACE_SRGB,
259 .priv = 1 | MODE_RAW | MODE_REDUCED_SIF},
260 {160, 120, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
261 .bytesperline = 160,
262 .sizeimage = 160 * 120 * 5 / 4,
263 .colorspace = V4L2_COLORSPACE_SRGB,
264 .priv = 1 | MODE_REDUCED_SIF},
265 {176, 144, V4L2_PIX_FMT_SBGGR8, V4L2_FIELD_NONE,
266 .bytesperline = 176,
267 .sizeimage = 176 * 144 * 5 / 4,
268 .colorspace = V4L2_COLORSPACE_SRGB,
269 .priv = 1 | MODE_RAW},
192 {176, 144, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 270 {176, 144, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
193 .bytesperline = 176, 271 .bytesperline = 176,
194 .sizeimage = 176 * 144, 272 .sizeimage = 176 * 144 * 5 / 4,
195 .colorspace = V4L2_COLORSPACE_SRGB, 273 .colorspace = V4L2_COLORSPACE_SRGB,
196 .priv = 1}, 274 .priv = 1},
275 {320, 240, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
276 .bytesperline = 320,
277 .sizeimage = 320 * 240 * 5 / 4,
278 .colorspace = V4L2_COLORSPACE_SRGB,
279 .priv = 0 | MODE_REDUCED_SIF},
197 {352, 288, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE, 280 {352, 288, V4L2_PIX_FMT_SN9C10X, V4L2_FIELD_NONE,
198 .bytesperline = 352, 281 .bytesperline = 352,
199 .sizeimage = 352 * 288, 282 .sizeimage = 352 * 288 * 5 / 4,
200 .colorspace = V4L2_COLORSPACE_SRGB, 283 .colorspace = V4L2_COLORSPACE_SRGB,
201 .priv = 0}, 284 .priv = 0},
202}; 285};
@@ -204,7 +287,7 @@ static struct v4l2_pix_format sif_mode[] = {
204static const __u8 initHv7131[] = { 287static const __u8 initHv7131[] = {
205 0x46, 0x77, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00, 0x00, 288 0x46, 0x77, 0x00, 0x04, 0x00, 0x00, 0x00, 0x80, 0x11, 0x00, 0x00, 0x00,
206 0x00, 0x00, 289 0x00, 0x00,
207 0x00, 0x00, 0x00, 0x03, 0x01, 0x00, /* shift from 0x02 0x01 0x00 */ 290 0x00, 0x00, 0x00, 0x02, 0x01, 0x00,
208 0x28, 0x1e, 0x60, 0x8a, 0x20, 291 0x28, 0x1e, 0x60, 0x8a, 0x20,
209 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c 292 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c
210}; 293};
@@ -218,8 +301,8 @@ static const __u8 hv7131_sensor_init[][8] = {
218static const __u8 initOv6650[] = { 301static const __u8 initOv6650[] = {
219 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 302 0x44, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
220 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 303 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 0x00, 0x02, 0x01, 0x0a, 0x16, 0x12, 0x68, 0x0b, 304 0x00, 0x01, 0x01, 0x0a, 0x16, 0x12, 0x68, 0x8b,
222 0x10, 0x1d, 0x10, 0x00, 0x06, 0x1f, 0x00 305 0x10, 0x1d, 0x10, 0x02, 0x02, 0x09, 0x07
223}; 306};
224static const __u8 ov6650_sensor_init[][8] = 307static const __u8 ov6650_sensor_init[][8] =
225{ 308{
@@ -257,15 +340,15 @@ static const __u8 ov6650_sensor_init[][8] =
257static const __u8 initOv7630[] = { 340static const __u8 initOv7630[] = {
258 0x04, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* r01 .. r08 */ 341 0x04, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* r01 .. r08 */
259 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* r09 .. r10 */ 342 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* r09 .. r10 */
260 0x00, 0x02, 0x01, 0x0a, /* r11 .. r14 */ 343 0x00, 0x01, 0x01, 0x0a, /* r11 .. r14 */
261 0x28, 0x1e, /* H & V sizes r15 .. r16 */ 344 0x28, 0x1e, /* H & V sizes r15 .. r16 */
262 0x68, COMP1, MCK_INIT1, /* r17 .. r19 */ 345 0x68, COMP2, MCK_INIT1, /* r17 .. r19 */
263 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c /* r1a .. r1f */ 346 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c /* r1a .. r1f */
264}; 347};
265static const __u8 initOv7630_3[] = { 348static const __u8 initOv7630_3[] = {
266 0x44, 0x44, 0x00, 0x1a, 0x20, 0x20, 0x20, 0x80, /* r01 .. r08 */ 349 0x44, 0x44, 0x00, 0x1a, 0x20, 0x20, 0x20, 0x80, /* r01 .. r08 */
267 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, /* r09 .. r10 */ 350 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, /* r09 .. r10 */
268 0x00, 0x01, 0x01, 0x0a, /* r11 .. r14 */ 351 0x00, 0x02, 0x01, 0x0a, /* r11 .. r14 */
269 0x28, 0x1e, /* H & V sizes r15 .. r16 */ 352 0x28, 0x1e, /* H & V sizes r15 .. r16 */
270 0x68, 0x8f, MCK_INIT1, /* r17 .. r19 */ 353 0x68, 0x8f, MCK_INIT1, /* r17 .. r19 */
271 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c, 0x00, /* r1a .. r20 */ 354 0x1d, 0x10, 0x02, 0x03, 0x0f, 0x0c, 0x00, /* r1a .. r20 */
@@ -294,47 +377,65 @@ static const __u8 ov7630_sensor_init[][8] = {
294 {0xd0, 0x21, 0x17, 0x1c, 0xbd, 0x06, 0xf6, 0x10}, 377 {0xd0, 0x21, 0x17, 0x1c, 0xbd, 0x06, 0xf6, 0x10},
295}; 378};
296 379
380static const __u8 ov7630_sensor_init_3[][8] = {
381 {0xa0, 0x21, 0x13, 0x80, 0x00, 0x00, 0x00, 0x10},
382};
383
297static const __u8 initPas106[] = { 384static const __u8 initPas106[] = {
298 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x40, 0x00, 0x00, 0x00, 385 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x40, 0x00, 0x00, 0x00,
299 0x00, 0x00, 386 0x00, 0x00,
300 0x00, 0x00, 0x00, 0x05, 0x01, 0x00, 387 0x00, 0x00, 0x00, 0x04, 0x01, 0x00,
301 0x16, 0x12, 0x28, COMP1, MCK_INIT1, 388 0x16, 0x12, 0x24, COMP1, MCK_INIT1,
302 0x18, 0x10, 0x04, 0x03, 0x11, 0x0c 389 0x18, 0x10, 0x02, 0x02, 0x09, 0x07
303}; 390};
304/* compression 0x86 mckinit1 0x2b */ 391/* compression 0x86 mckinit1 0x2b */
305static const __u8 pas106_data[][2] = { 392static const __u8 pas106_sensor_init[][8] = {
306 {0x02, 0x04}, /* Pixel Clock Divider 6 */ 393 /* Pixel Clock Divider 6 */
307 {0x03, 0x13}, /* Frame Time MSB */ 394 { 0xa1, 0x40, 0x02, 0x04, 0x00, 0x00, 0x00, 0x14 },
308/* {0x03, 0x12}, * Frame Time MSB */ 395 /* Frame Time MSB (also seen as 0x12) */
309 {0x04, 0x06}, /* Frame Time LSB */ 396 { 0xa1, 0x40, 0x03, 0x13, 0x00, 0x00, 0x00, 0x14 },
310/* {0x04, 0x05}, * Frame Time LSB */ 397 /* Frame Time LSB (also seen as 0x05) */
311 {0x05, 0x65}, /* Shutter Time Line Offset */ 398 { 0xa1, 0x40, 0x04, 0x06, 0x00, 0x00, 0x00, 0x14 },
312/* {0x05, 0x6d}, * Shutter Time Line Offset */ 399 /* Shutter Time Line Offset (also seen as 0x6d) */
313/* {0x06, 0xb1}, * Shutter Time Pixel Offset */ 400 { 0xa1, 0x40, 0x05, 0x65, 0x00, 0x00, 0x00, 0x14 },
314 {0x06, 0xcd}, /* Shutter Time Pixel Offset */ 401 /* Shutter Time Pixel Offset (also seen as 0xb1) */
315 {0x07, 0xc1}, /* Black Level Subtract Sign */ 402 { 0xa1, 0x40, 0x06, 0xcd, 0x00, 0x00, 0x00, 0x14 },
316/* {0x07, 0x00}, * Black Level Subtract Sign */ 403 /* Black Level Subtract Sign (also seen 0x00) */
317 {0x08, 0x06}, /* Black Level Subtract Level */ 404 { 0xa1, 0x40, 0x07, 0xc1, 0x00, 0x00, 0x00, 0x14 },
318 {0x08, 0x06}, /* Black Level Subtract Level */ 405 /* Black Level Subtract Level (also seen 0x01) */
319/* {0x08, 0x01}, * Black Level Subtract Level */ 406 { 0xa1, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0x14 },
320 {0x09, 0x05}, /* Color Gain B Pixel 5 a */ 407 { 0xa1, 0x40, 0x08, 0x06, 0x00, 0x00, 0x00, 0x14 },
321 {0x0a, 0x04}, /* Color Gain G1 Pixel 1 5 */ 408 /* Color Gain B Pixel 5 a */
322 {0x0b, 0x04}, /* Color Gain G2 Pixel 1 0 5 */ 409 { 0xa1, 0x40, 0x09, 0x05, 0x00, 0x00, 0x00, 0x14 },
323 {0x0c, 0x05}, /* Color Gain R Pixel 3 1 */ 410 /* Color Gain G1 Pixel 1 5 */
324 {0x0d, 0x00}, /* Color GainH Pixel */ 411 { 0xa1, 0x40, 0x0a, 0x04, 0x00, 0x00, 0x00, 0x14 },
325 {0x0e, 0x0e}, /* Global Gain */ 412 /* Color Gain G2 Pixel 1 0 5 */
326 {0x0f, 0x00}, /* Contrast */ 413 { 0xa1, 0x40, 0x0b, 0x04, 0x00, 0x00, 0x00, 0x14 },
327 {0x10, 0x06}, /* H&V synchro polarity */ 414 /* Color Gain R Pixel 3 1 */
328 {0x11, 0x06}, /* ?default */ 415 { 0xa1, 0x40, 0x0c, 0x05, 0x00, 0x00, 0x00, 0x14 },
329 {0x12, 0x06}, /* DAC scale */ 416 /* Color GainH Pixel */
330 {0x14, 0x02}, /* ?default */ 417 { 0xa1, 0x40, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x14 },
331 {0x13, 0x01}, /* Validate Settings */ 418 /* Global Gain */
419 { 0xa1, 0x40, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x14 },
420 /* Contrast */
421 { 0xa1, 0x40, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x14 },
422 /* H&V synchro polarity */
423 { 0xa1, 0x40, 0x10, 0x06, 0x00, 0x00, 0x00, 0x14 },
424 /* ?default */
425 { 0xa1, 0x40, 0x11, 0x06, 0x00, 0x00, 0x00, 0x14 },
426 /* DAC scale */
427 { 0xa1, 0x40, 0x12, 0x06, 0x00, 0x00, 0x00, 0x14 },
428 /* ?default */
429 { 0xa1, 0x40, 0x14, 0x02, 0x00, 0x00, 0x00, 0x14 },
430 /* Validate Settings */
431 { 0xa1, 0x40, 0x13, 0x01, 0x00, 0x00, 0x00, 0x14 },
332}; 432};
433
333static const __u8 initPas202[] = { 434static const __u8 initPas202[] = {
334 0x44, 0x44, 0x21, 0x30, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00, 435 0x44, 0x44, 0x21, 0x30, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x00, 0x00,
335 0x00, 0x00, 436 0x00, 0x00,
336 0x00, 0x00, 0x00, 0x07, 0x03, 0x0a, /* 6 */ 437 0x00, 0x00, 0x00, 0x06, 0x03, 0x0a,
337 0x28, 0x1e, 0x28, 0x89, 0x30, 438 0x28, 0x1e, 0x28, 0x89, 0x20,
338 0x00, 0x00, 0x02, 0x03, 0x0f, 0x0c 439 0x00, 0x00, 0x02, 0x03, 0x0f, 0x0c
339}; 440};
340static const __u8 pas202_sensor_init[][8] = { 441static const __u8 pas202_sensor_init[][8] = {
@@ -364,7 +465,7 @@ static const __u8 pas202_sensor_init[][8] = {
364static const __u8 initTas5110[] = { 465static const __u8 initTas5110[] = {
365 0x44, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00, 466 0x44, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00,
366 0x00, 0x00, 467 0x00, 0x00,
367 0x00, 0x01, 0x00, 0x46, 0x09, 0x0a, /* shift from 0x45 0x09 0x0a */ 468 0x00, 0x01, 0x00, 0x45, 0x09, 0x0a,
368 0x16, 0x12, 0x60, 0x86, 0x2b, 469 0x16, 0x12, 0x60, 0x86, 0x2b,
369 0x14, 0x0a, 0x02, 0x02, 0x09, 0x07 470 0x14, 0x0a, 0x02, 0x02, 0x09, 0x07
370}; 471};
@@ -377,7 +478,7 @@ static const __u8 tas5110_sensor_init[][8] = {
377static const __u8 initTas5130[] = { 478static const __u8 initTas5130[] = {
378 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00, 479 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x11, 0x00, 0x00, 0x00,
379 0x00, 0x00, 480 0x00, 0x00,
380 0x00, 0x01, 0x00, 0x69, 0x0c, 0x0a, 481 0x00, 0x01, 0x00, 0x68, 0x0c, 0x0a,
381 0x28, 0x1e, 0x60, COMP, MCK_INIT, 482 0x28, 0x1e, 0x60, COMP, MCK_INIT,
382 0x18, 0x10, 0x04, 0x03, 0x11, 0x0c 483 0x18, 0x10, 0x04, 0x03, 0x11, 0x0c
383}; 484};
@@ -389,6 +490,21 @@ static const __u8 tas5130_sensor_init[][8] = {
389 {0x30, 0x11, 0x02, 0x20, 0x70, 0x00, 0x00, 0x10}, 490 {0x30, 0x11, 0x02, 0x20, 0x70, 0x00, 0x00, 0x10},
390}; 491};
391 492
493struct sensor_data sensor_data[] = {
494SENS(initHv7131, NULL, hv7131_sensor_init, NULL, NULL, 0, NO_EXPO|NO_FREQ, 0),
495SENS(initOv6650, NULL, ov6650_sensor_init, NULL, NULL, F_GAIN|F_SIF, 0, 0x60),
496SENS(initOv7630, initOv7630_3, ov7630_sensor_init, NULL, ov7630_sensor_init_3,
497 F_GAIN, 0, 0x21),
498SENS(initPas106, NULL, pas106_sensor_init, NULL, NULL, F_SIF, NO_EXPO|NO_FREQ,
499 0),
500SENS(initPas202, initPas202, pas202_sensor_init, NULL, NULL, 0,
501 NO_EXPO|NO_FREQ, 0),
502SENS(initTas5110, NULL, tas5110_sensor_init, NULL, NULL, F_GAIN|F_SIF,
503 NO_BRIGHTNESS|NO_FREQ, 0),
504SENS(initTas5130, NULL, tas5130_sensor_init, NULL, NULL, 0, NO_EXPO|NO_FREQ,
505 0),
506};
507
392/* get one byte in gspca_dev->usb_buf */ 508/* get one byte in gspca_dev->usb_buf */
393static void reg_r(struct gspca_dev *gspca_dev, 509static void reg_r(struct gspca_dev *gspca_dev,
394 __u16 value) 510 __u16 value)
@@ -409,7 +525,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
409 int len) 525 int len)
410{ 526{
411#ifdef GSPCA_DEBUG 527#ifdef GSPCA_DEBUG
412 if (len > sizeof gspca_dev->usb_buf) { 528 if (len > USB_BUF_SZ) {
413 PDEBUG(D_ERR|D_PACK, "reg_w: buffer overflow"); 529 PDEBUG(D_ERR|D_PACK, "reg_w: buffer overflow");
414 return; 530 return;
415 } 531 }
@@ -425,26 +541,6 @@ static void reg_w(struct gspca_dev *gspca_dev,
425 500); 541 500);
426} 542}
427 543
428static void reg_w_big(struct gspca_dev *gspca_dev,
429 __u16 value,
430 const __u8 *buffer,
431 int len)
432{
433 __u8 *tmpbuf;
434
435 tmpbuf = kmalloc(len, GFP_KERNEL);
436 memcpy(tmpbuf, buffer, len);
437 usb_control_msg(gspca_dev->dev,
438 usb_sndctrlpipe(gspca_dev->dev, 0),
439 0x08, /* request */
440 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
441 value,
442 0, /* index */
443 tmpbuf, len,
444 500);
445 kfree(tmpbuf);
446}
447
448static int i2c_w(struct gspca_dev *gspca_dev, const __u8 *buffer) 544static int i2c_w(struct gspca_dev *gspca_dev, const __u8 *buffer)
449{ 545{
450 int retry = 60; 546 int retry = 60;
@@ -487,7 +583,7 @@ static void setbrightness(struct gspca_dev *gspca_dev)
487 {0xa0, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x10}; 583 {0xa0, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x10};
488 584
489 /* change reg 0x06 */ 585 /* change reg 0x06 */
490 i2cOV[1] = sd->sensor_addr; 586 i2cOV[1] = sensor_data[sd->sensor].sensor_addr;
491 i2cOV[3] = sd->brightness; 587 i2cOV[3] = sd->brightness;
492 if (i2c_w(gspca_dev, i2cOV) < 0) 588 if (i2c_w(gspca_dev, i2cOV) < 0)
493 goto err; 589 goto err;
@@ -545,9 +641,6 @@ static void setbrightness(struct gspca_dev *gspca_dev)
545 goto err; 641 goto err;
546 break; 642 break;
547 } 643 }
548 case SENSOR_TAS5110:
549 /* FIXME figure out howto control brightness on TAS5110 */
550 break;
551 } 644 }
552 return; 645 return;
553err: 646err:
@@ -577,7 +670,7 @@ static void setsensorgain(struct gspca_dev *gspca_dev)
577 case SENSOR_OV7630: { 670 case SENSOR_OV7630: {
578 __u8 i2c[] = {0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10}; 671 __u8 i2c[] = {0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10};
579 672
580 i2c[1] = sd->sensor_addr; 673 i2c[1] = sensor_data[sd->sensor].sensor_addr;
581 i2c[3] = gain >> 2; 674 i2c[3] = gain >> 2;
582 if (i2c_w(gspca_dev, i2c) < 0) 675 if (i2c_w(gspca_dev, i2c) < 0)
583 goto err; 676 goto err;
@@ -604,7 +697,7 @@ static void setgain(struct gspca_dev *gspca_dev)
604 rgb_value = gain; 697 rgb_value = gain;
605 reg_w(gspca_dev, 0x11, &rgb_value, 1); 698 reg_w(gspca_dev, 0x11, &rgb_value, 1);
606 699
607 if (sd->sensor_has_gain) 700 if (sensor_data[sd->sensor].flags & F_GAIN)
608 setsensorgain(gspca_dev); 701 setsensorgain(gspca_dev);
609} 702}
610 703
@@ -665,6 +758,11 @@ static void setexposure(struct gspca_dev *gspca_dev)
665 else if (reg11 > 16) 758 else if (reg11 > 16)
666 reg11 = 16; 759 reg11 = 16;
667 760
761 /* In 640x480, if the reg11 has less than 3, the image is
762 unstable (not enough bandwidth). */
763 if (gspca_dev->width == 640 && reg11 < 3)
764 reg11 = 3;
765
668 /* frame exposure time in ms = 1000 * reg11 / 30 -> 766 /* frame exposure time in ms = 1000 * reg11 / 30 ->
669 reg10 = sd->exposure * 2 * reg10_max / (1000 * reg11 / 30) */ 767 reg10 = sd->exposure * 2 * reg10_max / (1000 * reg11 / 30) */
670 reg10 = (sd->exposure * 60 * reg10_max) / (1000 * reg11); 768 reg10 = (sd->exposure * 60 * reg10_max) / (1000 * reg11);
@@ -678,13 +776,8 @@ static void setexposure(struct gspca_dev *gspca_dev)
678 else if (reg10 > reg10_max) 776 else if (reg10 > reg10_max)
679 reg10 = reg10_max; 777 reg10 = reg10_max;
680 778
681 /* In 640x480, if the reg11 has less than 3, the image is
682 unstable (not enough bandwidth). */
683 if (gspca_dev->width == 640 && reg11 < 3)
684 reg11 = 3;
685
686 /* Write reg 10 and reg11 low nibble */ 779 /* Write reg 10 and reg11 low nibble */
687 i2c[1] = sd->sensor_addr; 780 i2c[1] = sensor_data[sd->sensor].sensor_addr;
688 i2c[3] = reg10; 781 i2c[3] = reg10;
689 i2c[4] |= reg11 - 1; 782 i2c[4] |= reg11 - 1;
690 783
@@ -724,7 +817,7 @@ static void setfreq(struct gspca_dev *gspca_dev)
724 ? 0x4f : 0x8a; 817 ? 0x4f : 0x8a;
725 break; 818 break;
726 } 819 }
727 i2c[1] = sd->sensor_addr; 820 i2c[1] = sensor_data[sd->sensor].sensor_addr;
728 if (i2c_w(gspca_dev, i2c) < 0) 821 if (i2c_w(gspca_dev, i2c) < 0)
729 PDEBUG(D_ERR, "i2c error setfreq"); 822 PDEBUG(D_ERR, "i2c error setfreq");
730 break; 823 break;
@@ -757,30 +850,19 @@ static int sd_config(struct gspca_dev *gspca_dev,
757{ 850{
758 struct sd *sd = (struct sd *) gspca_dev; 851 struct sd *sd = (struct sd *) gspca_dev;
759 struct cam *cam; 852 struct cam *cam;
760 int sif = 0;
761 853
762 /* nctrls depends upon the sensor, so we use a per cam copy */ 854 reg_r(gspca_dev, 0x00);
763 memcpy(&sd->sd_desc, gspca_dev->sd_desc, sizeof(struct sd_desc)); 855 if (gspca_dev->usb_buf[0] != 0x10)
764 gspca_dev->sd_desc = &sd->sd_desc; 856 return -ENODEV;
765 857
766 /* copy the webcam info from the device id */ 858 /* copy the webcam info from the device id */
767 sd->sensor = (id->driver_info >> 24) & 0xff; 859 sd->sensor = id->driver_info >> 8;
768 if (id->driver_info & (F_GAIN << 16)) 860 sd->bridge = id->driver_info & 0xff;
769 sd->sensor_has_gain = 1; 861 gspca_dev->ctrl_dis = sensor_data[sd->sensor].ctrl_dis;
770 if (id->driver_info & (F_AUTO << 16))
771 sd->sd_desc.dq_callback = do_autogain;
772 if (id->driver_info & (F_SIF << 16))
773 sif = 1;
774 if (id->driver_info & (F_H18 << 16))
775 sd->fr_h_sz = 18; /* size of frame header */
776 else
777 sd->fr_h_sz = 12;
778 sd->sd_desc.nctrls = (id->driver_info >> 8) & 0xff;
779 sd->sensor_addr = id->driver_info & 0xff;
780 862
781 cam = &gspca_dev->cam; 863 cam = &gspca_dev->cam;
782 cam->epaddr = 0x01; 864 cam->epaddr = 0x01;
783 if (!sif) { 865 if (!(sensor_data[sd->sensor].flags & F_SIF)) {
784 cam->cam_mode = vga_mode; 866 cam->cam_mode = vga_mode;
785 cam->nmodes = ARRAY_SIZE(vga_mode); 867 cam->nmodes = ARRAY_SIZE(vga_mode);
786 } else { 868 } else {
@@ -790,157 +872,98 @@ static int sd_config(struct gspca_dev *gspca_dev,
790 sd->brightness = BRIGHTNESS_DEF; 872 sd->brightness = BRIGHTNESS_DEF;
791 sd->gain = GAIN_DEF; 873 sd->gain = GAIN_DEF;
792 sd->exposure = EXPOSURE_DEF; 874 sd->exposure = EXPOSURE_DEF;
793 sd->autogain = AUTOGAIN_DEF; 875 if (gspca_dev->ctrl_dis & (1 << AUTOGAIN_IDX))
876 sd->autogain = 0; /* Disable do_autogain callback */
877 else
878 sd->autogain = AUTOGAIN_DEF;
794 sd->freq = FREQ_DEF; 879 sd->freq = FREQ_DEF;
795 880
796 return 0; 881 return 0;
797} 882}
798 883
799/* this function is called at open time */ 884/* this function is called at probe and resume time */
800static int sd_open(struct gspca_dev *gspca_dev) 885static int sd_init(struct gspca_dev *gspca_dev)
801{ 886{
802 reg_r(gspca_dev, 0x00); 887 const __u8 stop = 0x09; /* Disable stream turn of LED */
803 if (gspca_dev->usb_buf[0] != 0x10)
804 return -ENODEV;
805 return 0;
806}
807 888
808static void pas106_i2cinit(struct gspca_dev *gspca_dev) 889 reg_w(gspca_dev, 0x01, &stop, 1);
809{ 890
810 int i; 891 return 0;
811 const __u8 *data;
812 __u8 i2c1[] = { 0xa1, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14 };
813
814 i = ARRAY_SIZE(pas106_data);
815 data = pas106_data[0];
816 while (--i >= 0) {
817 memcpy(&i2c1[2], data, 2);
818 /* copy 2 bytes from the template */
819 if (i2c_w(gspca_dev, i2c1) < 0)
820 PDEBUG(D_ERR, "i2c error pas106");
821 data += 2;
822 }
823} 892}
824 893
825/* -- start the camera -- */ 894/* -- start the camera -- */
826static void sd_start(struct gspca_dev *gspca_dev) 895static void sd_start(struct gspca_dev *gspca_dev)
827{ 896{
828 struct sd *sd = (struct sd *) gspca_dev; 897 struct sd *sd = (struct sd *) gspca_dev;
829 int mode, l = 0x1f; 898 struct cam *cam = &gspca_dev->cam;
899 int mode, l;
830 const __u8 *sn9c10x; 900 const __u8 *sn9c10x;
831 __u8 reg17_19[3]; 901 __u8 reg12_19[8];
832 902
833 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; 903 mode = cam->cam_mode[gspca_dev->curr_mode].priv & 0x07;
904 sn9c10x = sensor_data[sd->sensor].bridge_init[sd->bridge];
905 l = sensor_data[sd->sensor].bridge_init_size[sd->bridge];
906 memcpy(reg12_19, &sn9c10x[0x12 - 1], 8);
907 reg12_19[6] = sn9c10x[0x18 - 1] | (mode << 4);
908 /* Special cases where reg 17 and or 19 value depends on mode */
834 switch (sd->sensor) { 909 switch (sd->sensor) {
835 case SENSOR_HV7131R:
836 sn9c10x = initHv7131;
837 reg17_19[0] = 0x60;
838 reg17_19[1] = (mode << 4) | 0x8a;
839 reg17_19[2] = 0x20;
840 break;
841 case SENSOR_OV6650:
842 sn9c10x = initOv6650;
843 reg17_19[0] = 0x68;
844 reg17_19[1] = (mode << 4) | 0x8b;
845 reg17_19[2] = 0x20;
846 break;
847 case SENSOR_OV7630:
848 if (sd->fr_h_sz == 18) { /* SN9C103 */
849 sn9c10x = initOv7630_3;
850 l = sizeof initOv7630_3;
851 } else
852 sn9c10x = initOv7630;
853 reg17_19[0] = 0x68;
854 reg17_19[1] = (mode << 4) | COMP2;
855 reg17_19[2] = MCK_INIT1;
856 break;
857 case SENSOR_PAS106:
858 sn9c10x = initPas106;
859 reg17_19[0] = 0x24; /* 0x28 */
860 reg17_19[1] = (mode << 4) | COMP1;
861 reg17_19[2] = MCK_INIT1;
862 break;
863 case SENSOR_PAS202: 910 case SENSOR_PAS202:
864 sn9c10x = initPas202; 911 reg12_19[5] = mode ? 0x24 : 0x20;
865 reg17_19[0] = mode ? 0x24 : 0x20;
866 reg17_19[1] = (mode << 4) | 0x89;
867 reg17_19[2] = 0x20;
868 break; 912 break;
869 case SENSOR_TAS5110: 913 case SENSOR_TAS5130CXX:
870 sn9c10x = initTas5110; 914 /* probably not mode specific at all most likely the upper
871 reg17_19[0] = 0x60; 915 nibble of 0x19 is exposure (clock divider) just as with
872 reg17_19[1] = (mode << 4) | 0x86; 916 the tas5110, we need someone to test this. */
873 reg17_19[2] = 0x2b; /* 0xf3; */ 917 reg12_19[7] = mode ? 0x23 : 0x43;
874 break;
875 default:
876/* case SENSOR_TAS5130CXX: */
877 sn9c10x = initTas5130;
878 reg17_19[0] = 0x60;
879 reg17_19[1] = (mode << 4) | COMP;
880 reg17_19[2] = mode ? 0x23 : 0x43;
881 break; 918 break;
882 } 919 }
920 /* Disable compression when the raw bayer format has been selected */
921 if (cam->cam_mode[gspca_dev->curr_mode].priv & MODE_RAW)
922 reg12_19[6] &= ~0x80;
923
924 /* Vga mode emulation on SIF sensor? */
925 if (cam->cam_mode[gspca_dev->curr_mode].priv & MODE_REDUCED_SIF) {
926 reg12_19[0] += 16; /* 0x12: hstart adjust */
927 reg12_19[1] += 24; /* 0x13: vstart adjust */
928 reg12_19[3] = 320 / 16; /* 0x15: hsize */
929 reg12_19[4] = 240 / 16; /* 0x16: vsize */
930 }
883 931
884 /* reg 0x01 bit 2 video transfert on */ 932 /* reg 0x01 bit 2 video transfert on */
885 reg_w(gspca_dev, 0x01, &sn9c10x[0x01 - 1], 1); 933 reg_w(gspca_dev, 0x01, &sn9c10x[0x01 - 1], 1);
886 /* reg 0x17 SensorClk enable inv Clk 0x60 */ 934 /* reg 0x17 SensorClk enable inv Clk 0x60 */
887 reg_w(gspca_dev, 0x17, &sn9c10x[0x17 - 1], 1); 935 reg_w(gspca_dev, 0x17, &sn9c10x[0x17 - 1], 1);
888 /* Set the registers from the template */ 936 /* Set the registers from the template */
889 reg_w_big(gspca_dev, 0x01, sn9c10x, l); 937 reg_w(gspca_dev, 0x01, sn9c10x, l);
890 switch (sd->sensor) { 938
891 case SENSOR_HV7131R: 939 /* Init the sensor */
892 i2c_w_vector(gspca_dev, hv7131_sensor_init, 940 i2c_w_vector(gspca_dev, sensor_data[sd->sensor].sensor_init,
893 sizeof hv7131_sensor_init); 941 sensor_data[sd->sensor].sensor_init_size);
894 break; 942 if (sensor_data[sd->sensor].sensor_bridge_init[sd->bridge])
895 case SENSOR_OV6650: 943 i2c_w_vector(gspca_dev,
896 i2c_w_vector(gspca_dev, ov6650_sensor_init, 944 sensor_data[sd->sensor].sensor_bridge_init[sd->bridge],
897 sizeof ov6650_sensor_init); 945 sensor_data[sd->sensor].sensor_bridge_init_size[
898 break; 946 sd->bridge]);
899 case SENSOR_OV7630: 947
900 i2c_w_vector(gspca_dev, ov7630_sensor_init,
901 sizeof ov7630_sensor_init);
902 if (sd->fr_h_sz == 18) { /* SN9C103 */
903 const __u8 i2c[] = { 0xa0, 0x21, 0x13, 0x80, 0x00,
904 0x00, 0x00, 0x10 };
905 i2c_w(gspca_dev, i2c);
906 }
907 break;
908 case SENSOR_PAS106:
909 pas106_i2cinit(gspca_dev);
910 break;
911 case SENSOR_PAS202:
912 i2c_w_vector(gspca_dev, pas202_sensor_init,
913 sizeof pas202_sensor_init);
914 break;
915 case SENSOR_TAS5110:
916 i2c_w_vector(gspca_dev, tas5110_sensor_init,
917 sizeof tas5110_sensor_init);
918 break;
919 default:
920/* case SENSOR_TAS5130CXX: */
921 i2c_w_vector(gspca_dev, tas5130_sensor_init,
922 sizeof tas5130_sensor_init);
923 break;
924 }
925 /* H_size V_size 0x28, 0x1e -> 640x480. 0x16, 0x12 -> 352x288 */ 948 /* H_size V_size 0x28, 0x1e -> 640x480. 0x16, 0x12 -> 352x288 */
926 reg_w(gspca_dev, 0x15, &sn9c10x[0x15 - 1], 2); 949 reg_w(gspca_dev, 0x15, &reg12_19[3], 2);
927 /* compression register */ 950 /* compression register */
928 reg_w(gspca_dev, 0x18, &reg17_19[1], 1); 951 reg_w(gspca_dev, 0x18, &reg12_19[6], 1);
929 /* H_start */ 952 /* H_start */
930 reg_w(gspca_dev, 0x12, &sn9c10x[0x12 - 1], 1); 953 reg_w(gspca_dev, 0x12, &reg12_19[0], 1);
931 /* V_START */ 954 /* V_START */
932 reg_w(gspca_dev, 0x13, &sn9c10x[0x13 - 1], 1); 955 reg_w(gspca_dev, 0x13, &reg12_19[1], 1);
933 /* reset 0x17 SensorClk enable inv Clk 0x60 */ 956 /* reset 0x17 SensorClk enable inv Clk 0x60 */
934 /*fixme: ov7630 [17]=68 8f (+20 if 102)*/ 957 /*fixme: ov7630 [17]=68 8f (+20 if 102)*/
935 reg_w(gspca_dev, 0x17, &reg17_19[0], 1); 958 reg_w(gspca_dev, 0x17, &reg12_19[5], 1);
936 /*MCKSIZE ->3 */ /*fixme: not ov7630*/ 959 /*MCKSIZE ->3 */ /*fixme: not ov7630*/
937 reg_w(gspca_dev, 0x19, &reg17_19[2], 1); 960 reg_w(gspca_dev, 0x19, &reg12_19[7], 1);
938 /* AE_STRX AE_STRY AE_ENDX AE_ENDY */ 961 /* AE_STRX AE_STRY AE_ENDX AE_ENDY */
939 reg_w(gspca_dev, 0x1c, &sn9c10x[0x1c - 1], 4); 962 reg_w(gspca_dev, 0x1c, &sn9c10x[0x1c - 1], 4);
940 /* Enable video transfert */ 963 /* Enable video transfert */
941 reg_w(gspca_dev, 0x01, &sn9c10x[0], 1); 964 reg_w(gspca_dev, 0x01, &sn9c10x[0], 1);
942 /* Compression */ 965 /* Compression */
943 reg_w(gspca_dev, 0x18, &reg17_19[1], 2); 966 reg_w(gspca_dev, 0x18, &reg12_19[6], 2);
944 msleep(20); 967 msleep(20);
945 968
946 sd->reg11 = -1; 969 sd->reg11 = -1;
@@ -957,18 +980,7 @@ static void sd_start(struct gspca_dev *gspca_dev)
957 980
958static void sd_stopN(struct gspca_dev *gspca_dev) 981static void sd_stopN(struct gspca_dev *gspca_dev)
959{ 982{
960 __u8 ByteSend; 983 sd_init(gspca_dev);
961
962 ByteSend = 0x09; /* 0X00 */
963 reg_w(gspca_dev, 0x01, &ByteSend, 1);
964}
965
966static void sd_stop0(struct gspca_dev *gspca_dev)
967{
968}
969
970static void sd_close(struct gspca_dev *gspca_dev)
971{
972} 984}
973 985
974static void sd_pkt_scan(struct gspca_dev *gspca_dev, 986static void sd_pkt_scan(struct gspca_dev *gspca_dev,
@@ -978,6 +990,7 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
978{ 990{
979 int i; 991 int i;
980 struct sd *sd = (struct sd *) gspca_dev; 992 struct sd *sd = (struct sd *) gspca_dev;
993 struct cam *cam = &gspca_dev->cam;
981 994
982 /* frames start with: 995 /* frames start with:
983 * ff ff 00 c4 c4 96 synchro 996 * ff ff 00 c4 c4 96 synchro
@@ -998,20 +1011,31 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
998 && data[5 + i] == 0x96) { /* start of frame */ 1011 && data[5 + i] == 0x96) { /* start of frame */
999 int lum = -1; 1012 int lum = -1;
1000 int pkt_type = LAST_PACKET; 1013 int pkt_type = LAST_PACKET;
1014 int fr_h_sz = (sd->bridge == BRIDGE_103) ?
1015 18 : 12;
1001 1016
1002 if (len - i < sd->fr_h_sz) { 1017 if (len - i < fr_h_sz) {
1003 PDEBUG(D_STREAM, "packet too short to" 1018 PDEBUG(D_STREAM, "packet too short to"
1004 " get avg brightness"); 1019 " get avg brightness");
1005 } else if (sd->fr_h_sz == 12) { 1020 } else if (sd->bridge == BRIDGE_103) {
1006 lum = data[i + 8] + (data[i + 9] << 8);
1007 } else {
1008 lum = data[i + 9] + 1021 lum = data[i + 9] +
1009 (data[i + 10] << 8); 1022 (data[i + 10] << 8);
1023 } else {
1024 lum = data[i + 8] + (data[i + 9] << 8);
1010 } 1025 }
1011 if (lum == 0) { 1026 /* When exposure changes midway a frame we
1027 get a lum of 0 in this case drop 2 frames
1028 as the frames directly after an exposure
1029 change have an unstable image. Sometimes lum
1030 *really* is 0 (cam used in low light with
1031 low exposure setting), so do not drop frames
1032 if the previous lum was 0 too. */
1033 if (lum == 0 && sd->prev_avg_lum != 0) {
1012 lum = -1; 1034 lum = -1;
1013 sd->frames_to_drop = 2; 1035 sd->frames_to_drop = 2;
1014 } 1036 sd->prev_avg_lum = 0;
1037 } else
1038 sd->prev_avg_lum = lum;
1015 atomic_set(&sd->avg_lum, lum); 1039 atomic_set(&sd->avg_lum, lum);
1016 1040
1017 if (sd->frames_to_drop) { 1041 if (sd->frames_to_drop) {
@@ -1021,14 +1045,25 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1021 1045
1022 frame = gspca_frame_add(gspca_dev, pkt_type, 1046 frame = gspca_frame_add(gspca_dev, pkt_type,
1023 frame, data, 0); 1047 frame, data, 0);
1024 data += i + sd->fr_h_sz; 1048 data += i + fr_h_sz;
1025 len -= i + sd->fr_h_sz; 1049 len -= i + fr_h_sz;
1026 gspca_frame_add(gspca_dev, FIRST_PACKET, 1050 gspca_frame_add(gspca_dev, FIRST_PACKET,
1027 frame, data, len); 1051 frame, data, len);
1028 return; 1052 return;
1029 } 1053 }
1030 } 1054 }
1031 } 1055 }
1056
1057 if (cam->cam_mode[gspca_dev->curr_mode].priv & MODE_RAW) {
1058 /* In raw mode we sometimes get some garbage after the frame
1059 ignore this */
1060 int used = frame->data_end - frame->data;
1061 int size = cam->cam_mode[gspca_dev->curr_mode].sizeimage;
1062
1063 if (used + len > size)
1064 len = size - used;
1065 }
1066
1032 gspca_frame_add(gspca_dev, INTER_PACKET, 1067 gspca_frame_add(gspca_dev, INTER_PACKET,
1033 frame, data, len); 1068 frame, data, len);
1034} 1069}
@@ -1162,58 +1197,45 @@ static const struct sd_desc sd_desc = {
1162 .ctrls = sd_ctrls, 1197 .ctrls = sd_ctrls,
1163 .nctrls = ARRAY_SIZE(sd_ctrls), 1198 .nctrls = ARRAY_SIZE(sd_ctrls),
1164 .config = sd_config, 1199 .config = sd_config,
1165 .open = sd_open, 1200 .init = sd_init,
1166 .start = sd_start, 1201 .start = sd_start,
1167 .stopN = sd_stopN, 1202 .stopN = sd_stopN,
1168 .stop0 = sd_stop0,
1169 .close = sd_close,
1170 .pkt_scan = sd_pkt_scan, 1203 .pkt_scan = sd_pkt_scan,
1171 .querymenu = sd_querymenu, 1204 .querymenu = sd_querymenu,
1205 .dq_callback = do_autogain,
1172}; 1206};
1173 1207
1174/* -- module initialisation -- */ 1208/* -- module initialisation -- */
1175#define SFCI(sensor, flags, nctrls, i2c_addr) \ 1209#define SB(sensor, bridge) \
1176 .driver_info = (SENSOR_ ## sensor << 24) \ 1210 .driver_info = (SENSOR_ ## sensor << 8) | BRIDGE_ ## bridge
1177 | ((flags) << 16) \ 1211
1178 | ((nctrls) << 8) \ 1212
1179 | (i2c_addr)
1180static __devinitdata struct usb_device_id device_table[] = { 1213static __devinitdata struct usb_device_id device_table[] = {
1181#ifndef CONFIG_USB_SN9C102 1214 {USB_DEVICE(0x0c45, 0x6001), SB(TAS5110, 102)}, /* TAS5110C1B */
1182 {USB_DEVICE(0x0c45, 0x6001), /* SN9C102 */ 1215 {USB_DEVICE(0x0c45, 0x6005), SB(TAS5110, 101)}, /* TAS5110C1B */
1183 SFCI(TAS5110, F_GAIN|F_AUTO|F_SIF, 4, 0)}, 1216#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1184 {USB_DEVICE(0x0c45, 0x6005), /* SN9C101 */ 1217 {USB_DEVICE(0x0c45, 0x6007), SB(TAS5110, 101)}, /* TAS5110D */
1185 SFCI(TAS5110, F_GAIN|F_AUTO|F_SIF, 4, 0)}, 1218 {USB_DEVICE(0x0c45, 0x6009), SB(PAS106, 101)},
1186 {USB_DEVICE(0x0c45, 0x6007), /* SN9C101 */ 1219 {USB_DEVICE(0x0c45, 0x600d), SB(PAS106, 101)},
1187 SFCI(TAS5110, F_GAIN|F_AUTO|F_SIF, 4, 0)},
1188 {USB_DEVICE(0x0c45, 0x6009), /* SN9C101 */
1189 SFCI(PAS106, F_SIF, 2, 0)},
1190 {USB_DEVICE(0x0c45, 0x600d), /* SN9C101 */
1191 SFCI(PAS106, F_SIF, 2, 0)},
1192#endif 1220#endif
1193 {USB_DEVICE(0x0c45, 0x6011), /* SN9C101 - SN9C101G */ 1221 {USB_DEVICE(0x0c45, 0x6011), SB(OV6650, 101)},
1194 SFCI(OV6650, F_GAIN|F_AUTO|F_SIF, 5, 0x60)}, 1222#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1195#ifndef CONFIG_USB_SN9C102 1223 {USB_DEVICE(0x0c45, 0x6019), SB(OV7630, 101)},
1196 {USB_DEVICE(0x0c45, 0x6019), /* SN9C101 */ 1224 {USB_DEVICE(0x0c45, 0x6024), SB(TAS5130CXX, 102)},
1197 SFCI(OV7630, F_GAIN|F_AUTO, 5, 0x21)}, 1225 {USB_DEVICE(0x0c45, 0x6025), SB(TAS5130CXX, 102)},
1198 {USB_DEVICE(0x0c45, 0x6024), /* SN9C102 */ 1226 {USB_DEVICE(0x0c45, 0x6028), SB(PAS202, 102)},
1199 SFCI(TAS5130CXX, 0, 2, 0)}, 1227 {USB_DEVICE(0x0c45, 0x6029), SB(PAS106, 102)},
1200 {USB_DEVICE(0x0c45, 0x6025), /* SN9C102 */ 1228 {USB_DEVICE(0x0c45, 0x602c), SB(OV7630, 102)},
1201 SFCI(TAS5130CXX, 0, 2, 0)},
1202 {USB_DEVICE(0x0c45, 0x6028), /* SN9C102 */
1203 SFCI(PAS202, 0, 2, 0)},
1204 {USB_DEVICE(0x0c45, 0x6029), /* SN9C101 */
1205 SFCI(PAS106, F_SIF, 2, 0)},
1206 {USB_DEVICE(0x0c45, 0x602c), /* SN9C102 */
1207 SFCI(OV7630, F_GAIN|F_AUTO, 5, 0x21)},
1208 {USB_DEVICE(0x0c45, 0x602d), /* SN9C102 */
1209 SFCI(HV7131R, 0, 2, 0)},
1210 {USB_DEVICE(0x0c45, 0x602e), /* SN9C102 */
1211 SFCI(OV7630, F_GAIN|F_AUTO, 5, 0x21)},
1212 {USB_DEVICE(0x0c45, 0x60af), /* SN9C103 */
1213 SFCI(PAS202, F_H18, 2, 0)},
1214 {USB_DEVICE(0x0c45, 0x60b0), /* SN9C103 */
1215 SFCI(OV7630, F_GAIN|F_AUTO|F_H18, 5, 0x21)},
1216#endif 1229#endif
1230 {USB_DEVICE(0x0c45, 0x602d), SB(HV7131R, 102)},
1231#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1232 {USB_DEVICE(0x0c45, 0x602e), SB(OV7630, 102)},
1233#endif
1234 {USB_DEVICE(0x0c45, 0x608f), SB(OV7630, 103)},
1235#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1236 {USB_DEVICE(0x0c45, 0x60af), SB(PAS202, 103)},
1237#endif
1238 {USB_DEVICE(0x0c45, 0x60b0), SB(OV7630, 103)},
1217 {} 1239 {}
1218}; 1240};
1219MODULE_DEVICE_TABLE(usb, device_table); 1241MODULE_DEVICE_TABLE(usb, device_table);
@@ -1231,6 +1253,10 @@ static struct usb_driver sd_driver = {
1231 .id_table = device_table, 1253 .id_table = device_table,
1232 .probe = sd_probe, 1254 .probe = sd_probe,
1233 .disconnect = gspca_disconnect, 1255 .disconnect = gspca_disconnect,
1256#ifdef CONFIG_PM
1257 .suspend = gspca_suspend,
1258 .resume = gspca_resume,
1259#endif
1234}; 1260};
1235 1261
1236/* -- module insert / remove -- */ 1262/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/sonixj.c b/drivers/media/video/gspca/sonixj.c
index 245a30ec5fb1..d75b1d20b318 100644
--- a/drivers/media/video/gspca/sonixj.c
+++ b/drivers/media/video/gspca/sonixj.c
@@ -54,8 +54,10 @@ struct sd {
54#define SENSOR_HV7131R 0 54#define SENSOR_HV7131R 0
55#define SENSOR_MI0360 1 55#define SENSOR_MI0360 1
56#define SENSOR_MO4000 2 56#define SENSOR_MO4000 2
57#define SENSOR_OV7648 3 57#define SENSOR_OM6802 3
58#define SENSOR_OV7660 4 58#define SENSOR_OV7630 4
59#define SENSOR_OV7648 5
60#define SENSOR_OV7660 6
59 unsigned char i2c_base; 61 unsigned char i2c_base;
60}; 62};
61 63
@@ -76,7 +78,8 @@ static struct ctrl sd_ctrls[] = {
76 .type = V4L2_CTRL_TYPE_INTEGER, 78 .type = V4L2_CTRL_TYPE_INTEGER,
77 .name = "Brightness", 79 .name = "Brightness",
78 .minimum = 0, 80 .minimum = 0,
79 .maximum = 0xffff, 81#define BRIGHTNESS_MAX 0xffff
82 .maximum = BRIGHTNESS_MAX,
80 .step = 1, 83 .step = 1,
81#define BRIGHTNESS_DEF 0x7fff 84#define BRIGHTNESS_DEF 0x7fff
82 .default_value = BRIGHTNESS_DEF, 85 .default_value = BRIGHTNESS_DEF,
@@ -90,7 +93,8 @@ static struct ctrl sd_ctrls[] = {
90 .type = V4L2_CTRL_TYPE_INTEGER, 93 .type = V4L2_CTRL_TYPE_INTEGER,
91 .name = "Contrast", 94 .name = "Contrast",
92 .minimum = 0, 95 .minimum = 0,
93 .maximum = 127, 96#define CONTRAST_MAX 127
97 .maximum = CONTRAST_MAX,
94 .step = 1, 98 .step = 1,
95#define CONTRAST_DEF 63 99#define CONTRAST_DEF 63
96 .default_value = CONTRAST_DEF, 100 .default_value = CONTRAST_DEF,
@@ -104,14 +108,15 @@ static struct ctrl sd_ctrls[] = {
104 .type = V4L2_CTRL_TYPE_INTEGER, 108 .type = V4L2_CTRL_TYPE_INTEGER,
105 .name = "Color", 109 .name = "Color",
106 .minimum = 0, 110 .minimum = 0,
107 .maximum = 255, 111 .maximum = 64,
108 .step = 1, 112 .step = 1,
109#define COLOR_DEF 127 113#define COLOR_DEF 32
110 .default_value = COLOR_DEF, 114 .default_value = COLOR_DEF,
111 }, 115 },
112 .set = sd_setcolors, 116 .set = sd_setcolors,
113 .get = sd_getcolors, 117 .get = sd_getcolors,
114 }, 118 },
119#define AUTOGAIN_IDX 3
115 { 120 {
116 { 121 {
117 .id = V4L2_CID_AUTOGAIN, 122 .id = V4L2_CID_AUTOGAIN,
@@ -131,7 +136,7 @@ static struct ctrl sd_ctrls[] = {
131static struct v4l2_pix_format vga_mode[] = { 136static struct v4l2_pix_format vga_mode[] = {
132 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 137 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
133 .bytesperline = 160, 138 .bytesperline = 160,
134 .sizeimage = 160 * 120 * 3 / 8 + 590, 139 .sizeimage = 160 * 120 * 4 / 8 + 590,
135 .colorspace = V4L2_COLORSPACE_JPEG, 140 .colorspace = V4L2_COLORSPACE_JPEG,
136 .priv = 2}, 141 .priv = 2},
137 {320, 240, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 142 {320, 240, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
@@ -180,6 +185,31 @@ static const __u8 sn_mo4000[] = {
180 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 185 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
181}; 186};
182 187
188static const __u8 sn_om6802[] = {
189/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */
190 0x00, 0x23, 0x72, 0x00, 0x1a, 0x34, 0x27, 0x20,
191/* reg8 reg9 rega regb regc regd rege regf */
192 0x80, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
193/* reg10 reg11 reg12 reg13 reg14 reg15 reg16 reg17 */
194 0x03, 0x00, 0x51, 0x01, 0x00, 0x28, 0x1e, 0x40,
195/* reg18 reg19 reg1a reg1b reg1c reg1d reg1e reg1f */
196 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
197 0x08, 0x22, 0x44, 0x63, 0x7d, 0x92, 0xa3, 0xaf,
198 0xbc, 0xc4, 0xcd, 0xd5, 0xdc, 0xe1, 0xe8, 0xef,
199 0xf7
200};
201
202static const __u8 sn_ov7630[] = {
203/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */
204 0x00, 0x21, 0x40, 0x00, 0x1a, 0x20, 0x1f, 0x20,
205/* reg8 reg9 rega regb regc regd rege regf */
206 0xa1, 0x21, 0x76, 0x21, 0x00, 0x00, 0x00, 0x10,
207/* reg10 reg11 reg12 reg13 reg14 reg15 reg16 reg17 */
208 0x03, 0x00, 0x04, 0x01, 0x0a, 0x28, 0x1e, 0xc2,
209/* reg18 reg19 reg1a reg1b reg1c reg1d reg1e reg1f */
210 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00
211};
212
183static const __u8 sn_ov7648[] = { 213static const __u8 sn_ov7648[] = {
184/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */ 214/* reg0 reg1 reg2 reg3 reg4 reg5 reg6 reg7 */
185 0x00, 0x21, 0x62, 0x00, 0x1a, 0x20, 0x20, 0x20, 215 0x00, 0x21, 0x62, 0x00, 0x1a, 0x20, 0x20, 0x20,
@@ -207,31 +237,22 @@ static const __u8 *sn_tb[] = {
207 sn_hv7131, 237 sn_hv7131,
208 sn_mi0360, 238 sn_mi0360,
209 sn_mo4000, 239 sn_mo4000,
240 sn_om6802,
241 sn_ov7630,
210 sn_ov7648, 242 sn_ov7648,
211 sn_ov7660 243 sn_ov7660
212}; 244};
213 245
214static const __u8 regsn20[] = { 246static const __u8 gamma_def[] = {
215 0x00, 0x2d, 0x46, 0x5a, 0x6c, 0x7c, 0x8b, 0x99, 247 0x00, 0x2d, 0x46, 0x5a, 0x6c, 0x7c, 0x8b, 0x99,
216 0xa6, 0xb2, 0xbf, 0xca, 0xd5, 0xe0, 0xeb, 0xf5, 0xff 248 0xa6, 0xb2, 0xbf, 0xca, 0xd5, 0xe0, 0xeb, 0xf5, 0xff
217}; 249};
218static const __u8 regsn20_sn9c325[] = {
219 0x0a, 0x3a, 0x56, 0x6c, 0x7e, 0x8d, 0x9a, 0xa4,
220 0xaf, 0xbb, 0xc5, 0xcd, 0xd5, 0xde, 0xe8, 0xed, 0xf5
221};
222 250
223static const __u8 reg84[] = { 251static const __u8 reg84[] = {
224 0x14, 0x00, 0x27, 0x00, 0x07, 0x00, 0xe5, 0x0f, 252 0x14, 0x00, 0x27, 0x00, 0x07, 0x00, 0xe5, 0x0f,
225 0xe4, 0x0f, 0x38, 0x00, 0x3e, 0x00, 0xc3, 0x0f, 253 0xe4, 0x0f, 0x38, 0x00, 0x3e, 0x00, 0xc3, 0x0f,
226/* 0x00, 0x00, 0x00, 0x00, 0x00 */ 254 0xf7, 0x0f, 0x00, 0x00, 0x00
227 0xf7, 0x0f, 0x0a, 0x00, 0x00
228};
229static const __u8 reg84_sn9c325[] = {
230 0x14, 0x00, 0x27, 0x00, 0x07, 0x00, 0xe4, 0x0f,
231 0xd3, 0x0f, 0x4b, 0x00, 0x48, 0x00, 0xc0, 0x0f,
232 0xf8, 0x0f, 0x00, 0x00, 0x00
233}; 255};
234
235static const __u8 hv7131r_sensor_init[][8] = { 256static const __u8 hv7131r_sensor_init[][8] = {
236 {0xC1, 0x11, 0x01, 0x08, 0x01, 0x00, 0x00, 0x10}, 257 {0xC1, 0x11, 0x01, 0x08, 0x01, 0x00, 0x00, 0x10},
237 {0xB1, 0x11, 0x34, 0x17, 0x7F, 0x00, 0x00, 0x10}, 258 {0xB1, 0x11, 0x34, 0x17, 0x7F, 0x00, 0x00, 0x10},
@@ -340,6 +361,92 @@ static const __u8 mo4000_sensor_init[][8] = {
340 {0xa1, 0x21, 0x11, 0x38, 0x00, 0x00, 0x00, 0x10}, 361 {0xa1, 0x21, 0x11, 0x38, 0x00, 0x00, 0x00, 0x10},
341 {} 362 {}
342}; 363};
364static __u8 om6802_sensor_init[][8] = {
365 {0xa0, 0x34, 0x90, 0x05, 0x00, 0x00, 0x00, 0x10},
366 {0xa0, 0x34, 0x49, 0x85, 0x00, 0x00, 0x00, 0x10},
367 {0xa0, 0x34, 0x5a, 0xc0, 0x00, 0x00, 0x00, 0x10},
368 {0xa0, 0x34, 0xdd, 0x18, 0x00, 0x00, 0x00, 0x10},
369/* {0xa0, 0x34, 0xfb, 0x11, 0x00, 0x00, 0x00, 0x10}, */
370 {0xa0, 0x34, 0xf0, 0x04, 0x00, 0x00, 0x00, 0x10},
371 /* white balance & auto-exposure */
372/* {0xa0, 0x34, 0xf1, 0x02, 0x00, 0x00, 0x00, 0x10},
373 * set color mode */
374/* {0xa0, 0x34, 0xfe, 0x5b, 0x00, 0x00, 0x00, 0x10},
375 * max AGC value in AE */
376/* {0xa0, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x10},
377 * preset AGC */
378/* {0xa0, 0x34, 0xe6, 0x00, 0x00, 0x00, 0x00, 0x10},
379 * preset brightness */
380/* {0xa0, 0x34, 0xe7, 0x00, 0x00, 0x00, 0x00, 0x10},
381 * preset contrast */
382/* {0xa0, 0x34, 0xe8, 0x31, 0x00, 0x00, 0x00, 0x10},
383 * preset gamma */
384 {0xa0, 0x34, 0xe9, 0x0f, 0x00, 0x00, 0x00, 0x10},
385 /* luminance mode (0x4f = AE) */
386 {0xa0, 0x34, 0xe4, 0xff, 0x00, 0x00, 0x00, 0x10},
387 /* preset shutter */
388/* {0xa0, 0x34, 0xef, 0x00, 0x00, 0x00, 0x00, 0x10},
389 * auto frame rate */
390/* {0xa0, 0x34, 0xfb, 0xee, 0x00, 0x00, 0x00, 0x10}, */
391
392/* {0xa0, 0x34, 0x71, 0x84, 0x00, 0x00, 0x00, 0x10}, */
393/* {0xa0, 0x34, 0x72, 0x05, 0x00, 0x00, 0x00, 0x10}, */
394/* {0xa0, 0x34, 0x68, 0x80, 0x00, 0x00, 0x00, 0x10}, */
395/* {0xa0, 0x34, 0x69, 0x01, 0x00, 0x00, 0x00, 0x10}, */
396 {}
397};
398static const __u8 ov7630_sensor_init[][8] = {
399 {0xa1, 0x21, 0x76, 0x01, 0x00, 0x00, 0x00, 0x10},
400 {0xa1, 0x21, 0x12, 0xc8, 0x00, 0x00, 0x00, 0x10},
401/* win: delay 20ms */
402 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
403 {0xa1, 0x21, 0x12, 0xc8, 0x00, 0x00, 0x00, 0x10},
404/* win: delay 20ms */
405 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
406/* win: i2c_r from 00 to 80 */
407 {0xd1, 0x21, 0x03, 0x80, 0x10, 0x20, 0x80, 0x10},
408 {0xb1, 0x21, 0x0c, 0x20, 0x20, 0x00, 0x00, 0x10},
409 {0xd1, 0x21, 0x11, 0x00, 0x48, 0xc0, 0x00, 0x10},
410 {0xb1, 0x21, 0x15, 0x80, 0x03, 0x00, 0x00, 0x10},
411 {0xd1, 0x21, 0x17, 0x1b, 0xbd, 0x05, 0xf6, 0x10},
412 {0xa1, 0x21, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x10},
413 {0xd1, 0x21, 0x1f, 0x00, 0x80, 0x80, 0x80, 0x10},
414 {0xd1, 0x21, 0x23, 0xde, 0x10, 0x8a, 0xa0, 0x10},
415 {0xc1, 0x21, 0x27, 0xca, 0xa2, 0x74, 0x00, 0x10},
416 {0xd1, 0x21, 0x2a, 0x88, 0x00, 0x88, 0x01, 0x10},
417 {0xc1, 0x21, 0x2e, 0x80, 0x00, 0x18, 0x00, 0x10},
418 {0xa1, 0x21, 0x21, 0x08, 0x00, 0x00, 0x00, 0x10},
419 {0xa1, 0x21, 0x22, 0x00, 0x00, 0x00, 0x00, 0x10},
420 {0xa1, 0x21, 0x2e, 0x00, 0x00, 0x00, 0x00, 0x10},
421 {0xb1, 0x21, 0x32, 0xc2, 0x08, 0x00, 0x00, 0x10},
422 {0xb1, 0x21, 0x4c, 0x00, 0x00, 0x00, 0x00, 0x10},
423 {0xd1, 0x21, 0x60, 0x05, 0x40, 0x12, 0x57, 0x10},
424 {0xa1, 0x21, 0x64, 0x73, 0x00, 0x00, 0x00, 0x10},
425 {0xd1, 0x21, 0x65, 0x00, 0x55, 0x01, 0xac, 0x10},
426 {0xa1, 0x21, 0x69, 0x38, 0x00, 0x00, 0x00, 0x10},
427 {0xd1, 0x21, 0x6f, 0x1f, 0x01, 0x00, 0x10, 0x10},
428 {0xd1, 0x21, 0x73, 0x50, 0x20, 0x02, 0x01, 0x10},
429 {0xd1, 0x21, 0x77, 0xf3, 0x90, 0x98, 0x98, 0x10},
430 {0xc1, 0x21, 0x7b, 0x00, 0x4c, 0xf7, 0x00, 0x10},
431 {0xd1, 0x21, 0x17, 0x1b, 0xbd, 0x05, 0xf6, 0x10},
432 {0xa1, 0x21, 0x1b, 0x04, 0x00, 0x00, 0x00, 0x10},
433/* */
434 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
435 {0xa1, 0x21, 0x12, 0x48, 0x00, 0x00, 0x00, 0x10},
436/*fixme: + 0x12, 0x04*/
437 {0xa1, 0x21, 0x75, 0x82, 0x00, 0x00, 0x00, 0x10},
438 {0xa1, 0x21, 0x10, 0x32, 0x00, 0x00, 0x00, 0x10},
439 {0xa1, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10},
440 {0xb1, 0x21, 0x01, 0x80, 0x80, 0x00, 0x00, 0x10},
441/* */
442 {0xa1, 0x21, 0x11, 0x00, 0x00, 0x00, 0x00, 0x10},
443 {0xa1, 0x21, 0x2a, 0x88, 0x00, 0x00, 0x00, 0x10},
444 {0xa1, 0x21, 0x2b, 0x34, 0x00, 0x00, 0x00, 0x10},
445/* */
446 {0xa1, 0x21, 0x10, 0x83, 0x00, 0x00, 0x00, 0x10},
447/* {0xb1, 0x21, 0x01, 0x88, 0x70, 0x00, 0x00, 0x10}, */
448 {}
449};
343static const __u8 ov7660_sensor_init[][8] = { 450static const __u8 ov7660_sensor_init[][8] = {
344 {0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset SCCB */ 451 {0xa1, 0x21, 0x12, 0x80, 0x00, 0x00, 0x00, 0x10}, /* reset SCCB */
345/* (delay 20ms) */ 452/* (delay 20ms) */
@@ -506,10 +613,16 @@ static const __u8 qtable4[] = {
506 0x29, 0x29, 0x29, 0x29 613 0x29, 0x29, 0x29, 0x29
507}; 614};
508 615
509/* read <len> bytes (len < sizeof gspca_dev->usb_buf) to gspca_dev->usb_buf */ 616/* read <len> bytes to gspca_dev->usb_buf */
510static void reg_r(struct gspca_dev *gspca_dev, 617static void reg_r(struct gspca_dev *gspca_dev,
511 __u16 value, int len) 618 __u16 value, int len)
512{ 619{
620#ifdef GSPCA_DEBUG
621 if (len > USB_BUF_SZ) {
622 err("reg_r: buffer overflow");
623 return;
624 }
625#endif
513 usb_control_msg(gspca_dev->dev, 626 usb_control_msg(gspca_dev->dev,
514 usb_rcvctrlpipe(gspca_dev->dev, 0), 627 usb_rcvctrlpipe(gspca_dev->dev, 0),
515 0, 628 0,
@@ -542,29 +655,20 @@ static void reg_w(struct gspca_dev *gspca_dev,
542{ 655{
543 PDEBUG(D_USBO, "reg_w [%02x] = %02x %02x ..", 656 PDEBUG(D_USBO, "reg_w [%02x] = %02x %02x ..",
544 value, buffer[0], buffer[1]); 657 value, buffer[0], buffer[1]);
545 if (len <= sizeof gspca_dev->usb_buf) { 658#ifdef GSPCA_DEBUG
546 memcpy(gspca_dev->usb_buf, buffer, len); 659 if (len > USB_BUF_SZ) {
547 usb_control_msg(gspca_dev->dev, 660 err("reg_w: buffer overflow");
548 usb_sndctrlpipe(gspca_dev->dev, 0), 661 return;
549 0x08,
550 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
551 value, 0,
552 gspca_dev->usb_buf, len,
553 500);
554 } else {
555 __u8 *tmpbuf;
556
557 tmpbuf = kmalloc(len, GFP_KERNEL);
558 memcpy(tmpbuf, buffer, len);
559 usb_control_msg(gspca_dev->dev,
560 usb_sndctrlpipe(gspca_dev->dev, 0),
561 0x08,
562 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
563 value, 0,
564 tmpbuf, len,
565 500);
566 kfree(tmpbuf);
567 } 662 }
663#endif
664 memcpy(gspca_dev->usb_buf, buffer, len);
665 usb_control_msg(gspca_dev->dev,
666 usb_sndctrlpipe(gspca_dev->dev, 0),
667 0x08,
668 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_INTERFACE,
669 value, 0,
670 gspca_dev->usb_buf, len,
671 500);
568} 672}
569 673
570/* I2C write 1 byte */ 674/* I2C write 1 byte */
@@ -665,7 +769,7 @@ static int configure_gpio(struct gspca_dev *gspca_dev,
665 static const __u8 regd4[] = {0x60, 0x00, 0x00}; 769 static const __u8 regd4[] = {0x60, 0x00, 0x00};
666 770
667 reg_w1(gspca_dev, 0xf1, 0x00); 771 reg_w1(gspca_dev, 0xf1, 0x00);
668 reg_w1(gspca_dev, 0x01, 0x00); /*jfm was sn9c1xx[1] in v1*/ 772 reg_w1(gspca_dev, 0x01, sn9c1xx[1]);
669 773
670 /* configure gpio */ 774 /* configure gpio */
671 reg_w(gspca_dev, 0x01, &sn9c1xx[1], 2); 775 reg_w(gspca_dev, 0x01, &sn9c1xx[1], 2);
@@ -685,21 +789,41 @@ static int configure_gpio(struct gspca_dev *gspca_dev,
685 789
686 reg_w(gspca_dev, 0x03, &sn9c1xx[3], 0x0f); 790 reg_w(gspca_dev, 0x03, &sn9c1xx[3], 0x0f);
687 791
688 switch (sd->bridge) { 792 switch (sd->sensor) {
689 case BRIDGE_SN9C325: 793 case SENSOR_OM6802:
794 reg_w1(gspca_dev, 0x02, 0x71);
795 reg_w1(gspca_dev, 0x01, 0x42);
796 reg_w1(gspca_dev, 0x17, 0x64);
797 reg_w1(gspca_dev, 0x01, 0x42);
798 break;
799/*jfm: from win trace */
800 case SENSOR_OV7630:
801 reg_w1(gspca_dev, 0x01, 0x61);
802 reg_w1(gspca_dev, 0x17, 0xe2);
803 reg_w1(gspca_dev, 0x01, 0x60);
804 reg_w1(gspca_dev, 0x01, 0x40);
805 break;
806 case SENSOR_OV7648:
690 reg_w1(gspca_dev, 0x01, 0x43); 807 reg_w1(gspca_dev, 0x01, 0x43);
691 reg_w1(gspca_dev, 0x17, 0xae); 808 reg_w1(gspca_dev, 0x17, 0xae);
692 reg_w1(gspca_dev, 0x01, 0x42); 809 reg_w1(gspca_dev, 0x01, 0x42);
693 break; 810 break;
811/*jfm: from win trace */
812 case SENSOR_OV7660:
813 reg_w1(gspca_dev, 0x01, 0x61);
814 reg_w1(gspca_dev, 0x17, 0x20);
815 reg_w1(gspca_dev, 0x01, 0x60);
816 reg_w1(gspca_dev, 0x01, 0x40);
817 break;
694 default: 818 default:
695 reg_w1(gspca_dev, 0x01, 0x43); 819 reg_w1(gspca_dev, 0x01, 0x43);
696 reg_w1(gspca_dev, 0x17, 0x61); 820 reg_w1(gspca_dev, 0x17, 0x61);
697 reg_w1(gspca_dev, 0x01, 0x42); 821 reg_w1(gspca_dev, 0x01, 0x42);
698 } 822 if (sd->sensor == SENSOR_HV7131R) {
699 823 if (probesensor(gspca_dev) < 0)
700 if (sd->sensor == SENSOR_HV7131R) { 824 return -ENODEV;
701 if (probesensor(gspca_dev) < 0) 825 }
702 return -ENODEV; 826 break;
703 } 827 }
704 return 0; 828 return 0;
705} 829}
@@ -737,6 +861,40 @@ static void mo4000_InitSensor(struct gspca_dev *gspca_dev)
737 } 861 }
738} 862}
739 863
864static void om6802_InitSensor(struct gspca_dev *gspca_dev)
865{
866 int i = 0;
867
868 while (om6802_sensor_init[i][0]) {
869 i2c_w8(gspca_dev, om6802_sensor_init[i]);
870 i++;
871 }
872}
873
874static void ov7630_InitSensor(struct gspca_dev *gspca_dev)
875{
876 int i = 0;
877
878 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 76 01 */
879 i++;
880 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 c8 (RGB+SRST) */
881 i++;
882 msleep(20);
883 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 48 */
884 i++;
885 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 c8 */
886 i++;
887 msleep(20);
888 i2c_w8(gspca_dev, ov7630_sensor_init[i]); /* 12 48 */
889 i++;
890/*jfm:win i2c_r from 00 to 80*/
891
892 while (ov7630_sensor_init[i][0]) {
893 i2c_w8(gspca_dev, ov7630_sensor_init[i]);
894 i++;
895 }
896}
897
740static void ov7648_InitSensor(struct gspca_dev *gspca_dev) 898static void ov7648_InitSensor(struct gspca_dev *gspca_dev)
741{ 899{
742 int i = 0; 900 int i = 0;
@@ -783,11 +941,19 @@ static int sd_config(struct gspca_dev *gspca_dev,
783 sd->autogain = AUTOGAIN_DEF; 941 sd->autogain = AUTOGAIN_DEF;
784 sd->ag_cnt = -1; 942 sd->ag_cnt = -1;
785 943
944 switch (sd->sensor) {
945 case SENSOR_OV7630:
946 case SENSOR_OV7648:
947 case SENSOR_OV7660:
948 gspca_dev->ctrl_dis = (1 << AUTOGAIN_IDX);
949 break;
950 }
951
786 return 0; 952 return 0;
787} 953}
788 954
789/* this function is called at open time */ 955/* this function is called at probe and resume time */
790static int sd_open(struct gspca_dev *gspca_dev) 956static int sd_init(struct gspca_dev *gspca_dev)
791{ 957{
792 struct sd *sd = (struct sd *) gspca_dev; 958 struct sd *sd = (struct sd *) gspca_dev;
793/* const __u8 *sn9c1xx; */ 959/* const __u8 *sn9c1xx; */
@@ -891,16 +1057,53 @@ static unsigned int setexposure(struct gspca_dev *gspca_dev,
891 | ((expoMo10[3] & 0x30) >> 4)); 1057 | ((expoMo10[3] & 0x30) >> 4));
892 break; 1058 break;
893 } 1059 }
1060 case SENSOR_OM6802: {
1061 __u8 gainOm[] =
1062 { 0xa0, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00, 0x10 };
1063
1064 if (expo > 0x03ff)
1065 expo = 0x03ff;
1066 if (expo < 0x0001)
1067 expo = 0x0001;
1068 gainOm[3] = expo >> 2;
1069 i2c_w8(gspca_dev, gainOm);
1070 reg_w1(gspca_dev, 0x96, (expo >> 5) & 0x1f);
1071 PDEBUG(D_CONF, "set exposure %d", gainOm[3]);
1072 break;
1073 }
894 } 1074 }
895 return expo; 1075 return expo;
896} 1076}
897 1077
1078/* this function is used for sensors o76xx only */
1079static void setbrightcont(struct gspca_dev *gspca_dev)
1080{
1081 struct sd *sd = (struct sd *) gspca_dev;
1082 unsigned val;
1083 __u8 reg84_full[0x15];
1084
1085 memset(reg84_full, 0, sizeof reg84_full);
1086 val = sd->contrast * 0x20 / CONTRAST_MAX + 0x10; /* 10..30 */
1087 reg84_full[2] = val;
1088 reg84_full[0] = (val + 1) / 2;
1089 reg84_full[4] = (val + 1) / 5;
1090 if (val > BRIGHTNESS_DEF)
1091 val = (sd->brightness - BRIGHTNESS_DEF) * 0x20
1092 / BRIGHTNESS_MAX;
1093 else
1094 val = 0;
1095 reg84_full[0x12] = val; /* 00..1f */
1096 reg_w(gspca_dev, 0x84, reg84_full, sizeof reg84_full);
1097}
1098
1099/* sensor != ov76xx */
898static void setbrightness(struct gspca_dev *gspca_dev) 1100static void setbrightness(struct gspca_dev *gspca_dev)
899{ 1101{
900 struct sd *sd = (struct sd *) gspca_dev; 1102 struct sd *sd = (struct sd *) gspca_dev;
901 unsigned int expo; 1103 unsigned int expo;
902 __u8 k2; 1104 __u8 k2;
903 1105
1106 k2 = sd->brightness >> 10;
904 switch (sd->sensor) { 1107 switch (sd->sensor) {
905 case SENSOR_HV7131R: 1108 case SENSOR_HV7131R:
906 expo = sd->brightness << 4; 1109 expo = sd->brightness << 4;
@@ -915,12 +1118,17 @@ static void setbrightness(struct gspca_dev *gspca_dev)
915 expo = sd->brightness >> 4; 1118 expo = sd->brightness >> 4;
916 sd->exposure = setexposure(gspca_dev, expo); 1119 sd->exposure = setexposure(gspca_dev, expo);
917 break; 1120 break;
1121 case SENSOR_OM6802:
1122 expo = sd->brightness >> 6;
1123 sd->exposure = setexposure(gspca_dev, expo);
1124 k2 = sd->brightness >> 11;
1125 break;
918 } 1126 }
919 1127
920 k2 = sd->brightness >> 10;
921 reg_w1(gspca_dev, 0x96, k2); 1128 reg_w1(gspca_dev, 0x96, k2);
922} 1129}
923 1130
1131/* sensor != ov76xx */
924static void setcontrast(struct gspca_dev *gspca_dev) 1132static void setcontrast(struct gspca_dev *gspca_dev)
925{ 1133{
926 struct sd *sd = (struct sd *) gspca_dev; 1134 struct sd *sd = (struct sd *) gspca_dev;
@@ -937,31 +1145,30 @@ static void setcontrast(struct gspca_dev *gspca_dev)
937static void setcolors(struct gspca_dev *gspca_dev) 1145static void setcolors(struct gspca_dev *gspca_dev)
938{ 1146{
939 struct sd *sd = (struct sd *) gspca_dev; 1147 struct sd *sd = (struct sd *) gspca_dev;
940 __u8 data; 1148 __u8 blue, red;
941 int colour;
942 1149
943 colour = sd->colors - 128; 1150 if (sd->colors >= 32) {
944 if (colour > 0) 1151 red = 32 + (sd->colors - 32) / 2;
945 data = (colour + 32) & 0x7f; /* blue */ 1152 blue = 64 - sd->colors;
946 else 1153 } else {
947 data = (-colour + 32) & 0x7f; /* red */ 1154 red = sd->colors;
948 reg_w1(gspca_dev, 0x05, data); 1155 blue = 32 + (32 - sd->colors) / 2;
1156 }
1157 reg_w1(gspca_dev, 0x05, red);
1158/* reg_w1(gspca_dev, 0x07, 32); */
1159 reg_w1(gspca_dev, 0x06, blue);
949} 1160}
950 1161
951static void setautogain(struct gspca_dev *gspca_dev) 1162static void setautogain(struct gspca_dev *gspca_dev)
952{ 1163{
953 struct sd *sd = (struct sd *) gspca_dev; 1164 struct sd *sd = (struct sd *) gspca_dev;
954 1165
955 switch (sd->sensor) { 1166 if (gspca_dev->ctrl_dis & (1 << AUTOGAIN_IDX))
956 case SENSOR_HV7131R: 1167 return;
957 case SENSOR_MO4000: 1168 if (sd->autogain)
958 case SENSOR_MI0360: 1169 sd->ag_cnt = AG_CNT_START;
959 if (sd->autogain) 1170 else
960 sd->ag_cnt = AG_CNT_START; 1171 sd->ag_cnt = -1;
961 else
962 sd->ag_cnt = -1;
963 break;
964 }
965} 1172}
966 1173
967/* -- start the camera -- */ 1174/* -- start the camera -- */
@@ -975,13 +1182,12 @@ static void sd_start(struct gspca_dev *gspca_dev)
975 static const __u8 C0[] = { 0x2d, 0x2d, 0x3a, 0x05, 0x04, 0x3f }; 1182 static const __u8 C0[] = { 0x2d, 0x2d, 0x3a, 0x05, 0x04, 0x3f };
976 static const __u8 CA[] = { 0x28, 0xd8, 0x14, 0xec }; 1183 static const __u8 CA[] = { 0x28, 0xd8, 0x14, 0xec };
977 static const __u8 CE[] = { 0x32, 0xdd, 0x2d, 0xdd }; /* MI0360 */ 1184 static const __u8 CE[] = { 0x32, 0xdd, 0x2d, 0xdd }; /* MI0360 */
978 static const __u8 CE_sn9c325[] = 1185 static const __u8 CE_ov76xx[] =
979 { 0x32, 0xdd, 0x32, 0xdd }; /* OV7648 - SN9C325 */ 1186 { 0x32, 0xdd, 0x32, 0xdd }; /* OV7630/48 */
980 1187
981 sn9c1xx = sn_tb[(int) sd->sensor]; 1188 sn9c1xx = sn_tb[(int) sd->sensor];
982 configure_gpio(gspca_dev, sn9c1xx); 1189 configure_gpio(gspca_dev, sn9c1xx);
983 1190
984/* reg_w1(gspca_dev, 0x01, 0x44); jfm from win trace*/
985 reg_w1(gspca_dev, 0x15, sn9c1xx[0x15]); 1191 reg_w1(gspca_dev, 0x15, sn9c1xx[0x15]);
986 reg_w1(gspca_dev, 0x16, sn9c1xx[0x16]); 1192 reg_w1(gspca_dev, 0x16, sn9c1xx[0x16]);
987 reg_w1(gspca_dev, 0x12, sn9c1xx[0x12]); 1193 reg_w1(gspca_dev, 0x12, sn9c1xx[0x12]);
@@ -994,10 +1200,17 @@ static void sd_start(struct gspca_dev *gspca_dev)
994 reg_w1(gspca_dev, 0xc8, 0x50); 1200 reg_w1(gspca_dev, 0xc8, 0x50);
995 reg_w1(gspca_dev, 0xc9, 0x3c); 1201 reg_w1(gspca_dev, 0xc9, 0x3c);
996 reg_w1(gspca_dev, 0x18, sn9c1xx[0x18]); 1202 reg_w1(gspca_dev, 0x18, sn9c1xx[0x18]);
997 switch (sd->bridge) { 1203 switch (sd->sensor) {
998 case BRIDGE_SN9C325: 1204 case SENSOR_OV7630:
1205 reg17 = 0xe2;
1206 break;
1207 case SENSOR_OV7648:
999 reg17 = 0xae; 1208 reg17 = 0xae;
1000 break; 1209 break;
1210/*jfm: from win trace */
1211 case SENSOR_OV7660:
1212 reg17 = 0xa0;
1213 break;
1001 default: 1214 default:
1002 reg17 = 0x60; 1215 reg17 = 0x60;
1003 break; 1216 break;
@@ -1007,24 +1220,11 @@ static void sd_start(struct gspca_dev *gspca_dev)
1007 reg_w1(gspca_dev, 0x07, sn9c1xx[7]); 1220 reg_w1(gspca_dev, 0x07, sn9c1xx[7]);
1008 reg_w1(gspca_dev, 0x06, sn9c1xx[6]); 1221 reg_w1(gspca_dev, 0x06, sn9c1xx[6]);
1009 reg_w1(gspca_dev, 0x14, sn9c1xx[0x14]); 1222 reg_w1(gspca_dev, 0x14, sn9c1xx[0x14]);
1010 switch (sd->bridge) { 1223 reg_w(gspca_dev, 0x20, gamma_def, sizeof gamma_def);
1011 case BRIDGE_SN9C325: 1224 for (i = 0; i < 8; i++)
1012 reg_w(gspca_dev, 0x20, regsn20_sn9c325, 1225 reg_w(gspca_dev, 0x84, reg84, sizeof reg84);
1013 sizeof regsn20_sn9c325);
1014 for (i = 0; i < 8; i++)
1015 reg_w(gspca_dev, 0x84, reg84_sn9c325,
1016 sizeof reg84_sn9c325);
1017 reg_w1(gspca_dev, 0x9a, 0x0a);
1018 reg_w1(gspca_dev, 0x99, 0x60);
1019 break;
1020 default:
1021 reg_w(gspca_dev, 0x20, regsn20, sizeof regsn20);
1022 for (i = 0; i < 8; i++)
1023 reg_w(gspca_dev, 0x84, reg84, sizeof reg84);
1024 reg_w1(gspca_dev, 0x9a, 0x08); 1226 reg_w1(gspca_dev, 0x9a, 0x08);
1025 reg_w1(gspca_dev, 0x99, 0x59); 1227 reg_w1(gspca_dev, 0x99, 0x59);
1026 break;
1027 }
1028 1228
1029 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; 1229 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
1030 if (mode) 1230 if (mode)
@@ -1049,6 +1249,15 @@ static void sd_start(struct gspca_dev *gspca_dev)
1049/* reg1 = 0x06; * 640 clk 24Mz (done) */ 1249/* reg1 = 0x06; * 640 clk 24Mz (done) */
1050 } 1250 }
1051 break; 1251 break;
1252 case SENSOR_OM6802:
1253 om6802_InitSensor(gspca_dev);
1254 reg17 = 0x64; /* 640 MCKSIZE */
1255 break;
1256 case SENSOR_OV7630:
1257 ov7630_InitSensor(gspca_dev);
1258 reg17 = 0xe2;
1259 reg1 = 0x44;
1260 break;
1052 case SENSOR_OV7648: 1261 case SENSOR_OV7648:
1053 ov7648_InitSensor(gspca_dev); 1262 ov7648_InitSensor(gspca_dev);
1054 reg17 = 0xa2; 1263 reg17 = 0xa2;
@@ -1073,9 +1282,10 @@ static void sd_start(struct gspca_dev *gspca_dev)
1073 } 1282 }
1074 reg_w(gspca_dev, 0xc0, C0, 6); 1283 reg_w(gspca_dev, 0xc0, C0, 6);
1075 reg_w(gspca_dev, 0xca, CA, 4); 1284 reg_w(gspca_dev, 0xca, CA, 4);
1076 switch (sd->bridge) { 1285 switch (sd->sensor) {
1077 case BRIDGE_SN9C325: 1286 case SENSOR_OV7630:
1078 reg_w(gspca_dev, 0xce, CE_sn9c325, 4); 1287 case SENSOR_OV7648:
1288 reg_w(gspca_dev, 0xce, CE_ov76xx, 4);
1079 break; 1289 break;
1080 default: 1290 default:
1081 reg_w(gspca_dev, 0xce, CE, 4); 1291 reg_w(gspca_dev, 0xce, CE, 4);
@@ -1093,10 +1303,20 @@ static void sd_start(struct gspca_dev *gspca_dev)
1093 reg_w1(gspca_dev, 0x18, reg18); 1303 reg_w1(gspca_dev, 0x18, reg18);
1094 1304
1095 reg_w1(gspca_dev, 0x17, reg17); 1305 reg_w1(gspca_dev, 0x17, reg17);
1096 reg_w1(gspca_dev, 0x01, reg1); 1306 switch (sd->sensor) {
1097 setbrightness(gspca_dev); 1307 case SENSOR_HV7131R:
1098 setcontrast(gspca_dev); 1308 case SENSOR_MI0360:
1309 case SENSOR_MO4000:
1310 case SENSOR_OM6802:
1311 setbrightness(gspca_dev);
1312 setcontrast(gspca_dev);
1313 break;
1314 default: /* OV76xx */
1315 setbrightcont(gspca_dev);
1316 break;
1317 }
1099 setautogain(gspca_dev); 1318 setautogain(gspca_dev);
1319 reg_w1(gspca_dev, 0x01, reg1);
1100} 1320}
1101 1321
1102static void sd_stopN(struct gspca_dev *gspca_dev) 1322static void sd_stopN(struct gspca_dev *gspca_dev)
@@ -1119,6 +1339,7 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1119 i2c_w8(gspca_dev, stopmi0360); 1339 i2c_w8(gspca_dev, stopmi0360);
1120 data = 0x29; 1340 data = 0x29;
1121 break; 1341 break;
1342 case SENSOR_OV7630:
1122 case SENSOR_OV7648: 1343 case SENSOR_OV7648:
1123 data = 0x29; 1344 data = 0x29;
1124 break; 1345 break;
@@ -1132,15 +1353,7 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1132 reg_w1(gspca_dev, 0x17, sn9c1xx[0x17]); 1353 reg_w1(gspca_dev, 0x17, sn9c1xx[0x17]);
1133 reg_w1(gspca_dev, 0x01, sn9c1xx[1]); 1354 reg_w1(gspca_dev, 0x01, sn9c1xx[1]);
1134 reg_w1(gspca_dev, 0x01, data); 1355 reg_w1(gspca_dev, 0x01, data);
1135 reg_w1(gspca_dev, 0xf1, 0x01); 1356 reg_w1(gspca_dev, 0xf1, 0x00);
1136}
1137
1138static void sd_stop0(struct gspca_dev *gspca_dev)
1139{
1140}
1141
1142static void sd_close(struct gspca_dev *gspca_dev)
1143{
1144} 1357}
1145 1358
1146static void do_autogain(struct gspca_dev *gspca_dev) 1359static void do_autogain(struct gspca_dev *gspca_dev)
@@ -1174,6 +1387,7 @@ static void do_autogain(struct gspca_dev *gspca_dev)
1174 default: 1387 default:
1175/* case SENSOR_MO4000: */ 1388/* case SENSOR_MO4000: */
1176/* case SENSOR_MI0360: */ 1389/* case SENSOR_MI0360: */
1390/* case SENSOR_OM6802: */
1177 expotimes = sd->exposure; 1391 expotimes = sd->exposure;
1178 expotimes += (luma_mean - delta) >> 6; 1392 expotimes += (luma_mean - delta) >> 6;
1179 if (expotimes < 0) 1393 if (expotimes < 0)
@@ -1229,69 +1443,24 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1229 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); 1443 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
1230} 1444}
1231 1445
1232static unsigned int getexposure(struct gspca_dev *gspca_dev)
1233{
1234 struct sd *sd = (struct sd *) gspca_dev;
1235 __u8 hexpo, mexpo, lexpo;
1236
1237 switch (sd->sensor) {
1238 case SENSOR_HV7131R:
1239 /* read sensor exposure */
1240 i2c_r5(gspca_dev, 0x25);
1241 return (gspca_dev->usb_buf[0] << 16)
1242 | (gspca_dev->usb_buf[1] << 8)
1243 | gspca_dev->usb_buf[2];
1244 case SENSOR_MI0360:
1245 /* read sensor exposure */
1246 i2c_r5(gspca_dev, 0x09);
1247 return (gspca_dev->usb_buf[0] << 8)
1248 | gspca_dev->usb_buf[1];
1249 case SENSOR_MO4000:
1250 i2c_r5(gspca_dev, 0x0e);
1251 hexpo = 0; /* gspca_dev->usb_buf[1] & 0x07; */
1252 mexpo = 0x40; /* gspca_dev->usb_buf[2] & 0xff; */
1253 lexpo = (gspca_dev->usb_buf[1] & 0x30) >> 4;
1254 PDEBUG(D_CONF, "exposure %d",
1255 (hexpo << 10) | (mexpo << 2) | lexpo);
1256 return (hexpo << 10) | (mexpo << 2) | lexpo;
1257 default:
1258/* case SENSOR_OV7648: * jfm: is it ok for 7648? */
1259/* case SENSOR_OV7660: */
1260 /* read sensor exposure */
1261 i2c_r5(gspca_dev, 0x04);
1262 hexpo = gspca_dev->usb_buf[3] & 0x2f;
1263 lexpo = gspca_dev->usb_buf[0] & 0x02;
1264 i2c_r5(gspca_dev, 0x08);
1265 mexpo = gspca_dev->usb_buf[2];
1266 return (hexpo << 10) | (mexpo << 2) | lexpo;
1267 }
1268}
1269
1270static void getbrightness(struct gspca_dev *gspca_dev)
1271{
1272 struct sd *sd = (struct sd *) gspca_dev;
1273
1274 /* hardcoded registers seem not readable */
1275 switch (sd->sensor) {
1276 case SENSOR_HV7131R:
1277 sd->brightness = getexposure(gspca_dev) >> 4;
1278 break;
1279 case SENSOR_MI0360:
1280 sd->brightness = getexposure(gspca_dev) << 4;
1281 break;
1282 case SENSOR_MO4000:
1283 sd->brightness = getexposure(gspca_dev) << 4;
1284 break;
1285 }
1286}
1287
1288static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val) 1446static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val)
1289{ 1447{
1290 struct sd *sd = (struct sd *) gspca_dev; 1448 struct sd *sd = (struct sd *) gspca_dev;
1291 1449
1292 sd->brightness = val; 1450 sd->brightness = val;
1293 if (gspca_dev->streaming) 1451 if (gspca_dev->streaming) {
1294 setbrightness(gspca_dev); 1452 switch (sd->sensor) {
1453 case SENSOR_HV7131R:
1454 case SENSOR_MI0360:
1455 case SENSOR_MO4000:
1456 case SENSOR_OM6802:
1457 setbrightness(gspca_dev);
1458 break;
1459 default: /* OV76xx */
1460 setbrightcont(gspca_dev);
1461 break;
1462 }
1463 }
1295 return 0; 1464 return 0;
1296} 1465}
1297 1466
@@ -1299,7 +1468,6 @@ static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val)
1299{ 1468{
1300 struct sd *sd = (struct sd *) gspca_dev; 1469 struct sd *sd = (struct sd *) gspca_dev;
1301 1470
1302 getbrightness(gspca_dev);
1303 *val = sd->brightness; 1471 *val = sd->brightness;
1304 return 0; 1472 return 0;
1305} 1473}
@@ -1309,8 +1477,19 @@ static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
1309 struct sd *sd = (struct sd *) gspca_dev; 1477 struct sd *sd = (struct sd *) gspca_dev;
1310 1478
1311 sd->contrast = val; 1479 sd->contrast = val;
1312 if (gspca_dev->streaming) 1480 if (gspca_dev->streaming) {
1313 setcontrast(gspca_dev); 1481 switch (sd->sensor) {
1482 case SENSOR_HV7131R:
1483 case SENSOR_MI0360:
1484 case SENSOR_MO4000:
1485 case SENSOR_OM6802:
1486 setcontrast(gspca_dev);
1487 break;
1488 default: /* OV76xx */
1489 setbrightcont(gspca_dev);
1490 break;
1491 }
1492 }
1314 return 0; 1493 return 0;
1315} 1494}
1316 1495
@@ -1364,11 +1543,9 @@ static const struct sd_desc sd_desc = {
1364 .ctrls = sd_ctrls, 1543 .ctrls = sd_ctrls,
1365 .nctrls = ARRAY_SIZE(sd_ctrls), 1544 .nctrls = ARRAY_SIZE(sd_ctrls),
1366 .config = sd_config, 1545 .config = sd_config,
1367 .open = sd_open, 1546 .init = sd_init,
1368 .start = sd_start, 1547 .start = sd_start,
1369 .stopN = sd_stopN, 1548 .stopN = sd_stopN,
1370 .stop0 = sd_stop0,
1371 .close = sd_close,
1372 .pkt_scan = sd_pkt_scan, 1549 .pkt_scan = sd_pkt_scan,
1373 .dq_callback = do_autogain, 1550 .dq_callback = do_autogain,
1374}; 1551};
@@ -1379,7 +1556,7 @@ static const struct sd_desc sd_desc = {
1379 | (SENSOR_ ## sensor << 8) \ 1556 | (SENSOR_ ## sensor << 8) \
1380 | (i2c_addr) 1557 | (i2c_addr)
1381static const __devinitdata struct usb_device_id device_table[] = { 1558static const __devinitdata struct usb_device_id device_table[] = {
1382#ifndef CONFIG_USB_SN9C102 1559#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1383 {USB_DEVICE(0x0458, 0x7025), BSI(SN9C120, MI0360, 0x5d)}, 1560 {USB_DEVICE(0x0458, 0x7025), BSI(SN9C120, MI0360, 0x5d)},
1384 {USB_DEVICE(0x045e, 0x00f5), BSI(SN9C105, OV7660, 0x21)}, 1561 {USB_DEVICE(0x045e, 0x00f5), BSI(SN9C105, OV7660, 0x21)},
1385 {USB_DEVICE(0x045e, 0x00f7), BSI(SN9C105, OV7660, 0x21)}, 1562 {USB_DEVICE(0x045e, 0x00f7), BSI(SN9C105, OV7660, 0x21)},
@@ -1406,15 +1583,17 @@ static const __devinitdata struct usb_device_id device_table[] = {
1406/* {USB_DEVICE(0x0c45, 0x6108), BSI(SN9C120, OM6801, 0x??)}, */ 1583/* {USB_DEVICE(0x0c45, 0x6108), BSI(SN9C120, OM6801, 0x??)}, */
1407/* {USB_DEVICE(0x0c45, 0x6122), BSI(SN9C110, ICM105C, 0x??)}, */ 1584/* {USB_DEVICE(0x0c45, 0x6122), BSI(SN9C110, ICM105C, 0x??)}, */
1408/* {USB_DEVICE(0x0c45, 0x6123), BSI(SN9C110, SanyoCCD, 0x??)}, */ 1585/* {USB_DEVICE(0x0c45, 0x6123), BSI(SN9C110, SanyoCCD, 0x??)}, */
1409 {USB_DEVICE(0x0c45, 0x612a), BSI(SN9C325, OV7648, 0x21)}, 1586 {USB_DEVICE(0x0c45, 0x6128), BSI(SN9C110, OM6802, 0x21)}, /*sn9c325?*/
1410/* bw600.inf: 1587/*bw600.inf:*/
1411 {USB_DEVICE(0x0c45, 0x612a), BSI(SN9C110, OV7648, 0x21)}, */ 1588 {USB_DEVICE(0x0c45, 0x612a), BSI(SN9C110, OV7648, 0x21)}, /*sn9c325?*/
1412 {USB_DEVICE(0x0c45, 0x612c), BSI(SN9C110, MO4000, 0x21)}, 1589 {USB_DEVICE(0x0c45, 0x612c), BSI(SN9C110, MO4000, 0x21)},
1413/* {USB_DEVICE(0x0c45, 0x612e), BSI(SN9C110, OV7630, 0x??)}, */ 1590 {USB_DEVICE(0x0c45, 0x612e), BSI(SN9C110, OV7630, 0x21)},
1414/* {USB_DEVICE(0x0c45, 0x612f), BSI(SN9C110, ICM105C, 0x??)}, */ 1591/* {USB_DEVICE(0x0c45, 0x612f), BSI(SN9C110, ICM105C, 0x??)}, */
1415#ifndef CONFIG_USB_SN9C102 1592#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1416 {USB_DEVICE(0x0c45, 0x6130), BSI(SN9C120, MI0360, 0x5d)}, 1593 {USB_DEVICE(0x0c45, 0x6130), BSI(SN9C120, MI0360, 0x5d)},
1594#endif
1417 {USB_DEVICE(0x0c45, 0x6138), BSI(SN9C120, MO4000, 0x21)}, 1595 {USB_DEVICE(0x0c45, 0x6138), BSI(SN9C120, MO4000, 0x21)},
1596#if !defined CONFIG_USB_SN9C102 && !defined CONFIG_USB_SN9C102_MODULE
1418/* {USB_DEVICE(0x0c45, 0x613a), BSI(SN9C120, OV7648, 0x??)}, */ 1597/* {USB_DEVICE(0x0c45, 0x613a), BSI(SN9C120, OV7648, 0x??)}, */
1419 {USB_DEVICE(0x0c45, 0x613b), BSI(SN9C120, OV7660, 0x21)}, 1598 {USB_DEVICE(0x0c45, 0x613b), BSI(SN9C120, OV7660, 0x21)},
1420 {USB_DEVICE(0x0c45, 0x613c), BSI(SN9C120, HV7131R, 0x11)}, 1599 {USB_DEVICE(0x0c45, 0x613c), BSI(SN9C120, HV7131R, 0x11)},
@@ -1438,6 +1617,10 @@ static struct usb_driver sd_driver = {
1438 .id_table = device_table, 1617 .id_table = device_table,
1439 .probe = sd_probe, 1618 .probe = sd_probe,
1440 .disconnect = gspca_disconnect, 1619 .disconnect = gspca_disconnect,
1620#ifdef CONFIG_PM
1621 .suspend = gspca_suspend,
1622 .resume = gspca_resume,
1623#endif
1441}; 1624};
1442 1625
1443/* -- module insert / remove -- */ 1626/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca500.c b/drivers/media/video/gspca/spca500.c
index 17fe2c2a440d..6e733901fcca 100644
--- a/drivers/media/video/gspca/spca500.c
+++ b/drivers/media/video/gspca/spca500.c
@@ -645,8 +645,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
645 return 0; 645 return 0;
646} 646}
647 647
648/* this function is called at open time */ 648/* this function is called at probe and resume time */
649static int sd_open(struct gspca_dev *gspca_dev) 649static int sd_init(struct gspca_dev *gspca_dev)
650{ 650{
651 struct sd *sd = (struct sd *) gspca_dev; 651 struct sd *sd = (struct sd *) gspca_dev;
652 652
@@ -880,14 +880,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
880 gspca_dev->usb_buf[0]); 880 gspca_dev->usb_buf[0]);
881} 881}
882 882
883static void sd_stop0(struct gspca_dev *gspca_dev)
884{
885}
886
887static void sd_close(struct gspca_dev *gspca_dev)
888{
889}
890
891static void sd_pkt_scan(struct gspca_dev *gspca_dev, 883static void sd_pkt_scan(struct gspca_dev *gspca_dev,
892 struct gspca_frame *frame, /* target */ 884 struct gspca_frame *frame, /* target */
893 __u8 *data, /* isoc packet */ 885 __u8 *data, /* isoc packet */
@@ -1051,11 +1043,9 @@ static struct sd_desc sd_desc = {
1051 .ctrls = sd_ctrls, 1043 .ctrls = sd_ctrls,
1052 .nctrls = ARRAY_SIZE(sd_ctrls), 1044 .nctrls = ARRAY_SIZE(sd_ctrls),
1053 .config = sd_config, 1045 .config = sd_config,
1054 .open = sd_open, 1046 .init = sd_init,
1055 .start = sd_start, 1047 .start = sd_start,
1056 .stopN = sd_stopN, 1048 .stopN = sd_stopN,
1057 .stop0 = sd_stop0,
1058 .close = sd_close,
1059 .pkt_scan = sd_pkt_scan, 1049 .pkt_scan = sd_pkt_scan,
1060}; 1050};
1061 1051
@@ -1093,6 +1083,10 @@ static struct usb_driver sd_driver = {
1093 .id_table = device_table, 1083 .id_table = device_table,
1094 .probe = sd_probe, 1084 .probe = sd_probe,
1095 .disconnect = gspca_disconnect, 1085 .disconnect = gspca_disconnect,
1086#ifdef CONFIG_PM
1087 .suspend = gspca_suspend,
1088 .resume = gspca_resume,
1089#endif
1096}; 1090};
1097 1091
1098/* -- module insert / remove -- */ 1092/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca501.c b/drivers/media/video/gspca/spca501.c
index 51a3c3429ef0..e9eb59bae4fb 100644
--- a/drivers/media/video/gspca/spca501.c
+++ b/drivers/media/video/gspca/spca501.c
@@ -1953,8 +1953,8 @@ error:
1953 return -EINVAL; 1953 return -EINVAL;
1954} 1954}
1955 1955
1956/* this function is called at open time */ 1956/* this function is called at probe and resume time */
1957static int sd_open(struct gspca_dev *gspca_dev) 1957static int sd_init(struct gspca_dev *gspca_dev)
1958{ 1958{
1959 struct sd *sd = (struct sd *) gspca_dev; 1959 struct sd *sd = (struct sd *) gspca_dev;
1960 1960
@@ -2023,11 +2023,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
2023 2023
2024static void sd_stop0(struct gspca_dev *gspca_dev) 2024static void sd_stop0(struct gspca_dev *gspca_dev)
2025{ 2025{
2026}
2027
2028/* this function is called at close time */
2029static void sd_close(struct gspca_dev *gspca_dev)
2030{
2031 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00); 2026 reg_write(gspca_dev->dev, SPCA501_REG_CTLRL, 0x05, 0x00);
2032} 2027}
2033 2028
@@ -2120,11 +2115,10 @@ static const struct sd_desc sd_desc = {
2120 .ctrls = sd_ctrls, 2115 .ctrls = sd_ctrls,
2121 .nctrls = ARRAY_SIZE(sd_ctrls), 2116 .nctrls = ARRAY_SIZE(sd_ctrls),
2122 .config = sd_config, 2117 .config = sd_config,
2123 .open = sd_open, 2118 .init = sd_init,
2124 .start = sd_start, 2119 .start = sd_start,
2125 .stopN = sd_stopN, 2120 .stopN = sd_stopN,
2126 .stop0 = sd_stop0, 2121 .stop0 = sd_stop0,
2127 .close = sd_close,
2128 .pkt_scan = sd_pkt_scan, 2122 .pkt_scan = sd_pkt_scan,
2129}; 2123};
2130 2124
@@ -2154,6 +2148,10 @@ static struct usb_driver sd_driver = {
2154 .id_table = device_table, 2148 .id_table = device_table,
2155 .probe = sd_probe, 2149 .probe = sd_probe,
2156 .disconnect = gspca_disconnect, 2150 .disconnect = gspca_disconnect,
2151#ifdef CONFIG_PM
2152 .suspend = gspca_suspend,
2153 .resume = gspca_resume,
2154#endif
2157}; 2155};
2158 2156
2159/* -- module insert / remove -- */ 2157/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca505.c b/drivers/media/video/gspca/spca505.c
index eda29d609359..f601daf19ebe 100644
--- a/drivers/media/video/gspca/spca505.c
+++ b/drivers/media/video/gspca/spca505.c
@@ -655,8 +655,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
655 return 0; 655 return 0;
656} 656}
657 657
658/* this function is called at open time */ 658/* this function is called at probe and resume time */
659static int sd_open(struct gspca_dev *gspca_dev) 659static int sd_init(struct gspca_dev *gspca_dev)
660{ 660{
661 struct sd *sd = (struct sd *) gspca_dev; 661 struct sd *sd = (struct sd *) gspca_dev;
662 int ret; 662 int ret;
@@ -743,11 +743,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
743 743
744static void sd_stop0(struct gspca_dev *gspca_dev) 744static void sd_stop0(struct gspca_dev *gspca_dev)
745{ 745{
746}
747
748/* this function is called at close time */
749static void sd_close(struct gspca_dev *gspca_dev)
750{
751 /* This maybe reset or power control */ 746 /* This maybe reset or power control */
752 reg_write(gspca_dev->dev, 0x03, 0x03, 0x20); 747 reg_write(gspca_dev->dev, 0x03, 0x03, 0x20);
753 reg_write(gspca_dev->dev, 0x03, 0x01, 0x0); 748 reg_write(gspca_dev->dev, 0x03, 0x01, 0x0);
@@ -825,11 +820,10 @@ static const struct sd_desc sd_desc = {
825 .ctrls = sd_ctrls, 820 .ctrls = sd_ctrls,
826 .nctrls = ARRAY_SIZE(sd_ctrls), 821 .nctrls = ARRAY_SIZE(sd_ctrls),
827 .config = sd_config, 822 .config = sd_config,
828 .open = sd_open, 823 .init = sd_init,
829 .start = sd_start, 824 .start = sd_start,
830 .stopN = sd_stopN, 825 .stopN = sd_stopN,
831 .stop0 = sd_stop0, 826 .stop0 = sd_stop0,
832 .close = sd_close,
833 .pkt_scan = sd_pkt_scan, 827 .pkt_scan = sd_pkt_scan,
834}; 828};
835 829
@@ -855,6 +849,10 @@ static struct usb_driver sd_driver = {
855 .id_table = device_table, 849 .id_table = device_table,
856 .probe = sd_probe, 850 .probe = sd_probe,
857 .disconnect = gspca_disconnect, 851 .disconnect = gspca_disconnect,
852#ifdef CONFIG_PM
853 .suspend = gspca_suspend,
854 .resume = gspca_resume,
855#endif
858}; 856};
859 857
860/* -- module insert / remove -- */ 858/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca506.c b/drivers/media/video/gspca/spca506.c
index f622fa75766d..195dce96ef06 100644
--- a/drivers/media/video/gspca/spca506.c
+++ b/drivers/media/video/gspca/spca506.c
@@ -313,8 +313,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
313 return 0; 313 return 0;
314} 314}
315 315
316/* this function is called at open time */ 316/* this function is called at probe and resume time */
317static int sd_open(struct gspca_dev *gspca_dev) 317static int sd_init(struct gspca_dev *gspca_dev)
318{ 318{
319 struct usb_device *dev = gspca_dev->dev; 319 struct usb_device *dev = gspca_dev->dev;
320 320
@@ -560,14 +560,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
560 reg_w(dev, 0x03, 0x00, 0x0003); 560 reg_w(dev, 0x03, 0x00, 0x0003);
561} 561}
562 562
563static void sd_stop0(struct gspca_dev *gspca_dev)
564{
565}
566
567static void sd_close(struct gspca_dev *gspca_dev)
568{
569}
570
571static void sd_pkt_scan(struct gspca_dev *gspca_dev, 563static void sd_pkt_scan(struct gspca_dev *gspca_dev,
572 struct gspca_frame *frame, /* target */ 564 struct gspca_frame *frame, /* target */
573 __u8 *data, /* isoc packet */ 565 __u8 *data, /* isoc packet */
@@ -740,11 +732,9 @@ static struct sd_desc sd_desc = {
740 .ctrls = sd_ctrls, 732 .ctrls = sd_ctrls,
741 .nctrls = ARRAY_SIZE(sd_ctrls), 733 .nctrls = ARRAY_SIZE(sd_ctrls),
742 .config = sd_config, 734 .config = sd_config,
743 .open = sd_open, 735 .init = sd_init,
744 .start = sd_start, 736 .start = sd_start,
745 .stopN = sd_stopN, 737 .stopN = sd_stopN,
746 .stop0 = sd_stop0,
747 .close = sd_close,
748 .pkt_scan = sd_pkt_scan, 738 .pkt_scan = sd_pkt_scan,
749}; 739};
750 740
@@ -772,6 +762,10 @@ static struct usb_driver sd_driver = {
772 .id_table = device_table, 762 .id_table = device_table,
773 .probe = sd_probe, 763 .probe = sd_probe,
774 .disconnect = gspca_disconnect, 764 .disconnect = gspca_disconnect,
765#ifdef CONFIG_PM
766 .suspend = gspca_suspend,
767 .resume = gspca_resume,
768#endif
775}; 769};
776 770
777/* -- module insert / remove -- */ 771/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca508.c b/drivers/media/video/gspca/spca508.c
index 699340c17dea..281ce02103a3 100644
--- a/drivers/media/video/gspca/spca508.c
+++ b/drivers/media/video/gspca/spca508.c
@@ -1521,8 +1521,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
1521 return 0; /* success */ 1521 return 0; /* success */
1522} 1522}
1523 1523
1524/* this function is called at open time */ 1524/* this function is called at probe and resume time */
1525static int sd_open(struct gspca_dev *gspca_dev) 1525static int sd_init(struct gspca_dev *gspca_dev)
1526{ 1526{
1527/* write_vector(gspca_dev, spca508_open_data); */ 1527/* write_vector(gspca_dev, spca508_open_data); */
1528 return 0; 1528 return 0;
@@ -1554,15 +1554,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1554 reg_write(gspca_dev->dev, 0x8112, 0x20); 1554 reg_write(gspca_dev->dev, 0x8112, 0x20);
1555} 1555}
1556 1556
1557static void sd_stop0(struct gspca_dev *gspca_dev)
1558{
1559}
1560
1561/* this function is called at close time */
1562static void sd_close(struct gspca_dev *gspca_dev)
1563{
1564}
1565
1566static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1557static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1567 struct gspca_frame *frame, /* target */ 1558 struct gspca_frame *frame, /* target */
1568 __u8 *data, /* isoc packet */ 1559 __u8 *data, /* isoc packet */
@@ -1633,11 +1624,9 @@ static const struct sd_desc sd_desc = {
1633 .ctrls = sd_ctrls, 1624 .ctrls = sd_ctrls,
1634 .nctrls = ARRAY_SIZE(sd_ctrls), 1625 .nctrls = ARRAY_SIZE(sd_ctrls),
1635 .config = sd_config, 1626 .config = sd_config,
1636 .open = sd_open, 1627 .init = sd_init,
1637 .start = sd_start, 1628 .start = sd_start,
1638 .stopN = sd_stopN, 1629 .stopN = sd_stopN,
1639 .stop0 = sd_stop0,
1640 .close = sd_close,
1641 .pkt_scan = sd_pkt_scan, 1630 .pkt_scan = sd_pkt_scan,
1642}; 1631};
1643 1632
@@ -1667,6 +1656,10 @@ static struct usb_driver sd_driver = {
1667 .id_table = device_table, 1656 .id_table = device_table,
1668 .probe = sd_probe, 1657 .probe = sd_probe,
1669 .disconnect = gspca_disconnect, 1658 .disconnect = gspca_disconnect,
1659#ifdef CONFIG_PM
1660 .suspend = gspca_suspend,
1661 .resume = gspca_resume,
1662#endif
1670}; 1663};
1671 1664
1672/* -- module insert / remove -- */ 1665/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/spca561.c b/drivers/media/video/gspca/spca561.c
index 1073ac3d2ec6..cfbc9ebc5c5d 100644
--- a/drivers/media/video/gspca/spca561.c
+++ b/drivers/media/video/gspca/spca561.c
@@ -32,69 +32,48 @@ MODULE_LICENSE("GPL");
32struct sd { 32struct sd {
33 struct gspca_dev gspca_dev; /* !! must be the first item */ 33 struct gspca_dev gspca_dev; /* !! must be the first item */
34 34
35 unsigned short contrast; 35 __u16 contrast; /* rev72a only */
36 __u8 brightness; 36#define CONTRAST_MIN 0x0000
37#define CONTRAST_DEF 0x2000
38#define CONTRAST_MAX 0x3fff
39
40 __u16 exposure; /* rev12a only */
41#define EXPOSURE_MIN 1
42#define EXPOSURE_DEF 200
43#define EXPOSURE_MAX (4095 - 900) /* see set_exposure */
44
45 __u8 brightness; /* rev72a only */
46#define BRIGHTNESS_MIN 0
47#define BRIGHTNESS_DEF 32
48#define BRIGHTNESS_MAX 63
49
50 __u8 white; /* rev12a only */
51#define WHITE_MIN 1
52#define WHITE_DEF 0x40
53#define WHITE_MAX 0x7f
54
37 __u8 autogain; 55 __u8 autogain;
56#define AUTOGAIN_MIN 0
57#define AUTOGAIN_DEF 1
58#define AUTOGAIN_MAX 1
59
60 __u8 gain; /* rev12a only */
61#define GAIN_MIN 0x0
62#define GAIN_DEF 0x24
63#define GAIN_MAX 0x24
64
65#define EXPO12A_DEF 3
66 __u8 expo12a; /* expo/gain? for rev 12a */
38 67
39 __u8 chip_revision; 68 __u8 chip_revision;
69#define Rev012A 0
70#define Rev072A 1
71
40 signed char ag_cnt; 72 signed char ag_cnt;
41#define AG_CNT_START 13 73#define AG_CNT_START 13
42}; 74};
43 75
44/* V4L2 controls supported by the driver */ 76static struct v4l2_pix_format sif_012a_mode[] = {
45static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val);
46static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val);
47static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val);
48static int sd_getcontrast(struct gspca_dev *gspca_dev, __s32 *val);
49static int sd_setautogain(struct gspca_dev *gspca_dev, __s32 val);
50static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val);
51
52static struct ctrl sd_ctrls[] = {
53#define SD_BRIGHTNESS 0
54 {
55 {
56 .id = V4L2_CID_BRIGHTNESS,
57 .type = V4L2_CTRL_TYPE_INTEGER,
58 .name = "Brightness",
59 .minimum = 0,
60 .maximum = 63,
61 .step = 1,
62 .default_value = 32,
63 },
64 .set = sd_setbrightness,
65 .get = sd_getbrightness,
66 },
67#define SD_CONTRAST 1
68 {
69 {
70 .id = V4L2_CID_CONTRAST,
71 .type = V4L2_CTRL_TYPE_INTEGER,
72 .name = "Contrast",
73 .minimum = 0,
74 .maximum = 0x3fff,
75 .step = 1,
76 .default_value = 0x2000,
77 },
78 .set = sd_setcontrast,
79 .get = sd_getcontrast,
80 },
81#define SD_AUTOGAIN 2
82 {
83 {
84 .id = V4L2_CID_AUTOGAIN,
85 .type = V4L2_CTRL_TYPE_BOOLEAN,
86 .name = "Auto Gain",
87 .minimum = 0,
88 .maximum = 1,
89 .step = 1,
90 .default_value = 1,
91 },
92 .set = sd_setautogain,
93 .get = sd_getautogain,
94 },
95};
96
97static struct v4l2_pix_format sif_mode[] = {
98 {160, 120, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE, 77 {160, 120, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
99 .bytesperline = 160, 78 .bytesperline = 160,
100 .sizeimage = 160 * 120, 79 .sizeimage = 160 * 120,
@@ -117,6 +96,29 @@ static struct v4l2_pix_format sif_mode[] = {
117 .priv = 0}, 96 .priv = 0},
118}; 97};
119 98
99static struct v4l2_pix_format sif_072a_mode[] = {
100 {160, 120, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
101 .bytesperline = 160,
102 .sizeimage = 160 * 120,
103 .colorspace = V4L2_COLORSPACE_SRGB,
104 .priv = 3},
105 {176, 144, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
106 .bytesperline = 176,
107 .sizeimage = 176 * 144,
108 .colorspace = V4L2_COLORSPACE_SRGB,
109 .priv = 2},
110 {320, 240, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
111 .bytesperline = 320,
112 .sizeimage = 320 * 240,
113 .colorspace = V4L2_COLORSPACE_SRGB,
114 .priv = 1},
115 {352, 288, V4L2_PIX_FMT_SGBRG8, V4L2_FIELD_NONE,
116 .bytesperline = 352,
117 .sizeimage = 352 * 288,
118 .colorspace = V4L2_COLORSPACE_SRGB,
119 .priv = 0},
120};
121
120/* 122/*
121 * Initialization data 123 * Initialization data
122 * I'm not very sure how to split initialization from open data 124 * I'm not very sure how to split initialization from open data
@@ -143,12 +145,8 @@ static struct v4l2_pix_format sif_mode[] = {
143#define SPCA561_INDEX_I2C_BASE 0x8800 145#define SPCA561_INDEX_I2C_BASE 0x8800
144#define SPCA561_SNAPBIT 0x20 146#define SPCA561_SNAPBIT 0x20
145#define SPCA561_SNAPCTRL 0x40 147#define SPCA561_SNAPCTRL 0x40
146enum {
147 Rev072A = 0,
148 Rev012A,
149};
150 148
151static void reg_w_val(struct usb_device *dev, __u16 index, __u16 value) 149static void reg_w_val(struct usb_device *dev, __u16 index, __u8 value)
152{ 150{
153 int ret; 151 int ret;
154 152
@@ -198,12 +196,6 @@ static void reg_w_buf(struct gspca_dev *gspca_dev,
198 index, gspca_dev->usb_buf, len, 500); 196 index, gspca_dev->usb_buf, len, 500);
199} 197}
200 198
201static void i2c_init(struct gspca_dev *gspca_dev, __u8 mode)
202{
203 reg_w_val(gspca_dev->dev, 0x92, 0x8804);
204 reg_w_val(gspca_dev->dev, mode, 0x8802);
205}
206
207static void i2c_write(struct gspca_dev *gspca_dev, __u16 valeur, __u16 reg) 199static void i2c_write(struct gspca_dev *gspca_dev, __u16 valeur, __u16 reg)
208{ 200{
209 int retry = 60; 201 int retry = 60;
@@ -212,9 +204,9 @@ static void i2c_write(struct gspca_dev *gspca_dev, __u16 valeur, __u16 reg)
212 204
213 DataLow = valeur; 205 DataLow = valeur;
214 DataHight = valeur >> 8; 206 DataHight = valeur >> 8;
215 reg_w_val(gspca_dev->dev, reg, 0x8801); 207 reg_w_val(gspca_dev->dev, 0x8801, reg);
216 reg_w_val(gspca_dev->dev, DataLow, 0x8805); 208 reg_w_val(gspca_dev->dev, 0x8805, DataLow);
217 reg_w_val(gspca_dev->dev, DataHight, 0x8800); 209 reg_w_val(gspca_dev->dev, 0x8800, DataHight);
218 while (retry--) { 210 while (retry--) {
219 reg_r(gspca_dev, 0x8803, 1); 211 reg_r(gspca_dev, 0x8803, 1);
220 if (!gspca_dev->usb_buf[0]) 212 if (!gspca_dev->usb_buf[0])
@@ -228,14 +220,14 @@ static int i2c_read(struct gspca_dev *gspca_dev, __u16 reg, __u8 mode)
228 __u8 value; 220 __u8 value;
229 __u8 vallsb; 221 __u8 vallsb;
230 222
231 reg_w_val(gspca_dev->dev, 0x92, 0x8804); 223 reg_w_val(gspca_dev->dev, 0x8804, 0x92);
232 reg_w_val(gspca_dev->dev, reg, 0x8801); 224 reg_w_val(gspca_dev->dev, 0x8801, reg);
233 reg_w_val(gspca_dev->dev, (mode | 0x01), 0x8802); 225 reg_w_val(gspca_dev->dev, 0x8802, (mode | 0x01));
234 while (retry--) { 226 do {
235 reg_r(gspca_dev, 0x8803, 1); 227 reg_r(gspca_dev, 0x8803, 1);
236 if (!gspca_dev->usb_buf) 228 if (!gspca_dev->usb_buf)
237 break; 229 break;
238 } 230 } while (--retry);
239 if (retry == 0) 231 if (retry == 0)
240 return -1; 232 return -1;
241 reg_r(gspca_dev, 0x8800, 1); 233 reg_r(gspca_dev, 0x8800, 1);
@@ -438,21 +430,10 @@ static const __u16 spca561_init_data[][2] = {
438 {0x0035, 0x8801}, /* 0x14 - set gain general */ 430 {0x0035, 0x8801}, /* 0x14 - set gain general */
439 {0x001f, 0x8805}, /* 0x14 */ 431 {0x001f, 0x8805}, /* 0x14 */
440 {0x0000, 0x8800}, 432 {0x0000, 0x8800},
441 {0x0030, 0x8112}, 433 {0x000e, 0x8112}, /* white balance - was 30 */
442 {} 434 {}
443}; 435};
444 436
445static void sensor_reset(struct gspca_dev *gspca_dev)
446{
447 reg_w_val(gspca_dev->dev, 0x8631, 0xc8);
448 reg_w_val(gspca_dev->dev, 0x8634, 0xc8);
449 reg_w_val(gspca_dev->dev, 0x8112, 0x00);
450 reg_w_val(gspca_dev->dev, 0x8114, 0x00);
451 reg_w_val(gspca_dev->dev, 0x8118, 0x21);
452 i2c_init(gspca_dev, 0x14);
453 i2c_write(gspca_dev, 1, 0x0d);
454 i2c_write(gspca_dev, 0, 0x0d);
455}
456 437
457/******************** QC Express etch2 stuff ********************/ 438/******************** QC Express etch2 stuff ********************/
458static const __u16 Pb100_1map8300[][2] = { 439static const __u16 Pb100_1map8300[][2] = {
@@ -462,9 +443,9 @@ static const __u16 Pb100_1map8300[][2] = {
462 {0x8303, 0x0125}, /* image area */ 443 {0x8303, 0x0125}, /* image area */
463 {0x8304, 0x0169}, 444 {0x8304, 0x0169},
464 {0x8328, 0x000b}, 445 {0x8328, 0x000b},
465 {0x833c, 0x0001}, 446 {0x833c, 0x0001}, /*fixme: win:07*/
466 447
467 {0x832f, 0x0419}, 448 {0x832f, 0x1904}, /*fixme: was 0419*/
468 {0x8307, 0x00aa}, 449 {0x8307, 0x00aa},
469 {0x8301, 0x0003}, 450 {0x8301, 0x0003},
470 {0x8302, 0x000e}, 451 {0x8302, 0x000e},
@@ -478,9 +459,10 @@ static const __u16 Pb100_2map8300[][2] = {
478}; 459};
479 460
480static const __u16 spca561_161rev12A_data1[][2] = { 461static const __u16 spca561_161rev12A_data1[][2] = {
481 {0x21, 0x8118}, 462 {0x29, 0x8118}, /* white balance - was 21 */
482 {0x01, 0x8114}, 463 {0x08, 0x8114}, /* white balance - was 01 */
483 {0x00, 0x8112}, 464 {0x0e, 0x8112}, /* white balance - was 00 */
465 {0x00, 0x8102}, /* white balance - new */
484 {0x92, 0x8804}, 466 {0x92, 0x8804},
485 {0x04, 0x8802}, /* windows uses 08 */ 467 {0x04, 0x8802}, /* windows uses 08 */
486 {} 468 {}
@@ -505,14 +487,16 @@ static const __u16 spca561_161rev12A_data2[][2] = {
505 {0xb0, 0x8603}, 487 {0xb0, 0x8603},
506 488
507 /* sensor gains */ 489 /* sensor gains */
490 {0x07, 0x8601}, /* white balance - new */
491 {0x07, 0x8602}, /* white balance - new */
508 {0x00, 0x8610}, /* *red */ 492 {0x00, 0x8610}, /* *red */
509 {0x00, 0x8611}, /* 3f *green */ 493 {0x00, 0x8611}, /* 3f *green */
510 {0x00, 0x8612}, /* green *blue */ 494 {0x00, 0x8612}, /* green *blue */
511 {0x00, 0x8613}, /* blue *green */ 495 {0x00, 0x8613}, /* blue *green */
512 {0x35, 0x8614}, /* green *red */ 496 {0x43, 0x8614}, /* green *red - white balance - was 0x35 */
513 {0x35, 0x8615}, /* 40 *green */ 497 {0x40, 0x8615}, /* 40 *green - white balance - was 0x35 */
514 {0x35, 0x8616}, /* 7a *blue */ 498 {0x71, 0x8616}, /* 7a *blue - white balance - was 0x35 */
515 {0x35, 0x8617}, /* 40 *green */ 499 {0x40, 0x8617}, /* 40 *green - white balance - was 0x35 */
516 500
517 {0x0c, 0x8620}, /* 0c */ 501 {0x0c, 0x8620}, /* 0c */
518 {0xc8, 0x8631}, /* c8 */ 502 {0xc8, 0x8631}, /* c8 */
@@ -527,6 +511,7 @@ static const __u16 spca561_161rev12A_data2[][2] = {
527 {0xdf, 0x863c}, /* df */ 511 {0xdf, 0x863c}, /* df */
528 {0xf0, 0x8505}, 512 {0xf0, 0x8505},
529 {0x32, 0x850a}, 513 {0x32, 0x850a},
514/* {0x99, 0x8700}, * - white balance - new (removed) */
530 {} 515 {}
531}; 516};
532 517
@@ -545,9 +530,10 @@ static void sensor_mapwrite(struct gspca_dev *gspca_dev,
545} 530}
546static void init_161rev12A(struct gspca_dev *gspca_dev) 531static void init_161rev12A(struct gspca_dev *gspca_dev)
547{ 532{
548 sensor_reset(gspca_dev); 533/* sensor_reset(gspca_dev); (not in win) */
549 write_vector(gspca_dev, spca561_161rev12A_data1); 534 write_vector(gspca_dev, spca561_161rev12A_data1);
550 sensor_mapwrite(gspca_dev, Pb100_1map8300); 535 sensor_mapwrite(gspca_dev, Pb100_1map8300);
536/*fixme: should be in sd_start*/
551 write_vector(gspca_dev, spca561_161rev12A_data2); 537 write_vector(gspca_dev, spca561_161rev12A_data2);
552 sensor_mapwrite(gspca_dev, Pb100_2map8300); 538 sensor_mapwrite(gspca_dev, Pb100_2map8300);
553} 539}
@@ -581,35 +567,38 @@ static int sd_config(struct gspca_dev *gspca_dev,
581 } 567 }
582 568
583 cam = &gspca_dev->cam; 569 cam = &gspca_dev->cam;
584 cam->dev_name = (char *) id->driver_info;
585 cam->epaddr = 0x01; 570 cam->epaddr = 0x01;
586 gspca_dev->nbalt = 7 + 1; /* choose alternate 7 first */ 571 gspca_dev->nbalt = 7 + 1; /* choose alternate 7 first */
587 cam->cam_mode = sif_mode;
588 cam->nmodes = sizeof sif_mode / sizeof sif_mode[0];
589 572
590 sd->chip_revision = id->driver_info; 573 sd->chip_revision = id->driver_info;
591 sd->brightness = sd_ctrls[SD_BRIGHTNESS].qctrl.default_value; 574 if (sd->chip_revision == Rev012A) {
592 sd->contrast = sd_ctrls[SD_CONTRAST].qctrl.default_value; 575 cam->cam_mode = sif_012a_mode;
593 sd->autogain = sd_ctrls[SD_AUTOGAIN].qctrl.default_value; 576 cam->nmodes = ARRAY_SIZE(sif_012a_mode);
577 } else {
578 cam->cam_mode = sif_072a_mode;
579 cam->nmodes = ARRAY_SIZE(sif_072a_mode);
580 }
581 sd->brightness = BRIGHTNESS_DEF;
582 sd->contrast = CONTRAST_DEF;
583 sd->white = WHITE_DEF;
584 sd->exposure = EXPOSURE_DEF;
585 sd->autogain = AUTOGAIN_DEF;
586 sd->gain = GAIN_DEF;
587 sd->expo12a = EXPO12A_DEF;
594 return 0; 588 return 0;
595} 589}
596 590
597/* this function is called at open time */ 591/* this function is called at probe and resume time */
598static int sd_open(struct gspca_dev *gspca_dev) 592static int sd_init_12a(struct gspca_dev *gspca_dev)
599{ 593{
600 struct sd *sd = (struct sd *) gspca_dev; 594 PDEBUG(D_STREAM, "Chip revision: 012a");
601 595 init_161rev12A(gspca_dev);
602 switch (sd->chip_revision) { 596 return 0;
603 case Rev072A: 597}
604 PDEBUG(D_STREAM, "Chip revision id: 072a"); 598static int sd_init_72a(struct gspca_dev *gspca_dev)
605 write_vector(gspca_dev, spca561_init_data); 599{
606 break; 600 PDEBUG(D_STREAM, "Chip revision: 072a");
607 default: 601 write_vector(gspca_dev, spca561_init_data);
608/* case Rev012A: */
609 PDEBUG(D_STREAM, "Chip revision id: 012a");
610 init_161rev12A(gspca_dev);
611 break;
612 }
613 return 0; 602 return 0;
614} 603}
615 604
@@ -618,25 +607,20 @@ static void setcontrast(struct gspca_dev *gspca_dev)
618 struct sd *sd = (struct sd *) gspca_dev; 607 struct sd *sd = (struct sd *) gspca_dev;
619 struct usb_device *dev = gspca_dev->dev; 608 struct usb_device *dev = gspca_dev->dev;
620 __u8 lowb; 609 __u8 lowb;
621 int expotimes;
622 610
623 switch (sd->chip_revision) { 611 switch (sd->chip_revision) {
624 case Rev072A: 612 case Rev072A:
625 lowb = sd->contrast >> 8; 613 lowb = sd->contrast >> 8;
626 reg_w_val(dev, lowb, 0x8651); 614 reg_w_val(dev, 0x8651, lowb);
627 reg_w_val(dev, lowb, 0x8652); 615 reg_w_val(dev, 0x8652, lowb);
628 reg_w_val(dev, lowb, 0x8653); 616 reg_w_val(dev, 0x8653, lowb);
629 reg_w_val(dev, lowb, 0x8654); 617 reg_w_val(dev, 0x8654, lowb);
630 break; 618 break;
631 case Rev012A: { 619 default: {
632 __u8 Reg8391[] = 620/* case Rev012A: { */
633 { 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00 }; 621 static const __u8 Reg8391[] =
634 622 { 0x92, 0x30, 0x20, 0x00, 0x0c, 0x00, 0x00, 0x00 };
635 /* Write camera sensor settings */ 623
636 expotimes = (sd->contrast >> 5) & 0x07ff;
637 Reg8391[0] = expotimes & 0xff; /* exposure */
638 Reg8391[1] = 0x18 | (expotimes >> 8);
639 Reg8391[2] = sd->brightness; /* gain */
640 reg_w_buf(gspca_dev, 0x8391, Reg8391, 8); 624 reg_w_buf(gspca_dev, 0x8391, Reg8391, 8);
641 reg_w_buf(gspca_dev, 0x8390, Reg8391, 8); 625 reg_w_buf(gspca_dev, 0x8390, Reg8391, 8);
642 break; 626 break;
@@ -644,93 +628,151 @@ static void setcontrast(struct gspca_dev *gspca_dev)
644 } 628 }
645} 629}
646 630
647static void setautogain(struct gspca_dev *gspca_dev) 631/* rev12a only */
632static void setwhite(struct gspca_dev *gspca_dev)
648{ 633{
649 struct sd *sd = (struct sd *) gspca_dev; 634 struct sd *sd = (struct sd *) gspca_dev;
635 __u16 white;
636 __u8 reg8614, reg8616;
637
638 white = sd->white;
639 /* try to emulate MS-win as possible */
640 reg8616 = 0x90 - white * 5 / 8;
641 reg_w_val(gspca_dev->dev, 0x8616, reg8616);
642 reg8614 = 0x20 + white * 3 / 8;
643 reg_w_val(gspca_dev->dev, 0x8614, reg8614);
644}
650 645
651 if (sd->chip_revision == Rev072A) { 646/* rev 12a only */
652 if (sd->autogain) 647static void setexposure(struct gspca_dev *gspca_dev)
653 sd->ag_cnt = AG_CNT_START; 648{
654 else 649 struct sd *sd = (struct sd *) gspca_dev;
655 sd->ag_cnt = -1; 650 int expo;
651 int clock_divider;
652 __u8 data[2];
653
654 /* Register 0x8309 controls exposure for the spca561,
655 the basic exposure setting goes from 1-2047, where 1 is completely
656 dark and 2047 is very bright. It not only influences exposure but
657 also the framerate (to allow for longer exposure) from 1 - 300 it
658 only raises the exposure time then from 300 - 600 it halves the
659 framerate to be able to further raise the exposure time and for every
660 300 more it halves the framerate again. This allows for a maximum
661 exposure time of circa 0.2 - 0.25 seconds (30 / (2000/3000) fps).
662 Sometimes this is not enough, the 1-2047 uses bits 0-10, bits 11-12
663 configure a divider for the base framerate which us used at the
664 exposure setting of 1-300. These bits configure the base framerate
665 according to the following formula: fps = 60 / (value + 2) */
666 if (sd->exposure < 2048) {
667 expo = sd->exposure;
668 clock_divider = 0;
669 } else {
670 /* Add 900 to make the 0 setting of the second part of the
671 exposure equal to the 2047 setting of the first part. */
672 expo = (sd->exposure - 2048) + 900;
673 clock_divider = 3;
656 } 674 }
675 expo |= clock_divider << 11;
676 data[0] = expo;
677 data[1] = expo >> 8;
678 reg_w_buf(gspca_dev, 0x8309, data, 2);
657} 679}
658 680
659static void sd_start(struct gspca_dev *gspca_dev) 681/* rev 12a only */
682static void setgain(struct gspca_dev *gspca_dev)
660{ 683{
661 struct sd *sd = (struct sd *) gspca_dev; 684 struct sd *sd = (struct sd *) gspca_dev;
685 __u8 data[2];
686
687 data[0] = sd->gain;
688 data[1] = 0;
689 reg_w_buf(gspca_dev, 0x8335, data, 2);
690}
691
692static void setautogain(struct gspca_dev *gspca_dev)
693{
694 struct sd *sd = (struct sd *) gspca_dev;
695
696 if (sd->autogain)
697 sd->ag_cnt = AG_CNT_START;
698 else
699 sd->ag_cnt = -1;
700}
701
702static void sd_start_12a(struct gspca_dev *gspca_dev)
703{
662 struct usb_device *dev = gspca_dev->dev; 704 struct usb_device *dev = gspca_dev->dev;
663 int Clck; 705 int Clck = 0x8a; /* lower 0x8X values lead to fps > 30 */
664 __u8 Reg8307[] = { 0xaa, 0x00 }; 706 __u8 Reg8307[] = { 0xaa, 0x00 };
665 int mode; 707 int mode;
666 708
667 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv; 709 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
668 switch (sd->chip_revision) { 710 if (mode <= 1) {
669 case Rev072A: 711 /* Use compression on 320x240 and above */
670 switch (mode) { 712 reg_w_val(dev, 0x8500, 0x10 | mode);
671 default: 713 } else {
672/* case 0: 714 /* I couldn't get the compression to work below 320x240
673 case 1: */ 715 * Fortunately at these resolutions the bandwidth
674 Clck = 0x25; 716 * is sufficient to push raw frames at ~20fps */
675 break; 717 reg_w_val(dev, 0x8500, mode);
676 case 2: 718 } /* -- qq@kuku.eu.org */
677 Clck = 0x22; 719 reg_w_buf(gspca_dev, 0x8307, Reg8307, 2);
678 break; 720 reg_w_val(gspca_dev->dev, 0x8700, Clck);
679 case 3: 721 /* 0x8f 0x85 0x27 clock */
680 Clck = 0x21; 722 reg_w_val(gspca_dev->dev, 0x8112, 0x1e | 0x20);
681 break; 723 reg_w_val(gspca_dev->dev, 0x850b, 0x03);
682 } 724 setcontrast(gspca_dev);
683 reg_w_val(dev, 0x8500, mode); /* mode */ 725 setwhite(gspca_dev);
684 reg_w_val(dev, 0x8700, Clck); /* 0x27 clock */ 726 setautogain(gspca_dev);
685 reg_w_val(dev, 0x8112, 0x10 | 0x20); 727 setexposure(gspca_dev);
686 setautogain(gspca_dev); 728}
687 break; 729static void sd_start_72a(struct gspca_dev *gspca_dev)
730{
731 struct usb_device *dev = gspca_dev->dev;
732 int Clck;
733 int mode;
734
735 mode = gspca_dev->cam.cam_mode[(int) gspca_dev->curr_mode].priv;
736 switch (mode) {
688 default: 737 default:
689/* case Rev012A: */ 738/* case 0:
690 switch (mode) { 739 case 1: */
691 case 0: 740 Clck = 0x25;
692 case 1: 741 break;
693 Clck = 0x8a; 742 case 2:
694 break; 743 Clck = 0x22;
695 case 2: 744 break;
696 Clck = 0x85; 745 case 3:
697 break; 746 Clck = 0x21;
698 default:
699 Clck = 0x83;
700 break;
701 }
702 if (mode <= 1) {
703 /* Use compression on 320x240 and above */
704 reg_w_val(dev, 0x8500, 0x10 | mode);
705 } else {
706 /* I couldn't get the compression to work below 320x240
707 * Fortunately at these resolutions the bandwidth
708 * is sufficient to push raw frames at ~20fps */
709 reg_w_val(dev, 0x8500, mode);
710 } /* -- qq@kuku.eu.org */
711 reg_w_buf(gspca_dev, 0x8307, Reg8307, 2);
712 reg_w_val(gspca_dev->dev, 0x8700, Clck);
713 /* 0x8f 0x85 0x27 clock */
714 reg_w_val(gspca_dev->dev, 0x8112, 0x1e | 0x20);
715 reg_w_val(gspca_dev->dev, 0x850b, 0x03);
716 setcontrast(gspca_dev);
717 break; 747 break;
718 } 748 }
749 reg_w_val(dev, 0x8500, mode); /* mode */
750 reg_w_val(dev, 0x8700, Clck); /* 0x27 clock */
751 reg_w_val(dev, 0x8112, 0x10 | 0x20);
752 setautogain(gspca_dev);
719} 753}
720 754
721static void sd_stopN(struct gspca_dev *gspca_dev) 755static void sd_stopN(struct gspca_dev *gspca_dev)
722{ 756{
723 reg_w_val(gspca_dev->dev, 0x8112, 0x20); 757 struct sd *sd = (struct sd *) gspca_dev;
758
759 if (sd->chip_revision == Rev012A) {
760 reg_w_val(gspca_dev->dev, 0x8112, 0x0e);
761 } else {
762 reg_w_val(gspca_dev->dev, 0x8112, 0x20);
763/* reg_w_val(gspca_dev->dev, 0x8102, 0x00); ?? */
764 }
724} 765}
725 766
726static void sd_stop0(struct gspca_dev *gspca_dev) 767static void sd_stop0(struct gspca_dev *gspca_dev)
727{ 768{
728} 769 struct sd *sd = (struct sd *) gspca_dev;
729 770
730/* this function is called at close time */ 771 if (sd->chip_revision == Rev012A) {
731static void sd_close(struct gspca_dev *gspca_dev) 772 reg_w_val(gspca_dev->dev, 0x8118, 0x29);
732{ 773 reg_w_val(gspca_dev->dev, 0x8114, 0x08);
733 reg_w_val(gspca_dev->dev, 0x8114, 0); 774 }
775/* reg_w_val(gspca_dev->dev, 0x8114, 0); */
734} 776}
735 777
736static void do_autogain(struct gspca_dev *gspca_dev) 778static void do_autogain(struct gspca_dev *gspca_dev)
@@ -744,6 +786,7 @@ static void do_autogain(struct gspca_dev *gspca_dev)
744 __u8 luma_mean = 110; 786 __u8 luma_mean = 110;
745 __u8 luma_delta = 20; 787 __u8 luma_delta = 20;
746 __u8 spring = 4; 788 __u8 spring = 4;
789 __u8 reg8339[2];
747 790
748 if (sd->ag_cnt < 0) 791 if (sd->ag_cnt < 0)
749 return; 792 return;
@@ -798,13 +841,16 @@ static void do_autogain(struct gspca_dev *gspca_dev)
798 } 841 }
799 break; 842 break;
800 case Rev012A: 843 case Rev012A:
801 /* sensor registers is access and memory mapped to 0x8300 */ 844 reg_r(gspca_dev, 0x8330, 2);
802 /* readind all 0x83xx block the sensor */ 845 if (gspca_dev->usb_buf[1] > 0x08) {
803 /* 846 reg8339[0] = ++sd->expo12a;
804 * The data from the header seem wrong where is the luma 847 reg8339[1] = 0;
805 * and chroma mean value 848 reg_w_buf(gspca_dev, 0x8339, reg8339, 2);
806 * at the moment set exposure in contrast set 849 } else if (gspca_dev->usb_buf[1] < 0x02) {
807 */ 850 reg8339[0] = --sd->expo12a;
851 reg8339[1] = 0;
852 reg_w_buf(gspca_dev, 0x8339, reg8339, 2);
853 }
808 break; 854 break;
809 } 855 }
810} 856}
@@ -814,6 +860,8 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
814 __u8 *data, /* isoc packet */ 860 __u8 *data, /* isoc packet */
815 int len) /* iso packet length */ 861 int len) /* iso packet length */
816{ 862{
863 struct sd *sd = (struct sd *) gspca_dev;
864
817 switch (data[0]) { 865 switch (data[0]) {
818 case 0: /* start of frame */ 866 case 0: /* start of frame */
819 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, 867 frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame,
@@ -826,8 +874,13 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
826 frame, data, len); 874 frame, data, len);
827 } else { 875 } else {
828 /* raw bayer (with a header, which we skip) */ 876 /* raw bayer (with a header, which we skip) */
829 data += 20; 877 if (sd->chip_revision == Rev012A) {
830 len -= 20; 878 data += 20;
879 len -= 20;
880 } else {
881 data += 16;
882 len -= 16;
883 }
831 gspca_frame_add(gspca_dev, FIRST_PACKET, 884 gspca_frame_add(gspca_dev, FIRST_PACKET,
832 frame, data, len); 885 frame, data, len);
833 } 886 }
@@ -841,24 +894,17 @@ static void sd_pkt_scan(struct gspca_dev *gspca_dev,
841 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); 894 gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len);
842} 895}
843 896
897/* rev 72a only */
844static void setbrightness(struct gspca_dev *gspca_dev) 898static void setbrightness(struct gspca_dev *gspca_dev)
845{ 899{
846 struct sd *sd = (struct sd *) gspca_dev; 900 struct sd *sd = (struct sd *) gspca_dev;
847 __u8 value; 901 __u8 value;
848 902
849 switch (sd->chip_revision) { 903 value = sd->brightness;
850 case Rev072A: 904 reg_w_val(gspca_dev->dev, 0x8611, value);
851 value = sd->brightness; 905 reg_w_val(gspca_dev->dev, 0x8612, value);
852 reg_w_val(gspca_dev->dev, value, 0x8611); 906 reg_w_val(gspca_dev->dev, 0x8613, value);
853 reg_w_val(gspca_dev->dev, value, 0x8612); 907 reg_w_val(gspca_dev->dev, 0x8614, value);
854 reg_w_val(gspca_dev->dev, value, 0x8613);
855 reg_w_val(gspca_dev->dev, value, 0x8614);
856 break;
857 default:
858/* case Rev012A: */
859 setcontrast(gspca_dev);
860 break;
861 }
862} 908}
863 909
864static void getbrightness(struct gspca_dev *gspca_dev) 910static void getbrightness(struct gspca_dev *gspca_dev)
@@ -866,52 +912,38 @@ static void getbrightness(struct gspca_dev *gspca_dev)
866 struct sd *sd = (struct sd *) gspca_dev; 912 struct sd *sd = (struct sd *) gspca_dev;
867 __u16 tot; 913 __u16 tot;
868 914
869 switch (sd->chip_revision) { 915 tot = 0;
870 case Rev072A: 916 reg_r(gspca_dev, 0x8611, 1);
871 tot = 0; 917 tot += gspca_dev->usb_buf[0];
872 reg_r(gspca_dev, 0x8611, 1); 918 reg_r(gspca_dev, 0x8612, 1);
873 tot += gspca_dev->usb_buf[0]; 919 tot += gspca_dev->usb_buf[0];
874 reg_r(gspca_dev, 0x8612, 1); 920 reg_r(gspca_dev, 0x8613, 1);
875 tot += gspca_dev->usb_buf[0]; 921 tot += gspca_dev->usb_buf[0];
876 reg_r(gspca_dev, 0x8613, 1); 922 reg_r(gspca_dev, 0x8614, 1);
877 tot += gspca_dev->usb_buf[0]; 923 tot += gspca_dev->usb_buf[0];
878 reg_r(gspca_dev, 0x8614, 1); 924 sd->brightness = tot >> 2;
879 tot += gspca_dev->usb_buf[0];
880 sd->brightness = tot >> 2;
881 break;
882 default:
883/* case Rev012A: */
884 /* no way to read sensor settings */
885 break;
886 }
887} 925}
888 926
927/* rev72a only */
889static void getcontrast(struct gspca_dev *gspca_dev) 928static void getcontrast(struct gspca_dev *gspca_dev)
890{ 929{
891 struct sd *sd = (struct sd *) gspca_dev; 930 struct sd *sd = (struct sd *) gspca_dev;
892 __u16 tot; 931 __u16 tot;
893 932
894 switch (sd->chip_revision) { 933 tot = 0;
895 case Rev072A: 934 reg_r(gspca_dev, 0x8651, 1);
896 tot = 0; 935 tot += gspca_dev->usb_buf[0];
897 reg_r(gspca_dev, 0x8651, 1); 936 reg_r(gspca_dev, 0x8652, 1);
898 tot += gspca_dev->usb_buf[0]; 937 tot += gspca_dev->usb_buf[0];
899 reg_r(gspca_dev, 0x8652, 1); 938 reg_r(gspca_dev, 0x8653, 1);
900 tot += gspca_dev->usb_buf[0]; 939 tot += gspca_dev->usb_buf[0];
901 reg_r(gspca_dev, 0x8653, 1); 940 reg_r(gspca_dev, 0x8654, 1);
902 tot += gspca_dev->usb_buf[0]; 941 tot += gspca_dev->usb_buf[0];
903 reg_r(gspca_dev, 0x8654, 1); 942 sd->contrast = tot << 6;
904 tot += gspca_dev->usb_buf[0];
905 sd->contrast = tot << 6;
906 break;
907 default:
908/* case Rev012A: */
909 /* no way to read sensor settings */
910 break;
911 }
912 PDEBUG(D_CONF, "get contrast %d", sd->contrast); 943 PDEBUG(D_CONF, "get contrast %d", sd->contrast);
913} 944}
914 945
946/* rev 72a only */
915static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val) 947static int sd_setbrightness(struct gspca_dev *gspca_dev, __s32 val)
916{ 948{
917 struct sd *sd = (struct sd *) gspca_dev; 949 struct sd *sd = (struct sd *) gspca_dev;
@@ -931,6 +963,7 @@ static int sd_getbrightness(struct gspca_dev *gspca_dev, __s32 *val)
931 return 0; 963 return 0;
932} 964}
933 965
966/* rev 72a only */
934static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val) 967static int sd_setcontrast(struct gspca_dev *gspca_dev, __s32 val)
935{ 968{
936 struct sd *sd = (struct sd *) gspca_dev; 969 struct sd *sd = (struct sd *) gspca_dev;
@@ -968,20 +1001,190 @@ static int sd_getautogain(struct gspca_dev *gspca_dev, __s32 *val)
968 return 0; 1001 return 0;
969} 1002}
970 1003
1004/* rev12a only */
1005static int sd_setwhite(struct gspca_dev *gspca_dev, __s32 val)
1006{
1007 struct sd *sd = (struct sd *) gspca_dev;
1008
1009 sd->white = val;
1010 if (gspca_dev->streaming)
1011 setwhite(gspca_dev);
1012 return 0;
1013}
1014
1015static int sd_getwhite(struct gspca_dev *gspca_dev, __s32 *val)
1016{
1017 struct sd *sd = (struct sd *) gspca_dev;
1018
1019 *val = sd->white;
1020 return 0;
1021}
1022
1023/* rev12a only */
1024static int sd_setexposure(struct gspca_dev *gspca_dev, __s32 val)
1025{
1026 struct sd *sd = (struct sd *) gspca_dev;
1027
1028 sd->exposure = val;
1029 if (gspca_dev->streaming)
1030 setexposure(gspca_dev);
1031 return 0;
1032}
1033
1034static int sd_getexposure(struct gspca_dev *gspca_dev, __s32 *val)
1035{
1036 struct sd *sd = (struct sd *) gspca_dev;
1037
1038 *val = sd->exposure;
1039 return 0;
1040}
1041
1042/* rev12a only */
1043static int sd_setgain(struct gspca_dev *gspca_dev, __s32 val)
1044{
1045 struct sd *sd = (struct sd *) gspca_dev;
1046
1047 sd->gain = val;
1048 if (gspca_dev->streaming)
1049 setgain(gspca_dev);
1050 return 0;
1051}
1052
1053static int sd_getgain(struct gspca_dev *gspca_dev, __s32 *val)
1054{
1055 struct sd *sd = (struct sd *) gspca_dev;
1056
1057 *val = sd->gain;
1058 return 0;
1059}
1060
1061/* control tables */
1062static struct ctrl sd_ctrls_12a[] = {
1063 {
1064 {
1065 .id = V4L2_CID_DO_WHITE_BALANCE,
1066 .type = V4L2_CTRL_TYPE_INTEGER,
1067 .name = "While Balance",
1068 .minimum = WHITE_MIN,
1069 .maximum = WHITE_MAX,
1070 .step = 1,
1071 .default_value = WHITE_DEF,
1072 },
1073 .set = sd_setwhite,
1074 .get = sd_getwhite,
1075 },
1076 {
1077 {
1078 .id = V4L2_CID_EXPOSURE,
1079 .type = V4L2_CTRL_TYPE_INTEGER,
1080 .name = "Exposure",
1081 .minimum = EXPOSURE_MIN,
1082 .maximum = EXPOSURE_MAX,
1083 .step = 1,
1084 .default_value = EXPOSURE_DEF,
1085 },
1086 .set = sd_setexposure,
1087 .get = sd_getexposure,
1088 },
1089 {
1090 {
1091 .id = V4L2_CID_AUTOGAIN,
1092 .type = V4L2_CTRL_TYPE_BOOLEAN,
1093 .name = "Auto Gain",
1094 .minimum = AUTOGAIN_MIN,
1095 .maximum = AUTOGAIN_MAX,
1096 .step = 1,
1097 .default_value = AUTOGAIN_DEF,
1098 },
1099 .set = sd_setautogain,
1100 .get = sd_getautogain,
1101 },
1102 {
1103 {
1104 .id = V4L2_CID_GAIN,
1105 .type = V4L2_CTRL_TYPE_INTEGER,
1106 .name = "Gain",
1107 .minimum = GAIN_MIN,
1108 .maximum = GAIN_MAX,
1109 .step = 1,
1110 .default_value = GAIN_DEF,
1111 },
1112 .set = sd_setgain,
1113 .get = sd_getgain,
1114 },
1115};
1116
1117static struct ctrl sd_ctrls_72a[] = {
1118 {
1119 {
1120 .id = V4L2_CID_BRIGHTNESS,
1121 .type = V4L2_CTRL_TYPE_INTEGER,
1122 .name = "Brightness",
1123 .minimum = BRIGHTNESS_MIN,
1124 .maximum = BRIGHTNESS_MAX,
1125 .step = 1,
1126 .default_value = BRIGHTNESS_DEF,
1127 },
1128 .set = sd_setbrightness,
1129 .get = sd_getbrightness,
1130 },
1131 {
1132 {
1133 .id = V4L2_CID_CONTRAST,
1134 .type = V4L2_CTRL_TYPE_INTEGER,
1135 .name = "Contrast",
1136 .minimum = CONTRAST_MIN,
1137 .maximum = CONTRAST_MAX,
1138 .step = 1,
1139 .default_value = CONTRAST_DEF,
1140 },
1141 .set = sd_setcontrast,
1142 .get = sd_getcontrast,
1143 },
1144 {
1145 {
1146 .id = V4L2_CID_AUTOGAIN,
1147 .type = V4L2_CTRL_TYPE_BOOLEAN,
1148 .name = "Auto Gain",
1149 .minimum = AUTOGAIN_MIN,
1150 .maximum = AUTOGAIN_MAX,
1151 .step = 1,
1152 .default_value = AUTOGAIN_DEF,
1153 },
1154 .set = sd_setautogain,
1155 .get = sd_getautogain,
1156 },
1157};
1158
971/* sub-driver description */ 1159/* sub-driver description */
972static const struct sd_desc sd_desc = { 1160static const struct sd_desc sd_desc_12a = {
1161 .name = MODULE_NAME,
1162 .ctrls = sd_ctrls_12a,
1163 .nctrls = ARRAY_SIZE(sd_ctrls_12a),
1164 .config = sd_config,
1165 .init = sd_init_12a,
1166 .start = sd_start_12a,
1167 .stopN = sd_stopN,
1168 .stop0 = sd_stop0,
1169 .pkt_scan = sd_pkt_scan,
1170/* .dq_callback = do_autogain, * fixme */
1171};
1172static const struct sd_desc sd_desc_72a = {
973 .name = MODULE_NAME, 1173 .name = MODULE_NAME,
974 .ctrls = sd_ctrls, 1174 .ctrls = sd_ctrls_72a,
975 .nctrls = ARRAY_SIZE(sd_ctrls), 1175 .nctrls = ARRAY_SIZE(sd_ctrls_72a),
976 .config = sd_config, 1176 .config = sd_config,
977 .open = sd_open, 1177 .init = sd_init_72a,
978 .start = sd_start, 1178 .start = sd_start_72a,
979 .stopN = sd_stopN, 1179 .stopN = sd_stopN,
980 .stop0 = sd_stop0, 1180 .stop0 = sd_stop0,
981 .close = sd_close,
982 .pkt_scan = sd_pkt_scan, 1181 .pkt_scan = sd_pkt_scan,
983 .dq_callback = do_autogain, 1182 .dq_callback = do_autogain,
984}; 1183};
1184static const struct sd_desc *sd_desc[2] = {
1185 &sd_desc_12a,
1186 &sd_desc_72a
1187};
985 1188
986/* -- module initialisation -- */ 1189/* -- module initialisation -- */
987static const __devinitdata struct usb_device_id device_table[] = { 1190static const __devinitdata struct usb_device_id device_table[] = {
@@ -1009,7 +1212,9 @@ MODULE_DEVICE_TABLE(usb, device_table);
1009static int sd_probe(struct usb_interface *intf, 1212static int sd_probe(struct usb_interface *intf,
1010 const struct usb_device_id *id) 1213 const struct usb_device_id *id)
1011{ 1214{
1012 return gspca_dev_probe(intf, id, &sd_desc, sizeof(struct sd), 1215 return gspca_dev_probe(intf, id,
1216 sd_desc[id->driver_info],
1217 sizeof(struct sd),
1013 THIS_MODULE); 1218 THIS_MODULE);
1014} 1219}
1015 1220
@@ -1018,6 +1223,10 @@ static struct usb_driver sd_driver = {
1018 .id_table = device_table, 1223 .id_table = device_table,
1019 .probe = sd_probe, 1224 .probe = sd_probe,
1020 .disconnect = gspca_disconnect, 1225 .disconnect = gspca_disconnect,
1226#ifdef CONFIG_PM
1227 .suspend = gspca_suspend,
1228 .resume = gspca_resume,
1229#endif
1021}; 1230};
1022 1231
1023/* -- module insert / remove -- */ 1232/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/stk014.c b/drivers/media/video/gspca/stk014.c
index 16219cf6a6d5..2f2de429e273 100644
--- a/drivers/media/video/gspca/stk014.c
+++ b/drivers/media/video/gspca/stk014.c
@@ -306,8 +306,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
306 return 0; 306 return 0;
307} 307}
308 308
309/* this function is called at open time */ 309/* this function is called at probe and resume time */
310static int sd_open(struct gspca_dev *gspca_dev) 310static int sd_init(struct gspca_dev *gspca_dev)
311{ 311{
312 int ret; 312 int ret;
313 313
@@ -398,14 +398,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
398 PDEBUG(D_STREAM, "camera stopped"); 398 PDEBUG(D_STREAM, "camera stopped");
399} 399}
400 400
401static void sd_stop0(struct gspca_dev *gspca_dev)
402{
403}
404
405static void sd_close(struct gspca_dev *gspca_dev)
406{
407}
408
409static void sd_pkt_scan(struct gspca_dev *gspca_dev, 401static void sd_pkt_scan(struct gspca_dev *gspca_dev,
410 struct gspca_frame *frame, /* target */ 402 struct gspca_frame *frame, /* target */
411 __u8 *data, /* isoc packet */ 403 __u8 *data, /* isoc packet */
@@ -535,11 +527,9 @@ static const struct sd_desc sd_desc = {
535 .ctrls = sd_ctrls, 527 .ctrls = sd_ctrls,
536 .nctrls = ARRAY_SIZE(sd_ctrls), 528 .nctrls = ARRAY_SIZE(sd_ctrls),
537 .config = sd_config, 529 .config = sd_config,
538 .open = sd_open, 530 .init = sd_init,
539 .start = sd_start, 531 .start = sd_start,
540 .stopN = sd_stopN, 532 .stopN = sd_stopN,
541 .stop0 = sd_stop0,
542 .close = sd_close,
543 .pkt_scan = sd_pkt_scan, 533 .pkt_scan = sd_pkt_scan,
544 .querymenu = sd_querymenu, 534 .querymenu = sd_querymenu,
545}; 535};
@@ -564,6 +554,10 @@ static struct usb_driver sd_driver = {
564 .id_table = device_table, 554 .id_table = device_table,
565 .probe = sd_probe, 555 .probe = sd_probe,
566 .disconnect = gspca_disconnect, 556 .disconnect = gspca_disconnect,
557#ifdef CONFIG_PM
558 .suspend = gspca_suspend,
559 .resume = gspca_resume,
560#endif
567}; 561};
568 562
569/* -- module insert / remove -- */ 563/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/sunplus.c b/drivers/media/video/gspca/sunplus.c
index 54efa48bee01..1cfcc6c49558 100644
--- a/drivers/media/video/gspca/sunplus.c
+++ b/drivers/media/video/gspca/sunplus.c
@@ -449,31 +449,47 @@ static const __u8 qtable_spca504_default[2][64] = {
449 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e} 449 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e}
450}; 450};
451 451
452static void reg_r(struct usb_device *dev, 452/* read <len> bytes to gspca_dev->usb_buf */
453 __u16 req, 453static void reg_r(struct gspca_dev *gspca_dev,
454 __u16 index, 454 __u16 req,
455 __u8 *buffer, __u16 length) 455 __u16 index,
456 __u16 len)
456{ 457{
457 usb_control_msg(dev, 458#ifdef GSPCA_DEBUG
458 usb_rcvctrlpipe(dev, 0), 459 if (len > USB_BUF_SZ) {
460 err("reg_r: buffer overflow");
461 return;
462 }
463#endif
464 usb_control_msg(gspca_dev->dev,
465 usb_rcvctrlpipe(gspca_dev->dev, 0),
459 req, 466 req,
460 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 467 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
461 0, /* value */ 468 0, /* value */
462 index, buffer, length, 469 index,
470 len ? gspca_dev->usb_buf : NULL, len,
463 500); 471 500);
464} 472}
465 473
466static void reg_w(struct usb_device *dev, 474/* write <len> bytes from gspca_dev->usb_buf */
467 __u16 req, 475static void reg_w(struct gspca_dev *gspca_dev,
468 __u16 value, 476 __u16 req,
469 __u16 index, 477 __u16 value,
470 __u8 *buffer, __u16 length) 478 __u16 index,
479 __u16 len)
471{ 480{
472 usb_control_msg(dev, 481#ifdef GSPCA_DEBUG
473 usb_sndctrlpipe(dev, 0), 482 if (len > USB_BUF_SZ) {
483 err("reg_w: buffer overflow");
484 return;
485 }
486#endif
487 usb_control_msg(gspca_dev->dev,
488 usb_sndctrlpipe(gspca_dev->dev, 0),
474 req, 489 req,
475 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE, 490 USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE,
476 value, index, buffer, length, 491 value, index,
492 len ? gspca_dev->usb_buf : NULL, len,
477 500); 493 500);
478} 494}
479 495
@@ -634,7 +650,7 @@ static int spca504B_PollingDataReady(struct gspca_dev *gspca_dev)
634 int count = 10; 650 int count = 10;
635 651
636 while (--count > 0) { 652 while (--count > 0) {
637 reg_r(gspca_dev->dev, 0x21, 0, gspca_dev->usb_buf, 1); 653 reg_r(gspca_dev, 0x21, 0, 1);
638 if ((gspca_dev->usb_buf[0] & 0x01) == 0) 654 if ((gspca_dev->usb_buf[0] & 0x01) == 0)
639 break; 655 break;
640 msleep(10); 656 msleep(10);
@@ -644,15 +660,14 @@ static int spca504B_PollingDataReady(struct gspca_dev *gspca_dev)
644 660
645static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev) 661static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev)
646{ 662{
647 struct usb_device *dev = gspca_dev->dev;
648 int count = 50; 663 int count = 50;
649 664
650 while (--count > 0) { 665 while (--count > 0) {
651 reg_r(dev, 0x21, 1, gspca_dev->usb_buf, 1); 666 reg_r(gspca_dev, 0x21, 1, 1);
652 if (gspca_dev->usb_buf[0] != 0) { 667 if (gspca_dev->usb_buf[0] != 0) {
653 gspca_dev->usb_buf[0] = 0; 668 gspca_dev->usb_buf[0] = 0;
654 reg_w(dev, 0x21, 0, 1, gspca_dev->usb_buf, 1); 669 reg_w(gspca_dev, 0x21, 0, 1, 1);
655 reg_r(dev, 0x21, 1, gspca_dev->usb_buf, 1); 670 reg_r(gspca_dev, 0x21, 1, 1);
656 spca504B_PollingDataReady(gspca_dev); 671 spca504B_PollingDataReady(gspca_dev);
657 break; 672 break;
658 } 673 }
@@ -662,16 +677,14 @@ static void spca504B_WaitCmdStatus(struct gspca_dev *gspca_dev)
662 677
663static void spca50x_GetFirmware(struct gspca_dev *gspca_dev) 678static void spca50x_GetFirmware(struct gspca_dev *gspca_dev)
664{ 679{
665 struct usb_device *dev = gspca_dev->dev;
666 __u8 *data; 680 __u8 *data;
667 681
668 data = kmalloc(64, GFP_KERNEL); 682 data = gspca_dev->usb_buf;
669 reg_r(dev, 0x20, 0, data, 5); 683 reg_r(gspca_dev, 0x20, 0, 5);
670 PDEBUG(D_STREAM, "FirmWare : %d %d %d %d %d ", 684 PDEBUG(D_STREAM, "FirmWare : %d %d %d %d %d ",
671 data[0], data[1], data[2], data[3], data[4]); 685 data[0], data[1], data[2], data[3], data[4]);
672 reg_r(dev, 0x23, 0, data, 64); 686 reg_r(gspca_dev, 0x23, 0, 64);
673 reg_r(dev, 0x23, 1, data, 64); 687 reg_r(gspca_dev, 0x23, 1, 64);
674 kfree(data);
675} 688}
676 689
677static void spca504B_SetSizeType(struct gspca_dev *gspca_dev) 690static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
@@ -686,21 +699,21 @@ static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
686 Type = 0; 699 Type = 0;
687 switch (sd->bridge) { 700 switch (sd->bridge) {
688 case BRIDGE_SPCA533: 701 case BRIDGE_SPCA533:
689 reg_w(dev, 0x31, 0, 0, NULL, 0); 702 reg_w(gspca_dev, 0x31, 0, 0, 0);
690 spca504B_WaitCmdStatus(gspca_dev); 703 spca504B_WaitCmdStatus(gspca_dev);
691 rc = spca504B_PollingDataReady(gspca_dev); 704 rc = spca504B_PollingDataReady(gspca_dev);
692 spca50x_GetFirmware(gspca_dev); 705 spca50x_GetFirmware(gspca_dev);
693 gspca_dev->usb_buf[0] = 2; /* type */ 706 gspca_dev->usb_buf[0] = 2; /* type */
694 reg_w(dev, 0x24, 0, 8, gspca_dev->usb_buf, 1); 707 reg_w(gspca_dev, 0x24, 0, 8, 1);
695 reg_r(dev, 0x24, 8, gspca_dev->usb_buf, 1); 708 reg_r(gspca_dev, 0x24, 8, 1);
696 709
697 gspca_dev->usb_buf[0] = Size; 710 gspca_dev->usb_buf[0] = Size;
698 reg_w(dev, 0x25, 0, 4, gspca_dev->usb_buf, 1); 711 reg_w(gspca_dev, 0x25, 0, 4, 1);
699 reg_r(dev, 0x25, 4, gspca_dev->usb_buf, 1); /* size */ 712 reg_r(gspca_dev, 0x25, 4, 1); /* size */
700 rc = spca504B_PollingDataReady(gspca_dev); 713 rc = spca504B_PollingDataReady(gspca_dev);
701 714
702 /* Init the cam width height with some values get on init ? */ 715 /* Init the cam width height with some values get on init ? */
703 reg_w(dev, 0x31, 0, 4, NULL, 0); 716 reg_w(gspca_dev, 0x31, 0, 4, 0);
704 spca504B_WaitCmdStatus(gspca_dev); 717 spca504B_WaitCmdStatus(gspca_dev);
705 rc = spca504B_PollingDataReady(gspca_dev); 718 rc = spca504B_PollingDataReady(gspca_dev);
706 break; 719 break;
@@ -708,12 +721,12 @@ static void spca504B_SetSizeType(struct gspca_dev *gspca_dev)
708/* case BRIDGE_SPCA504B: */ 721/* case BRIDGE_SPCA504B: */
709/* case BRIDGE_SPCA536: */ 722/* case BRIDGE_SPCA536: */
710 gspca_dev->usb_buf[0] = Size; 723 gspca_dev->usb_buf[0] = Size;
711 reg_w(dev, 0x25, 0, 4, gspca_dev->usb_buf, 1); 724 reg_w(gspca_dev, 0x25, 0, 4, 1);
712 reg_r(dev, 0x25, 4, gspca_dev->usb_buf, 1); /* size */ 725 reg_r(gspca_dev, 0x25, 4, 1); /* size */
713 Type = 6; 726 Type = 6;
714 gspca_dev->usb_buf[0] = Type; 727 gspca_dev->usb_buf[0] = Type;
715 reg_w(dev, 0x27, 0, 0, gspca_dev->usb_buf, 1); 728 reg_w(gspca_dev, 0x27, 0, 0, 1);
716 reg_r(dev, 0x27, 0, gspca_dev->usb_buf, 1); /* type */ 729 reg_r(gspca_dev, 0x27, 0, 1); /* type */
717 rc = spca504B_PollingDataReady(gspca_dev); 730 rc = spca504B_PollingDataReady(gspca_dev);
718 break; 731 break;
719 case BRIDGE_SPCA504: 732 case BRIDGE_SPCA504:
@@ -752,18 +765,15 @@ static void spca504_wait_status(struct gspca_dev *gspca_dev)
752 765
753static void spca504B_setQtable(struct gspca_dev *gspca_dev) 766static void spca504B_setQtable(struct gspca_dev *gspca_dev)
754{ 767{
755 struct usb_device *dev = gspca_dev->dev;
756
757 gspca_dev->usb_buf[0] = 3; 768 gspca_dev->usb_buf[0] = 3;
758 reg_w(dev, 0x26, 0, 0, gspca_dev->usb_buf, 1); 769 reg_w(gspca_dev, 0x26, 0, 0, 1);
759 reg_r(dev, 0x26, 0, gspca_dev->usb_buf, 1); 770 reg_r(gspca_dev, 0x26, 0, 1);
760 spca504B_PollingDataReady(gspca_dev); 771 spca504B_PollingDataReady(gspca_dev);
761} 772}
762 773
763static void sp5xx_initContBrigHueRegisters(struct gspca_dev *gspca_dev) 774static void sp5xx_initContBrigHueRegisters(struct gspca_dev *gspca_dev)
764{ 775{
765 struct sd *sd = (struct sd *) gspca_dev; 776 struct sd *sd = (struct sd *) gspca_dev;
766 struct usb_device *dev = gspca_dev->dev;
767 int pollreg = 1; 777 int pollreg = 1;
768 778
769 switch (sd->bridge) { 779 switch (sd->bridge) {
@@ -774,20 +784,20 @@ static void sp5xx_initContBrigHueRegisters(struct gspca_dev *gspca_dev)
774 default: 784 default:
775/* case BRIDGE_SPCA533: */ 785/* case BRIDGE_SPCA533: */
776/* case BRIDGE_SPCA504B: */ 786/* case BRIDGE_SPCA504B: */
777 reg_w(dev, 0, 0, 0x21a7, NULL, 0); /* brightness */ 787 reg_w(gspca_dev, 0, 0, 0x21a7, 0); /* brightness */
778 reg_w(dev, 0, 0x20, 0x21a8, NULL, 0); /* contrast */ 788 reg_w(gspca_dev, 0, 0x20, 0x21a8, 0); /* contrast */
779 reg_w(dev, 0, 0, 0x21ad, NULL, 0); /* hue */ 789 reg_w(gspca_dev, 0, 0, 0x21ad, 0); /* hue */
780 reg_w(dev, 0, 1, 0x21ac, NULL, 0); /* sat/hue */ 790 reg_w(gspca_dev, 0, 1, 0x21ac, 0); /* sat/hue */
781 reg_w(dev, 0, 0x20, 0x21ae, NULL, 0); /* saturation */ 791 reg_w(gspca_dev, 0, 0x20, 0x21ae, 0); /* saturation */
782 reg_w(dev, 0, 0, 0x21a3, NULL, 0); /* gamma */ 792 reg_w(gspca_dev, 0, 0, 0x21a3, 0); /* gamma */
783 break; 793 break;
784 case BRIDGE_SPCA536: 794 case BRIDGE_SPCA536:
785 reg_w(dev, 0, 0, 0x20f0, NULL, 0); 795 reg_w(gspca_dev, 0, 0, 0x20f0, 0);
786 reg_w(dev, 0, 0x21, 0x20f1, NULL, 0); 796 reg_w(gspca_dev, 0, 0x21, 0x20f1, 0);
787 reg_w(dev, 0, 0x40, 0x20f5, NULL, 0); 797 reg_w(gspca_dev, 0, 0x40, 0x20f5, 0);
788 reg_w(dev, 0, 1, 0x20f4, NULL, 0); 798 reg_w(gspca_dev, 0, 1, 0x20f4, 0);
789 reg_w(dev, 0, 0x40, 0x20f6, NULL, 0); 799 reg_w(gspca_dev, 0, 0x40, 0x20f6, 0);
790 reg_w(dev, 0, 0, 0x2089, NULL, 0); 800 reg_w(gspca_dev, 0, 0, 0x2089, 0);
791 break; 801 break;
792 } 802 }
793 if (pollreg) 803 if (pollreg)
@@ -799,7 +809,6 @@ static int sd_config(struct gspca_dev *gspca_dev,
799 const struct usb_device_id *id) 809 const struct usb_device_id *id)
800{ 810{
801 struct sd *sd = (struct sd *) gspca_dev; 811 struct sd *sd = (struct sd *) gspca_dev;
802 struct usb_device *dev = gspca_dev->dev;
803 struct cam *cam; 812 struct cam *cam;
804 813
805 cam = &gspca_dev->cam; 814 cam = &gspca_dev->cam;
@@ -811,7 +820,7 @@ static int sd_config(struct gspca_dev *gspca_dev,
811 if (sd->subtype == AiptekMiniPenCam13) { 820 if (sd->subtype == AiptekMiniPenCam13) {
812/* try to get the firmware as some cam answer 2.0.1.2.2 821/* try to get the firmware as some cam answer 2.0.1.2.2
813 * and should be a spca504b then overwrite that setting */ 822 * and should be a spca504b then overwrite that setting */
814 reg_r(dev, 0x20, 0, gspca_dev->usb_buf, 1); 823 reg_r(gspca_dev, 0x20, 0, 1);
815 switch (gspca_dev->usb_buf[0]) { 824 switch (gspca_dev->usb_buf[0]) {
816 case 1: 825 case 1:
817 break; /* (right bridge/subtype) */ 826 break; /* (right bridge/subtype) */
@@ -848,8 +857,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
848 return 0; 857 return 0;
849} 858}
850 859
851/* this function is called at open time */ 860/* this function is called at probe and resume time */
852static int sd_open(struct gspca_dev *gspca_dev) 861static int sd_init(struct gspca_dev *gspca_dev)
853{ 862{
854 struct sd *sd = (struct sd *) gspca_dev; 863 struct sd *sd = (struct sd *) gspca_dev;
855 struct usb_device *dev = gspca_dev->dev; 864 struct usb_device *dev = gspca_dev->dev;
@@ -860,12 +869,12 @@ static int sd_open(struct gspca_dev *gspca_dev)
860 869
861 switch (sd->bridge) { 870 switch (sd->bridge) {
862 case BRIDGE_SPCA504B: 871 case BRIDGE_SPCA504B:
863 reg_w(dev, 0x1d, 0, 0, NULL, 0); 872 reg_w(gspca_dev, 0x1d, 0, 0, 0);
864 reg_w(dev, 0, 1, 0x2306, NULL, 0); 873 reg_w(gspca_dev, 0, 1, 0x2306, 0);
865 reg_w(dev, 0, 0, 0x0d04, NULL, 0); 874 reg_w(gspca_dev, 0, 0, 0x0d04, 0);
866 reg_w(dev, 0, 0, 0x2000, NULL, 0); 875 reg_w(gspca_dev, 0, 0, 0x2000, 0);
867 reg_w(dev, 0, 0x13, 0x2301, NULL, 0); 876 reg_w(gspca_dev, 0, 0x13, 0x2301, 0);
868 reg_w(dev, 0, 0, 0x2306, NULL, 0); 877 reg_w(gspca_dev, 0, 0, 0x2306, 0);
869 /* fall thru */ 878 /* fall thru */
870 case BRIDGE_SPCA533: 879 case BRIDGE_SPCA533:
871 rc = spca504B_PollingDataReady(gspca_dev); 880 rc = spca504B_PollingDataReady(gspca_dev);
@@ -873,12 +882,12 @@ static int sd_open(struct gspca_dev *gspca_dev)
873 break; 882 break;
874 case BRIDGE_SPCA536: 883 case BRIDGE_SPCA536:
875 spca50x_GetFirmware(gspca_dev); 884 spca50x_GetFirmware(gspca_dev);
876 reg_r(dev, 0x00, 0x5002, gspca_dev->usb_buf, 1); 885 reg_r(gspca_dev, 0x00, 0x5002, 1);
877 gspca_dev->usb_buf[0] = 0; 886 gspca_dev->usb_buf[0] = 0;
878 reg_w(dev, 0x24, 0, 0, gspca_dev->usb_buf, 1); 887 reg_w(gspca_dev, 0x24, 0, 0, 1);
879 reg_r(dev, 0x24, 0, gspca_dev->usb_buf, 1); 888 reg_r(gspca_dev, 0x24, 0, 1);
880 rc = spca504B_PollingDataReady(gspca_dev); 889 rc = spca504B_PollingDataReady(gspca_dev);
881 reg_w(dev, 0x34, 0, 0, NULL, 0); 890 reg_w(gspca_dev, 0x34, 0, 0, 0);
882 spca504B_WaitCmdStatus(gspca_dev); 891 spca504B_WaitCmdStatus(gspca_dev);
883 break; 892 break;
884 case BRIDGE_SPCA504C: /* pccam600 */ 893 case BRIDGE_SPCA504C: /* pccam600 */
@@ -971,12 +980,12 @@ static void sd_start(struct gspca_dev *gspca_dev)
971/* case BRIDGE_SPCA536: */ 980/* case BRIDGE_SPCA536: */
972 if (sd->subtype == MegapixV4 || 981 if (sd->subtype == MegapixV4 ||
973 sd->subtype == LogitechClickSmart820) { 982 sd->subtype == LogitechClickSmart820) {
974 reg_w(dev, 0xf0, 0, 0, NULL, 0); 983 reg_w(gspca_dev, 0xf0, 0, 0, 0);
975 spca504B_WaitCmdStatus(gspca_dev); 984 spca504B_WaitCmdStatus(gspca_dev);
976 reg_r(dev, 0xf0, 4, NULL, 0); 985 reg_r(gspca_dev, 0xf0, 4, 0);
977 spca504B_WaitCmdStatus(gspca_dev); 986 spca504B_WaitCmdStatus(gspca_dev);
978 } else { 987 } else {
979 reg_w(dev, 0x31, 0, 4, NULL, 0); 988 reg_w(gspca_dev, 0x31, 0, 4, 0);
980 spca504B_WaitCmdStatus(gspca_dev); 989 spca504B_WaitCmdStatus(gspca_dev);
981 rc = spca504B_PollingDataReady(gspca_dev); 990 rc = spca504B_PollingDataReady(gspca_dev);
982 } 991 }
@@ -1045,7 +1054,7 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1045/* case BRIDGE_SPCA533: */ 1054/* case BRIDGE_SPCA533: */
1046/* case BRIDGE_SPCA536: */ 1055/* case BRIDGE_SPCA536: */
1047/* case BRIDGE_SPCA504B: */ 1056/* case BRIDGE_SPCA504B: */
1048 reg_w(dev, 0x31, 0, 0, NULL, 0); 1057 reg_w(gspca_dev, 0x31, 0, 0, 0);
1049 spca504B_WaitCmdStatus(gspca_dev); 1058 spca504B_WaitCmdStatus(gspca_dev);
1050 spca504B_PollingDataReady(gspca_dev); 1059 spca504B_PollingDataReady(gspca_dev);
1051 break; 1060 break;
@@ -1069,14 +1078,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
1069 } 1078 }
1070} 1079}
1071 1080
1072static void sd_stop0(struct gspca_dev *gspca_dev)
1073{
1074}
1075
1076static void sd_close(struct gspca_dev *gspca_dev)
1077{
1078}
1079
1080static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1081static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1081 struct gspca_frame *frame, /* target */ 1082 struct gspca_frame *frame, /* target */
1082 __u8 *data, /* isoc packet */ 1083 __u8 *data, /* isoc packet */
@@ -1369,11 +1370,9 @@ static const struct sd_desc sd_desc = {
1369 .ctrls = sd_ctrls, 1370 .ctrls = sd_ctrls,
1370 .nctrls = ARRAY_SIZE(sd_ctrls), 1371 .nctrls = ARRAY_SIZE(sd_ctrls),
1371 .config = sd_config, 1372 .config = sd_config,
1372 .open = sd_open, 1373 .init = sd_init,
1373 .start = sd_start, 1374 .start = sd_start,
1374 .stopN = sd_stopN, 1375 .stopN = sd_stopN,
1375 .stop0 = sd_stop0,
1376 .close = sd_close,
1377 .pkt_scan = sd_pkt_scan, 1376 .pkt_scan = sd_pkt_scan,
1378}; 1377};
1379 1378
@@ -1456,6 +1455,10 @@ static struct usb_driver sd_driver = {
1456 .id_table = device_table, 1455 .id_table = device_table,
1457 .probe = sd_probe, 1456 .probe = sd_probe,
1458 .disconnect = gspca_disconnect, 1457 .disconnect = gspca_disconnect,
1458#ifdef CONFIG_PM
1459 .suspend = gspca_suspend,
1460 .resume = gspca_resume,
1461#endif
1459}; 1462};
1460 1463
1461/* -- module insert / remove -- */ 1464/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/t613.c b/drivers/media/video/gspca/t613.c
index 91b555c34c68..f034c748fc7e 100644
--- a/drivers/media/video/gspca/t613.c
+++ b/drivers/media/video/gspca/t613.c
@@ -30,7 +30,7 @@
30 30
31#define MAX_GAMMA 0x10 /* 0 to 15 */ 31#define MAX_GAMMA 0x10 /* 0 to 15 */
32 32
33#define V4L2_CID_EFFECTS (V4L2_CID_PRIVATE_BASE + 3) 33#define V4L2_CID_EFFECTS (V4L2_CID_PRIVATE_BASE + 0)
34 34
35MODULE_AUTHOR("Leandro Costantino <le_costantino@pixartargentina.com.ar>"); 35MODULE_AUTHOR("Leandro Costantino <le_costantino@pixartargentina.com.ar>");
36MODULE_DESCRIPTION("GSPCA/T613 (JPEG Compliance) USB Camera Driver"); 36MODULE_DESCRIPTION("GSPCA/T613 (JPEG Compliance) USB Camera Driver");
@@ -233,7 +233,7 @@ static char *effects_control[] = {
233static struct v4l2_pix_format vga_mode_t16[] = { 233static struct v4l2_pix_format vga_mode_t16[] = {
234 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 234 {160, 120, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
235 .bytesperline = 160, 235 .bytesperline = 160,
236 .sizeimage = 160 * 120 * 3 / 8 + 590, 236 .sizeimage = 160 * 120 * 4 / 8 + 590,
237 .colorspace = V4L2_COLORSPACE_JPEG, 237 .colorspace = V4L2_COLORSPACE_JPEG,
238 .priv = 4}, 238 .priv = 4},
239 {176, 144, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE, 239 {176, 144, V4L2_PIX_FMT_JPEG, V4L2_FIELD_NONE,
@@ -391,7 +391,7 @@ static void reg_w(struct gspca_dev *gspca_dev,
391 NULL, 0, 500); 391 NULL, 0, 500);
392 return; 392 return;
393 } 393 }
394 if (len <= sizeof gspca_dev->usb_buf) { 394 if (len <= USB_BUF_SZ) {
395 memcpy(gspca_dev->usb_buf, buffer, len); 395 memcpy(gspca_dev->usb_buf, buffer, len);
396 usb_control_msg(gspca_dev->dev, 396 usb_control_msg(gspca_dev->dev,
397 usb_sndctrlpipe(gspca_dev->dev, 0), 397 usb_sndctrlpipe(gspca_dev->dev, 0),
@@ -552,6 +552,13 @@ static int init_default_parameters(struct gspca_dev *gspca_dev)
552 return 0; 552 return 0;
553} 553}
554 554
555/* this function is called at probe and resume time */
556static int sd_init(struct gspca_dev *gspca_dev)
557{
558 init_default_parameters(gspca_dev);
559 return 0;
560}
561
555static void setbrightness(struct gspca_dev *gspca_dev) 562static void setbrightness(struct gspca_dev *gspca_dev)
556{ 563{
557 struct sd *sd = (struct sd *) gspca_dev; 564 struct sd *sd = (struct sd *) gspca_dev;
@@ -893,18 +900,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
893 setcolors(gspca_dev); 900 setcolors(gspca_dev);
894} 901}
895 902
896static void sd_stopN(struct gspca_dev *gspca_dev)
897{
898}
899
900static void sd_stop0(struct gspca_dev *gspca_dev)
901{
902}
903
904static void sd_close(struct gspca_dev *gspca_dev)
905{
906}
907
908static void sd_pkt_scan(struct gspca_dev *gspca_dev, 903static void sd_pkt_scan(struct gspca_dev *gspca_dev,
909 struct gspca_frame *frame, /* target */ 904 struct gspca_frame *frame, /* target */
910 __u8 *data, /* isoc packet */ 905 __u8 *data, /* isoc packet */
@@ -972,24 +967,14 @@ static int sd_querymenu(struct gspca_dev *gspca_dev,
972 return -EINVAL; 967 return -EINVAL;
973} 968}
974 969
975/* this function is called at open time */
976static int sd_open(struct gspca_dev *gspca_dev)
977{
978 init_default_parameters(gspca_dev);
979 return 0;
980}
981
982/* sub-driver description */ 970/* sub-driver description */
983static const struct sd_desc sd_desc = { 971static const struct sd_desc sd_desc = {
984 .name = MODULE_NAME, 972 .name = MODULE_NAME,
985 .ctrls = sd_ctrls, 973 .ctrls = sd_ctrls,
986 .nctrls = ARRAY_SIZE(sd_ctrls), 974 .nctrls = ARRAY_SIZE(sd_ctrls),
987 .config = sd_config, 975 .config = sd_config,
988 .open = sd_open, 976 .init = sd_init,
989 .start = sd_start, 977 .start = sd_start,
990 .stopN = sd_stopN,
991 .stop0 = sd_stop0,
992 .close = sd_close,
993 .pkt_scan = sd_pkt_scan, 978 .pkt_scan = sd_pkt_scan,
994 .querymenu = sd_querymenu, 979 .querymenu = sd_querymenu,
995}; 980};
@@ -1014,6 +999,10 @@ static struct usb_driver sd_driver = {
1014 .id_table = device_table, 999 .id_table = device_table,
1015 .probe = sd_probe, 1000 .probe = sd_probe,
1016 .disconnect = gspca_disconnect, 1001 .disconnect = gspca_disconnect,
1002#ifdef CONFIG_PM
1003 .suspend = gspca_suspend,
1004 .resume = gspca_resume,
1005#endif
1017}; 1006};
1018 1007
1019/* -- module insert / remove -- */ 1008/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/tv8532.c b/drivers/media/video/gspca/tv8532.c
index 1ff8ba2f7fe5..084af05302a0 100644
--- a/drivers/media/video/gspca/tv8532.c
+++ b/drivers/media/video/gspca/tv8532.c
@@ -331,8 +331,8 @@ static void tv_8532_PollReg(struct gspca_dev *gspca_dev)
331 } 331 }
332} 332}
333 333
334/* this function is called at open time */ 334/* this function is called at probe and resume time */
335static int sd_open(struct gspca_dev *gspca_dev) 335static int sd_init(struct gspca_dev *gspca_dev)
336{ 336{
337 reg_w_1(gspca_dev, TV8532_AD_SLOPE, 0x32); 337 reg_w_1(gspca_dev, TV8532_AD_SLOPE, 0x32);
338 reg_w_1(gspca_dev, TV8532_AD_BITCTRL, 0x00); 338 reg_w_1(gspca_dev, TV8532_AD_BITCTRL, 0x00);
@@ -450,14 +450,6 @@ static void sd_stopN(struct gspca_dev *gspca_dev)
450 reg_w_1(gspca_dev, TV8532_GPIO_OE, 0x0b); 450 reg_w_1(gspca_dev, TV8532_GPIO_OE, 0x0b);
451} 451}
452 452
453static void sd_stop0(struct gspca_dev *gspca_dev)
454{
455}
456
457static void sd_close(struct gspca_dev *gspca_dev)
458{
459}
460
461static void tv8532_preprocess(struct gspca_dev *gspca_dev) 453static void tv8532_preprocess(struct gspca_dev *gspca_dev)
462{ 454{
463 struct sd *sd = (struct sd *) gspca_dev; 455 struct sd *sd = (struct sd *) gspca_dev;
@@ -611,11 +603,9 @@ static const struct sd_desc sd_desc = {
611 .ctrls = sd_ctrls, 603 .ctrls = sd_ctrls,
612 .nctrls = ARRAY_SIZE(sd_ctrls), 604 .nctrls = ARRAY_SIZE(sd_ctrls),
613 .config = sd_config, 605 .config = sd_config,
614 .open = sd_open, 606 .init = sd_init,
615 .start = sd_start, 607 .start = sd_start,
616 .stopN = sd_stopN, 608 .stopN = sd_stopN,
617 .stop0 = sd_stop0,
618 .close = sd_close,
619 .pkt_scan = sd_pkt_scan, 609 .pkt_scan = sd_pkt_scan,
620}; 610};
621 611
@@ -644,6 +634,10 @@ static struct usb_driver sd_driver = {
644 .id_table = device_table, 634 .id_table = device_table,
645 .probe = sd_probe, 635 .probe = sd_probe,
646 .disconnect = gspca_disconnect, 636 .disconnect = gspca_disconnect,
637#ifdef CONFIG_PM
638 .suspend = gspca_suspend,
639 .resume = gspca_resume,
640#endif
647}; 641};
648 642
649/* -- module insert / remove -- */ 643/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/vc032x.c b/drivers/media/video/gspca/vc032x.c
index f4a52956e0d9..bd4c226c9a07 100644
--- a/drivers/media/video/gspca/vc032x.c
+++ b/drivers/media/video/gspca/vc032x.c
@@ -69,6 +69,7 @@ static struct ctrl sd_ctrls[] = {
69 .set = sd_setautogain, 69 .set = sd_setautogain,
70 .get = sd_getautogain, 70 .get = sd_getautogain,
71 }, 71 },
72#define LIGHTFREQ_IDX 1
72 { 73 {
73 { 74 {
74 .id = V4L2_CID_POWER_LINE_FREQUENCY, 75 .id = V4L2_CID_POWER_LINE_FREQUENCY,
@@ -87,12 +88,12 @@ static struct ctrl sd_ctrls[] = {
87}; 88};
88 89
89static struct v4l2_pix_format vc0321_mode[] = { 90static struct v4l2_pix_format vc0321_mode[] = {
90 {320, 240, V4L2_PIX_FMT_YUV420, V4L2_FIELD_NONE, 91 {320, 240, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
91 .bytesperline = 320, 92 .bytesperline = 320,
92 .sizeimage = 320 * 240 * 2, 93 .sizeimage = 320 * 240 * 2,
93 .colorspace = V4L2_COLORSPACE_SRGB, 94 .colorspace = V4L2_COLORSPACE_SRGB,
94 .priv = 1}, 95 .priv = 1},
95 {640, 480, V4L2_PIX_FMT_YUV420, V4L2_FIELD_NONE, 96 {640, 480, V4L2_PIX_FMT_YVYU, V4L2_FIELD_NONE,
96 .bytesperline = 640, 97 .bytesperline = 640,
97 .sizeimage = 640 * 480 * 2, 98 .sizeimage = 640 * 480 * 2,
98 .colorspace = V4L2_COLORSPACE_SRGB, 99 .colorspace = V4L2_COLORSPACE_SRGB,
@@ -1463,6 +1464,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
1463 sd->qindex = 7; 1464 sd->qindex = 7;
1464 sd->autogain = AUTOGAIN_DEF; 1465 sd->autogain = AUTOGAIN_DEF;
1465 sd->lightfreq = FREQ_DEF; 1466 sd->lightfreq = FREQ_DEF;
1467 if (sd->sensor != SENSOR_OV7670)
1468 gspca_dev->ctrl_dis = (1 << LIGHTFREQ_IDX);
1466 1469
1467 if (sd->bridge == BRIDGE_VC0321) { 1470 if (sd->bridge == BRIDGE_VC0321) {
1468 reg_r(gspca_dev, 0x8a, 0, 3); 1471 reg_r(gspca_dev, 0x8a, 0, 3);
@@ -1474,8 +1477,8 @@ static int sd_config(struct gspca_dev *gspca_dev,
1474 return 0; 1477 return 0;
1475} 1478}
1476 1479
1477/* this function is called at open time */ 1480/* this function is called at probe and time */
1478static int sd_open(struct gspca_dev *gspca_dev) 1481static int sd_init(struct gspca_dev *gspca_dev)
1479{ 1482{
1480 return 0; 1483 return 0;
1481} 1484}
@@ -1637,19 +1640,6 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
1637 reg_w(dev, 0x89, 0xffff, 0xffff); 1640 reg_w(dev, 0x89, 0xffff, 0xffff);
1638} 1641}
1639 1642
1640/* this function is called at close time */
1641static void sd_close(struct gspca_dev *gspca_dev)
1642{
1643/* struct usb_device *dev = gspca_dev->dev;
1644 __u8 buffread;
1645
1646 reg_w(dev, 0x89, 0xffff, 0xffff);
1647 reg_w(dev, 0xa0, 0x01, 0xb301);
1648 reg_w(dev, 0xa0, 0x09, 0xb303);
1649 reg_w(dev, 0x89, 0xffff, 0xffff);
1650*/
1651}
1652
1653static void sd_pkt_scan(struct gspca_dev *gspca_dev, 1643static void sd_pkt_scan(struct gspca_dev *gspca_dev,
1654 struct gspca_frame *frame, /* target */ 1644 struct gspca_frame *frame, /* target */
1655 __u8 *data, /* isoc packet */ 1645 __u8 *data, /* isoc packet */
@@ -1738,11 +1728,10 @@ static const struct sd_desc sd_desc = {
1738 .ctrls = sd_ctrls, 1728 .ctrls = sd_ctrls,
1739 .nctrls = ARRAY_SIZE(sd_ctrls), 1729 .nctrls = ARRAY_SIZE(sd_ctrls),
1740 .config = sd_config, 1730 .config = sd_config,
1741 .open = sd_open, 1731 .init = sd_init,
1742 .start = sd_start, 1732 .start = sd_start,
1743 .stopN = sd_stopN, 1733 .stopN = sd_stopN,
1744 .stop0 = sd_stop0, 1734 .stop0 = sd_stop0,
1745 .close = sd_close,
1746 .pkt_scan = sd_pkt_scan, 1735 .pkt_scan = sd_pkt_scan,
1747 .querymenu = sd_querymenu, 1736 .querymenu = sd_querymenu,
1748}; 1737};
@@ -1774,6 +1763,10 @@ static struct usb_driver sd_driver = {
1774 .id_table = device_table, 1763 .id_table = device_table,
1775 .probe = sd_probe, 1764 .probe = sd_probe,
1776 .disconnect = gspca_disconnect, 1765 .disconnect = gspca_disconnect,
1766#ifdef CONFIG_PM
1767 .suspend = gspca_suspend,
1768 .resume = gspca_resume,
1769#endif
1777}; 1770};
1778 1771
1779/* -- module insert / remove -- */ 1772/* -- module insert / remove -- */
diff --git a/drivers/media/video/gspca/zc3xx.c b/drivers/media/video/gspca/zc3xx.c
index bc7d0eedcd81..8d7c27e6ac77 100644
--- a/drivers/media/video/gspca/zc3xx.c
+++ b/drivers/media/video/gspca/zc3xx.c
@@ -85,6 +85,7 @@ static int sd_setsharpness(struct gspca_dev *gspca_dev, __s32 val);
85static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val); 85static int sd_getsharpness(struct gspca_dev *gspca_dev, __s32 *val);
86 86
87static struct ctrl sd_ctrls[] = { 87static struct ctrl sd_ctrls[] = {
88#define BRIGHTNESS_IDX 0
88#define SD_BRIGHTNESS 0 89#define SD_BRIGHTNESS 0
89 { 90 {
90 { 91 {
@@ -141,6 +142,7 @@ static struct ctrl sd_ctrls[] = {
141 .set = sd_setautogain, 142 .set = sd_setautogain,
142 .get = sd_getautogain, 143 .get = sd_getautogain,
143 }, 144 },
145#define LIGHTFREQ_IDX 4
144#define SD_FREQ 4 146#define SD_FREQ 4
145 { 147 {
146 { 148 {
@@ -6964,8 +6966,13 @@ static int zcxx_probeSensor(struct gspca_dev *gspca_dev)
6964 case SENSOR_MC501CB: 6966 case SENSOR_MC501CB:
6965 return -1; /* don't probe */ 6967 return -1; /* don't probe */
6966 case SENSOR_TAS5130C_VF0250: 6968 case SENSOR_TAS5130C_VF0250:
6967 /* may probe but with write in reg 0x0010 */ 6969 /* may probe but with no write in reg 0x0010 */
6968 return -1; /* don't probe */ 6970 return -1; /* don't probe */
6971 case SENSOR_PAS106:
6972 sensor = sif_probe(gspca_dev);
6973 if (sensor >= 0)
6974 return sensor;
6975 break;
6969 } 6976 }
6970 sensor = vga_2wr_probe(gspca_dev); 6977 sensor = vga_2wr_probe(gspca_dev);
6971 if (sensor >= 0) { 6978 if (sensor >= 0) {
@@ -6974,12 +6981,10 @@ static int zcxx_probeSensor(struct gspca_dev *gspca_dev)
6974 /* next probe is needed for OmniVision ? */ 6981 /* next probe is needed for OmniVision ? */
6975 } 6982 }
6976 sensor2 = vga_3wr_probe(gspca_dev); 6983 sensor2 = vga_3wr_probe(gspca_dev);
6977 if (sensor2 >= 0) { 6984 if (sensor2 >= 0
6978 if (sensor >= 0) 6985 && sensor >= 0)
6979 return sensor; 6986 return sensor;
6980 return sensor2; 6987 return sensor2;
6981 }
6982 return sif_probe(gspca_dev);
6983} 6988}
6984 6989
6985/* this function is called at probe time */ 6990/* this function is called at probe time */
@@ -7147,13 +7152,27 @@ static int sd_config(struct gspca_dev *gspca_dev,
7147 sd->lightfreq = sd_ctrls[SD_FREQ].qctrl.default_value; 7152 sd->lightfreq = sd_ctrls[SD_FREQ].qctrl.default_value;
7148 sd->sharpness = sd_ctrls[SD_SHARPNESS].qctrl.default_value; 7153 sd->sharpness = sd_ctrls[SD_SHARPNESS].qctrl.default_value;
7149 7154
7155 switch (sd->sensor) {
7156 case SENSOR_GC0305:
7157 case SENSOR_OV7620:
7158 case SENSOR_PO2030:
7159 gspca_dev->ctrl_dis = (1 << BRIGHTNESS_IDX);
7160 break;
7161 case SENSOR_HDCS2020:
7162 case SENSOR_HV7131B:
7163 case SENSOR_HV7131C:
7164 case SENSOR_OV7630C:
7165 gspca_dev->ctrl_dis = (1 << LIGHTFREQ_IDX);
7166 break;
7167 }
7168
7150 /* switch the led off */ 7169 /* switch the led off */
7151 reg_w(gspca_dev->dev, 0x01, 0x0000); 7170 reg_w(gspca_dev->dev, 0x01, 0x0000);
7152 return 0; 7171 return 0;
7153} 7172}
7154 7173
7155/* this function is called at open time */ 7174/* this function is called at probe and resume time */
7156static int sd_open(struct gspca_dev *gspca_dev) 7175static int sd_init(struct gspca_dev *gspca_dev)
7157{ 7176{
7158 reg_w(gspca_dev->dev, 0x01, 0x0000); 7177 reg_w(gspca_dev->dev, 0x01, 0x0000);
7159 return 0; 7178 return 0;
@@ -7314,10 +7333,6 @@ static void sd_start(struct gspca_dev *gspca_dev)
7314 } 7333 }
7315} 7334}
7316 7335
7317static void sd_stopN(struct gspca_dev *gspca_dev)
7318{
7319}
7320
7321static void sd_stop0(struct gspca_dev *gspca_dev) 7336static void sd_stop0(struct gspca_dev *gspca_dev)
7322{ 7337{
7323 struct sd *sd = (struct sd *) gspca_dev; 7338 struct sd *sd = (struct sd *) gspca_dev;
@@ -7325,11 +7340,6 @@ static void sd_stop0(struct gspca_dev *gspca_dev)
7325 send_unknown(gspca_dev->dev, sd->sensor); 7340 send_unknown(gspca_dev->dev, sd->sensor);
7326} 7341}
7327 7342
7328/* this function is called at close time */
7329static void sd_close(struct gspca_dev *gspca_dev)
7330{
7331}
7332
7333static void sd_pkt_scan(struct gspca_dev *gspca_dev, 7343static void sd_pkt_scan(struct gspca_dev *gspca_dev,
7334 struct gspca_frame *frame, 7344 struct gspca_frame *frame,
7335 __u8 *data, 7345 __u8 *data,
@@ -7489,37 +7499,30 @@ static const struct sd_desc sd_desc = {
7489 .ctrls = sd_ctrls, 7499 .ctrls = sd_ctrls,
7490 .nctrls = sizeof sd_ctrls / sizeof sd_ctrls[0], 7500 .nctrls = sizeof sd_ctrls / sizeof sd_ctrls[0],
7491 .config = sd_config, 7501 .config = sd_config,
7492 .open = sd_open, 7502 .init = sd_init,
7493 .start = sd_start, 7503 .start = sd_start,
7494 .stopN = sd_stopN,
7495 .stop0 = sd_stop0, 7504 .stop0 = sd_stop0,
7496 .close = sd_close,
7497 .pkt_scan = sd_pkt_scan, 7505 .pkt_scan = sd_pkt_scan,
7498 .querymenu = sd_querymenu, 7506 .querymenu = sd_querymenu,
7499}; 7507};
7500 7508
7501static const __devinitdata struct usb_device_id device_table[] = { 7509static const __devinitdata struct usb_device_id device_table[] = {
7502 {USB_DEVICE(0x041e, 0x041e)}, 7510 {USB_DEVICE(0x041e, 0x041e)},
7503#ifndef CONFIG_USB_ZC0301
7504 {USB_DEVICE(0x041e, 0x4017)}, 7511 {USB_DEVICE(0x041e, 0x4017)},
7505 {USB_DEVICE(0x041e, 0x401c)}, 7512 {USB_DEVICE(0x041e, 0x401c), .driver_info = SENSOR_PAS106},
7506 {USB_DEVICE(0x041e, 0x401e)}, 7513 {USB_DEVICE(0x041e, 0x401e)},
7507 {USB_DEVICE(0x041e, 0x401f)}, 7514 {USB_DEVICE(0x041e, 0x401f)},
7508#endif 7515 {USB_DEVICE(0x041e, 0x4022)},
7509 {USB_DEVICE(0x041e, 0x4029)}, 7516 {USB_DEVICE(0x041e, 0x4029)},
7510#ifndef CONFIG_USB_ZC0301 7517 {USB_DEVICE(0x041e, 0x4034), .driver_info = SENSOR_PAS106},
7511 {USB_DEVICE(0x041e, 0x4034)}, 7518 {USB_DEVICE(0x041e, 0x4035), .driver_info = SENSOR_PAS106},
7512 {USB_DEVICE(0x041e, 0x4035)},
7513 {USB_DEVICE(0x041e, 0x4036)}, 7519 {USB_DEVICE(0x041e, 0x4036)},
7514 {USB_DEVICE(0x041e, 0x403a)}, 7520 {USB_DEVICE(0x041e, 0x403a)},
7515#endif
7516 {USB_DEVICE(0x041e, 0x4051), .driver_info = SENSOR_TAS5130C_VF0250}, 7521 {USB_DEVICE(0x041e, 0x4051), .driver_info = SENSOR_TAS5130C_VF0250},
7517 {USB_DEVICE(0x041e, 0x4053), .driver_info = SENSOR_TAS5130C_VF0250}, 7522 {USB_DEVICE(0x041e, 0x4053), .driver_info = SENSOR_TAS5130C_VF0250},
7518#ifndef CONFIG_USB_ZC0301
7519 {USB_DEVICE(0x0458, 0x7007)}, 7523 {USB_DEVICE(0x0458, 0x7007)},
7520 {USB_DEVICE(0x0458, 0x700c)}, 7524 {USB_DEVICE(0x0458, 0x700c)},
7521 {USB_DEVICE(0x0458, 0x700f)}, 7525 {USB_DEVICE(0x0458, 0x700f)},
7522#endif
7523 {USB_DEVICE(0x0461, 0x0a00)}, 7526 {USB_DEVICE(0x0461, 0x0a00)},
7524 {USB_DEVICE(0x046d, 0x08a0)}, 7527 {USB_DEVICE(0x046d, 0x08a0)},
7525 {USB_DEVICE(0x046d, 0x08a1)}, 7528 {USB_DEVICE(0x046d, 0x08a1)},
@@ -7531,7 +7534,7 @@ static const __devinitdata struct usb_device_id device_table[] = {
7531 {USB_DEVICE(0x046d, 0x08aa)}, 7534 {USB_DEVICE(0x046d, 0x08aa)},
7532 {USB_DEVICE(0x046d, 0x08ac)}, 7535 {USB_DEVICE(0x046d, 0x08ac)},
7533 {USB_DEVICE(0x046d, 0x08ad)}, 7536 {USB_DEVICE(0x046d, 0x08ad)},
7534#ifndef CONFIG_USB_ZC0301 7537#if !defined CONFIG_USB_ZC0301 && !defined CONFIG_USB_ZC0301_MODULE
7535 {USB_DEVICE(0x046d, 0x08ae)}, 7538 {USB_DEVICE(0x046d, 0x08ae)},
7536#endif 7539#endif
7537 {USB_DEVICE(0x046d, 0x08af)}, 7540 {USB_DEVICE(0x046d, 0x08af)},
@@ -7541,27 +7544,25 @@ static const __devinitdata struct usb_device_id device_table[] = {
7541 {USB_DEVICE(0x046d, 0x08d8)}, 7544 {USB_DEVICE(0x046d, 0x08d8)},
7542 {USB_DEVICE(0x046d, 0x08da)}, 7545 {USB_DEVICE(0x046d, 0x08da)},
7543 {USB_DEVICE(0x046d, 0x08dd), .driver_info = SENSOR_MC501CB}, 7546 {USB_DEVICE(0x046d, 0x08dd), .driver_info = SENSOR_MC501CB},
7544 {USB_DEVICE(0x0471, 0x0325)}, 7547 {USB_DEVICE(0x0471, 0x0325), .driver_info = SENSOR_PAS106},
7545 {USB_DEVICE(0x0471, 0x0326)}, 7548 {USB_DEVICE(0x0471, 0x0326), .driver_info = SENSOR_PAS106},
7546 {USB_DEVICE(0x0471, 0x032d)}, 7549 {USB_DEVICE(0x0471, 0x032d), .driver_info = SENSOR_PAS106},
7547 {USB_DEVICE(0x0471, 0x032e)}, 7550 {USB_DEVICE(0x0471, 0x032e), .driver_info = SENSOR_PAS106},
7548 {USB_DEVICE(0x055f, 0xc005)}, 7551 {USB_DEVICE(0x055f, 0xc005)},
7549#ifndef CONFIG_USB_ZC0301
7550 {USB_DEVICE(0x055f, 0xd003)}, 7552 {USB_DEVICE(0x055f, 0xd003)},
7551 {USB_DEVICE(0x055f, 0xd004)}, 7553 {USB_DEVICE(0x055f, 0xd004)},
7552#endif
7553 {USB_DEVICE(0x0698, 0x2003)}, 7554 {USB_DEVICE(0x0698, 0x2003)},
7555 {USB_DEVICE(0x0ac8, 0x0301), .driver_info = SENSOR_PAS106},
7554 {USB_DEVICE(0x0ac8, 0x0302)}, 7556 {USB_DEVICE(0x0ac8, 0x0302)},
7555#ifndef CONFIG_USB_ZC0301
7556 {USB_DEVICE(0x0ac8, 0x301b)}, 7557 {USB_DEVICE(0x0ac8, 0x301b)},
7558#if !defined CONFIG_USB_ZC0301 && !defined CONFIG_USB_ZC0301_MODULE
7557 {USB_DEVICE(0x0ac8, 0x303b)}, 7559 {USB_DEVICE(0x0ac8, 0x303b)},
7558#endif 7560#endif
7559 {USB_DEVICE(0x0ac8, 0x305b), .driver_info = SENSOR_TAS5130C_VF0250}, 7561 {USB_DEVICE(0x0ac8, 0x305b), .driver_info = SENSOR_TAS5130C_VF0250},
7560#ifndef CONFIG_USB_ZC0301
7561 {USB_DEVICE(0x0ac8, 0x307b)}, 7562 {USB_DEVICE(0x0ac8, 0x307b)},
7562 {USB_DEVICE(0x10fd, 0x0128)}, 7563 {USB_DEVICE(0x10fd, 0x0128)},
7564 {USB_DEVICE(0x10fd, 0x804d)},
7563 {USB_DEVICE(0x10fd, 0x8050)}, 7565 {USB_DEVICE(0x10fd, 0x8050)},
7564#endif
7565 {} /* end of entry */ 7566 {} /* end of entry */
7566}; 7567};
7567#undef DVNAME 7568#undef DVNAME
@@ -7581,6 +7582,10 @@ static struct usb_driver sd_driver = {
7581 .id_table = device_table, 7582 .id_table = device_table,
7582 .probe = sd_probe, 7583 .probe = sd_probe,
7583 .disconnect = gspca_disconnect, 7584 .disconnect = gspca_disconnect,
7585#ifdef CONFIG_PM
7586 .suspend = gspca_suspend,
7587 .resume = gspca_resume,
7588#endif
7584}; 7589};
7585 7590
7586static int __init sd_mod_init(void) 7591static int __init sd_mod_init(void)
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index aea1664948ce..4afc7ea07e86 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -688,7 +688,7 @@ static int __devinit ivtv_init_struct1(struct ivtv *itv)
688 spin_lock_init(&itv->lock); 688 spin_lock_init(&itv->lock);
689 spin_lock_init(&itv->dma_reg_lock); 689 spin_lock_init(&itv->dma_reg_lock);
690 690
691 itv->irq_work_queues = create_workqueue(itv->name); 691 itv->irq_work_queues = create_singlethread_workqueue(itv->name);
692 if (itv->irq_work_queues == NULL) { 692 if (itv->irq_work_queues == NULL) {
693 IVTV_ERR("Could not create ivtv workqueue\n"); 693 IVTV_ERR("Could not create ivtv workqueue\n");
694 return -1; 694 return -1;
diff --git a/drivers/media/video/ivtv/ivtv-driver.h b/drivers/media/video/ivtv/ivtv-driver.h
index ab287b48fc2b..2ceb5227637c 100644
--- a/drivers/media/video/ivtv/ivtv-driver.h
+++ b/drivers/media/video/ivtv/ivtv-driver.h
@@ -251,6 +251,7 @@ struct ivtv_mailbox_data {
251#define IVTV_F_I_DEC_PAUSED 20 /* the decoder is paused */ 251#define IVTV_F_I_DEC_PAUSED 20 /* the decoder is paused */
252#define IVTV_F_I_INITED 21 /* set after first open */ 252#define IVTV_F_I_INITED 21 /* set after first open */
253#define IVTV_F_I_FAILED 22 /* set if first open failed */ 253#define IVTV_F_I_FAILED 22 /* set if first open failed */
254#define IVTV_F_I_WORK_INITED 23 /* worker thread was initialized */
254 255
255/* Event notifications */ 256/* Event notifications */
256#define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */ 257#define IVTV_F_I_EV_DEC_STOPPED 28 /* decoder stopped event */
diff --git a/drivers/media/video/ivtv/ivtv-irq.c b/drivers/media/video/ivtv/ivtv-irq.c
index fba150a6cd23..34f3ab827858 100644
--- a/drivers/media/video/ivtv/ivtv-irq.c
+++ b/drivers/media/video/ivtv/ivtv-irq.c
@@ -76,6 +76,13 @@ void ivtv_irq_work_handler(struct work_struct *work)
76 76
77 DEFINE_WAIT(wait); 77 DEFINE_WAIT(wait);
78 78
79 if (test_and_clear_bit(IVTV_F_I_WORK_INITED, &itv->i_flags)) {
80 struct sched_param param = { .sched_priority = 99 };
81
82 /* This thread must use the FIFO scheduler as it
83 is realtime sensitive. */
84 sched_setscheduler(current, SCHED_FIFO, &param);
85 }
79 if (test_and_clear_bit(IVTV_F_I_WORK_HANDLER_PIO, &itv->i_flags)) 86 if (test_and_clear_bit(IVTV_F_I_WORK_HANDLER_PIO, &itv->i_flags))
80 ivtv_pio_work_handler(itv); 87 ivtv_pio_work_handler(itv);
81 88
@@ -678,34 +685,14 @@ static void ivtv_irq_enc_start_cap(struct ivtv *itv)
678 685
679static void ivtv_irq_enc_vbi_cap(struct ivtv *itv) 686static void ivtv_irq_enc_vbi_cap(struct ivtv *itv)
680{ 687{
681 struct ivtv_stream *s_mpg = &itv->streams[IVTV_ENC_STREAM_TYPE_MPG];
682 u32 data[CX2341X_MBOX_MAX_DATA]; 688 u32 data[CX2341X_MBOX_MAX_DATA];
683 struct ivtv_stream *s; 689 struct ivtv_stream *s;
684 690
685 IVTV_DEBUG_HI_IRQ("ENC START VBI CAP\n"); 691 IVTV_DEBUG_HI_IRQ("ENC START VBI CAP\n");
686 s = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI]; 692 s = &itv->streams[IVTV_ENC_STREAM_TYPE_VBI];
687 693
688 /* If more than two VBI buffers are pending, then 694 if (!stream_enc_dma_append(s, data))
689 clear the old ones and start with this new one.
690 This can happen during transition stages when MPEG capturing is
691 started, but the first interrupts haven't arrived yet. During
692 that period VBI requests can accumulate without being able to
693 DMA the data. Since at most four VBI DMA buffers are available,
694 we just drop the old requests when there are already three
695 requests queued. */
696 if (s->sg_pending_size > 2) {
697 struct ivtv_buffer *buf;
698 list_for_each_entry(buf, &s->q_predma.list, list)
699 ivtv_buf_sync_for_cpu(s, buf);
700 ivtv_queue_move(s, &s->q_predma, NULL, &s->q_free, 0);
701 s->sg_pending_size = 0;
702 }
703 /* if we can append the data, and the MPEG stream isn't capturing,
704 then start a DMA request for just the VBI data. */
705 if (!stream_enc_dma_append(s, data) &&
706 !test_bit(IVTV_F_S_STREAMING, &s_mpg->s_flags)) {
707 set_bit(ivtv_use_pio(s) ? IVTV_F_S_PIO_PENDING : IVTV_F_S_DMA_PENDING, &s->s_flags); 695 set_bit(ivtv_use_pio(s) ? IVTV_F_S_PIO_PENDING : IVTV_F_S_DMA_PENDING, &s->s_flags);
708 }
709} 696}
710 697
711static void ivtv_irq_dec_vbi_reinsert(struct ivtv *itv) 698static void ivtv_irq_dec_vbi_reinsert(struct ivtv *itv)
diff --git a/drivers/media/video/ivtv/ivtv-queue.h b/drivers/media/video/ivtv/ivtv-queue.h
index 7cfc0c9ab050..476556afd39a 100644
--- a/drivers/media/video/ivtv/ivtv-queue.h
+++ b/drivers/media/video/ivtv/ivtv-queue.h
@@ -23,7 +23,7 @@
23#define IVTV_QUEUE_H 23#define IVTV_QUEUE_H
24 24
25#define IVTV_DMA_UNMAPPED ((u32) -1) 25#define IVTV_DMA_UNMAPPED ((u32) -1)
26#define SLICED_VBI_PIO 1 26#define SLICED_VBI_PIO 0
27 27
28/* ivtv_buffer utility functions */ 28/* ivtv_buffer utility functions */
29 29
diff --git a/drivers/media/video/ivtv/ivtv-streams.c b/drivers/media/video/ivtv/ivtv-streams.c
index 54d2023b26c4..730e85d86fc8 100644
--- a/drivers/media/video/ivtv/ivtv-streams.c
+++ b/drivers/media/video/ivtv/ivtv-streams.c
@@ -363,7 +363,7 @@ static void ivtv_vbi_setup(struct ivtv *itv)
363 /* Every X number of frames a VBI interrupt arrives (frames as in 25 or 30 fps) */ 363 /* Every X number of frames a VBI interrupt arrives (frames as in 25 or 30 fps) */
364 data[1] = 1; 364 data[1] = 1;
365 /* The VBI frames are stored in a ringbuffer with this size (with a VBI frame as unit) */ 365 /* The VBI frames are stored in a ringbuffer with this size (with a VBI frame as unit) */
366 data[2] = raw ? 4 : 8; 366 data[2] = raw ? 4 : 4 * (itv->vbi.raw_size / itv->vbi.enc_size);
367 /* The start/stop codes determine which VBI lines end up in the raw VBI data area. 367 /* The start/stop codes determine which VBI lines end up in the raw VBI data area.
368 The codes are from table 24 in the saa7115 datasheet. Each raw/sliced/video line 368 The codes are from table 24 in the saa7115 datasheet. Each raw/sliced/video line
369 is framed with codes FF0000XX where XX is the SAV/EAV (Start/End of Active Video) 369 is framed with codes FF0000XX where XX is the SAV/EAV (Start/End of Active Video)
diff --git a/drivers/media/video/ivtv/ivtv-vbi.c b/drivers/media/video/ivtv/ivtv-vbi.c
index 71798f0da27f..1ce9deb1104f 100644
--- a/drivers/media/video/ivtv/ivtv-vbi.c
+++ b/drivers/media/video/ivtv/ivtv-vbi.c
@@ -293,6 +293,7 @@ static u32 compress_sliced_buf(struct ivtv *itv, u32 line, u8 *buf, u32 size, u8
293 u32 line_size = itv->vbi.sliced_decoder_line_size; 293 u32 line_size = itv->vbi.sliced_decoder_line_size;
294 struct v4l2_decode_vbi_line vbi; 294 struct v4l2_decode_vbi_line vbi;
295 int i; 295 int i;
296 unsigned lines = 0;
296 297
297 /* find the first valid line */ 298 /* find the first valid line */
298 for (i = 0; i < size; i++, buf++) { 299 for (i = 0; i < size; i++, buf++) {
@@ -313,7 +314,8 @@ static u32 compress_sliced_buf(struct ivtv *itv, u32 line, u8 *buf, u32 size, u8
313 } 314 }
314 vbi.p = p + 4; 315 vbi.p = p + 4;
315 itv->video_dec_func(itv, VIDIOC_INT_DECODE_VBI_LINE, &vbi); 316 itv->video_dec_func(itv, VIDIOC_INT_DECODE_VBI_LINE, &vbi);
316 if (vbi.type) { 317 if (vbi.type && !(lines & (1 << vbi.line))) {
318 lines |= 1 << vbi.line;
317 itv->vbi.sliced_data[line].id = vbi.type; 319 itv->vbi.sliced_data[line].id = vbi.type;
318 itv->vbi.sliced_data[line].field = vbi.is_second_field; 320 itv->vbi.sliced_data[line].field = vbi.is_second_field;
319 itv->vbi.sliced_data[line].line = vbi.line; 321 itv->vbi.sliced_data[line].line = vbi.line;
diff --git a/drivers/media/video/ivtv/ivtv-version.h b/drivers/media/video/ivtv/ivtv-version.h
index 442f43f11b73..8cd753d30bf7 100644
--- a/drivers/media/video/ivtv/ivtv-version.h
+++ b/drivers/media/video/ivtv/ivtv-version.h
@@ -22,7 +22,7 @@
22 22
23#define IVTV_DRIVER_NAME "ivtv" 23#define IVTV_DRIVER_NAME "ivtv"
24#define IVTV_DRIVER_VERSION_MAJOR 1 24#define IVTV_DRIVER_VERSION_MAJOR 1
25#define IVTV_DRIVER_VERSION_MINOR 3 25#define IVTV_DRIVER_VERSION_MINOR 4
26#define IVTV_DRIVER_VERSION_PATCHLEVEL 0 26#define IVTV_DRIVER_VERSION_PATCHLEVEL 0
27 27
28#define IVTV_VERSION __stringify(IVTV_DRIVER_VERSION_MAJOR) "." __stringify(IVTV_DRIVER_VERSION_MINOR) "." __stringify(IVTV_DRIVER_VERSION_PATCHLEVEL) 28#define IVTV_VERSION __stringify(IVTV_DRIVER_VERSION_MAJOR) "." __stringify(IVTV_DRIVER_VERSION_MINOR) "." __stringify(IVTV_DRIVER_VERSION_PATCHLEVEL)
diff --git a/drivers/media/video/ks0127.c b/drivers/media/video/ks0127.c
index 4895540be195..2fd4b4a44aa9 100644
--- a/drivers/media/video/ks0127.c
+++ b/drivers/media/video/ks0127.c
@@ -679,26 +679,27 @@ static int ks0127_command(struct i2c_client *client,
679 679
680 case DECODER_ENABLE_OUTPUT: 680 case DECODER_ENABLE_OUTPUT:
681 { 681 {
682 int enable;
682 683
683 int *iarg = arg; 684 iarg = arg;
684 int enable = (*iarg != 0); 685 enable = (*iarg != 0);
685 if (enable) { 686 if (enable) {
686 dprintk("ks0127: command " 687 dprintk("ks0127: command "
687 "DECODER_ENABLE_OUTPUT on " 688 "DECODER_ENABLE_OUTPUT on "
688 "(%d)\n", enable); 689 "(%d)\n", enable);
689 /* All output pins on */ 690 /* All output pins on */
690 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x30); 691 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x30);
691 /* Obey the OEN pin */ 692 /* Obey the OEN pin */
692 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x00); 693 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x00);
693 } else { 694 } else {
694 dprintk("ks0127: command " 695 dprintk("ks0127: command "
695 "DECODER_ENABLE_OUTPUT off " 696 "DECODER_ENABLE_OUTPUT off "
696 "(%d)\n", enable); 697 "(%d)\n", enable);
697 /* Video output pins off */ 698 /* Video output pins off */
698 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x00); 699 ks0127_and_or(ks, KS_OFMTA, 0xcf, 0x00);
699 /* Ignore the OEN pin */ 700 /* Ignore the OEN pin */
700 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x80); 701 ks0127_and_or(ks, KS_CDEM, 0x7f, 0x80);
701 } 702 }
702 } 703 }
703 break; 704 break;
704 705
diff --git a/drivers/media/video/meye.c b/drivers/media/video/meye.c
index 7c8ef6ac6c39..a9ef7802eb5f 100644
--- a/drivers/media/video/meye.c
+++ b/drivers/media/video/meye.c
@@ -1806,6 +1806,7 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
1806 memcpy(meye.video_dev, &meye_template, sizeof(meye_template)); 1806 memcpy(meye.video_dev, &meye_template, sizeof(meye_template));
1807 meye.video_dev->parent = &meye.mchip_dev->dev; 1807 meye.video_dev->parent = &meye.mchip_dev->dev;
1808 1808
1809 ret = -EIO;
1809 if ((ret = sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 1))) { 1810 if ((ret = sony_pic_camera_command(SONY_PIC_COMMAND_SETCAMERA, 1))) {
1810 printk(KERN_ERR "meye: unable to power on the camera\n"); 1811 printk(KERN_ERR "meye: unable to power on the camera\n");
1811 printk(KERN_ERR "meye: did you enable the camera in " 1812 printk(KERN_ERR "meye: did you enable the camera in "
@@ -1813,7 +1814,6 @@ static int __devinit meye_probe(struct pci_dev *pcidev,
1813 goto outsonypienable; 1814 goto outsonypienable;
1814 } 1815 }
1815 1816
1816 ret = -EIO;
1817 if ((ret = pci_enable_device(meye.mchip_dev))) { 1817 if ((ret = pci_enable_device(meye.mchip_dev))) {
1818 printk(KERN_ERR "meye: pci_enable_device failed\n"); 1818 printk(KERN_ERR "meye: pci_enable_device failed\n");
1819 goto outenabledev; 1819 goto outenabledev;
diff --git a/drivers/media/video/mxb.c b/drivers/media/video/mxb.c
index f68e91fbe7fb..8ef578caba3b 100644
--- a/drivers/media/video/mxb.c
+++ b/drivers/media/video/mxb.c
@@ -931,27 +931,29 @@ static int mxb_ioctl(struct saa7146_fh *fh, unsigned int cmd, void *arg)
931 return 0; 931 return 0;
932} 932}
933 933
934static int std_callback(struct saa7146_dev* dev, struct saa7146_standard *std) 934static int std_callback(struct saa7146_dev *dev, struct saa7146_standard *standard)
935{ 935{
936 struct mxb* mxb = (struct mxb*)dev->ext_priv; 936 struct mxb *mxb = (struct mxb *)dev->ext_priv;
937 int zero = 0; 937 int zero = 0;
938 int one = 1; 938 int one = 1;
939 939
940 if(V4L2_STD_PAL_I == std->id ) { 940 if (V4L2_STD_PAL_I == standard->id) {
941 v4l2_std_id std = V4L2_STD_PAL_I; 941 v4l2_std_id std = V4L2_STD_PAL_I;
942
942 DEB_D(("VIDIOC_S_STD: setting mxb for PAL_I.\n")); 943 DEB_D(("VIDIOC_S_STD: setting mxb for PAL_I.\n"));
943 /* set the 7146 gpio register -- I don't know what this does exactly */ 944 /* set the 7146 gpio register -- I don't know what this does exactly */
944 saa7146_write(dev, GPIO_CTRL, 0x00404050); 945 saa7146_write(dev, GPIO_CTRL, 0x00404050);
945 /* unset the 7111 gpio register -- I don't know what this does exactly */ 946 /* unset the 7111 gpio register -- I don't know what this does exactly */
946 mxb->saa7111a->driver->command(mxb->saa7111a,DECODER_SET_GPIO, &zero); 947 mxb->saa7111a->driver->command(mxb->saa7111a, DECODER_SET_GPIO, &zero);
947 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std); 948 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
948 } else { 949 } else {
949 v4l2_std_id std = V4L2_STD_PAL_BG; 950 v4l2_std_id std = V4L2_STD_PAL_BG;
951
950 DEB_D(("VIDIOC_S_STD: setting mxb for PAL/NTSC/SECAM.\n")); 952 DEB_D(("VIDIOC_S_STD: setting mxb for PAL/NTSC/SECAM.\n"));
951 /* set the 7146 gpio register -- I don't know what this does exactly */ 953 /* set the 7146 gpio register -- I don't know what this does exactly */
952 saa7146_write(dev, GPIO_CTRL, 0x00404050); 954 saa7146_write(dev, GPIO_CTRL, 0x00404050);
953 /* set the 7111 gpio register -- I don't know what this does exactly */ 955 /* set the 7111 gpio register -- I don't know what this does exactly */
954 mxb->saa7111a->driver->command(mxb->saa7111a,DECODER_SET_GPIO, &one); 956 mxb->saa7111a->driver->command(mxb->saa7111a, DECODER_SET_GPIO, &one);
955 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std); 957 mxb->tuner->driver->command(mxb->tuner, VIDIOC_S_STD, &std);
956 } 958 }
957 return 0; 959 return 0;
diff --git a/drivers/media/video/ov511.c b/drivers/media/video/ov511.c
index 9edaca4371d7..3d3c48db45d9 100644
--- a/drivers/media/video/ov511.c
+++ b/drivers/media/video/ov511.c
@@ -626,9 +626,9 @@ ov511_i2c_write_internal(struct usb_ov511 *ov,
626 break; 626 break;
627 627
628 /* Retry until idle */ 628 /* Retry until idle */
629 do 629 do {
630 rc = reg_r(ov, R511_I2C_CTL); 630 rc = reg_r(ov, R511_I2C_CTL);
631 while (rc > 0 && ((rc&1) == 0)); 631 } while (rc > 0 && ((rc&1) == 0));
632 if (rc < 0) 632 if (rc < 0)
633 break; 633 break;
634 634
@@ -703,9 +703,9 @@ ov511_i2c_read_internal(struct usb_ov511 *ov, unsigned char reg)
703 return rc; 703 return rc;
704 704
705 /* Retry until idle */ 705 /* Retry until idle */
706 do 706 do {
707 rc = reg_r(ov, R511_I2C_CTL); 707 rc = reg_r(ov, R511_I2C_CTL);
708 while (rc > 0 && ((rc&1) == 0)); 708 } while (rc > 0 && ((rc & 1) == 0));
709 if (rc < 0) 709 if (rc < 0)
710 return rc; 710 return rc;
711 711
@@ -729,9 +729,9 @@ ov511_i2c_read_internal(struct usb_ov511 *ov, unsigned char reg)
729 return rc; 729 return rc;
730 730
731 /* Retry until idle */ 731 /* Retry until idle */
732 do 732 do {
733 rc = reg_r(ov, R511_I2C_CTL); 733 rc = reg_r(ov, R511_I2C_CTL);
734 while (rc > 0 && ((rc&1) == 0)); 734 } while (rc > 0 && ((rc&1) == 0));
735 if (rc < 0) 735 if (rc < 0)
736 return rc; 736 return rc;
737 737
diff --git a/drivers/media/video/pms.c b/drivers/media/video/pms.c
index 00425d743656..7c84f795db54 100644
--- a/drivers/media/video/pms.c
+++ b/drivers/media/video/pms.c
@@ -1019,10 +1019,23 @@ static int init_mediavision(void)
1019 * Initialization and module stuff 1019 * Initialization and module stuff
1020 */ 1020 */
1021 1021
1022#ifndef MODULE
1023static int enable;
1024module_param(enable, int, 0);
1025#endif
1026
1022static int __init init_pms_cards(void) 1027static int __init init_pms_cards(void)
1023{ 1028{
1024 printk(KERN_INFO "Mediavision Pro Movie Studio driver 0.02\n"); 1029 printk(KERN_INFO "Mediavision Pro Movie Studio driver 0.02\n");
1025 1030
1031#ifndef MODULE
1032 if (!enable) {
1033 printk(KERN_INFO "PMS: not enabled, use pms.enable=1 to "
1034 "probe\n");
1035 return -ENODEV;
1036 }
1037#endif
1038
1026 data_port = io_port +1; 1039 data_port = io_port +1;
1027 1040
1028 if(init_mediavision()) 1041 if(init_mediavision())
diff --git a/drivers/media/video/pwc/pwc-ctrl.c b/drivers/media/video/pwc/pwc-ctrl.c
index 1cccd5c77048..dbc560742553 100644
--- a/drivers/media/video/pwc/pwc-ctrl.c
+++ b/drivers/media/video/pwc/pwc-ctrl.c
@@ -1635,15 +1635,15 @@ int pwc_ioctl(struct pwc_device *pdev, unsigned int cmd, void *arg)
1635 1635
1636 case VIDIOCPWCGVIDCMD: 1636 case VIDIOCPWCGVIDCMD:
1637 { 1637 {
1638 ARG_DEF(struct pwc_video_command, cmd); 1638 ARG_DEF(struct pwc_video_command, vcmd);
1639 1639
1640 ARGR(cmd).type = pdev->type; 1640 ARGR(vcmd).type = pdev->type;
1641 ARGR(cmd).release = pdev->release; 1641 ARGR(vcmd).release = pdev->release;
1642 ARGR(cmd).command_len = pdev->cmd_len; 1642 ARGR(vcmd).command_len = pdev->cmd_len;
1643 memcpy(&ARGR(cmd).command_buf, pdev->cmd_buf, pdev->cmd_len); 1643 memcpy(&ARGR(vcmd).command_buf, pdev->cmd_buf, pdev->cmd_len);
1644 ARGR(cmd).bandlength = pdev->vbandlength; 1644 ARGR(vcmd).bandlength = pdev->vbandlength;
1645 ARGR(cmd).frame_size = pdev->frame_size; 1645 ARGR(vcmd).frame_size = pdev->frame_size;
1646 ARG_OUT(cmd) 1646 ARG_OUT(vcmd)
1647 break; 1647 break;
1648 } 1648 }
1649 /* 1649 /*
diff --git a/drivers/media/video/pxa_camera.c b/drivers/media/video/pxa_camera.c
index 388cf94055d3..cf96b2cc4f1c 100644
--- a/drivers/media/video/pxa_camera.c
+++ b/drivers/media/video/pxa_camera.c
@@ -1025,9 +1025,9 @@ static int pxa_camera_resume(struct soc_camera_device *icd)
1025 struct pxa_camera_dev *pcdev = ici->priv; 1025 struct pxa_camera_dev *pcdev = ici->priv;
1026 int i = 0, ret = 0; 1026 int i = 0, ret = 0;
1027 1027
1028 DRCMR68 = pcdev->dma_chans[0] | DRCMR_MAPVLD; 1028 DRCMR(68) = pcdev->dma_chans[0] | DRCMR_MAPVLD;
1029 DRCMR69 = pcdev->dma_chans[1] | DRCMR_MAPVLD; 1029 DRCMR(69) = pcdev->dma_chans[1] | DRCMR_MAPVLD;
1030 DRCMR70 = pcdev->dma_chans[2] | DRCMR_MAPVLD; 1030 DRCMR(70) = pcdev->dma_chans[2] | DRCMR_MAPVLD;
1031 1031
1032 CICR0 = pcdev->save_cicr[i++] & ~CICR0_ENB; 1032 CICR0 = pcdev->save_cicr[i++] & ~CICR0_ENB;
1033 CICR1 = pcdev->save_cicr[i++]; 1033 CICR1 = pcdev->save_cicr[i++];
@@ -1171,9 +1171,9 @@ static int pxa_camera_probe(struct platform_device *pdev)
1171 } 1171 }
1172 dev_dbg(pcdev->dev, "got DMA channel (V) %d\n", pcdev->dma_chans[2]); 1172 dev_dbg(pcdev->dev, "got DMA channel (V) %d\n", pcdev->dma_chans[2]);
1173 1173
1174 DRCMR68 = pcdev->dma_chans[0] | DRCMR_MAPVLD; 1174 DRCMR(68) = pcdev->dma_chans[0] | DRCMR_MAPVLD;
1175 DRCMR69 = pcdev->dma_chans[1] | DRCMR_MAPVLD; 1175 DRCMR(69) = pcdev->dma_chans[1] | DRCMR_MAPVLD;
1176 DRCMR70 = pcdev->dma_chans[2] | DRCMR_MAPVLD; 1176 DRCMR(70) = pcdev->dma_chans[2] | DRCMR_MAPVLD;
1177 1177
1178 /* request irq */ 1178 /* request irq */
1179 err = request_irq(pcdev->irq, pxa_camera_irq, 0, PXA_CAM_DRV_NAME, 1179 err = request_irq(pcdev->irq, pxa_camera_irq, 0, PXA_CAM_DRV_NAME,
diff --git a/drivers/media/video/saa7115.c b/drivers/media/video/saa7115.c
index bcd1c8f6cf6b..ad733caec720 100644
--- a/drivers/media/video/saa7115.c
+++ b/drivers/media/video/saa7115.c
@@ -1489,10 +1489,9 @@ static int saa7115_probe(struct i2c_client *client,
1489 client->addr << 1, client->adapter->name); 1489 client->addr << 1, client->adapter->name);
1490 1490
1491 state = kzalloc(sizeof(struct saa711x_state), GFP_KERNEL); 1491 state = kzalloc(sizeof(struct saa711x_state), GFP_KERNEL);
1492 i2c_set_clientdata(client, state); 1492 if (state == NULL)
1493 if (state == NULL) {
1494 return -ENOMEM; 1493 return -ENOMEM;
1495 } 1494 i2c_set_clientdata(client, state);
1496 state->input = -1; 1495 state->input = -1;
1497 state->output = SAA7115_IPORT_ON; 1496 state->output = SAA7115_IPORT_ON;
1498 state->enable = 1; 1497 state->enable = 1;
diff --git a/drivers/media/video/se401.c b/drivers/media/video/se401.c
index f481277892da..acceed5d04ae 100644
--- a/drivers/media/video/se401.c
+++ b/drivers/media/video/se401.c
@@ -1397,7 +1397,7 @@ static int se401_probe(struct usb_interface *intf,
1397 mutex_init(&se401->lock); 1397 mutex_init(&se401->lock);
1398 wmb(); 1398 wmb();
1399 1399
1400 if (video_register_device(&se401->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { 1400 if (video_register_device(&se401->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
1401 kfree(se401); 1401 kfree(se401);
1402 err("video_register_device failed"); 1402 err("video_register_device failed");
1403 return -EIO; 1403 return -EIO;
diff --git a/drivers/media/video/sn9c102/sn9c102_core.c b/drivers/media/video/sn9c102/sn9c102_core.c
index 23408764d0ef..2da6938718f2 100644
--- a/drivers/media/video/sn9c102/sn9c102_core.c
+++ b/drivers/media/video/sn9c102/sn9c102_core.c
@@ -3312,6 +3312,7 @@ sn9c102_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
3312 cam->v4ldev->fops = &sn9c102_fops; 3312 cam->v4ldev->fops = &sn9c102_fops;
3313 cam->v4ldev->minor = video_nr[dev_nr]; 3313 cam->v4ldev->minor = video_nr[dev_nr];
3314 cam->v4ldev->release = video_device_release; 3314 cam->v4ldev->release = video_device_release;
3315 cam->v4ldev->parent = &udev->dev;
3315 3316
3316 init_completion(&cam->probe); 3317 init_completion(&cam->probe);
3317 3318
diff --git a/drivers/media/video/sn9c102/sn9c102_devtable.h b/drivers/media/video/sn9c102/sn9c102_devtable.h
index 6ff489baacf3..90a401dc3884 100644
--- a/drivers/media/video/sn9c102/sn9c102_devtable.h
+++ b/drivers/media/video/sn9c102/sn9c102_devtable.h
@@ -40,11 +40,14 @@ struct sn9c102_device;
40 40
41static const struct usb_device_id sn9c102_id_table[] = { 41static const struct usb_device_id sn9c102_id_table[] = {
42 /* SN9C101 and SN9C102 */ 42 /* SN9C101 and SN9C102 */
43#if !defined CONFIG_USB_GSPCA && !defined CONFIG_USB_GSPCA_MODULE
43 { SN9C102_USB_DEVICE(0x0c45, 0x6001, BRIDGE_SN9C102), }, 44 { SN9C102_USB_DEVICE(0x0c45, 0x6001, BRIDGE_SN9C102), },
44 { SN9C102_USB_DEVICE(0x0c45, 0x6005, BRIDGE_SN9C102), }, 45 { SN9C102_USB_DEVICE(0x0c45, 0x6005, BRIDGE_SN9C102), },
46#endif
45 { SN9C102_USB_DEVICE(0x0c45, 0x6007, BRIDGE_SN9C102), }, 47 { SN9C102_USB_DEVICE(0x0c45, 0x6007, BRIDGE_SN9C102), },
46 { SN9C102_USB_DEVICE(0x0c45, 0x6009, BRIDGE_SN9C102), }, 48 { SN9C102_USB_DEVICE(0x0c45, 0x6009, BRIDGE_SN9C102), },
47 { SN9C102_USB_DEVICE(0x0c45, 0x600d, BRIDGE_SN9C102), }, 49 { SN9C102_USB_DEVICE(0x0c45, 0x600d, BRIDGE_SN9C102), },
50/* { SN9C102_USB_DEVICE(0x0c45, 0x6011, BRIDGE_SN9C102), }, OV6650 */
48 { SN9C102_USB_DEVICE(0x0c45, 0x6019, BRIDGE_SN9C102), }, 51 { SN9C102_USB_DEVICE(0x0c45, 0x6019, BRIDGE_SN9C102), },
49 { SN9C102_USB_DEVICE(0x0c45, 0x6024, BRIDGE_SN9C102), }, 52 { SN9C102_USB_DEVICE(0x0c45, 0x6024, BRIDGE_SN9C102), },
50 { SN9C102_USB_DEVICE(0x0c45, 0x6025, BRIDGE_SN9C102), }, 53 { SN9C102_USB_DEVICE(0x0c45, 0x6025, BRIDGE_SN9C102), },
@@ -53,29 +56,33 @@ static const struct usb_device_id sn9c102_id_table[] = {
53 { SN9C102_USB_DEVICE(0x0c45, 0x602a, BRIDGE_SN9C102), }, 56 { SN9C102_USB_DEVICE(0x0c45, 0x602a, BRIDGE_SN9C102), },
54 { SN9C102_USB_DEVICE(0x0c45, 0x602b, BRIDGE_SN9C102), }, 57 { SN9C102_USB_DEVICE(0x0c45, 0x602b, BRIDGE_SN9C102), },
55 { SN9C102_USB_DEVICE(0x0c45, 0x602c, BRIDGE_SN9C102), }, 58 { SN9C102_USB_DEVICE(0x0c45, 0x602c, BRIDGE_SN9C102), },
56 { SN9C102_USB_DEVICE(0x0c45, 0x602d, BRIDGE_SN9C102), }, 59/* { SN9C102_USB_DEVICE(0x0c45, 0x602d, BRIDGE_SN9C102), }, HV7131R */
57 { SN9C102_USB_DEVICE(0x0c45, 0x602e, BRIDGE_SN9C102), }, 60 { SN9C102_USB_DEVICE(0x0c45, 0x602e, BRIDGE_SN9C102), },
58 { SN9C102_USB_DEVICE(0x0c45, 0x6030, BRIDGE_SN9C102), }, 61 { SN9C102_USB_DEVICE(0x0c45, 0x6030, BRIDGE_SN9C102), },
59 /* SN9C103 */ 62 /* SN9C103 */
60 { SN9C102_USB_DEVICE(0x0c45, 0x6080, BRIDGE_SN9C103), }, 63 { SN9C102_USB_DEVICE(0x0c45, 0x6080, BRIDGE_SN9C103), },
61 { SN9C102_USB_DEVICE(0x0c45, 0x6082, BRIDGE_SN9C103), }, 64 { SN9C102_USB_DEVICE(0x0c45, 0x6082, BRIDGE_SN9C103), },
62 { SN9C102_USB_DEVICE(0x0c45, 0x6083, BRIDGE_SN9C103), }, 65/* { SN9C102_USB_DEVICE(0x0c45, 0x6083, BRIDGE_SN9C103), }, HY7131D/E */
63 { SN9C102_USB_DEVICE(0x0c45, 0x6088, BRIDGE_SN9C103), }, 66 { SN9C102_USB_DEVICE(0x0c45, 0x6088, BRIDGE_SN9C103), },
64 { SN9C102_USB_DEVICE(0x0c45, 0x608a, BRIDGE_SN9C103), }, 67 { SN9C102_USB_DEVICE(0x0c45, 0x608a, BRIDGE_SN9C103), },
65 { SN9C102_USB_DEVICE(0x0c45, 0x608b, BRIDGE_SN9C103), }, 68 { SN9C102_USB_DEVICE(0x0c45, 0x608b, BRIDGE_SN9C103), },
66 { SN9C102_USB_DEVICE(0x0c45, 0x608c, BRIDGE_SN9C103), }, 69 { SN9C102_USB_DEVICE(0x0c45, 0x608c, BRIDGE_SN9C103), },
67 { SN9C102_USB_DEVICE(0x0c45, 0x608e, BRIDGE_SN9C103), }, 70/* { SN9C102_USB_DEVICE(0x0c45, 0x608e, BRIDGE_SN9C103), }, CISVF10 */
71#if !defined CONFIG_USB_GSPCA && !defined CONFIG_USB_GSPCA_MODULE
68 { SN9C102_USB_DEVICE(0x0c45, 0x608f, BRIDGE_SN9C103), }, 72 { SN9C102_USB_DEVICE(0x0c45, 0x608f, BRIDGE_SN9C103), },
73#endif
69 { SN9C102_USB_DEVICE(0x0c45, 0x60a0, BRIDGE_SN9C103), }, 74 { SN9C102_USB_DEVICE(0x0c45, 0x60a0, BRIDGE_SN9C103), },
70 { SN9C102_USB_DEVICE(0x0c45, 0x60a2, BRIDGE_SN9C103), }, 75 { SN9C102_USB_DEVICE(0x0c45, 0x60a2, BRIDGE_SN9C103), },
71 { SN9C102_USB_DEVICE(0x0c45, 0x60a3, BRIDGE_SN9C103), }, 76 { SN9C102_USB_DEVICE(0x0c45, 0x60a3, BRIDGE_SN9C103), },
72 { SN9C102_USB_DEVICE(0x0c45, 0x60a8, BRIDGE_SN9C103), }, 77/* { SN9C102_USB_DEVICE(0x0c45, 0x60a8, BRIDGE_SN9C103), }, PAS106 */
73 { SN9C102_USB_DEVICE(0x0c45, 0x60aa, BRIDGE_SN9C103), }, 78/* { SN9C102_USB_DEVICE(0x0c45, 0x60aa, BRIDGE_SN9C103), }, TAS5130 */
74 { SN9C102_USB_DEVICE(0x0c45, 0x60ab, BRIDGE_SN9C103), }, 79/* { SN9C102_USB_DEVICE(0x0c45, 0x60ab, BRIDGE_SN9C103), }, TAS5130 */
75 { SN9C102_USB_DEVICE(0x0c45, 0x60ac, BRIDGE_SN9C103), }, 80 { SN9C102_USB_DEVICE(0x0c45, 0x60ac, BRIDGE_SN9C103), },
76 { SN9C102_USB_DEVICE(0x0c45, 0x60ae, BRIDGE_SN9C103), }, 81 { SN9C102_USB_DEVICE(0x0c45, 0x60ae, BRIDGE_SN9C103), },
77 { SN9C102_USB_DEVICE(0x0c45, 0x60af, BRIDGE_SN9C103), }, 82 { SN9C102_USB_DEVICE(0x0c45, 0x60af, BRIDGE_SN9C103), },
83#if !defined CONFIG_USB_GSPCA && !defined CONFIG_USB_GSPCA_MODULE
78 { SN9C102_USB_DEVICE(0x0c45, 0x60b0, BRIDGE_SN9C103), }, 84 { SN9C102_USB_DEVICE(0x0c45, 0x60b0, BRIDGE_SN9C103), },
85#endif
79 { SN9C102_USB_DEVICE(0x0c45, 0x60b2, BRIDGE_SN9C103), }, 86 { SN9C102_USB_DEVICE(0x0c45, 0x60b2, BRIDGE_SN9C103), },
80 { SN9C102_USB_DEVICE(0x0c45, 0x60b3, BRIDGE_SN9C103), }, 87 { SN9C102_USB_DEVICE(0x0c45, 0x60b3, BRIDGE_SN9C103), },
81 { SN9C102_USB_DEVICE(0x0c45, 0x60b8, BRIDGE_SN9C103), }, 88 { SN9C102_USB_DEVICE(0x0c45, 0x60b8, BRIDGE_SN9C103), },
@@ -105,7 +112,7 @@ static const struct usb_device_id sn9c102_id_table[] = {
105 { SN9C102_USB_DEVICE(0x0c45, 0x6108, BRIDGE_SN9C120), }, 112 { SN9C102_USB_DEVICE(0x0c45, 0x6108, BRIDGE_SN9C120), },
106 { SN9C102_USB_DEVICE(0x0c45, 0x610f, BRIDGE_SN9C120), }, 113 { SN9C102_USB_DEVICE(0x0c45, 0x610f, BRIDGE_SN9C120), },
107 { SN9C102_USB_DEVICE(0x0c45, 0x6130, BRIDGE_SN9C120), }, 114 { SN9C102_USB_DEVICE(0x0c45, 0x6130, BRIDGE_SN9C120), },
108 { SN9C102_USB_DEVICE(0x0c45, 0x6138, BRIDGE_SN9C120), }, 115/* { SN9C102_USB_DEVICE(0x0c45, 0x6138, BRIDGE_SN9C120), }, MO8000 */
109 { SN9C102_USB_DEVICE(0x0c45, 0x613a, BRIDGE_SN9C120), }, 116 { SN9C102_USB_DEVICE(0x0c45, 0x613a, BRIDGE_SN9C120), },
110 { SN9C102_USB_DEVICE(0x0c45, 0x613b, BRIDGE_SN9C120), }, 117 { SN9C102_USB_DEVICE(0x0c45, 0x613b, BRIDGE_SN9C120), },
111 { SN9C102_USB_DEVICE(0x0c45, 0x613c, BRIDGE_SN9C120), }, 118 { SN9C102_USB_DEVICE(0x0c45, 0x613c, BRIDGE_SN9C120), },
diff --git a/drivers/media/video/stv680.c b/drivers/media/video/stv680.c
index 56dc3d6b5b29..dce947439459 100644
--- a/drivers/media/video/stv680.c
+++ b/drivers/media/video/stv680.c
@@ -1462,7 +1462,7 @@ static int stv680_probe (struct usb_interface *intf, const struct usb_device_id
1462 mutex_init (&stv680->lock); 1462 mutex_init (&stv680->lock);
1463 wmb (); 1463 wmb ();
1464 1464
1465 if (video_register_device (stv680->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { 1465 if (video_register_device(stv680->vdev, VFL_TYPE_GRABBER, video_nr) < 0) {
1466 PDEBUG (0, "STV(e): video_register_device failed"); 1466 PDEBUG (0, "STV(e): video_register_device failed");
1467 retval = -EIO; 1467 retval = -EIO;
1468 goto error_vdev; 1468 goto error_vdev;
diff --git a/drivers/media/video/usbvideo/ibmcam.c b/drivers/media/video/usbvideo/ibmcam.c
index 59166b760104..cc27efe121dd 100644
--- a/drivers/media/video/usbvideo/ibmcam.c
+++ b/drivers/media/video/usbvideo/ibmcam.c
@@ -736,12 +736,12 @@ static enum ParseState ibmcam_model2_320x240_parse_lines(
736 * make black color and quit the horizontal scanning loop. 736 * make black color and quit the horizontal scanning loop.
737 */ 737 */
738 if (((frame->curline + 2) >= scanHeight) || (i >= scanLength)) { 738 if (((frame->curline + 2) >= scanHeight) || (i >= scanLength)) {
739 const int j = i * V4L_BYTES_PER_PIXEL; 739 const int offset = i * V4L_BYTES_PER_PIXEL;
740#if USES_IBMCAM_PUTPIXEL 740#if USES_IBMCAM_PUTPIXEL
741 /* Refresh 'f' because we don't use it much with PUTPIXEL */ 741 /* Refresh 'f' because we don't use it much with PUTPIXEL */
742 f = frame->data + (v4l_linesize * frame->curline) + j; 742 f = frame->data + (v4l_linesize * frame->curline) + offset;
743#endif 743#endif
744 memset(f, 0, v4l_linesize - j); 744 memset(f, 0, v4l_linesize - offset);
745 break; 745 break;
746 } 746 }
747 747
diff --git a/drivers/media/video/usbvideo/vicam.c b/drivers/media/video/usbvideo/vicam.c
index b7792451a299..2eb45829791c 100644
--- a/drivers/media/video/usbvideo/vicam.c
+++ b/drivers/media/video/usbvideo/vicam.c
@@ -866,7 +866,7 @@ vicam_probe( struct usb_interface *intf, const struct usb_device_id *id)
866 cam->udev = dev; 866 cam->udev = dev;
867 cam->bulkEndpoint = bulkEndpoint; 867 cam->bulkEndpoint = bulkEndpoint;
868 868
869 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, -1) == -1) { 869 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, -1) < 0) {
870 kfree(cam); 870 kfree(cam);
871 printk(KERN_WARNING "video_register_device failed\n"); 871 printk(KERN_WARNING "video_register_device failed\n");
872 return -EIO; 872 return -EIO;
diff --git a/drivers/media/video/v4l2-dev.c b/drivers/media/video/v4l2-dev.c
index 6f36006aecda..155fdec9ac7d 100644
--- a/drivers/media/video/v4l2-dev.c
+++ b/drivers/media/video/v4l2-dev.c
@@ -257,6 +257,9 @@ int video_register_device_index(struct video_device *vfd, int type, int nr,
257 int ret; 257 int ret;
258 char *name_base; 258 char *name_base;
259 259
260 if (vfd == NULL)
261 return -EINVAL;
262
260 switch (type) { 263 switch (type) {
261 case VFL_TYPE_GRABBER: 264 case VFL_TYPE_GRABBER:
262 base = MINOR_VFL_TYPE_GRABBER_MIN; 265 base = MINOR_VFL_TYPE_GRABBER_MIN;
@@ -281,7 +284,7 @@ int video_register_device_index(struct video_device *vfd, int type, int nr,
281 default: 284 default:
282 printk(KERN_ERR "%s called with unknown type: %d\n", 285 printk(KERN_ERR "%s called with unknown type: %d\n",
283 __func__, type); 286 __func__, type);
284 return -1; 287 return -EINVAL;
285 } 288 }
286 289
287 /* pick a minor number */ 290 /* pick a minor number */
diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
index fdfe7739c96e..140ef92c19c1 100644
--- a/drivers/media/video/v4l2-ioctl.c
+++ b/drivers/media/video/v4l2-ioctl.c
@@ -499,7 +499,7 @@ static void dbgbuf(unsigned int cmd, struct video_device *vfd,
499 p->timestamp.tv_sec / 3600, 499 p->timestamp.tv_sec / 3600,
500 (int)(p->timestamp.tv_sec / 60) % 60, 500 (int)(p->timestamp.tv_sec / 60) % 60,
501 (int)(p->timestamp.tv_sec % 60), 501 (int)(p->timestamp.tv_sec % 60),
502 p->timestamp.tv_usec, 502 (long)p->timestamp.tv_usec,
503 p->index, 503 p->index,
504 prt_names(p->type, v4l2_type_names), 504 prt_names(p->type, v4l2_type_names),
505 p->bytesused, p->flags, 505 p->bytesused, p->flags,
@@ -674,7 +674,7 @@ static int __video_do_ioctl(struct inode *inode, struct file *file,
674 __video_do_ioctl will be called again, with one or more 674 __video_do_ioctl will be called again, with one or more
675 V4L2 ioctls. 675 V4L2 ioctls.
676 ********************************************************/ 676 ********************************************************/
677 if (_IOC_TYPE(cmd) == 'v') 677 if (_IOC_TYPE(cmd) == 'v' && _IOC_NR(cmd) < BASE_VIDIOCPRIVATE)
678 return v4l_compat_translate_ioctl(inode, file, cmd, arg, 678 return v4l_compat_translate_ioctl(inode, file, cmd, arg,
679 __video_do_ioctl); 679 __video_do_ioctl);
680#endif 680#endif
diff --git a/drivers/media/video/vivi.c b/drivers/media/video/vivi.c
index 3518af071a2e..8ba8daafd7ea 100644
--- a/drivers/media/video/vivi.c
+++ b/drivers/media/video/vivi.c
@@ -1021,13 +1021,13 @@ static int vivi_release(void)
1021 dev = list_entry(list, struct vivi_dev, vivi_devlist); 1021 dev = list_entry(list, struct vivi_dev, vivi_devlist);
1022 1022
1023 if (-1 != dev->vfd->minor) { 1023 if (-1 != dev->vfd->minor) {
1024 video_unregister_device(dev->vfd); 1024 printk(KERN_INFO "%s: unregistering /dev/video%d\n",
1025 printk(KERN_INFO "%s: /dev/video%d unregistered.\n",
1026 VIVI_MODULE_NAME, dev->vfd->minor); 1025 VIVI_MODULE_NAME, dev->vfd->minor);
1026 video_unregister_device(dev->vfd);
1027 } else { 1027 } else {
1028 video_device_release(dev->vfd); 1028 printk(KERN_INFO "%s: releasing /dev/video%d\n",
1029 printk(KERN_INFO "%s: /dev/video%d released.\n",
1030 VIVI_MODULE_NAME, dev->vfd->minor); 1029 VIVI_MODULE_NAME, dev->vfd->minor);
1030 video_device_release(dev->vfd);
1031 } 1031 }
1032 1032
1033 kfree(dev); 1033 kfree(dev);
@@ -1104,19 +1104,29 @@ static struct video_device vivi_template = {
1104 Initialization and module stuff 1104 Initialization and module stuff
1105 ------------------------------------------------------------------*/ 1105 ------------------------------------------------------------------*/
1106 1106
1107/* This routine allocates from 1 to n_devs virtual drivers.
1108
1109 The real maximum number of virtual drivers will depend on how many drivers
1110 will succeed. This is limited to the maximum number of devices that
1111 videodev supports. Since there are 64 minors for video grabbers, this is
1112 currently the theoretical maximum limit. However, a further limit does
1113 exist at videodev that forbids any driver to register more than 32 video
1114 grabbers.
1115 */
1107static int __init vivi_init(void) 1116static int __init vivi_init(void)
1108{ 1117{
1109 int ret = -ENOMEM, i; 1118 int ret = -ENOMEM, i;
1110 struct vivi_dev *dev; 1119 struct vivi_dev *dev;
1111 struct video_device *vfd; 1120 struct video_device *vfd;
1112 1121
1122 if (n_devs <= 0)
1123 n_devs = 1;
1124
1113 for (i = 0; i < n_devs; i++) { 1125 for (i = 0; i < n_devs; i++) {
1114 dev = kzalloc(sizeof(*dev), GFP_KERNEL); 1126 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
1115 if (NULL == dev) 1127 if (!dev)
1116 break; 1128 break;
1117 1129
1118 list_add_tail(&dev->vivi_devlist, &vivi_devlist);
1119
1120 /* init video dma queues */ 1130 /* init video dma queues */
1121 INIT_LIST_HEAD(&dev->vidq.active); 1131 INIT_LIST_HEAD(&dev->vidq.active);
1122 init_waitqueue_head(&dev->vidq.wq); 1132 init_waitqueue_head(&dev->vidq.wq);
@@ -1126,14 +1136,27 @@ static int __init vivi_init(void)
1126 mutex_init(&dev->mutex); 1136 mutex_init(&dev->mutex);
1127 1137
1128 vfd = video_device_alloc(); 1138 vfd = video_device_alloc();
1129 if (NULL == vfd) 1139 if (!vfd) {
1140 kfree(dev);
1130 break; 1141 break;
1142 }
1131 1143
1132 *vfd = vivi_template; 1144 *vfd = vivi_template;
1133 1145
1134 ret = video_register_device(vfd, VFL_TYPE_GRABBER, video_nr); 1146 ret = video_register_device(vfd, VFL_TYPE_GRABBER, video_nr);
1135 if (ret < 0) 1147 if (ret < 0) {
1148 video_device_release(vfd);
1149 kfree(dev);
1150
1151 /* If some registers succeeded, keep driver */
1152 if (i)
1153 ret = 0;
1154
1136 break; 1155 break;
1156 }
1157
1158 /* Now that everything is fine, let's add it to device list */
1159 list_add_tail(&dev->vivi_devlist, &vivi_devlist);
1137 1160
1138 snprintf(vfd->name, sizeof(vfd->name), "%s (%i)", 1161 snprintf(vfd->name, sizeof(vfd->name), "%s (%i)",
1139 vivi_template.name, vfd->minor); 1162 vivi_template.name, vfd->minor);
@@ -1149,11 +1172,16 @@ static int __init vivi_init(void)
1149 if (ret < 0) { 1172 if (ret < 0) {
1150 vivi_release(); 1173 vivi_release();
1151 printk(KERN_INFO "Error %d while loading vivi driver\n", ret); 1174 printk(KERN_INFO "Error %d while loading vivi driver\n", ret);
1152 } else 1175 } else {
1153 printk(KERN_INFO "Video Technology Magazine Virtual Video " 1176 printk(KERN_INFO "Video Technology Magazine Virtual Video "
1154 "Capture Board ver %u.%u.%u successfully loaded.\n", 1177 "Capture Board ver %u.%u.%u successfully loaded.\n",
1155 (VIVI_VERSION >> 16) & 0xFF, (VIVI_VERSION >> 8) & 0xFF, 1178 (VIVI_VERSION >> 16) & 0xFF, (VIVI_VERSION >> 8) & 0xFF,
1156 VIVI_VERSION & 0xFF); 1179 VIVI_VERSION & 0xFF);
1180
1181 /* n_devs will reflect the actual number of allocated devices */
1182 n_devs = i;
1183 }
1184
1157 return ret; 1185 return ret;
1158} 1186}
1159 1187
@@ -1169,10 +1197,10 @@ MODULE_DESCRIPTION("Video Technology Magazine Virtual Video Capture Board");
1169MODULE_AUTHOR("Mauro Carvalho Chehab, Ted Walther and John Sokol"); 1197MODULE_AUTHOR("Mauro Carvalho Chehab, Ted Walther and John Sokol");
1170MODULE_LICENSE("Dual BSD/GPL"); 1198MODULE_LICENSE("Dual BSD/GPL");
1171 1199
1172module_param(video_nr, int, 0); 1200module_param(video_nr, uint, 0444);
1173MODULE_PARM_DESC(video_nr, "video iminor start number"); 1201MODULE_PARM_DESC(video_nr, "video iminor start number");
1174 1202
1175module_param(n_devs, int, 0); 1203module_param(n_devs, uint, 0444);
1176MODULE_PARM_DESC(n_devs, "number of video devices to create"); 1204MODULE_PARM_DESC(n_devs, "number of video devices to create");
1177 1205
1178module_param_named(debug, vivi_template.debug, int, 0444); 1206module_param_named(debug, vivi_template.debug, int, 0444);
diff --git a/drivers/media/video/w9966.c b/drivers/media/video/w9966.c
index 9402f40095b4..2ff00bc5ad64 100644
--- a/drivers/media/video/w9966.c
+++ b/drivers/media/video/w9966.c
@@ -334,7 +334,7 @@ static int w9966_init(struct w9966_dev* cam, struct parport* port)
334 memcpy(&cam->vdev, &w9966_template, sizeof(struct video_device)); 334 memcpy(&cam->vdev, &w9966_template, sizeof(struct video_device));
335 cam->vdev.priv = cam; 335 cam->vdev.priv = cam;
336 336
337 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, video_nr) == -1) 337 if (video_register_device(&cam->vdev, VFL_TYPE_GRABBER, video_nr) < 0)
338 return -1; 338 return -1;
339 339
340 w9966_setState(cam, W9966_STATE_VDEV, W9966_STATE_VDEV); 340 w9966_setState(cam, W9966_STATE_VDEV, W9966_STATE_VDEV);
diff --git a/drivers/media/video/zc0301/zc0301_core.c b/drivers/media/video/zc0301/zc0301_core.c
index 550ce7bd5c87..0c3287734c93 100644
--- a/drivers/media/video/zc0301/zc0301_core.c
+++ b/drivers/media/video/zc0301/zc0301_core.c
@@ -1988,6 +1988,7 @@ zc0301_usb_probe(struct usb_interface* intf, const struct usb_device_id* id)
1988 cam->v4ldev->fops = &zc0301_fops; 1988 cam->v4ldev->fops = &zc0301_fops;
1989 cam->v4ldev->minor = video_nr[dev_nr]; 1989 cam->v4ldev->minor = video_nr[dev_nr];
1990 cam->v4ldev->release = video_device_release; 1990 cam->v4ldev->release = video_device_release;
1991 cam->v4ldev->parent = &udev->dev;
1991 video_set_drvdata(cam->v4ldev, cam); 1992 video_set_drvdata(cam->v4ldev, cam);
1992 1993
1993 init_completion(&cam->probe); 1994 init_completion(&cam->probe);
diff --git a/drivers/media/video/zc0301/zc0301_sensor.h b/drivers/media/video/zc0301/zc0301_sensor.h
index 70fe6fc6cdd5..b0cd49c438a3 100644
--- a/drivers/media/video/zc0301/zc0301_sensor.h
+++ b/drivers/media/video/zc0301/zc0301_sensor.h
@@ -60,27 +60,8 @@ zc0301_attach_sensor(struct zc0301_device* cam, struct zc0301_sensor* sensor);
60 60
61#define ZC0301_ID_TABLE \ 61#define ZC0301_ID_TABLE \
62static const struct usb_device_id zc0301_id_table[] = { \ 62static const struct usb_device_id zc0301_id_table[] = { \
63 { ZC0301_USB_DEVICE(0x041e, 0x4017, 0xff), }, /* ICM105 */ \
64 { ZC0301_USB_DEVICE(0x041e, 0x401c, 0xff), }, /* PAS106 */ \
65 { ZC0301_USB_DEVICE(0x041e, 0x401e, 0xff), }, /* HV7131 */ \
66 { ZC0301_USB_DEVICE(0x041e, 0x401f, 0xff), }, /* TAS5130 */ \
67 { ZC0301_USB_DEVICE(0x041e, 0x4022, 0xff), }, \
68 { ZC0301_USB_DEVICE(0x041e, 0x4034, 0xff), }, /* PAS106 */ \
69 { ZC0301_USB_DEVICE(0x041e, 0x4035, 0xff), }, /* PAS106 */ \
70 { ZC0301_USB_DEVICE(0x041e, 0x4036, 0xff), }, /* HV7131 */ \
71 { ZC0301_USB_DEVICE(0x041e, 0x403a, 0xff), }, /* HV7131 */ \
72 { ZC0301_USB_DEVICE(0x0458, 0x7007, 0xff), }, /* TAS5130 */ \
73 { ZC0301_USB_DEVICE(0x0458, 0x700c, 0xff), }, /* TAS5130 */ \
74 { ZC0301_USB_DEVICE(0x0458, 0x700f, 0xff), }, /* TAS5130 */ \
75 { ZC0301_USB_DEVICE(0x046d, 0x08ae, 0xff), }, /* PAS202 */ \ 63 { ZC0301_USB_DEVICE(0x046d, 0x08ae, 0xff), }, /* PAS202 */ \
76 { ZC0301_USB_DEVICE(0x055f, 0xd003, 0xff), }, /* TAS5130 */ \
77 { ZC0301_USB_DEVICE(0x055f, 0xd004, 0xff), }, /* TAS5130 */ \
78 { ZC0301_USB_DEVICE(0x0ac8, 0x0301, 0xff), }, \
79 { ZC0301_USB_DEVICE(0x0ac8, 0x301b, 0xff), }, /* PB-0330/HV7131 */ \
80 { ZC0301_USB_DEVICE(0x0ac8, 0x303b, 0xff), }, /* PB-0330 */ \ 64 { ZC0301_USB_DEVICE(0x0ac8, 0x303b, 0xff), }, /* PB-0330 */ \
81 { ZC0301_USB_DEVICE(0x10fd, 0x0128, 0xff), }, /* TAS5130 */ \
82 { ZC0301_USB_DEVICE(0x10fd, 0x8050, 0xff), }, /* TAS5130 */ \
83 { ZC0301_USB_DEVICE(0x10fd, 0x804e, 0xff), }, /* TAS5130 */ \
84 { } \ 65 { } \
85}; 66};
86 67
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c
index a38005008a20..cea46906408e 100644
--- a/drivers/memstick/core/memstick.c
+++ b/drivers/memstick/core/memstick.c
@@ -185,7 +185,7 @@ static void memstick_free(struct device *dev)
185} 185}
186 186
187static struct class memstick_host_class = { 187static struct class memstick_host_class = {
188 .name = "memstick_host", 188 .name = "memstick_host",
189 .dev_release = memstick_free 189 .dev_release = memstick_free
190}; 190};
191 191
@@ -264,7 +264,7 @@ EXPORT_SYMBOL(memstick_new_req);
264 * @sg - TPC argument 264 * @sg - TPC argument
265 */ 265 */
266void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, 266void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
267 struct scatterlist *sg) 267 const struct scatterlist *sg)
268{ 268{
269 mrq->tpc = tpc; 269 mrq->tpc = tpc;
270 if (tpc & 8) 270 if (tpc & 8)
@@ -294,7 +294,7 @@ EXPORT_SYMBOL(memstick_init_req_sg);
294 * user supplied buffer. 294 * user supplied buffer.
295 */ 295 */
296void memstick_init_req(struct memstick_request *mrq, unsigned char tpc, 296void memstick_init_req(struct memstick_request *mrq, unsigned char tpc,
297 void *buf, size_t length) 297 const void *buf, size_t length)
298{ 298{
299 mrq->tpc = tpc; 299 mrq->tpc = tpc;
300 if (tpc & 8) 300 if (tpc & 8)
@@ -439,7 +439,7 @@ static void memstick_check(struct work_struct *work)
439 if (!host->card) { 439 if (!host->card) {
440 if (memstick_power_on(host)) 440 if (memstick_power_on(host))
441 goto out_power_off; 441 goto out_power_off;
442 } else 442 } else if (host->card->stop)
443 host->card->stop(host->card); 443 host->card->stop(host->card);
444 444
445 card = memstick_alloc_card(host); 445 card = memstick_alloc_card(host);
@@ -458,7 +458,7 @@ static void memstick_check(struct work_struct *work)
458 || !(host->card->check(host->card))) { 458 || !(host->card->check(host->card))) {
459 device_unregister(&host->card->dev); 459 device_unregister(&host->card->dev);
460 host->card = NULL; 460 host->card = NULL;
461 } else 461 } else if (host->card->start)
462 host->card->start(host->card); 462 host->card->start(host->card);
463 } 463 }
464 464
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c
index 44b1817f2f2f..d2d2318dafa4 100644
--- a/drivers/memstick/core/mspro_block.c
+++ b/drivers/memstick/core/mspro_block.c
@@ -30,6 +30,8 @@ module_param(major, int, 0644);
30#define MSPRO_BLOCK_SIGNATURE 0xa5c3 30#define MSPRO_BLOCK_SIGNATURE 0xa5c3
31#define MSPRO_BLOCK_MAX_ATTRIBUTES 41 31#define MSPRO_BLOCK_MAX_ATTRIBUTES 41
32 32
33#define MSPRO_BLOCK_PART_SHIFT 3
34
33enum { 35enum {
34 MSPRO_BLOCK_ID_SYSINFO = 0x10, 36 MSPRO_BLOCK_ID_SYSINFO = 0x10,
35 MSPRO_BLOCK_ID_MODELNAME = 0x15, 37 MSPRO_BLOCK_ID_MODELNAME = 0x15,
@@ -195,7 +197,7 @@ static int mspro_block_bd_open(struct inode *inode, struct file *filp)
195static int mspro_block_disk_release(struct gendisk *disk) 197static int mspro_block_disk_release(struct gendisk *disk)
196{ 198{
197 struct mspro_block_data *msb = disk->private_data; 199 struct mspro_block_data *msb = disk->private_data;
198 int disk_id = disk->first_minor >> MEMSTICK_PART_SHIFT; 200 int disk_id = disk->first_minor >> MSPRO_BLOCK_PART_SHIFT;
199 201
200 mutex_lock(&mspro_block_disk_lock); 202 mutex_lock(&mspro_block_disk_lock);
201 203
@@ -877,6 +879,7 @@ static int mspro_block_switch_interface(struct memstick_dev *card)
877 struct mspro_block_data *msb = memstick_get_drvdata(card); 879 struct mspro_block_data *msb = memstick_get_drvdata(card);
878 int rc = 0; 880 int rc = 0;
879 881
882try_again:
880 if (msb->caps & MEMSTICK_CAP_PAR4) 883 if (msb->caps & MEMSTICK_CAP_PAR4)
881 rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR4); 884 rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR4);
882 else 885 else
@@ -930,6 +933,18 @@ static int mspro_block_switch_interface(struct memstick_dev *card)
930 rc = memstick_set_rw_addr(card); 933 rc = memstick_set_rw_addr(card);
931 if (!rc) 934 if (!rc)
932 rc = mspro_block_set_interface(card, msb->system); 935 rc = mspro_block_set_interface(card, msb->system);
936
937 if (!rc) {
938 msleep(150);
939 rc = mspro_block_wait_for_ced(card);
940 if (rc)
941 return rc;
942
943 if (msb->caps & MEMSTICK_CAP_PAR8) {
944 msb->caps &= ~MEMSTICK_CAP_PAR8;
945 goto try_again;
946 }
947 }
933 } 948 }
934 return rc; 949 return rc;
935} 950}
@@ -1117,14 +1132,16 @@ static int mspro_block_init_card(struct memstick_dev *card)
1117 return -EIO; 1132 return -EIO;
1118 1133
1119 msb->caps = host->caps; 1134 msb->caps = host->caps;
1120 rc = mspro_block_switch_interface(card); 1135
1136 msleep(150);
1137 rc = mspro_block_wait_for_ced(card);
1121 if (rc) 1138 if (rc)
1122 return rc; 1139 return rc;
1123 1140
1124 msleep(200); 1141 rc = mspro_block_switch_interface(card);
1125 rc = mspro_block_wait_for_ced(card);
1126 if (rc) 1142 if (rc)
1127 return rc; 1143 return rc;
1144
1128 dev_dbg(&card->dev, "card activated\n"); 1145 dev_dbg(&card->dev, "card activated\n");
1129 if (msb->system != MEMSTICK_SYS_SERIAL) 1146 if (msb->system != MEMSTICK_SYS_SERIAL)
1130 msb->caps |= MEMSTICK_CAP_AUTO_GET_INT; 1147 msb->caps |= MEMSTICK_CAP_AUTO_GET_INT;
@@ -1192,12 +1209,12 @@ static int mspro_block_init_disk(struct memstick_dev *card)
1192 if (rc) 1209 if (rc)
1193 return rc; 1210 return rc;
1194 1211
1195 if ((disk_id << MEMSTICK_PART_SHIFT) > 255) { 1212 if ((disk_id << MSPRO_BLOCK_PART_SHIFT) > 255) {
1196 rc = -ENOSPC; 1213 rc = -ENOSPC;
1197 goto out_release_id; 1214 goto out_release_id;
1198 } 1215 }
1199 1216
1200 msb->disk = alloc_disk(1 << MEMSTICK_PART_SHIFT); 1217 msb->disk = alloc_disk(1 << MSPRO_BLOCK_PART_SHIFT);
1201 if (!msb->disk) { 1218 if (!msb->disk) {
1202 rc = -ENOMEM; 1219 rc = -ENOMEM;
1203 goto out_release_id; 1220 goto out_release_id;
@@ -1220,7 +1237,7 @@ static int mspro_block_init_disk(struct memstick_dev *card)
1220 MSPRO_BLOCK_MAX_PAGES * msb->page_size); 1237 MSPRO_BLOCK_MAX_PAGES * msb->page_size);
1221 1238
1222 msb->disk->major = major; 1239 msb->disk->major = major;
1223 msb->disk->first_minor = disk_id << MEMSTICK_PART_SHIFT; 1240 msb->disk->first_minor = disk_id << MSPRO_BLOCK_PART_SHIFT;
1224 msb->disk->fops = &ms_block_bdops; 1241 msb->disk->fops = &ms_block_bdops;
1225 msb->usage_count = 1; 1242 msb->usage_count = 1;
1226 msb->disk->private_data = msb; 1243 msb->disk->private_data = msb;
@@ -1416,7 +1433,7 @@ out_unlock:
1416 1433
1417static struct memstick_device_id mspro_block_id_tbl[] = { 1434static struct memstick_device_id mspro_block_id_tbl[] = {
1418 {MEMSTICK_MATCH_ALL, MEMSTICK_TYPE_PRO, MEMSTICK_CATEGORY_STORAGE_DUO, 1435 {MEMSTICK_MATCH_ALL, MEMSTICK_TYPE_PRO, MEMSTICK_CATEGORY_STORAGE_DUO,
1419 MEMSTICK_CLASS_GENERIC_DUO}, 1436 MEMSTICK_CLASS_DUO},
1420 {} 1437 {}
1421}; 1438};
1422 1439
diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c
index 3485c63d20b0..2fb95a5b72eb 100644
--- a/drivers/memstick/host/jmb38x_ms.c
+++ b/drivers/memstick/host/jmb38x_ms.c
@@ -81,6 +81,8 @@ struct jmb38x_ms {
81#define TPC_CODE_SZ_MASK 0x00000700 81#define TPC_CODE_SZ_MASK 0x00000700
82#define TPC_DATA_SZ_MASK 0x00000007 82#define TPC_DATA_SZ_MASK 0x00000007
83 83
84#define HOST_CONTROL_TDELAY_EN 0x00040000
85#define HOST_CONTROL_HW_OC_P 0x00010000
84#define HOST_CONTROL_RESET_REQ 0x00008000 86#define HOST_CONTROL_RESET_REQ 0x00008000
85#define HOST_CONTROL_REI 0x00004000 87#define HOST_CONTROL_REI 0x00004000
86#define HOST_CONTROL_LED 0x00000400 88#define HOST_CONTROL_LED 0x00000400
@@ -88,6 +90,7 @@ struct jmb38x_ms {
88#define HOST_CONTROL_RESET 0x00000100 90#define HOST_CONTROL_RESET 0x00000100
89#define HOST_CONTROL_POWER_EN 0x00000080 91#define HOST_CONTROL_POWER_EN 0x00000080
90#define HOST_CONTROL_CLOCK_EN 0x00000040 92#define HOST_CONTROL_CLOCK_EN 0x00000040
93#define HOST_CONTROL_REO 0x00000008
91#define HOST_CONTROL_IF_SHIFT 4 94#define HOST_CONTROL_IF_SHIFT 4
92 95
93#define HOST_CONTROL_IF_SERIAL 0x0 96#define HOST_CONTROL_IF_SERIAL 0x0
@@ -133,11 +136,15 @@ struct jmb38x_ms {
133#define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000 136#define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000
134 137
135#define CLOCK_CONTROL_40MHZ 0x00000001 138#define CLOCK_CONTROL_40MHZ 0x00000001
136#define CLOCK_CONTROL_50MHZ 0x00000002 139#define CLOCK_CONTROL_50MHZ 0x0000000a
137#define CLOCK_CONTROL_60MHZ 0x00000008 140#define CLOCK_CONTROL_60MHZ 0x00000008
138#define CLOCK_CONTROL_62_5MHZ 0x0000000c 141#define CLOCK_CONTROL_62_5MHZ 0x0000000c
139#define CLOCK_CONTROL_OFF 0x00000000 142#define CLOCK_CONTROL_OFF 0x00000000
140 143
144#define PCI_CTL_CLOCK_DLY_ADDR 0x000000b0
145#define PCI_CTL_CLOCK_DLY_MASK_A 0x00000f00
146#define PCI_CTL_CLOCK_DLY_MASK_B 0x0000f000
147
141enum { 148enum {
142 CMD_READY = 0x01, 149 CMD_READY = 0x01,
143 FIFO_READY = 0x02, 150 FIFO_READY = 0x02,
@@ -367,8 +374,7 @@ static int jmb38x_ms_issue_cmd(struct memstick_host *msh)
367 return host->req->error; 374 return host->req->error;
368 } 375 }
369 376
370 dev_dbg(&msh->dev, "control %08x\n", 377 dev_dbg(&msh->dev, "control %08x\n", readl(host->addr + HOST_CONTROL));
371 readl(host->addr + HOST_CONTROL));
372 dev_dbg(&msh->dev, "status %08x\n", readl(host->addr + INT_STATUS)); 378 dev_dbg(&msh->dev, "status %08x\n", readl(host->addr + INT_STATUS));
373 dev_dbg(&msh->dev, "hstatus %08x\n", readl(host->addr + STATUS)); 379 dev_dbg(&msh->dev, "hstatus %08x\n", readl(host->addr + STATUS));
374 380
@@ -637,7 +643,7 @@ static int jmb38x_ms_reset(struct jmb38x_ms_host *host)
637 ndelay(20); 643 ndelay(20);
638 } 644 }
639 dev_dbg(&host->chip->pdev->dev, "reset_req timeout\n"); 645 dev_dbg(&host->chip->pdev->dev, "reset_req timeout\n");
640 return -EIO; 646 /* return -EIO; */
641 647
642reset_next: 648reset_next:
643 writel(HOST_CONTROL_RESET | HOST_CONTROL_CLOCK_EN 649 writel(HOST_CONTROL_RESET | HOST_CONTROL_CLOCK_EN
@@ -680,7 +686,9 @@ static int jmb38x_ms_set_param(struct memstick_host *msh,
680 686
681 host_ctl = 7; 687 host_ctl = 7;
682 host_ctl |= HOST_CONTROL_POWER_EN 688 host_ctl |= HOST_CONTROL_POWER_EN
683 | HOST_CONTROL_CLOCK_EN; 689 | HOST_CONTROL_CLOCK_EN
690 | HOST_CONTROL_HW_OC_P
691 | HOST_CONTROL_TDELAY_EN;
684 writel(host_ctl, host->addr + HOST_CONTROL); 692 writel(host_ctl, host->addr + HOST_CONTROL);
685 693
686 writel(host->id ? PAD_PU_PD_ON_MS_SOCK1 694 writel(host->id ? PAD_PU_PD_ON_MS_SOCK1
@@ -704,33 +712,40 @@ static int jmb38x_ms_set_param(struct memstick_host *msh,
704 break; 712 break;
705 case MEMSTICK_INTERFACE: 713 case MEMSTICK_INTERFACE:
706 host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT); 714 host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT);
715 pci_read_config_dword(host->chip->pdev,
716 PCI_CTL_CLOCK_DLY_ADDR,
717 &clock_delay);
718 clock_delay &= host->id ? ~PCI_CTL_CLOCK_DLY_MASK_B
719 : ~PCI_CTL_CLOCK_DLY_MASK_A;
707 720
708 if (value == MEMSTICK_SERIAL) { 721 if (value == MEMSTICK_SERIAL) {
709 host_ctl &= ~HOST_CONTROL_FAST_CLK; 722 host_ctl &= ~HOST_CONTROL_FAST_CLK;
723 host_ctl &= ~HOST_CONTROL_REO;
710 host_ctl |= HOST_CONTROL_IF_SERIAL 724 host_ctl |= HOST_CONTROL_IF_SERIAL
711 << HOST_CONTROL_IF_SHIFT; 725 << HOST_CONTROL_IF_SHIFT;
712 host_ctl |= HOST_CONTROL_REI; 726 host_ctl |= HOST_CONTROL_REI;
713 clock_ctl = CLOCK_CONTROL_40MHZ; 727 clock_ctl = CLOCK_CONTROL_40MHZ;
714 clock_delay = 0;
715 } else if (value == MEMSTICK_PAR4) { 728 } else if (value == MEMSTICK_PAR4) {
716 host_ctl |= HOST_CONTROL_FAST_CLK; 729 host_ctl |= HOST_CONTROL_FAST_CLK | HOST_CONTROL_REO;
717 host_ctl |= HOST_CONTROL_IF_PAR4 730 host_ctl |= HOST_CONTROL_IF_PAR4
718 << HOST_CONTROL_IF_SHIFT; 731 << HOST_CONTROL_IF_SHIFT;
719 host_ctl &= ~HOST_CONTROL_REI; 732 host_ctl &= ~HOST_CONTROL_REI;
720 clock_ctl = CLOCK_CONTROL_40MHZ; 733 clock_ctl = CLOCK_CONTROL_40MHZ;
721 clock_delay = 4; 734 clock_delay |= host->id ? (4 << 12) : (4 << 8);
722 } else if (value == MEMSTICK_PAR8) { 735 } else if (value == MEMSTICK_PAR8) {
723 host_ctl |= HOST_CONTROL_FAST_CLK; 736 host_ctl |= HOST_CONTROL_FAST_CLK;
724 host_ctl |= HOST_CONTROL_IF_PAR8 737 host_ctl |= HOST_CONTROL_IF_PAR8
725 << HOST_CONTROL_IF_SHIFT; 738 << HOST_CONTROL_IF_SHIFT;
726 host_ctl &= ~HOST_CONTROL_REI; 739 host_ctl &= ~(HOST_CONTROL_REI | HOST_CONTROL_REO);
727 clock_ctl = CLOCK_CONTROL_60MHZ; 740 clock_ctl = CLOCK_CONTROL_50MHZ;
728 clock_delay = 0;
729 } else 741 } else
730 return -EINVAL; 742 return -EINVAL;
743
731 writel(host_ctl, host->addr + HOST_CONTROL); 744 writel(host_ctl, host->addr + HOST_CONTROL);
732 writel(clock_ctl, host->addr + CLOCK_CONTROL); 745 writel(clock_ctl, host->addr + CLOCK_CONTROL);
733 writel(clock_delay, host->addr + CLOCK_DELAY); 746 pci_write_config_dword(host->chip->pdev,
747 PCI_CTL_CLOCK_DLY_ADDR,
748 clock_delay);
734 break; 749 break;
735 }; 750 };
736 return 0; 751 return 0;
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 10c44d3fe01a..5dba1651f9cc 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -50,6 +50,15 @@ config HTC_PASIC3
50 HTC Magician devices, respectively. Actual functionality is 50 HTC Magician devices, respectively. Actual functionality is
51 handled by the leds-pasic3 and ds1wm drivers. 51 handled by the leds-pasic3 and ds1wm drivers.
52 52
53config UCB1400_CORE
54 tristate "Philips UCB1400 Core driver"
55 help
56 This enables support for the Philips UCB1400 core functions.
57 The UCB1400 is an AC97 audio codec.
58
59 To compile this driver as a module, choose M here: the
60 module will be called ucb1400_core.
61
53config MFD_TMIO 62config MFD_TMIO
54 bool 63 bool
55 default n 64 default n
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index 03ad239ecef0..6abebe364419 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -22,3 +22,4 @@ obj-$(CONFIG_MCP_UCB1200_TS) += ucb1x00-ts.o
22ifeq ($(CONFIG_SA1100_ASSABET),y) 22ifeq ($(CONFIG_SA1100_ASSABET),y)
23obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o 23obj-$(CONFIG_MCP_UCB1200) += ucb1x00-assabet.o
24endif 24endif
25obj-$(CONFIG_UCB1400_CORE) += ucb1400_core.o
diff --git a/drivers/mfd/ucb1400_core.c b/drivers/mfd/ucb1400_core.c
new file mode 100644
index 000000000000..178159e264ce
--- /dev/null
+++ b/drivers/mfd/ucb1400_core.c
@@ -0,0 +1,106 @@
1/*
2 * Core functions for:
3 * Philips UCB1400 multifunction chip
4 *
5 * Based on ucb1400_ts.c:
6 * Author: Nicolas Pitre
7 * Created: September 25, 2006
8 * Copyright: MontaVista Software, Inc.
9 *
10 * Spliting done by: Marek Vasut <marek.vasut@gmail.com>
11 * If something doesnt work and it worked before spliting, e-mail me,
12 * dont bother Nicolas please ;-)
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License version 2 as
16 * published by the Free Software Foundation.
17 *
18 * This code is heavily based on ucb1x00-*.c copyrighted by Russell King
19 * covering the UCB1100, UCB1200 and UCB1300.. Support for the UCB1400 has
20 * been made separate from ucb1x00-core/ucb1x00-ts on Russell's request.
21 */
22
23#include <linux/module.h>
24#include <linux/ucb1400.h>
25
26static int ucb1400_core_probe(struct device *dev)
27{
28 int err;
29 struct ucb1400 *ucb;
30 struct ucb1400_ts ucb_ts;
31 struct snd_ac97 *ac97;
32
33 memset(&ucb_ts, 0, sizeof(ucb_ts));
34
35 ucb = kzalloc(sizeof(struct ucb1400), GFP_KERNEL);
36 if (!ucb) {
37 err = -ENOMEM;
38 goto err;
39 }
40
41 dev_set_drvdata(dev, ucb);
42
43 ac97 = to_ac97_t(dev);
44
45 ucb_ts.id = ucb1400_reg_read(ac97, UCB_ID);
46 if (ucb_ts.id != UCB_ID_1400) {
47 err = -ENODEV;
48 goto err0;
49 }
50
51 /* TOUCHSCREEN */
52 ucb_ts.ac97 = ac97;
53 ucb->ucb1400_ts = platform_device_alloc("ucb1400_ts", -1);
54 if (!ucb->ucb1400_ts) {
55 err = -ENOMEM;
56 goto err0;
57 }
58 err = platform_device_add_data(ucb->ucb1400_ts, &ucb_ts,
59 sizeof(ucb_ts));
60 if (err)
61 goto err1;
62 err = platform_device_add(ucb->ucb1400_ts);
63 if (err)
64 goto err1;
65
66 return 0;
67
68err1:
69 platform_device_put(ucb->ucb1400_ts);
70err0:
71 kfree(ucb);
72err:
73 return err;
74}
75
76static int ucb1400_core_remove(struct device *dev)
77{
78 struct ucb1400 *ucb = dev_get_drvdata(dev);
79
80 platform_device_unregister(ucb->ucb1400_ts);
81 kfree(ucb);
82 return 0;
83}
84
85static struct device_driver ucb1400_core_driver = {
86 .name = "ucb1400_core",
87 .bus = &ac97_bus_type,
88 .probe = ucb1400_core_probe,
89 .remove = ucb1400_core_remove,
90};
91
92static int __init ucb1400_core_init(void)
93{
94 return driver_register(&ucb1400_core_driver);
95}
96
97static void __exit ucb1400_core_exit(void)
98{
99 driver_unregister(&ucb1400_core_driver);
100}
101
102module_init(ucb1400_core_init);
103module_exit(ucb1400_core_exit);
104
105MODULE_DESCRIPTION("Philips UCB1400 driver");
106MODULE_LICENSE("GPL");
diff --git a/drivers/misc/acer-wmi.c b/drivers/misc/acer-wmi.c
index c6c77a505ec1..d8b0d326e452 100644
--- a/drivers/misc/acer-wmi.c
+++ b/drivers/misc/acer-wmi.c
@@ -1189,7 +1189,7 @@ static int create_debugfs(void)
1189 return 0; 1189 return 0;
1190 1190
1191error_debugfs: 1191error_debugfs:
1192 remove_debugfs(); 1192 remove_debugfs();
1193 return -ENOMEM; 1193 return -ENOMEM;
1194} 1194}
1195 1195
@@ -1272,6 +1272,7 @@ error_platform_register:
1272static void __exit acer_wmi_exit(void) 1272static void __exit acer_wmi_exit(void)
1273{ 1273{
1274 remove_sysfs(acer_platform_device); 1274 remove_sysfs(acer_platform_device);
1275 remove_debugfs();
1275 platform_device_del(acer_platform_device); 1276 platform_device_del(acer_platform_device);
1276 platform_driver_unregister(&acer_platform_driver); 1277 platform_driver_unregister(&acer_platform_driver);
1277 1278
diff --git a/drivers/misc/fujitsu-laptop.c b/drivers/misc/fujitsu-laptop.c
index 7a1ef6c262de..3e56203e4947 100644
--- a/drivers/misc/fujitsu-laptop.c
+++ b/drivers/misc/fujitsu-laptop.c
@@ -463,6 +463,13 @@ static struct dmi_system_id __initdata fujitsu_dmi_table[] = {
463 DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6410"), 463 DMI_MATCH(DMI_PRODUCT_NAME, "LIFEBOOK S6410"),
464 }, 464 },
465 .callback = dmi_check_cb_s6410}, 465 .callback = dmi_check_cb_s6410},
466 {
467 .ident = "FUJITSU LifeBook P8010",
468 .matches = {
469 DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"),
470 DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook P8010"),
471 },
472 .callback = dmi_check_cb_s6410},
466 {} 473 {}
467}; 474};
468 475
diff --git a/drivers/misc/hp-wmi.c b/drivers/misc/hp-wmi.c
index 1dbcbcb323a2..6d407c2a4f91 100644
--- a/drivers/misc/hp-wmi.c
+++ b/drivers/misc/hp-wmi.c
@@ -49,6 +49,7 @@ MODULE_ALIAS("wmi:5FB7F034-2C63-45e9-BE91-3D44E2C707E4");
49#define HPWMI_ALS_QUERY 0x3 49#define HPWMI_ALS_QUERY 0x3
50#define HPWMI_DOCK_QUERY 0x4 50#define HPWMI_DOCK_QUERY 0x4
51#define HPWMI_WIRELESS_QUERY 0x5 51#define HPWMI_WIRELESS_QUERY 0x5
52#define HPWMI_HOTKEY_QUERY 0xc
52 53
53static int __init hp_wmi_bios_setup(struct platform_device *device); 54static int __init hp_wmi_bios_setup(struct platform_device *device);
54static int __exit hp_wmi_bios_remove(struct platform_device *device); 55static int __exit hp_wmi_bios_remove(struct platform_device *device);
@@ -69,7 +70,7 @@ struct bios_return {
69 70
70struct key_entry { 71struct key_entry {
71 char type; /* See KE_* below */ 72 char type; /* See KE_* below */
72 u8 code; 73 u16 code;
73 u16 keycode; 74 u16 keycode;
74}; 75};
75 76
@@ -79,7 +80,9 @@ static struct key_entry hp_wmi_keymap[] = {
79 {KE_SW, 0x01, SW_DOCK}, 80 {KE_SW, 0x01, SW_DOCK},
80 {KE_KEY, 0x02, KEY_BRIGHTNESSUP}, 81 {KE_KEY, 0x02, KEY_BRIGHTNESSUP},
81 {KE_KEY, 0x03, KEY_BRIGHTNESSDOWN}, 82 {KE_KEY, 0x03, KEY_BRIGHTNESSDOWN},
82 {KE_KEY, 0x04, KEY_HELP}, 83 {KE_KEY, 0x20e6, KEY_PROG1},
84 {KE_KEY, 0x2142, KEY_MEDIA},
85 {KE_KEY, 0x231b, KEY_HELP},
83 {KE_END, 0} 86 {KE_END, 0}
84}; 87};
85 88
@@ -177,9 +180,9 @@ static int hp_wmi_wifi_state(void)
177 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0); 180 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
178 181
179 if (wireless & 0x100) 182 if (wireless & 0x100)
180 return 1; 183 return RFKILL_STATE_UNBLOCKED;
181 else 184 else
182 return 0; 185 return RFKILL_STATE_SOFT_BLOCKED;
183} 186}
184 187
185static int hp_wmi_bluetooth_state(void) 188static int hp_wmi_bluetooth_state(void)
@@ -187,9 +190,9 @@ static int hp_wmi_bluetooth_state(void)
187 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0); 190 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
188 191
189 if (wireless & 0x10000) 192 if (wireless & 0x10000)
190 return 1; 193 return RFKILL_STATE_UNBLOCKED;
191 else 194 else
192 return 0; 195 return RFKILL_STATE_SOFT_BLOCKED;
193} 196}
194 197
195static int hp_wmi_wwan_state(void) 198static int hp_wmi_wwan_state(void)
@@ -197,9 +200,9 @@ static int hp_wmi_wwan_state(void)
197 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0); 200 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
198 201
199 if (wireless & 0x1000000) 202 if (wireless & 0x1000000)
200 return 1; 203 return RFKILL_STATE_UNBLOCKED;
201 else 204 else
202 return 0; 205 return RFKILL_STATE_SOFT_BLOCKED;
203} 206}
204 207
205static ssize_t show_display(struct device *dev, struct device_attribute *attr, 208static ssize_t show_display(struct device *dev, struct device_attribute *attr,
@@ -318,6 +321,9 @@ void hp_wmi_notify(u32 value, void *context)
318 321
319 if (obj && obj->type == ACPI_TYPE_BUFFER && obj->buffer.length == 8) { 322 if (obj && obj->type == ACPI_TYPE_BUFFER && obj->buffer.length == 8) {
320 int eventcode = *((u8 *) obj->buffer.pointer); 323 int eventcode = *((u8 *) obj->buffer.pointer);
324 if (eventcode == 0x4)
325 eventcode = hp_wmi_perform_query(HPWMI_HOTKEY_QUERY, 0,
326 0);
321 key = hp_wmi_get_entry_by_scancode(eventcode); 327 key = hp_wmi_get_entry_by_scancode(eventcode);
322 if (key) { 328 if (key) {
323 switch (key->type) { 329 switch (key->type) {
@@ -338,12 +344,14 @@ void hp_wmi_notify(u32 value, void *context)
338 } 344 }
339 } else if (eventcode == 0x5) { 345 } else if (eventcode == 0x5) {
340 if (wifi_rfkill) 346 if (wifi_rfkill)
341 wifi_rfkill->state = hp_wmi_wifi_state(); 347 rfkill_force_state(wifi_rfkill,
348 hp_wmi_wifi_state());
342 if (bluetooth_rfkill) 349 if (bluetooth_rfkill)
343 bluetooth_rfkill->state = 350 rfkill_force_state(bluetooth_rfkill,
344 hp_wmi_bluetooth_state(); 351 hp_wmi_bluetooth_state());
345 if (wwan_rfkill) 352 if (wwan_rfkill)
346 wwan_rfkill->state = hp_wmi_wwan_state(); 353 rfkill_force_state(wwan_rfkill,
354 hp_wmi_wwan_state());
347 } else 355 } else
348 printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n", 356 printk(KERN_INFO "HP WMI: Unknown key pressed - %x\n",
349 eventcode); 357 eventcode);
@@ -398,6 +406,7 @@ static void cleanup_sysfs(struct platform_device *device)
398static int __init hp_wmi_bios_setup(struct platform_device *device) 406static int __init hp_wmi_bios_setup(struct platform_device *device)
399{ 407{
400 int err; 408 int err;
409 int wireless = hp_wmi_perform_query(HPWMI_WIRELESS_QUERY, 0, 0);
401 410
402 err = device_create_file(&device->dev, &dev_attr_display); 411 err = device_create_file(&device->dev, &dev_attr_display);
403 if (err) 412 if (err)
@@ -412,28 +421,33 @@ static int __init hp_wmi_bios_setup(struct platform_device *device)
412 if (err) 421 if (err)
413 goto add_sysfs_error; 422 goto add_sysfs_error;
414 423
415 wifi_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WLAN); 424 if (wireless & 0x1) {
416 wifi_rfkill->name = "hp-wifi"; 425 wifi_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WLAN);
417 wifi_rfkill->state = hp_wmi_wifi_state(); 426 wifi_rfkill->name = "hp-wifi";
418 wifi_rfkill->toggle_radio = hp_wmi_wifi_set; 427 wifi_rfkill->state = hp_wmi_wifi_state();
419 wifi_rfkill->user_claim_unsupported = 1; 428 wifi_rfkill->toggle_radio = hp_wmi_wifi_set;
420 429 wifi_rfkill->user_claim_unsupported = 1;
421 bluetooth_rfkill = rfkill_allocate(&device->dev, 430 rfkill_register(wifi_rfkill);
422 RFKILL_TYPE_BLUETOOTH); 431 }
423 bluetooth_rfkill->name = "hp-bluetooth"; 432
424 bluetooth_rfkill->state = hp_wmi_bluetooth_state(); 433 if (wireless & 0x2) {
425 bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set; 434 bluetooth_rfkill = rfkill_allocate(&device->dev,
426 bluetooth_rfkill->user_claim_unsupported = 1; 435 RFKILL_TYPE_BLUETOOTH);
427 436 bluetooth_rfkill->name = "hp-bluetooth";
428 wwan_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WIMAX); 437 bluetooth_rfkill->state = hp_wmi_bluetooth_state();
429 wwan_rfkill->name = "hp-wwan"; 438 bluetooth_rfkill->toggle_radio = hp_wmi_bluetooth_set;
430 wwan_rfkill->state = hp_wmi_wwan_state(); 439 bluetooth_rfkill->user_claim_unsupported = 1;
431 wwan_rfkill->toggle_radio = hp_wmi_wwan_set; 440 rfkill_register(bluetooth_rfkill);
432 wwan_rfkill->user_claim_unsupported = 1; 441 }
433 442
434 rfkill_register(wifi_rfkill); 443 if (wireless & 0x4) {
435 rfkill_register(bluetooth_rfkill); 444 wwan_rfkill = rfkill_allocate(&device->dev, RFKILL_TYPE_WWAN);
436 rfkill_register(wwan_rfkill); 445 wwan_rfkill->name = "hp-wwan";
446 wwan_rfkill->state = hp_wmi_wwan_state();
447 wwan_rfkill->toggle_radio = hp_wmi_wwan_set;
448 wwan_rfkill->user_claim_unsupported = 1;
449 rfkill_register(wwan_rfkill);
450 }
437 451
438 return 0; 452 return 0;
439add_sysfs_error: 453add_sysfs_error:
@@ -445,9 +459,12 @@ static int __exit hp_wmi_bios_remove(struct platform_device *device)
445{ 459{
446 cleanup_sysfs(device); 460 cleanup_sysfs(device);
447 461
448 rfkill_unregister(wifi_rfkill); 462 if (wifi_rfkill)
449 rfkill_unregister(bluetooth_rfkill); 463 rfkill_unregister(wifi_rfkill);
450 rfkill_unregister(wwan_rfkill); 464 if (bluetooth_rfkill)
465 rfkill_unregister(bluetooth_rfkill);
466 if (wwan_rfkill)
467 rfkill_unregister(wwan_rfkill);
451 468
452 return 0; 469 return 0;
453} 470}
diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c
index 23c91f5f6b61..d61cee796efd 100644
--- a/drivers/misc/sgi-gru/grufile.c
+++ b/drivers/misc/sgi-gru/grufile.c
@@ -445,6 +445,9 @@ static void __exit gru_exit(void)
445 int order = get_order(sizeof(struct gru_state) * 445 int order = get_order(sizeof(struct gru_state) *
446 GRU_CHIPLETS_PER_BLADE); 446 GRU_CHIPLETS_PER_BLADE);
447 447
448 if (!IS_UV())
449 return;
450
448 for (i = 0; i < GRU_CHIPLETS_PER_BLADE; i++) 451 for (i = 0; i < GRU_CHIPLETS_PER_BLADE; i++)
449 free_irq(IRQ_GRU + i, NULL); 452 free_irq(IRQ_GRU + i, NULL);
450 453
diff --git a/drivers/misc/thinkpad_acpi.c b/drivers/misc/thinkpad_acpi.c
index d3eb7903c346..6b9300779a43 100644
--- a/drivers/misc/thinkpad_acpi.c
+++ b/drivers/misc/thinkpad_acpi.c
@@ -3086,7 +3086,6 @@ static struct ibm_struct wan_driver_data = {
3086 .read = wan_read, 3086 .read = wan_read,
3087 .write = wan_write, 3087 .write = wan_write,
3088 .exit = wan_exit, 3088 .exit = wan_exit,
3089 .flags.experimental = 1,
3090}; 3089};
3091 3090
3092/************************************************************************* 3091/*************************************************************************
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index 86dbb366415a..6986f3926244 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -103,8 +103,10 @@ static int mmc_blk_open(struct inode *inode, struct file *filp)
103 check_disk_change(inode->i_bdev); 103 check_disk_change(inode->i_bdev);
104 ret = 0; 104 ret = 0;
105 105
106 if ((filp->f_mode & FMODE_WRITE) && md->read_only) 106 if ((filp->f_mode & FMODE_WRITE) && md->read_only) {
107 mmc_blk_put(md);
107 ret = -EROFS; 108 ret = -EROFS;
109 }
108 } 110 }
109 111
110 return ret; 112 return ret;
diff --git a/drivers/mmc/host/at91_mci.c b/drivers/mmc/host/at91_mci.c
index 6915f40ac8ab..1f8b5b36222c 100644
--- a/drivers/mmc/host/at91_mci.c
+++ b/drivers/mmc/host/at91_mci.c
@@ -621,12 +621,21 @@ static void at91_mci_send_command(struct at91mci_host *host, struct mmc_command
621 if (cpu_is_at91sam9260 () || cpu_is_at91sam9263()) 621 if (cpu_is_at91sam9260 () || cpu_is_at91sam9263())
622 if (host->total_length < 12) 622 if (host->total_length < 12)
623 host->total_length = 12; 623 host->total_length = 12;
624 host->buffer = dma_alloc_coherent(NULL, 624
625 host->total_length, 625 host->buffer = kmalloc(host->total_length, GFP_KERNEL);
626 &host->physical_address, GFP_KERNEL); 626 if (!host->buffer) {
627 pr_debug("Can't alloc tx buffer\n");
628 cmd->error = -ENOMEM;
629 mmc_request_done(host->mmc, host->request);
630 return;
631 }
627 632
628 at91_mci_sg_to_dma(host, data); 633 at91_mci_sg_to_dma(host, data);
629 634
635 host->physical_address = dma_map_single(NULL,
636 host->buffer, host->total_length,
637 DMA_TO_DEVICE);
638
630 pr_debug("Transmitting %d bytes\n", host->total_length); 639 pr_debug("Transmitting %d bytes\n", host->total_length);
631 640
632 at91_mci_write(host, ATMEL_PDC_TPR, host->physical_address); 641 at91_mci_write(host, ATMEL_PDC_TPR, host->physical_address);
@@ -694,7 +703,10 @@ static void at91_mci_completed_command(struct at91mci_host *host, unsigned int s
694 cmd->resp[3] = at91_mci_read(host, AT91_MCI_RSPR(3)); 703 cmd->resp[3] = at91_mci_read(host, AT91_MCI_RSPR(3));
695 704
696 if (host->buffer) { 705 if (host->buffer) {
697 dma_free_coherent(NULL, host->total_length, host->buffer, host->physical_address); 706 dma_unmap_single(NULL,
707 host->physical_address, host->total_length,
708 DMA_TO_DEVICE);
709 kfree(host->buffer);
698 host->buffer = NULL; 710 host->buffer = NULL;
699 } 711 }
700 712
diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index 55093ad132ca..ebfaa9960939 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -520,7 +520,7 @@ static int pxamci_probe(struct platform_device *pdev)
520 /* 520 /*
521 * Block length register is only 10 bits before PXA27x. 521 * Block length register is only 10 bits before PXA27x.
522 */ 522 */
523 mmc->max_blk_size = (cpu_is_pxa21x() || cpu_is_pxa25x()) ? 1023 : 2048; 523 mmc->max_blk_size = cpu_is_pxa25x() ? 1023 : 2048;
524 524
525 /* 525 /*
526 * Block count register is 16 bits. 526 * Block count register is 16 bits.
@@ -554,7 +554,7 @@ static int pxamci_probe(struct platform_device *pdev)
554 MMC_VDD_32_33|MMC_VDD_33_34; 554 MMC_VDD_32_33|MMC_VDD_33_34;
555 mmc->caps = 0; 555 mmc->caps = 0;
556 host->cmdat = 0; 556 host->cmdat = 0;
557 if (!cpu_is_pxa21x() && !cpu_is_pxa25x()) { 557 if (!cpu_is_pxa25x()) {
558 mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ; 558 mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_SDIO_IRQ;
559 host->cmdat |= CMDAT_SDIO_INT_EN; 559 host->cmdat |= CMDAT_SDIO_INT_EN;
560 if (cpu_is_pxa300() || cpu_is_pxa310()) 560 if (cpu_is_pxa300() || cpu_is_pxa310())
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
index d2f331876e4c..e00d424e6575 100644
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -410,16 +410,20 @@ static int mtd_ioctl(struct inode *inode, struct file *file,
410 410
411 case MEMGETREGIONINFO: 411 case MEMGETREGIONINFO:
412 { 412 {
413 struct region_info_user ur; 413 uint32_t ur_idx;
414 struct mtd_erase_region_info *kr;
415 struct region_info_user *ur = (struct region_info_user *) argp;
414 416
415 if (copy_from_user(&ur, argp, sizeof(struct region_info_user))) 417 if (get_user(ur_idx, &(ur->regionindex)))
416 return -EFAULT; 418 return -EFAULT;
417 419
418 if (ur.regionindex >= mtd->numeraseregions) 420 kr = &(mtd->eraseregions[ur_idx]);
419 return -EINVAL; 421
420 if (copy_to_user(argp, &(mtd->eraseregions[ur.regionindex]), 422 if (put_user(kr->offset, &(ur->offset))
421 sizeof(struct mtd_erase_region_info))) 423 || put_user(kr->erasesize, &(ur->erasesize))
424 || put_user(kr->numblocks, &(ur->numblocks)))
422 return -EFAULT; 425 return -EFAULT;
426
423 break; 427 break;
424 } 428 }
425 429
diff --git a/drivers/mtd/nand/atmel_nand_ecc.h b/drivers/mtd/nand/atmel_nand_ecc.h
index 1ee7f993db1c..578c776e1356 100644
--- a/drivers/mtd/nand/atmel_nand_ecc.h
+++ b/drivers/mtd/nand/atmel_nand_ecc.h
@@ -2,6 +2,9 @@
2 * Error Corrected Code Controller (ECC) - System peripherals regsters. 2 * Error Corrected Code Controller (ECC) - System peripherals regsters.
3 * Based on AT91SAM9260 datasheet revision B. 3 * Based on AT91SAM9260 datasheet revision B.
4 * 4 *
5 * Copyright (C) 2007 Andrew Victor
6 * Copyright (C) 2007 Atmel Corporation.
7 *
5 * This program is free software; you can redistribute it and/or modify it 8 * 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 9 * 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 10 * Free Software Foundation; either version 2 of the License, or (at your
diff --git a/drivers/mtd/nand/cmx270_nand.c b/drivers/mtd/nand/cmx270_nand.c
index 9eba3f04783a..fa129c09bca8 100644
--- a/drivers/mtd/nand/cmx270_nand.c
+++ b/drivers/mtd/nand/cmx270_nand.c
@@ -156,7 +156,7 @@ static int cmx270_init(void)
156 int mtd_parts_nb = 0; 156 int mtd_parts_nb = 0;
157 int ret; 157 int ret;
158 158
159 if (!machine_is_armcore()) 159 if (!(machine_is_armcore() && cpu_is_pxa27x()))
160 return -ENODEV; 160 return -ENODEV;
161 161
162 ret = gpio_request(GPIO_NAND_CS, "NAND CS"); 162 ret = gpio_request(GPIO_NAND_CS, "NAND CS");
diff --git a/drivers/mtd/nand/tmio_nand.c b/drivers/mtd/nand/tmio_nand.c
index cbab654b03c8..edb1e322113d 100644
--- a/drivers/mtd/nand/tmio_nand.c
+++ b/drivers/mtd/nand/tmio_nand.c
@@ -109,7 +109,7 @@ struct tmio_nand {
109 109
110 void __iomem *ccr; 110 void __iomem *ccr;
111 void __iomem *fcr; 111 void __iomem *fcr;
112 unsigned long fcr_phys; 112 unsigned long fcr_base;
113 113
114 unsigned int irq; 114 unsigned int irq;
115 115
@@ -316,8 +316,8 @@ static int tmio_hw_init(struct platform_device *dev, struct tmio_nand *tmio)
316 tmio_iowrite8(0x81, tmio->ccr + CCR_ICC); 316 tmio_iowrite8(0x81, tmio->ccr + CCR_ICC);
317 317
318 /* (10h)BaseAddress 0x1000 spba.spba2 */ 318 /* (10h)BaseAddress 0x1000 spba.spba2 */
319 tmio_iowrite16(tmio->fcr_phys, tmio->ccr + CCR_BASE); 319 tmio_iowrite16(tmio->fcr_base, tmio->ccr + CCR_BASE);
320 tmio_iowrite16(tmio->fcr_phys >> 16, tmio->ccr + CCR_BASE + 16); 320 tmio_iowrite16(tmio->fcr_base >> 16, tmio->ccr + CCR_BASE + 2);
321 321
322 /* (04h)Command Register I/O spcmd */ 322 /* (04h)Command Register I/O spcmd */
323 tmio_iowrite8(0x02, tmio->ccr + CCR_COMMAND); 323 tmio_iowrite8(0x02, tmio->ccr + CCR_COMMAND);
@@ -395,7 +395,7 @@ static int tmio_probe(struct platform_device *dev)
395 goto err_iomap_ccr; 395 goto err_iomap_ccr;
396 } 396 }
397 397
398 tmio->fcr_phys = (unsigned long)fcr->start; 398 tmio->fcr_base = fcr->start & 0xfffff;
399 tmio->fcr = ioremap(fcr->start, fcr->end - fcr->start + 1); 399 tmio->fcr = ioremap(fcr->start, fcr->end - fcr->start + 1);
400 if (!tmio->fcr) { 400 if (!tmio->fcr) {
401 retval = -EIO; 401 retval = -EIO;
diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig
index a5c141cecd4e..9df7bb93edca 100644
--- a/drivers/net/Kconfig
+++ b/drivers/net/Kconfig
@@ -822,14 +822,14 @@ config ULTRA32
822 will be called smc-ultra32. 822 will be called smc-ultra32.
823 823
824config BFIN_MAC 824config BFIN_MAC
825 tristate "Blackfin 527/536/537 on-chip mac support" 825 tristate "Blackfin on-chip MAC support"
826 depends on NET_ETHERNET && (BF527 || BF537 || BF536) 826 depends on NET_ETHERNET && (BF526 || BF527 || BF536 || BF537)
827 select CRC32 827 select CRC32
828 select MII 828 select MII
829 select PHYLIB 829 select PHYLIB
830 select BFIN_MAC_USE_L1 if DMA_UNCACHED_NONE 830 select BFIN_MAC_USE_L1 if DMA_UNCACHED_NONE
831 help 831 help
832 This is the driver for blackfin on-chip mac device. Say Y if you want it 832 This is the driver for Blackfin on-chip mac device. Say Y if you want it
833 compiled into the kernel. This driver is also available as a module 833 compiled into the kernel. This driver is also available as a module
834 ( = code which can be inserted in and removed from the running kernel 834 ( = code which can be inserted in and removed from the running kernel
835 whenever you want). The module will be called bfin_mac. 835 whenever you want). The module will be called bfin_mac.
@@ -1386,7 +1386,8 @@ config FORCEDETH_NAPI
1386 1386
1387config CS89x0 1387config CS89x0
1388 tristate "CS89x0 support" 1388 tristate "CS89x0 support"
1389 depends on NET_PCI && (ISA || MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X) 1389 depends on NET_ETHERNET && (ISA || EISA || MACH_IXDP2351 \
1390 || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS)
1390 ---help--- 1391 ---help---
1391 Support for CS89x0 chipset based Ethernet cards. If you have a 1392 Support for CS89x0 chipset based Ethernet cards. If you have a
1392 network (Ethernet) card of this type, say Y and read the 1393 network (Ethernet) card of this type, say Y and read the
@@ -1397,6 +1398,11 @@ config CS89x0
1397 To compile this driver as a module, choose M here. The module 1398 To compile this driver as a module, choose M here. The module
1398 will be called cs89x0. 1399 will be called cs89x0.
1399 1400
1401config CS89x0_NONISA_IRQ
1402 def_bool y
1403 depends on CS89x0 != n
1404 depends on MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS
1405
1400config TC35815 1406config TC35815
1401 tristate "TOSHIBA TC35815 Ethernet support" 1407 tristate "TOSHIBA TC35815 Ethernet support"
1402 depends on NET_PCI && PCI && MIPS 1408 depends on NET_PCI && PCI && MIPS
diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
index 82d7be1655d3..7685b995ff9b 100644
--- a/drivers/net/atl1e/atl1e_main.c
+++ b/drivers/net/atl1e/atl1e_main.c
@@ -2232,10 +2232,11 @@ static int atl1e_resume(struct pci_dev *pdev)
2232 2232
2233 AT_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0); 2233 AT_WRITE_REG(&adapter->hw, REG_WOL_CTRL, 0);
2234 2234
2235 if (netif_running(netdev)) 2235 if (netif_running(netdev)) {
2236 err = atl1e_request_irq(adapter); 2236 err = atl1e_request_irq(adapter);
2237 if (err) 2237 if (err)
2238 return err; 2238 return err;
2239 }
2239 2240
2240 atl1e_reset_hw(&adapter->hw); 2241 atl1e_reset_hw(&adapter->hw);
2241 2242
diff --git a/drivers/net/atlx/atl1.c b/drivers/net/atlx/atl1.c
index e6a7bb79d4df..e23ce77712f1 100644
--- a/drivers/net/atlx/atl1.c
+++ b/drivers/net/atlx/atl1.c
@@ -3022,7 +3022,6 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
3022 netdev->features = NETIF_F_HW_CSUM; 3022 netdev->features = NETIF_F_HW_CSUM;
3023 netdev->features |= NETIF_F_SG; 3023 netdev->features |= NETIF_F_SG;
3024 netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX); 3024 netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
3025 netdev->features |= NETIF_F_TSO;
3026 netdev->features |= NETIF_F_LLTX; 3025 netdev->features |= NETIF_F_LLTX;
3027 3026
3028 /* 3027 /*
diff --git a/drivers/net/bnx2x.h b/drivers/net/bnx2x.h
index a14dba1afcc5..fd705d1295a7 100644
--- a/drivers/net/bnx2x.h
+++ b/drivers/net/bnx2x.h
@@ -151,6 +151,8 @@ struct sw_rx_page {
151#define PAGES_PER_SGE_SHIFT 0 151#define PAGES_PER_SGE_SHIFT 0
152#define PAGES_PER_SGE (1 << PAGES_PER_SGE_SHIFT) 152#define PAGES_PER_SGE (1 << PAGES_PER_SGE_SHIFT)
153 153
154#define BCM_RX_ETH_PAYLOAD_ALIGN 64
155
154/* SGE ring related macros */ 156/* SGE ring related macros */
155#define NUM_RX_SGE_PAGES 2 157#define NUM_RX_SGE_PAGES 2
156#define RX_SGE_CNT (BCM_PAGE_SIZE / sizeof(struct eth_rx_sge)) 158#define RX_SGE_CNT (BCM_PAGE_SIZE / sizeof(struct eth_rx_sge))
@@ -750,8 +752,7 @@ struct bnx2x {
750 752
751 u32 rx_csum; 753 u32 rx_csum;
752 u32 rx_offset; 754 u32 rx_offset;
753 u32 rx_buf_use_size; /* useable size */ 755 u32 rx_buf_size;
754 u32 rx_buf_size; /* with alignment */
755#define ETH_OVREHEAD (ETH_HLEN + 8) /* 8 for CRC + VLAN */ 756#define ETH_OVREHEAD (ETH_HLEN + 8) /* 8 for CRC + VLAN */
756#define ETH_MIN_PACKET_SIZE 60 757#define ETH_MIN_PACKET_SIZE 60
757#define ETH_MAX_PACKET_SIZE 1500 758#define ETH_MAX_PACKET_SIZE 1500
diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 82deea0a63f5..a8eb3c4a47c8 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -59,8 +59,8 @@
59#include "bnx2x.h" 59#include "bnx2x.h"
60#include "bnx2x_init.h" 60#include "bnx2x_init.h"
61 61
62#define DRV_MODULE_VERSION "1.45.20" 62#define DRV_MODULE_VERSION "1.45.21"
63#define DRV_MODULE_RELDATE "2008/08/25" 63#define DRV_MODULE_RELDATE "2008/09/03"
64#define BNX2X_BC_VER 0x040200 64#define BNX2X_BC_VER 0x040200
65 65
66/* Time in jiffies before concluding the transmitter is hung */ 66/* Time in jiffies before concluding the transmitter is hung */
@@ -1027,7 +1027,7 @@ static inline int bnx2x_alloc_rx_skb(struct bnx2x *bp,
1027 if (unlikely(skb == NULL)) 1027 if (unlikely(skb == NULL))
1028 return -ENOMEM; 1028 return -ENOMEM;
1029 1029
1030 mapping = pci_map_single(bp->pdev, skb->data, bp->rx_buf_use_size, 1030 mapping = pci_map_single(bp->pdev, skb->data, bp->rx_buf_size,
1031 PCI_DMA_FROMDEVICE); 1031 PCI_DMA_FROMDEVICE);
1032 if (unlikely(dma_mapping_error(&bp->pdev->dev, mapping))) { 1032 if (unlikely(dma_mapping_error(&bp->pdev->dev, mapping))) {
1033 dev_kfree_skb(skb); 1033 dev_kfree_skb(skb);
@@ -1169,7 +1169,7 @@ static void bnx2x_tpa_start(struct bnx2x_fastpath *fp, u16 queue,
1169 /* move empty skb from pool to prod and map it */ 1169 /* move empty skb from pool to prod and map it */
1170 prod_rx_buf->skb = fp->tpa_pool[queue].skb; 1170 prod_rx_buf->skb = fp->tpa_pool[queue].skb;
1171 mapping = pci_map_single(bp->pdev, fp->tpa_pool[queue].skb->data, 1171 mapping = pci_map_single(bp->pdev, fp->tpa_pool[queue].skb->data,
1172 bp->rx_buf_use_size, PCI_DMA_FROMDEVICE); 1172 bp->rx_buf_size, PCI_DMA_FROMDEVICE);
1173 pci_unmap_addr_set(prod_rx_buf, mapping, mapping); 1173 pci_unmap_addr_set(prod_rx_buf, mapping, mapping);
1174 1174
1175 /* move partial skb from cons to pool (don't unmap yet) */ 1175 /* move partial skb from cons to pool (don't unmap yet) */
@@ -1276,7 +1276,7 @@ static void bnx2x_tpa_stop(struct bnx2x *bp, struct bnx2x_fastpath *fp,
1276 pool entry status to BNX2X_TPA_STOP even if new skb allocation 1276 pool entry status to BNX2X_TPA_STOP even if new skb allocation
1277 fails. */ 1277 fails. */
1278 pci_unmap_single(bp->pdev, pci_unmap_addr(rx_buf, mapping), 1278 pci_unmap_single(bp->pdev, pci_unmap_addr(rx_buf, mapping),
1279 bp->rx_buf_use_size, PCI_DMA_FROMDEVICE); 1279 bp->rx_buf_size, PCI_DMA_FROMDEVICE);
1280 1280
1281 if (likely(new_skb)) { 1281 if (likely(new_skb)) {
1282 /* fix ip xsum and give it to the stack */ 1282 /* fix ip xsum and give it to the stack */
@@ -1520,7 +1520,7 @@ static int bnx2x_rx_int(struct bnx2x_fastpath *fp, int budget)
1520 } else if (bnx2x_alloc_rx_skb(bp, fp, bd_prod) == 0) { 1520 } else if (bnx2x_alloc_rx_skb(bp, fp, bd_prod) == 0) {
1521 pci_unmap_single(bp->pdev, 1521 pci_unmap_single(bp->pdev,
1522 pci_unmap_addr(rx_buf, mapping), 1522 pci_unmap_addr(rx_buf, mapping),
1523 bp->rx_buf_use_size, 1523 bp->rx_buf_size,
1524 PCI_DMA_FROMDEVICE); 1524 PCI_DMA_FROMDEVICE);
1525 skb_reserve(skb, pad); 1525 skb_reserve(skb, pad);
1526 skb_put(skb, len); 1526 skb_put(skb, len);
@@ -4229,7 +4229,7 @@ static inline void bnx2x_free_tpa_pool(struct bnx2x *bp,
4229 if (fp->tpa_state[i] == BNX2X_TPA_START) 4229 if (fp->tpa_state[i] == BNX2X_TPA_START)
4230 pci_unmap_single(bp->pdev, 4230 pci_unmap_single(bp->pdev,
4231 pci_unmap_addr(rx_buf, mapping), 4231 pci_unmap_addr(rx_buf, mapping),
4232 bp->rx_buf_use_size, 4232 bp->rx_buf_size,
4233 PCI_DMA_FROMDEVICE); 4233 PCI_DMA_FROMDEVICE);
4234 4234
4235 dev_kfree_skb(skb); 4235 dev_kfree_skb(skb);
@@ -4245,15 +4245,14 @@ static void bnx2x_init_rx_rings(struct bnx2x *bp)
4245 u16 ring_prod, cqe_ring_prod; 4245 u16 ring_prod, cqe_ring_prod;
4246 int i, j; 4246 int i, j;
4247 4247
4248 bp->rx_buf_use_size = bp->dev->mtu; 4248 bp->rx_buf_size = bp->dev->mtu;
4249 bp->rx_buf_use_size += bp->rx_offset + ETH_OVREHEAD; 4249 bp->rx_buf_size += bp->rx_offset + ETH_OVREHEAD +
4250 bp->rx_buf_size = bp->rx_buf_use_size + 64; 4250 BCM_RX_ETH_PAYLOAD_ALIGN;
4251 4251
4252 if (bp->flags & TPA_ENABLE_FLAG) { 4252 if (bp->flags & TPA_ENABLE_FLAG) {
4253 DP(NETIF_MSG_IFUP, 4253 DP(NETIF_MSG_IFUP,
4254 "rx_buf_use_size %d rx_buf_size %d effective_mtu %d\n", 4254 "rx_buf_size %d effective_mtu %d\n",
4255 bp->rx_buf_use_size, bp->rx_buf_size, 4255 bp->rx_buf_size, bp->dev->mtu + ETH_OVREHEAD);
4256 bp->dev->mtu + ETH_OVREHEAD);
4257 4256
4258 for_each_queue(bp, j) { 4257 for_each_queue(bp, j) {
4259 struct bnx2x_fastpath *fp = &bp->fp[j]; 4258 struct bnx2x_fastpath *fp = &bp->fp[j];
@@ -4462,9 +4461,10 @@ static void bnx2x_init_context(struct bnx2x *bp)
4462 context->ustorm_st_context.common.status_block_id = sb_id; 4461 context->ustorm_st_context.common.status_block_id = sb_id;
4463 context->ustorm_st_context.common.flags = 4462 context->ustorm_st_context.common.flags =
4464 USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_MC_ALIGNMENT; 4463 USTORM_ETH_ST_CONTEXT_CONFIG_ENABLE_MC_ALIGNMENT;
4465 context->ustorm_st_context.common.mc_alignment_size = 64; 4464 context->ustorm_st_context.common.mc_alignment_size =
4465 BCM_RX_ETH_PAYLOAD_ALIGN;
4466 context->ustorm_st_context.common.bd_buff_size = 4466 context->ustorm_st_context.common.bd_buff_size =
4467 bp->rx_buf_use_size; 4467 bp->rx_buf_size;
4468 context->ustorm_st_context.common.bd_page_base_hi = 4468 context->ustorm_st_context.common.bd_page_base_hi =
4469 U64_HI(fp->rx_desc_mapping); 4469 U64_HI(fp->rx_desc_mapping);
4470 context->ustorm_st_context.common.bd_page_base_lo = 4470 context->ustorm_st_context.common.bd_page_base_lo =
@@ -4717,7 +4717,7 @@ static void bnx2x_init_internal_func(struct bnx2x *bp)
4717 } 4717 }
4718 4718
4719 /* Init CQ ring mapping and aggregation size */ 4719 /* Init CQ ring mapping and aggregation size */
4720 max_agg_size = min((u32)(bp->rx_buf_use_size + 4720 max_agg_size = min((u32)(bp->rx_buf_size +
4721 8*BCM_PAGE_SIZE*PAGES_PER_SGE), 4721 8*BCM_PAGE_SIZE*PAGES_PER_SGE),
4722 (u32)0xffff); 4722 (u32)0xffff);
4723 for_each_queue(bp, i) { 4723 for_each_queue(bp, i) {
@@ -5940,7 +5940,7 @@ static void bnx2x_free_rx_skbs(struct bnx2x *bp)
5940 5940
5941 pci_unmap_single(bp->pdev, 5941 pci_unmap_single(bp->pdev,
5942 pci_unmap_addr(rx_buf, mapping), 5942 pci_unmap_addr(rx_buf, mapping),
5943 bp->rx_buf_use_size, 5943 bp->rx_buf_size,
5944 PCI_DMA_FROMDEVICE); 5944 PCI_DMA_FROMDEVICE);
5945 5945
5946 rx_buf->skb = NULL; 5946 rx_buf->skb = NULL;
diff --git a/drivers/net/cs89x0.c b/drivers/net/cs89x0.c
index ea6144a9565e..5890a917a628 100644
--- a/drivers/net/cs89x0.c
+++ b/drivers/net/cs89x0.c
@@ -194,6 +194,12 @@ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0};
194#define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */ 194#define CIRRUS_DEFAULT_IRQ VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */
195static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0}; 195static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0};
196static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0}; 196static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0};
197#elif defined(CONFIG_MACH_MX31ADS)
198#include <mach/board-mx31ads.h>
199static unsigned int netcard_portlist[] __used __initdata = {
200 PBC_BASE_ADDRESS + PBC_CS8900A_IOBASE + 0x300, 0
201};
202static unsigned cs8900_irq_map[] = {EXPIO_INT_ENET_INT, 0, 0, 0};
197#else 203#else
198static unsigned int netcard_portlist[] __used __initdata = 204static unsigned int netcard_portlist[] __used __initdata =
199 { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0}; 205 { 0x300, 0x320, 0x340, 0x360, 0x200, 0x220, 0x240, 0x260, 0x280, 0x2a0, 0x2c0, 0x2e0, 0};
@@ -802,7 +808,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
802 } else { 808 } else {
803 i = lp->isa_config & INT_NO_MASK; 809 i = lp->isa_config & INT_NO_MASK;
804 if (lp->chip_type == CS8900) { 810 if (lp->chip_type == CS8900) {
805#if defined(CONFIG_MACH_IXDP2351) || defined(CONFIG_ARCH_IXDP2X01) || defined(CONFIG_ARCH_PNX010X) 811#ifdef CONFIG_CS89x0_NONISA_IRQ
806 i = cs8900_irq_map[0]; 812 i = cs8900_irq_map[0];
807#else 813#else
808 /* Translate the IRQ using the IRQ mapping table. */ 814 /* Translate the IRQ using the IRQ mapping table. */
@@ -1029,6 +1035,7 @@ skip_this_frame:
1029 1035
1030void __init reset_chip(struct net_device *dev) 1036void __init reset_chip(struct net_device *dev)
1031{ 1037{
1038#if !defined(CONFIG_MACH_MX31ADS)
1032#if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) 1039#if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01)
1033 struct net_local *lp = netdev_priv(dev); 1040 struct net_local *lp = netdev_priv(dev);
1034 int ioaddr = dev->base_addr; 1041 int ioaddr = dev->base_addr;
@@ -1057,6 +1064,7 @@ void __init reset_chip(struct net_device *dev)
1057 reset_start_time = jiffies; 1064 reset_start_time = jiffies;
1058 while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && jiffies - reset_start_time < 2) 1065 while( (readreg(dev, PP_SelfST) & INIT_DONE) == 0 && jiffies - reset_start_time < 2)
1059 ; 1066 ;
1067#endif /* !CONFIG_MACH_MX31ADS */
1060} 1068}
1061 1069
1062 1070
@@ -1304,7 +1312,7 @@ net_open(struct net_device *dev)
1304 else 1312 else
1305#endif 1313#endif
1306 { 1314 {
1307#if !defined(CONFIG_MACH_IXDP2351) && !defined(CONFIG_ARCH_IXDP2X01) && !defined(CONFIG_ARCH_PNX010X) 1315#ifndef CONFIG_CS89x0_NONISA_IRQ
1308 if (((1 << dev->irq) & lp->irq_map) == 0) { 1316 if (((1 << dev->irq) & lp->irq_map) == 0) {
1309 printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n", 1317 printk(KERN_ERR "%s: IRQ %d is not in our map of allowable IRQs, which is %x\n",
1310 dev->name, dev->irq, lp->irq_map); 1318 dev->name, dev->irq, lp->irq_map);
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 19d32a227be1..453115acaad2 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -1838,7 +1838,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1838 if ((le16_to_cpu(rfd->command) & cb_el) && 1838 if ((le16_to_cpu(rfd->command) & cb_el) &&
1839 (RU_RUNNING == nic->ru_running)) 1839 (RU_RUNNING == nic->ru_running))
1840 1840
1841 if (readb(&nic->csr->scb.status) & rus_no_res) 1841 if (ioread8(&nic->csr->scb.status) & rus_no_res)
1842 nic->ru_running = RU_SUSPENDED; 1842 nic->ru_running = RU_SUSPENDED;
1843 return -ENODATA; 1843 return -ENODATA;
1844 } 1844 }
@@ -1861,7 +1861,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,
1861 if ((le16_to_cpu(rfd->command) & cb_el) && 1861 if ((le16_to_cpu(rfd->command) & cb_el) &&
1862 (RU_RUNNING == nic->ru_running)) { 1862 (RU_RUNNING == nic->ru_running)) {
1863 1863
1864 if (readb(&nic->csr->scb.status) & rus_no_res) 1864 if (ioread8(&nic->csr->scb.status) & rus_no_res)
1865 nic->ru_running = RU_SUSPENDED; 1865 nic->ru_running = RU_SUSPENDED;
1866 } 1866 }
1867 1867
diff --git a/drivers/net/e1000/e1000_param.c b/drivers/net/e1000/e1000_param.c
index b9f90a5d3d4d..213437d13154 100644
--- a/drivers/net/e1000/e1000_param.c
+++ b/drivers/net/e1000/e1000_param.c
@@ -208,7 +208,7 @@ struct e1000_option {
208 } r; 208 } r;
209 struct { /* list_option info */ 209 struct { /* list_option info */
210 int nr; 210 int nr;
211 struct e1000_opt_list { int i; char *str; } *p; 211 const struct e1000_opt_list { int i; char *str; } *p;
212 } l; 212 } l;
213 } arg; 213 } arg;
214}; 214};
@@ -242,7 +242,7 @@ static int __devinit e1000_validate_option(unsigned int *value,
242 break; 242 break;
243 case list_option: { 243 case list_option: {
244 int i; 244 int i;
245 struct e1000_opt_list *ent; 245 const struct e1000_opt_list *ent;
246 246
247 for (i = 0; i < opt->arg.l.nr; i++) { 247 for (i = 0; i < opt->arg.l.nr; i++) {
248 ent = &opt->arg.l.p[i]; 248 ent = &opt->arg.l.p[i];
@@ -279,7 +279,9 @@ static void e1000_check_copper_options(struct e1000_adapter *adapter);
279 279
280void __devinit e1000_check_options(struct e1000_adapter *adapter) 280void __devinit e1000_check_options(struct e1000_adapter *adapter)
281{ 281{
282 struct e1000_option opt;
282 int bd = adapter->bd_number; 283 int bd = adapter->bd_number;
284
283 if (bd >= E1000_MAX_NIC) { 285 if (bd >= E1000_MAX_NIC) {
284 DPRINTK(PROBE, NOTICE, 286 DPRINTK(PROBE, NOTICE,
285 "Warning: no configuration for board #%i\n", bd); 287 "Warning: no configuration for board #%i\n", bd);
@@ -287,19 +289,21 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
287 } 289 }
288 290
289 { /* Transmit Descriptor Count */ 291 { /* Transmit Descriptor Count */
290 struct e1000_option opt = { 292 struct e1000_tx_ring *tx_ring = adapter->tx_ring;
293 int i;
294 e1000_mac_type mac_type = adapter->hw.mac_type;
295
296 opt = (struct e1000_option) {
291 .type = range_option, 297 .type = range_option,
292 .name = "Transmit Descriptors", 298 .name = "Transmit Descriptors",
293 .err = "using default of " 299 .err = "using default of "
294 __MODULE_STRING(E1000_DEFAULT_TXD), 300 __MODULE_STRING(E1000_DEFAULT_TXD),
295 .def = E1000_DEFAULT_TXD, 301 .def = E1000_DEFAULT_TXD,
296 .arg = { .r = { .min = E1000_MIN_TXD }} 302 .arg = { .r = {
303 .min = E1000_MIN_TXD,
304 .max = mac_type < e1000_82544 ? E1000_MAX_TXD : E1000_MAX_82544_TXD
305 }}
297 }; 306 };
298 struct e1000_tx_ring *tx_ring = adapter->tx_ring;
299 int i;
300 e1000_mac_type mac_type = adapter->hw.mac_type;
301 opt.arg.r.max = mac_type < e1000_82544 ?
302 E1000_MAX_TXD : E1000_MAX_82544_TXD;
303 307
304 if (num_TxDescriptors > bd) { 308 if (num_TxDescriptors > bd) {
305 tx_ring->count = TxDescriptors[bd]; 309 tx_ring->count = TxDescriptors[bd];
@@ -313,19 +317,21 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
313 tx_ring[i].count = tx_ring->count; 317 tx_ring[i].count = tx_ring->count;
314 } 318 }
315 { /* Receive Descriptor Count */ 319 { /* Receive Descriptor Count */
316 struct e1000_option opt = { 320 struct e1000_rx_ring *rx_ring = adapter->rx_ring;
321 int i;
322 e1000_mac_type mac_type = adapter->hw.mac_type;
323
324 opt = (struct e1000_option) {
317 .type = range_option, 325 .type = range_option,
318 .name = "Receive Descriptors", 326 .name = "Receive Descriptors",
319 .err = "using default of " 327 .err = "using default of "
320 __MODULE_STRING(E1000_DEFAULT_RXD), 328 __MODULE_STRING(E1000_DEFAULT_RXD),
321 .def = E1000_DEFAULT_RXD, 329 .def = E1000_DEFAULT_RXD,
322 .arg = { .r = { .min = E1000_MIN_RXD }} 330 .arg = { .r = {
331 .min = E1000_MIN_RXD,
332 .max = mac_type < e1000_82544 ? E1000_MAX_RXD : E1000_MAX_82544_RXD
333 }}
323 }; 334 };
324 struct e1000_rx_ring *rx_ring = adapter->rx_ring;
325 int i;
326 e1000_mac_type mac_type = adapter->hw.mac_type;
327 opt.arg.r.max = mac_type < e1000_82544 ? E1000_MAX_RXD :
328 E1000_MAX_82544_RXD;
329 335
330 if (num_RxDescriptors > bd) { 336 if (num_RxDescriptors > bd) {
331 rx_ring->count = RxDescriptors[bd]; 337 rx_ring->count = RxDescriptors[bd];
@@ -339,7 +345,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
339 rx_ring[i].count = rx_ring->count; 345 rx_ring[i].count = rx_ring->count;
340 } 346 }
341 { /* Checksum Offload Enable/Disable */ 347 { /* Checksum Offload Enable/Disable */
342 struct e1000_option opt = { 348 opt = (struct e1000_option) {
343 .type = enable_option, 349 .type = enable_option,
344 .name = "Checksum Offload", 350 .name = "Checksum Offload",
345 .err = "defaulting to Enabled", 351 .err = "defaulting to Enabled",
@@ -363,7 +369,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
363 { E1000_FC_FULL, "Flow Control Enabled" }, 369 { E1000_FC_FULL, "Flow Control Enabled" },
364 { E1000_FC_DEFAULT, "Flow Control Hardware Default" }}; 370 { E1000_FC_DEFAULT, "Flow Control Hardware Default" }};
365 371
366 struct e1000_option opt = { 372 opt = (struct e1000_option) {
367 .type = list_option, 373 .type = list_option,
368 .name = "Flow Control", 374 .name = "Flow Control",
369 .err = "reading default settings from EEPROM", 375 .err = "reading default settings from EEPROM",
@@ -381,7 +387,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
381 } 387 }
382 } 388 }
383 { /* Transmit Interrupt Delay */ 389 { /* Transmit Interrupt Delay */
384 struct e1000_option opt = { 390 opt = (struct e1000_option) {
385 .type = range_option, 391 .type = range_option,
386 .name = "Transmit Interrupt Delay", 392 .name = "Transmit Interrupt Delay",
387 .err = "using default of " __MODULE_STRING(DEFAULT_TIDV), 393 .err = "using default of " __MODULE_STRING(DEFAULT_TIDV),
@@ -399,7 +405,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
399 } 405 }
400 } 406 }
401 { /* Transmit Absolute Interrupt Delay */ 407 { /* Transmit Absolute Interrupt Delay */
402 struct e1000_option opt = { 408 opt = (struct e1000_option) {
403 .type = range_option, 409 .type = range_option,
404 .name = "Transmit Absolute Interrupt Delay", 410 .name = "Transmit Absolute Interrupt Delay",
405 .err = "using default of " __MODULE_STRING(DEFAULT_TADV), 411 .err = "using default of " __MODULE_STRING(DEFAULT_TADV),
@@ -417,7 +423,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
417 } 423 }
418 } 424 }
419 { /* Receive Interrupt Delay */ 425 { /* Receive Interrupt Delay */
420 struct e1000_option opt = { 426 opt = (struct e1000_option) {
421 .type = range_option, 427 .type = range_option,
422 .name = "Receive Interrupt Delay", 428 .name = "Receive Interrupt Delay",
423 .err = "using default of " __MODULE_STRING(DEFAULT_RDTR), 429 .err = "using default of " __MODULE_STRING(DEFAULT_RDTR),
@@ -435,7 +441,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
435 } 441 }
436 } 442 }
437 { /* Receive Absolute Interrupt Delay */ 443 { /* Receive Absolute Interrupt Delay */
438 struct e1000_option opt = { 444 opt = (struct e1000_option) {
439 .type = range_option, 445 .type = range_option,
440 .name = "Receive Absolute Interrupt Delay", 446 .name = "Receive Absolute Interrupt Delay",
441 .err = "using default of " __MODULE_STRING(DEFAULT_RADV), 447 .err = "using default of " __MODULE_STRING(DEFAULT_RADV),
@@ -453,7 +459,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
453 } 459 }
454 } 460 }
455 { /* Interrupt Throttling Rate */ 461 { /* Interrupt Throttling Rate */
456 struct e1000_option opt = { 462 opt = (struct e1000_option) {
457 .type = range_option, 463 .type = range_option,
458 .name = "Interrupt Throttling Rate (ints/sec)", 464 .name = "Interrupt Throttling Rate (ints/sec)",
459 .err = "using default of " __MODULE_STRING(DEFAULT_ITR), 465 .err = "using default of " __MODULE_STRING(DEFAULT_ITR),
@@ -497,7 +503,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
497 } 503 }
498 } 504 }
499 { /* Smart Power Down */ 505 { /* Smart Power Down */
500 struct e1000_option opt = { 506 opt = (struct e1000_option) {
501 .type = enable_option, 507 .type = enable_option,
502 .name = "PHY Smart Power Down", 508 .name = "PHY Smart Power Down",
503 .err = "defaulting to Disabled", 509 .err = "defaulting to Disabled",
@@ -513,7 +519,7 @@ void __devinit e1000_check_options(struct e1000_adapter *adapter)
513 } 519 }
514 } 520 }
515 { /* Kumeran Lock Loss Workaround */ 521 { /* Kumeran Lock Loss Workaround */
516 struct e1000_option opt = { 522 opt = (struct e1000_option) {
517 .type = enable_option, 523 .type = enable_option,
518 .name = "Kumeran Lock Loss Workaround", 524 .name = "Kumeran Lock Loss Workaround",
519 .err = "defaulting to Enabled", 525 .err = "defaulting to Enabled",
@@ -578,16 +584,18 @@ static void __devinit e1000_check_fiber_options(struct e1000_adapter *adapter)
578 584
579static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter) 585static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
580{ 586{
587 struct e1000_option opt;
581 unsigned int speed, dplx, an; 588 unsigned int speed, dplx, an;
582 int bd = adapter->bd_number; 589 int bd = adapter->bd_number;
583 590
584 { /* Speed */ 591 { /* Speed */
585 struct e1000_opt_list speed_list[] = {{ 0, "" }, 592 static const struct e1000_opt_list speed_list[] = {
586 { SPEED_10, "" }, 593 { 0, "" },
587 { SPEED_100, "" }, 594 { SPEED_10, "" },
588 { SPEED_1000, "" }}; 595 { SPEED_100, "" },
596 { SPEED_1000, "" }};
589 597
590 struct e1000_option opt = { 598 opt = (struct e1000_option) {
591 .type = list_option, 599 .type = list_option,
592 .name = "Speed", 600 .name = "Speed",
593 .err = "parameter ignored", 601 .err = "parameter ignored",
@@ -604,11 +612,12 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
604 } 612 }
605 } 613 }
606 { /* Duplex */ 614 { /* Duplex */
607 struct e1000_opt_list dplx_list[] = {{ 0, "" }, 615 static const struct e1000_opt_list dplx_list[] = {
608 { HALF_DUPLEX, "" }, 616 { 0, "" },
609 { FULL_DUPLEX, "" }}; 617 { HALF_DUPLEX, "" },
618 { FULL_DUPLEX, "" }};
610 619
611 struct e1000_option opt = { 620 opt = (struct e1000_option) {
612 .type = list_option, 621 .type = list_option,
613 .name = "Duplex", 622 .name = "Duplex",
614 .err = "parameter ignored", 623 .err = "parameter ignored",
@@ -637,7 +646,7 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
637 "parameter ignored\n"); 646 "parameter ignored\n");
638 adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT; 647 adapter->hw.autoneg_advertised = AUTONEG_ADV_DEFAULT;
639 } else { /* Autoneg */ 648 } else { /* Autoneg */
640 struct e1000_opt_list an_list[] = 649 static const struct e1000_opt_list an_list[] =
641 #define AA "AutoNeg advertising " 650 #define AA "AutoNeg advertising "
642 {{ 0x01, AA "10/HD" }, 651 {{ 0x01, AA "10/HD" },
643 { 0x02, AA "10/FD" }, 652 { 0x02, AA "10/FD" },
@@ -671,7 +680,7 @@ static void __devinit e1000_check_copper_options(struct e1000_adapter *adapter)
671 { 0x2e, AA "1000/FD, 100/FD, 100/HD, 10/FD" }, 680 { 0x2e, AA "1000/FD, 100/FD, 100/HD, 10/FD" },
672 { 0x2f, AA "1000/FD, 100/FD, 100/HD, 10/FD, 10/HD" }}; 681 { 0x2f, AA "1000/FD, 100/FD, 100/HD, 10/FD, 10/HD" }};
673 682
674 struct e1000_option opt = { 683 opt = (struct e1000_option) {
675 .type = list_option, 684 .type = list_option,
676 .name = "AutoNeg", 685 .name = "AutoNeg",
677 .err = "parameter ignored", 686 .err = "parameter ignored",
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
index 053971e5fc94..0b6ecef9a849 100644
--- a/drivers/net/forcedeth.c
+++ b/drivers/net/forcedeth.c
@@ -5522,7 +5522,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
5522 if (id->driver_data & DEV_HAS_CHECKSUM) { 5522 if (id->driver_data & DEV_HAS_CHECKSUM) {
5523 np->rx_csum = 1; 5523 np->rx_csum = 1;
5524 np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK; 5524 np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK;
5525 dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG; 5525 dev->features |= NETIF_F_IP_CSUM | NETIF_F_SG;
5526 dev->features |= NETIF_F_TSO; 5526 dev->features |= NETIF_F_TSO;
5527 } 5527 }
5528 5528
@@ -5835,7 +5835,7 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
5835 5835
5836 dev_printk(KERN_INFO, &pci_dev->dev, "%s%s%s%s%s%s%s%s%s%sdesc-v%u\n", 5836 dev_printk(KERN_INFO, &pci_dev->dev, "%s%s%s%s%s%s%s%s%s%sdesc-v%u\n",
5837 dev->features & NETIF_F_HIGHDMA ? "highdma " : "", 5837 dev->features & NETIF_F_HIGHDMA ? "highdma " : "",
5838 dev->features & (NETIF_F_HW_CSUM | NETIF_F_SG) ? 5838 dev->features & (NETIF_F_IP_CSUM | NETIF_F_SG) ?
5839 "csum " : "", 5839 "csum " : "",
5840 dev->features & (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX) ? 5840 dev->features & (NETIF_F_HW_VLAN_RX | NETIF_F_HW_VLAN_TX) ?
5841 "vlan " : "", 5841 "vlan " : "",
@@ -5975,10 +5975,12 @@ static void nv_shutdown(struct pci_dev *pdev)
5975 if (netif_running(dev)) 5975 if (netif_running(dev))
5976 nv_close(dev); 5976 nv_close(dev);
5977 5977
5978 pci_enable_wake(pdev, PCI_D3hot, np->wolenabled);
5979 pci_enable_wake(pdev, PCI_D3cold, np->wolenabled);
5980 pci_disable_device(pdev); 5978 pci_disable_device(pdev);
5981 pci_set_power_state(pdev, PCI_D3hot); 5979 if (system_state == SYSTEM_POWER_OFF) {
5980 if (pci_enable_wake(pdev, PCI_D3cold, np->wolenabled))
5981 pci_enable_wake(pdev, PCI_D3hot, np->wolenabled);
5982 pci_set_power_state(pdev, PCI_D3hot);
5983 }
5982} 5984}
5983#else 5985#else
5984#define nv_suspend NULL 5986#define nv_suspend NULL
diff --git a/drivers/net/fs_enet/fs_enet-main.c b/drivers/net/fs_enet/fs_enet-main.c
index 9a51ec8293cc..9d461825bf4c 100644
--- a/drivers/net/fs_enet/fs_enet-main.c
+++ b/drivers/net/fs_enet/fs_enet-main.c
@@ -792,6 +792,10 @@ static int fs_enet_open(struct net_device *dev)
792 int r; 792 int r;
793 int err; 793 int err;
794 794
795 /* to initialize the fep->cur_rx,... */
796 /* not doing this, will cause a crash in fs_enet_rx_napi */
797 fs_init_bds(fep->ndev);
798
795 if (fep->fpi->use_napi) 799 if (fep->fpi->use_napi)
796 napi_enable(&fep->napi); 800 napi_enable(&fep->napi);
797 801
@@ -1167,6 +1171,10 @@ static struct of_device_id fs_enet_match[] = {
1167 .compatible = "fsl,cpm1-scc-enet", 1171 .compatible = "fsl,cpm1-scc-enet",
1168 .data = (void *)&fs_scc_ops, 1172 .data = (void *)&fs_scc_ops,
1169 }, 1173 },
1174 {
1175 .compatible = "fsl,cpm2-scc-enet",
1176 .data = (void *)&fs_scc_ops,
1177 },
1170#endif 1178#endif
1171#ifdef CONFIG_FS_ENET_HAS_FCC 1179#ifdef CONFIG_FS_ENET_HAS_FCC
1172 { 1180 {
diff --git a/drivers/net/fs_enet/mac-scc.c b/drivers/net/fs_enet/mac-scc.c
index 029b3c7ef29c..22f50dd8b277 100644
--- a/drivers/net/fs_enet/mac-scc.c
+++ b/drivers/net/fs_enet/mac-scc.c
@@ -47,7 +47,6 @@
47#include "fs_enet.h" 47#include "fs_enet.h"
48 48
49/*************************************************/ 49/*************************************************/
50
51#if defined(CONFIG_CPM1) 50#if defined(CONFIG_CPM1)
52/* for a 8xx __raw_xxx's are sufficient */ 51/* for a 8xx __raw_xxx's are sufficient */
53#define __fs_out32(addr, x) __raw_writel(x, addr) 52#define __fs_out32(addr, x) __raw_writel(x, addr)
@@ -62,6 +61,8 @@
62#define __fs_out16(addr, x) out_be16(addr, x) 61#define __fs_out16(addr, x) out_be16(addr, x)
63#define __fs_in32(addr) in_be32(addr) 62#define __fs_in32(addr) in_be32(addr)
64#define __fs_in16(addr) in_be16(addr) 63#define __fs_in16(addr) in_be16(addr)
64#define __fs_out8(addr, x) out_8(addr, x)
65#define __fs_in8(addr) in_8(addr)
65#endif 66#endif
66 67
67/* write, read, set bits, clear bits */ 68/* write, read, set bits, clear bits */
@@ -262,8 +263,13 @@ static void restart(struct net_device *dev)
262 263
263 /* Initialize function code registers for big-endian. 264 /* Initialize function code registers for big-endian.
264 */ 265 */
266#ifndef CONFIG_NOT_COHERENT_CACHE
267 W8(ep, sen_genscc.scc_rfcr, SCC_EB | SCC_GBL);
268 W8(ep, sen_genscc.scc_tfcr, SCC_EB | SCC_GBL);
269#else
265 W8(ep, sen_genscc.scc_rfcr, SCC_EB); 270 W8(ep, sen_genscc.scc_rfcr, SCC_EB);
266 W8(ep, sen_genscc.scc_tfcr, SCC_EB); 271 W8(ep, sen_genscc.scc_tfcr, SCC_EB);
272#endif
267 273
268 /* Set maximum bytes per receive buffer. 274 /* Set maximum bytes per receive buffer.
269 * This appears to be an Ethernet frame size, not the buffer 275 * This appears to be an Ethernet frame size, not the buffer
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 999d69168277..4320a983a588 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -105,6 +105,7 @@ const char gfar_driver_version[] = "1.3";
105 105
106static int gfar_enet_open(struct net_device *dev); 106static int gfar_enet_open(struct net_device *dev);
107static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev); 107static int gfar_start_xmit(struct sk_buff *skb, struct net_device *dev);
108static void gfar_reset_task(struct work_struct *work);
108static void gfar_timeout(struct net_device *dev); 109static void gfar_timeout(struct net_device *dev);
109static int gfar_close(struct net_device *dev); 110static int gfar_close(struct net_device *dev);
110struct sk_buff *gfar_new_skb(struct net_device *dev); 111struct sk_buff *gfar_new_skb(struct net_device *dev);
@@ -209,6 +210,7 @@ static int gfar_probe(struct platform_device *pdev)
209 spin_lock_init(&priv->txlock); 210 spin_lock_init(&priv->txlock);
210 spin_lock_init(&priv->rxlock); 211 spin_lock_init(&priv->rxlock);
211 spin_lock_init(&priv->bflock); 212 spin_lock_init(&priv->bflock);
213 INIT_WORK(&priv->reset_task, gfar_reset_task);
212 214
213 platform_set_drvdata(pdev, dev); 215 platform_set_drvdata(pdev, dev);
214 216
@@ -1212,6 +1214,7 @@ static int gfar_close(struct net_device *dev)
1212 1214
1213 napi_disable(&priv->napi); 1215 napi_disable(&priv->napi);
1214 1216
1217 cancel_work_sync(&priv->reset_task);
1215 stop_gfar(dev); 1218 stop_gfar(dev);
1216 1219
1217 /* Disconnect from the PHY */ 1220 /* Disconnect from the PHY */
@@ -1326,13 +1329,16 @@ static int gfar_change_mtu(struct net_device *dev, int new_mtu)
1326 return 0; 1329 return 0;
1327} 1330}
1328 1331
1329/* gfar_timeout gets called when a packet has not been 1332/* gfar_reset_task gets scheduled when a packet has not been
1330 * transmitted after a set amount of time. 1333 * transmitted after a set amount of time.
1331 * For now, assume that clearing out all the structures, and 1334 * For now, assume that clearing out all the structures, and
1332 * starting over will fix the problem. */ 1335 * starting over will fix the problem.
1333static void gfar_timeout(struct net_device *dev) 1336 */
1337static void gfar_reset_task(struct work_struct *work)
1334{ 1338{
1335 dev->stats.tx_errors++; 1339 struct gfar_private *priv = container_of(work, struct gfar_private,
1340 reset_task);
1341 struct net_device *dev = priv->dev;
1336 1342
1337 if (dev->flags & IFF_UP) { 1343 if (dev->flags & IFF_UP) {
1338 stop_gfar(dev); 1344 stop_gfar(dev);
@@ -1342,6 +1348,14 @@ static void gfar_timeout(struct net_device *dev)
1342 netif_tx_schedule_all(dev); 1348 netif_tx_schedule_all(dev);
1343} 1349}
1344 1350
1351static void gfar_timeout(struct net_device *dev)
1352{
1353 struct gfar_private *priv = netdev_priv(dev);
1354
1355 dev->stats.tx_errors++;
1356 schedule_work(&priv->reset_task);
1357}
1358
1345/* Interrupt Handler for Transmit complete */ 1359/* Interrupt Handler for Transmit complete */
1346static int gfar_clean_tx_ring(struct net_device *dev) 1360static int gfar_clean_tx_ring(struct net_device *dev)
1347{ 1361{
diff --git a/drivers/net/gianfar.h b/drivers/net/gianfar.h
index d59df98bd636..f46e9b63af13 100644
--- a/drivers/net/gianfar.h
+++ b/drivers/net/gianfar.h
@@ -756,6 +756,7 @@ struct gfar_private {
756 756
757 uint32_t msg_enable; 757 uint32_t msg_enable;
758 758
759 struct work_struct reset_task;
759 /* Network Statistics */ 760 /* Network Statistics */
760 struct gfar_extra_stats extra_stats; 761 struct gfar_extra_stats extra_stats;
761}; 762};
diff --git a/drivers/net/hp-plus.c b/drivers/net/hp-plus.c
index 8239939554bc..fbbd3e660c27 100644
--- a/drivers/net/hp-plus.c
+++ b/drivers/net/hp-plus.c
@@ -139,7 +139,7 @@ static int __init do_hpp_probe(struct net_device *dev)
139#ifndef MODULE 139#ifndef MODULE
140struct net_device * __init hp_plus_probe(int unit) 140struct net_device * __init hp_plus_probe(int unit)
141{ 141{
142 struct net_device *dev = alloc_ei_netdev(); 142 struct net_device *dev = alloc_eip_netdev();
143 int err; 143 int err;
144 144
145 if (!dev) 145 if (!dev)
@@ -284,7 +284,7 @@ hpp_open(struct net_device *dev)
284 int option_reg; 284 int option_reg;
285 int retval; 285 int retval;
286 286
287 if ((retval = request_irq(dev->irq, ei_interrupt, 0, dev->name, dev))) { 287 if ((retval = request_irq(dev->irq, eip_interrupt, 0, dev->name, dev))) {
288 return retval; 288 return retval;
289 } 289 }
290 290
@@ -302,7 +302,7 @@ hpp_open(struct net_device *dev)
302 /* Select the operational page. */ 302 /* Select the operational page. */
303 outw(Perf_Page, ioaddr + HP_PAGING); 303 outw(Perf_Page, ioaddr + HP_PAGING);
304 304
305 ei_open(dev); 305 eip_open(dev);
306 return 0; 306 return 0;
307} 307}
308 308
@@ -313,7 +313,7 @@ hpp_close(struct net_device *dev)
313 int option_reg = inw(ioaddr + HPP_OPTION); 313 int option_reg = inw(ioaddr + HPP_OPTION);
314 314
315 free_irq(dev->irq, dev); 315 free_irq(dev->irq, dev);
316 ei_close(dev); 316 eip_close(dev);
317 outw((option_reg & ~EnableIRQ) | MemDisable | NICReset | ChipReset, 317 outw((option_reg & ~EnableIRQ) | MemDisable | NICReset | ChipReset,
318 ioaddr + HPP_OPTION); 318 ioaddr + HPP_OPTION);
319 319
diff --git a/drivers/net/ibm_newemac/core.c b/drivers/net/ibm_newemac/core.c
index 2e720f26ca83..ccd9d9058f6d 100644
--- a/drivers/net/ibm_newemac/core.c
+++ b/drivers/net/ibm_newemac/core.c
@@ -663,9 +663,6 @@ static int emac_configure(struct emac_instance *dev)
663 if (emac_phy_gpcs(dev->phy.mode)) 663 if (emac_phy_gpcs(dev->phy.mode))
664 emac_mii_reset_phy(&dev->phy); 664 emac_mii_reset_phy(&dev->phy);
665 665
666 /* Required for Pause packet support in EMAC */
667 dev_mc_add(ndev, default_mcast_addr, sizeof(default_mcast_addr), 1);
668
669 return 0; 666 return 0;
670} 667}
671 668
@@ -1150,6 +1147,9 @@ static int emac_open(struct net_device *ndev)
1150 } else 1147 } else
1151 netif_carrier_on(dev->ndev); 1148 netif_carrier_on(dev->ndev);
1152 1149
1150 /* Required for Pause packet support in EMAC */
1151 dev_mc_add(ndev, default_mcast_addr, sizeof(default_mcast_addr), 1);
1152
1153 emac_configure(dev); 1153 emac_configure(dev);
1154 mal_poll_add(dev->mal, &dev->commac); 1154 mal_poll_add(dev->mal, &dev->commac);
1155 mal_enable_tx_channel(dev->mal, dev->mal_tx_chan); 1155 mal_enable_tx_channel(dev->mal, dev->mal_tx_chan);
diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
index a03fe1fb61ca..c2d57f836088 100644
--- a/drivers/net/ibmveth.c
+++ b/drivers/net/ibmveth.c
@@ -904,8 +904,6 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
904 unsigned long data_dma_addr; 904 unsigned long data_dma_addr;
905 905
906 desc.fields.flags_len = IBMVETH_BUF_VALID | skb->len; 906 desc.fields.flags_len = IBMVETH_BUF_VALID | skb->len;
907 data_dma_addr = dma_map_single(&adapter->vdev->dev, skb->data,
908 skb->len, DMA_TO_DEVICE);
909 907
910 if (skb->ip_summed == CHECKSUM_PARTIAL && 908 if (skb->ip_summed == CHECKSUM_PARTIAL &&
911 ip_hdr(skb)->protocol != IPPROTO_TCP && skb_checksum_help(skb)) { 909 ip_hdr(skb)->protocol != IPPROTO_TCP && skb_checksum_help(skb)) {
@@ -924,6 +922,8 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
924 buf[1] = 0; 922 buf[1] = 0;
925 } 923 }
926 924
925 data_dma_addr = dma_map_single(&adapter->vdev->dev, skb->data,
926 skb->len, DMA_TO_DEVICE);
927 if (dma_mapping_error(&adapter->vdev->dev, data_dma_addr)) { 927 if (dma_mapping_error(&adapter->vdev->dev, data_dma_addr)) {
928 if (!firmware_has_feature(FW_FEATURE_CMO)) 928 if (!firmware_has_feature(FW_FEATURE_CMO))
929 ibmveth_error_printk("tx: unable to map xmit buffer\n"); 929 ibmveth_error_printk("tx: unable to map xmit buffer\n");
@@ -932,6 +932,7 @@ static int ibmveth_start_xmit(struct sk_buff *skb, struct net_device *netdev)
932 desc.fields.address = adapter->bounce_buffer_dma; 932 desc.fields.address = adapter->bounce_buffer_dma;
933 tx_map_failed++; 933 tx_map_failed++;
934 used_bounce = 1; 934 used_bounce = 1;
935 wmb();
935 } else 936 } else
936 desc.fields.address = data_dma_addr; 937 desc.fields.address = data_dma_addr;
937 938
diff --git a/drivers/net/igb/e1000_82575.c b/drivers/net/igb/e1000_82575.c
index bb823acc7443..f5e2e7235fcb 100644
--- a/drivers/net/igb/e1000_82575.c
+++ b/drivers/net/igb/e1000_82575.c
@@ -87,7 +87,6 @@ static s32 igb_get_invariants_82575(struct e1000_hw *hw)
87 case E1000_DEV_ID_82576: 87 case E1000_DEV_ID_82576:
88 case E1000_DEV_ID_82576_FIBER: 88 case E1000_DEV_ID_82576_FIBER:
89 case E1000_DEV_ID_82576_SERDES: 89 case E1000_DEV_ID_82576_SERDES:
90 case E1000_DEV_ID_82576_QUAD_COPPER:
91 mac->type = e1000_82576; 90 mac->type = e1000_82576;
92 break; 91 break;
93 default: 92 default:
diff --git a/drivers/net/igb/e1000_hw.h b/drivers/net/igb/e1000_hw.h
index a65ccc3095c3..99504a600a80 100644
--- a/drivers/net/igb/e1000_hw.h
+++ b/drivers/net/igb/e1000_hw.h
@@ -41,7 +41,6 @@ struct e1000_hw;
41#define E1000_DEV_ID_82576 0x10C9 41#define E1000_DEV_ID_82576 0x10C9
42#define E1000_DEV_ID_82576_FIBER 0x10E6 42#define E1000_DEV_ID_82576_FIBER 0x10E6
43#define E1000_DEV_ID_82576_SERDES 0x10E7 43#define E1000_DEV_ID_82576_SERDES 0x10E7
44#define E1000_DEV_ID_82576_QUAD_COPPER 0x10E8
45#define E1000_DEV_ID_82575EB_COPPER 0x10A7 44#define E1000_DEV_ID_82575EB_COPPER 0x10A7
46#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9 45#define E1000_DEV_ID_82575EB_FIBER_SERDES 0x10A9
47#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6 46#define E1000_DEV_ID_82575GB_QUAD_COPPER 0x10D6
diff --git a/drivers/net/igb/igb_ethtool.c b/drivers/net/igb/igb_ethtool.c
index 11aee1309951..58906c984be9 100644
--- a/drivers/net/igb/igb_ethtool.c
+++ b/drivers/net/igb/igb_ethtool.c
@@ -373,13 +373,17 @@ static void igb_get_regs(struct net_device *netdev,
373 regs_buff[12] = rd32(E1000_EECD); 373 regs_buff[12] = rd32(E1000_EECD);
374 374
375 /* Interrupt */ 375 /* Interrupt */
376 regs_buff[13] = rd32(E1000_EICR); 376 /* Reading EICS for EICR because they read the
377 * same but EICS does not clear on read */
378 regs_buff[13] = rd32(E1000_EICS);
377 regs_buff[14] = rd32(E1000_EICS); 379 regs_buff[14] = rd32(E1000_EICS);
378 regs_buff[15] = rd32(E1000_EIMS); 380 regs_buff[15] = rd32(E1000_EIMS);
379 regs_buff[16] = rd32(E1000_EIMC); 381 regs_buff[16] = rd32(E1000_EIMC);
380 regs_buff[17] = rd32(E1000_EIAC); 382 regs_buff[17] = rd32(E1000_EIAC);
381 regs_buff[18] = rd32(E1000_EIAM); 383 regs_buff[18] = rd32(E1000_EIAM);
382 regs_buff[19] = rd32(E1000_ICR); 384 /* Reading ICS for ICR because they read the
385 * same but ICS does not clear on read */
386 regs_buff[19] = rd32(E1000_ICS);
383 regs_buff[20] = rd32(E1000_ICS); 387 regs_buff[20] = rd32(E1000_ICS);
384 regs_buff[21] = rd32(E1000_IMS); 388 regs_buff[21] = rd32(E1000_IMS);
385 regs_buff[22] = rd32(E1000_IMC); 389 regs_buff[22] = rd32(E1000_IMC);
@@ -1746,15 +1750,6 @@ static int igb_wol_exclusion(struct igb_adapter *adapter,
1746 /* return success for non excluded adapter ports */ 1750 /* return success for non excluded adapter ports */
1747 retval = 0; 1751 retval = 0;
1748 break; 1752 break;
1749 case E1000_DEV_ID_82576_QUAD_COPPER:
1750 /* quad port adapters only support WoL on port A */
1751 if (!(adapter->flags & IGB_FLAG_QUAD_PORT_A)) {
1752 wol->supported = 0;
1753 break;
1754 }
1755 /* return success for non excluded adapter ports */
1756 retval = 0;
1757 break;
1758 default: 1753 default:
1759 /* dual port cards only support WoL on port A from now on 1754 /* dual port cards only support WoL on port A from now on
1760 * unless it was enabled in the eeprom for port B 1755 * unless it was enabled in the eeprom for port B
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 8f66e15ec8d6..634c4c9d87be 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -61,7 +61,6 @@ static struct pci_device_id igb_pci_tbl[] = {
61 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576), board_82575 }, 61 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576), board_82575 },
62 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 }, 62 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_FIBER), board_82575 },
63 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 }, 63 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_SERDES), board_82575 },
64 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82576_QUAD_COPPER), board_82575 },
65 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 }, 64 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_COPPER), board_82575 },
66 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 }, 65 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575EB_FIBER_SERDES), board_82575 },
67 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 }, 66 { PCI_VDEVICE(INTEL, E1000_DEV_ID_82575GB_QUAD_COPPER), board_82575 },
@@ -521,7 +520,7 @@ static void igb_set_interrupt_capability(struct igb_adapter *adapter)
521 adapter->msix_entries, 520 adapter->msix_entries,
522 numvecs); 521 numvecs);
523 if (err == 0) 522 if (err == 0)
524 return; 523 goto out;
525 524
526 igb_reset_interrupt_capability(adapter); 525 igb_reset_interrupt_capability(adapter);
527 526
@@ -531,7 +530,7 @@ msi_only:
531 adapter->num_tx_queues = 1; 530 adapter->num_tx_queues = 1;
532 if (!pci_enable_msi(adapter->pdev)) 531 if (!pci_enable_msi(adapter->pdev))
533 adapter->flags |= IGB_FLAG_HAS_MSI; 532 adapter->flags |= IGB_FLAG_HAS_MSI;
534 533out:
535 /* Notify the stack of the (possibly) reduced Tx Queue count. */ 534 /* Notify the stack of the (possibly) reduced Tx Queue count. */
536 adapter->netdev->real_num_tx_queues = adapter->num_tx_queues; 535 adapter->netdev->real_num_tx_queues = adapter->num_tx_queues;
537 return; 536 return;
@@ -1217,16 +1216,6 @@ static int __devinit igb_probe(struct pci_dev *pdev,
1217 if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1) 1216 if (rd32(E1000_STATUS) & E1000_STATUS_FUNC_1)
1218 adapter->eeprom_wol = 0; 1217 adapter->eeprom_wol = 0;
1219 break; 1218 break;
1220 case E1000_DEV_ID_82576_QUAD_COPPER:
1221 /* if quad port adapter, disable WoL on all but port A */
1222 if (global_quad_port_a != 0)
1223 adapter->eeprom_wol = 0;
1224 else
1225 adapter->flags |= IGB_FLAG_QUAD_PORT_A;
1226 /* Reset for multiple quad port adapters */
1227 if (++global_quad_port_a == 4)
1228 global_quad_port_a = 0;
1229 break;
1230 } 1219 }
1231 1220
1232 /* initialize the wol settings based on the eeprom settings */ 1221 /* initialize the wol settings based on the eeprom settings */
@@ -2290,7 +2279,9 @@ static void igb_watchdog_task(struct work_struct *work)
2290 struct igb_ring *tx_ring = adapter->tx_ring; 2279 struct igb_ring *tx_ring = adapter->tx_ring;
2291 struct e1000_mac_info *mac = &adapter->hw.mac; 2280 struct e1000_mac_info *mac = &adapter->hw.mac;
2292 u32 link; 2281 u32 link;
2282 u32 eics = 0;
2293 s32 ret_val; 2283 s32 ret_val;
2284 int i;
2294 2285
2295 if ((netif_carrier_ok(netdev)) && 2286 if ((netif_carrier_ok(netdev)) &&
2296 (rd32(E1000_STATUS) & E1000_STATUS_LU)) 2287 (rd32(E1000_STATUS) & E1000_STATUS_LU))
@@ -2392,7 +2383,13 @@ link_up:
2392 } 2383 }
2393 2384
2394 /* Cause software interrupt to ensure rx ring is cleaned */ 2385 /* Cause software interrupt to ensure rx ring is cleaned */
2395 wr32(E1000_ICS, E1000_ICS_RXDMT0); 2386 if (adapter->msix_entries) {
2387 for (i = 0; i < adapter->num_rx_queues; i++)
2388 eics |= adapter->rx_ring[i].eims_value;
2389 wr32(E1000_EICS, eics);
2390 } else {
2391 wr32(E1000_ICS, E1000_ICS_RXDMT0);
2392 }
2396 2393
2397 /* Force detection of hung controller every watchdog period */ 2394 /* Force detection of hung controller every watchdog period */
2398 tx_ring->detect_tx_hung = true; 2395 tx_ring->detect_tx_hung = true;
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
index 4aa61a1a3d55..c5b02b66f756 100644
--- a/drivers/net/irda/pxaficp_ir.c
+++ b/drivers/net/irda/pxaficp_ir.c
@@ -572,8 +572,8 @@ static void pxa_irda_startup(struct pxa_irda *si)
572 ICCR2 = ICCR2_TXP | ICCR2_TRIG_32; 572 ICCR2 = ICCR2_TXP | ICCR2_TRIG_32;
573 573
574 /* configure DMAC */ 574 /* configure DMAC */
575 DRCMR17 = si->rxdma | DRCMR_MAPVLD; 575 DRCMR(17) = si->rxdma | DRCMR_MAPVLD;
576 DRCMR18 = si->txdma | DRCMR_MAPVLD; 576 DRCMR(18) = si->txdma | DRCMR_MAPVLD;
577 577
578 /* force SIR reinitialization */ 578 /* force SIR reinitialization */
579 si->speed = 4000000; 579 si->speed = 4000000;
@@ -602,8 +602,8 @@ static void pxa_irda_shutdown(struct pxa_irda *si)
602 /* disable the STUART or FICP clocks */ 602 /* disable the STUART or FICP clocks */
603 pxa_irda_disable_clk(si); 603 pxa_irda_disable_clk(si);
604 604
605 DRCMR17 = 0; 605 DRCMR(17) = 0;
606 DRCMR18 = 0; 606 DRCMR(18) = 0;
607 607
608 local_irq_restore(flags); 608 local_irq_restore(flags);
609 609
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c
index 34bca16d48a6..a417be7f8be5 100644
--- a/drivers/net/ixgbe/ixgbe_main.c
+++ b/drivers/net/ixgbe/ixgbe_main.c
@@ -1636,16 +1636,17 @@ static void ixgbe_set_multi(struct net_device *netdev)
1636 struct ixgbe_hw *hw = &adapter->hw; 1636 struct ixgbe_hw *hw = &adapter->hw;
1637 struct dev_mc_list *mc_ptr; 1637 struct dev_mc_list *mc_ptr;
1638 u8 *mta_list; 1638 u8 *mta_list;
1639 u32 fctrl; 1639 u32 fctrl, vlnctrl;
1640 int i; 1640 int i;
1641 1641
1642 /* Check for Promiscuous and All Multicast modes */ 1642 /* Check for Promiscuous and All Multicast modes */
1643 1643
1644 fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL); 1644 fctrl = IXGBE_READ_REG(hw, IXGBE_FCTRL);
1645 vlnctrl = IXGBE_READ_REG(hw, IXGBE_VLNCTRL);
1645 1646
1646 if (netdev->flags & IFF_PROMISC) { 1647 if (netdev->flags & IFF_PROMISC) {
1647 fctrl |= (IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); 1648 fctrl |= (IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE);
1648 fctrl &= ~IXGBE_VLNCTRL_VFE; 1649 vlnctrl &= ~IXGBE_VLNCTRL_VFE;
1649 } else { 1650 } else {
1650 if (netdev->flags & IFF_ALLMULTI) { 1651 if (netdev->flags & IFF_ALLMULTI) {
1651 fctrl |= IXGBE_FCTRL_MPE; 1652 fctrl |= IXGBE_FCTRL_MPE;
@@ -1653,10 +1654,11 @@ static void ixgbe_set_multi(struct net_device *netdev)
1653 } else { 1654 } else {
1654 fctrl &= ~(IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE); 1655 fctrl &= ~(IXGBE_FCTRL_UPE | IXGBE_FCTRL_MPE);
1655 } 1656 }
1656 fctrl |= IXGBE_VLNCTRL_VFE; 1657 vlnctrl |= IXGBE_VLNCTRL_VFE;
1657 } 1658 }
1658 1659
1659 IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl); 1660 IXGBE_WRITE_REG(hw, IXGBE_FCTRL, fctrl);
1661 IXGBE_WRITE_REG(hw, IXGBE_VLNCTRL, vlnctrl);
1660 1662
1661 if (netdev->mc_count) { 1663 if (netdev->mc_count) {
1662 mta_list = kcalloc(netdev->mc_count, ETH_ALEN, GFP_ATOMIC); 1664 mta_list = kcalloc(netdev->mc_count, ETH_ALEN, GFP_ATOMIC);
@@ -2302,6 +2304,12 @@ static int __devinit ixgbe_set_interrupt_capability(struct ixgbe_adapter
2302 int vector, v_budget; 2304 int vector, v_budget;
2303 2305
2304 /* 2306 /*
2307 * Set the default interrupt throttle rate.
2308 */
2309 adapter->rx_eitr = (1000000 / IXGBE_DEFAULT_ITR_RX_USECS);
2310 adapter->tx_eitr = (1000000 / IXGBE_DEFAULT_ITR_TX_USECS);
2311
2312 /*
2305 * It's easy to be greedy for MSI-X vectors, but it really 2313 * It's easy to be greedy for MSI-X vectors, but it really
2306 * doesn't do us much good if we have a lot more vectors 2314 * doesn't do us much good if we have a lot more vectors
2307 * than CPU's. So let's be conservative and only ask for 2315 * than CPU's. So let's be conservative and only ask for
diff --git a/drivers/net/mv643xx_eth.c b/drivers/net/mv643xx_eth.c
index 46819af3b062..0a18b9e96da1 100644
--- a/drivers/net/mv643xx_eth.c
+++ b/drivers/net/mv643xx_eth.c
@@ -55,7 +55,7 @@
55#include <asm/system.h> 55#include <asm/system.h>
56 56
57static char mv643xx_eth_driver_name[] = "mv643xx_eth"; 57static char mv643xx_eth_driver_name[] = "mv643xx_eth";
58static char mv643xx_eth_driver_version[] = "1.2"; 58static char mv643xx_eth_driver_version[] = "1.3";
59 59
60#define MV643XX_ETH_CHECKSUM_OFFLOAD_TX 60#define MV643XX_ETH_CHECKSUM_OFFLOAD_TX
61#define MV643XX_ETH_NAPI 61#define MV643XX_ETH_NAPI
@@ -474,11 +474,19 @@ static void rxq_refill(struct rx_queue *rxq)
474 /* 474 /*
475 * Reserve 2+14 bytes for an ethernet header (the 475 * Reserve 2+14 bytes for an ethernet header (the
476 * hardware automatically prepends 2 bytes of dummy 476 * hardware automatically prepends 2 bytes of dummy
477 * data to each received packet), 4 bytes for a VLAN 477 * data to each received packet), 16 bytes for up to
478 * header, and 4 bytes for the trailing FCS -- 24 478 * four VLAN tags, and 4 bytes for the trailing FCS
479 * bytes total. 479 * -- 36 bytes total.
480 */ 480 */
481 skb_size = mp->dev->mtu + 24; 481 skb_size = mp->dev->mtu + 36;
482
483 /*
484 * Make sure that the skb size is a multiple of 8
485 * bytes, as the lower three bits of the receive
486 * descriptor's buffer size field are ignored by
487 * the hardware.
488 */
489 skb_size = (skb_size + 7) & ~7;
482 490
483 skb = dev_alloc_skb(skb_size + dma_get_cache_alignment() - 1); 491 skb = dev_alloc_skb(skb_size + dma_get_cache_alignment() - 1);
484 if (skb == NULL) 492 if (skb == NULL)
@@ -509,10 +517,8 @@ static void rxq_refill(struct rx_queue *rxq)
509 skb_reserve(skb, 2); 517 skb_reserve(skb, 2);
510 } 518 }
511 519
512 if (rxq->rx_desc_count != rxq->rx_ring_size) { 520 if (rxq->rx_desc_count != rxq->rx_ring_size)
513 rxq->rx_oom.expires = jiffies + (HZ / 10); 521 mod_timer(&rxq->rx_oom, jiffies + (HZ / 10));
514 add_timer(&rxq->rx_oom);
515 }
516 522
517 spin_unlock_irqrestore(&mp->lock, flags); 523 spin_unlock_irqrestore(&mp->lock, flags);
518} 524}
@@ -529,7 +535,7 @@ static int rxq_process(struct rx_queue *rxq, int budget)
529 int rx; 535 int rx;
530 536
531 rx = 0; 537 rx = 0;
532 while (rx < budget) { 538 while (rx < budget && rxq->rx_desc_count) {
533 struct rx_desc *rx_desc; 539 struct rx_desc *rx_desc;
534 unsigned int cmd_sts; 540 unsigned int cmd_sts;
535 struct sk_buff *skb; 541 struct sk_buff *skb;
@@ -554,7 +560,7 @@ static int rxq_process(struct rx_queue *rxq, int budget)
554 spin_unlock_irqrestore(&mp->lock, flags); 560 spin_unlock_irqrestore(&mp->lock, flags);
555 561
556 dma_unmap_single(NULL, rx_desc->buf_ptr + 2, 562 dma_unmap_single(NULL, rx_desc->buf_ptr + 2,
557 mp->dev->mtu + 24, DMA_FROM_DEVICE); 563 rx_desc->buf_size, DMA_FROM_DEVICE);
558 rxq->rx_desc_count--; 564 rxq->rx_desc_count--;
559 rx++; 565 rx++;
560 566
@@ -636,9 +642,9 @@ static int mv643xx_eth_poll(struct napi_struct *napi, int budget)
636 txq_reclaim(mp->txq + i, 0); 642 txq_reclaim(mp->txq + i, 0);
637 643
638 if (netif_carrier_ok(mp->dev)) { 644 if (netif_carrier_ok(mp->dev)) {
639 spin_lock(&mp->lock); 645 spin_lock_irq(&mp->lock);
640 __txq_maybe_wake(mp->txq + mp->txq_primary); 646 __txq_maybe_wake(mp->txq + mp->txq_primary);
641 spin_unlock(&mp->lock); 647 spin_unlock_irq(&mp->lock);
642 } 648 }
643 } 649 }
644#endif 650#endif
@@ -650,8 +656,6 @@ static int mv643xx_eth_poll(struct napi_struct *napi, int budget)
650 656
651 if (rx < budget) { 657 if (rx < budget) {
652 netif_rx_complete(mp->dev, napi); 658 netif_rx_complete(mp->dev, napi);
653 wrl(mp, INT_CAUSE(mp->port_num), 0);
654 wrl(mp, INT_CAUSE_EXT(mp->port_num), 0);
655 wrl(mp, INT_MASK(mp->port_num), INT_TX_END | INT_RX | INT_EXT); 659 wrl(mp, INT_MASK(mp->port_num), INT_TX_END | INT_RX | INT_EXT);
656 } 660 }
657 661
@@ -1796,6 +1800,7 @@ static irqreturn_t mv643xx_eth_irq(int irq, void *dev_id)
1796 */ 1800 */
1797#ifdef MV643XX_ETH_NAPI 1801#ifdef MV643XX_ETH_NAPI
1798 if (int_cause & INT_RX) { 1802 if (int_cause & INT_RX) {
1803 wrl(mp, INT_CAUSE(mp->port_num), ~(int_cause & INT_RX));
1799 wrl(mp, INT_MASK(mp->port_num), 0x00000000); 1804 wrl(mp, INT_MASK(mp->port_num), 0x00000000);
1800 rdl(mp, INT_MASK(mp->port_num)); 1805 rdl(mp, INT_MASK(mp->port_num));
1801 1806
diff --git a/drivers/net/myri10ge/myri10ge.c b/drivers/net/myri10ge/myri10ge.c
index 54cd89cb0838..d6524db321af 100644
--- a/drivers/net/myri10ge/myri10ge.c
+++ b/drivers/net/myri10ge/myri10ge.c
@@ -75,7 +75,7 @@
75#include "myri10ge_mcp.h" 75#include "myri10ge_mcp.h"
76#include "myri10ge_mcp_gen_header.h" 76#include "myri10ge_mcp_gen_header.h"
77 77
78#define MYRI10GE_VERSION_STR "1.3.99-1.347" 78#define MYRI10GE_VERSION_STR "1.4.3-1.358"
79 79
80MODULE_DESCRIPTION("Myricom 10G driver (10GbE)"); 80MODULE_DESCRIPTION("Myricom 10G driver (10GbE)");
81MODULE_AUTHOR("Maintainer: help@myri.com"); 81MODULE_AUTHOR("Maintainer: help@myri.com");
diff --git a/drivers/net/netxen/netxen_nic_main.c b/drivers/net/netxen/netxen_nic_main.c
index 32bb47adbe39..008fd6618a5f 100644
--- a/drivers/net/netxen/netxen_nic_main.c
+++ b/drivers/net/netxen/netxen_nic_main.c
@@ -359,16 +359,6 @@ static void netxen_pcie_strap_init(struct netxen_adapter *adapter)
359 int i, pos; 359 int i, pos;
360 struct pci_dev *pdev; 360 struct pci_dev *pdev;
361 361
362 pdev = pci_get_device(0x1166, 0x0140, NULL);
363 if (pdev) {
364 pci_dev_put(pdev);
365 adapter->hw_read_wx(adapter,
366 NETXEN_PCIE_REG(PCIE_TGT_SPLIT_CHICKEN), &chicken, 4);
367 chicken |= 0x4000;
368 adapter->hw_write_wx(adapter,
369 NETXEN_PCIE_REG(PCIE_TGT_SPLIT_CHICKEN), &chicken, 4);
370 }
371
372 pdev = adapter->pdev; 362 pdev = adapter->pdev;
373 363
374 adapter->hw_read_wx(adapter, 364 adapter->hw_read_wx(adapter,
diff --git a/drivers/net/niu.c b/drivers/net/niu.c
index e4765b713aba..e3be81eba8a4 100644
--- a/drivers/net/niu.c
+++ b/drivers/net/niu.c
@@ -5984,6 +5984,56 @@ static void niu_netif_start(struct niu *np)
5984 niu_enable_interrupts(np, 1); 5984 niu_enable_interrupts(np, 1);
5985} 5985}
5986 5986
5987static void niu_reset_buffers(struct niu *np)
5988{
5989 int i, j, k, err;
5990
5991 if (np->rx_rings) {
5992 for (i = 0; i < np->num_rx_rings; i++) {
5993 struct rx_ring_info *rp = &np->rx_rings[i];
5994
5995 for (j = 0, k = 0; j < MAX_RBR_RING_SIZE; j++) {
5996 struct page *page;
5997
5998 page = rp->rxhash[j];
5999 while (page) {
6000 struct page *next =
6001 (struct page *) page->mapping;
6002 u64 base = page->index;
6003 base = base >> RBR_DESCR_ADDR_SHIFT;
6004 rp->rbr[k++] = cpu_to_le32(base);
6005 page = next;
6006 }
6007 }
6008 for (; k < MAX_RBR_RING_SIZE; k++) {
6009 err = niu_rbr_add_page(np, rp, GFP_ATOMIC, k);
6010 if (unlikely(err))
6011 break;
6012 }
6013
6014 rp->rbr_index = rp->rbr_table_size - 1;
6015 rp->rcr_index = 0;
6016 rp->rbr_pending = 0;
6017 rp->rbr_refill_pending = 0;
6018 }
6019 }
6020 if (np->tx_rings) {
6021 for (i = 0; i < np->num_tx_rings; i++) {
6022 struct tx_ring_info *rp = &np->tx_rings[i];
6023
6024 for (j = 0; j < MAX_TX_RING_SIZE; j++) {
6025 if (rp->tx_buffs[j].skb)
6026 (void) release_tx_packet(np, rp, j);
6027 }
6028
6029 rp->pending = MAX_TX_RING_SIZE;
6030 rp->prod = 0;
6031 rp->cons = 0;
6032 rp->wrap_bit = 0;
6033 }
6034 }
6035}
6036
5987static void niu_reset_task(struct work_struct *work) 6037static void niu_reset_task(struct work_struct *work)
5988{ 6038{
5989 struct niu *np = container_of(work, struct niu, reset_task); 6039 struct niu *np = container_of(work, struct niu, reset_task);
@@ -6006,6 +6056,12 @@ static void niu_reset_task(struct work_struct *work)
6006 6056
6007 niu_stop_hw(np); 6057 niu_stop_hw(np);
6008 6058
6059 spin_unlock_irqrestore(&np->lock, flags);
6060
6061 niu_reset_buffers(np);
6062
6063 spin_lock_irqsave(&np->lock, flags);
6064
6009 err = niu_init_hw(np); 6065 err = niu_init_hw(np);
6010 if (!err) { 6066 if (!err) {
6011 np->timer.expires = jiffies + HZ; 6067 np->timer.expires = jiffies + HZ;
diff --git a/drivers/net/pcmcia/axnet_cs.c b/drivers/net/pcmcia/axnet_cs.c
index 3f682d49a4e6..52bf11b73c6e 100644
--- a/drivers/net/pcmcia/axnet_cs.c
+++ b/drivers/net/pcmcia/axnet_cs.c
@@ -784,6 +784,7 @@ static struct pcmcia_device_id axnet_ids[] = {
784 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEther PCC-TXD", 0x5261440f, 0x436768c5), 784 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEther PCC-TXD", 0x5261440f, 0x436768c5),
785 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEtherII PCC-TXD", 0x5261440f, 0x730df72e), 785 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FEtherII PCC-TXD", 0x5261440f, 0x730df72e),
786 PCMCIA_DEVICE_PROD_ID12("Dynalink", "L100C16", 0x55632fd5, 0x66bc2a90), 786 PCMCIA_DEVICE_PROD_ID12("Dynalink", "L100C16", 0x55632fd5, 0x66bc2a90),
787 PCMCIA_DEVICE_PROD_ID12("IO DATA", "ETXPCM", 0x547e66dc, 0x233adac2),
787 PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V3)", 0x0733cc81, 0x232019a8), 788 PCMCIA_DEVICE_PROD_ID12("Linksys", "EtherFast 10/100 PC Card (PCMPC100 V3)", 0x0733cc81, 0x232019a8),
788 PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC3-TX", 0x481e0094, 0xf91af609), 789 PCMCIA_DEVICE_PROD_ID12("MELCO", "LPC3-TX", 0x481e0094, 0xf91af609),
789 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "100BASE", 0x281f1c5d, 0x7c2add04), 790 PCMCIA_DEVICE_PROD_ID12("PCMCIA", "100BASE", 0x281f1c5d, 0x7c2add04),
diff --git a/drivers/net/pcmcia/pcnet_cs.c b/drivers/net/pcmcia/pcnet_cs.c
index 2d4c4ad89b8d..ebc1ae6bcbe5 100644
--- a/drivers/net/pcmcia/pcnet_cs.c
+++ b/drivers/net/pcmcia/pcnet_cs.c
@@ -1626,6 +1626,7 @@ static struct pcmcia_device_id pcnet_ids[] = {
1626 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega EtherII PCC-TD", 0x5261440f, 0xc49bd73d), 1626 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega EtherII PCC-TD", 0x5261440f, 0xc49bd73d),
1627 PCMCIA_DEVICE_PROD_ID12("Corega K.K.", "corega EtherII PCC-TD", 0xd4fdcbd8, 0xc49bd73d), 1627 PCMCIA_DEVICE_PROD_ID12("Corega K.K.", "corega EtherII PCC-TD", 0xd4fdcbd8, 0xc49bd73d),
1628 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega Ether PCC-T", 0x5261440f, 0x6705fcaa), 1628 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega Ether PCC-T", 0x5261440f, 0x6705fcaa),
1629 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega Ether PCC-TD", 0x5261440f, 0x47d5ca83),
1629 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FastEther PCC-TX", 0x5261440f, 0x485e85d9), 1630 PCMCIA_DEVICE_PROD_ID12("corega K.K.", "corega FastEther PCC-TX", 0x5261440f, 0x485e85d9),
1630 PCMCIA_DEVICE_PROD_ID12("Corega,K.K.", "Ethernet LAN Card", 0x110d26d9, 0x9fd2f0a2), 1631 PCMCIA_DEVICE_PROD_ID12("Corega,K.K.", "Ethernet LAN Card", 0x110d26d9, 0x9fd2f0a2),
1631 PCMCIA_DEVICE_PROD_ID12("corega,K.K.", "Ethernet LAN Card", 0x9791a90e, 0x9fd2f0a2), 1632 PCMCIA_DEVICE_PROD_ID12("corega,K.K.", "Ethernet LAN Card", 0x9791a90e, 0x9fd2f0a2),
@@ -1737,7 +1738,6 @@ static struct pcmcia_device_id pcnet_ids[] = {
1737 PCMCIA_DEVICE_PROD_ID1("CyQ've 10 Base-T LAN CARD", 0x94faf360), 1738 PCMCIA_DEVICE_PROD_ID1("CyQ've 10 Base-T LAN CARD", 0x94faf360),
1738 PCMCIA_DEVICE_PROD_ID1("EP-210 PCMCIA LAN CARD.", 0x8850b4de), 1739 PCMCIA_DEVICE_PROD_ID1("EP-210 PCMCIA LAN CARD.", 0x8850b4de),
1739 PCMCIA_DEVICE_PROD_ID1("ETHER-C16", 0x06a8514f), 1740 PCMCIA_DEVICE_PROD_ID1("ETHER-C16", 0x06a8514f),
1740 PCMCIA_DEVICE_PROD_ID1("IC-CARD", 0x60cb09a6),
1741 PCMCIA_DEVICE_PROD_ID1("NE2000 Compatible", 0x75b8ad5a), 1741 PCMCIA_DEVICE_PROD_ID1("NE2000 Compatible", 0x75b8ad5a),
1742 PCMCIA_DEVICE_PROD_ID2("EN-6200P2", 0xa996d078), 1742 PCMCIA_DEVICE_PROD_ID2("EN-6200P2", 0xa996d078),
1743 /* too generic! */ 1743 /* too generic! */
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index a3e3895e5032..0f6f9747d255 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -2792,7 +2792,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev,
2792 pkt_size, PCI_DMA_FROMDEVICE); 2792 pkt_size, PCI_DMA_FROMDEVICE);
2793 rtl8169_mark_to_asic(desc, tp->rx_buf_sz); 2793 rtl8169_mark_to_asic(desc, tp->rx_buf_sz);
2794 } else { 2794 } else {
2795 pci_unmap_single(pdev, addr, pkt_size, 2795 pci_unmap_single(pdev, addr, tp->rx_buf_sz,
2796 PCI_DMA_FROMDEVICE); 2796 PCI_DMA_FROMDEVICE);
2797 tp->Rx_skbuff[entry] = NULL; 2797 tp->Rx_skbuff[entry] = NULL;
2798 } 2798 }
diff --git a/drivers/net/skfp/ess.c b/drivers/net/skfp/ess.c
index 889f98724610..a85efcfd9d0e 100644
--- a/drivers/net/skfp/ess.c
+++ b/drivers/net/skfp/ess.c
@@ -510,7 +510,7 @@ static void ess_send_response(struct s_smc *smc, struct smt_header *sm,
510 chg->path.para.p_type = SMT_P320B ; 510 chg->path.para.p_type = SMT_P320B ;
511 chg->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ; 511 chg->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ;
512 chg->path.mib_index = SBAPATHINDEX ; 512 chg->path.mib_index = SBAPATHINDEX ;
513 chg->path.path_pad = (u_short)NULL ; 513 chg->path.path_pad = 0;
514 chg->path.path_index = PRIMARY_RING ; 514 chg->path.path_index = PRIMARY_RING ;
515 515
516 /* set P320F */ 516 /* set P320F */
@@ -606,7 +606,7 @@ static void ess_send_alc_req(struct s_smc *smc)
606 req->path.para.p_type = SMT_P320B ; 606 req->path.para.p_type = SMT_P320B ;
607 req->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ; 607 req->path.para.p_len = sizeof(struct smt_p_320b) - PARA_LEN ;
608 req->path.mib_index = SBAPATHINDEX ; 608 req->path.mib_index = SBAPATHINDEX ;
609 req->path.path_pad = (u_short)NULL ; 609 req->path.path_pad = 0;
610 req->path.path_index = PRIMARY_RING ; 610 req->path.path_index = PRIMARY_RING ;
611 611
612 /* set P0017 */ 612 /* set P0017 */
@@ -636,7 +636,7 @@ static void ess_send_alc_req(struct s_smc *smc)
636 /* set P19 */ 636 /* set P19 */
637 req->a_addr.para.p_type = SMT_P0019 ; 637 req->a_addr.para.p_type = SMT_P0019 ;
638 req->a_addr.para.p_len = sizeof(struct smt_p_0019) - PARA_LEN ; 638 req->a_addr.para.p_len = sizeof(struct smt_p_0019) - PARA_LEN ;
639 req->a_addr.sba_pad = (u_short)NULL ; 639 req->a_addr.sba_pad = 0;
640 req->a_addr.alloc_addr = null_addr ; 640 req->a_addr.alloc_addr = null_addr ;
641 641
642 /* set P1A */ 642 /* set P1A */
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index 2040965d7724..e332a518efe8 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -1520,7 +1520,9 @@ smc_open(struct net_device *dev)
1520 /* Setup the default Register Modes */ 1520 /* Setup the default Register Modes */
1521 lp->tcr_cur_mode = TCR_DEFAULT; 1521 lp->tcr_cur_mode = TCR_DEFAULT;
1522 lp->rcr_cur_mode = RCR_DEFAULT; 1522 lp->rcr_cur_mode = RCR_DEFAULT;
1523 lp->rpc_cur_mode = RPC_DEFAULT; 1523 lp->rpc_cur_mode = RPC_DEFAULT |
1524 lp->cfg.leda << RPC_LSXA_SHFT |
1525 lp->cfg.ledb << RPC_LSXB_SHFT;
1524 1526
1525 /* 1527 /*
1526 * If we are not using a MII interface, we need to 1528 * If we are not using a MII interface, we need to
@@ -2157,6 +2159,11 @@ static int smc_drv_probe(struct platform_device *pdev)
2157 lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0; 2159 lp->cfg.flags |= (nowait) ? SMC91X_NOWAIT : 0;
2158 } 2160 }
2159 2161
2162 if (!lp->cfg.leda && !lp->cfg.ledb) {
2163 lp->cfg.leda = RPC_LSA_DEFAULT;
2164 lp->cfg.ledb = RPC_LSB_DEFAULT;
2165 }
2166
2160 ndev->dma = (unsigned char)-1; 2167 ndev->dma = (unsigned char)-1;
2161 2168
2162 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs"); 2169 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs");
@@ -2255,7 +2262,7 @@ static int smc_drv_remove(struct platform_device *pdev)
2255 2262
2256 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs"); 2263 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "smc91x-regs");
2257 if (!res) 2264 if (!res)
2258 platform_get_resource(pdev, IORESOURCE_MEM, 0); 2265 res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
2259 release_mem_region(res->start, SMC_IO_EXTENT); 2266 release_mem_region(res->start, SMC_IO_EXTENT);
2260 2267
2261 free_netdev(ndev); 2268 free_netdev(ndev);
diff --git a/drivers/net/smc91x.h b/drivers/net/smc91x.h
index 997e7f1d5c6e..160873f0a817 100644
--- a/drivers/net/smc91x.h
+++ b/drivers/net/smc91x.h
@@ -43,7 +43,8 @@
43#if defined(CONFIG_ARCH_LUBBOCK) ||\ 43#if defined(CONFIG_ARCH_LUBBOCK) ||\
44 defined(CONFIG_MACH_MAINSTONE) ||\ 44 defined(CONFIG_MACH_MAINSTONE) ||\
45 defined(CONFIG_MACH_ZYLONITE) ||\ 45 defined(CONFIG_MACH_ZYLONITE) ||\
46 defined(CONFIG_MACH_LITTLETON) 46 defined(CONFIG_MACH_LITTLETON) ||\
47 defined(CONFIG_ARCH_VIPER)
47 48
48#include <asm/mach-types.h> 49#include <asm/mach-types.h>
49 50
@@ -778,14 +779,6 @@ smc_pxa_dma_irq(int dma, void *dummy)
778#define RPC_ANEG 0x0800 // When 1 PHY is in Auto-Negotiate Mode 779#define RPC_ANEG 0x0800 // When 1 PHY is in Auto-Negotiate Mode
779#define RPC_LSXA_SHFT 5 // Bits to shift LS2A,LS1A,LS0A to lsb 780#define RPC_LSXA_SHFT 5 // Bits to shift LS2A,LS1A,LS0A to lsb
780#define RPC_LSXB_SHFT 2 // Bits to get LS2B,LS1B,LS0B to lsb 781#define RPC_LSXB_SHFT 2 // Bits to get LS2B,LS1B,LS0B to lsb
781#define RPC_LED_100_10 (0x00) // LED = 100Mbps OR's with 10Mbps link detect
782#define RPC_LED_RES (0x01) // LED = Reserved
783#define RPC_LED_10 (0x02) // LED = 10Mbps link detect
784#define RPC_LED_FD (0x03) // LED = Full Duplex Mode
785#define RPC_LED_TX_RX (0x04) // LED = TX or RX packet occurred
786#define RPC_LED_100 (0x05) // LED = 100Mbps link dectect
787#define RPC_LED_TX (0x06) // LED = TX packet occurred
788#define RPC_LED_RX (0x07) // LED = RX packet occurred
789 782
790#ifndef RPC_LSA_DEFAULT 783#ifndef RPC_LSA_DEFAULT
791#define RPC_LSA_DEFAULT RPC_LED_100 784#define RPC_LSA_DEFAULT RPC_LED_100
@@ -794,7 +787,7 @@ smc_pxa_dma_irq(int dma, void *dummy)
794#define RPC_LSB_DEFAULT RPC_LED_FD 787#define RPC_LSB_DEFAULT RPC_LED_FD
795#endif 788#endif
796 789
797#define RPC_DEFAULT (RPC_ANEG | (RPC_LSA_DEFAULT << RPC_LSXA_SHFT) | (RPC_LSB_DEFAULT << RPC_LSXB_SHFT) | RPC_SPEED | RPC_DPLX) 790#define RPC_DEFAULT (RPC_ANEG | RPC_SPEED | RPC_DPLX)
798 791
799 792
800/* Bank 0 0x0C is reserved */ 793/* Bank 0 0x0C is reserved */
diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
index 1b7cac77159e..6e42b5a8c22b 100644
--- a/drivers/net/usb/hso.c
+++ b/drivers/net/usb/hso.c
@@ -397,7 +397,7 @@ static const struct usb_device_id hso_ids[] = {
397 {default_port_device(0x0af0, 0xc031)}, /* Icon-Edge */ 397 {default_port_device(0x0af0, 0xc031)}, /* Icon-Edge */
398 {icon321_port_device(0x0af0, 0xd013)}, /* Module HSxPA */ 398 {icon321_port_device(0x0af0, 0xd013)}, /* Module HSxPA */
399 {icon321_port_device(0x0af0, 0xd031)}, /* Icon-321 */ 399 {icon321_port_device(0x0af0, 0xd031)}, /* Icon-321 */
400 {default_port_device(0x0af0, 0xd033)}, /* Icon-322 */ 400 {icon321_port_device(0x0af0, 0xd033)}, /* Icon-322 */
401 {USB_DEVICE(0x0af0, 0x7301)}, /* GE40x */ 401 {USB_DEVICE(0x0af0, 0x7301)}, /* GE40x */
402 {USB_DEVICE(0x0af0, 0x7361)}, /* GE40x */ 402 {USB_DEVICE(0x0af0, 0x7361)}, /* GE40x */
403 {USB_DEVICE(0x0af0, 0x7401)}, /* GI 0401 */ 403 {USB_DEVICE(0x0af0, 0x7401)}, /* GI 0401 */
@@ -2613,6 +2613,7 @@ static int hso_resume(struct usb_interface *iface)
2613 "Transmitting lingering data\n"); 2613 "Transmitting lingering data\n");
2614 hso_net_start_xmit(hso_net->skb_tx_buf, 2614 hso_net_start_xmit(hso_net->skb_tx_buf,
2615 hso_net->net); 2615 hso_net->net);
2616 hso_net->skb_tx_buf = NULL;
2616 } 2617 }
2617 result = hso_start_net_device(network_table[i]); 2618 result = hso_start_net_device(network_table[i]);
2618 if (result) 2619 if (result)
diff --git a/drivers/net/usb/mcs7830.c b/drivers/net/usb/mcs7830.c
index c3d119f997f5..ca9d00c1194e 100644
--- a/drivers/net/usb/mcs7830.c
+++ b/drivers/net/usb/mcs7830.c
@@ -46,6 +46,10 @@
46 46
47#define MCS7830_VENDOR_ID 0x9710 47#define MCS7830_VENDOR_ID 0x9710
48#define MCS7830_PRODUCT_ID 0x7830 48#define MCS7830_PRODUCT_ID 0x7830
49#define MCS7730_PRODUCT_ID 0x7730
50
51#define SITECOM_VENDOR_ID 0x0DF6
52#define LN_030_PRODUCT_ID 0x0021
49 53
50#define MCS7830_MII_ADVERTISE (ADVERTISE_PAUSE_CAP | ADVERTISE_100FULL | \ 54#define MCS7830_MII_ADVERTISE (ADVERTISE_PAUSE_CAP | ADVERTISE_100FULL | \
51 ADVERTISE_100HALF | ADVERTISE_10FULL | \ 55 ADVERTISE_100HALF | ADVERTISE_10FULL | \
@@ -442,6 +446,29 @@ static struct ethtool_ops mcs7830_ethtool_ops = {
442 .nway_reset = usbnet_nway_reset, 446 .nway_reset = usbnet_nway_reset,
443}; 447};
444 448
449static int mcs7830_set_mac_address(struct net_device *netdev, void *p)
450{
451 int ret;
452 struct usbnet *dev = netdev_priv(netdev);
453 struct sockaddr *addr = p;
454
455 if (netif_running(netdev))
456 return -EBUSY;
457
458 if (!is_valid_ether_addr(addr->sa_data))
459 return -EINVAL;
460
461 memcpy(netdev->dev_addr, addr->sa_data, netdev->addr_len);
462
463 ret = mcs7830_set_reg(dev, HIF_REG_ETHERNET_ADDR, ETH_ALEN,
464 netdev->dev_addr);
465
466 if (ret < 0)
467 return ret;
468
469 return 0;
470}
471
445static int mcs7830_bind(struct usbnet *dev, struct usb_interface *udev) 472static int mcs7830_bind(struct usbnet *dev, struct usb_interface *udev)
446{ 473{
447 struct net_device *net = dev->net; 474 struct net_device *net = dev->net;
@@ -455,6 +482,7 @@ static int mcs7830_bind(struct usbnet *dev, struct usb_interface *udev)
455 net->ethtool_ops = &mcs7830_ethtool_ops; 482 net->ethtool_ops = &mcs7830_ethtool_ops;
456 net->set_multicast_list = mcs7830_set_multicast; 483 net->set_multicast_list = mcs7830_set_multicast;
457 mcs7830_set_multicast(net); 484 mcs7830_set_multicast(net);
485 net->set_mac_address = mcs7830_set_mac_address;
458 486
459 /* reserve space for the status byte on rx */ 487 /* reserve space for the status byte on rx */
460 dev->rx_urb_size = ETH_FRAME_LEN + 1; 488 dev->rx_urb_size = ETH_FRAME_LEN + 1;
@@ -491,7 +519,16 @@ static int mcs7830_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
491} 519}
492 520
493static const struct driver_info moschip_info = { 521static const struct driver_info moschip_info = {
494 .description = "MOSCHIP 7830 usb-NET adapter", 522 .description = "MOSCHIP 7830/7730 usb-NET adapter",
523 .bind = mcs7830_bind,
524 .rx_fixup = mcs7830_rx_fixup,
525 .flags = FLAG_ETHER,
526 .in = 1,
527 .out = 2,
528};
529
530static const struct driver_info sitecom_info = {
531 .description = "Sitecom LN-30 usb-NET adapter",
495 .bind = mcs7830_bind, 532 .bind = mcs7830_bind,
496 .rx_fixup = mcs7830_rx_fixup, 533 .rx_fixup = mcs7830_rx_fixup,
497 .flags = FLAG_ETHER, 534 .flags = FLAG_ETHER,
@@ -504,6 +541,14 @@ static const struct usb_device_id products[] = {
504 USB_DEVICE(MCS7830_VENDOR_ID, MCS7830_PRODUCT_ID), 541 USB_DEVICE(MCS7830_VENDOR_ID, MCS7830_PRODUCT_ID),
505 .driver_info = (unsigned long) &moschip_info, 542 .driver_info = (unsigned long) &moschip_info,
506 }, 543 },
544 {
545 USB_DEVICE(MCS7830_VENDOR_ID, MCS7730_PRODUCT_ID),
546 .driver_info = (unsigned long) &moschip_info,
547 },
548 {
549 USB_DEVICE(SITECOM_VENDOR_ID, LN_030_PRODUCT_ID),
550 .driver_info = (unsigned long) &sitecom_info,
551 },
507 {}, 552 {},
508}; 553};
509MODULE_DEVICE_TABLE(usb, products); 554MODULE_DEVICE_TABLE(usb, products);
diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c
index a84ba487c713..8c19307e5040 100644
--- a/drivers/net/usb/pegasus.c
+++ b/drivers/net/usb/pegasus.c
@@ -117,7 +117,7 @@ static void ctrl_callback(struct urb *urb)
117 case -ENOENT: 117 case -ENOENT:
118 break; 118 break;
119 default: 119 default:
120 if (netif_msg_drv(pegasus)) 120 if (netif_msg_drv(pegasus) && printk_ratelimit())
121 dev_dbg(&pegasus->intf->dev, "%s, status %d\n", 121 dev_dbg(&pegasus->intf->dev, "%s, status %d\n",
122 __FUNCTION__, urb->status); 122 __FUNCTION__, urb->status);
123 } 123 }
@@ -166,7 +166,7 @@ static int get_registers(pegasus_t * pegasus, __u16 indx, __u16 size,
166 set_current_state(TASK_RUNNING); 166 set_current_state(TASK_RUNNING);
167 if (ret == -ENODEV) 167 if (ret == -ENODEV)
168 netif_device_detach(pegasus->net); 168 netif_device_detach(pegasus->net);
169 if (netif_msg_drv(pegasus)) 169 if (netif_msg_drv(pegasus) && printk_ratelimit())
170 dev_err(&pegasus->intf->dev, "%s, status %d\n", 170 dev_err(&pegasus->intf->dev, "%s, status %d\n",
171 __FUNCTION__, ret); 171 __FUNCTION__, ret);
172 goto out; 172 goto out;
@@ -275,7 +275,7 @@ static int set_register(pegasus_t * pegasus, __u16 indx, __u8 data)
275 if ((ret = usb_submit_urb(pegasus->ctrl_urb, GFP_ATOMIC))) { 275 if ((ret = usb_submit_urb(pegasus->ctrl_urb, GFP_ATOMIC))) {
276 if (ret == -ENODEV) 276 if (ret == -ENODEV)
277 netif_device_detach(pegasus->net); 277 netif_device_detach(pegasus->net);
278 if (netif_msg_drv(pegasus)) 278 if (netif_msg_drv(pegasus) && printk_ratelimit())
279 dev_err(&pegasus->intf->dev, "%s, status %d\n", 279 dev_err(&pegasus->intf->dev, "%s, status %d\n",
280 __FUNCTION__, ret); 280 __FUNCTION__, ret);
281 goto out; 281 goto out;
@@ -1209,8 +1209,7 @@ static void pegasus_set_multicast(struct net_device *net)
1209 pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS; 1209 pegasus->eth_regs[EthCtrl2] |= RX_PROMISCUOUS;
1210 if (netif_msg_link(pegasus)) 1210 if (netif_msg_link(pegasus))
1211 pr_info("%s: Promiscuous mode enabled.\n", net->name); 1211 pr_info("%s: Promiscuous mode enabled.\n", net->name);
1212 } else if (net->mc_count || 1212 } else if (net->mc_count || (net->flags & IFF_ALLMULTI)) {
1213 (net->flags & IFF_ALLMULTI)) {
1214 pegasus->eth_regs[EthCtrl0] |= RX_MULTICAST; 1213 pegasus->eth_regs[EthCtrl0] |= RX_MULTICAST;
1215 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS; 1214 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
1216 if (netif_msg_link(pegasus)) 1215 if (netif_msg_link(pegasus))
@@ -1220,6 +1219,8 @@ static void pegasus_set_multicast(struct net_device *net)
1220 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS; 1219 pegasus->eth_regs[EthCtrl2] &= ~RX_PROMISCUOUS;
1221 } 1220 }
1222 1221
1222 pegasus->ctrl_urb->status = 0;
1223
1223 pegasus->flags |= ETH_REGS_CHANGE; 1224 pegasus->flags |= ETH_REGS_CHANGE;
1224 ctrl_callback(pegasus->ctrl_urb); 1225 ctrl_callback(pegasus->ctrl_urb);
1225} 1226}
diff --git a/drivers/net/wan/sbni.c b/drivers/net/wan/sbni.c
index e59255a155a9..6596cd0742b9 100644
--- a/drivers/net/wan/sbni.c
+++ b/drivers/net/wan/sbni.c
@@ -1317,7 +1317,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1317 break; 1317 break;
1318 1318
1319 case SIOCDEVRESINSTATS : 1319 case SIOCDEVRESINSTATS :
1320 if( current->euid != 0 ) /* root only */ 1320 if (!capable(CAP_NET_ADMIN))
1321 return -EPERM; 1321 return -EPERM;
1322 memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) ); 1322 memset( &nl->in_stats, 0, sizeof(struct sbni_in_stats) );
1323 break; 1323 break;
@@ -1334,7 +1334,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1334 break; 1334 break;
1335 1335
1336 case SIOCDEVSHWSTATE : 1336 case SIOCDEVSHWSTATE :
1337 if( current->euid != 0 ) /* root only */ 1337 if (!capable(CAP_NET_ADMIN))
1338 return -EPERM; 1338 return -EPERM;
1339 1339
1340 spin_lock( &nl->lock ); 1340 spin_lock( &nl->lock );
@@ -1355,7 +1355,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1355#ifdef CONFIG_SBNI_MULTILINE 1355#ifdef CONFIG_SBNI_MULTILINE
1356 1356
1357 case SIOCDEVENSLAVE : 1357 case SIOCDEVENSLAVE :
1358 if( current->euid != 0 ) /* root only */ 1358 if (!capable(CAP_NET_ADMIN))
1359 return -EPERM; 1359 return -EPERM;
1360 1360
1361 if (copy_from_user( slave_name, ifr->ifr_data, sizeof slave_name )) 1361 if (copy_from_user( slave_name, ifr->ifr_data, sizeof slave_name ))
@@ -1370,7 +1370,7 @@ sbni_ioctl( struct net_device *dev, struct ifreq *ifr, int cmd )
1370 return enslave( dev, slave_dev ); 1370 return enslave( dev, slave_dev );
1371 1371
1372 case SIOCDEVEMANSIPATE : 1372 case SIOCDEVEMANSIPATE :
1373 if( current->euid != 0 ) /* root only */ 1373 if (!capable(CAP_NET_ADMIN))
1374 return -EPERM; 1374 return -EPERM;
1375 1375
1376 return emancipate( dev ); 1376 return emancipate( dev );
diff --git a/drivers/net/wd.c b/drivers/net/wd.c
index 6f9aa1643743..fa14255282af 100644
--- a/drivers/net/wd.c
+++ b/drivers/net/wd.c
@@ -337,7 +337,7 @@ static int __init wd_probe1(struct net_device *dev, int ioaddr)
337#ifdef CONFIG_NET_POLL_CONTROLLER 337#ifdef CONFIG_NET_POLL_CONTROLLER
338 dev->poll_controller = ei_poll; 338 dev->poll_controller = ei_poll;
339#endif 339#endif
340 NS8390p_init(dev, 0); 340 NS8390_init(dev, 0);
341 341
342#if 1 342#if 1
343 /* Enable interrupt generation on softconfig cards -- M.U */ 343 /* Enable interrupt generation on softconfig cards -- M.U */
diff --git a/drivers/net/wireless/ath5k/base.c b/drivers/net/wireless/ath5k/base.c
index b20a45aa8680..0676c6d84383 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -251,7 +251,7 @@ static inline void ath5k_txbuf_free(struct ath5k_softc *sc,
251 return; 251 return;
252 pci_unmap_single(sc->pdev, bf->skbaddr, bf->skb->len, 252 pci_unmap_single(sc->pdev, bf->skbaddr, bf->skb->len,
253 PCI_DMA_TODEVICE); 253 PCI_DMA_TODEVICE);
254 dev_kfree_skb(bf->skb); 254 dev_kfree_skb_any(bf->skb);
255 bf->skb = NULL; 255 bf->skb = NULL;
256} 256}
257 257
@@ -466,6 +466,7 @@ ath5k_pci_probe(struct pci_dev *pdev,
466 mutex_init(&sc->lock); 466 mutex_init(&sc->lock);
467 spin_lock_init(&sc->rxbuflock); 467 spin_lock_init(&sc->rxbuflock);
468 spin_lock_init(&sc->txbuflock); 468 spin_lock_init(&sc->txbuflock);
469 spin_lock_init(&sc->block);
469 470
470 /* Set private data */ 471 /* Set private data */
471 pci_set_drvdata(pdev, hw); 472 pci_set_drvdata(pdev, hw);
@@ -2179,8 +2180,11 @@ ath5k_beacon_config(struct ath5k_softc *sc)
2179 2180
2180 sc->imask |= AR5K_INT_SWBA; 2181 sc->imask |= AR5K_INT_SWBA;
2181 2182
2182 if (ath5k_hw_hasveol(ah)) 2183 if (ath5k_hw_hasveol(ah)) {
2184 spin_lock(&sc->block);
2183 ath5k_beacon_send(sc); 2185 ath5k_beacon_send(sc);
2186 spin_unlock(&sc->block);
2187 }
2184 } 2188 }
2185 /* TODO else AP */ 2189 /* TODO else AP */
2186 2190
@@ -2403,7 +2407,9 @@ ath5k_intr(int irq, void *dev_id)
2403 TSF_TO_TU(tsf), 2407 TSF_TO_TU(tsf),
2404 (unsigned long long) tsf); 2408 (unsigned long long) tsf);
2405 } else { 2409 } else {
2410 spin_lock(&sc->block);
2406 ath5k_beacon_send(sc); 2411 ath5k_beacon_send(sc);
2412 spin_unlock(&sc->block);
2407 } 2413 }
2408 } 2414 }
2409 if (status & AR5K_INT_RXEOL) { 2415 if (status & AR5K_INT_RXEOL) {
@@ -2745,6 +2751,11 @@ static int ath5k_add_interface(struct ieee80211_hw *hw,
2745 ret = -EOPNOTSUPP; 2751 ret = -EOPNOTSUPP;
2746 goto end; 2752 goto end;
2747 } 2753 }
2754
2755 /* Set to a reasonable value. Note that this will
2756 * be set to mac80211's value at ath5k_config(). */
2757 sc->bintval = 1000;
2758
2748 ret = 0; 2759 ret = 0;
2749end: 2760end:
2750 mutex_unlock(&sc->lock); 2761 mutex_unlock(&sc->lock);
@@ -2789,9 +2800,6 @@ ath5k_config_interface(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
2789 struct ath5k_hw *ah = sc->ah; 2800 struct ath5k_hw *ah = sc->ah;
2790 int ret; 2801 int ret;
2791 2802
2792 /* Set to a reasonable value. Note that this will
2793 * be set to mac80211's value at ath5k_config(). */
2794 sc->bintval = 1000;
2795 mutex_lock(&sc->lock); 2803 mutex_lock(&sc->lock);
2796 if (sc->vif != vif) { 2804 if (sc->vif != vif) {
2797 ret = -EIO; 2805 ret = -EIO;
@@ -3050,6 +3058,7 @@ static int
3050ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb) 3058ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
3051{ 3059{
3052 struct ath5k_softc *sc = hw->priv; 3060 struct ath5k_softc *sc = hw->priv;
3061 unsigned long flags;
3053 int ret; 3062 int ret;
3054 3063
3055 ath5k_debug_dump_skb(sc, skb, "BC ", 1); 3064 ath5k_debug_dump_skb(sc, skb, "BC ", 1);
@@ -3059,12 +3068,14 @@ ath5k_beacon_update(struct ieee80211_hw *hw, struct sk_buff *skb)
3059 goto end; 3068 goto end;
3060 } 3069 }
3061 3070
3071 spin_lock_irqsave(&sc->block, flags);
3062 ath5k_txbuf_free(sc, sc->bbuf); 3072 ath5k_txbuf_free(sc, sc->bbuf);
3063 sc->bbuf->skb = skb; 3073 sc->bbuf->skb = skb;
3064 ret = ath5k_beacon_setup(sc, sc->bbuf); 3074 ret = ath5k_beacon_setup(sc, sc->bbuf);
3065 if (ret) 3075 if (ret)
3066 sc->bbuf->skb = NULL; 3076 sc->bbuf->skb = NULL;
3067 else { 3077 spin_unlock_irqrestore(&sc->block, flags);
3078 if (!ret) {
3068 ath5k_beacon_config(sc); 3079 ath5k_beacon_config(sc);
3069 mmiowb(); 3080 mmiowb();
3070 } 3081 }
diff --git a/drivers/net/wireless/ath5k/base.h b/drivers/net/wireless/ath5k/base.h
index d7e03e6b8271..7ec2f377d5c7 100644
--- a/drivers/net/wireless/ath5k/base.h
+++ b/drivers/net/wireless/ath5k/base.h
@@ -172,6 +172,7 @@ struct ath5k_softc {
172 struct tasklet_struct txtq; /* tx intr tasklet */ 172 struct tasklet_struct txtq; /* tx intr tasklet */
173 struct ath5k_led tx_led; /* tx led */ 173 struct ath5k_led tx_led; /* tx led */
174 174
175 spinlock_t block; /* protects beacon */
175 struct ath5k_buf *bbuf; /* beacon buffer */ 176 struct ath5k_buf *bbuf; /* beacon buffer */
176 unsigned int bhalq, /* SW q for outgoing beacons */ 177 unsigned int bhalq, /* SW q for outgoing beacons */
177 bmisscount, /* missed beacon transmits */ 178 bmisscount, /* missed beacon transmits */
diff --git a/drivers/net/wireless/ath9k/beacon.c b/drivers/net/wireless/ath9k/beacon.c
index caf569401a34..00a0eaa08866 100644
--- a/drivers/net/wireless/ath9k/beacon.c
+++ b/drivers/net/wireless/ath9k/beacon.c
@@ -209,6 +209,7 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
209 unsigned int curlen; 209 unsigned int curlen;
210 struct ath_txq *cabq; 210 struct ath_txq *cabq;
211 struct ath_txq *mcastq; 211 struct ath_txq *mcastq;
212 struct ieee80211_tx_info *info;
212 avp = sc->sc_vaps[if_id]; 213 avp = sc->sc_vaps[if_id];
213 214
214 mcastq = &avp->av_mcastq; 215 mcastq = &avp->av_mcastq;
@@ -232,6 +233,18 @@ static struct ath_buf *ath_beacon_generate(struct ath_softc *sc, int if_id)
232 */ 233 */
233 curlen = skb->len; 234 curlen = skb->len;
234 235
236 info = IEEE80211_SKB_CB(skb);
237 if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
238 /*
239 * TODO: make sure the seq# gets assigned properly (vs. other
240 * TX frames)
241 */
242 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
243 sc->seq_no += 0x10;
244 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
245 hdr->seq_ctrl |= cpu_to_le16(sc->seq_no);
246 }
247
235 /* XXX: spin_lock_bh should not be used here, but sparse bitches 248 /* XXX: spin_lock_bh should not be used here, but sparse bitches
236 * otherwise. We should fix sparse :) */ 249 * otherwise. We should fix sparse :) */
237 spin_lock_bh(&mcastq->axq_lock); 250 spin_lock_bh(&mcastq->axq_lock);
diff --git a/drivers/net/wireless/ath9k/core.h b/drivers/net/wireless/ath9k/core.h
index 673b3d81133a..4ee695b76b88 100644
--- a/drivers/net/wireless/ath9k/core.h
+++ b/drivers/net/wireless/ath9k/core.h
@@ -992,6 +992,7 @@ struct ath_softc {
992 u32 sc_txintrperiod; /* tx interrupt batching */ 992 u32 sc_txintrperiod; /* tx interrupt batching */
993 int sc_haltype2q[ATH9K_WME_AC_VO+1]; /* HAL WME AC -> h/w qnum */ 993 int sc_haltype2q[ATH9K_WME_AC_VO+1]; /* HAL WME AC -> h/w qnum */
994 u32 sc_ant_tx[8]; /* recent tx frames/antenna */ 994 u32 sc_ant_tx[8]; /* recent tx frames/antenna */
995 u16 seq_no; /* TX sequence number */
995 996
996 /* Beacon */ 997 /* Beacon */
997 struct ath9k_tx_queue_info sc_beacon_qi; 998 struct ath9k_tx_queue_info sc_beacon_qi;
diff --git a/drivers/net/wireless/ath9k/hw.c b/drivers/net/wireless/ath9k/hw.c
index a17eb130f574..6dbfed0b4149 100644
--- a/drivers/net/wireless/ath9k/hw.c
+++ b/drivers/net/wireless/ath9k/hw.c
@@ -7285,15 +7285,15 @@ ath9k_hw_set_keycache_entry(struct ath_hal *ah, u16 entry,
7285 } 7285 }
7286 break; 7286 break;
7287 case ATH9K_CIPHER_WEP: 7287 case ATH9K_CIPHER_WEP:
7288 if (k->kv_len < 40 / NBBY) { 7288 if (k->kv_len < LEN_WEP40) {
7289 DPRINTF(ah->ah_sc, ATH_DBG_KEYCACHE, 7289 DPRINTF(ah->ah_sc, ATH_DBG_KEYCACHE,
7290 "%s: WEP key length %u too small\n", 7290 "%s: WEP key length %u too small\n",
7291 __func__, k->kv_len); 7291 __func__, k->kv_len);
7292 return false; 7292 return false;
7293 } 7293 }
7294 if (k->kv_len <= 40 / NBBY) 7294 if (k->kv_len <= LEN_WEP40)
7295 keyType = AR_KEYTABLE_TYPE_40; 7295 keyType = AR_KEYTABLE_TYPE_40;
7296 else if (k->kv_len <= 104 / NBBY) 7296 else if (k->kv_len <= LEN_WEP104)
7297 keyType = AR_KEYTABLE_TYPE_104; 7297 keyType = AR_KEYTABLE_TYPE_104;
7298 else 7298 else
7299 keyType = AR_KEYTABLE_TYPE_128; 7299 keyType = AR_KEYTABLE_TYPE_128;
@@ -7313,7 +7313,7 @@ ath9k_hw_set_keycache_entry(struct ath_hal *ah, u16 entry,
7313 key2 = get_unaligned_le32(k->kv_val + 6) ^ xorMask; 7313 key2 = get_unaligned_le32(k->kv_val + 6) ^ xorMask;
7314 key3 = (get_unaligned_le16(k->kv_val + 10) ^ xorMask) & 0xffff; 7314 key3 = (get_unaligned_le16(k->kv_val + 10) ^ xorMask) & 0xffff;
7315 key4 = get_unaligned_le32(k->kv_val + 12) ^ xorMask; 7315 key4 = get_unaligned_le32(k->kv_val + 12) ^ xorMask;
7316 if (k->kv_len <= 104 / NBBY) 7316 if (k->kv_len <= LEN_WEP104)
7317 key4 &= 0xff; 7317 key4 &= 0xff;
7318 7318
7319 if (keyType == AR_KEYTABLE_TYPE_TKIP && ATH9K_IS_MIC_ENABLED(ah)) { 7319 if (keyType == AR_KEYTABLE_TYPE_TKIP && ATH9K_IS_MIC_ENABLED(ah)) {
diff --git a/drivers/net/wireless/ath9k/main.c b/drivers/net/wireless/ath9k/main.c
index 2888778040e4..99badf1404c3 100644
--- a/drivers/net/wireless/ath9k/main.c
+++ b/drivers/net/wireless/ath9k/main.c
@@ -206,7 +206,8 @@ static int ath_key_config(struct ath_softc *sc,
206 if (!ret) 206 if (!ret)
207 return -EIO; 207 return -EIO;
208 208
209 sc->sc_keytype = hk.kv_type; 209 if (mac)
210 sc->sc_keytype = hk.kv_type;
210 return 0; 211 return 0;
211} 212}
212 213
@@ -368,6 +369,20 @@ static int ath9k_tx(struct ieee80211_hw *hw,
368{ 369{
369 struct ath_softc *sc = hw->priv; 370 struct ath_softc *sc = hw->priv;
370 int hdrlen, padsize; 371 int hdrlen, padsize;
372 struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb);
373
374 /*
375 * As a temporary workaround, assign seq# here; this will likely need
376 * to be cleaned up to work better with Beacon transmission and virtual
377 * BSSes.
378 */
379 if (info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ) {
380 struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
381 if (info->flags & IEEE80211_TX_CTL_FIRST_FRAGMENT)
382 sc->seq_no += 0x10;
383 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
384 hdr->seq_ctrl |= cpu_to_le16(sc->seq_no);
385 }
371 386
372 /* Add the padding after the header if this is not already done */ 387 /* Add the padding after the header if this is not already done */
373 hdrlen = ieee80211_get_hdrlen_from_skb(skb); 388 hdrlen = ieee80211_get_hdrlen_from_skb(skb);
@@ -756,7 +771,8 @@ static int ath9k_set_key(struct ieee80211_hw *hw,
756 key->hw_key_idx = key->keyidx; 771 key->hw_key_idx = key->keyidx;
757 /* push IV and Michael MIC generation to stack */ 772 /* push IV and Michael MIC generation to stack */
758 key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; 773 key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV;
759 key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC; 774 if (key->alg == ALG_TKIP)
775 key->flags |= IEEE80211_KEY_FLAG_GENERATE_MMIC;
760 } 776 }
761 break; 777 break;
762 case DISABLE_KEY: 778 case DISABLE_KEY:
@@ -1065,8 +1081,16 @@ void ath_tx_complete(struct ath_softc *sc, struct sk_buff *skb,
1065 tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK; 1081 tx_info->flags |= IEEE80211_TX_STAT_AMPDU_NO_BACK;
1066 tx_status->flags &= ~ATH_TX_BAR; 1082 tx_status->flags &= ~ATH_TX_BAR;
1067 } 1083 }
1068 if (tx_status->flags) 1084
1069 tx_info->status.excessive_retries = 1; 1085 if (tx_status->flags & (ATH_TX_ERROR | ATH_TX_XRETRY)) {
1086 if (!(tx_info->flags & IEEE80211_TX_CTL_NO_ACK)) {
1087 /* Frame was not ACKed, but an ACK was expected */
1088 tx_info->status.excessive_retries = 1;
1089 }
1090 } else {
1091 /* Frame was ACKed */
1092 tx_info->flags |= IEEE80211_TX_STAT_ACK;
1093 }
1070 1094
1071 tx_info->status.retry_count = tx_status->retries; 1095 tx_info->status.retry_count = tx_status->retries;
1072 1096
diff --git a/drivers/net/wireless/ath9k/recv.c b/drivers/net/wireless/ath9k/recv.c
index 2fe806175c01..20ddb7acdb94 100644
--- a/drivers/net/wireless/ath9k/recv.c
+++ b/drivers/net/wireless/ath9k/recv.c
@@ -360,8 +360,9 @@ static void ath_rx_flush_tid(struct ath_softc *sc,
360 struct ath_arx_tid *rxtid, int drop) 360 struct ath_arx_tid *rxtid, int drop)
361{ 361{
362 struct ath_rxbuf *rxbuf; 362 struct ath_rxbuf *rxbuf;
363 unsigned long flag;
363 364
364 spin_lock_bh(&rxtid->tidlock); 365 spin_lock_irqsave(&rxtid->tidlock, flag);
365 while (rxtid->baw_head != rxtid->baw_tail) { 366 while (rxtid->baw_head != rxtid->baw_tail) {
366 rxbuf = rxtid->rxbuf + rxtid->baw_head; 367 rxbuf = rxtid->rxbuf + rxtid->baw_head;
367 if (!rxbuf->rx_wbuf) { 368 if (!rxbuf->rx_wbuf) {
@@ -382,7 +383,7 @@ static void ath_rx_flush_tid(struct ath_softc *sc,
382 INCR(rxtid->baw_head, ATH_TID_MAX_BUFS); 383 INCR(rxtid->baw_head, ATH_TID_MAX_BUFS);
383 INCR(rxtid->seq_next, IEEE80211_SEQ_MAX); 384 INCR(rxtid->seq_next, IEEE80211_SEQ_MAX);
384 } 385 }
385 spin_unlock_bh(&rxtid->tidlock); 386 spin_unlock_irqrestore(&rxtid->tidlock, flag);
386} 387}
387 388
388static struct sk_buff *ath_rxbuf_alloc(struct ath_softc *sc, 389static struct sk_buff *ath_rxbuf_alloc(struct ath_softc *sc,
diff --git a/drivers/net/wireless/ath9k/xmit.c b/drivers/net/wireless/ath9k/xmit.c
index 157f830ee6b8..550129f717e2 100644
--- a/drivers/net/wireless/ath9k/xmit.c
+++ b/drivers/net/wireless/ath9k/xmit.c
@@ -357,9 +357,9 @@ static int ath_tx_prepare(struct ath_softc *sc,
357 txctl->flags = ATH9K_TXDESC_CLRDMASK; /* needed for crypto errors */ 357 txctl->flags = ATH9K_TXDESC_CLRDMASK; /* needed for crypto errors */
358 358
359 if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK) 359 if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK)
360 tx_info->flags |= ATH9K_TXDESC_NOACK; 360 txctl->flags |= ATH9K_TXDESC_NOACK;
361 if (tx_info->flags & IEEE80211_TX_CTL_USE_RTS_CTS) 361 if (tx_info->flags & IEEE80211_TX_CTL_USE_RTS_CTS)
362 tx_info->flags |= ATH9K_TXDESC_RTSENA; 362 txctl->flags |= ATH9K_TXDESC_RTSENA;
363 363
364 /* 364 /*
365 * Setup for rate calculations. 365 * Setup for rate calculations.
diff --git a/drivers/net/wireless/atmel.c b/drivers/net/wireless/atmel.c
index bd35bb0a1480..bd65c485098c 100644
--- a/drivers/net/wireless/atmel.c
+++ b/drivers/net/wireless/atmel.c
@@ -1304,7 +1304,7 @@ EXPORT_SYMBOL(atmel_open);
1304int atmel_open(struct net_device *dev) 1304int atmel_open(struct net_device *dev)
1305{ 1305{
1306 struct atmel_private *priv = netdev_priv(dev); 1306 struct atmel_private *priv = netdev_priv(dev);
1307 int i, channel; 1307 int i, channel, err;
1308 1308
1309 /* any scheduled timer is no longer needed and might screw things up.. */ 1309 /* any scheduled timer is no longer needed and might screw things up.. */
1310 del_timer_sync(&priv->management_timer); 1310 del_timer_sync(&priv->management_timer);
@@ -1328,8 +1328,9 @@ int atmel_open(struct net_device *dev)
1328 priv->site_survey_state = SITE_SURVEY_IDLE; 1328 priv->site_survey_state = SITE_SURVEY_IDLE;
1329 priv->station_is_associated = 0; 1329 priv->station_is_associated = 0;
1330 1330
1331 if (!reset_atmel_card(dev)) 1331 err = reset_atmel_card(dev);
1332 return -EAGAIN; 1332 if (err)
1333 return err;
1333 1334
1334 if (priv->config_reg_domain) { 1335 if (priv->config_reg_domain) {
1335 priv->reg_domain = priv->config_reg_domain; 1336 priv->reg_domain = priv->config_reg_domain;
@@ -3061,12 +3062,20 @@ static void authenticate(struct atmel_private *priv, u16 frame_len)
3061 } 3062 }
3062 3063
3063 if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) { 3064 if (status == WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG) {
3064 /* Do opensystem first, then try sharedkey */ 3065 /* Flip back and forth between WEP auth modes until the max
3066 * authentication tries has been exceeded.
3067 */
3065 if (system == WLAN_AUTH_OPEN) { 3068 if (system == WLAN_AUTH_OPEN) {
3066 priv->CurrentAuthentTransactionSeqNum = 0x001; 3069 priv->CurrentAuthentTransactionSeqNum = 0x001;
3067 priv->exclude_unencrypted = 1; 3070 priv->exclude_unencrypted = 1;
3068 send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0); 3071 send_authentication_request(priv, WLAN_AUTH_SHARED_KEY, NULL, 0);
3069 return; 3072 return;
3073 } else if ( system == WLAN_AUTH_SHARED_KEY
3074 && priv->wep_is_on) {
3075 priv->CurrentAuthentTransactionSeqNum = 0x001;
3076 priv->exclude_unencrypted = 0;
3077 send_authentication_request(priv, WLAN_AUTH_OPEN, NULL, 0);
3078 return;
3070 } else if (priv->connect_to_any_BSS) { 3079 } else if (priv->connect_to_any_BSS) {
3071 int bss_index; 3080 int bss_index;
3072 3081
@@ -3580,12 +3589,12 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
3580 3589
3581 if (i == 0) { 3590 if (i == 0) {
3582 printk(KERN_ALERT "%s: MAC failed to boot.\n", priv->dev->name); 3591 printk(KERN_ALERT "%s: MAC failed to boot.\n", priv->dev->name);
3583 return 0; 3592 return -EIO;
3584 } 3593 }
3585 3594
3586 if ((priv->host_info_base = atmel_read16(priv->dev, MR2)) == 0xffff) { 3595 if ((priv->host_info_base = atmel_read16(priv->dev, MR2)) == 0xffff) {
3587 printk(KERN_ALERT "%s: card missing.\n", priv->dev->name); 3596 printk(KERN_ALERT "%s: card missing.\n", priv->dev->name);
3588 return 0; 3597 return -ENODEV;
3589 } 3598 }
3590 3599
3591 /* now check for completion of MAC initialization through 3600 /* now check for completion of MAC initialization through
@@ -3609,19 +3618,19 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
3609 if (i == 0) { 3618 if (i == 0) {
3610 printk(KERN_ALERT "%s: MAC failed to initialise.\n", 3619 printk(KERN_ALERT "%s: MAC failed to initialise.\n",
3611 priv->dev->name); 3620 priv->dev->name);
3612 return 0; 3621 return -EIO;
3613 } 3622 }
3614 3623
3615 /* Check for MAC_INIT_OK only on the register that the MAC_INIT_OK was set */ 3624 /* Check for MAC_INIT_OK only on the register that the MAC_INIT_OK was set */
3616 if ((mr3 & MAC_INIT_COMPLETE) && 3625 if ((mr3 & MAC_INIT_COMPLETE) &&
3617 !(atmel_read16(priv->dev, MR3) & MAC_INIT_OK)) { 3626 !(atmel_read16(priv->dev, MR3) & MAC_INIT_OK)) {
3618 printk(KERN_ALERT "%s: MAC failed MR3 self-test.\n", priv->dev->name); 3627 printk(KERN_ALERT "%s: MAC failed MR3 self-test.\n", priv->dev->name);
3619 return 0; 3628 return -EIO;
3620 } 3629 }
3621 if ((mr1 & MAC_INIT_COMPLETE) && 3630 if ((mr1 & MAC_INIT_COMPLETE) &&
3622 !(atmel_read16(priv->dev, MR1) & MAC_INIT_OK)) { 3631 !(atmel_read16(priv->dev, MR1) & MAC_INIT_OK)) {
3623 printk(KERN_ALERT "%s: MAC failed MR1 self-test.\n", priv->dev->name); 3632 printk(KERN_ALERT "%s: MAC failed MR1 self-test.\n", priv->dev->name);
3624 return 0; 3633 return -EIO;
3625 } 3634 }
3626 3635
3627 atmel_copy_to_host(priv->dev, (unsigned char *)iface, 3636 atmel_copy_to_host(priv->dev, (unsigned char *)iface,
@@ -3642,7 +3651,7 @@ static int atmel_wakeup_firmware(struct atmel_private *priv)
3642 iface->func_ctrl = le16_to_cpu(iface->func_ctrl); 3651 iface->func_ctrl = le16_to_cpu(iface->func_ctrl);
3643 iface->mac_status = le16_to_cpu(iface->mac_status); 3652 iface->mac_status = le16_to_cpu(iface->mac_status);
3644 3653
3645 return 1; 3654 return 0;
3646} 3655}
3647 3656
3648/* determine type of memory and MAC address */ 3657/* determine type of memory and MAC address */
@@ -3693,7 +3702,7 @@ static int probe_atmel_card(struct net_device *dev)
3693 /* Standard firmware in flash, boot it up and ask 3702 /* Standard firmware in flash, boot it up and ask
3694 for the Mac Address */ 3703 for the Mac Address */
3695 priv->card_type = CARD_TYPE_SPI_FLASH; 3704 priv->card_type = CARD_TYPE_SPI_FLASH;
3696 if (atmel_wakeup_firmware(priv)) { 3705 if (atmel_wakeup_firmware(priv) == 0) {
3697 atmel_get_mib(priv, Mac_Address_Mib_Type, 0, dev->dev_addr, 6); 3706 atmel_get_mib(priv, Mac_Address_Mib_Type, 0, dev->dev_addr, 6);
3698 3707
3699 /* got address, now squash it again until the network 3708 /* got address, now squash it again until the network
@@ -3835,6 +3844,7 @@ static int reset_atmel_card(struct net_device *dev)
3835 struct atmel_private *priv = netdev_priv(dev); 3844 struct atmel_private *priv = netdev_priv(dev);
3836 u8 configuration; 3845 u8 configuration;
3837 int old_state = priv->station_state; 3846 int old_state = priv->station_state;
3847 int err = 0;
3838 3848
3839 /* data to add to the firmware names, in priority order 3849 /* data to add to the firmware names, in priority order
3840 this implemenents firmware versioning */ 3850 this implemenents firmware versioning */
@@ -3868,11 +3878,12 @@ static int reset_atmel_card(struct net_device *dev)
3868 dev->name); 3878 dev->name);
3869 strcpy(priv->firmware_id, "atmel_at76c502.bin"); 3879 strcpy(priv->firmware_id, "atmel_at76c502.bin");
3870 } 3880 }
3871 if (request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev) != 0) { 3881 err = request_firmware(&fw_entry, priv->firmware_id, priv->sys_dev);
3882 if (err != 0) {
3872 printk(KERN_ALERT 3883 printk(KERN_ALERT
3873 "%s: firmware %s is missing, cannot continue.\n", 3884 "%s: firmware %s is missing, cannot continue.\n",
3874 dev->name, priv->firmware_id); 3885 dev->name, priv->firmware_id);
3875 return 0; 3886 return err;
3876 } 3887 }
3877 } else { 3888 } else {
3878 int fw_index = 0; 3889 int fw_index = 0;
@@ -3901,7 +3912,7 @@ static int reset_atmel_card(struct net_device *dev)
3901 "%s: firmware %s is missing, cannot start.\n", 3912 "%s: firmware %s is missing, cannot start.\n",
3902 dev->name, priv->firmware_id); 3913 dev->name, priv->firmware_id);
3903 priv->firmware_id[0] = '\0'; 3914 priv->firmware_id[0] = '\0';
3904 return 0; 3915 return -ENOENT;
3905 } 3916 }
3906 } 3917 }
3907 3918
@@ -3926,8 +3937,9 @@ static int reset_atmel_card(struct net_device *dev)
3926 release_firmware(fw_entry); 3937 release_firmware(fw_entry);
3927 } 3938 }
3928 3939
3929 if (!atmel_wakeup_firmware(priv)) 3940 err = atmel_wakeup_firmware(priv);
3930 return 0; 3941 if (err != 0)
3942 return err;
3931 3943
3932 /* Check the version and set the correct flag for wpa stuff, 3944 /* Check the version and set the correct flag for wpa stuff,
3933 old and new firmware is incompatible. 3945 old and new firmware is incompatible.
@@ -3968,10 +3980,9 @@ static int reset_atmel_card(struct net_device *dev)
3968 if (!priv->radio_on_broken) { 3980 if (!priv->radio_on_broken) {
3969 if (atmel_send_command_wait(priv, CMD_EnableRadio, NULL, 0) == 3981 if (atmel_send_command_wait(priv, CMD_EnableRadio, NULL, 0) ==
3970 CMD_STATUS_REJECTED_RADIO_OFF) { 3982 CMD_STATUS_REJECTED_RADIO_OFF) {
3971 printk(KERN_INFO 3983 printk(KERN_INFO "%s: cannot turn the radio on.\n",
3972 "%s: cannot turn the radio on. (Hey radio, you're beautiful!)\n",
3973 dev->name); 3984 dev->name);
3974 return 0; 3985 return -EIO;
3975 } 3986 }
3976 } 3987 }
3977 3988
@@ -4006,7 +4017,7 @@ static int reset_atmel_card(struct net_device *dev)
4006 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL); 4017 wireless_send_event(priv->dev, SIOCGIWAP, &wrqu, NULL);
4007 } 4018 }
4008 4019
4009 return 1; 4020 return 0;
4010} 4021}
4011 4022
4012static void atmel_send_command(struct atmel_private *priv, int command, 4023static void atmel_send_command(struct atmel_private *priv, int command,
diff --git a/drivers/net/wireless/b43/rfkill.c b/drivers/net/wireless/b43/rfkill.c
index fec5645944a4..34ae125d5384 100644
--- a/drivers/net/wireless/b43/rfkill.c
+++ b/drivers/net/wireless/b43/rfkill.c
@@ -43,23 +43,6 @@ static bool b43_is_hw_radio_enabled(struct b43_wldev *dev)
43 return 0; 43 return 0;
44} 44}
45 45
46/* Update the rfkill state */
47static void b43_rfkill_update_state(struct b43_wldev *dev)
48{
49 struct b43_rfkill *rfk = &(dev->wl->rfkill);
50
51 if (!dev->radio_hw_enable) {
52 rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED;
53 return;
54 }
55
56 if (!dev->phy.radio_on)
57 rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
58 else
59 rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
60
61}
62
63/* The poll callback for the hardware button. */ 46/* The poll callback for the hardware button. */
64static void b43_rfkill_poll(struct input_polled_dev *poll_dev) 47static void b43_rfkill_poll(struct input_polled_dev *poll_dev)
65{ 48{
@@ -77,7 +60,6 @@ static void b43_rfkill_poll(struct input_polled_dev *poll_dev)
77 if (unlikely(enabled != dev->radio_hw_enable)) { 60 if (unlikely(enabled != dev->radio_hw_enable)) {
78 dev->radio_hw_enable = enabled; 61 dev->radio_hw_enable = enabled;
79 report_change = 1; 62 report_change = 1;
80 b43_rfkill_update_state(dev);
81 b43info(wl, "Radio hardware status changed to %s\n", 63 b43info(wl, "Radio hardware status changed to %s\n",
82 enabled ? "ENABLED" : "DISABLED"); 64 enabled ? "ENABLED" : "DISABLED");
83 } 65 }
diff --git a/drivers/net/wireless/b43legacy/rfkill.c b/drivers/net/wireless/b43legacy/rfkill.c
index 476add97e974..b32bf6a94f19 100644
--- a/drivers/net/wireless/b43legacy/rfkill.c
+++ b/drivers/net/wireless/b43legacy/rfkill.c
@@ -44,23 +44,6 @@ static bool b43legacy_is_hw_radio_enabled(struct b43legacy_wldev *dev)
44 return 0; 44 return 0;
45} 45}
46 46
47/* Update the rfkill state */
48static void b43legacy_rfkill_update_state(struct b43legacy_wldev *dev)
49{
50 struct b43legacy_rfkill *rfk = &(dev->wl->rfkill);
51
52 if (!dev->radio_hw_enable) {
53 rfk->rfkill->state = RFKILL_STATE_HARD_BLOCKED;
54 return;
55 }
56
57 if (!dev->phy.radio_on)
58 rfk->rfkill->state = RFKILL_STATE_SOFT_BLOCKED;
59 else
60 rfk->rfkill->state = RFKILL_STATE_UNBLOCKED;
61
62}
63
64/* The poll callback for the hardware button. */ 47/* The poll callback for the hardware button. */
65static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev) 48static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev)
66{ 49{
@@ -78,7 +61,6 @@ static void b43legacy_rfkill_poll(struct input_polled_dev *poll_dev)
78 if (unlikely(enabled != dev->radio_hw_enable)) { 61 if (unlikely(enabled != dev->radio_hw_enable)) {
79 dev->radio_hw_enable = enabled; 62 dev->radio_hw_enable = enabled;
80 report_change = 1; 63 report_change = 1;
81 b43legacy_rfkill_update_state(dev);
82 b43legacyinfo(wl, "Radio hardware status changed to %s\n", 64 b43legacyinfo(wl, "Radio hardware status changed to %s\n",
83 enabled ? "ENABLED" : "DISABLED"); 65 enabled ? "ENABLED" : "DISABLED");
84 } 66 }
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index e2581229d8b2..23fed3298962 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -474,8 +474,8 @@ static void iwl4965_apm_stop(struct iwl_priv *priv)
474 iwl_set_bit(priv, CSR_RESET, CSR_RESET_REG_FLAG_SW_RESET); 474 iwl_set_bit(priv, CSR_RESET, CSR_RESET_REG_FLAG_SW_RESET);
475 475
476 udelay(10); 476 udelay(10);
477 477 /* clear "init complete" move adapter D0A* --> D0U state */
478 iwl_set_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE); 478 iwl_clear_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE);
479 spin_unlock_irqrestore(&priv->lock, flags); 479 spin_unlock_irqrestore(&priv->lock, flags);
480} 480}
481 481
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index cbc01a00eaf4..b08036a9d894 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -145,7 +145,8 @@ static void iwl5000_apm_stop(struct iwl_priv *priv)
145 145
146 udelay(10); 146 udelay(10);
147 147
148 iwl_set_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE); 148 /* clear "init complete" move adapter D0A* --> D0U state */
149 iwl_clear_bit(priv, CSR_GP_CNTRL, CSR_GP_CNTRL_REG_FLAG_INIT_DONE);
149 150
150 spin_unlock_irqrestore(&priv->lock, flags); 151 spin_unlock_irqrestore(&priv->lock, flags);
151} 152}
@@ -577,14 +578,11 @@ static int iwl5000_load_section(struct iwl_priv *priv,
577 FH_TFDIB_CTRL0_REG(FH_SRVC_CHNL), 578 FH_TFDIB_CTRL0_REG(FH_SRVC_CHNL),
578 phy_addr & FH_MEM_TFDIB_DRAM_ADDR_LSB_MSK); 579 phy_addr & FH_MEM_TFDIB_DRAM_ADDR_LSB_MSK);
579 580
580 /* FIME: write the MSB of the phy_addr in CTRL1
581 * iwl_write_direct32(priv,
582 IWL_FH_TFDIB_CTRL1_REG(IWL_FH_SRVC_CHNL),
583 ((phy_addr & MSB_MSK)
584 << FH_MEM_TFDIB_REG1_ADDR_BITSHIFT) | byte_count);
585 */
586 iwl_write_direct32(priv, 581 iwl_write_direct32(priv,
587 FH_TFDIB_CTRL1_REG(FH_SRVC_CHNL), byte_cnt); 582 FH_TFDIB_CTRL1_REG(FH_SRVC_CHNL),
583 (iwl_get_dma_hi_address(phy_addr)
584 << FH_MEM_TFDIB_REG1_ADDR_BITSHIFT) | byte_cnt);
585
588 iwl_write_direct32(priv, 586 iwl_write_direct32(priv,
589 FH_TCSR_CHNL_TX_BUF_STS_REG(FH_SRVC_CHNL), 587 FH_TCSR_CHNL_TX_BUF_STS_REG(FH_SRVC_CHNL),
590 1 << FH_TCSR_CHNL_TX_BUF_STS_REG_POS_TB_NUM | 588 1 << FH_TCSR_CHNL_TX_BUF_STS_REG_POS_TB_NUM |
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 754fef5b592f..90a2b6dee7c0 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -1153,7 +1153,8 @@ static int rs_switch_to_mimo2(struct iwl_priv *priv,
1153 !sta->ht_info.ht_supported) 1153 !sta->ht_info.ht_supported)
1154 return -1; 1154 return -1;
1155 1155
1156 if (priv->current_ht_config.tx_mimo_ps_mode == IWL_MIMO_PS_STATIC) 1156 if (((sta->ht_info.cap & IEEE80211_HT_CAP_MIMO_PS) >> 2)
1157 == IWL_MIMO_PS_STATIC)
1157 return -1; 1158 return -1;
1158 1159
1159 /* Need both Tx chains/antennas to support MIMO */ 1160 /* Need both Tx chains/antennas to support MIMO */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index 061ffba9c884..e01f048a02dd 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -181,14 +181,14 @@ static int iwl4965_check_rxon_cmd(struct iwl_rxon_cmd *rxon)
181} 181}
182 182
183/** 183/**
184 * iwl4965_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed 184 * iwl_full_rxon_required - check if full RXON (vs RXON_ASSOC) cmd is needed
185 * @priv: staging_rxon is compared to active_rxon 185 * @priv: staging_rxon is compared to active_rxon
186 * 186 *
187 * If the RXON structure is changing enough to require a new tune, 187 * If the RXON structure is changing enough to require a new tune,
188 * or is clearing the RXON_FILTER_ASSOC_MSK, then return 1 to indicate that 188 * or is clearing the RXON_FILTER_ASSOC_MSK, then return 1 to indicate that
189 * a new tune (full RXON command, rather than RXON_ASSOC cmd) is required. 189 * a new tune (full RXON command, rather than RXON_ASSOC cmd) is required.
190 */ 190 */
191static int iwl4965_full_rxon_required(struct iwl_priv *priv) 191static int iwl_full_rxon_required(struct iwl_priv *priv)
192{ 192{
193 193
194 /* These items are only settable from the full RXON command */ 194 /* These items are only settable from the full RXON command */
@@ -207,7 +207,6 @@ static int iwl4965_full_rxon_required(struct iwl_priv *priv)
207 priv->active_rxon.ofdm_ht_single_stream_basic_rates) || 207 priv->active_rxon.ofdm_ht_single_stream_basic_rates) ||
208 (priv->staging_rxon.ofdm_ht_dual_stream_basic_rates != 208 (priv->staging_rxon.ofdm_ht_dual_stream_basic_rates !=
209 priv->active_rxon.ofdm_ht_dual_stream_basic_rates) || 209 priv->active_rxon.ofdm_ht_dual_stream_basic_rates) ||
210 (priv->staging_rxon.rx_chain != priv->active_rxon.rx_chain) ||
211 (priv->staging_rxon.assoc_id != priv->active_rxon.assoc_id)) 210 (priv->staging_rxon.assoc_id != priv->active_rxon.assoc_id))
212 return 1; 211 return 1;
213 212
@@ -263,7 +262,7 @@ static int iwl4965_commit_rxon(struct iwl_priv *priv)
263 /* If we don't need to send a full RXON, we can use 262 /* If we don't need to send a full RXON, we can use
264 * iwl4965_rxon_assoc_cmd which is used to reconfigure filter 263 * iwl4965_rxon_assoc_cmd which is used to reconfigure filter
265 * and other flags for the current radio configuration. */ 264 * and other flags for the current radio configuration. */
266 if (!iwl4965_full_rxon_required(priv)) { 265 if (!iwl_full_rxon_required(priv)) {
267 ret = iwl_send_rxon_assoc(priv); 266 ret = iwl_send_rxon_assoc(priv);
268 if (ret) { 267 if (ret) {
269 IWL_ERROR("Error setting RXON_ASSOC (%d)\n", ret); 268 IWL_ERROR("Error setting RXON_ASSOC (%d)\n", ret);
@@ -587,8 +586,6 @@ static void iwl4965_ht_conf(struct iwl_priv *priv,
587 iwl_conf->supported_chan_width = 0; 586 iwl_conf->supported_chan_width = 0;
588 } 587 }
589 588
590 iwl_conf->tx_mimo_ps_mode =
591 (u8)((ht_conf->cap & IEEE80211_HT_CAP_MIMO_PS) >> 2);
592 memcpy(iwl_conf->supp_mcs_set, ht_conf->supp_mcs_set, 16); 589 memcpy(iwl_conf->supp_mcs_set, ht_conf->supp_mcs_set, 16);
593 590
594 iwl_conf->control_channel = ht_bss_conf->primary_channel; 591 iwl_conf->control_channel = ht_bss_conf->primary_channel;
@@ -2190,7 +2187,10 @@ static void __iwl4965_down(struct iwl_priv *priv)
2190 udelay(5); 2187 udelay(5);
2191 2188
2192 /* FIXME: apm_ops.suspend(priv) */ 2189 /* FIXME: apm_ops.suspend(priv) */
2193 priv->cfg->ops->lib->apm_ops.reset(priv); 2190 if (exit_pending || test_bit(STATUS_IN_SUSPEND, &priv->status))
2191 priv->cfg->ops->lib->apm_ops.stop(priv);
2192 else
2193 priv->cfg->ops->lib->apm_ops.reset(priv);
2194 priv->cfg->ops->lib->free_shared_mem(priv); 2194 priv->cfg->ops->lib->free_shared_mem(priv);
2195 2195
2196 exit: 2196 exit:
@@ -2602,6 +2602,7 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw)
2602{ 2602{
2603 struct iwl_priv *priv = hw->priv; 2603 struct iwl_priv *priv = hw->priv;
2604 int ret; 2604 int ret;
2605 u16 pci_cmd;
2605 2606
2606 IWL_DEBUG_MAC80211("enter\n"); 2607 IWL_DEBUG_MAC80211("enter\n");
2607 2608
@@ -2612,6 +2613,13 @@ static int iwl4965_mac_start(struct ieee80211_hw *hw)
2612 pci_restore_state(priv->pci_dev); 2613 pci_restore_state(priv->pci_dev);
2613 pci_enable_msi(priv->pci_dev); 2614 pci_enable_msi(priv->pci_dev);
2614 2615
2616 /* enable interrupts if needed: hw bug w/a */
2617 pci_read_config_word(priv->pci_dev, PCI_COMMAND, &pci_cmd);
2618 if (pci_cmd & PCI_COMMAND_INTX_DISABLE) {
2619 pci_cmd &= ~PCI_COMMAND_INTX_DISABLE;
2620 pci_write_config_word(priv->pci_dev, PCI_COMMAND, pci_cmd);
2621 }
2622
2615 ret = request_irq(priv->pci_dev->irq, iwl4965_isr, IRQF_SHARED, 2623 ret = request_irq(priv->pci_dev->irq, iwl4965_isr, IRQF_SHARED,
2616 DRV_NAME, priv); 2624 DRV_NAME, priv);
2617 if (ret) { 2625 if (ret) {
@@ -3580,7 +3588,7 @@ static int iwl4965_mac_beacon_update(struct ieee80211_hw *hw, struct sk_buff *sk
3580 3588
3581 priv->assoc_id = 0; 3589 priv->assoc_id = 0;
3582 timestamp = ((struct ieee80211_mgmt *)skb->data)->u.beacon.timestamp; 3590 timestamp = ((struct ieee80211_mgmt *)skb->data)->u.beacon.timestamp;
3583 priv->timestamp = le64_to_cpu(timestamp) + (priv->beacon_int * 1000); 3591 priv->timestamp = le64_to_cpu(timestamp);
3584 3592
3585 IWL_DEBUG_MAC80211("leave\n"); 3593 IWL_DEBUG_MAC80211("leave\n");
3586 spin_unlock_irqrestore(&priv->lock, flags); 3594 spin_unlock_irqrestore(&priv->lock, flags);
@@ -4364,15 +4372,18 @@ static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
4364 iwl_dbgfs_unregister(priv); 4372 iwl_dbgfs_unregister(priv);
4365 sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group); 4373 sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group);
4366 4374
4375 /* ieee80211_unregister_hw call wil cause iwl4965_mac_stop to
4376 * to be called and iwl4965_down since we are removing the device
4377 * we need to set STATUS_EXIT_PENDING bit.
4378 */
4379 set_bit(STATUS_EXIT_PENDING, &priv->status);
4367 if (priv->mac80211_registered) { 4380 if (priv->mac80211_registered) {
4368 ieee80211_unregister_hw(priv->hw); 4381 ieee80211_unregister_hw(priv->hw);
4369 priv->mac80211_registered = 0; 4382 priv->mac80211_registered = 0;
4383 } else {
4384 iwl4965_down(priv);
4370 } 4385 }
4371 4386
4372 set_bit(STATUS_EXIT_PENDING, &priv->status);
4373
4374 iwl4965_down(priv);
4375
4376 /* make sure we flush any pending irq or 4387 /* make sure we flush any pending irq or
4377 * tasklet for the driver 4388 * tasklet for the driver
4378 */ 4389 */
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index c72f72579bea..80f2f84defa8 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -592,12 +592,11 @@ static void iwlcore_free_geos(struct iwl_priv *priv)
592 clear_bit(STATUS_GEO_CONFIGURED, &priv->status); 592 clear_bit(STATUS_GEO_CONFIGURED, &priv->status);
593} 593}
594 594
595static u8 is_single_rx_stream(struct iwl_priv *priv) 595static bool is_single_rx_stream(struct iwl_priv *priv)
596{ 596{
597 return !priv->current_ht_config.is_ht || 597 return !priv->current_ht_config.is_ht ||
598 ((priv->current_ht_config.supp_mcs_set[1] == 0) && 598 ((priv->current_ht_config.supp_mcs_set[1] == 0) &&
599 (priv->current_ht_config.supp_mcs_set[2] == 0)) || 599 (priv->current_ht_config.supp_mcs_set[2] == 0));
600 priv->ps_mode == IWL_MIMO_PS_STATIC;
601} 600}
602 601
603static u8 iwl_is_channel_extension(struct iwl_priv *priv, 602static u8 iwl_is_channel_extension(struct iwl_priv *priv,
@@ -704,33 +703,39 @@ EXPORT_SYMBOL(iwl_set_rxon_ht);
704 * MIMO (dual stream) requires at least 2, but works better with 3. 703 * MIMO (dual stream) requires at least 2, but works better with 3.
705 * This does not determine *which* chains to use, just how many. 704 * This does not determine *which* chains to use, just how many.
706 */ 705 */
707static int iwlcore_get_rx_chain_counter(struct iwl_priv *priv, 706static int iwl_get_active_rx_chain_count(struct iwl_priv *priv)
708 u8 *idle_state, u8 *rx_state)
709{ 707{
710 u8 is_single = is_single_rx_stream(priv); 708 bool is_single = is_single_rx_stream(priv);
711 u8 is_cam = test_bit(STATUS_POWER_PMI, &priv->status) ? 0 : 1; 709 bool is_cam = !test_bit(STATUS_POWER_PMI, &priv->status);
712 710
713 /* # of Rx chains to use when expecting MIMO. */ 711 /* # of Rx chains to use when expecting MIMO. */
714 if (is_single || (!is_cam && (priv->ps_mode == IWL_MIMO_PS_STATIC))) 712 if (is_single || (!is_cam && (priv->ps_mode == IWL_MIMO_PS_STATIC)))
715 *rx_state = 2; 713 return 2;
716 else 714 else
717 *rx_state = 3; 715 return 3;
716}
718 717
718static int iwl_get_idle_rx_chain_count(struct iwl_priv *priv, int active_cnt)
719{
720 int idle_cnt;
721 bool is_cam = !test_bit(STATUS_POWER_PMI, &priv->status);
719 /* # Rx chains when idling and maybe trying to save power */ 722 /* # Rx chains when idling and maybe trying to save power */
720 switch (priv->ps_mode) { 723 switch (priv->ps_mode) {
721 case IWL_MIMO_PS_STATIC: 724 case IWL_MIMO_PS_STATIC:
722 case IWL_MIMO_PS_DYNAMIC: 725 case IWL_MIMO_PS_DYNAMIC:
723 *idle_state = (is_cam) ? 2 : 1; 726 idle_cnt = (is_cam) ? 2 : 1;
724 break; 727 break;
725 case IWL_MIMO_PS_NONE: 728 case IWL_MIMO_PS_NONE:
726 *idle_state = (is_cam) ? *rx_state : 1; 729 idle_cnt = (is_cam) ? active_cnt : 1;
727 break; 730 break;
731 case IWL_MIMO_PS_INVALID:
728 default: 732 default:
729 *idle_state = 1; 733 IWL_ERROR("invalide mimo ps mode %d\n", priv->ps_mode);
734 WARN_ON(1);
735 idle_cnt = -1;
730 break; 736 break;
731 } 737 }
732 738 return idle_cnt;
733 return 0;
734} 739}
735 740
736/** 741/**
@@ -741,34 +746,44 @@ static int iwlcore_get_rx_chain_counter(struct iwl_priv *priv,
741 */ 746 */
742void iwl_set_rxon_chain(struct iwl_priv *priv) 747void iwl_set_rxon_chain(struct iwl_priv *priv)
743{ 748{
744 u8 is_single = is_single_rx_stream(priv); 749 bool is_single = is_single_rx_stream(priv);
745 u8 idle_state, rx_state; 750 bool is_cam = !test_bit(STATUS_POWER_PMI, &priv->status);
746 751 u8 idle_rx_cnt, active_rx_cnt;
747 priv->staging_rxon.rx_chain = 0; 752 u16 rx_chain;
748 rx_state = idle_state = 3;
749 753
750 /* Tell uCode which antennas are actually connected. 754 /* Tell uCode which antennas are actually connected.
751 * Before first association, we assume all antennas are connected. 755 * Before first association, we assume all antennas are connected.
752 * Just after first association, iwl_chain_noise_calibration() 756 * Just after first association, iwl_chain_noise_calibration()
753 * checks which antennas actually *are* connected. */ 757 * checks which antennas actually *are* connected. */
754 priv->staging_rxon.rx_chain |= 758 rx_chain = priv->hw_params.valid_rx_ant << RXON_RX_CHAIN_VALID_POS;
755 cpu_to_le16(priv->hw_params.valid_rx_ant <<
756 RXON_RX_CHAIN_VALID_POS);
757 759
758 /* How many receivers should we use? */ 760 /* How many receivers should we use? */
759 iwlcore_get_rx_chain_counter(priv, &idle_state, &rx_state); 761 active_rx_cnt = iwl_get_active_rx_chain_count(priv);
760 priv->staging_rxon.rx_chain |= 762 idle_rx_cnt = iwl_get_idle_rx_chain_count(priv, active_rx_cnt);
761 cpu_to_le16(rx_state << RXON_RX_CHAIN_MIMO_CNT_POS); 763
762 priv->staging_rxon.rx_chain |= 764 /* correct rx chain count accoridng hw settings */
763 cpu_to_le16(idle_state << RXON_RX_CHAIN_CNT_POS); 765 if (priv->hw_params.rx_chains_num < active_rx_cnt)
764 766 active_rx_cnt = priv->hw_params.rx_chains_num;
765 if (!is_single && (rx_state >= 2) && 767
766 !test_bit(STATUS_POWER_PMI, &priv->status)) 768 if (priv->hw_params.rx_chains_num < idle_rx_cnt)
769 idle_rx_cnt = priv->hw_params.rx_chains_num;
770
771 rx_chain |= active_rx_cnt << RXON_RX_CHAIN_MIMO_CNT_POS;
772 rx_chain |= idle_rx_cnt << RXON_RX_CHAIN_CNT_POS;
773
774 priv->staging_rxon.rx_chain = cpu_to_le16(rx_chain);
775
776 if (!is_single && (active_rx_cnt >= 2) && is_cam)
767 priv->staging_rxon.rx_chain |= RXON_RX_CHAIN_MIMO_FORCE_MSK; 777 priv->staging_rxon.rx_chain |= RXON_RX_CHAIN_MIMO_FORCE_MSK;
768 else 778 else
769 priv->staging_rxon.rx_chain &= ~RXON_RX_CHAIN_MIMO_FORCE_MSK; 779 priv->staging_rxon.rx_chain &= ~RXON_RX_CHAIN_MIMO_FORCE_MSK;
770 780
771 IWL_DEBUG_ASSOC("rx chain %X\n", priv->staging_rxon.rx_chain); 781 IWL_DEBUG_ASSOC("rx_chain=0x%Xi active=%d idle=%d\n",
782 priv->staging_rxon.rx_chain,
783 active_rx_cnt, idle_rx_cnt);
784
785 WARN_ON(active_rx_cnt == 0 || idle_rx_cnt == 0 ||
786 active_rx_cnt < idle_rx_cnt);
772} 787}
773EXPORT_SYMBOL(iwl_set_rxon_chain); 788EXPORT_SYMBOL(iwl_set_rxon_chain);
774 789
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index c19db438306c..cdfb343c7ec6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -412,7 +412,6 @@ struct iwl_ht_info {
412 /* self configuration data */ 412 /* self configuration data */
413 u8 is_ht; 413 u8 is_ht;
414 u8 supported_chan_width; 414 u8 supported_chan_width;
415 u16 tx_mimo_ps_mode;
416 u8 is_green_field; 415 u8 is_green_field;
417 u8 sgf; /* HT_SHORT_GI_* short guard interval */ 416 u8 sgf; /* HT_SHORT_GI_* short guard interval */
418 u8 max_amsdu_size; 417 u8 max_amsdu_size;
diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
index 944642450d3d..cd11c0ca2991 100644
--- a/drivers/net/wireless/iwlwifi/iwl-fh.h
+++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
@@ -287,6 +287,7 @@
287 287
288#define FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE (0x01000000) 288#define FH_RSSR_CHNL0_RX_STATUS_CHNL_IDLE (0x01000000)
289 289
290#define FH_MEM_TFDIB_REG1_ADDR_BITSHIFT 28
290 291
291/** 292/**
292 * Transmit DMA Channel Control/Status Registers (TCSR) 293 * Transmit DMA Channel Control/Status Registers (TCSR)
diff --git a/drivers/net/wireless/iwlwifi/iwl-rx.c b/drivers/net/wireless/iwlwifi/iwl-rx.c
index f3f6ea49fdd2..e81bfc42a7cb 100644
--- a/drivers/net/wireless/iwlwifi/iwl-rx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-rx.c
@@ -1173,7 +1173,10 @@ void iwl_rx_reply_rx(struct iwl_priv *priv,
1173 1173
1174 rx_status.antenna = 0; 1174 rx_status.antenna = 0;
1175 rx_status.flag = 0; 1175 rx_status.flag = 0;
1176 rx_status.flag |= RX_FLAG_TSFT; 1176
1177 /* TSF isn't reliable. In order to allow smooth user experience,
1178 * this W/A doesn't propagate it to the mac80211 */
1179 /*rx_status.flag |= RX_FLAG_TSFT;*/
1177 1180
1178 if ((unlikely(rx_start->cfg_phy_cnt > 20))) { 1181 if ((unlikely(rx_start->cfg_phy_cnt > 20))) {
1179 IWL_DEBUG_DROP("dsp size out of range [0,20]: %d/n", 1182 IWL_DEBUG_DROP("dsp size out of range [0,20]: %d/n",
diff --git a/drivers/net/wireless/iwlwifi/iwl-scan.c b/drivers/net/wireless/iwlwifi/iwl-scan.c
index 9bb6adb28b73..6c8ac3a87d54 100644
--- a/drivers/net/wireless/iwlwifi/iwl-scan.c
+++ b/drivers/net/wireless/iwlwifi/iwl-scan.c
@@ -421,7 +421,7 @@ static int iwl_get_channels_for_scan(struct iwl_priv *priv,
421 else 421 else
422 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE; 422 scan_ch->type = SCAN_CHANNEL_TYPE_ACTIVE;
423 423
424 if ((scan_ch->type & SCAN_CHANNEL_TYPE_ACTIVE) && n_probes) 424 if (n_probes)
425 scan_ch->type |= IWL_SCAN_PROBE_MASK(n_probes); 425 scan_ch->type |= IWL_SCAN_PROBE_MASK(n_probes);
426 426
427 scan_ch->active_dwell = cpu_to_le16(active_dwell); 427 scan_ch->active_dwell = cpu_to_le16(active_dwell);
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index d82823b5c8ab..78b1a7a4ca40 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -402,12 +402,11 @@ static int iwl_hw_tx_queue_init(struct iwl_priv *priv,
402/** 402/**
403 * iwl_tx_queue_init - Allocate and initialize one tx/cmd queue 403 * iwl_tx_queue_init - Allocate and initialize one tx/cmd queue
404 */ 404 */
405static int iwl_tx_queue_init(struct iwl_priv *priv, 405static int iwl_tx_queue_init(struct iwl_priv *priv, struct iwl_tx_queue *txq,
406 struct iwl_tx_queue *txq,
407 int slots_num, u32 txq_id) 406 int slots_num, u32 txq_id)
408{ 407{
409 int i, len; 408 int i, len;
410 int rc = 0; 409 int ret;
411 410
412 /* 411 /*
413 * Alloc buffer array for commands (Tx or other types of commands). 412 * Alloc buffer array for commands (Tx or other types of commands).
@@ -426,19 +425,16 @@ static int iwl_tx_queue_init(struct iwl_priv *priv,
426 continue; 425 continue;
427 } 426 }
428 427
429 txq->cmd[i] = kmalloc(len, GFP_KERNEL | GFP_DMA); 428 txq->cmd[i] = kmalloc(len, GFP_KERNEL);
430 if (!txq->cmd[i]) 429 if (!txq->cmd[i])
431 return -ENOMEM; 430 goto err;
432 } 431 }
433 432
434 /* Alloc driver data array and TFD circular buffer */ 433 /* Alloc driver data array and TFD circular buffer */
435 rc = iwl_tx_queue_alloc(priv, txq, txq_id); 434 ret = iwl_tx_queue_alloc(priv, txq, txq_id);
436 if (rc) { 435 if (ret)
437 for (i = 0; i < slots_num; i++) 436 goto err;
438 kfree(txq->cmd[i]);
439 437
440 return -ENOMEM;
441 }
442 txq->need_update = 0; 438 txq->need_update = 0;
443 439
444 /* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise 440 /* TFD_QUEUE_SIZE_MAX must be power-of-two size, otherwise
@@ -452,6 +448,17 @@ static int iwl_tx_queue_init(struct iwl_priv *priv,
452 iwl_hw_tx_queue_init(priv, txq); 448 iwl_hw_tx_queue_init(priv, txq);
453 449
454 return 0; 450 return 0;
451err:
452 for (i = 0; i < slots_num; i++) {
453 kfree(txq->cmd[i]);
454 txq->cmd[i] = NULL;
455 }
456
457 if (txq_id == IWL_CMD_QUEUE_NUM) {
458 kfree(txq->cmd[slots_num]);
459 txq->cmd[slots_num] = NULL;
460 }
461 return -ENOMEM;
455} 462}
456/** 463/**
457 * iwl_hw_txq_ctx_free - Free TXQ Context 464 * iwl_hw_txq_ctx_free - Free TXQ Context
diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
index 04d7a251e3f0..8941919001bb 100644
--- a/drivers/net/wireless/libertas/if_cs.c
+++ b/drivers/net/wireless/libertas/if_cs.c
@@ -595,7 +595,7 @@ static int if_cs_prog_helper(struct if_cs_card *card)
595 if (ret < 0) { 595 if (ret < 0) {
596 lbs_pr_err("can't download helper at 0x%x, ret %d\n", 596 lbs_pr_err("can't download helper at 0x%x, ret %d\n",
597 sent, ret); 597 sent, ret);
598 goto done; 598 goto err_release;
599 } 599 }
600 600
601 if (count == 0) 601 if (count == 0)
@@ -604,9 +604,8 @@ static int if_cs_prog_helper(struct if_cs_card *card)
604 sent += count; 604 sent += count;
605 } 605 }
606 606
607err_release:
607 release_firmware(fw); 608 release_firmware(fw);
608 ret = 0;
609
610done: 609done:
611 lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret); 610 lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret);
612 return ret; 611 return ret;
@@ -676,14 +675,8 @@ static int if_cs_prog_real(struct if_cs_card *card)
676 } 675 }
677 676
678 ret = if_cs_poll_while_fw_download(card, IF_CS_SCRATCH, 0x5a); 677 ret = if_cs_poll_while_fw_download(card, IF_CS_SCRATCH, 0x5a);
679 if (ret < 0) { 678 if (ret < 0)
680 lbs_pr_err("firmware download failed\n"); 679 lbs_pr_err("firmware download failed\n");
681 goto err_release;
682 }
683
684 ret = 0;
685 goto done;
686
687 680
688err_release: 681err_release:
689 release_firmware(fw); 682 release_firmware(fw);
diff --git a/drivers/net/wireless/orinoco.c b/drivers/net/wireless/orinoco.c
index 1ebcafe7ca5f..36c004e15602 100644
--- a/drivers/net/wireless/orinoco.c
+++ b/drivers/net/wireless/orinoco.c
@@ -1970,6 +1970,9 @@ __orinoco_set_multicast_list(struct net_device *dev)
1970 priv->promiscuous = promisc; 1970 priv->promiscuous = promisc;
1971 } 1971 }
1972 1972
1973 /* If we're not in promiscuous mode, then we need to set the
1974 * group address if either we want to multicast, or if we were
1975 * multicasting and want to stop */
1973 if (! promisc && (mc_count || priv->mc_count) ) { 1976 if (! promisc && (mc_count || priv->mc_count) ) {
1974 struct dev_mc_list *p = dev->mc_list; 1977 struct dev_mc_list *p = dev->mc_list;
1975 struct hermes_multicast mclist; 1978 struct hermes_multicast mclist;
@@ -1989,9 +1992,10 @@ __orinoco_set_multicast_list(struct net_device *dev)
1989 printk(KERN_WARNING "%s: Multicast list is " 1992 printk(KERN_WARNING "%s: Multicast list is "
1990 "longer than mc_count\n", dev->name); 1993 "longer than mc_count\n", dev->name);
1991 1994
1992 err = hermes_write_ltv(hw, USER_BAP, HERMES_RID_CNFGROUPADDRESSES, 1995 err = hermes_write_ltv(hw, USER_BAP,
1993 HERMES_BYTES_TO_RECLEN(priv->mc_count * ETH_ALEN), 1996 HERMES_RID_CNFGROUPADDRESSES,
1994 &mclist); 1997 HERMES_BYTES_TO_RECLEN(mc_count * ETH_ALEN),
1998 &mclist);
1995 if (err) 1999 if (err)
1996 printk(KERN_ERR "%s: Error %d setting multicast list.\n", 2000 printk(KERN_ERR "%s: Error %d setting multicast list.\n",
1997 dev->name, err); 2001 dev->name, err);
diff --git a/drivers/net/wireless/rt2x00/rt2x00reg.h b/drivers/net/wireless/rt2x00/rt2x00reg.h
index 7e88ce5651b9..2ea7866abd5d 100644
--- a/drivers/net/wireless/rt2x00/rt2x00reg.h
+++ b/drivers/net/wireless/rt2x00/rt2x00reg.h
@@ -136,7 +136,7 @@ struct rt2x00_field32 {
136 */ 136 */
137#define is_power_of_two(x) ( !((x) & ((x)-1)) ) 137#define is_power_of_two(x) ( !((x) & ((x)-1)) )
138#define low_bit_mask(x) ( ((x)-1) & ~(x) ) 138#define low_bit_mask(x) ( ((x)-1) & ~(x) )
139#define is_valid_mask(x) is_power_of_two(1 + (x) + low_bit_mask(x)) 139#define is_valid_mask(x) is_power_of_two(1LU + (x) + low_bit_mask(x))
140 140
141/* 141/*
142 * Macro's to find first set bit in a variable. 142 * Macro's to find first set bit in a variable.
@@ -173,8 +173,7 @@ struct rt2x00_field32 {
173 * does not exceed the given typelimit. 173 * does not exceed the given typelimit.
174 */ 174 */
175#define FIELD_CHECK(__mask, __type) \ 175#define FIELD_CHECK(__mask, __type) \
176 BUILD_BUG_ON(!__builtin_constant_p(__mask) || \ 176 BUILD_BUG_ON(!(__mask) || \
177 !(__mask) || \
178 !is_valid_mask(__mask) || \ 177 !is_valid_mask(__mask) || \
179 (__mask) != (__type)(__mask)) \ 178 (__mask) != (__type)(__mask)) \
180 179
diff --git a/drivers/oprofile/cpu_buffer.c b/drivers/oprofile/cpu_buffer.c
index 2450b3a393ff..7ba78e6d210e 100644
--- a/drivers/oprofile/cpu_buffer.c
+++ b/drivers/oprofile/cpu_buffer.c
@@ -38,8 +38,10 @@ void free_cpu_buffers(void)
38{ 38{
39 int i; 39 int i;
40 40
41 for_each_online_cpu(i) 41 for_each_online_cpu(i) {
42 vfree(per_cpu(cpu_buffer, i).buffer); 42 vfree(per_cpu(cpu_buffer, i).buffer);
43 per_cpu(cpu_buffer, i).buffer = NULL;
44 }
43} 45}
44 46
45int alloc_cpu_buffers(void) 47int alloc_cpu_buffers(void)
diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
index e7fbac529935..8d692a5c8e73 100644
--- a/drivers/oprofile/event_buffer.c
+++ b/drivers/oprofile/event_buffer.c
@@ -93,6 +93,8 @@ out:
93void free_event_buffer(void) 93void free_event_buffer(void)
94{ 94{
95 vfree(event_buffer); 95 vfree(event_buffer);
96
97 event_buffer = NULL;
96} 98}
97 99
98 100
diff --git a/drivers/pci/hotplug/fakephp.c b/drivers/pci/hotplug/fakephp.c
index 40337a06c18a..146ca9cd1567 100644
--- a/drivers/pci/hotplug/fakephp.c
+++ b/drivers/pci/hotplug/fakephp.c
@@ -320,15 +320,15 @@ static int disable_slot(struct hotplug_slot *slot)
320 return -ENODEV; 320 return -ENODEV;
321 } 321 }
322 322
323 /* remove the device from the pci core */
324 pci_remove_bus_device(dev);
325
323 /* queue work item to blow away this sysfs entry and other 326 /* queue work item to blow away this sysfs entry and other
324 * parts. 327 * parts.
325 */ 328 */
326 INIT_WORK(&dslot->remove_work, remove_slot_worker); 329 INIT_WORK(&dslot->remove_work, remove_slot_worker);
327 queue_work(dummyphp_wq, &dslot->remove_work); 330 queue_work(dummyphp_wq, &dslot->remove_work);
328 331
329 /* blow away this sysfs entry and other parts. */
330 remove_slot(dslot);
331
332 pci_dev_put(dev); 332 pci_dev_put(dev);
333 } 333 }
334 return 0; 334 return 0;
diff --git a/drivers/pci/hotplug/pciehp_hpc.c b/drivers/pci/hotplug/pciehp_hpc.c
index ab31f5ba665d..9d934ddee956 100644
--- a/drivers/pci/hotplug/pciehp_hpc.c
+++ b/drivers/pci/hotplug/pciehp_hpc.c
@@ -258,7 +258,7 @@ static int pcie_poll_cmd(struct controller *ctrl)
258 return 1; 258 return 1;
259 } 259 }
260 } 260 }
261 while (timeout > 1000) { 261 while (timeout > 0) {
262 msleep(10); 262 msleep(10);
263 timeout -= 10; 263 timeout -= 10;
264 if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status)) { 264 if (!pciehp_readw(ctrl, SLOTSTATUS, &slot_status)) {
diff --git a/drivers/pci/intel-iommu.c b/drivers/pci/intel-iommu.c
index 8d0e60ac849c..c3edcdc08e72 100644
--- a/drivers/pci/intel-iommu.c
+++ b/drivers/pci/intel-iommu.c
@@ -2348,11 +2348,34 @@ static void __init iommu_exit_mempool(void)
2348 2348
2349} 2349}
2350 2350
2351static int blacklist_iommu(const struct dmi_system_id *id)
2352{
2353 printk(KERN_INFO "%s detected; disabling IOMMU\n",
2354 id->ident);
2355 dmar_disabled = 1;
2356 return 0;
2357}
2358
2359static struct dmi_system_id __initdata intel_iommu_dmi_table[] = {
2360 { /* Some DG33BU BIOS revisions advertised non-existent VT-d */
2361 .callback = blacklist_iommu,
2362 .ident = "Intel DG33BU",
2363 { DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"),
2364 DMI_MATCH(DMI_BOARD_NAME, "DG33BU"),
2365 }
2366 },
2367 { }
2368};
2369
2370
2351void __init detect_intel_iommu(void) 2371void __init detect_intel_iommu(void)
2352{ 2372{
2353 if (swiotlb || no_iommu || iommu_detected || dmar_disabled) 2373 if (swiotlb || no_iommu || iommu_detected || dmar_disabled)
2354 return; 2374 return;
2355 if (early_dmar_detect()) { 2375 if (early_dmar_detect()) {
2376 dmi_check_system(intel_iommu_dmi_table);
2377 if (dmar_disabled)
2378 return;
2356 iommu_detected = 1; 2379 iommu_detected = 1;
2357 } 2380 }
2358} 2381}
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index cce2f4cb1fbf..36698e57b97f 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -304,6 +304,9 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
304 } else { 304 } else {
305 res->start = l64; 305 res->start = l64;
306 res->end = l64 + sz64; 306 res->end = l64 + sz64;
307 printk(KERN_DEBUG "PCI: %s reg %x 64bit mmio: [%llx, %llx]\n",
308 pci_name(dev), pos, (unsigned long long)res->start,
309 (unsigned long long)res->end);
307 } 310 }
308 } else { 311 } else {
309 sz = pci_size(l, sz, mask); 312 sz = pci_size(l, sz, mask);
@@ -313,6 +316,9 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
313 316
314 res->start = l; 317 res->start = l;
315 res->end = l + sz; 318 res->end = l + sz;
319 printk(KERN_DEBUG "PCI: %s reg %x %s: [%llx, %llx]\n", pci_name(dev),
320 pos, (res->flags & IORESOURCE_IO) ? "io port":"32bit mmio",
321 (unsigned long long)res->start, (unsigned long long)res->end);
316 } 322 }
317 323
318 out: 324 out:
@@ -383,7 +389,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
383 res->start = base; 389 res->start = base;
384 if (!res->end) 390 if (!res->end)
385 res->end = limit + 0xfff; 391 res->end = limit + 0xfff;
386 printk(KERN_INFO "PCI: bridge %s io port: [%llx, %llx]\n", pci_name(dev), res->start, res->end); 392 printk(KERN_DEBUG "PCI: bridge %s io port: [%llx, %llx]\n",
393 pci_name(dev), (unsigned long long) res->start,
394 (unsigned long long) res->end);
387 } 395 }
388 396
389 res = child->resource[1]; 397 res = child->resource[1];
@@ -395,7 +403,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
395 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM; 403 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM;
396 res->start = base; 404 res->start = base;
397 res->end = limit + 0xfffff; 405 res->end = limit + 0xfffff;
398 printk(KERN_INFO "PCI: bridge %s 32bit mmio: [%llx, %llx]\n", pci_name(dev), res->start, res->end); 406 printk(KERN_DEBUG "PCI: bridge %s 32bit mmio: [%llx, %llx]\n",
407 pci_name(dev), (unsigned long long) res->start,
408 (unsigned long long) res->end);
399 } 409 }
400 410
401 res = child->resource[2]; 411 res = child->resource[2];
@@ -431,7 +441,9 @@ void __devinit pci_read_bridge_bases(struct pci_bus *child)
431 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH; 441 res->flags = (mem_base_lo & PCI_MEMORY_RANGE_TYPE_MASK) | IORESOURCE_MEM | IORESOURCE_PREFETCH;
432 res->start = base; 442 res->start = base;
433 res->end = limit + 0xfffff; 443 res->end = limit + 0xfffff;
434 printk(KERN_INFO "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n", pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64)?"64":"32",res->start, res->end); 444 printk(KERN_DEBUG "PCI: bridge %s %sbit mmio pref: [%llx, %llx]\n",
445 pci_name(dev), (res->flags & PCI_PREF_RANGE_TYPE_64) ? "64" : "32",
446 (unsigned long long) res->start, (unsigned long long) res->end);
435 } 447 }
436} 448}
437 449
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
index 82634a2f1b1d..3abbfad9ddab 100644
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -352,11 +352,12 @@ static int pbus_size_mem(struct pci_bus *bus, unsigned long mask, unsigned long
352 continue; 352 continue;
353 r_size = r->end - r->start + 1; 353 r_size = r->end - r->start + 1;
354 /* For bridges size != alignment */ 354 /* For bridges size != alignment */
355 align = (i < PCI_BRIDGE_RESOURCES) ? r_size : r->start; 355 align = resource_alignment(r);
356 order = __ffs(align) - 20; 356 order = __ffs(align) - 20;
357 if (order > 11) { 357 if (order > 11) {
358 dev_warn(&dev->dev, "BAR %d too large: " 358 dev_warn(&dev->dev, "BAR %d bad alignment %llx: "
359 "%#016llx-%#016llx\n", i, 359 "%#016llx-%#016llx\n", i,
360 (unsigned long long)align,
360 (unsigned long long)r->start, 361 (unsigned long long)r->start,
361 (unsigned long long)r->end); 362 (unsigned long long)r->end);
362 r->flags = 0; 363 r->flags = 0;
@@ -539,7 +540,11 @@ static void pci_bus_dump_res(struct pci_bus *bus)
539 if (!res) 540 if (!res)
540 continue; 541 continue;
541 542
542 printk(KERN_INFO "bus: %02x index %x %s: [%llx, %llx]\n", bus->number, i, (res->flags & IORESOURCE_IO)? "io port":"mmio", res->start, res->end); 543 printk(KERN_INFO "bus: %02x index %x %s: [%llx, %llx]\n",
544 bus->number, i,
545 (res->flags & IORESOURCE_IO) ? "io port" : "mmio",
546 (unsigned long long) res->start,
547 (unsigned long long) res->end);
543 } 548 }
544} 549}
545 550
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index e0f884034c9f..f57eeae3830a 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -220,7 +220,8 @@ config PCMCIA_PXA2XX
220 tristate "PXA2xx support" 220 tristate "PXA2xx support"
221 depends on ARM && ARCH_PXA && PCMCIA 221 depends on ARM && ARCH_PXA && PCMCIA
222 depends on (ARCH_LUBBOCK || MACH_MAINSTONE || PXA_SHARPSL \ 222 depends on (ARCH_LUBBOCK || MACH_MAINSTONE || PXA_SHARPSL \
223 || MACH_ARMCORE || ARCH_PXA_PALM) 223 || MACH_ARMCORE || ARCH_PXA_PALM || TRIZEPS_PCMCIA \
224 || ARCH_VIPER)
224 help 225 help
225 Say Y here to include support for the PXA2xx PCMCIA controller 226 Say Y here to include support for the PXA2xx PCMCIA controller
226 227
diff --git a/drivers/pcmcia/Makefile b/drivers/pcmcia/Makefile
index 269a9e913ba2..a87902de8d3b 100644
--- a/drivers/pcmcia/Makefile
+++ b/drivers/pcmcia/Makefile
@@ -29,7 +29,6 @@ obj-$(CONFIG_PCMCIA_M8XX) += m8xx_pcmcia.o
29obj-$(CONFIG_HD64465_PCMCIA) += hd64465_ss.o 29obj-$(CONFIG_HD64465_PCMCIA) += hd64465_ss.o
30obj-$(CONFIG_PCMCIA_SA1100) += sa11xx_core.o sa1100_cs.o 30obj-$(CONFIG_PCMCIA_SA1100) += sa11xx_core.o sa1100_cs.o
31obj-$(CONFIG_PCMCIA_SA1111) += sa11xx_core.o sa1111_cs.o 31obj-$(CONFIG_PCMCIA_SA1111) += sa11xx_core.o sa1111_cs.o
32obj-$(CONFIG_PCMCIA_PXA2XX) += pxa2xx_core.o pxa2xx_cs.o
33obj-$(CONFIG_M32R_PCC) += m32r_pcc.o 32obj-$(CONFIG_M32R_PCC) += m32r_pcc.o
34obj-$(CONFIG_M32R_CFC) += m32r_cfc.o 33obj-$(CONFIG_M32R_CFC) += m32r_cfc.o
35obj-$(CONFIG_PCMCIA_AU1X00) += au1x00_ss.o 34obj-$(CONFIG_PCMCIA_AU1X00) += au1x00_ss.o
@@ -68,9 +67,14 @@ sa1100_cs-$(CONFIG_SA1100_H3600) += sa1100_h3600.o
68sa1100_cs-$(CONFIG_SA1100_SHANNON) += sa1100_shannon.o 67sa1100_cs-$(CONFIG_SA1100_SHANNON) += sa1100_shannon.o
69sa1100_cs-$(CONFIG_SA1100_SIMPAD) += sa1100_simpad.o 68sa1100_cs-$(CONFIG_SA1100_SIMPAD) += sa1100_simpad.o
70 69
71pxa2xx_cs-$(CONFIG_ARCH_LUBBOCK) += pxa2xx_lubbock.o sa1111_generic.o 70pxa2xx_lubbock_cs-y += pxa2xx_lubbock.o sa1111_generic.o
72pxa2xx_cs-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o 71pxa2xx-obj-$(CONFIG_ARCH_LUBBOCK) += pxa2xx_lubbock_cs.o
73pxa2xx_cs-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o 72pxa2xx-obj-$(CONFIG_MACH_MAINSTONE) += pxa2xx_mainstone.o
74pxa2xx_cs-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x270.o 73pxa2xx-obj-$(CONFIG_PXA_SHARPSL) += pxa2xx_sharpsl.o
75pxa2xx_cs-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o 74pxa2xx-obj-$(CONFIG_MACH_ARMCORE) += pxa2xx_cm_x2xx.o pxa2xx_cm_x255.o pxa2xx_cm_x270.o
75pxa2xx-obj-$(CONFIG_ARCH_VIPER) += pxa2xx_viper.o
76pxa2xx-obj-$(CONFIG_TRIZEPS_PCMCIA) += pxa2xx_trizeps.o
77pxa2xx-obj-$(CONFIG_MACH_PALMTX) += pxa2xx_palmtx.o
78pxa2xx-obj-$(CONFIG_MACH_PALMLD) += pxa2xx_palmld.o
76 79
80obj-$(CONFIG_PCMCIA_PXA2XX) += pxa2xx_core.o $(pxa2xx-obj-y)
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c
index 1b07af5a2ed3..13f1e0fd3f31 100644
--- a/drivers/pcmcia/pxa2xx_base.c
+++ b/drivers/pcmcia/pxa2xx_base.c
@@ -30,6 +30,7 @@
30#include <asm/system.h> 30#include <asm/system.h>
31#include <mach/pxa-regs.h> 31#include <mach/pxa-regs.h>
32#include <mach/pxa2xx-regs.h> 32#include <mach/pxa2xx-regs.h>
33#include <asm/mach-types.h>
33 34
34#include <pcmcia/cs_types.h> 35#include <pcmcia/cs_types.h>
35#include <pcmcia/ss.h> 36#include <pcmcia/ss.h>
@@ -166,18 +167,32 @@ pxa2xx_pcmcia_frequency_change(struct soc_pcmcia_socket *skt,
166} 167}
167#endif 168#endif
168 169
170static void pxa2xx_configure_sockets(struct device *dev)
171{
172 struct pcmcia_low_level *ops = dev->platform_data;
173
174 /*
175 * We have at least one socket, so set MECR:CIT
176 * (Card Is There)
177 */
178 MECR |= MECR_CIT;
179
180 /* Set MECR:NOS (Number Of Sockets) */
181 if (ops->nr > 1 || machine_is_viper())
182 MECR |= MECR_NOS;
183 else
184 MECR &= ~MECR_NOS;
185}
186
169int __pxa2xx_drv_pcmcia_probe(struct device *dev) 187int __pxa2xx_drv_pcmcia_probe(struct device *dev)
170{ 188{
171 int ret; 189 int ret;
172 struct pcmcia_low_level *ops; 190 struct pcmcia_low_level *ops;
173 int first, nr;
174 191
175 if (!dev || !dev->platform_data) 192 if (!dev || !dev->platform_data)
176 return -ENODEV; 193 return -ENODEV;
177 194
178 ops = (struct pcmcia_low_level *)dev->platform_data; 195 ops = (struct pcmcia_low_level *)dev->platform_data;
179 first = ops->first;
180 nr = ops->nr;
181 196
182 /* Provide our PXA2xx specific timing routines. */ 197 /* Provide our PXA2xx specific timing routines. */
183 ops->set_timing = pxa2xx_pcmcia_set_timing; 198 ops->set_timing = pxa2xx_pcmcia_set_timing;
@@ -185,21 +200,10 @@ int __pxa2xx_drv_pcmcia_probe(struct device *dev)
185 ops->frequency_change = pxa2xx_pcmcia_frequency_change; 200 ops->frequency_change = pxa2xx_pcmcia_frequency_change;
186#endif 201#endif
187 202
188 ret = soc_common_drv_pcmcia_probe(dev, ops, first, nr); 203 ret = soc_common_drv_pcmcia_probe(dev, ops, ops->first, ops->nr);
189 204
190 if (ret == 0) { 205 if (!ret)
191 /* 206 pxa2xx_configure_sockets(dev);
192 * We have at least one socket, so set MECR:CIT
193 * (Card Is There)
194 */
195 MECR |= MECR_CIT;
196
197 /* Set MECR:NOS (Number Of Sockets) */
198 if (nr > 1)
199 MECR |= MECR_NOS;
200 else
201 MECR &= ~MECR_NOS;
202 }
203 207
204 return ret; 208 return ret;
205} 209}
@@ -223,11 +227,7 @@ static int pxa2xx_drv_pcmcia_suspend(struct platform_device *dev, pm_message_t s
223 227
224static int pxa2xx_drv_pcmcia_resume(struct platform_device *dev) 228static int pxa2xx_drv_pcmcia_resume(struct platform_device *dev)
225{ 229{
226 struct pcmcia_low_level *ops = dev->dev.platform_data; 230 pxa2xx_configure_sockets(&dev->dev);
227 int nr = ops ? ops->nr : 0;
228
229 MECR = nr > 1 ? MECR_CIT | MECR_NOS : (nr > 0 ? MECR_CIT : 0);
230
231 return pcmcia_socket_dev_resume(&dev->dev); 231 return pcmcia_socket_dev_resume(&dev->dev);
232} 232}
233 233
diff --git a/drivers/pcmcia/pxa2xx_cm_x255.c b/drivers/pcmcia/pxa2xx_cm_x255.c
new file mode 100644
index 000000000000..7c8bcb476622
--- /dev/null
+++ b/drivers/pcmcia/pxa2xx_cm_x255.c
@@ -0,0 +1,154 @@
1/*
2 * linux/drivers/pcmcia/pxa/pxa_cm_x255.c
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * Compulab Ltd., 2003, 2007, 2008
9 * Mike Rapoport <mike@compulab.co.il>
10 *
11 */
12
13#include <linux/platform_device.h>
14#include <linux/irq.h>
15#include <linux/delay.h>
16#include <linux/gpio.h>
17
18#include <asm/mach-types.h>
19#include <mach/pxa-regs.h>
20
21#include "soc_common.h"
22
23#define GPIO_PCMCIA_SKTSEL (54)
24#define GPIO_PCMCIA_S0_CD_VALID (16)
25#define GPIO_PCMCIA_S1_CD_VALID (17)
26#define GPIO_PCMCIA_S0_RDYINT (6)
27#define GPIO_PCMCIA_S1_RDYINT (8)
28#define GPIO_PCMCIA_RESET (9)
29
30#define PCMCIA_S0_CD_VALID IRQ_GPIO(GPIO_PCMCIA_S0_CD_VALID)
31#define PCMCIA_S1_CD_VALID IRQ_GPIO(GPIO_PCMCIA_S1_CD_VALID)
32#define PCMCIA_S0_RDYINT IRQ_GPIO(GPIO_PCMCIA_S0_RDYINT)
33#define PCMCIA_S1_RDYINT IRQ_GPIO(GPIO_PCMCIA_S1_RDYINT)
34
35
36static struct pcmcia_irqs irqs[] = {
37 { 0, PCMCIA_S0_CD_VALID, "PCMCIA0 CD" },
38 { 1, PCMCIA_S1_CD_VALID, "PCMCIA1 CD" },
39};
40
41static int cmx255_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
42{
43 int ret = gpio_request(GPIO_PCMCIA_RESET, "PCCard reset");
44 if (ret)
45 return ret;
46 gpio_direction_output(GPIO_PCMCIA_RESET, 0);
47
48 skt->irq = skt->nr == 0 ? PCMCIA_S0_RDYINT : PCMCIA_S1_RDYINT;
49 ret = soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs));
50 if (!ret)
51 gpio_free(GPIO_PCMCIA_RESET);
52
53 return ret;
54}
55
56static void cmx255_pcmcia_shutdown(struct soc_pcmcia_socket *skt)
57{
58 soc_pcmcia_free_irqs(skt, irqs, ARRAY_SIZE(irqs));
59 gpio_free(GPIO_PCMCIA_RESET);
60}
61
62
63static void cmx255_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
64 struct pcmcia_state *state)
65{
66 int cd = skt->nr ? GPIO_PCMCIA_S1_CD_VALID : GPIO_PCMCIA_S0_CD_VALID;
67 int rdy = skt->nr ? GPIO_PCMCIA_S0_RDYINT : GPIO_PCMCIA_S1_RDYINT;
68
69 state->detect = !gpio_get_value(cd);
70 state->ready = !!gpio_get_value(rdy);
71 state->bvd1 = 1;
72 state->bvd2 = 1;
73 state->vs_3v = 0;
74 state->vs_Xv = 0;
75 state->wrprot = 0; /* not available */
76}
77
78
79static int cmx255_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
80 const socket_state_t *state)
81{
82 switch (skt->nr) {
83 case 0:
84 if (state->flags & SS_RESET) {
85 gpio_set_value(GPIO_PCMCIA_SKTSEL, 0);
86 udelay(1);
87 gpio_set_value(GPIO_PCMCIA_RESET, 1);
88 udelay(10);
89 gpio_set_value(GPIO_PCMCIA_RESET, 0);
90 }
91 break;
92 case 1:
93 if (state->flags & SS_RESET) {
94 gpio_set_value(GPIO_PCMCIA_SKTSEL, 1);
95 udelay(1);
96 gpio_set_value(GPIO_PCMCIA_RESET, 1);
97 udelay(10);
98 gpio_set_value(GPIO_PCMCIA_RESET, 0);
99 }
100 break;
101 }
102
103 return 0;
104}
105
106static void cmx255_pcmcia_socket_init(struct soc_pcmcia_socket *skt)
107{
108}
109
110static void cmx255_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
111{
112}
113
114
115static struct pcmcia_low_level cmx255_pcmcia_ops __initdata = {
116 .owner = THIS_MODULE,
117 .hw_init = cmx255_pcmcia_hw_init,
118 .hw_shutdown = cmx255_pcmcia_shutdown,
119 .socket_state = cmx255_pcmcia_socket_state,
120 .configure_socket = cmx255_pcmcia_configure_socket,
121 .socket_init = cmx255_pcmcia_socket_init,
122 .socket_suspend = cmx255_pcmcia_socket_suspend,
123 .nr = 1,
124};
125
126static struct platform_device *cmx255_pcmcia_device;
127
128int __init cmx255_pcmcia_init(void)
129{
130 int ret;
131
132 cmx255_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
133
134 if (!cmx255_pcmcia_device)
135 return -ENOMEM;
136
137 ret = platform_device_add_data(cmx255_pcmcia_device, &cmx255_pcmcia_ops,
138 sizeof(cmx255_pcmcia_ops));
139
140 if (ret == 0) {
141 printk(KERN_INFO "Registering cm-x255 PCMCIA interface.\n");
142 ret = platform_device_add(cmx255_pcmcia_device);
143 }
144
145 if (ret)
146 platform_device_put(cmx255_pcmcia_device);
147
148 return ret;
149}
150
151void __exit cmx255_pcmcia_exit(void)
152{
153 platform_device_unregister(cmx255_pcmcia_device);
154}
diff --git a/drivers/pcmcia/pxa2xx_cm_x270.c b/drivers/pcmcia/pxa2xx_cm_x270.c
index bcff5cfed051..6c3aac377126 100644
--- a/drivers/pcmcia/pxa2xx_cm_x270.c
+++ b/drivers/pcmcia/pxa2xx_cm_x270.c
@@ -105,13 +105,10 @@ static struct pcmcia_low_level cmx270_pcmcia_ops __initdata = {
105 105
106static struct platform_device *cmx270_pcmcia_device; 106static struct platform_device *cmx270_pcmcia_device;
107 107
108static int __init cmx270_pcmcia_init(void) 108int __init cmx270_pcmcia_init(void)
109{ 109{
110 int ret; 110 int ret;
111 111
112 if (!machine_is_armcore())
113 return -ENODEV;
114
115 cmx270_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1); 112 cmx270_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
116 113
117 if (!cmx270_pcmcia_device) 114 if (!cmx270_pcmcia_device)
@@ -131,14 +128,7 @@ static int __init cmx270_pcmcia_init(void)
131 return ret; 128 return ret;
132} 129}
133 130
134static void __exit cmx270_pcmcia_exit(void) 131void __exit cmx270_pcmcia_exit(void)
135{ 132{
136 platform_device_unregister(cmx270_pcmcia_device); 133 platform_device_unregister(cmx270_pcmcia_device);
137} 134}
138
139module_init(cmx270_pcmcia_init);
140module_exit(cmx270_pcmcia_exit);
141
142MODULE_LICENSE("GPL");
143MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>");
144MODULE_DESCRIPTION("CM-x270 PCMCIA driver");
diff --git a/drivers/pcmcia/pxa2xx_cm_x2xx.c b/drivers/pcmcia/pxa2xx_cm_x2xx.c
new file mode 100644
index 000000000000..4f09506ad8d4
--- /dev/null
+++ b/drivers/pcmcia/pxa2xx_cm_x2xx.c
@@ -0,0 +1,49 @@
1/*
2 * linux/drivers/pcmcia/pxa/pxa_cm_x2xx.c
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * Compulab Ltd., 2003, 2007, 2008
9 * Mike Rapoport <mike@compulab.co.il>
10 *
11 */
12
13#include <linux/module.h>
14
15#include <asm/system.h>
16#include <asm/mach-types.h>
17#include <mach/system.h>
18
19int cmx255_pcmcia_init(void);
20int cmx270_pcmcia_init(void);
21void cmx255_pcmcia_exit(void);
22void cmx270_pcmcia_exit(void);
23
24static int __init cmx2xx_pcmcia_init(void)
25{
26 int ret = -ENODEV;
27
28 if (machine_is_armcore() && cpu_is_pxa25x())
29 ret = cmx255_pcmcia_init();
30 else if (machine_is_armcore() && cpu_is_pxa27x())
31 ret = cmx270_pcmcia_init();
32
33 return ret;
34}
35
36static void __exit cmx2xx_pcmcia_exit(void)
37{
38 if (machine_is_armcore() && cpu_is_pxa25x())
39 cmx255_pcmcia_exit();
40 else if (machine_is_armcore() && cpu_is_pxa27x())
41 cmx270_pcmcia_exit();
42}
43
44module_init(cmx2xx_pcmcia_init);
45module_exit(cmx2xx_pcmcia_exit);
46
47MODULE_LICENSE("GPL");
48MODULE_AUTHOR("Mike Rapoport <mike@compulab.co.il>");
49MODULE_DESCRIPTION("CM-x2xx PCMCIA driver");
diff --git a/drivers/pcmcia/pxa2xx_palmld.c b/drivers/pcmcia/pxa2xx_palmld.c
new file mode 100644
index 000000000000..1736c67e547e
--- /dev/null
+++ b/drivers/pcmcia/pxa2xx_palmld.c
@@ -0,0 +1,151 @@
1/*
2 * linux/drivers/pcmcia/pxa2xx_palmld.c
3 *
4 * Driver for Palm LifeDrive PCMCIA
5 *
6 * Copyright (C) 2006 Alex Osborne <ato@meshy.org>
7 * Copyright (C) 2007-2008 Marek Vasut <marek.vasut@gmail.com>
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License version 2 as
11 * published by the Free Software Foundation.
12 *
13 */
14
15#include <linux/module.h>
16#include <linux/platform_device.h>
17#include <linux/gpio.h>
18
19#include <asm/mach-types.h>
20#include <mach/palmld.h>
21#include "soc_common.h"
22
23static int palmld_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
24{
25 int ret;
26
27 ret = gpio_request(GPIO_NR_PALMLD_PCMCIA_POWER, "PCMCIA PWR");
28 if (ret)
29 goto err1;
30 ret = gpio_direction_output(GPIO_NR_PALMLD_PCMCIA_POWER, 0);
31 if (ret)
32 goto err2;
33
34 ret = gpio_request(GPIO_NR_PALMLD_PCMCIA_RESET, "PCMCIA RST");
35 if (ret)
36 goto err2;
37 ret = gpio_direction_output(GPIO_NR_PALMLD_PCMCIA_RESET, 1);
38 if (ret)
39 goto err3;
40
41 ret = gpio_request(GPIO_NR_PALMLD_PCMCIA_READY, "PCMCIA RDY");
42 if (ret)
43 goto err3;
44 ret = gpio_direction_input(GPIO_NR_PALMLD_PCMCIA_READY);
45 if (ret)
46 goto err4;
47
48 skt->irq = IRQ_GPIO(GPIO_NR_PALMLD_PCMCIA_READY);
49 return 0;
50
51err4:
52 gpio_free(GPIO_NR_PALMLD_PCMCIA_READY);
53err3:
54 gpio_free(GPIO_NR_PALMLD_PCMCIA_RESET);
55err2:
56 gpio_free(GPIO_NR_PALMLD_PCMCIA_POWER);
57err1:
58 return ret;
59}
60
61static void palmld_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt)
62{
63 gpio_free(GPIO_NR_PALMLD_PCMCIA_READY);
64 gpio_free(GPIO_NR_PALMLD_PCMCIA_RESET);
65 gpio_free(GPIO_NR_PALMLD_PCMCIA_POWER);
66}
67
68static void palmld_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
69 struct pcmcia_state *state)
70{
71 state->detect = 1; /* always inserted */
72 state->ready = !!gpio_get_value(GPIO_NR_PALMLD_PCMCIA_READY);
73 state->bvd1 = 1;
74 state->bvd2 = 1;
75 state->wrprot = 0;
76 state->vs_3v = 1;
77 state->vs_Xv = 0;
78}
79
80static int palmld_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
81 const socket_state_t *state)
82{
83 gpio_set_value(GPIO_NR_PALMLD_PCMCIA_POWER, 1);
84 gpio_set_value(GPIO_NR_PALMLD_PCMCIA_RESET,
85 !!(state->flags & SS_RESET));
86
87 return 0;
88}
89
90static void palmld_pcmcia_socket_init(struct soc_pcmcia_socket *skt)
91{
92}
93
94static void palmld_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
95{
96}
97
98static struct pcmcia_low_level palmld_pcmcia_ops = {
99 .owner = THIS_MODULE,
100
101 .first = 0,
102 .nr = 2,
103
104 .hw_init = palmld_pcmcia_hw_init,
105 .hw_shutdown = palmld_pcmcia_hw_shutdown,
106
107 .socket_state = palmld_pcmcia_socket_state,
108 .configure_socket = palmld_pcmcia_configure_socket,
109
110 .socket_init = palmld_pcmcia_socket_init,
111 .socket_suspend = palmld_pcmcia_socket_suspend,
112};
113
114static struct platform_device *palmld_pcmcia_device;
115
116static int __init palmld_pcmcia_init(void)
117{
118 int ret;
119
120 if (!machine_is_palmld())
121 return -ENODEV;
122
123 palmld_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
124 if (!palmld_pcmcia_device)
125 return -ENOMEM;
126
127 ret = platform_device_add_data(palmld_pcmcia_device, &palmld_pcmcia_ops,
128 sizeof(palmld_pcmcia_ops));
129
130 if (!ret)
131 ret = platform_device_add(palmld_pcmcia_device);
132
133 if (ret)
134 platform_device_put(palmld_pcmcia_device);
135
136 return ret;
137}
138
139static void __exit palmld_pcmcia_exit(void)
140{
141 platform_device_unregister(palmld_pcmcia_device);
142}
143
144module_init(palmld_pcmcia_init);
145module_exit(palmld_pcmcia_exit);
146
147MODULE_AUTHOR("Alex Osborne <ato@meshy.org>,"
148 " Marek Vasut <marek.vasut@gmail.com>");
149MODULE_DESCRIPTION("PCMCIA support for Palm LifeDrive");
150MODULE_ALIAS("platform:pxa2xx-pcmcia");
151MODULE_LICENSE("GPL");
diff --git a/drivers/pcmcia/pxa2xx_trizeps4.c b/drivers/pcmcia/pxa2xx_trizeps4.c
new file mode 100644
index 000000000000..36c7a0b324d2
--- /dev/null
+++ b/drivers/pcmcia/pxa2xx_trizeps4.c
@@ -0,0 +1,256 @@
1/*
2 * linux/drivers/pcmcia/pxa2xx_trizeps4.c
3 *
4 * TRIZEPS PCMCIA specific routines.
5 *
6 * Author: Jürgen Schindele
7 * Created: 20 02, 2006
8 * Copyright: Jürgen Schindele
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 */
14
15#include <linux/module.h>
16#include <linux/init.h>
17#include <linux/kernel.h>
18#include <linux/gpio.h>
19#include <linux/interrupt.h>
20#include <linux/platform_device.h>
21
22#include <asm/mach-types.h>
23#include <asm/irq.h>
24
25#include <mach/hardware.h>
26#include <mach/pxa-regs.h>
27#include <mach/trizeps4.h>
28
29#include "soc_common.h"
30
31extern void board_pcmcia_power(int power);
32
33static struct pcmcia_irqs irqs[] = {
34 { 0, IRQ_GPIO(GPIO_PCD), "cs0_cd" }
35 /* on other baseboards we can have more inputs */
36};
37
38static int trizeps_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
39{
40 int ret, i;
41 /* we dont have voltage/card/ready detection
42 * so we dont need interrupts for it
43 */
44 switch (skt->nr) {
45 case 0:
46 if (gpio_request(GPIO_PRDY, "cf_irq") < 0) {
47 pr_err("%s: sock %d unable to request gpio %d\n", __func__,
48 skt->nr, GPIO_PRDY);
49 return -EBUSY;
50 }
51 if (gpio_direction_input(GPIO_PRDY) < 0) {
52 pr_err("%s: sock %d unable to set input gpio %d\n", __func__,
53 skt->nr, GPIO_PRDY);
54 gpio_free(GPIO_PRDY);
55 return -EINVAL;
56 }
57 skt->irq = IRQ_GPIO(GPIO_PRDY);
58 break;
59
60#ifndef CONFIG_MACH_TRIZEPS_CONXS
61 case 1:
62#endif
63 default:
64 break;
65 }
66 /* release the reset of this card */
67 pr_debug("%s: sock %d irq %d\n", __func__, skt->nr, skt->irq);
68
69 /* supplementory irqs for the socket */
70 for (i = 0; i < ARRAY_SIZE(irqs); i++) {
71 if (irqs[i].sock != skt->nr)
72 continue;
73 if (gpio_request(IRQ_TO_GPIO(irqs[i].irq), irqs[i].str) < 0) {
74 pr_err("%s: sock %d unable to request gpio %d\n",
75 __func__, skt->nr, IRQ_TO_GPIO(irqs[i].irq));
76 ret = -EBUSY;
77 goto error;
78 }
79 if (gpio_direction_input(IRQ_TO_GPIO(irqs[i].irq)) < 0) {
80 pr_err("%s: sock %d unable to set input gpio %d\n",
81 __func__, skt->nr, IRQ_TO_GPIO(irqs[i].irq));
82 ret = -EINVAL;
83 goto error;
84 }
85 }
86 return soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs));
87
88error:
89 for (; i >= 0; i--) {
90 gpio_free(IRQ_TO_GPIO(irqs[i].irq));
91 }
92 return (ret);
93}
94
95static void trizeps_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt)
96{
97 int i;
98 /* free allocated gpio's */
99 gpio_free(GPIO_PRDY);
100 for (i = 0; i < ARRAY_SIZE(irqs); i++)
101 gpio_free(IRQ_TO_GPIO(irqs[i].irq));
102}
103
104static unsigned long trizeps_pcmcia_status[2];
105
106static void trizeps_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
107 struct pcmcia_state *state)
108{
109 unsigned short status = 0, change;
110 status = CFSR_readw();
111 change = (status ^ trizeps_pcmcia_status[skt->nr]) &
112 ConXS_CFSR_BVD_MASK;
113 if (change) {
114 trizeps_pcmcia_status[skt->nr] = status;
115 if (status & ConXS_CFSR_BVD1) {
116 /* enable_irq empty */
117 } else {
118 /* disable_irq empty */
119 }
120 }
121
122 switch (skt->nr) {
123 case 0:
124 /* just fill in fix states */
125 state->detect = gpio_get_value(GPIO_PCD) ? 0 : 1;
126 state->ready = gpio_get_value(GPIO_PRDY) ? 1 : 0;
127 state->bvd1 = (status & ConXS_CFSR_BVD1) ? 1 : 0;
128 state->bvd2 = (status & ConXS_CFSR_BVD2) ? 1 : 0;
129 state->vs_3v = (status & ConXS_CFSR_VS1) ? 0 : 1;
130 state->vs_Xv = (status & ConXS_CFSR_VS2) ? 0 : 1;
131 state->wrprot = 0; /* not available */
132 break;
133
134#ifndef CONFIG_MACH_TRIZEPS_CONXS
135 /* on ConXS we only have one slot. Second is inactive */
136 case 1:
137 state->detect = 0;
138 state->ready = 0;
139 state->bvd1 = 0;
140 state->bvd2 = 0;
141 state->vs_3v = 0;
142 state->vs_Xv = 0;
143 state->wrprot = 0;
144 break;
145
146#endif
147 }
148}
149
150static int trizeps_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
151 const socket_state_t *state)
152{
153 int ret = 0;
154 unsigned short power = 0;
155
156 /* we do nothing here just check a bit */
157 switch (state->Vcc) {
158 case 0: power &= 0xfc; break;
159 case 33: power |= ConXS_BCR_S0_VCC_3V3; break;
160 case 50:
161 pr_err("%s(): Vcc 5V not supported in socket\n", __func__);
162 break;
163 default:
164 pr_err("%s(): bad Vcc %u\n", __func__, state->Vcc);
165 ret = -1;
166 }
167
168 switch (state->Vpp) {
169 case 0: power &= 0xf3; break;
170 case 33: power |= ConXS_BCR_S0_VPP_3V3; break;
171 case 120:
172 pr_err("%s(): Vpp 12V not supported in socket\n", __func__);
173 break;
174 default:
175 if (state->Vpp != state->Vcc) {
176 pr_err("%s(): bad Vpp %u\n", __func__, state->Vpp);
177 ret = -1;
178 }
179 }
180
181 switch (skt->nr) {
182 case 0: /* we only have 3.3V */
183 board_pcmcia_power(power);
184 break;
185
186#ifndef CONFIG_MACH_TRIZEPS_CONXS
187 /* on ConXS we only have one slot. Second is inactive */
188 case 1:
189#endif
190 default:
191 break;
192 }
193
194 return ret;
195}
196
197static void trizeps_pcmcia_socket_init(struct soc_pcmcia_socket *skt)
198{
199 /* default is on */
200 board_pcmcia_power(0x9);
201}
202
203static void trizeps_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
204{
205 board_pcmcia_power(0x0);
206}
207
208static struct pcmcia_low_level trizeps_pcmcia_ops = {
209 .owner = THIS_MODULE,
210 .hw_init = trizeps_pcmcia_hw_init,
211 .hw_shutdown = trizeps_pcmcia_hw_shutdown,
212 .socket_state = trizeps_pcmcia_socket_state,
213 .configure_socket = trizeps_pcmcia_configure_socket,
214 .socket_init = trizeps_pcmcia_socket_init,
215 .socket_suspend = trizeps_pcmcia_socket_suspend,
216#ifdef CONFIG_MACH_TRIZEPS_CONXS
217 .nr = 1,
218#else
219 .nr = 2,
220#endif
221 .first = 0,
222};
223
224static struct platform_device *trizeps_pcmcia_device;
225
226static int __init trizeps_pcmcia_init(void)
227{
228 int ret;
229
230 trizeps_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
231 if (!trizeps_pcmcia_device)
232 return -ENOMEM;
233
234 ret = platform_device_add_data(trizeps_pcmcia_device,
235 &trizeps_pcmcia_ops, sizeof(trizeps_pcmcia_ops));
236
237 if (ret == 0)
238 ret = platform_device_add(trizeps_pcmcia_device);
239
240 if (ret)
241 platform_device_put(trizeps_pcmcia_device);
242
243 return ret;
244}
245
246static void __exit trizeps_pcmcia_exit(void)
247{
248 platform_device_unregister(trizeps_pcmcia_device);
249}
250
251fs_initcall(trizeps_pcmcia_init);
252module_exit(trizeps_pcmcia_exit);
253
254MODULE_LICENSE("GPL");
255MODULE_AUTHOR("Juergen Schindele");
256MODULE_ALIAS("platform:pxa2xx-pcmcia");
diff --git a/drivers/pcmcia/pxa2xx_viper.c b/drivers/pcmcia/pxa2xx_viper.c
new file mode 100644
index 000000000000..dd10481be7bf
--- /dev/null
+++ b/drivers/pcmcia/pxa2xx_viper.c
@@ -0,0 +1,179 @@
1/*
2 * VIPER PCMCIA support
3 * Copyright 2004 Arcom Control Systems
4 *
5 * Maintained by Marc Zyngier <maz@misterjones.org>
6 * <marc.zyngier@altran.com>
7 *
8 * Based on:
9 * iPAQ h2200 PCMCIA support
10 * Copyright 2004 Koen Kooi <koen@vestingbar.nl>
11 *
12 * This file is subject to the terms and conditions of the GNU General Public
13 * License. See the file COPYING in the main directory of this archive for
14 * more details.
15 */
16
17#include <linux/module.h>
18#include <linux/init.h>
19#include <linux/kernel.h>
20#include <linux/errno.h>
21#include <linux/interrupt.h>
22#include <linux/platform_device.h>
23#include <linux/gpio.h>
24
25#include <pcmcia/ss.h>
26
27#include <asm/irq.h>
28
29#include <mach/pxa-regs.h>
30#include <mach/viper.h>
31#include <asm/mach-types.h>
32
33#include "soc_common.h"
34#include "pxa2xx_base.h"
35
36static struct pcmcia_irqs irqs[] = {
37 { 0, gpio_to_irq(VIPER_CF_CD_GPIO), "PCMCIA_CD" }
38};
39
40static int viper_pcmcia_hw_init(struct soc_pcmcia_socket *skt)
41{
42 unsigned long flags;
43
44 skt->irq = gpio_to_irq(VIPER_CF_RDY_GPIO);
45
46 if (gpio_request(VIPER_CF_CD_GPIO, "CF detect"))
47 goto err_request_cd;
48
49 if (gpio_request(VIPER_CF_RDY_GPIO, "CF ready"))
50 goto err_request_rdy;
51
52 if (gpio_request(VIPER_CF_POWER_GPIO, "CF power"))
53 goto err_request_pwr;
54
55 local_irq_save(flags);
56
57 /* GPIO 82 is the CF power enable line. initially off */
58 if (gpio_direction_output(VIPER_CF_POWER_GPIO, 0) ||
59 gpio_direction_input(VIPER_CF_CD_GPIO) ||
60 gpio_direction_input(VIPER_CF_RDY_GPIO)) {
61 local_irq_restore(flags);
62 goto err_dir;
63 }
64
65 local_irq_restore(flags);
66
67 return soc_pcmcia_request_irqs(skt, irqs, ARRAY_SIZE(irqs));
68
69err_dir:
70 gpio_free(VIPER_CF_POWER_GPIO);
71err_request_pwr:
72 gpio_free(VIPER_CF_RDY_GPIO);
73err_request_rdy:
74 gpio_free(VIPER_CF_CD_GPIO);
75err_request_cd:
76 printk(KERN_ERR "viper: Failed to setup PCMCIA GPIOs\n");
77 return -1;
78}
79
80/*
81 * Release all resources.
82 */
83static void viper_pcmcia_hw_shutdown(struct soc_pcmcia_socket *skt)
84{
85 soc_pcmcia_free_irqs(skt, irqs, ARRAY_SIZE(irqs));
86 gpio_free(VIPER_CF_POWER_GPIO);
87 gpio_free(VIPER_CF_RDY_GPIO);
88 gpio_free(VIPER_CF_CD_GPIO);
89}
90
91static void viper_pcmcia_socket_state(struct soc_pcmcia_socket *skt,
92 struct pcmcia_state *state)
93{
94 state->detect = gpio_get_value(VIPER_CF_CD_GPIO) ? 0 : 1;
95 state->ready = gpio_get_value(VIPER_CF_RDY_GPIO) ? 1 : 0;
96 state->bvd1 = 1;
97 state->bvd2 = 1;
98 state->wrprot = 0;
99 state->vs_3v = 1; /* Can only apply 3.3V */
100 state->vs_Xv = 0;
101}
102
103static int viper_pcmcia_configure_socket(struct soc_pcmcia_socket *skt,
104 const socket_state_t *state)
105{
106 /* Silently ignore Vpp, output enable, speaker enable. */
107 viper_cf_rst(state->flags & SS_RESET);
108
109 /* Apply socket voltage */
110 switch (state->Vcc) {
111 case 0:
112 gpio_set_value(VIPER_CF_POWER_GPIO, 0);
113 break;
114 case 33:
115 gpio_set_value(VIPER_CF_POWER_GPIO, 1);
116 break;
117 default:
118 printk(KERN_ERR "%s: Unsupported Vcc:%d\n",
119 __func__, state->Vcc);
120 return -1;
121 }
122
123 return 0;
124}
125
126static void viper_pcmcia_socket_init(struct soc_pcmcia_socket *skt)
127{
128}
129
130static void viper_pcmcia_socket_suspend(struct soc_pcmcia_socket *skt)
131{
132}
133
134static struct pcmcia_low_level viper_pcmcia_ops __initdata = {
135 .owner = THIS_MODULE,
136 .hw_init = viper_pcmcia_hw_init,
137 .hw_shutdown = viper_pcmcia_hw_shutdown,
138 .socket_state = viper_pcmcia_socket_state,
139 .configure_socket = viper_pcmcia_configure_socket,
140 .socket_init = viper_pcmcia_socket_init,
141 .socket_suspend = viper_pcmcia_socket_suspend,
142 .nr = 1,
143};
144
145static struct platform_device *viper_pcmcia_device;
146
147static int __init viper_pcmcia_init(void)
148{
149 int ret;
150
151 if (!machine_is_viper())
152 return -ENODEV;
153
154 viper_pcmcia_device = platform_device_alloc("pxa2xx-pcmcia", -1);
155 if (!viper_pcmcia_device)
156 return -ENOMEM;
157
158 ret = platform_device_add_data(viper_pcmcia_device,
159 &viper_pcmcia_ops,
160 sizeof(viper_pcmcia_ops));
161
162 if (!ret)
163 ret = platform_device_add(viper_pcmcia_device);
164
165 if (ret)
166 platform_device_put(viper_pcmcia_device);
167
168 return ret;
169}
170
171static void __exit viper_pcmcia_exit(void)
172{
173 platform_device_unregister(viper_pcmcia_device);
174}
175
176module_init(viper_pcmcia_init);
177module_exit(viper_pcmcia_exit);
178
179MODULE_LICENSE("GPL");
diff --git a/drivers/pcmcia/soc_common.c b/drivers/pcmcia/soc_common.c
index c48f3f69bdaf..da3972153226 100644
--- a/drivers/pcmcia/soc_common.c
+++ b/drivers/pcmcia/soc_common.c
@@ -748,7 +748,9 @@ int soc_common_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops
748 748
749 add_timer(&skt->poll_timer); 749 add_timer(&skt->poll_timer);
750 750
751 device_create_file(&skt->socket.dev, &dev_attr_status); 751 ret = device_create_file(&skt->socket.dev, &dev_attr_status);
752 if (ret)
753 goto out_err_8;
752 } 754 }
753 755
754 dev_set_drvdata(dev, sinfo); 756 dev_set_drvdata(dev, sinfo);
@@ -758,6 +760,8 @@ int soc_common_drv_pcmcia_probe(struct device *dev, struct pcmcia_low_level *ops
758 do { 760 do {
759 skt = &sinfo->skt[i]; 761 skt = &sinfo->skt[i];
760 762
763 device_remove_file(&skt->socket.dev, &dev_attr_status);
764 out_err_8:
761 del_timer_sync(&skt->poll_timer); 765 del_timer_sync(&skt->poll_timer);
762 pcmcia_unregister_socket(&skt->socket); 766 pcmcia_unregister_socket(&skt->socket);
763 767
diff --git a/drivers/pnp/pnpacpi/rsparser.c b/drivers/pnp/pnpacpi/rsparser.c
index d7e9f2152df0..95015cbfd33f 100644
--- a/drivers/pnp/pnpacpi/rsparser.c
+++ b/drivers/pnp/pnpacpi/rsparser.c
@@ -405,8 +405,6 @@ static acpi_status pnpacpi_allocated_resource(struct acpi_resource *res,
405 405
406 case ACPI_RESOURCE_TYPE_EXTENDED_IRQ: 406 case ACPI_RESOURCE_TYPE_EXTENDED_IRQ:
407 extended_irq = &res->data.extended_irq; 407 extended_irq = &res->data.extended_irq;
408 if (extended_irq->producer_consumer == ACPI_PRODUCER)
409 return AE_OK;
410 408
411 if (extended_irq->interrupt_count == 0) 409 if (extended_irq->interrupt_count == 0)
412 pnp_add_irq_resource(dev, 0, IORESOURCE_DISABLED); 410 pnp_add_irq_resource(dev, 0, IORESOURCE_DISABLED);
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index 9ce55850271a..1982f8b42782 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -56,10 +56,10 @@ config BATTERY_TOSA
56 Say Y to enable support for the battery on the Sharp Zaurus 56 Say Y to enable support for the battery on the Sharp Zaurus
57 SL-6000 (tosa) models. 57 SL-6000 (tosa) models.
58 58
59config BATTERY_PALMTX 59config BATTERY_WM97XX
60 tristate "Palm T|X battery" 60 bool "WM97xx generic battery driver"
61 depends on MACH_PALMTX 61 depends on TOUCHSCREEN_WM97XX
62 help 62 help
63 Say Y to enable support for the battery in Palm T|X. 63 Say Y to enable support for battery measured by WM97xx aux port.
64 64
65endif # POWER_SUPPLY 65endif # POWER_SUPPLY
diff --git a/drivers/power/Makefile b/drivers/power/Makefile
index 4706bf8ff459..4e20026cc45a 100644
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
@@ -21,4 +21,4 @@ obj-$(CONFIG_BATTERY_DS2760) += ds2760_battery.o
21obj-$(CONFIG_BATTERY_PMU) += pmu_battery.o 21obj-$(CONFIG_BATTERY_PMU) += pmu_battery.o
22obj-$(CONFIG_BATTERY_OLPC) += olpc_battery.o 22obj-$(CONFIG_BATTERY_OLPC) += olpc_battery.o
23obj-$(CONFIG_BATTERY_TOSA) += tosa_battery.o 23obj-$(CONFIG_BATTERY_TOSA) += tosa_battery.o
24obj-$(CONFIG_BATTERY_PALMTX) += palmtx_battery.o 24obj-$(CONFIG_BATTERY_WM97XX) += wm97xx_battery.o \ No newline at end of file
diff --git a/drivers/power/palmtx_battery.c b/drivers/power/palmtx_battery.c
deleted file mode 100644
index 7035bfa41c62..000000000000
--- a/drivers/power/palmtx_battery.c
+++ /dev/null
@@ -1,198 +0,0 @@
1/*
2 * linux/drivers/power/palmtx_battery.c
3 *
4 * Battery measurement code for Palm T|X Handheld computer
5 *
6 * based on tosa_battery.c
7 *
8 * Copyright (C) 2008 Marek Vasut <marek.vasut@gmail.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 *
14 */
15#include <linux/kernel.h>
16#include <linux/module.h>
17#include <linux/power_supply.h>
18#include <linux/wm97xx.h>
19#include <linux/delay.h>
20#include <linux/spinlock.h>
21#include <linux/interrupt.h>
22#include <linux/gpio.h>
23
24#include <asm/mach-types.h>
25#include <mach/palmtx.h>
26
27static DEFINE_MUTEX(bat_lock);
28static struct work_struct bat_work;
29struct mutex work_lock;
30int bat_status = POWER_SUPPLY_STATUS_DISCHARGING;
31
32static unsigned long palmtx_read_bat(struct power_supply *bat_ps)
33{
34 return wm97xx_read_aux_adc(bat_ps->dev->parent->driver_data,
35 WM97XX_AUX_ID3) * 1000 / 414;
36}
37
38static unsigned long palmtx_read_temp(struct power_supply *bat_ps)
39{
40 return wm97xx_read_aux_adc(bat_ps->dev->parent->driver_data,
41 WM97XX_AUX_ID2);
42}
43
44static int palmtx_bat_get_property(struct power_supply *bat_ps,
45 enum power_supply_property psp,
46 union power_supply_propval *val)
47{
48 switch (psp) {
49 case POWER_SUPPLY_PROP_STATUS:
50 val->intval = bat_status;
51 break;
52 case POWER_SUPPLY_PROP_TECHNOLOGY:
53 val->intval = POWER_SUPPLY_TECHNOLOGY_LIPO;
54 break;
55 case POWER_SUPPLY_PROP_VOLTAGE_NOW:
56 val->intval = palmtx_read_bat(bat_ps);
57 break;
58 case POWER_SUPPLY_PROP_VOLTAGE_MAX:
59 case POWER_SUPPLY_PROP_VOLTAGE_MAX_DESIGN:
60 val->intval = PALMTX_BAT_MAX_VOLTAGE;
61 break;
62 case POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN:
63 val->intval = PALMTX_BAT_MIN_VOLTAGE;
64 break;
65 case POWER_SUPPLY_PROP_TEMP:
66 val->intval = palmtx_read_temp(bat_ps);
67 break;
68 case POWER_SUPPLY_PROP_PRESENT:
69 val->intval = 1;
70 break;
71 default:
72 return -EINVAL;
73 }
74 return 0;
75}
76
77static void palmtx_bat_external_power_changed(struct power_supply *bat_ps)
78{
79 schedule_work(&bat_work);
80}
81
82static char *status_text[] = {
83 [POWER_SUPPLY_STATUS_UNKNOWN] = "Unknown",
84 [POWER_SUPPLY_STATUS_CHARGING] = "Charging",
85 [POWER_SUPPLY_STATUS_DISCHARGING] = "Discharging",
86};
87
88static void palmtx_bat_update(struct power_supply *bat_ps)
89{
90 int old_status = bat_status;
91
92 mutex_lock(&work_lock);
93
94 bat_status = gpio_get_value(GPIO_NR_PALMTX_POWER_DETECT) ?
95 POWER_SUPPLY_STATUS_CHARGING :
96 POWER_SUPPLY_STATUS_DISCHARGING;
97
98 if (old_status != bat_status) {
99 pr_debug("%s %s -> %s\n", bat_ps->name,
100 status_text[old_status],
101 status_text[bat_status]);
102 power_supply_changed(bat_ps);
103 }
104
105 mutex_unlock(&work_lock);
106}
107
108static enum power_supply_property palmtx_bat_main_props[] = {
109 POWER_SUPPLY_PROP_STATUS,
110 POWER_SUPPLY_PROP_TECHNOLOGY,
111 POWER_SUPPLY_PROP_VOLTAGE_NOW,
112 POWER_SUPPLY_PROP_VOLTAGE_MAX,
113 POWER_SUPPLY_PROP_VOLTAGE_MIN_DESIGN,
114 POWER_SUPPLY_PROP_TEMP,
115 POWER_SUPPLY_PROP_PRESENT,
116};
117
118struct power_supply bat_ps = {
119 .name = "main-battery",
120 .type = POWER_SUPPLY_TYPE_BATTERY,
121 .properties = palmtx_bat_main_props,
122 .num_properties = ARRAY_SIZE(palmtx_bat_main_props),
123 .get_property = palmtx_bat_get_property,
124 .external_power_changed = palmtx_bat_external_power_changed,
125 .use_for_apm = 1,
126};
127
128static void palmtx_bat_work(struct work_struct *work)
129{
130 palmtx_bat_update(&bat_ps);
131}
132
133#ifdef CONFIG_PM
134static int palmtx_bat_suspend(struct platform_device *dev, pm_message_t state)
135{
136 flush_scheduled_work();
137 return 0;
138}
139
140static int palmtx_bat_resume(struct platform_device *dev)
141{
142 schedule_work(&bat_work);
143 return 0;
144}
145#else
146#define palmtx_bat_suspend NULL
147#define palmtx_bat_resume NULL
148#endif
149
150static int __devinit palmtx_bat_probe(struct platform_device *dev)
151{
152 int ret = 0;
153
154 if (!machine_is_palmtx())
155 return -ENODEV;
156
157 mutex_init(&work_lock);
158
159 INIT_WORK(&bat_work, palmtx_bat_work);
160
161 ret = power_supply_register(&dev->dev, &bat_ps);
162 if (!ret)
163 schedule_work(&bat_work);
164
165 return ret;
166}
167
168static int __devexit palmtx_bat_remove(struct platform_device *dev)
169{
170 power_supply_unregister(&bat_ps);
171 return 0;
172}
173
174static struct platform_driver palmtx_bat_driver = {
175 .driver.name = "wm97xx-battery",
176 .driver.owner = THIS_MODULE,
177 .probe = palmtx_bat_probe,
178 .remove = __devexit_p(palmtx_bat_remove),
179 .suspend = palmtx_bat_suspend,
180 .resume = palmtx_bat_resume,
181};
182
183static int __init palmtx_bat_init(void)
184{
185 return platform_driver_register(&palmtx_bat_driver);
186}
187
188static void __exit palmtx_bat_exit(void)
189{
190 platform_driver_unregister(&palmtx_bat_driver);
191}
192
193module_init(palmtx_bat_init);
194module_exit(palmtx_bat_exit);
195
196MODULE_LICENSE("GPL");
197MODULE_AUTHOR("Marek Vasut <marek.vasut@gmail.com>");
198MODULE_DESCRIPTION("Palm T|X battery driver");
diff --git a/drivers/power/wm97xx_battery.c b/drivers/power/wm97xx_battery.c
new file mode 100644
index 000000000000..8bde92126d34
--- /dev/null
+++ b/drivers/power/wm97xx_battery.c
@@ -0,0 +1,272 @@
1/*
2 * linux/drivers/power/wm97xx_battery.c
3 *
4 * Battery measurement code for WM97xx
5 *
6 * based on tosa_battery.c
7 *
8 * Copyright (C) 2008 Marek Vasut <marek.vasut@gmail.com>
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
13 *
14 */
15
16#include <linux/init.h>
17#include <linux/kernel.h>
18#include <linux/module.h>
19#include <linux/platform_device.h>
20#include <linux/power_supply.h>
21#include <linux/wm97xx.h>
22#include <linux/spinlock.h>
23#include <linux/interrupt.h>
24#include <linux/gpio.h>
25#include <linux/wm97xx_batt.h>
26
27static DEFINE_MUTEX(bat_lock);
28static struct work_struct bat_work;
29struct mutex work_lock;
30static int bat_status = POWER_SUPPLY_STATUS_UNKNOWN;
31static struct wm97xx_batt_info *pdata;
32static enum power_supply_property *prop;
33
34static unsigned long wm97xx_read_bat(struct power_supply *bat_ps)
35{
36 return wm97xx_read_aux_adc(bat_ps->dev->parent->driver_data,
37 pdata->batt_aux) * pdata->batt_mult /
38 pdata->batt_div;
39}
40
41static unsigned long wm97xx_read_temp(struct power_supply *bat_ps)
42{
43 return wm97xx_read_aux_adc(bat_ps->dev->parent->driver_data,
44 pdata->temp_aux) * pdata->temp_mult /
45 pdata->temp_div;
46}
47
48static int wm97xx_bat_get_property(struct power_supply *bat_ps,
49 enum power_supply_property psp,
50 union power_supply_propval *val)
51{
52 switch (psp) {
53 case POWER_SUPPLY_PROP_STATUS:
54 val->intval = bat_status;
55 break;
56 case POWER_SUPPLY_PROP_TECHNOLOGY:
57 val->intval = pdata->batt_tech;
58 break;
59 case POWER_SUPPLY_PROP_VOLTAGE_NOW:
60 if (pdata->batt_aux >= 0)
61 val->intval = wm97xx_read_bat(bat_ps);
62 else
63 return -EINVAL;
64 break;
65 case POWER_SUPPLY_PROP_TEMP:
66 if (pdata->temp_aux >= 0)
67 val->intval = wm97xx_read_temp(bat_ps);
68 else
69 return -EINVAL;
70 break;
71 case POWER_SUPPLY_PROP_VOLTAGE_MAX:
72 if (pdata->max_voltage >= 0)
73 val->intval = pdata->max_voltage;
74 else
75 return -EINVAL;
76 break;
77 case POWER_SUPPLY_PROP_VOLTAGE_MIN:
78 if (pdata->min_voltage >= 0)
79 val->intval = pdata->min_voltage;
80 else
81 return -EINVAL;
82 break;
83 case POWER_SUPPLY_PROP_PRESENT:
84 val->intval = 1;
85 break;
86 default:
87 return -EINVAL;
88 }
89 return 0;
90}
91
92static void wm97xx_bat_external_power_changed(struct power_supply *bat_ps)
93{
94 schedule_work(&bat_work);
95}
96
97static void wm97xx_bat_update(struct power_supply *bat_ps)
98{
99 int old_status = bat_status;
100
101 mutex_lock(&work_lock);
102
103 bat_status = (pdata->charge_gpio >= 0) ?
104 (gpio_get_value(pdata->charge_gpio) ?
105 POWER_SUPPLY_STATUS_DISCHARGING :
106 POWER_SUPPLY_STATUS_CHARGING) :
107 POWER_SUPPLY_STATUS_UNKNOWN;
108
109 if (old_status != bat_status) {
110 pr_debug("%s: %i -> %i\n", bat_ps->name, old_status,
111 bat_status);
112 power_supply_changed(bat_ps);
113 }
114
115 mutex_unlock(&work_lock);
116}
117
118static struct power_supply bat_ps = {
119 .type = POWER_SUPPLY_TYPE_BATTERY,
120 .get_property = wm97xx_bat_get_property,
121 .external_power_changed = wm97xx_bat_external_power_changed,
122 .use_for_apm = 1,
123};
124
125static void wm97xx_bat_work(struct work_struct *work)
126{
127 wm97xx_bat_update(&bat_ps);
128}
129
130#ifdef CONFIG_PM
131static int wm97xx_bat_suspend(struct platform_device *dev, pm_message_t state)
132{
133 flush_scheduled_work();
134 return 0;
135}
136
137static int wm97xx_bat_resume(struct platform_device *dev)
138{
139 schedule_work(&bat_work);
140 return 0;
141}
142#else
143#define wm97xx_bat_suspend NULL
144#define wm97xx_bat_resume NULL
145#endif
146
147static int __devinit wm97xx_bat_probe(struct platform_device *dev)
148{
149 int ret = 0;
150 int props = 1; /* POWER_SUPPLY_PROP_PRESENT */
151 int i = 0;
152
153 if (dev->id != -1)
154 return -EINVAL;
155
156 mutex_init(&work_lock);
157
158 if (!pdata) {
159 dev_err(&dev->dev, "Please use wm97xx_bat_set_pdata\n");
160 return -EINVAL;
161 }
162
163 if (pdata->charge_gpio >= 0 && gpio_is_valid(pdata->charge_gpio)) {
164 ret = gpio_request(pdata->charge_gpio, "BATT CHRG");
165 if (ret)
166 goto err;
167 ret = gpio_direction_input(pdata->charge_gpio);
168 if (ret)
169 goto err2;
170 props++; /* POWER_SUPPLY_PROP_STATUS */
171 }
172
173 if (pdata->batt_tech >= 0)
174 props++; /* POWER_SUPPLY_PROP_TECHNOLOGY */
175 if (pdata->temp_aux >= 0)
176 props++; /* POWER_SUPPLY_PROP_TEMP */
177 if (pdata->batt_aux >= 0)
178 props++; /* POWER_SUPPLY_PROP_VOLTAGE_NOW */
179 if (pdata->max_voltage >= 0)
180 props++; /* POWER_SUPPLY_PROP_VOLTAGE_MAX */
181 if (pdata->min_voltage >= 0)
182 props++; /* POWER_SUPPLY_PROP_VOLTAGE_MIN */
183
184 prop = kzalloc(props * sizeof(*prop), GFP_KERNEL);
185 if (!prop)
186 goto err2;
187
188 prop[i++] = POWER_SUPPLY_PROP_PRESENT;
189 if (pdata->charge_gpio >= 0)
190 prop[i++] = POWER_SUPPLY_PROP_STATUS;
191 if (pdata->batt_tech >= 0)
192 prop[i++] = POWER_SUPPLY_PROP_TECHNOLOGY;
193 if (pdata->temp_aux >= 0)
194 prop[i++] = POWER_SUPPLY_PROP_TEMP;
195 if (pdata->batt_aux >= 0)
196 prop[i++] = POWER_SUPPLY_PROP_VOLTAGE_NOW;
197 if (pdata->max_voltage >= 0)
198 prop[i++] = POWER_SUPPLY_PROP_VOLTAGE_MAX;
199 if (pdata->min_voltage >= 0)
200 prop[i++] = POWER_SUPPLY_PROP_VOLTAGE_MIN;
201
202 INIT_WORK(&bat_work, wm97xx_bat_work);
203
204 if (!pdata->batt_name) {
205 dev_info(&dev->dev, "Please consider setting proper battery "
206 "name in platform definition file, falling "
207 "back to name \"wm97xx-batt\"\n");
208 bat_ps.name = "wm97xx-batt";
209 } else
210 bat_ps.name = pdata->batt_name;
211
212 bat_ps.properties = prop;
213 bat_ps.num_properties = props;
214
215 ret = power_supply_register(&dev->dev, &bat_ps);
216 if (!ret)
217 schedule_work(&bat_work);
218 else
219 goto err3;
220
221 return 0;
222err3:
223 kfree(prop);
224err2:
225 gpio_free(pdata->charge_gpio);
226err:
227 return ret;
228}
229
230static int __devexit wm97xx_bat_remove(struct platform_device *dev)
231{
232 if (pdata && pdata->charge_gpio && pdata->charge_gpio >= 0)
233 gpio_free(pdata->charge_gpio);
234 flush_scheduled_work();
235 power_supply_unregister(&bat_ps);
236 kfree(prop);
237 return 0;
238}
239
240static struct platform_driver wm97xx_bat_driver = {
241 .driver = {
242 .name = "wm97xx-battery",
243 .owner = THIS_MODULE,
244 },
245 .probe = wm97xx_bat_probe,
246 .remove = __devexit_p(wm97xx_bat_remove),
247 .suspend = wm97xx_bat_suspend,
248 .resume = wm97xx_bat_resume,
249};
250
251static int __init wm97xx_bat_init(void)
252{
253 return platform_driver_register(&wm97xx_bat_driver);
254}
255
256static void __exit wm97xx_bat_exit(void)
257{
258 platform_driver_unregister(&wm97xx_bat_driver);
259}
260
261void __init wm97xx_bat_set_pdata(struct wm97xx_batt_info *data)
262{
263 pdata = data;
264}
265EXPORT_SYMBOL_GPL(wm97xx_bat_set_pdata);
266
267module_init(wm97xx_bat_init);
268module_exit(wm97xx_bat_exit);
269
270MODULE_LICENSE("GPL");
271MODULE_AUTHOR("Marek Vasut <marek.vasut@gmail.com>");
272MODULE_DESCRIPTION("WM97xx battery driver");
diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
index 6ea349aba3ba..b184367637d0 100644
--- a/drivers/rtc/rtc-cmos.c
+++ b/drivers/rtc/rtc-cmos.c
@@ -800,7 +800,6 @@ static void __exit cmos_do_remove(struct device *dev)
800static int cmos_suspend(struct device *dev, pm_message_t mesg) 800static int cmos_suspend(struct device *dev, pm_message_t mesg)
801{ 801{
802 struct cmos_rtc *cmos = dev_get_drvdata(dev); 802 struct cmos_rtc *cmos = dev_get_drvdata(dev);
803 int do_wake = device_may_wakeup(dev);
804 unsigned char tmp; 803 unsigned char tmp;
805 804
806 /* only the alarm might be a wakeup event source */ 805 /* only the alarm might be a wakeup event source */
@@ -809,7 +808,7 @@ static int cmos_suspend(struct device *dev, pm_message_t mesg)
809 if (tmp & (RTC_PIE|RTC_AIE|RTC_UIE)) { 808 if (tmp & (RTC_PIE|RTC_AIE|RTC_UIE)) {
810 unsigned char mask; 809 unsigned char mask;
811 810
812 if (do_wake) 811 if (device_may_wakeup(dev))
813 mask = RTC_IRQMASK & ~RTC_AIE; 812 mask = RTC_IRQMASK & ~RTC_AIE;
814 else 813 else
815 mask = RTC_IRQMASK; 814 mask = RTC_IRQMASK;
@@ -837,6 +836,17 @@ static int cmos_suspend(struct device *dev, pm_message_t mesg)
837 return 0; 836 return 0;
838} 837}
839 838
839/* We want RTC alarms to wake us from e.g. ACPI G2/S5 "soft off", even
840 * after a detour through G3 "mechanical off", although the ACPI spec
841 * says wakeup should only work from G1/S4 "hibernate". To most users,
842 * distinctions between S4 and S5 are pointless. So when the hardware
843 * allows, don't draw that distinction.
844 */
845static inline int cmos_poweroff(struct device *dev)
846{
847 return cmos_suspend(dev, PMSG_HIBERNATE);
848}
849
840static int cmos_resume(struct device *dev) 850static int cmos_resume(struct device *dev)
841{ 851{
842 struct cmos_rtc *cmos = dev_get_drvdata(dev); 852 struct cmos_rtc *cmos = dev_get_drvdata(dev);
@@ -884,6 +894,12 @@ static int cmos_resume(struct device *dev)
884#else 894#else
885#define cmos_suspend NULL 895#define cmos_suspend NULL
886#define cmos_resume NULL 896#define cmos_resume NULL
897
898static inline int cmos_poweroff(struct device *dev)
899{
900 return -ENOSYS;
901}
902
887#endif 903#endif
888 904
889/*----------------------------------------------------------------*/ 905/*----------------------------------------------------------------*/
@@ -903,10 +919,6 @@ static int cmos_resume(struct device *dev)
903static int __devinit 919static int __devinit
904cmos_pnp_probe(struct pnp_dev *pnp, const struct pnp_device_id *id) 920cmos_pnp_probe(struct pnp_dev *pnp, const struct pnp_device_id *id)
905{ 921{
906 /* REVISIT paranoia argues for a shutdown notifier, since PNP
907 * drivers can't provide shutdown() methods to disable IRQs.
908 * Or better yet, fix PNP to allow those methods...
909 */
910 if (pnp_port_start(pnp,0) == 0x70 && !pnp_irq_valid(pnp,0)) 922 if (pnp_port_start(pnp,0) == 0x70 && !pnp_irq_valid(pnp,0))
911 /* Some machines contain a PNP entry for the RTC, but 923 /* Some machines contain a PNP entry for the RTC, but
912 * don't define the IRQ. It should always be safe to 924 * don't define the IRQ. It should always be safe to
@@ -942,6 +954,13 @@ static int cmos_pnp_resume(struct pnp_dev *pnp)
942#define cmos_pnp_resume NULL 954#define cmos_pnp_resume NULL
943#endif 955#endif
944 956
957static void cmos_pnp_shutdown(struct device *pdev)
958{
959 if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(pdev))
960 return;
961
962 cmos_do_shutdown();
963}
945 964
946static const struct pnp_device_id rtc_ids[] = { 965static const struct pnp_device_id rtc_ids[] = {
947 { .id = "PNP0b00", }, 966 { .id = "PNP0b00", },
@@ -961,6 +980,10 @@ static struct pnp_driver cmos_pnp_driver = {
961 .flags = PNP_DRIVER_RES_DO_NOT_CHANGE, 980 .flags = PNP_DRIVER_RES_DO_NOT_CHANGE,
962 .suspend = cmos_pnp_suspend, 981 .suspend = cmos_pnp_suspend,
963 .resume = cmos_pnp_resume, 982 .resume = cmos_pnp_resume,
983 .driver = {
984 .name = (char *)driver_name,
985 .shutdown = cmos_pnp_shutdown,
986 }
964}; 987};
965 988
966#endif /* CONFIG_PNP */ 989#endif /* CONFIG_PNP */
@@ -986,6 +1009,9 @@ static int __exit cmos_platform_remove(struct platform_device *pdev)
986 1009
987static void cmos_platform_shutdown(struct platform_device *pdev) 1010static void cmos_platform_shutdown(struct platform_device *pdev)
988{ 1011{
1012 if (system_state == SYSTEM_POWER_OFF && !cmos_poweroff(&pdev->dev))
1013 return;
1014
989 cmos_do_shutdown(); 1015 cmos_do_shutdown();
990} 1016}
991 1017
diff --git a/drivers/rtc/rtc-lib.c b/drivers/rtc/rtc-lib.c
index 9f996ec881ce..dd70bf73ce9d 100644
--- a/drivers/rtc/rtc-lib.c
+++ b/drivers/rtc/rtc-lib.c
@@ -51,10 +51,11 @@ EXPORT_SYMBOL(rtc_year_days);
51 */ 51 */
52void rtc_time_to_tm(unsigned long time, struct rtc_time *tm) 52void rtc_time_to_tm(unsigned long time, struct rtc_time *tm)
53{ 53{
54 unsigned int days, month, year; 54 unsigned int month, year;
55 int days;
55 56
56 days = time / 86400; 57 days = time / 86400;
57 time -= days * 86400; 58 time -= (unsigned int) days * 86400;
58 59
59 /* day of the week, 1970-01-01 was a Thursday */ 60 /* day of the week, 1970-01-01 was a Thursday */
60 tm->tm_wday = (days + 4) % 7; 61 tm->tm_wday = (days + 4) % 7;
diff --git a/drivers/s390/block/dcssblk.c b/drivers/s390/block/dcssblk.c
index db85f1fb131e..711b3004b3e6 100644
--- a/drivers/s390/block/dcssblk.c
+++ b/drivers/s390/block/dcssblk.c
@@ -384,9 +384,10 @@ dcssblk_add_store(struct device *dev, struct device_attribute *attr, const char
384 * get minor, add to list 384 * get minor, add to list
385 */ 385 */
386 down_write(&dcssblk_devices_sem); 386 down_write(&dcssblk_devices_sem);
387 if (dcssblk_get_segment_by_name(local_buf)) { 387 if (dcssblk_get_device_by_name(local_buf)) {
388 up_write(&dcssblk_devices_sem);
388 rc = -EEXIST; 389 rc = -EEXIST;
389 goto release_gd; 390 goto unload_seg;
390 } 391 }
391 rc = dcssblk_assign_free_minor(dev_info); 392 rc = dcssblk_assign_free_minor(dev_info);
392 if (rc) { 393 if (rc) {
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c
index db00b0591733..f1216cf6fa8f 100644
--- a/drivers/s390/cio/chp.c
+++ b/drivers/s390/cio/chp.c
@@ -423,7 +423,7 @@ int chp_new(struct chp_id chpid)
423 ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group); 423 ret = sysfs_create_group(&chp->dev.kobj, &chp_attr_group);
424 if (ret) { 424 if (ret) {
425 device_unregister(&chp->dev); 425 device_unregister(&chp->dev);
426 goto out_free; 426 goto out;
427 } 427 }
428 mutex_lock(&channel_subsystems[chpid.cssid]->mutex); 428 mutex_lock(&channel_subsystems[chpid.cssid]->mutex);
429 if (channel_subsystems[chpid.cssid]->cm_enabled) { 429 if (channel_subsystems[chpid.cssid]->cm_enabled) {
@@ -432,14 +432,15 @@ int chp_new(struct chp_id chpid)
432 sysfs_remove_group(&chp->dev.kobj, &chp_attr_group); 432 sysfs_remove_group(&chp->dev.kobj, &chp_attr_group);
433 device_unregister(&chp->dev); 433 device_unregister(&chp->dev);
434 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex); 434 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex);
435 goto out_free; 435 goto out;
436 } 436 }
437 } 437 }
438 channel_subsystems[chpid.cssid]->chps[chpid.id] = chp; 438 channel_subsystems[chpid.cssid]->chps[chpid.id] = chp;
439 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex); 439 mutex_unlock(&channel_subsystems[chpid.cssid]->mutex);
440 return ret; 440 goto out;
441out_free: 441out_free:
442 kfree(chp); 442 kfree(chp);
443out:
443 return ret; 444 return ret;
444} 445}
445 446
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 33bff8fec7d1..5954b905e3ca 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -208,8 +208,10 @@ cio_start_key (struct subchannel *sch, /* subchannel structure */
208 case 1: /* status pending */ 208 case 1: /* status pending */
209 case 2: /* busy */ 209 case 2: /* busy */
210 return -EBUSY; 210 return -EBUSY;
211 default: /* device/path not operational */ 211 case 3: /* device/path not operational */
212 return cio_start_handle_notoper(sch, lpm); 212 return cio_start_handle_notoper(sch, lpm);
213 default:
214 return ccode;
213 } 215 }
214} 216}
215 217
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 51489eff6b0b..1261e1a9e8cd 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -633,6 +633,11 @@ channel_subsystem_release(struct device *dev)
633 633
634 css = to_css(dev); 634 css = to_css(dev);
635 mutex_destroy(&css->mutex); 635 mutex_destroy(&css->mutex);
636 if (css->pseudo_subchannel) {
637 /* Implies that it has been generated but never registered. */
638 css_subchannel_release(&css->pseudo_subchannel->dev);
639 css->pseudo_subchannel = NULL;
640 }
636 kfree(css); 641 kfree(css);
637} 642}
638 643
@@ -785,11 +790,15 @@ init_channel_subsystem (void)
785 } 790 }
786 channel_subsystems[i] = css; 791 channel_subsystems[i] = css;
787 ret = setup_css(i); 792 ret = setup_css(i);
788 if (ret) 793 if (ret) {
789 goto out_free; 794 kfree(channel_subsystems[i]);
795 goto out_unregister;
796 }
790 ret = device_register(&css->device); 797 ret = device_register(&css->device);
791 if (ret) 798 if (ret) {
792 goto out_free_all; 799 put_device(&css->device);
800 goto out_unregister;
801 }
793 if (css_chsc_characteristics.secm) { 802 if (css_chsc_characteristics.secm) {
794 ret = device_create_file(&css->device, 803 ret = device_create_file(&css->device,
795 &dev_attr_cm_enable); 804 &dev_attr_cm_enable);
@@ -802,7 +811,7 @@ init_channel_subsystem (void)
802 } 811 }
803 ret = register_reboot_notifier(&css_reboot_notifier); 812 ret = register_reboot_notifier(&css_reboot_notifier);
804 if (ret) 813 if (ret)
805 goto out_pseudo; 814 goto out_unregister;
806 css_init_done = 1; 815 css_init_done = 1;
807 816
808 /* Enable default isc for I/O subchannels. */ 817 /* Enable default isc for I/O subchannels. */
@@ -810,18 +819,12 @@ init_channel_subsystem (void)
810 819
811 for_each_subchannel(__init_channel_subsystem, NULL); 820 for_each_subchannel(__init_channel_subsystem, NULL);
812 return 0; 821 return 0;
813out_pseudo:
814 device_unregister(&channel_subsystems[i]->pseudo_subchannel->dev);
815out_file: 822out_file:
816 device_remove_file(&channel_subsystems[i]->device, 823 if (css_chsc_characteristics.secm)
817 &dev_attr_cm_enable); 824 device_remove_file(&channel_subsystems[i]->device,
825 &dev_attr_cm_enable);
818out_device: 826out_device:
819 device_unregister(&channel_subsystems[i]->device); 827 device_unregister(&channel_subsystems[i]->device);
820out_free_all:
821 kfree(channel_subsystems[i]->pseudo_subchannel->lock);
822 kfree(channel_subsystems[i]->pseudo_subchannel);
823out_free:
824 kfree(channel_subsystems[i]);
825out_unregister: 828out_unregister:
826 while (i > 0) { 829 while (i > 0) {
827 struct channel_subsystem *css; 830 struct channel_subsystem *css;
@@ -829,6 +832,7 @@ out_unregister:
829 i--; 832 i--;
830 css = channel_subsystems[i]; 833 css = channel_subsystems[i];
831 device_unregister(&css->pseudo_subchannel->dev); 834 device_unregister(&css->pseudo_subchannel->dev);
835 css->pseudo_subchannel = NULL;
832 if (css_chsc_characteristics.secm) 836 if (css_chsc_characteristics.secm)
833 device_remove_file(&css->device, 837 device_remove_file(&css->device,
834 &dev_attr_cm_enable); 838 &dev_attr_cm_enable);
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
index 550508df952b..84cc9ea346db 100644
--- a/drivers/s390/cio/device_fsm.c
+++ b/drivers/s390/cio/device_fsm.c
@@ -658,6 +658,13 @@ ccw_device_offline(struct ccw_device *cdev)
658{ 658{
659 struct subchannel *sch; 659 struct subchannel *sch;
660 660
661 /* Allow ccw_device_offline while disconnected. */
662 if (cdev->private->state == DEV_STATE_DISCONNECTED ||
663 cdev->private->state == DEV_STATE_NOT_OPER) {
664 cdev->private->flags.donotify = 0;
665 ccw_device_done(cdev, DEV_STATE_NOT_OPER);
666 return 0;
667 }
661 if (ccw_device_is_orphan(cdev)) { 668 if (ccw_device_is_orphan(cdev)) {
662 ccw_device_done(cdev, DEV_STATE_OFFLINE); 669 ccw_device_done(cdev, DEV_STATE_OFFLINE);
663 return 0; 670 return 0;
diff --git a/drivers/s390/net/claw.c b/drivers/s390/net/claw.c
index a08b1682c8e8..e10ac9ab2d44 100644
--- a/drivers/s390/net/claw.c
+++ b/drivers/s390/net/claw.c
@@ -133,14 +133,14 @@ claw_register_debug_facility(void)
133static inline void 133static inline void
134claw_set_busy(struct net_device *dev) 134claw_set_busy(struct net_device *dev)
135{ 135{
136 ((struct claw_privbk *) dev->priv)->tbusy=1; 136 ((struct claw_privbk *)dev->ml_priv)->tbusy = 1;
137 eieio(); 137 eieio();
138} 138}
139 139
140static inline void 140static inline void
141claw_clear_busy(struct net_device *dev) 141claw_clear_busy(struct net_device *dev)
142{ 142{
143 clear_bit(0, &(((struct claw_privbk *) dev->priv)->tbusy)); 143 clear_bit(0, &(((struct claw_privbk *) dev->ml_priv)->tbusy));
144 netif_wake_queue(dev); 144 netif_wake_queue(dev);
145 eieio(); 145 eieio();
146} 146}
@@ -149,20 +149,20 @@ static inline int
149claw_check_busy(struct net_device *dev) 149claw_check_busy(struct net_device *dev)
150{ 150{
151 eieio(); 151 eieio();
152 return ((struct claw_privbk *) dev->priv)->tbusy; 152 return ((struct claw_privbk *) dev->ml_priv)->tbusy;
153} 153}
154 154
155static inline void 155static inline void
156claw_setbit_busy(int nr,struct net_device *dev) 156claw_setbit_busy(int nr,struct net_device *dev)
157{ 157{
158 netif_stop_queue(dev); 158 netif_stop_queue(dev);
159 set_bit(nr, (void *)&(((struct claw_privbk *)dev->priv)->tbusy)); 159 set_bit(nr, (void *)&(((struct claw_privbk *)dev->ml_priv)->tbusy));
160} 160}
161 161
162static inline void 162static inline void
163claw_clearbit_busy(int nr,struct net_device *dev) 163claw_clearbit_busy(int nr,struct net_device *dev)
164{ 164{
165 clear_bit(nr,(void *)&(((struct claw_privbk *)dev->priv)->tbusy)); 165 clear_bit(nr, (void *)&(((struct claw_privbk *)dev->ml_priv)->tbusy));
166 netif_wake_queue(dev); 166 netif_wake_queue(dev);
167} 167}
168 168
@@ -171,7 +171,7 @@ claw_test_and_setbit_busy(int nr,struct net_device *dev)
171{ 171{
172 netif_stop_queue(dev); 172 netif_stop_queue(dev);
173 return test_and_set_bit(nr, 173 return test_and_set_bit(nr,
174 (void *)&(((struct claw_privbk *) dev->priv)->tbusy)); 174 (void *)&(((struct claw_privbk *) dev->ml_priv)->tbusy));
175} 175}
176 176
177 177
@@ -271,6 +271,7 @@ claw_probe(struct ccwgroup_device *cgdev)
271 if (!get_device(&cgdev->dev)) 271 if (!get_device(&cgdev->dev))
272 return -ENODEV; 272 return -ENODEV;
273 privptr = kzalloc(sizeof(struct claw_privbk), GFP_KERNEL); 273 privptr = kzalloc(sizeof(struct claw_privbk), GFP_KERNEL);
274 cgdev->dev.driver_data = privptr;
274 if (privptr == NULL) { 275 if (privptr == NULL) {
275 probe_error(cgdev); 276 probe_error(cgdev);
276 put_device(&cgdev->dev); 277 put_device(&cgdev->dev);
@@ -305,7 +306,6 @@ claw_probe(struct ccwgroup_device *cgdev)
305 privptr->p_env->p_priv = privptr; 306 privptr->p_env->p_priv = privptr;
306 cgdev->cdev[0]->handler = claw_irq_handler; 307 cgdev->cdev[0]->handler = claw_irq_handler;
307 cgdev->cdev[1]->handler = claw_irq_handler; 308 cgdev->cdev[1]->handler = claw_irq_handler;
308 cgdev->dev.driver_data = privptr;
309 CLAW_DBF_TEXT(2, setup, "prbext 0"); 309 CLAW_DBF_TEXT(2, setup, "prbext 0");
310 310
311 return 0; 311 return 0;
@@ -319,7 +319,7 @@ static int
319claw_tx(struct sk_buff *skb, struct net_device *dev) 319claw_tx(struct sk_buff *skb, struct net_device *dev)
320{ 320{
321 int rc; 321 int rc;
322 struct claw_privbk *privptr=dev->priv; 322 struct claw_privbk *privptr = dev->ml_priv;
323 unsigned long saveflags; 323 unsigned long saveflags;
324 struct chbk *p_ch; 324 struct chbk *p_ch;
325 325
@@ -404,7 +404,7 @@ claw_pack_skb(struct claw_privbk *privptr)
404static int 404static int
405claw_change_mtu(struct net_device *dev, int new_mtu) 405claw_change_mtu(struct net_device *dev, int new_mtu)
406{ 406{
407 struct claw_privbk *privptr=dev->priv; 407 struct claw_privbk *privptr = dev->ml_priv;
408 int buff_size; 408 int buff_size;
409 CLAW_DBF_TEXT(4, trace, "setmtu"); 409 CLAW_DBF_TEXT(4, trace, "setmtu");
410 buff_size = privptr->p_env->write_size; 410 buff_size = privptr->p_env->write_size;
@@ -434,7 +434,7 @@ claw_open(struct net_device *dev)
434 struct ccwbk *p_buf; 434 struct ccwbk *p_buf;
435 435
436 CLAW_DBF_TEXT(4, trace, "open"); 436 CLAW_DBF_TEXT(4, trace, "open");
437 privptr = (struct claw_privbk *)dev->priv; 437 privptr = (struct claw_privbk *)dev->ml_priv;
438 /* allocate and initialize CCW blocks */ 438 /* allocate and initialize CCW blocks */
439 if (privptr->buffs_alloc == 0) { 439 if (privptr->buffs_alloc == 0) {
440 rc=init_ccw_bk(dev); 440 rc=init_ccw_bk(dev);
@@ -780,7 +780,7 @@ claw_irq_tasklet ( unsigned long data )
780 p_ch = (struct chbk *) data; 780 p_ch = (struct chbk *) data;
781 dev = (struct net_device *)p_ch->ndev; 781 dev = (struct net_device *)p_ch->ndev;
782 CLAW_DBF_TEXT(4, trace, "IRQtask"); 782 CLAW_DBF_TEXT(4, trace, "IRQtask");
783 privptr = (struct claw_privbk *) dev->priv; 783 privptr = (struct claw_privbk *)dev->ml_priv;
784 unpack_read(dev); 784 unpack_read(dev);
785 clear_bit(CLAW_BH_ACTIVE, (void *)&p_ch->flag_a); 785 clear_bit(CLAW_BH_ACTIVE, (void *)&p_ch->flag_a);
786 CLAW_DBF_TEXT(4, trace, "TskletXt"); 786 CLAW_DBF_TEXT(4, trace, "TskletXt");
@@ -805,7 +805,7 @@ claw_release(struct net_device *dev)
805 805
806 if (!dev) 806 if (!dev)
807 return 0; 807 return 0;
808 privptr = (struct claw_privbk *) dev->priv; 808 privptr = (struct claw_privbk *)dev->ml_priv;
809 if (!privptr) 809 if (!privptr)
810 return 0; 810 return 0;
811 CLAW_DBF_TEXT(4, trace, "release"); 811 CLAW_DBF_TEXT(4, trace, "release");
@@ -960,7 +960,7 @@ claw_write_next ( struct chbk * p_ch )
960 if (p_ch->claw_state == CLAW_STOP) 960 if (p_ch->claw_state == CLAW_STOP)
961 return; 961 return;
962 dev = (struct net_device *) p_ch->ndev; 962 dev = (struct net_device *) p_ch->ndev;
963 privptr = (struct claw_privbk *) dev->priv; 963 privptr = (struct claw_privbk *) dev->ml_priv;
964 claw_free_wrt_buf( dev ); 964 claw_free_wrt_buf( dev );
965 if ((privptr->write_free_count > 0) && 965 if ((privptr->write_free_count > 0) &&
966 !skb_queue_empty(&p_ch->collect_queue)) { 966 !skb_queue_empty(&p_ch->collect_queue)) {
@@ -1042,7 +1042,7 @@ add_claw_reads(struct net_device *dev, struct ccwbk* p_first,
1042 struct ccw1 temp_ccw; 1042 struct ccw1 temp_ccw;
1043 struct endccw * p_end; 1043 struct endccw * p_end;
1044 CLAW_DBF_TEXT(4, trace, "addreads"); 1044 CLAW_DBF_TEXT(4, trace, "addreads");
1045 privptr = dev->priv; 1045 privptr = dev->ml_priv;
1046 p_end = privptr->p_end_ccw; 1046 p_end = privptr->p_end_ccw;
1047 1047
1048 /* first CCW and last CCW contains a new set of read channel programs 1048 /* first CCW and last CCW contains a new set of read channel programs
@@ -1212,7 +1212,7 @@ find_link(struct net_device *dev, char *host_name, char *ws_name )
1212 int rc=0; 1212 int rc=0;
1213 1213
1214 CLAW_DBF_TEXT(2, setup, "findlink"); 1214 CLAW_DBF_TEXT(2, setup, "findlink");
1215 privptr=dev->priv; 1215 privptr = dev->ml_priv;
1216 p_env=privptr->p_env; 1216 p_env=privptr->p_env;
1217 switch (p_env->packing) 1217 switch (p_env->packing)
1218 { 1218 {
@@ -1264,7 +1264,7 @@ claw_hw_tx(struct sk_buff *skb, struct net_device *dev, long linkid)
1264 struct chbk *ch; 1264 struct chbk *ch;
1265 1265
1266 CLAW_DBF_TEXT(4, trace, "hw_tx"); 1266 CLAW_DBF_TEXT(4, trace, "hw_tx");
1267 privptr = (struct claw_privbk *) (dev->priv); 1267 privptr = (struct claw_privbk *)(dev->ml_priv);
1268 p_ch=(struct chbk *)&privptr->channel[WRITE]; 1268 p_ch=(struct chbk *)&privptr->channel[WRITE];
1269 p_env =privptr->p_env; 1269 p_env =privptr->p_env;
1270 claw_free_wrt_buf(dev); /* Clean up free chain if posible */ 1270 claw_free_wrt_buf(dev); /* Clean up free chain if posible */
@@ -1483,8 +1483,8 @@ init_ccw_bk(struct net_device *dev)
1483 struct ccwbk*p_last_CCWB; 1483 struct ccwbk*p_last_CCWB;
1484 struct ccwbk*p_first_CCWB; 1484 struct ccwbk*p_first_CCWB;
1485 struct endccw *p_endccw=NULL; 1485 struct endccw *p_endccw=NULL;
1486 addr_t real_address; 1486 addr_t real_address;
1487 struct claw_privbk *privptr=dev->priv; 1487 struct claw_privbk *privptr = dev->ml_priv;
1488 struct clawh *pClawH=NULL; 1488 struct clawh *pClawH=NULL;
1489 addr_t real_TIC_address; 1489 addr_t real_TIC_address;
1490 int i,j; 1490 int i,j;
@@ -1960,19 +1960,16 @@ init_ccw_bk(struct net_device *dev)
1960static void 1960static void
1961probe_error( struct ccwgroup_device *cgdev) 1961probe_error( struct ccwgroup_device *cgdev)
1962{ 1962{
1963 struct claw_privbk *privptr; 1963 struct claw_privbk *privptr;
1964 1964
1965 CLAW_DBF_TEXT(4, trace, "proberr"); 1965 CLAW_DBF_TEXT(4, trace, "proberr");
1966 privptr=(struct claw_privbk *)cgdev->dev.driver_data; 1966 privptr = (struct claw_privbk *) cgdev->dev.driver_data;
1967 if (privptr!=NULL) { 1967 if (privptr != NULL) {
1968 cgdev->dev.driver_data = NULL;
1968 kfree(privptr->p_env); 1969 kfree(privptr->p_env);
1969 privptr->p_env=NULL; 1970 kfree(privptr->p_mtc_envelope);
1970 kfree(privptr->p_mtc_envelope); 1971 kfree(privptr);
1971 privptr->p_mtc_envelope=NULL; 1972 }
1972 kfree(privptr);
1973 privptr=NULL;
1974 }
1975 return;
1976} /* probe_error */ 1973} /* probe_error */
1977 1974
1978/*-------------------------------------------------------------------* 1975/*-------------------------------------------------------------------*
@@ -2000,7 +1997,7 @@ claw_process_control( struct net_device *dev, struct ccwbk * p_ccw)
2000 CLAW_DBF_TEXT(2, setup, "clw_cntl"); 1997 CLAW_DBF_TEXT(2, setup, "clw_cntl");
2001 udelay(1000); /* Wait a ms for the control packets to 1998 udelay(1000); /* Wait a ms for the control packets to
2002 *catch up to each other */ 1999 *catch up to each other */
2003 privptr=dev->priv; 2000 privptr = dev->ml_priv;
2004 p_env=privptr->p_env; 2001 p_env=privptr->p_env;
2005 tdev = &privptr->channel[READ].cdev->dev; 2002 tdev = &privptr->channel[READ].cdev->dev;
2006 memcpy( &temp_host_name, p_env->host_name, 8); 2003 memcpy( &temp_host_name, p_env->host_name, 8);
@@ -2278,7 +2275,7 @@ claw_send_control(struct net_device *dev, __u8 type, __u8 link,
2278 struct sk_buff *skb; 2275 struct sk_buff *skb;
2279 2276
2280 CLAW_DBF_TEXT(2, setup, "sndcntl"); 2277 CLAW_DBF_TEXT(2, setup, "sndcntl");
2281 privptr=dev->priv; 2278 privptr = dev->ml_priv;
2282 p_ctl=(struct clawctl *)&privptr->ctl_bk; 2279 p_ctl=(struct clawctl *)&privptr->ctl_bk;
2283 2280
2284 p_ctl->command=type; 2281 p_ctl->command=type;
@@ -2348,7 +2345,7 @@ static int
2348claw_snd_conn_req(struct net_device *dev, __u8 link) 2345claw_snd_conn_req(struct net_device *dev, __u8 link)
2349{ 2346{
2350 int rc; 2347 int rc;
2351 struct claw_privbk *privptr=dev->priv; 2348 struct claw_privbk *privptr = dev->ml_priv;
2352 struct clawctl *p_ctl; 2349 struct clawctl *p_ctl;
2353 2350
2354 CLAW_DBF_TEXT(2, setup, "snd_conn"); 2351 CLAW_DBF_TEXT(2, setup, "snd_conn");
@@ -2408,7 +2405,7 @@ claw_snd_sys_validate_rsp(struct net_device *dev,
2408 int rc; 2405 int rc;
2409 2406
2410 CLAW_DBF_TEXT(2, setup, "chkresp"); 2407 CLAW_DBF_TEXT(2, setup, "chkresp");
2411 privptr = dev->priv; 2408 privptr = dev->ml_priv;
2412 p_env=privptr->p_env; 2409 p_env=privptr->p_env;
2413 rc=claw_send_control(dev, SYSTEM_VALIDATE_RESPONSE, 2410 rc=claw_send_control(dev, SYSTEM_VALIDATE_RESPONSE,
2414 p_ctl->linkid, 2411 p_ctl->linkid,
@@ -2446,7 +2443,7 @@ net_device_stats *claw_stats(struct net_device *dev)
2446 struct claw_privbk *privptr; 2443 struct claw_privbk *privptr;
2447 2444
2448 CLAW_DBF_TEXT(4, trace, "stats"); 2445 CLAW_DBF_TEXT(4, trace, "stats");
2449 privptr = dev->priv; 2446 privptr = dev->ml_priv;
2450 return &privptr->stats; 2447 return &privptr->stats;
2451} /* end of claw_stats */ 2448} /* end of claw_stats */
2452 2449
@@ -2482,7 +2479,7 @@ unpack_read(struct net_device *dev )
2482 p_last_ccw=NULL; 2479 p_last_ccw=NULL;
2483 p_packh=NULL; 2480 p_packh=NULL;
2484 p_packd=NULL; 2481 p_packd=NULL;
2485 privptr=dev->priv; 2482 privptr = dev->ml_priv;
2486 2483
2487 p_dev = &privptr->channel[READ].cdev->dev; 2484 p_dev = &privptr->channel[READ].cdev->dev;
2488 p_env = privptr->p_env; 2485 p_env = privptr->p_env;
@@ -2651,7 +2648,7 @@ claw_strt_read (struct net_device *dev, int lock )
2651 int rc = 0; 2648 int rc = 0;
2652 __u32 parm; 2649 __u32 parm;
2653 unsigned long saveflags = 0; 2650 unsigned long saveflags = 0;
2654 struct claw_privbk *privptr=dev->priv; 2651 struct claw_privbk *privptr = dev->ml_priv;
2655 struct ccwbk*p_ccwbk; 2652 struct ccwbk*p_ccwbk;
2656 struct chbk *p_ch; 2653 struct chbk *p_ch;
2657 struct clawh *p_clawh; 2654 struct clawh *p_clawh;
@@ -2708,7 +2705,7 @@ claw_strt_out_IO( struct net_device *dev )
2708 if (!dev) { 2705 if (!dev) {
2709 return; 2706 return;
2710 } 2707 }
2711 privptr=(struct claw_privbk *)dev->priv; 2708 privptr = (struct claw_privbk *)dev->ml_priv;
2712 p_ch=&privptr->channel[WRITE]; 2709 p_ch=&privptr->channel[WRITE];
2713 2710
2714 CLAW_DBF_TEXT(4, trace, "strt_io"); 2711 CLAW_DBF_TEXT(4, trace, "strt_io");
@@ -2741,7 +2738,7 @@ static void
2741claw_free_wrt_buf( struct net_device *dev ) 2738claw_free_wrt_buf( struct net_device *dev )
2742{ 2739{
2743 2740
2744 struct claw_privbk *privptr=(struct claw_privbk *)dev->priv; 2741 struct claw_privbk *privptr = (struct claw_privbk *)dev->ml_priv;
2745 struct ccwbk*p_first_ccw; 2742 struct ccwbk*p_first_ccw;
2746 struct ccwbk*p_last_ccw; 2743 struct ccwbk*p_last_ccw;
2747 struct ccwbk*p_this_ccw; 2744 struct ccwbk*p_this_ccw;
@@ -2798,13 +2795,13 @@ claw_free_netdevice(struct net_device * dev, int free_dev)
2798 if (!dev) 2795 if (!dev)
2799 return; 2796 return;
2800 CLAW_DBF_TEXT_(2, setup, "%s", dev->name); 2797 CLAW_DBF_TEXT_(2, setup, "%s", dev->name);
2801 privptr = dev->priv; 2798 privptr = dev->ml_priv;
2802 if (dev->flags & IFF_RUNNING) 2799 if (dev->flags & IFF_RUNNING)
2803 claw_release(dev); 2800 claw_release(dev);
2804 if (privptr) { 2801 if (privptr) {
2805 privptr->channel[READ].ndev = NULL; /* say it's free */ 2802 privptr->channel[READ].ndev = NULL; /* say it's free */
2806 } 2803 }
2807 dev->priv=NULL; 2804 dev->ml_priv = NULL;
2808#ifdef MODULE 2805#ifdef MODULE
2809 if (free_dev) { 2806 if (free_dev) {
2810 free_netdev(dev); 2807 free_netdev(dev);
@@ -2921,7 +2918,7 @@ claw_new_device(struct ccwgroup_device *cgdev)
2921 printk(KERN_WARNING "%s:alloc_netdev failed\n",__func__); 2918 printk(KERN_WARNING "%s:alloc_netdev failed\n",__func__);
2922 goto out; 2919 goto out;
2923 } 2920 }
2924 dev->priv = privptr; 2921 dev->ml_priv = privptr;
2925 cgdev->dev.driver_data = privptr; 2922 cgdev->dev.driver_data = privptr;
2926 cgdev->cdev[READ]->dev.driver_data = privptr; 2923 cgdev->cdev[READ]->dev.driver_data = privptr;
2927 cgdev->cdev[WRITE]->dev.driver_data = privptr; 2924 cgdev->cdev[WRITE]->dev.driver_data = privptr;
@@ -3002,7 +2999,7 @@ claw_shutdown_device(struct ccwgroup_device *cgdev)
3002 ret = claw_release(ndev); 2999 ret = claw_release(ndev);
3003 ndev->flags &=~IFF_RUNNING; 3000 ndev->flags &=~IFF_RUNNING;
3004 unregister_netdev(ndev); 3001 unregister_netdev(ndev);
3005 ndev->priv = NULL; /* cgdev data, not ndev's to free */ 3002 ndev->ml_priv = NULL; /* cgdev data, not ndev's to free */
3006 claw_free_netdevice(ndev, 1); 3003 claw_free_netdevice(ndev, 1);
3007 priv->channel[READ].ndev = NULL; 3004 priv->channel[READ].ndev = NULL;
3008 priv->channel[WRITE].ndev = NULL; 3005 priv->channel[WRITE].ndev = NULL;
diff --git a/drivers/s390/net/ctcm_fsms.c b/drivers/s390/net/ctcm_fsms.c
index 0b4e6253abe4..42776550acfd 100644
--- a/drivers/s390/net/ctcm_fsms.c
+++ b/drivers/s390/net/ctcm_fsms.c
@@ -245,7 +245,7 @@ static void chx_txdone(fsm_instance *fi, int event, void *arg)
245{ 245{
246 struct channel *ch = arg; 246 struct channel *ch = arg;
247 struct net_device *dev = ch->netdev; 247 struct net_device *dev = ch->netdev;
248 struct ctcm_priv *priv = dev->priv; 248 struct ctcm_priv *priv = dev->ml_priv;
249 struct sk_buff *skb; 249 struct sk_buff *skb;
250 int first = 1; 250 int first = 1;
251 int i; 251 int i;
@@ -336,7 +336,7 @@ void ctcm_chx_txidle(fsm_instance *fi, int event, void *arg)
336{ 336{
337 struct channel *ch = arg; 337 struct channel *ch = arg;
338 struct net_device *dev = ch->netdev; 338 struct net_device *dev = ch->netdev;
339 struct ctcm_priv *priv = dev->priv; 339 struct ctcm_priv *priv = dev->ml_priv;
340 340
341 CTCM_PR_DEBUG("%s(%s): %s\n", __func__, ch->id, dev->name); 341 CTCM_PR_DEBUG("%s(%s): %s\n", __func__, ch->id, dev->name);
342 342
@@ -357,7 +357,7 @@ static void chx_rx(fsm_instance *fi, int event, void *arg)
357{ 357{
358 struct channel *ch = arg; 358 struct channel *ch = arg;
359 struct net_device *dev = ch->netdev; 359 struct net_device *dev = ch->netdev;
360 struct ctcm_priv *priv = dev->priv; 360 struct ctcm_priv *priv = dev->ml_priv;
361 int len = ch->max_bufsize - ch->irb->scsw.cmd.count; 361 int len = ch->max_bufsize - ch->irb->scsw.cmd.count;
362 struct sk_buff *skb = ch->trans_skb; 362 struct sk_buff *skb = ch->trans_skb;
363 __u16 block_len = *((__u16 *)skb->data); 363 __u16 block_len = *((__u16 *)skb->data);
@@ -459,7 +459,7 @@ static void chx_firstio(fsm_instance *fi, int event, void *arg)
459 chx_rxidle(fi, event, arg); 459 chx_rxidle(fi, event, arg);
460 } else { 460 } else {
461 struct net_device *dev = ch->netdev; 461 struct net_device *dev = ch->netdev;
462 struct ctcm_priv *priv = dev->priv; 462 struct ctcm_priv *priv = dev->ml_priv;
463 fsm_newstate(fi, CTC_STATE_TXIDLE); 463 fsm_newstate(fi, CTC_STATE_TXIDLE);
464 fsm_event(priv->fsm, DEV_EVENT_TXUP, dev); 464 fsm_event(priv->fsm, DEV_EVENT_TXUP, dev);
465 } 465 }
@@ -496,7 +496,7 @@ static void chx_firstio(fsm_instance *fi, int event, void *arg)
496 if ((CHANNEL_DIRECTION(ch->flags) == READ) && 496 if ((CHANNEL_DIRECTION(ch->flags) == READ) &&
497 (ch->protocol == CTCM_PROTO_S390)) { 497 (ch->protocol == CTCM_PROTO_S390)) {
498 struct net_device *dev = ch->netdev; 498 struct net_device *dev = ch->netdev;
499 struct ctcm_priv *priv = dev->priv; 499 struct ctcm_priv *priv = dev->ml_priv;
500 fsm_event(priv->fsm, DEV_EVENT_RXUP, dev); 500 fsm_event(priv->fsm, DEV_EVENT_RXUP, dev);
501 } 501 }
502} 502}
@@ -514,7 +514,7 @@ static void chx_rxidle(fsm_instance *fi, int event, void *arg)
514{ 514{
515 struct channel *ch = arg; 515 struct channel *ch = arg;
516 struct net_device *dev = ch->netdev; 516 struct net_device *dev = ch->netdev;
517 struct ctcm_priv *priv = dev->priv; 517 struct ctcm_priv *priv = dev->ml_priv;
518 __u16 buflen; 518 __u16 buflen;
519 int rc; 519 int rc;
520 520
@@ -699,7 +699,7 @@ static void ctcm_chx_cleanup(fsm_instance *fi, int state,
699 struct channel *ch) 699 struct channel *ch)
700{ 700{
701 struct net_device *dev = ch->netdev; 701 struct net_device *dev = ch->netdev;
702 struct ctcm_priv *priv = dev->priv; 702 struct ctcm_priv *priv = dev->ml_priv;
703 703
704 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE, 704 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE,
705 "%s(%s): %s[%d]\n", 705 "%s(%s): %s[%d]\n",
@@ -784,7 +784,7 @@ static void ctcm_chx_setuperr(fsm_instance *fi, int event, void *arg)
784{ 784{
785 struct channel *ch = arg; 785 struct channel *ch = arg;
786 struct net_device *dev = ch->netdev; 786 struct net_device *dev = ch->netdev;
787 struct ctcm_priv *priv = dev->priv; 787 struct ctcm_priv *priv = dev->ml_priv;
788 788
789 /* 789 /*
790 * Special case: Got UC_RCRESET on setmode. 790 * Special case: Got UC_RCRESET on setmode.
@@ -874,7 +874,7 @@ static void ctcm_chx_rxiniterr(fsm_instance *fi, int event, void *arg)
874{ 874{
875 struct channel *ch = arg; 875 struct channel *ch = arg;
876 struct net_device *dev = ch->netdev; 876 struct net_device *dev = ch->netdev;
877 struct ctcm_priv *priv = dev->priv; 877 struct ctcm_priv *priv = dev->ml_priv;
878 878
879 if (event == CTC_EVENT_TIMER) { 879 if (event == CTC_EVENT_TIMER) {
880 if (!IS_MPCDEV(dev)) 880 if (!IS_MPCDEV(dev))
@@ -902,7 +902,7 @@ static void ctcm_chx_rxinitfail(fsm_instance *fi, int event, void *arg)
902{ 902{
903 struct channel *ch = arg; 903 struct channel *ch = arg;
904 struct net_device *dev = ch->netdev; 904 struct net_device *dev = ch->netdev;
905 struct ctcm_priv *priv = dev->priv; 905 struct ctcm_priv *priv = dev->ml_priv;
906 906
907 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR, 907 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR,
908 "%s(%s): RX %s busy, init. fail", 908 "%s(%s): RX %s busy, init. fail",
@@ -923,7 +923,7 @@ static void ctcm_chx_rxdisc(fsm_instance *fi, int event, void *arg)
923 struct channel *ch = arg; 923 struct channel *ch = arg;
924 struct channel *ch2; 924 struct channel *ch2;
925 struct net_device *dev = ch->netdev; 925 struct net_device *dev = ch->netdev;
926 struct ctcm_priv *priv = dev->priv; 926 struct ctcm_priv *priv = dev->ml_priv;
927 927
928 CTCM_DBF_TEXT_(TRACE, CTC_DBF_NOTICE, 928 CTCM_DBF_TEXT_(TRACE, CTC_DBF_NOTICE,
929 "%s: %s: remote disconnect - re-init ...", 929 "%s: %s: remote disconnect - re-init ...",
@@ -954,7 +954,7 @@ static void ctcm_chx_txiniterr(fsm_instance *fi, int event, void *arg)
954{ 954{
955 struct channel *ch = arg; 955 struct channel *ch = arg;
956 struct net_device *dev = ch->netdev; 956 struct net_device *dev = ch->netdev;
957 struct ctcm_priv *priv = dev->priv; 957 struct ctcm_priv *priv = dev->ml_priv;
958 958
959 if (event == CTC_EVENT_TIMER) { 959 if (event == CTC_EVENT_TIMER) {
960 fsm_deltimer(&ch->timer); 960 fsm_deltimer(&ch->timer);
@@ -984,7 +984,7 @@ static void ctcm_chx_txretry(fsm_instance *fi, int event, void *arg)
984{ 984{
985 struct channel *ch = arg; 985 struct channel *ch = arg;
986 struct net_device *dev = ch->netdev; 986 struct net_device *dev = ch->netdev;
987 struct ctcm_priv *priv = dev->priv; 987 struct ctcm_priv *priv = dev->ml_priv;
988 struct sk_buff *skb; 988 struct sk_buff *skb;
989 989
990 CTCM_PR_DEBUG("Enter: %s: cp=%i ch=0x%p id=%s\n", 990 CTCM_PR_DEBUG("Enter: %s: cp=%i ch=0x%p id=%s\n",
@@ -1057,7 +1057,7 @@ static void ctcm_chx_iofatal(fsm_instance *fi, int event, void *arg)
1057{ 1057{
1058 struct channel *ch = arg; 1058 struct channel *ch = arg;
1059 struct net_device *dev = ch->netdev; 1059 struct net_device *dev = ch->netdev;
1060 struct ctcm_priv *priv = dev->priv; 1060 struct ctcm_priv *priv = dev->ml_priv;
1061 int rd = CHANNEL_DIRECTION(ch->flags); 1061 int rd = CHANNEL_DIRECTION(ch->flags);
1062 1062
1063 fsm_deltimer(&ch->timer); 1063 fsm_deltimer(&ch->timer);
@@ -1207,7 +1207,7 @@ static void ctcmpc_chx_txdone(fsm_instance *fi, int event, void *arg)
1207{ 1207{
1208 struct channel *ch = arg; 1208 struct channel *ch = arg;
1209 struct net_device *dev = ch->netdev; 1209 struct net_device *dev = ch->netdev;
1210 struct ctcm_priv *priv = dev->priv; 1210 struct ctcm_priv *priv = dev->ml_priv;
1211 struct mpc_group *grp = priv->mpcg; 1211 struct mpc_group *grp = priv->mpcg;
1212 struct sk_buff *skb; 1212 struct sk_buff *skb;
1213 int first = 1; 1213 int first = 1;
@@ -1368,7 +1368,7 @@ static void ctcmpc_chx_rx(fsm_instance *fi, int event, void *arg)
1368{ 1368{
1369 struct channel *ch = arg; 1369 struct channel *ch = arg;
1370 struct net_device *dev = ch->netdev; 1370 struct net_device *dev = ch->netdev;
1371 struct ctcm_priv *priv = dev->priv; 1371 struct ctcm_priv *priv = dev->ml_priv;
1372 struct mpc_group *grp = priv->mpcg; 1372 struct mpc_group *grp = priv->mpcg;
1373 struct sk_buff *skb = ch->trans_skb; 1373 struct sk_buff *skb = ch->trans_skb;
1374 struct sk_buff *new_skb; 1374 struct sk_buff *new_skb;
@@ -1471,7 +1471,7 @@ static void ctcmpc_chx_firstio(fsm_instance *fi, int event, void *arg)
1471{ 1471{
1472 struct channel *ch = arg; 1472 struct channel *ch = arg;
1473 struct net_device *dev = ch->netdev; 1473 struct net_device *dev = ch->netdev;
1474 struct ctcm_priv *priv = dev->priv; 1474 struct ctcm_priv *priv = dev->ml_priv;
1475 struct mpc_group *gptr = priv->mpcg; 1475 struct mpc_group *gptr = priv->mpcg;
1476 1476
1477 CTCM_PR_DEBUG("Enter %s: id=%s, ch=0x%p\n", 1477 CTCM_PR_DEBUG("Enter %s: id=%s, ch=0x%p\n",
@@ -1525,7 +1525,7 @@ void ctcmpc_chx_rxidle(fsm_instance *fi, int event, void *arg)
1525{ 1525{
1526 struct channel *ch = arg; 1526 struct channel *ch = arg;
1527 struct net_device *dev = ch->netdev; 1527 struct net_device *dev = ch->netdev;
1528 struct ctcm_priv *priv = dev->priv; 1528 struct ctcm_priv *priv = dev->ml_priv;
1529 struct mpc_group *grp = priv->mpcg; 1529 struct mpc_group *grp = priv->mpcg;
1530 int rc; 1530 int rc;
1531 unsigned long saveflags = 0; /* avoids compiler warning */ 1531 unsigned long saveflags = 0; /* avoids compiler warning */
@@ -1580,7 +1580,7 @@ static void ctcmpc_chx_attn(fsm_instance *fsm, int event, void *arg)
1580{ 1580{
1581 struct channel *ch = arg; 1581 struct channel *ch = arg;
1582 struct net_device *dev = ch->netdev; 1582 struct net_device *dev = ch->netdev;
1583 struct ctcm_priv *priv = dev->priv; 1583 struct ctcm_priv *priv = dev->ml_priv;
1584 struct mpc_group *grp = priv->mpcg; 1584 struct mpc_group *grp = priv->mpcg;
1585 1585
1586 CTCM_PR_DEBUG("%s(%s): %s(ch=0x%p), cp=%i, ChStat:%s, GrpStat:%s\n", 1586 CTCM_PR_DEBUG("%s(%s): %s(ch=0x%p), cp=%i, ChStat:%s, GrpStat:%s\n",
@@ -1639,7 +1639,7 @@ static void ctcmpc_chx_attnbusy(fsm_instance *fsm, int event, void *arg)
1639{ 1639{
1640 struct channel *ch = arg; 1640 struct channel *ch = arg;
1641 struct net_device *dev = ch->netdev; 1641 struct net_device *dev = ch->netdev;
1642 struct ctcm_priv *priv = dev->priv; 1642 struct ctcm_priv *priv = dev->ml_priv;
1643 struct mpc_group *grp = priv->mpcg; 1643 struct mpc_group *grp = priv->mpcg;
1644 1644
1645 CTCM_PR_DEBUG("%s(%s): %s\n ChState:%s GrpState:%s\n", 1645 CTCM_PR_DEBUG("%s(%s): %s\n ChState:%s GrpState:%s\n",
@@ -1724,7 +1724,7 @@ static void ctcmpc_chx_resend(fsm_instance *fsm, int event, void *arg)
1724{ 1724{
1725 struct channel *ch = arg; 1725 struct channel *ch = arg;
1726 struct net_device *dev = ch->netdev; 1726 struct net_device *dev = ch->netdev;
1727 struct ctcm_priv *priv = dev->priv; 1727 struct ctcm_priv *priv = dev->ml_priv;
1728 struct mpc_group *grp = priv->mpcg; 1728 struct mpc_group *grp = priv->mpcg;
1729 1729
1730 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, ch); 1730 fsm_event(grp->fsm, MPCG_EVENT_XID0DO, ch);
@@ -1740,7 +1740,7 @@ static void ctcmpc_chx_send_sweep(fsm_instance *fsm, int event, void *arg)
1740{ 1740{
1741 struct channel *ach = arg; 1741 struct channel *ach = arg;
1742 struct net_device *dev = ach->netdev; 1742 struct net_device *dev = ach->netdev;
1743 struct ctcm_priv *priv = dev->priv; 1743 struct ctcm_priv *priv = dev->ml_priv;
1744 struct mpc_group *grp = priv->mpcg; 1744 struct mpc_group *grp = priv->mpcg;
1745 struct channel *wch = priv->channel[WRITE]; 1745 struct channel *wch = priv->channel[WRITE];
1746 struct channel *rch = priv->channel[READ]; 1746 struct channel *rch = priv->channel[READ];
@@ -2050,7 +2050,7 @@ int mpc_ch_fsm_len = ARRAY_SIZE(ctcmpc_ch_fsm);
2050static void dev_action_start(fsm_instance *fi, int event, void *arg) 2050static void dev_action_start(fsm_instance *fi, int event, void *arg)
2051{ 2051{
2052 struct net_device *dev = arg; 2052 struct net_device *dev = arg;
2053 struct ctcm_priv *priv = dev->priv; 2053 struct ctcm_priv *priv = dev->ml_priv;
2054 int direction; 2054 int direction;
2055 2055
2056 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 2056 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
@@ -2076,7 +2076,7 @@ static void dev_action_stop(fsm_instance *fi, int event, void *arg)
2076{ 2076{
2077 int direction; 2077 int direction;
2078 struct net_device *dev = arg; 2078 struct net_device *dev = arg;
2079 struct ctcm_priv *priv = dev->priv; 2079 struct ctcm_priv *priv = dev->ml_priv;
2080 2080
2081 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 2081 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
2082 2082
@@ -2096,7 +2096,7 @@ static void dev_action_restart(fsm_instance *fi, int event, void *arg)
2096{ 2096{
2097 int restart_timer; 2097 int restart_timer;
2098 struct net_device *dev = arg; 2098 struct net_device *dev = arg;
2099 struct ctcm_priv *priv = dev->priv; 2099 struct ctcm_priv *priv = dev->ml_priv;
2100 2100
2101 CTCMY_DBF_DEV_NAME(TRACE, dev, ""); 2101 CTCMY_DBF_DEV_NAME(TRACE, dev, "");
2102 2102
@@ -2133,12 +2133,12 @@ static void dev_action_restart(fsm_instance *fi, int event, void *arg)
2133static void dev_action_chup(fsm_instance *fi, int event, void *arg) 2133static void dev_action_chup(fsm_instance *fi, int event, void *arg)
2134{ 2134{
2135 struct net_device *dev = arg; 2135 struct net_device *dev = arg;
2136 struct ctcm_priv *priv = dev->priv; 2136 struct ctcm_priv *priv = dev->ml_priv;
2137 int dev_stat = fsm_getstate(fi); 2137 int dev_stat = fsm_getstate(fi);
2138 2138
2139 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE, 2139 CTCM_DBF_TEXT_(SETUP, CTC_DBF_NOTICE,
2140 "%s(%s): priv = %p [%d,%d]\n ", CTCM_FUNTAIL, 2140 "%s(%s): priv = %p [%d,%d]\n ", CTCM_FUNTAIL,
2141 dev->name, dev->priv, dev_stat, event); 2141 dev->name, dev->ml_priv, dev_stat, event);
2142 2142
2143 switch (fsm_getstate(fi)) { 2143 switch (fsm_getstate(fi)) {
2144 case DEV_STATE_STARTWAIT_RXTX: 2144 case DEV_STATE_STARTWAIT_RXTX:
@@ -2195,7 +2195,7 @@ static void dev_action_chdown(fsm_instance *fi, int event, void *arg)
2195{ 2195{
2196 2196
2197 struct net_device *dev = arg; 2197 struct net_device *dev = arg;
2198 struct ctcm_priv *priv = dev->priv; 2198 struct ctcm_priv *priv = dev->ml_priv;
2199 2199
2200 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 2200 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
2201 2201
diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c
index 126a3ebb8ab2..b11fec24c7d2 100644
--- a/drivers/s390/net/ctcm_main.c
+++ b/drivers/s390/net/ctcm_main.c
@@ -69,7 +69,7 @@ struct channel *channels;
69void ctcm_unpack_skb(struct channel *ch, struct sk_buff *pskb) 69void ctcm_unpack_skb(struct channel *ch, struct sk_buff *pskb)
70{ 70{
71 struct net_device *dev = ch->netdev; 71 struct net_device *dev = ch->netdev;
72 struct ctcm_priv *priv = dev->priv; 72 struct ctcm_priv *priv = dev->ml_priv;
73 __u16 len = *((__u16 *) pskb->data); 73 __u16 len = *((__u16 *) pskb->data);
74 74
75 skb_put(pskb, 2 + LL_HEADER_LENGTH); 75 skb_put(pskb, 2 + LL_HEADER_LENGTH);
@@ -414,7 +414,7 @@ int ctcm_ch_alloc_buffer(struct channel *ch)
414 */ 414 */
415int ctcm_open(struct net_device *dev) 415int ctcm_open(struct net_device *dev)
416{ 416{
417 struct ctcm_priv *priv = dev->priv; 417 struct ctcm_priv *priv = dev->ml_priv;
418 418
419 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 419 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
420 if (!IS_MPC(priv)) 420 if (!IS_MPC(priv))
@@ -432,7 +432,7 @@ int ctcm_open(struct net_device *dev)
432 */ 432 */
433int ctcm_close(struct net_device *dev) 433int ctcm_close(struct net_device *dev)
434{ 434{
435 struct ctcm_priv *priv = dev->priv; 435 struct ctcm_priv *priv = dev->ml_priv;
436 436
437 CTCMY_DBF_DEV_NAME(SETUP, dev, ""); 437 CTCMY_DBF_DEV_NAME(SETUP, dev, "");
438 if (!IS_MPC(priv)) 438 if (!IS_MPC(priv))
@@ -573,7 +573,7 @@ static int ctcm_transmit_skb(struct channel *ch, struct sk_buff *skb)
573 skb_pull(skb, LL_HEADER_LENGTH + 2); 573 skb_pull(skb, LL_HEADER_LENGTH + 2);
574 } else if (ccw_idx == 0) { 574 } else if (ccw_idx == 0) {
575 struct net_device *dev = ch->netdev; 575 struct net_device *dev = ch->netdev;
576 struct ctcm_priv *priv = dev->priv; 576 struct ctcm_priv *priv = dev->ml_priv;
577 priv->stats.tx_packets++; 577 priv->stats.tx_packets++;
578 priv->stats.tx_bytes += skb->len - LL_HEADER_LENGTH; 578 priv->stats.tx_bytes += skb->len - LL_HEADER_LENGTH;
579 } 579 }
@@ -592,7 +592,7 @@ static void ctcmpc_send_sweep_req(struct channel *rch)
592 struct channel *ch; 592 struct channel *ch;
593 /* int rc = 0; */ 593 /* int rc = 0; */
594 594
595 priv = dev->priv; 595 priv = dev->ml_priv;
596 grp = priv->mpcg; 596 grp = priv->mpcg;
597 ch = priv->channel[WRITE]; 597 ch = priv->channel[WRITE];
598 598
@@ -652,7 +652,7 @@ static int ctcmpc_transmit_skb(struct channel *ch, struct sk_buff *skb)
652{ 652{
653 struct pdu *p_header; 653 struct pdu *p_header;
654 struct net_device *dev = ch->netdev; 654 struct net_device *dev = ch->netdev;
655 struct ctcm_priv *priv = dev->priv; 655 struct ctcm_priv *priv = dev->ml_priv;
656 struct mpc_group *grp = priv->mpcg; 656 struct mpc_group *grp = priv->mpcg;
657 struct th_header *header; 657 struct th_header *header;
658 struct sk_buff *nskb; 658 struct sk_buff *nskb;
@@ -867,7 +867,7 @@ done:
867/* first merge version - leaving both functions separated */ 867/* first merge version - leaving both functions separated */
868static int ctcm_tx(struct sk_buff *skb, struct net_device *dev) 868static int ctcm_tx(struct sk_buff *skb, struct net_device *dev)
869{ 869{
870 struct ctcm_priv *priv = dev->priv; 870 struct ctcm_priv *priv = dev->ml_priv;
871 871
872 if (skb == NULL) { 872 if (skb == NULL) {
873 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR, 873 CTCM_DBF_TEXT_(ERROR, CTC_DBF_ERROR,
@@ -911,7 +911,7 @@ static int ctcm_tx(struct sk_buff *skb, struct net_device *dev)
911static int ctcmpc_tx(struct sk_buff *skb, struct net_device *dev) 911static int ctcmpc_tx(struct sk_buff *skb, struct net_device *dev)
912{ 912{
913 int len = 0; 913 int len = 0;
914 struct ctcm_priv *priv = dev->priv; 914 struct ctcm_priv *priv = dev->ml_priv;
915 struct mpc_group *grp = priv->mpcg; 915 struct mpc_group *grp = priv->mpcg;
916 struct sk_buff *newskb = NULL; 916 struct sk_buff *newskb = NULL;
917 917
@@ -1025,7 +1025,7 @@ static int ctcm_change_mtu(struct net_device *dev, int new_mtu)
1025 if (new_mtu < 576 || new_mtu > 65527) 1025 if (new_mtu < 576 || new_mtu > 65527)
1026 return -EINVAL; 1026 return -EINVAL;
1027 1027
1028 priv = dev->priv; 1028 priv = dev->ml_priv;
1029 max_bufsize = priv->channel[READ]->max_bufsize; 1029 max_bufsize = priv->channel[READ]->max_bufsize;
1030 1030
1031 if (IS_MPC(priv)) { 1031 if (IS_MPC(priv)) {
@@ -1050,7 +1050,7 @@ static int ctcm_change_mtu(struct net_device *dev, int new_mtu)
1050 */ 1050 */
1051static struct net_device_stats *ctcm_stats(struct net_device *dev) 1051static struct net_device_stats *ctcm_stats(struct net_device *dev)
1052{ 1052{
1053 return &((struct ctcm_priv *)dev->priv)->stats; 1053 return &((struct ctcm_priv *)dev->ml_priv)->stats;
1054} 1054}
1055 1055
1056static void ctcm_free_netdevice(struct net_device *dev) 1056static void ctcm_free_netdevice(struct net_device *dev)
@@ -1060,7 +1060,7 @@ static void ctcm_free_netdevice(struct net_device *dev)
1060 1060
1061 CTCM_DBF_TEXT_(SETUP, CTC_DBF_INFO, 1061 CTCM_DBF_TEXT_(SETUP, CTC_DBF_INFO,
1062 "%s(%s)", CTCM_FUNTAIL, dev->name); 1062 "%s(%s)", CTCM_FUNTAIL, dev->name);
1063 priv = dev->priv; 1063 priv = dev->ml_priv;
1064 if (priv) { 1064 if (priv) {
1065 grp = priv->mpcg; 1065 grp = priv->mpcg;
1066 if (grp) { 1066 if (grp) {
@@ -1125,7 +1125,7 @@ static struct net_device *ctcm_init_netdevice(struct ctcm_priv *priv)
1125 CTCM_FUNTAIL); 1125 CTCM_FUNTAIL);
1126 return NULL; 1126 return NULL;
1127 } 1127 }
1128 dev->priv = priv; 1128 dev->ml_priv = priv;
1129 priv->fsm = init_fsm("ctcmdev", dev_state_names, dev_event_names, 1129 priv->fsm = init_fsm("ctcmdev", dev_state_names, dev_event_names,
1130 CTCM_NR_DEV_STATES, CTCM_NR_DEV_EVENTS, 1130 CTCM_NR_DEV_STATES, CTCM_NR_DEV_EVENTS,
1131 dev_fsm, dev_fsm_len, GFP_KERNEL); 1131 dev_fsm, dev_fsm_len, GFP_KERNEL);
diff --git a/drivers/s390/net/ctcm_main.h b/drivers/s390/net/ctcm_main.h
index a72e0feeb27f..8e10ee86a5ee 100644
--- a/drivers/s390/net/ctcm_main.h
+++ b/drivers/s390/net/ctcm_main.h
@@ -229,14 +229,14 @@ void ctcm_remove_files(struct device *dev);
229 */ 229 */
230static inline void ctcm_clear_busy_do(struct net_device *dev) 230static inline void ctcm_clear_busy_do(struct net_device *dev)
231{ 231{
232 clear_bit(0, &(((struct ctcm_priv *)dev->priv)->tbusy)); 232 clear_bit(0, &(((struct ctcm_priv *)dev->ml_priv)->tbusy));
233 netif_wake_queue(dev); 233 netif_wake_queue(dev);
234} 234}
235 235
236static inline void ctcm_clear_busy(struct net_device *dev) 236static inline void ctcm_clear_busy(struct net_device *dev)
237{ 237{
238 struct mpc_group *grp; 238 struct mpc_group *grp;
239 grp = ((struct ctcm_priv *)dev->priv)->mpcg; 239 grp = ((struct ctcm_priv *)dev->ml_priv)->mpcg;
240 240
241 if (!(grp && grp->in_sweep)) 241 if (!(grp && grp->in_sweep))
242 ctcm_clear_busy_do(dev); 242 ctcm_clear_busy_do(dev);
@@ -246,7 +246,8 @@ static inline void ctcm_clear_busy(struct net_device *dev)
246static inline int ctcm_test_and_set_busy(struct net_device *dev) 246static inline int ctcm_test_and_set_busy(struct net_device *dev)
247{ 247{
248 netif_stop_queue(dev); 248 netif_stop_queue(dev);
249 return test_and_set_bit(0, &(((struct ctcm_priv *)dev->priv)->tbusy)); 249 return test_and_set_bit(0,
250 &(((struct ctcm_priv *)dev->ml_priv)->tbusy));
250} 251}
251 252
252extern int loglevel; 253extern int loglevel;
@@ -292,7 +293,7 @@ struct mpc_group *ctcmpc_init_mpc_group(struct ctcm_priv *priv);
292#define IS_MPC(p) ((p)->protocol == CTCM_PROTO_MPC) 293#define IS_MPC(p) ((p)->protocol == CTCM_PROTO_MPC)
293 294
294/* test if struct ctcm_priv of struct net_device has MPC protocol setting */ 295/* test if struct ctcm_priv of struct net_device has MPC protocol setting */
295#define IS_MPCDEV(d) IS_MPC((struct ctcm_priv *)d->priv) 296#define IS_MPCDEV(dev) IS_MPC((struct ctcm_priv *)dev->ml_priv)
296 297
297static inline gfp_t gfp_type(void) 298static inline gfp_t gfp_type(void)
298{ 299{
diff --git a/drivers/s390/net/ctcm_mpc.c b/drivers/s390/net/ctcm_mpc.c
index 2de1e2fccbf9..cbe470493bf0 100644
--- a/drivers/s390/net/ctcm_mpc.c
+++ b/drivers/s390/net/ctcm_mpc.c
@@ -312,10 +312,10 @@ static struct net_device *ctcmpc_get_dev(int port_num)
312 CTCM_FUNTAIL, device); 312 CTCM_FUNTAIL, device);
313 return NULL; 313 return NULL;
314 } 314 }
315 priv = dev->priv; 315 priv = dev->ml_priv;
316 if (priv == NULL) { 316 if (priv == NULL) {
317 CTCM_DBF_TEXT_(MPC_ERROR, CTC_DBF_ERROR, 317 CTCM_DBF_TEXT_(MPC_ERROR, CTC_DBF_ERROR,
318 "%s(%s): dev->priv is NULL", 318 "%s(%s): dev->ml_priv is NULL",
319 CTCM_FUNTAIL, device); 319 CTCM_FUNTAIL, device);
320 return NULL; 320 return NULL;
321 } 321 }
@@ -344,7 +344,7 @@ int ctc_mpc_alloc_channel(int port_num, void (*callback)(int, int))
344 dev = ctcmpc_get_dev(port_num); 344 dev = ctcmpc_get_dev(port_num);
345 if (dev == NULL) 345 if (dev == NULL)
346 return 1; 346 return 1;
347 priv = dev->priv; 347 priv = dev->ml_priv;
348 grp = priv->mpcg; 348 grp = priv->mpcg;
349 349
350 grp->allochanfunc = callback; 350 grp->allochanfunc = callback;
@@ -416,7 +416,7 @@ void ctc_mpc_establish_connectivity(int port_num,
416 dev = ctcmpc_get_dev(port_num); 416 dev = ctcmpc_get_dev(port_num);
417 if (dev == NULL) 417 if (dev == NULL)
418 return; 418 return;
419 priv = dev->priv; 419 priv = dev->ml_priv;
420 grp = priv->mpcg; 420 grp = priv->mpcg;
421 rch = priv->channel[READ]; 421 rch = priv->channel[READ];
422 wch = priv->channel[WRITE]; 422 wch = priv->channel[WRITE];
@@ -534,7 +534,7 @@ void ctc_mpc_dealloc_ch(int port_num)
534 dev = ctcmpc_get_dev(port_num); 534 dev = ctcmpc_get_dev(port_num);
535 if (dev == NULL) 535 if (dev == NULL)
536 return; 536 return;
537 priv = dev->priv; 537 priv = dev->ml_priv;
538 grp = priv->mpcg; 538 grp = priv->mpcg;
539 539
540 CTCM_DBF_TEXT_(MPC_SETUP, CTC_DBF_DEBUG, 540 CTCM_DBF_TEXT_(MPC_SETUP, CTC_DBF_DEBUG,
@@ -570,7 +570,7 @@ void ctc_mpc_flow_control(int port_num, int flowc)
570 dev = ctcmpc_get_dev(port_num); 570 dev = ctcmpc_get_dev(port_num);
571 if (dev == NULL) 571 if (dev == NULL)
572 return; 572 return;
573 priv = dev->priv; 573 priv = dev->ml_priv;
574 grp = priv->mpcg; 574 grp = priv->mpcg;
575 575
576 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_DEBUG, 576 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_DEBUG,
@@ -619,7 +619,7 @@ static void mpc_rcvd_sweep_resp(struct mpcg_info *mpcginfo)
619{ 619{
620 struct channel *rch = mpcginfo->ch; 620 struct channel *rch = mpcginfo->ch;
621 struct net_device *dev = rch->netdev; 621 struct net_device *dev = rch->netdev;
622 struct ctcm_priv *priv = dev->priv; 622 struct ctcm_priv *priv = dev->ml_priv;
623 struct mpc_group *grp = priv->mpcg; 623 struct mpc_group *grp = priv->mpcg;
624 struct channel *ch = priv->channel[WRITE]; 624 struct channel *ch = priv->channel[WRITE];
625 625
@@ -650,7 +650,7 @@ static void mpc_rcvd_sweep_resp(struct mpcg_info *mpcginfo)
650static void ctcmpc_send_sweep_resp(struct channel *rch) 650static void ctcmpc_send_sweep_resp(struct channel *rch)
651{ 651{
652 struct net_device *dev = rch->netdev; 652 struct net_device *dev = rch->netdev;
653 struct ctcm_priv *priv = dev->priv; 653 struct ctcm_priv *priv = dev->ml_priv;
654 struct mpc_group *grp = priv->mpcg; 654 struct mpc_group *grp = priv->mpcg;
655 int rc = 0; 655 int rc = 0;
656 struct th_sweep *header; 656 struct th_sweep *header;
@@ -712,7 +712,7 @@ static void mpc_rcvd_sweep_req(struct mpcg_info *mpcginfo)
712{ 712{
713 struct channel *rch = mpcginfo->ch; 713 struct channel *rch = mpcginfo->ch;
714 struct net_device *dev = rch->netdev; 714 struct net_device *dev = rch->netdev;
715 struct ctcm_priv *priv = dev->priv; 715 struct ctcm_priv *priv = dev->ml_priv;
716 struct mpc_group *grp = priv->mpcg; 716 struct mpc_group *grp = priv->mpcg;
717 struct channel *ch = priv->channel[WRITE]; 717 struct channel *ch = priv->channel[WRITE];
718 718
@@ -846,7 +846,7 @@ static int mpcg_fsm_len = ARRAY_SIZE(mpcg_fsm);
846static void mpc_action_go_ready(fsm_instance *fsm, int event, void *arg) 846static void mpc_action_go_ready(fsm_instance *fsm, int event, void *arg)
847{ 847{
848 struct net_device *dev = arg; 848 struct net_device *dev = arg;
849 struct ctcm_priv *priv = dev->priv; 849 struct ctcm_priv *priv = dev->ml_priv;
850 struct mpc_group *grp = priv->mpcg; 850 struct mpc_group *grp = priv->mpcg;
851 851
852 if (grp == NULL) { 852 if (grp == NULL) {
@@ -890,7 +890,7 @@ static void mpc_action_go_ready(fsm_instance *fsm, int event, void *arg)
890void mpc_group_ready(unsigned long adev) 890void mpc_group_ready(unsigned long adev)
891{ 891{
892 struct net_device *dev = (struct net_device *)adev; 892 struct net_device *dev = (struct net_device *)adev;
893 struct ctcm_priv *priv = dev->priv; 893 struct ctcm_priv *priv = dev->ml_priv;
894 struct mpc_group *grp = priv->mpcg; 894 struct mpc_group *grp = priv->mpcg;
895 struct channel *ch = NULL; 895 struct channel *ch = NULL;
896 896
@@ -946,7 +946,7 @@ void mpc_group_ready(unsigned long adev)
946void mpc_channel_action(struct channel *ch, int direction, int action) 946void mpc_channel_action(struct channel *ch, int direction, int action)
947{ 947{
948 struct net_device *dev = ch->netdev; 948 struct net_device *dev = ch->netdev;
949 struct ctcm_priv *priv = dev->priv; 949 struct ctcm_priv *priv = dev->ml_priv;
950 struct mpc_group *grp = priv->mpcg; 950 struct mpc_group *grp = priv->mpcg;
951 951
952 if (grp == NULL) { 952 if (grp == NULL) {
@@ -1056,7 +1056,7 @@ done:
1056static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb) 1056static void ctcmpc_unpack_skb(struct channel *ch, struct sk_buff *pskb)
1057{ 1057{
1058 struct net_device *dev = ch->netdev; 1058 struct net_device *dev = ch->netdev;
1059 struct ctcm_priv *priv = dev->priv; 1059 struct ctcm_priv *priv = dev->ml_priv;
1060 struct mpc_group *grp = priv->mpcg; 1060 struct mpc_group *grp = priv->mpcg;
1061 struct pdu *curr_pdu; 1061 struct pdu *curr_pdu;
1062 struct mpcg_info *mpcginfo; 1062 struct mpcg_info *mpcginfo;
@@ -1254,7 +1254,7 @@ void ctcmpc_bh(unsigned long thischan)
1254 struct channel *ch = (struct channel *)thischan; 1254 struct channel *ch = (struct channel *)thischan;
1255 struct sk_buff *skb; 1255 struct sk_buff *skb;
1256 struct net_device *dev = ch->netdev; 1256 struct net_device *dev = ch->netdev;
1257 struct ctcm_priv *priv = dev->priv; 1257 struct ctcm_priv *priv = dev->ml_priv;
1258 struct mpc_group *grp = priv->mpcg; 1258 struct mpc_group *grp = priv->mpcg;
1259 1259
1260 CTCM_PR_DEBUG("%s cp:%i enter: %s() %s\n", 1260 CTCM_PR_DEBUG("%s cp:%i enter: %s() %s\n",
@@ -1376,7 +1376,7 @@ static void mpc_action_go_inop(fsm_instance *fi, int event, void *arg)
1376 BUG_ON(dev == NULL); 1376 BUG_ON(dev == NULL);
1377 CTCM_PR_DEBUG("Enter %s: %s\n", __func__, dev->name); 1377 CTCM_PR_DEBUG("Enter %s: %s\n", __func__, dev->name);
1378 1378
1379 priv = dev->priv; 1379 priv = dev->ml_priv;
1380 grp = priv->mpcg; 1380 grp = priv->mpcg;
1381 grp->flow_off_called = 0; 1381 grp->flow_off_called = 0;
1382 fsm_deltimer(&grp->timer); 1382 fsm_deltimer(&grp->timer);
@@ -1482,7 +1482,7 @@ static void mpc_action_timeout(fsm_instance *fi, int event, void *arg)
1482 1482
1483 BUG_ON(dev == NULL); 1483 BUG_ON(dev == NULL);
1484 1484
1485 priv = dev->priv; 1485 priv = dev->ml_priv;
1486 grp = priv->mpcg; 1486 grp = priv->mpcg;
1487 wch = priv->channel[WRITE]; 1487 wch = priv->channel[WRITE];
1488 rch = priv->channel[READ]; 1488 rch = priv->channel[READ];
@@ -1520,7 +1520,7 @@ void mpc_action_discontact(fsm_instance *fi, int event, void *arg)
1520 if (ch) { 1520 if (ch) {
1521 dev = ch->netdev; 1521 dev = ch->netdev;
1522 if (dev) { 1522 if (dev) {
1523 priv = dev->priv; 1523 priv = dev->ml_priv;
1524 if (priv) { 1524 if (priv) {
1525 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_NOTICE, 1525 CTCM_DBF_TEXT_(MPC_TRACE, CTC_DBF_NOTICE,
1526 "%s: %s: %s\n", 1526 "%s: %s: %s\n",
@@ -1568,7 +1568,7 @@ static int mpc_validate_xid(struct mpcg_info *mpcginfo)
1568{ 1568{
1569 struct channel *ch = mpcginfo->ch; 1569 struct channel *ch = mpcginfo->ch;
1570 struct net_device *dev = ch->netdev; 1570 struct net_device *dev = ch->netdev;
1571 struct ctcm_priv *priv = dev->priv; 1571 struct ctcm_priv *priv = dev->ml_priv;
1572 struct mpc_group *grp = priv->mpcg; 1572 struct mpc_group *grp = priv->mpcg;
1573 struct xid2 *xid = mpcginfo->xid; 1573 struct xid2 *xid = mpcginfo->xid;
1574 int rc = 0; 1574 int rc = 0;
@@ -1865,7 +1865,7 @@ static void mpc_action_doxid0(fsm_instance *fsm, int event, void *arg)
1865{ 1865{
1866 struct channel *ch = arg; 1866 struct channel *ch = arg;
1867 struct net_device *dev = ch->netdev; 1867 struct net_device *dev = ch->netdev;
1868 struct ctcm_priv *priv = dev->priv; 1868 struct ctcm_priv *priv = dev->ml_priv;
1869 struct mpc_group *grp = priv->mpcg; 1869 struct mpc_group *grp = priv->mpcg;
1870 1870
1871 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n", 1871 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n",
@@ -1905,7 +1905,7 @@ static void mpc_action_doxid0(fsm_instance *fsm, int event, void *arg)
1905static void mpc_action_doxid7(fsm_instance *fsm, int event, void *arg) 1905static void mpc_action_doxid7(fsm_instance *fsm, int event, void *arg)
1906{ 1906{
1907 struct net_device *dev = arg; 1907 struct net_device *dev = arg;
1908 struct ctcm_priv *priv = dev->priv; 1908 struct ctcm_priv *priv = dev->ml_priv;
1909 struct mpc_group *grp = NULL; 1909 struct mpc_group *grp = NULL;
1910 int direction; 1910 int direction;
1911 int send = 0; 1911 int send = 0;
@@ -1982,7 +1982,7 @@ static void mpc_action_rcvd_xid0(fsm_instance *fsm, int event, void *arg)
1982 struct mpcg_info *mpcginfo = arg; 1982 struct mpcg_info *mpcginfo = arg;
1983 struct channel *ch = mpcginfo->ch; 1983 struct channel *ch = mpcginfo->ch;
1984 struct net_device *dev = ch->netdev; 1984 struct net_device *dev = ch->netdev;
1985 struct ctcm_priv *priv = dev->priv; 1985 struct ctcm_priv *priv = dev->ml_priv;
1986 struct mpc_group *grp = priv->mpcg; 1986 struct mpc_group *grp = priv->mpcg;
1987 1987
1988 CTCM_PR_DEBUG("%s: ch-id:%s xid2:%i xid7:%i xidt_p2:%i \n", 1988 CTCM_PR_DEBUG("%s: ch-id:%s xid2:%i xid7:%i xidt_p2:%i \n",
@@ -2044,7 +2044,7 @@ static void mpc_action_rcvd_xid7(fsm_instance *fsm, int event, void *arg)
2044 struct mpcg_info *mpcginfo = arg; 2044 struct mpcg_info *mpcginfo = arg;
2045 struct channel *ch = mpcginfo->ch; 2045 struct channel *ch = mpcginfo->ch;
2046 struct net_device *dev = ch->netdev; 2046 struct net_device *dev = ch->netdev;
2047 struct ctcm_priv *priv = dev->priv; 2047 struct ctcm_priv *priv = dev->ml_priv;
2048 struct mpc_group *grp = priv->mpcg; 2048 struct mpc_group *grp = priv->mpcg;
2049 2049
2050 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n", 2050 CTCM_PR_DEBUG("Enter %s: cp=%i ch=0x%p id=%s\n",
@@ -2096,7 +2096,7 @@ static int mpc_send_qllc_discontact(struct net_device *dev)
2096 __u32 new_len = 0; 2096 __u32 new_len = 0;
2097 struct sk_buff *skb; 2097 struct sk_buff *skb;
2098 struct qllc *qllcptr; 2098 struct qllc *qllcptr;
2099 struct ctcm_priv *priv = dev->priv; 2099 struct ctcm_priv *priv = dev->ml_priv;
2100 struct mpc_group *grp = priv->mpcg; 2100 struct mpc_group *grp = priv->mpcg;
2101 2101
2102 CTCM_PR_DEBUG("%s: GROUP STATE: %s\n", 2102 CTCM_PR_DEBUG("%s: GROUP STATE: %s\n",
diff --git a/drivers/s390/net/lcs.c b/drivers/s390/net/lcs.c
index 6de28385b354..9bcfa04d863b 100644
--- a/drivers/s390/net/lcs.c
+++ b/drivers/s390/net/lcs.c
@@ -1412,7 +1412,8 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
1412 } 1412 }
1413 /* How far in the ccw chain have we processed? */ 1413 /* How far in the ccw chain have we processed? */
1414 if ((channel->state != LCS_CH_STATE_INIT) && 1414 if ((channel->state != LCS_CH_STATE_INIT) &&
1415 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC)) { 1415 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) &&
1416 (irb->scsw.cmd.cpa != 0)) {
1416 index = (struct ccw1 *) __va((addr_t) irb->scsw.cmd.cpa) 1417 index = (struct ccw1 *) __va((addr_t) irb->scsw.cmd.cpa)
1417 - channel->ccws; 1418 - channel->ccws;
1418 if ((irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED) || 1419 if ((irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED) ||
diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h
index 80971c21ea1a..bf8a75c92f28 100644
--- a/drivers/s390/net/qeth_core.h
+++ b/drivers/s390/net/qeth_core.h
@@ -689,6 +689,7 @@ struct qeth_mc_mac {
689 struct list_head list; 689 struct list_head list;
690 __u8 mc_addr[MAX_ADDR_LEN]; 690 __u8 mc_addr[MAX_ADDR_LEN];
691 unsigned char mc_addrlen; 691 unsigned char mc_addrlen;
692 int is_vmac;
692}; 693};
693 694
694struct qeth_card { 695struct qeth_card {
diff --git a/drivers/s390/net/qeth_core_main.c b/drivers/s390/net/qeth_core_main.c
index bd420d1b9a0d..c7ab1b864516 100644
--- a/drivers/s390/net/qeth_core_main.c
+++ b/drivers/s390/net/qeth_core_main.c
@@ -3024,7 +3024,7 @@ static inline void __qeth_fill_buffer(struct sk_buff *skb,
3024 struct qdio_buffer *buffer, int is_tso, int *next_element_to_fill, 3024 struct qdio_buffer *buffer, int is_tso, int *next_element_to_fill,
3025 int offset) 3025 int offset)
3026{ 3026{
3027 int length = skb->len; 3027 int length = skb->len - offset;
3028 int length_here; 3028 int length_here;
3029 int element; 3029 int element;
3030 char *data; 3030 char *data;
diff --git a/drivers/s390/net/qeth_l2_main.c b/drivers/s390/net/qeth_l2_main.c
index b3cee032f578..3ac3cc1e03cc 100644
--- a/drivers/s390/net/qeth_l2_main.c
+++ b/drivers/s390/net/qeth_l2_main.c
@@ -177,9 +177,10 @@ static int qeth_l2_send_delgroupmac(struct qeth_card *card, __u8 *mac)
177 qeth_l2_send_delgroupmac_cb); 177 qeth_l2_send_delgroupmac_cb);
178} 178}
179 179
180static void qeth_l2_add_mc(struct qeth_card *card, __u8 *mac) 180static void qeth_l2_add_mc(struct qeth_card *card, __u8 *mac, int vmac)
181{ 181{
182 struct qeth_mc_mac *mc; 182 struct qeth_mc_mac *mc;
183 int rc;
183 184
184 mc = kmalloc(sizeof(struct qeth_mc_mac), GFP_ATOMIC); 185 mc = kmalloc(sizeof(struct qeth_mc_mac), GFP_ATOMIC);
185 186
@@ -188,8 +189,16 @@ static void qeth_l2_add_mc(struct qeth_card *card, __u8 *mac)
188 189
189 memcpy(mc->mc_addr, mac, OSA_ADDR_LEN); 190 memcpy(mc->mc_addr, mac, OSA_ADDR_LEN);
190 mc->mc_addrlen = OSA_ADDR_LEN; 191 mc->mc_addrlen = OSA_ADDR_LEN;
192 mc->is_vmac = vmac;
193
194 if (vmac) {
195 rc = qeth_l2_send_setdelmac(card, mac, IPA_CMD_SETVMAC,
196 NULL);
197 } else {
198 rc = qeth_l2_send_setgroupmac(card, mac);
199 }
191 200
192 if (!qeth_l2_send_setgroupmac(card, mac)) 201 if (!rc)
193 list_add_tail(&mc->list, &card->mc_list); 202 list_add_tail(&mc->list, &card->mc_list);
194 else 203 else
195 kfree(mc); 204 kfree(mc);
@@ -201,7 +210,11 @@ static void qeth_l2_del_all_mc(struct qeth_card *card)
201 210
202 spin_lock_bh(&card->mclock); 211 spin_lock_bh(&card->mclock);
203 list_for_each_entry_safe(mc, tmp, &card->mc_list, list) { 212 list_for_each_entry_safe(mc, tmp, &card->mc_list, list) {
204 qeth_l2_send_delgroupmac(card, mc->mc_addr); 213 if (mc->is_vmac)
214 qeth_l2_send_setdelmac(card, mc->mc_addr,
215 IPA_CMD_DELVMAC, NULL);
216 else
217 qeth_l2_send_delgroupmac(card, mc->mc_addr);
205 list_del(&mc->list); 218 list_del(&mc->list);
206 kfree(mc); 219 kfree(mc);
207 } 220 }
@@ -590,7 +603,7 @@ static int qeth_l2_set_mac_address(struct net_device *dev, void *p)
590static void qeth_l2_set_multicast_list(struct net_device *dev) 603static void qeth_l2_set_multicast_list(struct net_device *dev)
591{ 604{
592 struct qeth_card *card = dev->ml_priv; 605 struct qeth_card *card = dev->ml_priv;
593 struct dev_mc_list *dm; 606 struct dev_addr_list *dm;
594 607
595 if (card->info.type == QETH_CARD_TYPE_OSN) 608 if (card->info.type == QETH_CARD_TYPE_OSN)
596 return ; 609 return ;
@@ -599,7 +612,11 @@ static void qeth_l2_set_multicast_list(struct net_device *dev)
599 qeth_l2_del_all_mc(card); 612 qeth_l2_del_all_mc(card);
600 spin_lock_bh(&card->mclock); 613 spin_lock_bh(&card->mclock);
601 for (dm = dev->mc_list; dm; dm = dm->next) 614 for (dm = dev->mc_list; dm; dm = dm->next)
602 qeth_l2_add_mc(card, dm->dmi_addr); 615 qeth_l2_add_mc(card, dm->da_addr, 0);
616
617 for (dm = dev->uc_list; dm; dm = dm->next)
618 qeth_l2_add_mc(card, dm->da_addr, 1);
619
603 spin_unlock_bh(&card->mclock); 620 spin_unlock_bh(&card->mclock);
604 if (!qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE)) 621 if (!qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE))
605 return; 622 return;
diff --git a/drivers/s390/net/qeth_l3_sys.c b/drivers/s390/net/qeth_l3_sys.c
index ac1993708ae9..210ddb639748 100644
--- a/drivers/s390/net/qeth_l3_sys.c
+++ b/drivers/s390/net/qeth_l3_sys.c
@@ -136,7 +136,7 @@ static ssize_t qeth_l3_dev_route6_store(struct device *dev,
136 return -EINVAL; 136 return -EINVAL;
137 137
138 if (!qeth_is_supported(card, IPA_IPV6)) { 138 if (!qeth_is_supported(card, IPA_IPV6)) {
139 return -ENOTSUPP; 139 return -EOPNOTSUPP;
140 } 140 }
141 141
142 return qeth_l3_dev_route_store(card, &card->options.route6, 142 return qeth_l3_dev_route_store(card, &card->options.route6,
diff --git a/drivers/s390/scsi/zfcp_ccw.c b/drivers/s390/scsi/zfcp_ccw.c
index 391dd29749f8..51b6a05f4d12 100644
--- a/drivers/s390/scsi/zfcp_ccw.c
+++ b/drivers/s390/scsi/zfcp_ccw.c
@@ -152,10 +152,8 @@ static int zfcp_ccw_set_offline(struct ccw_device *ccw_device)
152 */ 152 */
153static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event) 153static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event)
154{ 154{
155 struct zfcp_adapter *adapter; 155 struct zfcp_adapter *adapter = dev_get_drvdata(&ccw_device->dev);
156 156
157 down(&zfcp_data.config_sema);
158 adapter = dev_get_drvdata(&ccw_device->dev);
159 switch (event) { 157 switch (event) {
160 case CIO_GONE: 158 case CIO_GONE:
161 dev_warn(&adapter->ccw_device->dev, "device gone\n"); 159 dev_warn(&adapter->ccw_device->dev, "device gone\n");
@@ -174,8 +172,6 @@ static int zfcp_ccw_notify(struct ccw_device *ccw_device, int event)
174 89, NULL); 172 89, NULL);
175 break; 173 break;
176 } 174 }
177 zfcp_erp_wait(adapter);
178 up(&zfcp_data.config_sema);
179 return 1; 175 return 1;
180} 176}
181 177
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c
index e984469bb98b..56196c98c07b 100644
--- a/drivers/s390/scsi/zfcp_fc.c
+++ b/drivers/s390/scsi/zfcp_fc.c
@@ -39,18 +39,6 @@ struct zfcp_gpn_ft {
39 struct scatterlist sg_resp[ZFCP_GPN_FT_BUFFERS]; 39 struct scatterlist sg_resp[ZFCP_GPN_FT_BUFFERS];
40}; 40};
41 41
42static struct zfcp_port *zfcp_get_port_by_did(struct zfcp_adapter *adapter,
43 u32 d_id)
44{
45 struct zfcp_port *port;
46
47 list_for_each_entry(port, &adapter->port_list_head, list)
48 if ((port->d_id == d_id) &&
49 !atomic_test_mask(ZFCP_STATUS_COMMON_REMOVE, &port->status))
50 return port;
51 return NULL;
52}
53
54static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range, 42static void _zfcp_fc_incoming_rscn(struct zfcp_fsf_req *fsf_req, u32 range,
55 struct fcp_rscn_element *elem) 43 struct fcp_rscn_element *elem)
56{ 44{
@@ -341,12 +329,13 @@ void zfcp_test_link(struct zfcp_port *port)
341 329
342 zfcp_port_get(port); 330 zfcp_port_get(port);
343 retval = zfcp_fc_adisc(port); 331 retval = zfcp_fc_adisc(port);
344 if (retval == 0 || retval == -EBUSY) 332 if (retval == 0)
345 return; 333 return;
346 334
347 /* send of ADISC was not possible */ 335 /* send of ADISC was not possible */
348 zfcp_port_put(port); 336 zfcp_port_put(port);
349 zfcp_erp_port_forced_reopen(port, 0, 65, NULL); 337 if (retval != -EBUSY)
338 zfcp_erp_port_forced_reopen(port, 0, 65, NULL);
350} 339}
351 340
352static int zfcp_scan_get_nameserver(struct zfcp_adapter *adapter) 341static int zfcp_scan_get_nameserver(struct zfcp_adapter *adapter)
@@ -363,7 +352,6 @@ static int zfcp_scan_get_nameserver(struct zfcp_adapter *adapter)
363 if (ret) 352 if (ret)
364 return ret; 353 return ret;
365 zfcp_erp_wait(adapter); 354 zfcp_erp_wait(adapter);
366 zfcp_port_put(adapter->nameserver_port);
367 } 355 }
368 return !atomic_test_mask(ZFCP_STATUS_COMMON_UNBLOCKED, 356 return !atomic_test_mask(ZFCP_STATUS_COMMON_UNBLOCKED,
369 &adapter->nameserver_port->status); 357 &adapter->nameserver_port->status);
@@ -475,7 +463,7 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft)
475 struct zfcp_adapter *adapter = ct->port->adapter; 463 struct zfcp_adapter *adapter = ct->port->adapter;
476 struct zfcp_port *port, *tmp; 464 struct zfcp_port *port, *tmp;
477 u32 d_id; 465 u32 d_id;
478 int ret = 0, x; 466 int ret = 0, x, last = 0;
479 467
480 if (ct->status) 468 if (ct->status)
481 return -EIO; 469 return -EIO;
@@ -492,19 +480,24 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft)
492 down(&zfcp_data.config_sema); 480 down(&zfcp_data.config_sema);
493 481
494 /* first entry is the header */ 482 /* first entry is the header */
495 for (x = 1; x < ZFCP_GPN_FT_MAX_ENTRIES; x++) { 483 for (x = 1; x < ZFCP_GPN_FT_MAX_ENTRIES && !last; x++) {
496 if (x % (ZFCP_GPN_FT_ENTRIES + 1)) 484 if (x % (ZFCP_GPN_FT_ENTRIES + 1))
497 acc++; 485 acc++;
498 else 486 else
499 acc = sg_virt(++sg); 487 acc = sg_virt(++sg);
500 488
489 last = acc->control & 0x80;
501 d_id = acc->port_id[0] << 16 | acc->port_id[1] << 8 | 490 d_id = acc->port_id[0] << 16 | acc->port_id[1] << 8 |
502 acc->port_id[2]; 491 acc->port_id[2];
503 492
504 /* skip the adapter's port and known remote ports */ 493 /* skip the adapter's port and known remote ports */
505 if (acc->wwpn == fc_host_port_name(adapter->scsi_host) || 494 if (acc->wwpn == fc_host_port_name(adapter->scsi_host))
506 zfcp_get_port_by_did(adapter, d_id)) 495 continue;
496 port = zfcp_get_port_by_wwpn(adapter, acc->wwpn);
497 if (port) {
498 zfcp_port_get(port);
507 continue; 499 continue;
500 }
508 501
509 port = zfcp_port_enqueue(adapter, acc->wwpn, 502 port = zfcp_port_enqueue(adapter, acc->wwpn,
510 ZFCP_STATUS_PORT_DID_DID | 503 ZFCP_STATUS_PORT_DID_DID |
@@ -513,8 +506,6 @@ static int zfcp_scan_eval_gpn_ft(struct zfcp_gpn_ft *gpn_ft)
513 ret = PTR_ERR(port); 506 ret = PTR_ERR(port);
514 else 507 else
515 zfcp_erp_port_reopen(port, 0, 149, NULL); 508 zfcp_erp_port_reopen(port, 0, 149, NULL);
516 if (acc->control & 0x80) /* last entry */
517 break;
518 } 509 }
519 510
520 zfcp_erp_wait(adapter); 511 zfcp_erp_wait(adapter);
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 19c1ca913874..49dbeb754e5f 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -710,10 +710,10 @@ static void zfcp_fsf_exchange_port_data_handler(struct zfcp_fsf_req *req)
710 710
711static int zfcp_fsf_sbal_check(struct zfcp_qdio_queue *queue) 711static int zfcp_fsf_sbal_check(struct zfcp_qdio_queue *queue)
712{ 712{
713 spin_lock(&queue->lock); 713 spin_lock_bh(&queue->lock);
714 if (atomic_read(&queue->count)) 714 if (atomic_read(&queue->count))
715 return 1; 715 return 1;
716 spin_unlock(&queue->lock); 716 spin_unlock_bh(&queue->lock);
717 return 0; 717 return 0;
718} 718}
719 719
@@ -722,13 +722,13 @@ static int zfcp_fsf_req_sbal_get(struct zfcp_adapter *adapter)
722 long ret; 722 long ret;
723 struct zfcp_qdio_queue *req_q = &adapter->req_q; 723 struct zfcp_qdio_queue *req_q = &adapter->req_q;
724 724
725 spin_unlock(&req_q->lock); 725 spin_unlock_bh(&req_q->lock);
726 ret = wait_event_interruptible_timeout(adapter->request_wq, 726 ret = wait_event_interruptible_timeout(adapter->request_wq,
727 zfcp_fsf_sbal_check(req_q), 5 * HZ); 727 zfcp_fsf_sbal_check(req_q), 5 * HZ);
728 if (ret > 0) 728 if (ret > 0)
729 return 0; 729 return 0;
730 730
731 spin_lock(&req_q->lock); 731 spin_lock_bh(&req_q->lock);
732 return -EIO; 732 return -EIO;
733} 733}
734 734
@@ -870,14 +870,14 @@ int zfcp_fsf_status_read(struct zfcp_adapter *adapter)
870 volatile struct qdio_buffer_element *sbale; 870 volatile struct qdio_buffer_element *sbale;
871 int retval = -EIO; 871 int retval = -EIO;
872 872
873 spin_lock(&adapter->req_q.lock); 873 spin_lock_bh(&adapter->req_q.lock);
874 if (zfcp_fsf_req_sbal_get(adapter)) 874 if (zfcp_fsf_req_sbal_get(adapter))
875 goto out; 875 goto out;
876 876
877 req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS, 877 req = zfcp_fsf_req_create(adapter, FSF_QTCB_UNSOLICITED_STATUS,
878 ZFCP_REQ_NO_QTCB, 878 ZFCP_REQ_NO_QTCB,
879 adapter->pool.fsf_req_status_read); 879 adapter->pool.fsf_req_status_read);
880 if (unlikely(IS_ERR(req))) { 880 if (IS_ERR(req)) {
881 retval = PTR_ERR(req); 881 retval = PTR_ERR(req);
882 goto out; 882 goto out;
883 } 883 }
@@ -910,7 +910,7 @@ failed_buf:
910 zfcp_fsf_req_free(req); 910 zfcp_fsf_req_free(req);
911 zfcp_hba_dbf_event_fsf_unsol("fail", adapter, NULL); 911 zfcp_hba_dbf_event_fsf_unsol("fail", adapter, NULL);
912out: 912out:
913 spin_unlock(&adapter->req_q.lock); 913 spin_unlock_bh(&adapter->req_q.lock);
914 return retval; 914 return retval;
915} 915}
916 916
@@ -988,7 +988,7 @@ struct zfcp_fsf_req *zfcp_fsf_abort_fcp_command(unsigned long old_req_id,
988 goto out; 988 goto out;
989 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND, 989 req = zfcp_fsf_req_create(adapter, FSF_QTCB_ABORT_FCP_CMND,
990 req_flags, adapter->pool.fsf_req_abort); 990 req_flags, adapter->pool.fsf_req_abort);
991 if (unlikely(IS_ERR(req))) 991 if (IS_ERR(req))
992 goto out; 992 goto out;
993 993
994 if (unlikely(!(atomic_read(&unit->status) & 994 if (unlikely(!(atomic_read(&unit->status) &
@@ -1106,13 +1106,13 @@ int zfcp_fsf_send_ct(struct zfcp_send_ct *ct, mempool_t *pool,
1106 struct zfcp_fsf_req *req; 1106 struct zfcp_fsf_req *req;
1107 int ret = -EIO; 1107 int ret = -EIO;
1108 1108
1109 spin_lock(&adapter->req_q.lock); 1109 spin_lock_bh(&adapter->req_q.lock);
1110 if (zfcp_fsf_req_sbal_get(adapter)) 1110 if (zfcp_fsf_req_sbal_get(adapter))
1111 goto out; 1111 goto out;
1112 1112
1113 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC, 1113 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_GENERIC,
1114 ZFCP_REQ_AUTO_CLEANUP, pool); 1114 ZFCP_REQ_AUTO_CLEANUP, pool);
1115 if (unlikely(IS_ERR(req))) { 1115 if (IS_ERR(req)) {
1116 ret = PTR_ERR(req); 1116 ret = PTR_ERR(req);
1117 goto out; 1117 goto out;
1118 } 1118 }
@@ -1148,7 +1148,7 @@ failed_send:
1148 if (erp_action) 1148 if (erp_action)
1149 erp_action->fsf_req = NULL; 1149 erp_action->fsf_req = NULL;
1150out: 1150out:
1151 spin_unlock(&adapter->req_q.lock); 1151 spin_unlock_bh(&adapter->req_q.lock);
1152 return ret; 1152 return ret;
1153} 1153}
1154 1154
@@ -1223,7 +1223,7 @@ int zfcp_fsf_send_els(struct zfcp_send_els *els)
1223 goto out; 1223 goto out;
1224 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS, 1224 req = zfcp_fsf_req_create(adapter, FSF_QTCB_SEND_ELS,
1225 ZFCP_REQ_AUTO_CLEANUP, NULL); 1225 ZFCP_REQ_AUTO_CLEANUP, NULL);
1226 if (unlikely(IS_ERR(req))) { 1226 if (IS_ERR(req)) {
1227 ret = PTR_ERR(req); 1227 ret = PTR_ERR(req);
1228 goto out; 1228 goto out;
1229 } 1229 }
@@ -1263,14 +1263,14 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action)
1263 struct zfcp_adapter *adapter = erp_action->adapter; 1263 struct zfcp_adapter *adapter = erp_action->adapter;
1264 int retval = -EIO; 1264 int retval = -EIO;
1265 1265
1266 spin_lock(&adapter->req_q.lock); 1266 spin_lock_bh(&adapter->req_q.lock);
1267 if (!atomic_read(&adapter->req_q.count)) 1267 if (!atomic_read(&adapter->req_q.count))
1268 goto out; 1268 goto out;
1269 req = zfcp_fsf_req_create(adapter, 1269 req = zfcp_fsf_req_create(adapter,
1270 FSF_QTCB_EXCHANGE_CONFIG_DATA, 1270 FSF_QTCB_EXCHANGE_CONFIG_DATA,
1271 ZFCP_REQ_AUTO_CLEANUP, 1271 ZFCP_REQ_AUTO_CLEANUP,
1272 adapter->pool.fsf_req_erp); 1272 adapter->pool.fsf_req_erp);
1273 if (unlikely(IS_ERR(req))) { 1273 if (IS_ERR(req)) {
1274 retval = PTR_ERR(req); 1274 retval = PTR_ERR(req);
1275 goto out; 1275 goto out;
1276 } 1276 }
@@ -1295,7 +1295,7 @@ int zfcp_fsf_exchange_config_data(struct zfcp_erp_action *erp_action)
1295 erp_action->fsf_req = NULL; 1295 erp_action->fsf_req = NULL;
1296 } 1296 }
1297out: 1297out:
1298 spin_unlock(&adapter->req_q.lock); 1298 spin_unlock_bh(&adapter->req_q.lock);
1299 return retval; 1299 return retval;
1300} 1300}
1301 1301
@@ -1306,13 +1306,13 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
1306 struct zfcp_fsf_req *req = NULL; 1306 struct zfcp_fsf_req *req = NULL;
1307 int retval = -EIO; 1307 int retval = -EIO;
1308 1308
1309 spin_lock(&adapter->req_q.lock); 1309 spin_lock_bh(&adapter->req_q.lock);
1310 if (zfcp_fsf_req_sbal_get(adapter)) 1310 if (zfcp_fsf_req_sbal_get(adapter))
1311 goto out; 1311 goto out;
1312 1312
1313 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA, 1313 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_CONFIG_DATA,
1314 0, NULL); 1314 0, NULL);
1315 if (unlikely(IS_ERR(req))) { 1315 if (IS_ERR(req)) {
1316 retval = PTR_ERR(req); 1316 retval = PTR_ERR(req);
1317 goto out; 1317 goto out;
1318 } 1318 }
@@ -1334,7 +1334,7 @@ int zfcp_fsf_exchange_config_data_sync(struct zfcp_adapter *adapter,
1334 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 1334 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
1335 retval = zfcp_fsf_req_send(req); 1335 retval = zfcp_fsf_req_send(req);
1336out: 1336out:
1337 spin_unlock(&adapter->req_q.lock); 1337 spin_unlock_bh(&adapter->req_q.lock);
1338 if (!retval) 1338 if (!retval)
1339 wait_event(req->completion_wq, 1339 wait_event(req->completion_wq,
1340 req->status & ZFCP_STATUS_FSFREQ_COMPLETED); 1340 req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
@@ -1359,13 +1359,13 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action)
1359 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT)) 1359 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
1360 return -EOPNOTSUPP; 1360 return -EOPNOTSUPP;
1361 1361
1362 spin_lock(&adapter->req_q.lock); 1362 spin_lock_bh(&adapter->req_q.lock);
1363 if (!atomic_read(&adapter->req_q.count)) 1363 if (!atomic_read(&adapter->req_q.count))
1364 goto out; 1364 goto out;
1365 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 1365 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA,
1366 ZFCP_REQ_AUTO_CLEANUP, 1366 ZFCP_REQ_AUTO_CLEANUP,
1367 adapter->pool.fsf_req_erp); 1367 adapter->pool.fsf_req_erp);
1368 if (unlikely(IS_ERR(req))) { 1368 if (IS_ERR(req)) {
1369 retval = PTR_ERR(req); 1369 retval = PTR_ERR(req);
1370 goto out; 1370 goto out;
1371 } 1371 }
@@ -1385,7 +1385,7 @@ int zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action)
1385 erp_action->fsf_req = NULL; 1385 erp_action->fsf_req = NULL;
1386 } 1386 }
1387out: 1387out:
1388 spin_unlock(&adapter->req_q.lock); 1388 spin_unlock_bh(&adapter->req_q.lock);
1389 return retval; 1389 return retval;
1390} 1390}
1391 1391
@@ -1405,13 +1405,13 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
1405 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT)) 1405 if (!(adapter->adapter_features & FSF_FEATURE_HBAAPI_MANAGEMENT))
1406 return -EOPNOTSUPP; 1406 return -EOPNOTSUPP;
1407 1407
1408 spin_lock(&adapter->req_q.lock); 1408 spin_lock_bh(&adapter->req_q.lock);
1409 if (!atomic_read(&adapter->req_q.count)) 1409 if (!atomic_read(&adapter->req_q.count))
1410 goto out; 1410 goto out;
1411 1411
1412 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0, 1412 req = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 0,
1413 NULL); 1413 NULL);
1414 if (unlikely(IS_ERR(req))) { 1414 if (IS_ERR(req)) {
1415 retval = PTR_ERR(req); 1415 retval = PTR_ERR(req);
1416 goto out; 1416 goto out;
1417 } 1417 }
@@ -1427,7 +1427,7 @@ int zfcp_fsf_exchange_port_data_sync(struct zfcp_adapter *adapter,
1427 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 1427 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
1428 retval = zfcp_fsf_req_send(req); 1428 retval = zfcp_fsf_req_send(req);
1429out: 1429out:
1430 spin_unlock(&adapter->req_q.lock); 1430 spin_unlock_bh(&adapter->req_q.lock);
1431 if (!retval) 1431 if (!retval)
1432 wait_event(req->completion_wq, 1432 wait_event(req->completion_wq,
1433 req->status & ZFCP_STATUS_FSFREQ_COMPLETED); 1433 req->status & ZFCP_STATUS_FSFREQ_COMPLETED);
@@ -1531,7 +1531,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
1531 struct zfcp_fsf_req *req; 1531 struct zfcp_fsf_req *req;
1532 int retval = -EIO; 1532 int retval = -EIO;
1533 1533
1534 spin_lock(&adapter->req_q.lock); 1534 spin_lock_bh(&adapter->req_q.lock);
1535 if (zfcp_fsf_req_sbal_get(adapter)) 1535 if (zfcp_fsf_req_sbal_get(adapter))
1536 goto out; 1536 goto out;
1537 1537
@@ -1539,7 +1539,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
1539 FSF_QTCB_OPEN_PORT_WITH_DID, 1539 FSF_QTCB_OPEN_PORT_WITH_DID,
1540 ZFCP_REQ_AUTO_CLEANUP, 1540 ZFCP_REQ_AUTO_CLEANUP,
1541 adapter->pool.fsf_req_erp); 1541 adapter->pool.fsf_req_erp);
1542 if (unlikely(IS_ERR(req))) { 1542 if (IS_ERR(req)) {
1543 retval = PTR_ERR(req); 1543 retval = PTR_ERR(req);
1544 goto out; 1544 goto out;
1545 } 1545 }
@@ -1562,7 +1562,7 @@ int zfcp_fsf_open_port(struct zfcp_erp_action *erp_action)
1562 erp_action->fsf_req = NULL; 1562 erp_action->fsf_req = NULL;
1563 } 1563 }
1564out: 1564out:
1565 spin_unlock(&adapter->req_q.lock); 1565 spin_unlock_bh(&adapter->req_q.lock);
1566 return retval; 1566 return retval;
1567} 1567}
1568 1568
@@ -1603,14 +1603,14 @@ int zfcp_fsf_close_port(struct zfcp_erp_action *erp_action)
1603 struct zfcp_fsf_req *req; 1603 struct zfcp_fsf_req *req;
1604 int retval = -EIO; 1604 int retval = -EIO;
1605 1605
1606 spin_lock(&adapter->req_q.lock); 1606 spin_lock_bh(&adapter->req_q.lock);
1607 if (zfcp_fsf_req_sbal_get(adapter)) 1607 if (zfcp_fsf_req_sbal_get(adapter))
1608 goto out; 1608 goto out;
1609 1609
1610 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT, 1610 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PORT,
1611 ZFCP_REQ_AUTO_CLEANUP, 1611 ZFCP_REQ_AUTO_CLEANUP,
1612 adapter->pool.fsf_req_erp); 1612 adapter->pool.fsf_req_erp);
1613 if (unlikely(IS_ERR(req))) { 1613 if (IS_ERR(req)) {
1614 retval = PTR_ERR(req); 1614 retval = PTR_ERR(req);
1615 goto out; 1615 goto out;
1616 } 1616 }
@@ -1633,7 +1633,7 @@ int zfcp_fsf_close_port(struct zfcp_erp_action *erp_action)
1633 erp_action->fsf_req = NULL; 1633 erp_action->fsf_req = NULL;
1634 } 1634 }
1635out: 1635out:
1636 spin_unlock(&adapter->req_q.lock); 1636 spin_unlock_bh(&adapter->req_q.lock);
1637 return retval; 1637 return retval;
1638} 1638}
1639 1639
@@ -1700,14 +1700,14 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action)
1700 struct zfcp_fsf_req *req; 1700 struct zfcp_fsf_req *req;
1701 int retval = -EIO; 1701 int retval = -EIO;
1702 1702
1703 spin_lock(&adapter->req_q.lock); 1703 spin_lock_bh(&adapter->req_q.lock);
1704 if (zfcp_fsf_req_sbal_get(adapter)) 1704 if (zfcp_fsf_req_sbal_get(adapter))
1705 goto out; 1705 goto out;
1706 1706
1707 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT, 1707 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_PHYSICAL_PORT,
1708 ZFCP_REQ_AUTO_CLEANUP, 1708 ZFCP_REQ_AUTO_CLEANUP,
1709 adapter->pool.fsf_req_erp); 1709 adapter->pool.fsf_req_erp);
1710 if (unlikely(IS_ERR(req))) { 1710 if (IS_ERR(req)) {
1711 retval = PTR_ERR(req); 1711 retval = PTR_ERR(req);
1712 goto out; 1712 goto out;
1713 } 1713 }
@@ -1731,7 +1731,7 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action)
1731 erp_action->fsf_req = NULL; 1731 erp_action->fsf_req = NULL;
1732 } 1732 }
1733out: 1733out:
1734 spin_unlock(&adapter->req_q.lock); 1734 spin_unlock_bh(&adapter->req_q.lock);
1735 return retval; 1735 return retval;
1736} 1736}
1737 1737
@@ -1875,14 +1875,14 @@ int zfcp_fsf_open_unit(struct zfcp_erp_action *erp_action)
1875 struct zfcp_fsf_req *req; 1875 struct zfcp_fsf_req *req;
1876 int retval = -EIO; 1876 int retval = -EIO;
1877 1877
1878 spin_lock(&adapter->req_q.lock); 1878 spin_lock_bh(&adapter->req_q.lock);
1879 if (zfcp_fsf_req_sbal_get(adapter)) 1879 if (zfcp_fsf_req_sbal_get(adapter))
1880 goto out; 1880 goto out;
1881 1881
1882 req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN, 1882 req = zfcp_fsf_req_create(adapter, FSF_QTCB_OPEN_LUN,
1883 ZFCP_REQ_AUTO_CLEANUP, 1883 ZFCP_REQ_AUTO_CLEANUP,
1884 adapter->pool.fsf_req_erp); 1884 adapter->pool.fsf_req_erp);
1885 if (unlikely(IS_ERR(req))) { 1885 if (IS_ERR(req)) {
1886 retval = PTR_ERR(req); 1886 retval = PTR_ERR(req);
1887 goto out; 1887 goto out;
1888 } 1888 }
@@ -1910,7 +1910,7 @@ int zfcp_fsf_open_unit(struct zfcp_erp_action *erp_action)
1910 erp_action->fsf_req = NULL; 1910 erp_action->fsf_req = NULL;
1911 } 1911 }
1912out: 1912out:
1913 spin_unlock(&adapter->req_q.lock); 1913 spin_unlock_bh(&adapter->req_q.lock);
1914 return retval; 1914 return retval;
1915} 1915}
1916 1916
@@ -1965,13 +1965,13 @@ int zfcp_fsf_close_unit(struct zfcp_erp_action *erp_action)
1965 struct zfcp_fsf_req *req; 1965 struct zfcp_fsf_req *req;
1966 int retval = -EIO; 1966 int retval = -EIO;
1967 1967
1968 spin_lock(&adapter->req_q.lock); 1968 spin_lock_bh(&adapter->req_q.lock);
1969 if (zfcp_fsf_req_sbal_get(adapter)) 1969 if (zfcp_fsf_req_sbal_get(adapter))
1970 goto out; 1970 goto out;
1971 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN, 1971 req = zfcp_fsf_req_create(adapter, FSF_QTCB_CLOSE_LUN,
1972 ZFCP_REQ_AUTO_CLEANUP, 1972 ZFCP_REQ_AUTO_CLEANUP,
1973 adapter->pool.fsf_req_erp); 1973 adapter->pool.fsf_req_erp);
1974 if (unlikely(IS_ERR(req))) { 1974 if (IS_ERR(req)) {
1975 retval = PTR_ERR(req); 1975 retval = PTR_ERR(req);
1976 goto out; 1976 goto out;
1977 } 1977 }
@@ -1995,7 +1995,7 @@ int zfcp_fsf_close_unit(struct zfcp_erp_action *erp_action)
1995 erp_action->fsf_req = NULL; 1995 erp_action->fsf_req = NULL;
1996 } 1996 }
1997out: 1997out:
1998 spin_unlock(&adapter->req_q.lock); 1998 spin_unlock_bh(&adapter->req_q.lock);
1999 return retval; 1999 return retval;
2000} 2000}
2001 2001
@@ -2228,7 +2228,7 @@ int zfcp_fsf_send_fcp_command_task(struct zfcp_adapter *adapter,
2228 goto out; 2228 goto out;
2229 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags, 2229 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
2230 adapter->pool.fsf_req_scsi); 2230 adapter->pool.fsf_req_scsi);
2231 if (unlikely(IS_ERR(req))) { 2231 if (IS_ERR(req)) {
2232 retval = PTR_ERR(req); 2232 retval = PTR_ERR(req);
2233 goto out; 2233 goto out;
2234 } 2234 }
@@ -2351,7 +2351,7 @@ struct zfcp_fsf_req *zfcp_fsf_send_fcp_ctm(struct zfcp_adapter *adapter,
2351 goto out; 2351 goto out;
2352 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags, 2352 req = zfcp_fsf_req_create(adapter, FSF_QTCB_FCP_CMND, req_flags,
2353 adapter->pool.fsf_req_scsi); 2353 adapter->pool.fsf_req_scsi);
2354 if (unlikely(IS_ERR(req))) 2354 if (IS_ERR(req))
2355 goto out; 2355 goto out;
2356 2356
2357 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT; 2357 req->status |= ZFCP_STATUS_FSFREQ_TASK_MANAGEMENT;
@@ -2417,12 +2417,12 @@ struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *adapter,
2417 return ERR_PTR(-EINVAL); 2417 return ERR_PTR(-EINVAL);
2418 } 2418 }
2419 2419
2420 spin_lock(&adapter->req_q.lock); 2420 spin_lock_bh(&adapter->req_q.lock);
2421 if (zfcp_fsf_req_sbal_get(adapter)) 2421 if (zfcp_fsf_req_sbal_get(adapter))
2422 goto out; 2422 goto out;
2423 2423
2424 req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, 0, NULL); 2424 req = zfcp_fsf_req_create(adapter, fsf_cfdc->command, 0, NULL);
2425 if (unlikely(IS_ERR(req))) { 2425 if (IS_ERR(req)) {
2426 retval = -EPERM; 2426 retval = -EPERM;
2427 goto out; 2427 goto out;
2428 } 2428 }
@@ -2447,7 +2447,7 @@ struct zfcp_fsf_req *zfcp_fsf_control_file(struct zfcp_adapter *adapter,
2447 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT); 2447 zfcp_fsf_start_timer(req, ZFCP_FSF_REQUEST_TIMEOUT);
2448 retval = zfcp_fsf_req_send(req); 2448 retval = zfcp_fsf_req_send(req);
2449out: 2449out:
2450 spin_unlock(&adapter->req_q.lock); 2450 spin_unlock_bh(&adapter->req_q.lock);
2451 2451
2452 if (!retval) { 2452 if (!retval) {
2453 wait_event(req->completion_wq, 2453 wait_event(req->completion_wq,
diff --git a/drivers/s390/scsi/zfcp_qdio.c b/drivers/s390/scsi/zfcp_qdio.c
index d6dbd653fde9..69d632d851d9 100644
--- a/drivers/s390/scsi/zfcp_qdio.c
+++ b/drivers/s390/scsi/zfcp_qdio.c
@@ -423,9 +423,9 @@ void zfcp_qdio_close(struct zfcp_adapter *adapter)
423 423
424 /* clear QDIOUP flag, thus do_QDIO is not called during qdio_shutdown */ 424 /* clear QDIOUP flag, thus do_QDIO is not called during qdio_shutdown */
425 req_q = &adapter->req_q; 425 req_q = &adapter->req_q;
426 spin_lock(&req_q->lock); 426 spin_lock_bh(&req_q->lock);
427 atomic_clear_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status); 427 atomic_clear_mask(ZFCP_STATUS_ADAPTER_QDIOUP, &adapter->status);
428 spin_unlock(&req_q->lock); 428 spin_unlock_bh(&req_q->lock);
429 429
430 qdio_shutdown(adapter->ccw_device, QDIO_FLAG_CLEANUP_USING_CLEAR); 430 qdio_shutdown(adapter->ccw_device, QDIO_FLAG_CLEANUP_USING_CLEAR);
431 431
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index c7f06298bd3c..4e0322b1c1ea 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -63,7 +63,7 @@ comment "SCSI support type (disk, tape, CD-ROM)"
63config BLK_DEV_SD 63config BLK_DEV_SD
64 tristate "SCSI disk support" 64 tristate "SCSI disk support"
65 depends on SCSI 65 depends on SCSI
66 select CRC_T10DIF 66 select CRC_T10DIF if BLK_DEV_INTEGRITY
67 ---help--- 67 ---help---
68 If you want to use SCSI hard disks, Fibre Channel disks, 68 If you want to use SCSI hard disks, Fibre Channel disks,
69 Serial ATA (SATA) or Parallel ATA (PATA) hard disks, 69 Serial ATA (SATA) or Parallel ATA (PATA) hard disks,
diff --git a/drivers/scsi/device_handler/scsi_dh_alua.c b/drivers/scsi/device_handler/scsi_dh_alua.c
index 994da56fffed..708e475896b9 100644
--- a/drivers/scsi/device_handler/scsi_dh_alua.c
+++ b/drivers/scsi/device_handler/scsi_dh_alua.c
@@ -425,7 +425,7 @@ static int alua_check_sense(struct scsi_device *sdev,
425 /* 425 /*
426 * LUN Not Accessible - ALUA state transition 426 * LUN Not Accessible - ALUA state transition
427 */ 427 */
428 return NEEDS_RETRY; 428 return ADD_TO_MLQUEUE;
429 if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x0b) 429 if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x0b)
430 /* 430 /*
431 * LUN Not Accessible -- Target port in standby state 431 * LUN Not Accessible -- Target port in standby state
@@ -447,18 +447,18 @@ static int alua_check_sense(struct scsi_device *sdev,
447 /* 447 /*
448 * Power On, Reset, or Bus Device Reset, just retry. 448 * Power On, Reset, or Bus Device Reset, just retry.
449 */ 449 */
450 return NEEDS_RETRY; 450 return ADD_TO_MLQUEUE;
451 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) { 451 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x06) {
452 /* 452 /*
453 * ALUA state changed 453 * ALUA state changed
454 */ 454 */
455 return NEEDS_RETRY; 455 return ADD_TO_MLQUEUE;
456 } 456 }
457 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) { 457 if (sense_hdr->asc == 0x2a && sense_hdr->ascq == 0x07) {
458 /* 458 /*
459 * Implicit ALUA state transition failed 459 * Implicit ALUA state transition failed
460 */ 460 */
461 return NEEDS_RETRY; 461 return ADD_TO_MLQUEUE;
462 } 462 }
463 break; 463 break;
464 } 464 }
@@ -490,7 +490,7 @@ static int alua_stpg(struct scsi_device *sdev, int state,
490 if (!err) 490 if (!err)
491 return SCSI_DH_IO; 491 return SCSI_DH_IO;
492 err = alua_check_sense(sdev, &sense_hdr); 492 err = alua_check_sense(sdev, &sense_hdr);
493 if (retry > 0 && err == NEEDS_RETRY) { 493 if (retry > 0 && err == ADD_TO_MLQUEUE) {
494 retry--; 494 retry--;
495 goto retry; 495 goto retry;
496 } 496 }
@@ -535,7 +535,7 @@ static int alua_rtpg(struct scsi_device *sdev, struct alua_dh_data *h)
535 return SCSI_DH_IO; 535 return SCSI_DH_IO;
536 536
537 err = alua_check_sense(sdev, &sense_hdr); 537 err = alua_check_sense(sdev, &sense_hdr);
538 if (err == NEEDS_RETRY) 538 if (err == ADD_TO_MLQUEUE)
539 goto retry; 539 goto retry;
540 sdev_printk(KERN_INFO, sdev, 540 sdev_printk(KERN_INFO, sdev,
541 "%s: rtpg sense code %02x/%02x/%02x\n", 541 "%s: rtpg sense code %02x/%02x/%02x\n",
diff --git a/drivers/scsi/device_handler/scsi_dh_emc.c b/drivers/scsi/device_handler/scsi_dh_emc.c
index b9d23e9e9a44..ef693e8412e9 100644
--- a/drivers/scsi/device_handler/scsi_dh_emc.c
+++ b/drivers/scsi/device_handler/scsi_dh_emc.c
@@ -439,7 +439,7 @@ static int clariion_check_sense(struct scsi_device *sdev,
439 * Unit Attention Code. This is the first IO 439 * Unit Attention Code. This is the first IO
440 * to the new path, so just retry. 440 * to the new path, so just retry.
441 */ 441 */
442 return NEEDS_RETRY; 442 return ADD_TO_MLQUEUE;
443 break; 443 break;
444 } 444 }
445 445
@@ -514,7 +514,7 @@ retry:
514 return SCSI_DH_IO; 514 return SCSI_DH_IO;
515 515
516 err = clariion_check_sense(sdev, &sshdr); 516 err = clariion_check_sense(sdev, &sshdr);
517 if (retry > 0 && err == NEEDS_RETRY) { 517 if (retry > 0 && err == ADD_TO_MLQUEUE) {
518 retry--; 518 retry--;
519 goto retry; 519 goto retry;
520 } 520 }
diff --git a/drivers/scsi/device_handler/scsi_dh_rdac.c b/drivers/scsi/device_handler/scsi_dh_rdac.c
index 2dee69da35cf..6e2f130d56de 100644
--- a/drivers/scsi/device_handler/scsi_dh_rdac.c
+++ b/drivers/scsi/device_handler/scsi_dh_rdac.c
@@ -551,7 +551,7 @@ static int rdac_check_sense(struct scsi_device *sdev,
551 * 551 *
552 * Just retry and wait. 552 * Just retry and wait.
553 */ 553 */
554 return NEEDS_RETRY; 554 return ADD_TO_MLQUEUE;
555 break; 555 break;
556 case ILLEGAL_REQUEST: 556 case ILLEGAL_REQUEST:
557 if (sense_hdr->asc == 0x94 && sense_hdr->ascq == 0x01) { 557 if (sense_hdr->asc == 0x94 && sense_hdr->ascq == 0x01) {
@@ -568,7 +568,7 @@ static int rdac_check_sense(struct scsi_device *sdev,
568 /* 568 /*
569 * Power On, Reset, or Bus Device Reset, just retry. 569 * Power On, Reset, or Bus Device Reset, just retry.
570 */ 570 */
571 return NEEDS_RETRY; 571 return ADD_TO_MLQUEUE;
572 break; 572 break;
573 } 573 }
574 /* success just means we do not care what scsi-ml does */ 574 /* success just means we do not care what scsi-ml does */
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
index 880051c89bde..39ce3aba1dac 100644
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -391,7 +391,7 @@ static int scsi_check_sense(struct scsi_cmnd *scmd)
391 391
392 case HARDWARE_ERROR: 392 case HARDWARE_ERROR:
393 if (scmd->device->retry_hwerror) 393 if (scmd->device->retry_hwerror)
394 return NEEDS_RETRY; 394 return ADD_TO_MLQUEUE;
395 else 395 else
396 return SUCCESS; 396 return SUCCESS;
397 397
diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
index 84b4879cff11..34d0de6cd511 100644
--- a/drivers/scsi/scsi_scan.c
+++ b/drivers/scsi/scsi_scan.c
@@ -1080,7 +1080,8 @@ static int scsi_probe_and_add_lun(struct scsi_target *starget,
1080 * PDT=1Fh none (no FDD connected to the requested logical unit) 1080 * PDT=1Fh none (no FDD connected to the requested logical unit)
1081 */ 1081 */
1082 if (((result[0] >> 5) == 1 || starget->pdt_1f_for_no_lun) && 1082 if (((result[0] >> 5) == 1 || starget->pdt_1f_for_no_lun) &&
1083 (result[0] & 0x1f) == 0x1f) { 1083 (result[0] & 0x1f) == 0x1f &&
1084 !scsi_is_wlun(lun)) {
1084 SCSI_LOG_SCAN_BUS(3, printk(KERN_INFO 1085 SCSI_LOG_SCAN_BUS(3, printk(KERN_INFO
1085 "scsi scan: peripheral device type" 1086 "scsi scan: peripheral device type"
1086 " of 31, no device added\n")); 1087 " of 31, no device added\n"));
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 3d36270a8b4d..661f9f21650a 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -217,6 +217,18 @@ static int sg_last_dev(void);
217#define SZ_SG_IOVEC sizeof(sg_iovec_t) 217#define SZ_SG_IOVEC sizeof(sg_iovec_t)
218#define SZ_SG_REQ_INFO sizeof(sg_req_info_t) 218#define SZ_SG_REQ_INFO sizeof(sg_req_info_t)
219 219
220static int sg_allow_access(struct file *filp, unsigned char *cmd)
221{
222 struct sg_fd *sfp = (struct sg_fd *)filp->private_data;
223 struct request_queue *q = sfp->parentdp->device->request_queue;
224
225 if (sfp->parentdp->device->type == TYPE_SCANNER)
226 return 0;
227
228 return blk_verify_command(&q->cmd_filter,
229 cmd, filp->f_mode & FMODE_WRITE);
230}
231
220static int 232static int
221sg_open(struct inode *inode, struct file *filp) 233sg_open(struct inode *inode, struct file *filp)
222{ 234{
@@ -689,7 +701,7 @@ sg_new_write(Sg_fd *sfp, struct file *file, const char __user *buf,
689 sg_remove_request(sfp, srp); 701 sg_remove_request(sfp, srp);
690 return -EFAULT; 702 return -EFAULT;
691 } 703 }
692 if (read_only && !blk_verify_command(file, cmnd)) { 704 if (read_only && sg_allow_access(file, cmnd)) {
693 sg_remove_request(sfp, srp); 705 sg_remove_request(sfp, srp);
694 return -EPERM; 706 return -EPERM;
695 } 707 }
@@ -793,6 +805,7 @@ sg_ioctl(struct inode *inode, struct file *filp,
793 805
794 if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp))) 806 if ((!(sfp = (Sg_fd *) filp->private_data)) || (!(sdp = sfp->parentdp)))
795 return -ENXIO; 807 return -ENXIO;
808
796 SCSI_LOG_TIMEOUT(3, printk("sg_ioctl: %s, cmd=0x%x\n", 809 SCSI_LOG_TIMEOUT(3, printk("sg_ioctl: %s, cmd=0x%x\n",
797 sdp->disk->disk_name, (int) cmd_in)); 810 sdp->disk->disk_name, (int) cmd_in));
798 read_only = (O_RDWR != (filp->f_flags & O_ACCMODE)); 811 read_only = (O_RDWR != (filp->f_flags & O_ACCMODE));
@@ -1061,7 +1074,7 @@ sg_ioctl(struct inode *inode, struct file *filp,
1061 1074
1062 if (copy_from_user(&opcode, siocp->data, 1)) 1075 if (copy_from_user(&opcode, siocp->data, 1))
1063 return -EFAULT; 1076 return -EFAULT;
1064 if (!blk_verify_command(filp, &opcode)) 1077 if (sg_allow_access(filp, &opcode))
1065 return -EPERM; 1078 return -EPERM;
1066 } 1079 }
1067 return sg_scsi_ioctl(filp, sdp->device->request_queue, NULL, p); 1080 return sg_scsi_ioctl(filp, sdp->device->request_queue, NULL, p);
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 342e12fb1c25..9ccc563d8730 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -1908,15 +1908,23 @@ static int serial8250_startup(struct uart_port *port)
1908 * kick the UART on a regular basis. 1908 * kick the UART on a regular basis.
1909 */ 1909 */
1910 if (!(iir1 & UART_IIR_NO_INT) && (iir & UART_IIR_NO_INT)) { 1910 if (!(iir1 & UART_IIR_NO_INT) && (iir & UART_IIR_NO_INT)) {
1911 up->bugs |= UART_BUG_THRE;
1911 pr_debug("ttyS%d - using backup timer\n", port->line); 1912 pr_debug("ttyS%d - using backup timer\n", port->line);
1912 up->timer.function = serial8250_backup_timeout;
1913 up->timer.data = (unsigned long)up;
1914 mod_timer(&up->timer, jiffies +
1915 poll_timeout(up->port.timeout) + HZ / 5);
1916 } 1913 }
1917 } 1914 }
1918 1915
1919 /* 1916 /*
1917 * The above check will only give an accurate result the first time
1918 * the port is opened so this value needs to be preserved.
1919 */
1920 if (up->bugs & UART_BUG_THRE) {
1921 up->timer.function = serial8250_backup_timeout;
1922 up->timer.data = (unsigned long)up;
1923 mod_timer(&up->timer, jiffies +
1924 poll_timeout(up->port.timeout) + HZ / 5);
1925 }
1926
1927 /*
1920 * If the "interrupt" for this port doesn't correspond with any 1928 * If the "interrupt" for this port doesn't correspond with any
1921 * hardware interrupt, we use a timer-based system. The original 1929 * hardware interrupt, we use a timer-based system. The original
1922 * driver used to do this with IRQ0. 1930 * driver used to do this with IRQ0.
diff --git a/drivers/serial/8250.h b/drivers/serial/8250.h
index 78c00162b04e..520260326f3d 100644
--- a/drivers/serial/8250.h
+++ b/drivers/serial/8250.h
@@ -47,6 +47,7 @@ struct serial8250_config {
47#define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */ 47#define UART_BUG_QUOT (1 << 0) /* UART has buggy quot LSB */
48#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */ 48#define UART_BUG_TXEN (1 << 1) /* UART has buggy TX IIR status */
49#define UART_BUG_NOMSR (1 << 2) /* UART has buggy MSR status bits (Au1x00) */ 49#define UART_BUG_NOMSR (1 << 2) /* UART has buggy MSR status bits (Au1x00) */
50#define UART_BUG_THRE (1 << 3) /* UART has buggy THRE reassertion */
50 51
51#define PROBE_RSA (1 << 0) 52#define PROBE_RSA (1 << 0)
52#define PROBE_ANY (~0) 53#define PROBE_ANY (~0)
diff --git a/drivers/serial/bfin_5xx.c b/drivers/serial/bfin_5xx.c
index efcd44344fb1..4a0d30bed9f1 100644
--- a/drivers/serial/bfin_5xx.c
+++ b/drivers/serial/bfin_5xx.c
@@ -28,7 +28,7 @@
28#endif 28#endif
29 29
30#include <asm/gpio.h> 30#include <asm/gpio.h>
31#include <asm/mach/bfin_serial_5xx.h> 31#include <mach/bfin_serial_5xx.h>
32 32
33#ifdef CONFIG_SERIAL_BFIN_DMA 33#ifdef CONFIG_SERIAL_BFIN_DMA
34#include <linux/dma-mapping.h> 34#include <linux/dma-mapping.h>
diff --git a/drivers/serial/imx.c b/drivers/serial/imx.c
index 6a29f9330a73..3f90f1bbbbcd 100644
--- a/drivers/serial/imx.c
+++ b/drivers/serial/imx.c
@@ -127,8 +127,13 @@
127#define UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */ 127#define UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */
128#define UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */ 128#define UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */
129#define UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */ 129#define UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */
130#define UCR3_REF25 (1<<3) /* Ref freq 25 MHz */ 130#ifdef CONFIG_ARCH_IMX
131#define UCR3_REF30 (1<<2) /* Ref Freq 30 MHz */ 131#define UCR3_REF25 (1<<3) /* Ref freq 25 MHz, only on mx1 */
132#define UCR3_REF30 (1<<2) /* Ref Freq 30 MHz, only on mx1 */
133#endif
134#if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3
135#define UCR3_RXDMUXSEL (1<<2) /* RXD Muxed Input Select, on mx2/mx3 */
136#endif
132#define UCR3_INVT (1<<1) /* Inverted Infrared transmission */ 137#define UCR3_INVT (1<<1) /* Inverted Infrared transmission */
133#define UCR3_BPEN (1<<0) /* Preset registers enable */ 138#define UCR3_BPEN (1<<0) /* Preset registers enable */
134#define UCR4_CTSTL_32 (32<<10) /* CTS trigger level (32 chars) */ 139#define UCR4_CTSTL_32 (32<<10) /* CTS trigger level (32 chars) */
@@ -445,7 +450,7 @@ static irqreturn_t imx_int(int irq, void *dev_id)
445 readl(sport->port.membase + UCR1) & UCR1_TXMPTYEN) 450 readl(sport->port.membase + UCR1) & UCR1_TXMPTYEN)
446 imx_txint(irq, dev_id); 451 imx_txint(irq, dev_id);
447 452
448 if (sts & USR1_RTSS) 453 if (sts & USR1_RTSD)
449 imx_rtsint(irq, dev_id); 454 imx_rtsint(irq, dev_id);
450 455
451 return IRQ_HANDLED; 456 return IRQ_HANDLED;
@@ -598,6 +603,12 @@ static int imx_startup(struct uart_port *port)
598 temp |= (UCR2_RXEN | UCR2_TXEN); 603 temp |= (UCR2_RXEN | UCR2_TXEN);
599 writel(temp, sport->port.membase + UCR2); 604 writel(temp, sport->port.membase + UCR2);
600 605
606#if defined CONFIG_ARCH_MX2 || defined CONFIG_ARCH_MX3
607 temp = readl(sport->port.membase + UCR3);
608 temp |= UCR3_RXDMUXSEL;
609 writel(temp, sport->port.membase + UCR3);
610#endif
611
601 /* 612 /*
602 * Enable modem status interrupts 613 * Enable modem status interrupts
603 */ 614 */
@@ -1133,13 +1144,19 @@ static int serial_imx_probe(struct platform_device *pdev)
1133 if(pdata && (pdata->flags & IMXUART_HAVE_RTSCTS)) 1144 if(pdata && (pdata->flags & IMXUART_HAVE_RTSCTS))
1134 sport->have_rtscts = 1; 1145 sport->have_rtscts = 1;
1135 1146
1136 if (pdata->init) 1147 if (pdata->init) {
1137 pdata->init(pdev); 1148 ret = pdata->init(pdev);
1149 if (ret)
1150 goto clkput;
1151 }
1138 1152
1139 uart_add_one_port(&imx_reg, &sport->port); 1153 uart_add_one_port(&imx_reg, &sport->port);
1140 platform_set_drvdata(pdev, &sport->port); 1154 platform_set_drvdata(pdev, &sport->port);
1141 1155
1142 return 0; 1156 return 0;
1157clkput:
1158 clk_put(sport->clk);
1159 clk_disable(sport->clk);
1143unmap: 1160unmap:
1144 iounmap(sport->port.membase); 1161 iounmap(sport->port.membase);
1145free: 1162free:
diff --git a/drivers/serial/pxa.c b/drivers/serial/pxa.c
index f7a0d37c4221..abc00be55433 100644
--- a/drivers/serial/pxa.c
+++ b/drivers/serial/pxa.c
@@ -534,6 +534,11 @@ serial_pxa_set_termios(struct uart_port *port, struct ktermios *termios,
534 534
535 serial_out(up, UART_IER, up->ier); 535 serial_out(up, UART_IER, up->ier);
536 536
537 if (termios->c_cflag & CRTSCTS)
538 up->mcr |= UART_MCR_AFE;
539 else
540 up->mcr &= ~UART_MCR_AFE;
541
537 serial_out(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */ 542 serial_out(up, UART_LCR, cval | UART_LCR_DLAB);/* set DLAB */
538 serial_out(up, UART_DLL, quot & 0xff); /* LS of divisor */ 543 serial_out(up, UART_DLL, quot & 0xff); /* LS of divisor */
539 serial_out(up, UART_DLM, quot >> 8); /* MS of divisor */ 544 serial_out(up, UART_DLM, quot >> 8); /* MS of divisor */
diff --git a/drivers/serial/serial_ks8695.c b/drivers/serial/serial_ks8695.c
index b9cbfc87f616..998e89dc5aaf 100644
--- a/drivers/serial/serial_ks8695.c
+++ b/drivers/serial/serial_ks8695.c
@@ -63,8 +63,44 @@
63#define UART_DUMMY_LSR_RX 0x100 63#define UART_DUMMY_LSR_RX 0x100
64#define UART_PORT_SIZE (KS8695_USR - KS8695_URRB + 4) 64#define UART_PORT_SIZE (KS8695_USR - KS8695_URRB + 4)
65 65
66#define tx_enabled(port) ((port)->unused[0]) 66static inline int tx_enabled(struct uart_port *port)
67#define rx_enabled(port) ((port)->unused[1]) 67{
68 return port->unused[0] & 1;
69}
70
71static inline int rx_enabled(struct uart_port *port)
72{
73 return port->unused[0] & 2;
74}
75
76static inline int ms_enabled(struct uart_port *port)
77{
78 return port->unused[0] & 4;
79}
80
81static inline void ms_enable(struct uart_port *port, int enabled)
82{
83 if(enabled)
84 port->unused[0] |= 4;
85 else
86 port->unused[0] &= ~4;
87}
88
89static inline void rx_enable(struct uart_port *port, int enabled)
90{
91 if(enabled)
92 port->unused[0] |= 2;
93 else
94 port->unused[0] &= ~2;
95}
96
97static inline void tx_enable(struct uart_port *port, int enabled)
98{
99 if(enabled)
100 port->unused[0] |= 1;
101 else
102 port->unused[0] &= ~1;
103}
68 104
69 105
70#ifdef SUPPORT_SYSRQ 106#ifdef SUPPORT_SYSRQ
@@ -75,7 +111,7 @@ static void ks8695uart_stop_tx(struct uart_port *port)
75{ 111{
76 if (tx_enabled(port)) { 112 if (tx_enabled(port)) {
77 disable_irq(KS8695_IRQ_UART_TX); 113 disable_irq(KS8695_IRQ_UART_TX);
78 tx_enabled(port) = 0; 114 tx_enable(port, 0);
79 } 115 }
80} 116}
81 117
@@ -83,7 +119,7 @@ static void ks8695uart_start_tx(struct uart_port *port)
83{ 119{
84 if (!tx_enabled(port)) { 120 if (!tx_enabled(port)) {
85 enable_irq(KS8695_IRQ_UART_TX); 121 enable_irq(KS8695_IRQ_UART_TX);
86 tx_enabled(port) = 1; 122 tx_enable(port, 1);
87 } 123 }
88} 124}
89 125
@@ -91,18 +127,24 @@ static void ks8695uart_stop_rx(struct uart_port *port)
91{ 127{
92 if (rx_enabled(port)) { 128 if (rx_enabled(port)) {
93 disable_irq(KS8695_IRQ_UART_RX); 129 disable_irq(KS8695_IRQ_UART_RX);
94 rx_enabled(port) = 0; 130 rx_enable(port, 0);
95 } 131 }
96} 132}
97 133
98static void ks8695uart_enable_ms(struct uart_port *port) 134static void ks8695uart_enable_ms(struct uart_port *port)
99{ 135{
100 enable_irq(KS8695_IRQ_UART_MODEM_STATUS); 136 if (!ms_enabled(port)) {
137 enable_irq(KS8695_IRQ_UART_MODEM_STATUS);
138 ms_enable(port,1);
139 }
101} 140}
102 141
103static void ks8695uart_disable_ms(struct uart_port *port) 142static void ks8695uart_disable_ms(struct uart_port *port)
104{ 143{
105 disable_irq(KS8695_IRQ_UART_MODEM_STATUS); 144 if (ms_enabled(port)) {
145 disable_irq(KS8695_IRQ_UART_MODEM_STATUS);
146 ms_enable(port,0);
147 }
106} 148}
107 149
108static irqreturn_t ks8695uart_rx_chars(int irq, void *dev_id) 150static irqreturn_t ks8695uart_rx_chars(int irq, void *dev_id)
@@ -285,8 +327,9 @@ static int ks8695uart_startup(struct uart_port *port)
285 int retval; 327 int retval;
286 328
287 set_irq_flags(KS8695_IRQ_UART_TX, IRQF_VALID | IRQF_NOAUTOEN); 329 set_irq_flags(KS8695_IRQ_UART_TX, IRQF_VALID | IRQF_NOAUTOEN);
288 tx_enabled(port) = 0; 330 tx_enable(port, 0);
289 rx_enabled(port) = 1; 331 rx_enable(port, 1);
332 ms_enable(port, 1);
290 333
291 /* 334 /*
292 * Allocate the IRQ 335 * Allocate the IRQ
diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c
index 34c7c9875681..0e53354c1cfe 100644
--- a/drivers/spi/pxa2xx_spi.c
+++ b/drivers/spi/pxa2xx_spi.c
@@ -47,9 +47,10 @@ MODULE_ALIAS("platform:pxa2xx-spi");
47 47
48#define MAX_BUSES 3 48#define MAX_BUSES 3
49 49
50#define DMA_INT_MASK (DCSR_ENDINTR | DCSR_STARTINTR | DCSR_BUSERR) 50#define DMA_INT_MASK (DCSR_ENDINTR | DCSR_STARTINTR | DCSR_BUSERR)
51#define RESET_DMA_CHANNEL (DCSR_NODESC | DMA_INT_MASK) 51#define RESET_DMA_CHANNEL (DCSR_NODESC | DMA_INT_MASK)
52#define IS_DMA_ALIGNED(x) (((u32)(x)&0x07)==0) 52#define IS_DMA_ALIGNED(x) (((x) & 0x07) == 0)
53#define MAX_DMA_LEN 8191
53 54
54/* 55/*
55 * for testing SSCR1 changes that require SSP restart, basically 56 * for testing SSCR1 changes that require SSP restart, basically
@@ -144,7 +145,6 @@ struct driver_data {
144 size_t tx_map_len; 145 size_t tx_map_len;
145 u8 n_bytes; 146 u8 n_bytes;
146 u32 dma_width; 147 u32 dma_width;
147 int cs_change;
148 int (*write)(struct driver_data *drv_data); 148 int (*write)(struct driver_data *drv_data);
149 int (*read)(struct driver_data *drv_data); 149 int (*read)(struct driver_data *drv_data);
150 irqreturn_t (*transfer_handler)(struct driver_data *drv_data); 150 irqreturn_t (*transfer_handler)(struct driver_data *drv_data);
@@ -406,8 +406,45 @@ static void giveback(struct driver_data *drv_data)
406 struct spi_transfer, 406 struct spi_transfer,
407 transfer_list); 407 transfer_list);
408 408
409 /* Delay if requested before any change in chip select */
410 if (last_transfer->delay_usecs)
411 udelay(last_transfer->delay_usecs);
412
413 /* Drop chip select UNLESS cs_change is true or we are returning
414 * a message with an error, or next message is for another chip
415 */
409 if (!last_transfer->cs_change) 416 if (!last_transfer->cs_change)
410 drv_data->cs_control(PXA2XX_CS_DEASSERT); 417 drv_data->cs_control(PXA2XX_CS_DEASSERT);
418 else {
419 struct spi_message *next_msg;
420
421 /* Holding of cs was hinted, but we need to make sure
422 * the next message is for the same chip. Don't waste
423 * time with the following tests unless this was hinted.
424 *
425 * We cannot postpone this until pump_messages, because
426 * after calling msg->complete (below) the driver that
427 * sent the current message could be unloaded, which
428 * could invalidate the cs_control() callback...
429 */
430
431 /* get a pointer to the next message, if any */
432 spin_lock_irqsave(&drv_data->lock, flags);
433 if (list_empty(&drv_data->queue))
434 next_msg = NULL;
435 else
436 next_msg = list_entry(drv_data->queue.next,
437 struct spi_message, queue);
438 spin_unlock_irqrestore(&drv_data->lock, flags);
439
440 /* see if the next and current messages point
441 * to the same chip
442 */
443 if (next_msg && next_msg->spi != msg->spi)
444 next_msg = NULL;
445 if (!next_msg || msg->state == ERROR_STATE)
446 drv_data->cs_control(PXA2XX_CS_DEASSERT);
447 }
411 448
412 msg->state = NULL; 449 msg->state = NULL;
413 if (msg->complete) 450 if (msg->complete)
@@ -490,10 +527,9 @@ static void dma_transfer_complete(struct driver_data *drv_data)
490 msg->actual_length += drv_data->len - 527 msg->actual_length += drv_data->len -
491 (drv_data->rx_end - drv_data->rx); 528 (drv_data->rx_end - drv_data->rx);
492 529
493 /* Release chip select if requested, transfer delays are 530 /* Transfer delays and chip select release are
494 * handled in pump_transfers */ 531 * handled in pump_transfers or giveback
495 if (drv_data->cs_change) 532 */
496 drv_data->cs_control(PXA2XX_CS_DEASSERT);
497 533
498 /* Move to next transfer */ 534 /* Move to next transfer */
499 msg->state = next_transfer(drv_data); 535 msg->state = next_transfer(drv_data);
@@ -602,10 +638,9 @@ static void int_transfer_complete(struct driver_data *drv_data)
602 drv_data->cur_msg->actual_length += drv_data->len - 638 drv_data->cur_msg->actual_length += drv_data->len -
603 (drv_data->rx_end - drv_data->rx); 639 (drv_data->rx_end - drv_data->rx);
604 640
605 /* Release chip select if requested, transfer delays are 641 /* Transfer delays and chip select release are
606 * handled in pump_transfers */ 642 * handled in pump_transfers or giveback
607 if (drv_data->cs_change) 643 */
608 drv_data->cs_control(PXA2XX_CS_DEASSERT);
609 644
610 /* Move to next transfer */ 645 /* Move to next transfer */
611 drv_data->cur_msg->state = next_transfer(drv_data); 646 drv_data->cur_msg->state = next_transfer(drv_data);
@@ -840,23 +875,40 @@ static void pump_transfers(unsigned long data)
840 return; 875 return;
841 } 876 }
842 877
843 /* Delay if requested at end of transfer*/ 878 /* Delay if requested at end of transfer before CS change */
844 if (message->state == RUNNING_STATE) { 879 if (message->state == RUNNING_STATE) {
845 previous = list_entry(transfer->transfer_list.prev, 880 previous = list_entry(transfer->transfer_list.prev,
846 struct spi_transfer, 881 struct spi_transfer,
847 transfer_list); 882 transfer_list);
848 if (previous->delay_usecs) 883 if (previous->delay_usecs)
849 udelay(previous->delay_usecs); 884 udelay(previous->delay_usecs);
885
886 /* Drop chip select only if cs_change is requested */
887 if (previous->cs_change)
888 drv_data->cs_control(PXA2XX_CS_DEASSERT);
850 } 889 }
851 890
852 /* Check transfer length */ 891 /* Check for transfers that need multiple DMA segments */
853 if (transfer->len > 8191) 892 if (transfer->len > MAX_DMA_LEN && chip->enable_dma) {
854 { 893
855 dev_warn(&drv_data->pdev->dev, "pump_transfers: transfer " 894 /* reject already-mapped transfers; PIO won't always work */
856 "length greater than 8191\n"); 895 if (message->is_dma_mapped
857 message->status = -EINVAL; 896 || transfer->rx_dma || transfer->tx_dma) {
858 giveback(drv_data); 897 dev_err(&drv_data->pdev->dev,
859 return; 898 "pump_transfers: mapped transfer length "
899 "of %lu is greater than %d\n",
900 transfer->len, MAX_DMA_LEN);
901 message->status = -EINVAL;
902 giveback(drv_data);
903 return;
904 }
905
906 /* warn ... we force this to PIO mode */
907 if (printk_ratelimit())
908 dev_warn(&message->spi->dev, "pump_transfers: "
909 "DMA disabled for transfer length %ld "
910 "greater than %d\n",
911 (long)drv_data->len, MAX_DMA_LEN);
860 } 912 }
861 913
862 /* Setup the transfer state based on the type of transfer */ 914 /* Setup the transfer state based on the type of transfer */
@@ -878,7 +930,6 @@ static void pump_transfers(unsigned long data)
878 drv_data->len = transfer->len & DCMD_LENGTH; 930 drv_data->len = transfer->len & DCMD_LENGTH;
879 drv_data->write = drv_data->tx ? chip->write : null_writer; 931 drv_data->write = drv_data->tx ? chip->write : null_writer;
880 drv_data->read = drv_data->rx ? chip->read : null_reader; 932 drv_data->read = drv_data->rx ? chip->read : null_reader;
881 drv_data->cs_change = transfer->cs_change;
882 933
883 /* Change speed and bit per word on a per transfer */ 934 /* Change speed and bit per word on a per transfer */
884 cr0 = chip->cr0; 935 cr0 = chip->cr0;
@@ -925,7 +976,7 @@ static void pump_transfers(unsigned long data)
925 &dma_thresh)) 976 &dma_thresh))
926 if (printk_ratelimit()) 977 if (printk_ratelimit())
927 dev_warn(&message->spi->dev, 978 dev_warn(&message->spi->dev,
928 "pump_transfer: " 979 "pump_transfers: "
929 "DMA burst size reduced to " 980 "DMA burst size reduced to "
930 "match bits_per_word\n"); 981 "match bits_per_word\n");
931 } 982 }
@@ -939,8 +990,23 @@ static void pump_transfers(unsigned long data)
939 990
940 message->state = RUNNING_STATE; 991 message->state = RUNNING_STATE;
941 992
942 /* Try to map dma buffer and do a dma transfer if successful */ 993 /* Try to map dma buffer and do a dma transfer if successful, but
943 if ((drv_data->dma_mapped = map_dma_buffers(drv_data))) { 994 * only if the length is non-zero and less than MAX_DMA_LEN.
995 *
996 * Zero-length non-descriptor DMA is illegal on PXA2xx; force use
997 * of PIO instead. Care is needed above because the transfer may
998 * have have been passed with buffers that are already dma mapped.
999 * A zero-length transfer in PIO mode will not try to write/read
1000 * to/from the buffers
1001 *
1002 * REVISIT large transfers are exactly where we most want to be
1003 * using DMA. If this happens much, split those transfers into
1004 * multiple DMA segments rather than forcing PIO.
1005 */
1006 drv_data->dma_mapped = 0;
1007 if (drv_data->len > 0 && drv_data->len <= MAX_DMA_LEN)
1008 drv_data->dma_mapped = map_dma_buffers(drv_data);
1009 if (drv_data->dma_mapped) {
944 1010
945 /* Ensure we have the correct interrupt handler */ 1011 /* Ensure we have the correct interrupt handler */
946 drv_data->transfer_handler = dma_transfer; 1012 drv_data->transfer_handler = dma_transfer;
diff --git a/drivers/spi/spi_mpc83xx.c b/drivers/spi/spi_mpc83xx.c
index 070c6219e2d6..ac0e3e4b3c54 100644
--- a/drivers/spi/spi_mpc83xx.c
+++ b/drivers/spi/spi_mpc83xx.c
@@ -267,16 +267,13 @@ int mpc83xx_spi_setup_transfer(struct spi_device *spi, struct spi_transfer *t)
267 cs->hw_mode |= SPMODE_LEN(bits_per_word); 267 cs->hw_mode |= SPMODE_LEN(bits_per_word);
268 268
269 if ((mpc83xx_spi->spibrg / hz) > 64) { 269 if ((mpc83xx_spi->spibrg / hz) > 64) {
270 cs->hw_mode |= SPMODE_DIV16;
270 pm = mpc83xx_spi->spibrg / (hz * 64); 271 pm = mpc83xx_spi->spibrg / (hz * 64);
271 if (pm > 16) { 272 if (pm > 16) {
272 cs->hw_mode |= SPMODE_DIV16; 273 dev_err(&spi->dev, "Requested speed is too "
273 pm /= 16; 274 "low: %d Hz. Will use %d Hz instead.\n",
274 if (pm > 16) { 275 hz, mpc83xx_spi->spibrg / 1024);
275 dev_err(&spi->dev, "Requested speed is too " 276 pm = 16;
276 "low: %d Hz. Will use %d Hz instead.\n",
277 hz, mpc83xx_spi->spibrg / 1024);
278 pm = 16;
279 }
280 } 277 }
281 } else 278 } else
282 pm = mpc83xx_spi->spibrg / (hz * 4); 279 pm = mpc83xx_spi->spibrg / (hz * 4);
@@ -315,11 +312,20 @@ static int mpc83xx_spi_bufs(struct spi_device *spi, struct spi_transfer *t)
315 if (t->bits_per_word) 312 if (t->bits_per_word)
316 bits_per_word = t->bits_per_word; 313 bits_per_word = t->bits_per_word;
317 len = t->len; 314 len = t->len;
318 if (bits_per_word > 8) 315 if (bits_per_word > 8) {
316 /* invalid length? */
317 if (len & 1)
318 return -EINVAL;
319 len /= 2; 319 len /= 2;
320 if (bits_per_word > 16) 320 }
321 if (bits_per_word > 16) {
322 /* invalid length? */
323 if (len & 1)
324 return -EINVAL;
321 len /= 2; 325 len /= 2;
326 }
322 mpc83xx_spi->count = len; 327 mpc83xx_spi->count = len;
328
323 INIT_COMPLETION(mpc83xx_spi->done); 329 INIT_COMPLETION(mpc83xx_spi->done);
324 330
325 /* enable rx ints */ 331 /* enable rx ints */
diff --git a/drivers/spi/spi_s3c24xx.c b/drivers/spi/spi_s3c24xx.c
index 98abc73c1a1d..3eb414b84a9d 100644
--- a/drivers/spi/spi_s3c24xx.c
+++ b/drivers/spi/spi_s3c24xx.c
@@ -430,7 +430,7 @@ static int s3c24xx_spi_resume(struct platform_device *pdev)
430#endif 430#endif
431 431
432MODULE_ALIAS("platform:s3c2410-spi"); 432MODULE_ALIAS("platform:s3c2410-spi");
433static struct platform_driver s3c24xx_spidrv = { 433static struct platform_driver s3c24xx_spi_driver = {
434 .remove = __exit_p(s3c24xx_spi_remove), 434 .remove = __exit_p(s3c24xx_spi_remove),
435 .suspend = s3c24xx_spi_suspend, 435 .suspend = s3c24xx_spi_suspend,
436 .resume = s3c24xx_spi_resume, 436 .resume = s3c24xx_spi_resume,
@@ -442,12 +442,12 @@ static struct platform_driver s3c24xx_spidrv = {
442 442
443static int __init s3c24xx_spi_init(void) 443static int __init s3c24xx_spi_init(void)
444{ 444{
445 return platform_driver_probe(&s3c24xx_spidrv, s3c24xx_spi_probe); 445 return platform_driver_probe(&s3c24xx_spi_driver, s3c24xx_spi_probe);
446} 446}
447 447
448static void __exit s3c24xx_spi_exit(void) 448static void __exit s3c24xx_spi_exit(void)
449{ 449{
450 platform_driver_unregister(&s3c24xx_spidrv); 450 platform_driver_unregister(&s3c24xx_spi_driver);
451} 451}
452 452
453module_init(s3c24xx_spi_init); 453module_init(s3c24xx_spi_init);
diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c
index 1eb64d08b60a..95b3ec89c126 100644
--- a/drivers/usb/host/ohci-omap.c
+++ b/drivers/usb/host/ohci-omap.c
@@ -208,7 +208,7 @@ static int ohci_omap_init(struct usb_hcd *hcd)
208 if (cpu_is_omap16xx()) 208 if (cpu_is_omap16xx())
209 ocpi_enable(); 209 ocpi_enable();
210 210
211#ifdef CONFIG_ARCH_OMAP_OTG 211#ifdef CONFIG_USB_OTG
212 if (need_transceiver) { 212 if (need_transceiver) {
213 ohci->transceiver = otg_get_transceiver(); 213 ohci->transceiver = otg_get_transceiver();
214 if (ohci->transceiver) { 214 if (ohci->transceiver) {
diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c
index 7f0f35c78185..e294d430733b 100644
--- a/drivers/usb/host/ohci-pxa27x.c
+++ b/drivers/usb/host/ohci-pxa27x.c
@@ -23,17 +23,90 @@
23#include <linux/signal.h> 23#include <linux/signal.h>
24#include <linux/platform_device.h> 24#include <linux/platform_device.h>
25#include <linux/clk.h> 25#include <linux/clk.h>
26
27#include <mach/hardware.h>
28#include <mach/pxa-regs.h>
29#include <mach/pxa2xx-regs.h> /* FIXME: for PSSR */
30#include <mach/ohci.h> 26#include <mach/ohci.h>
31 27
28/*
29 * UHC: USB Host Controller (OHCI-like) register definitions
30 */
31#define UHCREV (0x0000) /* UHC HCI Spec Revision */
32#define UHCHCON (0x0004) /* UHC Host Control Register */
33#define UHCCOMS (0x0008) /* UHC Command Status Register */
34#define UHCINTS (0x000C) /* UHC Interrupt Status Register */
35#define UHCINTE (0x0010) /* UHC Interrupt Enable */
36#define UHCINTD (0x0014) /* UHC Interrupt Disable */
37#define UHCHCCA (0x0018) /* UHC Host Controller Comm. Area */
38#define UHCPCED (0x001C) /* UHC Period Current Endpt Descr */
39#define UHCCHED (0x0020) /* UHC Control Head Endpt Descr */
40#define UHCCCED (0x0024) /* UHC Control Current Endpt Descr */
41#define UHCBHED (0x0028) /* UHC Bulk Head Endpt Descr */
42#define UHCBCED (0x002C) /* UHC Bulk Current Endpt Descr */
43#define UHCDHEAD (0x0030) /* UHC Done Head */
44#define UHCFMI (0x0034) /* UHC Frame Interval */
45#define UHCFMR (0x0038) /* UHC Frame Remaining */
46#define UHCFMN (0x003C) /* UHC Frame Number */
47#define UHCPERS (0x0040) /* UHC Periodic Start */
48#define UHCLS (0x0044) /* UHC Low Speed Threshold */
49
50#define UHCRHDA (0x0048) /* UHC Root Hub Descriptor A */
51#define UHCRHDA_NOCP (1 << 12) /* No over current protection */
52#define UHCRHDA_OCPM (1 << 11) /* Over Current Protection Mode */
53#define UHCRHDA_POTPGT(x) \
54 (((x) & 0xff) << 24) /* Power On To Power Good Time */
55
56#define UHCRHDB (0x004C) /* UHC Root Hub Descriptor B */
57#define UHCRHS (0x0050) /* UHC Root Hub Status */
58#define UHCRHPS1 (0x0054) /* UHC Root Hub Port 1 Status */
59#define UHCRHPS2 (0x0058) /* UHC Root Hub Port 2 Status */
60#define UHCRHPS3 (0x005C) /* UHC Root Hub Port 3 Status */
61
62#define UHCSTAT (0x0060) /* UHC Status Register */
63#define UHCSTAT_UPS3 (1 << 16) /* USB Power Sense Port3 */
64#define UHCSTAT_SBMAI (1 << 15) /* System Bus Master Abort Interrupt*/
65#define UHCSTAT_SBTAI (1 << 14) /* System Bus Target Abort Interrupt*/
66#define UHCSTAT_UPRI (1 << 13) /* USB Port Resume Interrupt */
67#define UHCSTAT_UPS2 (1 << 12) /* USB Power Sense Port 2 */
68#define UHCSTAT_UPS1 (1 << 11) /* USB Power Sense Port 1 */
69#define UHCSTAT_HTA (1 << 10) /* HCI Target Abort */
70#define UHCSTAT_HBA (1 << 8) /* HCI Buffer Active */
71#define UHCSTAT_RWUE (1 << 7) /* HCI Remote Wake Up Event */
72
73#define UHCHR (0x0064) /* UHC Reset Register */
74#define UHCHR_SSEP3 (1 << 11) /* Sleep Standby Enable for Port3 */
75#define UHCHR_SSEP2 (1 << 10) /* Sleep Standby Enable for Port2 */
76#define UHCHR_SSEP1 (1 << 9) /* Sleep Standby Enable for Port1 */
77#define UHCHR_PCPL (1 << 7) /* Power control polarity low */
78#define UHCHR_PSPL (1 << 6) /* Power sense polarity low */
79#define UHCHR_SSE (1 << 5) /* Sleep Standby Enable */
80#define UHCHR_UIT (1 << 4) /* USB Interrupt Test */
81#define UHCHR_SSDC (1 << 3) /* Simulation Scale Down Clock */
82#define UHCHR_CGR (1 << 2) /* Clock Generation Reset */
83#define UHCHR_FHR (1 << 1) /* Force Host Controller Reset */
84#define UHCHR_FSBIR (1 << 0) /* Force System Bus Iface Reset */
85
86#define UHCHIE (0x0068) /* UHC Interrupt Enable Register*/
87#define UHCHIE_UPS3IE (1 << 14) /* Power Sense Port3 IntEn */
88#define UHCHIE_UPRIE (1 << 13) /* Port Resume IntEn */
89#define UHCHIE_UPS2IE (1 << 12) /* Power Sense Port2 IntEn */
90#define UHCHIE_UPS1IE (1 << 11) /* Power Sense Port1 IntEn */
91#define UHCHIE_TAIE (1 << 10) /* HCI Interface Transfer Abort
92 Interrupt Enable*/
93#define UHCHIE_HBAIE (1 << 8) /* HCI Buffer Active IntEn */
94#define UHCHIE_RWIE (1 << 7) /* Remote Wake-up IntEn */
95
96#define UHCHIT (0x006C) /* UHC Interrupt Test register */
97
32#define PXA_UHC_MAX_PORTNUM 3 98#define PXA_UHC_MAX_PORTNUM 3
33 99
34#define UHCRHPS(x) __REG2( 0x4C000050, (x)<<2 ) 100struct pxa27x_ohci {
101 /* must be 1st member here for hcd_to_ohci() to work */
102 struct ohci_hcd ohci;
103
104 struct device *dev;
105 struct clk *clk;
106 void __iomem *mmio_base;
107};
35 108
36static struct clk *usb_clk; 109#define to_pxa27x_ohci(hcd) (struct pxa27x_ohci *)hcd_to_ohci(hcd)
37 110
38/* 111/*
39 PMM_NPS_MODE -- PMM Non-power switching mode 112 PMM_NPS_MODE -- PMM Non-power switching mode
@@ -45,30 +118,35 @@ static struct clk *usb_clk;
45 PMM_PERPORT_MODE -- PMM per port switching mode 118 PMM_PERPORT_MODE -- PMM per port switching mode
46 Ports are powered individually. 119 Ports are powered individually.
47 */ 120 */
48static int pxa27x_ohci_select_pmm( int mode ) 121static int pxa27x_ohci_select_pmm(struct pxa27x_ohci *ohci, int mode)
49{ 122{
50 switch ( mode ) { 123 uint32_t uhcrhda = __raw_readl(ohci->mmio_base + UHCRHDA);
124 uint32_t uhcrhdb = __raw_readl(ohci->mmio_base + UHCRHDB);
125
126 switch (mode) {
51 case PMM_NPS_MODE: 127 case PMM_NPS_MODE:
52 UHCRHDA |= RH_A_NPS; 128 uhcrhda |= RH_A_NPS;
53 break; 129 break;
54 case PMM_GLOBAL_MODE: 130 case PMM_GLOBAL_MODE:
55 UHCRHDA &= ~(RH_A_NPS & RH_A_PSM); 131 uhcrhda &= ~(RH_A_NPS & RH_A_PSM);
56 break; 132 break;
57 case PMM_PERPORT_MODE: 133 case PMM_PERPORT_MODE:
58 UHCRHDA &= ~(RH_A_NPS); 134 uhcrhda &= ~(RH_A_NPS);
59 UHCRHDA |= RH_A_PSM; 135 uhcrhda |= RH_A_PSM;
60 136
61 /* Set port power control mask bits, only 3 ports. */ 137 /* Set port power control mask bits, only 3 ports. */
62 UHCRHDB |= (0x7<<17); 138 uhcrhdb |= (0x7<<17);
63 break; 139 break;
64 default: 140 default:
65 printk( KERN_ERR 141 printk( KERN_ERR
66 "Invalid mode %d, set to non-power switch mode.\n", 142 "Invalid mode %d, set to non-power switch mode.\n",
67 mode ); 143 mode );
68 144
69 UHCRHDA |= RH_A_NPS; 145 uhcrhda |= RH_A_NPS;
70 } 146 }
71 147
148 __raw_writel(uhcrhda, ohci->mmio_base + UHCRHDA);
149 __raw_writel(uhcrhdb, ohci->mmio_base + UHCRHDB);
72 return 0; 150 return 0;
73} 151}
74 152
@@ -76,57 +154,110 @@ extern int usb_disabled(void);
76 154
77/*-------------------------------------------------------------------------*/ 155/*-------------------------------------------------------------------------*/
78 156
79static int pxa27x_start_hc(struct device *dev) 157static inline void pxa27x_setup_hc(struct pxa27x_ohci *ohci,
158 struct pxaohci_platform_data *inf)
159{
160 uint32_t uhchr = __raw_readl(ohci->mmio_base + UHCHR);
161 uint32_t uhcrhda = __raw_readl(ohci->mmio_base + UHCRHDA);
162
163 if (inf->flags & ENABLE_PORT1)
164 uhchr &= ~UHCHR_SSEP1;
165
166 if (inf->flags & ENABLE_PORT2)
167 uhchr &= ~UHCHR_SSEP2;
168
169 if (inf->flags & ENABLE_PORT3)
170 uhchr &= ~UHCHR_SSEP3;
171
172 if (inf->flags & POWER_CONTROL_LOW)
173 uhchr |= UHCHR_PCPL;
174
175 if (inf->flags & POWER_SENSE_LOW)
176 uhchr |= UHCHR_PSPL;
177
178 if (inf->flags & NO_OC_PROTECTION)
179 uhcrhda |= UHCRHDA_NOCP;
180
181 if (inf->flags & OC_MODE_PERPORT)
182 uhcrhda |= UHCRHDA_OCPM;
183
184 if (inf->power_on_delay) {
185 uhcrhda &= ~UHCRHDA_POTPGT(0xff);
186 uhcrhda |= UHCRHDA_POTPGT(inf->power_on_delay / 2);
187 }
188
189 __raw_writel(uhchr, ohci->mmio_base + UHCHR);
190 __raw_writel(uhcrhda, ohci->mmio_base + UHCRHDA);
191}
192
193static inline void pxa27x_reset_hc(struct pxa27x_ohci *ohci)
194{
195 uint32_t uhchr = __raw_readl(ohci->mmio_base + UHCHR);
196
197 __raw_writel(uhchr | UHCHR_FHR, ohci->mmio_base + UHCHR);
198 udelay(11);
199 __raw_writel(uhchr & ~UHCHR_FHR, ohci->mmio_base + UHCHR);
200}
201
202#ifdef CONFIG_CPU_PXA27x
203extern void pxa27x_clear_otgph(void);
204#else
205#define pxa27x_clear_otgph() do {} while (0)
206#endif
207
208static int pxa27x_start_hc(struct pxa27x_ohci *ohci, struct device *dev)
80{ 209{
81 int retval = 0; 210 int retval = 0;
82 struct pxaohci_platform_data *inf; 211 struct pxaohci_platform_data *inf;
212 uint32_t uhchr;
83 213
84 inf = dev->platform_data; 214 inf = dev->platform_data;
85 215
86 clk_enable(usb_clk); 216 clk_enable(ohci->clk);
87 217
88 UHCHR |= UHCHR_FHR; 218 pxa27x_reset_hc(ohci);
89 udelay(11); 219
90 UHCHR &= ~UHCHR_FHR; 220 uhchr = __raw_readl(ohci->mmio_base + UHCHR) | UHCHR_FSBIR;
221 __raw_writel(uhchr, ohci->mmio_base + UHCHR);
91 222
92 UHCHR |= UHCHR_FSBIR; 223 while (__raw_readl(ohci->mmio_base + UHCHR) & UHCHR_FSBIR)
93 while (UHCHR & UHCHR_FSBIR)
94 cpu_relax(); 224 cpu_relax();
95 225
226 pxa27x_setup_hc(ohci, inf);
227
96 if (inf->init) 228 if (inf->init)
97 retval = inf->init(dev); 229 retval = inf->init(dev);
98 230
99 if (retval < 0) 231 if (retval < 0)
100 return retval; 232 return retval;
101 233
102 UHCHR &= ~UHCHR_SSE; 234 uhchr = __raw_readl(ohci->mmio_base + UHCHR) & ~UHCHR_SSE;
103 235 __raw_writel(uhchr, ohci->mmio_base + UHCHR);
104 UHCHIE = (UHCHIE_UPRIE | UHCHIE_RWIE); 236 __raw_writel(UHCHIE_UPRIE | UHCHIE_RWIE, ohci->mmio_base + UHCHIE);
105 237
106 /* Clear any OTG Pin Hold */ 238 /* Clear any OTG Pin Hold */
107 if (cpu_is_pxa27x() && (PSSR & PSSR_OTGPH)) 239 pxa27x_clear_otgph();
108 PSSR |= PSSR_OTGPH;
109
110 return 0; 240 return 0;
111} 241}
112 242
113static void pxa27x_stop_hc(struct device *dev) 243static void pxa27x_stop_hc(struct pxa27x_ohci *ohci, struct device *dev)
114{ 244{
115 struct pxaohci_platform_data *inf; 245 struct pxaohci_platform_data *inf;
246 uint32_t uhccoms;
116 247
117 inf = dev->platform_data; 248 inf = dev->platform_data;
118 249
119 if (inf->exit) 250 if (inf->exit)
120 inf->exit(dev); 251 inf->exit(dev);
121 252
122 UHCHR |= UHCHR_FHR; 253 pxa27x_reset_hc(ohci);
123 udelay(11);
124 UHCHR &= ~UHCHR_FHR;
125 254
126 UHCCOMS |= 1; 255 /* Host Controller Reset */
256 uhccoms = __raw_readl(ohci->mmio_base + UHCCOMS) | 0x01;
257 __raw_writel(uhccoms, ohci->mmio_base + UHCCOMS);
127 udelay(10); 258 udelay(10);
128 259
129 clk_disable(usb_clk); 260 clk_disable(ohci->clk);
130} 261}
131 262
132 263
@@ -147,18 +278,22 @@ static void pxa27x_stop_hc(struct device *dev)
147 */ 278 */
148int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device *pdev) 279int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device *pdev)
149{ 280{
150 int retval; 281 int retval, irq;
151 struct usb_hcd *hcd; 282 struct usb_hcd *hcd;
152 struct pxaohci_platform_data *inf; 283 struct pxaohci_platform_data *inf;
284 struct pxa27x_ohci *ohci;
285 struct resource *r;
286 struct clk *usb_clk;
153 287
154 inf = pdev->dev.platform_data; 288 inf = pdev->dev.platform_data;
155 289
156 if (!inf) 290 if (!inf)
157 return -ENODEV; 291 return -ENODEV;
158 292
159 if (pdev->resource[1].flags != IORESOURCE_IRQ) { 293 irq = platform_get_irq(pdev, 0);
160 pr_debug ("resource[1] is not IORESOURCE_IRQ"); 294 if (irq < 0) {
161 return -ENOMEM; 295 pr_err("no resource of IORESOURCE_IRQ");
296 return -ENXIO;
162 } 297 }
163 298
164 usb_clk = clk_get(&pdev->dev, "USBCLK"); 299 usb_clk = clk_get(&pdev->dev, "USBCLK");
@@ -168,8 +303,16 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device
168 hcd = usb_create_hcd (driver, &pdev->dev, "pxa27x"); 303 hcd = usb_create_hcd (driver, &pdev->dev, "pxa27x");
169 if (!hcd) 304 if (!hcd)
170 return -ENOMEM; 305 return -ENOMEM;
171 hcd->rsrc_start = pdev->resource[0].start; 306
172 hcd->rsrc_len = pdev->resource[0].end - pdev->resource[0].start + 1; 307 r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
308 if (!r) {
309 pr_err("no resource of IORESOURCE_MEM");
310 retval = -ENXIO;
311 goto err1;
312 }
313
314 hcd->rsrc_start = r->start;
315 hcd->rsrc_len = resource_size(r);
173 316
174 if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) { 317 if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
175 pr_debug("request_mem_region failed"); 318 pr_debug("request_mem_region failed");
@@ -184,24 +327,30 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device
184 goto err2; 327 goto err2;
185 } 328 }
186 329
187 if ((retval = pxa27x_start_hc(&pdev->dev)) < 0) { 330 /* initialize "struct pxa27x_ohci" */
331 ohci = (struct pxa27x_ohci *)hcd_to_ohci(hcd);
332 ohci->dev = &pdev->dev;
333 ohci->clk = usb_clk;
334 ohci->mmio_base = (void __iomem *)hcd->regs;
335
336 if ((retval = pxa27x_start_hc(ohci, &pdev->dev)) < 0) {
188 pr_debug("pxa27x_start_hc failed"); 337 pr_debug("pxa27x_start_hc failed");
189 goto err3; 338 goto err3;
190 } 339 }
191 340
192 /* Select Power Management Mode */ 341 /* Select Power Management Mode */
193 pxa27x_ohci_select_pmm(inf->port_mode); 342 pxa27x_ohci_select_pmm(ohci, inf->port_mode);
194 343
195 if (inf->power_budget) 344 if (inf->power_budget)
196 hcd->power_budget = inf->power_budget; 345 hcd->power_budget = inf->power_budget;
197 346
198 ohci_hcd_init(hcd_to_ohci(hcd)); 347 ohci_hcd_init(hcd_to_ohci(hcd));
199 348
200 retval = usb_add_hcd(hcd, pdev->resource[1].start, IRQF_DISABLED); 349 retval = usb_add_hcd(hcd, irq, IRQF_DISABLED);
201 if (retval == 0) 350 if (retval == 0)
202 return retval; 351 return retval;
203 352
204 pxa27x_stop_hc(&pdev->dev); 353 pxa27x_stop_hc(ohci, &pdev->dev);
205 err3: 354 err3:
206 iounmap(hcd->regs); 355 iounmap(hcd->regs);
207 err2: 356 err2:
@@ -228,12 +377,14 @@ int usb_hcd_pxa27x_probe (const struct hc_driver *driver, struct platform_device
228 */ 377 */
229void usb_hcd_pxa27x_remove (struct usb_hcd *hcd, struct platform_device *pdev) 378void usb_hcd_pxa27x_remove (struct usb_hcd *hcd, struct platform_device *pdev)
230{ 379{
380 struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd);
381
231 usb_remove_hcd(hcd); 382 usb_remove_hcd(hcd);
232 pxa27x_stop_hc(&pdev->dev); 383 pxa27x_stop_hc(ohci, &pdev->dev);
233 iounmap(hcd->regs); 384 iounmap(hcd->regs);
234 release_mem_region(hcd->rsrc_start, hcd->rsrc_len); 385 release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
235 usb_put_hcd(hcd); 386 usb_put_hcd(hcd);
236 clk_put(usb_clk); 387 clk_put(ohci->clk);
237} 388}
238 389
239/*-------------------------------------------------------------------------*/ 390/*-------------------------------------------------------------------------*/
@@ -266,7 +417,7 @@ ohci_pxa27x_start (struct usb_hcd *hcd)
266static const struct hc_driver ohci_pxa27x_hc_driver = { 417static const struct hc_driver ohci_pxa27x_hc_driver = {
267 .description = hcd_name, 418 .description = hcd_name,
268 .product_desc = "PXA27x OHCI", 419 .product_desc = "PXA27x OHCI",
269 .hcd_priv_size = sizeof(struct ohci_hcd), 420 .hcd_priv_size = sizeof(struct pxa27x_ohci),
270 421
271 /* 422 /*
272 * generic hardware linkage 423 * generic hardware linkage
@@ -330,13 +481,13 @@ static int ohci_hcd_pxa27x_drv_remove(struct platform_device *pdev)
330static int ohci_hcd_pxa27x_drv_suspend(struct platform_device *pdev, pm_message_t state) 481static int ohci_hcd_pxa27x_drv_suspend(struct platform_device *pdev, pm_message_t state)
331{ 482{
332 struct usb_hcd *hcd = platform_get_drvdata(pdev); 483 struct usb_hcd *hcd = platform_get_drvdata(pdev);
333 struct ohci_hcd *ohci = hcd_to_ohci(hcd); 484 struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd);
334 485
335 if (time_before(jiffies, ohci->next_statechange)) 486 if (time_before(jiffies, ohci->ohci.next_statechange))
336 msleep(5); 487 msleep(5);
337 ohci->next_statechange = jiffies; 488 ohci->ohci.next_statechange = jiffies;
338 489
339 pxa27x_stop_hc(&pdev->dev); 490 pxa27x_stop_hc(ohci, &pdev->dev);
340 hcd->state = HC_STATE_SUSPENDED; 491 hcd->state = HC_STATE_SUSPENDED;
341 492
342 return 0; 493 return 0;
@@ -345,14 +496,14 @@ static int ohci_hcd_pxa27x_drv_suspend(struct platform_device *pdev, pm_message_
345static int ohci_hcd_pxa27x_drv_resume(struct platform_device *pdev) 496static int ohci_hcd_pxa27x_drv_resume(struct platform_device *pdev)
346{ 497{
347 struct usb_hcd *hcd = platform_get_drvdata(pdev); 498 struct usb_hcd *hcd = platform_get_drvdata(pdev);
348 struct ohci_hcd *ohci = hcd_to_ohci(hcd); 499 struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd);
349 int status; 500 int status;
350 501
351 if (time_before(jiffies, ohci->next_statechange)) 502 if (time_before(jiffies, ohci->ohci.next_statechange))
352 msleep(5); 503 msleep(5);
353 ohci->next_statechange = jiffies; 504 ohci->ohci.next_statechange = jiffies;
354 505
355 if ((status = pxa27x_start_hc(&pdev->dev)) < 0) 506 if ((status = pxa27x_start_hc(ohci, &pdev->dev)) < 0)
356 return status; 507 return status;
357 508
358 ohci_finish_controller_resume(hcd); 509 ohci_finish_controller_resume(hcd);
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
index 7b74238ad1c7..e980766bb84b 100644
--- a/drivers/usb/serial/console.c
+++ b/drivers/usb/serial/console.c
@@ -161,7 +161,7 @@ static int usb_console_setup(struct console *co, char *options)
161 if (serial->type->set_termios) { 161 if (serial->type->set_termios) {
162 termios->c_cflag = cflag; 162 termios->c_cflag = cflag;
163 tty_termios_encode_baud_rate(termios, baud, baud); 163 tty_termios_encode_baud_rate(termios, baud, baud);
164 serial->type->set_termios(NULL, port, &dummy); 164 serial->type->set_termios(tty, port, &dummy);
165 165
166 port->port.tty = NULL; 166 port->port.tty = NULL;
167 kfree(termios); 167 kfree(termios);
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 70d135e0cc47..d85a74c64b54 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -172,11 +172,6 @@ config FB_DEFERRED_IO
172 bool 172 bool
173 depends on FB 173 depends on FB
174 174
175config FB_METRONOME
176 tristate
177 depends on FB
178 depends on FB_DEFERRED_IO
179
180config FB_HECUBA 175config FB_HECUBA
181 tristate 176 tristate
182 depends on FB 177 depends on FB
@@ -1974,19 +1969,6 @@ config FB_XILINX
1974 framebuffer. ML300 carries a 640*480 LCD display on the board, 1969 framebuffer. ML300 carries a 640*480 LCD display on the board,
1975 ML403 uses a standard DB15 VGA connector. 1970 ML403 uses a standard DB15 VGA connector.
1976 1971
1977config FB_AM200EPD
1978 tristate "AM-200 E-Ink EPD devkit support"
1979 depends on FB && ARCH_PXA && MMU
1980 select FB_SYS_FILLRECT
1981 select FB_SYS_COPYAREA
1982 select FB_SYS_IMAGEBLIT
1983 select FB_SYS_FOPS
1984 select FB_DEFERRED_IO
1985 select FB_METRONOME
1986 help
1987 This enables support for the Metronome display controller used on
1988 the E-Ink AM-200 EPD devkit.
1989
1990config FB_COBALT 1972config FB_COBALT
1991 tristate "Cobalt server LCD frame buffer support" 1973 tristate "Cobalt server LCD frame buffer support"
1992 depends on FB && MIPS_COBALT 1974 depends on FB && MIPS_COBALT
@@ -2041,6 +2023,19 @@ config XEN_FBDEV_FRONTEND
2041 frame buffer driver. It communicates with a back-end 2023 frame buffer driver. It communicates with a back-end
2042 in another domain. 2024 in another domain.
2043 2025
2026config FB_METRONOME
2027 tristate "E-Ink Metronome/8track controller support"
2028 depends on FB
2029 select FB_SYS_FILLRECT
2030 select FB_SYS_COPYAREA
2031 select FB_SYS_IMAGEBLIT
2032 select FB_SYS_FOPS
2033 select FB_DEFERRED_IO
2034 help
2035 This driver implements support for the E-Ink Metronome
2036 controller. The pre-release name for this device was 8track
2037 and could also have been called by some vendors as PVI-nnnn.
2038
2044source "drivers/video/omap/Kconfig" 2039source "drivers/video/omap/Kconfig"
2045 2040
2046source "drivers/video/backlight/Kconfig" 2041source "drivers/video/backlight/Kconfig"
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index a6b55297a7fb..ad0330bf9be3 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -29,7 +29,6 @@ obj-$(CONFIG_FB_DEFERRED_IO) += fb_defio.o
29 29
30# Hardware specific drivers go first 30# Hardware specific drivers go first
31obj-$(CONFIG_FB_AMIGA) += amifb.o c2p.o 31obj-$(CONFIG_FB_AMIGA) += amifb.o c2p.o
32obj-$(CONFIG_FB_AM200EPD) += am200epd.o
33obj-$(CONFIG_FB_ARC) += arcfb.o 32obj-$(CONFIG_FB_ARC) += arcfb.o
34obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o 33obj-$(CONFIG_FB_CLPS711X) += clps711xfb.o
35obj-$(CONFIG_FB_CYBER2000) += cyber2000fb.o 34obj-$(CONFIG_FB_CYBER2000) += cyber2000fb.o
diff --git a/drivers/video/am200epd.c b/drivers/video/am200epd.c
deleted file mode 100644
index 0c35b8b0160e..000000000000
--- a/drivers/video/am200epd.c
+++ /dev/null
@@ -1,295 +0,0 @@
1/*
2 * linux/drivers/video/am200epd.c -- Platform device for AM200 EPD kit
3 *
4 * Copyright (C) 2008, Jaya Kumar
5 *
6 * This file is subject to the terms and conditions of the GNU General Public
7 * License. See the file COPYING in the main directory of this archive for
8 * more details.
9 *
10 * Layout is based on skeletonfb.c by James Simmons and Geert Uytterhoeven.
11 *
12 * This work was made possible by help and equipment support from E-Ink
13 * Corporation. http://support.eink.com/community
14 *
15 * This driver is written to be used with the Metronome display controller.
16 * on the AM200 EPD prototype kit/development kit with an E-Ink 800x600
17 * Vizplex EPD on a Gumstix board using the Lyre interface board.
18 *
19 */
20
21#include <linux/module.h>
22#include <linux/kernel.h>
23#include <linux/errno.h>
24#include <linux/string.h>
25#include <linux/delay.h>
26#include <linux/interrupt.h>
27#include <linux/fb.h>
28#include <linux/init.h>
29#include <linux/platform_device.h>
30#include <linux/list.h>
31#include <linux/uaccess.h>
32#include <linux/irq.h>
33
34#include <video/metronomefb.h>
35
36#include <mach/pxa-regs.h>
37
38/* register offsets for gpio control */
39#define LED_GPIO_PIN 51
40#define STDBY_GPIO_PIN 48
41#define RST_GPIO_PIN 49
42#define RDY_GPIO_PIN 32
43#define ERR_GPIO_PIN 17
44#define PCBPWR_GPIO_PIN 16
45
46#define AF_SEL_GPIO_N 0x3
47#define GAFR0_U_OFFSET(pin) ((pin - 16) * 2)
48#define GAFR1_L_OFFSET(pin) ((pin - 32) * 2)
49#define GAFR1_U_OFFSET(pin) ((pin - 48) * 2)
50#define GPDR1_OFFSET(pin) (pin - 32)
51#define GPCR1_OFFSET(pin) (pin - 32)
52#define GPSR1_OFFSET(pin) (pin - 32)
53#define GPCR0_OFFSET(pin) (pin)
54#define GPSR0_OFFSET(pin) (pin)
55
56static void am200_set_gpio_output(int pin, int val)
57{
58 u8 index;
59
60 index = pin >> 4;
61
62 switch (index) {
63 case 1:
64 if (val)
65 GPSR0 |= (1 << GPSR0_OFFSET(pin));
66 else
67 GPCR0 |= (1 << GPCR0_OFFSET(pin));
68 break;
69 case 2:
70 break;
71 case 3:
72 if (val)
73 GPSR1 |= (1 << GPSR1_OFFSET(pin));
74 else
75 GPCR1 |= (1 << GPCR1_OFFSET(pin));
76 break;
77 default:
78 printk(KERN_ERR "unimplemented\n");
79 }
80}
81
82static void __devinit am200_init_gpio_pin(int pin, int dir)
83{
84 u8 index;
85 /* dir 0 is output, 1 is input
86 - do 2 things here:
87 - set gpio alternate function to standard gpio
88 - set gpio direction to input or output */
89
90 index = pin >> 4;
91 switch (index) {
92 case 1:
93 GAFR0_U &= ~(AF_SEL_GPIO_N << GAFR0_U_OFFSET(pin));
94
95 if (dir)
96 GPDR0 &= ~(1 << pin);
97 else
98 GPDR0 |= (1 << pin);
99 break;
100 case 2:
101 GAFR1_L &= ~(AF_SEL_GPIO_N << GAFR1_L_OFFSET(pin));
102
103 if (dir)
104 GPDR1 &= ~(1 << GPDR1_OFFSET(pin));
105 else
106 GPDR1 |= (1 << GPDR1_OFFSET(pin));
107 break;
108 case 3:
109 GAFR1_U &= ~(AF_SEL_GPIO_N << GAFR1_U_OFFSET(pin));
110
111 if (dir)
112 GPDR1 &= ~(1 << GPDR1_OFFSET(pin));
113 else
114 GPDR1 |= (1 << GPDR1_OFFSET(pin));
115 break;
116 default:
117 printk(KERN_ERR "unimplemented\n");
118 }
119}
120
121static void am200_init_gpio_regs(struct metronomefb_par *par)
122{
123 am200_init_gpio_pin(LED_GPIO_PIN, 0);
124 am200_set_gpio_output(LED_GPIO_PIN, 0);
125
126 am200_init_gpio_pin(STDBY_GPIO_PIN, 0);
127 am200_set_gpio_output(STDBY_GPIO_PIN, 0);
128
129 am200_init_gpio_pin(RST_GPIO_PIN, 0);
130 am200_set_gpio_output(RST_GPIO_PIN, 0);
131
132 am200_init_gpio_pin(RDY_GPIO_PIN, 1);
133
134 am200_init_gpio_pin(ERR_GPIO_PIN, 1);
135
136 am200_init_gpio_pin(PCBPWR_GPIO_PIN, 0);
137 am200_set_gpio_output(PCBPWR_GPIO_PIN, 0);
138}
139
140static void am200_disable_lcd_controller(struct metronomefb_par *par)
141{
142 LCSR = 0xffffffff; /* Clear LCD Status Register */
143 LCCR0 |= LCCR0_DIS; /* Disable LCD Controller */
144
145 /* we reset and just wait for things to settle */
146 msleep(200);
147}
148
149static void am200_enable_lcd_controller(struct metronomefb_par *par)
150{
151 LCSR = 0xffffffff;
152 FDADR0 = par->metromem_desc_dma;
153 LCCR0 |= LCCR0_ENB;
154}
155
156static void am200_init_lcdc_regs(struct metronomefb_par *par)
157{
158 /* here we do:
159 - disable the lcd controller
160 - setup lcd control registers
161 - setup dma descriptor
162 - reenable lcd controller
163 */
164
165 /* disable the lcd controller */
166 am200_disable_lcd_controller(par);
167
168 /* setup lcd control registers */
169 LCCR0 = LCCR0_LDM | LCCR0_SFM | LCCR0_IUM | LCCR0_EFM | LCCR0_PAS
170 | LCCR0_QDM | LCCR0_BM | LCCR0_OUM;
171
172 LCCR1 = (par->info->var.xres/2 - 1) /* pixels per line */
173 | (27 << 10) /* hsync pulse width - 1 */
174 | (33 << 16) /* eol pixel count */
175 | (33 << 24); /* bol pixel count */
176
177 LCCR2 = (par->info->var.yres - 1) /* lines per panel */
178 | (24 << 10) /* vsync pulse width - 1 */
179 | (2 << 16) /* eof pixel count */
180 | (0 << 24); /* bof pixel count */
181
182 LCCR3 = 2 /* pixel clock divisor */
183 | (24 << 8) /* AC Bias pin freq */
184 | LCCR3_16BPP /* BPP */
185 | LCCR3_PCP; /* PCP falling edge */
186
187}
188
189static void am200_post_dma_setup(struct metronomefb_par *par)
190{
191 par->metromem_desc->mFDADR0 = par->metromem_desc_dma;
192 par->metromem_desc->mFSADR0 = par->metromem_dma;
193 par->metromem_desc->mFIDR0 = 0;
194 par->metromem_desc->mLDCMD0 = par->info->var.xres
195 * par->info->var.yres;
196 am200_enable_lcd_controller(par);
197}
198
199static void am200_free_irq(struct fb_info *info)
200{
201 free_irq(IRQ_GPIO(RDY_GPIO_PIN), info);
202}
203
204static irqreturn_t am200_handle_irq(int irq, void *dev_id)
205{
206 struct fb_info *info = dev_id;
207 struct metronomefb_par *par = info->par;
208
209 wake_up_interruptible(&par->waitq);
210 return IRQ_HANDLED;
211}
212
213static int am200_setup_irq(struct fb_info *info)
214{
215 int retval;
216
217 retval = request_irq(IRQ_GPIO(RDY_GPIO_PIN), am200_handle_irq,
218 IRQF_DISABLED, "AM200", info);
219 if (retval) {
220 printk(KERN_ERR "am200epd: request_irq failed: %d\n", retval);
221 return retval;
222 }
223
224 return set_irq_type(IRQ_GPIO(RDY_GPIO_PIN), IRQ_TYPE_EDGE_FALLING);
225}
226
227static void am200_set_rst(struct metronomefb_par *par, int state)
228{
229 am200_set_gpio_output(RST_GPIO_PIN, state);
230}
231
232static void am200_set_stdby(struct metronomefb_par *par, int state)
233{
234 am200_set_gpio_output(STDBY_GPIO_PIN, state);
235}
236
237static int am200_wait_event(struct metronomefb_par *par)
238{
239 return wait_event_timeout(par->waitq, (GPLR1 & 0x01), HZ);
240}
241
242static int am200_wait_event_intr(struct metronomefb_par *par)
243{
244 return wait_event_interruptible_timeout(par->waitq, (GPLR1 & 0x01), HZ);
245}
246
247static struct metronome_board am200_board = {
248 .owner = THIS_MODULE,
249 .free_irq = am200_free_irq,
250 .setup_irq = am200_setup_irq,
251 .init_gpio_regs = am200_init_gpio_regs,
252 .init_lcdc_regs = am200_init_lcdc_regs,
253 .post_dma_setup = am200_post_dma_setup,
254 .set_rst = am200_set_rst,
255 .set_stdby = am200_set_stdby,
256 .met_wait_event = am200_wait_event,
257 .met_wait_event_intr = am200_wait_event_intr,
258};
259
260static struct platform_device *am200_device;
261
262static int __init am200_init(void)
263{
264 int ret;
265
266 /* request our platform independent driver */
267 request_module("metronomefb");
268
269 am200_device = platform_device_alloc("metronomefb", -1);
270 if (!am200_device)
271 return -ENOMEM;
272
273 platform_device_add_data(am200_device, &am200_board,
274 sizeof(am200_board));
275
276 /* this _add binds metronomefb to am200. metronomefb refcounts am200 */
277 ret = platform_device_add(am200_device);
278
279 if (ret)
280 platform_device_put(am200_device);
281
282 return ret;
283}
284
285static void __exit am200_exit(void)
286{
287 platform_device_unregister(am200_device);
288}
289
290module_init(am200_init);
291module_exit(am200_exit);
292
293MODULE_DESCRIPTION("board driver for am200 metronome epd kit");
294MODULE_AUTHOR("Jaya Kumar");
295MODULE_LICENSE("GPL");
diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
index 9c5925927ece..d38fd5217422 100644
--- a/drivers/video/atmel_lcdfb.c
+++ b/drivers/video/atmel_lcdfb.c
@@ -208,6 +208,36 @@ static unsigned long compute_hozval(unsigned long xres, unsigned long lcdcon2)
208 return value; 208 return value;
209} 209}
210 210
211static void atmel_lcdfb_stop_nowait(struct atmel_lcdfb_info *sinfo)
212{
213 /* Turn off the LCD controller and the DMA controller */
214 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
215 sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET);
216
217 /* Wait for the LCDC core to become idle */
218 while (lcdc_readl(sinfo, ATMEL_LCDC_PWRCON) & ATMEL_LCDC_BUSY)
219 msleep(10);
220
221 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, 0);
222}
223
224static void atmel_lcdfb_stop(struct atmel_lcdfb_info *sinfo)
225{
226 atmel_lcdfb_stop_nowait(sinfo);
227
228 /* Wait for DMA engine to become idle... */
229 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY)
230 msleep(10);
231}
232
233static void atmel_lcdfb_start(struct atmel_lcdfb_info *sinfo)
234{
235 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, sinfo->default_dmacon);
236 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
237 (sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET)
238 | ATMEL_LCDC_PWR);
239}
240
211static void atmel_lcdfb_update_dma(struct fb_info *info, 241static void atmel_lcdfb_update_dma(struct fb_info *info,
212 struct fb_var_screeninfo *var) 242 struct fb_var_screeninfo *var)
213{ 243{
@@ -378,6 +408,10 @@ static int atmel_lcdfb_check_var(struct fb_var_screeninfo *var,
378 var->red.offset = 11; 408 var->red.offset = 11;
379 var->blue.offset = 0; 409 var->blue.offset = 0;
380 var->green.length = 6; 410 var->green.length = 6;
411 } else if (sinfo->lcd_wiring_mode == ATMEL_LCDC_WIRING_RGB555) {
412 var->red.offset = 10;
413 var->blue.offset = 0;
414 var->green.length = 5;
381 } else { 415 } else {
382 /* BGR:555 mode */ 416 /* BGR:555 mode */
383 var->red.offset = 0; 417 var->red.offset = 0;
@@ -420,26 +454,8 @@ static void atmel_lcdfb_reset(struct atmel_lcdfb_info *sinfo)
420{ 454{
421 might_sleep(); 455 might_sleep();
422 456
423 /* LCD power off */ 457 atmel_lcdfb_stop(sinfo);
424 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON, sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET); 458 atmel_lcdfb_start(sinfo);
425
426 /* wait for the LCDC core to become idle */
427 while (lcdc_readl(sinfo, ATMEL_LCDC_PWRCON) & ATMEL_LCDC_BUSY)
428 msleep(10);
429
430 /* DMA disable */
431 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, 0);
432
433 /* wait for DMA engine to become idle */
434 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY)
435 msleep(10);
436
437 /* LCD power on */
438 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
439 (sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET) | ATMEL_LCDC_PWR);
440
441 /* DMA enable */
442 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, sinfo->default_dmacon);
443} 459}
444 460
445/** 461/**
@@ -471,14 +487,7 @@ static int atmel_lcdfb_set_par(struct fb_info *info)
471 info->var.xres, info->var.yres, 487 info->var.xres, info->var.yres,
472 info->var.xres_virtual, info->var.yres_virtual); 488 info->var.xres_virtual, info->var.yres_virtual);
473 489
474 /* Turn off the LCD controller and the DMA controller */ 490 atmel_lcdfb_stop_nowait(sinfo);
475 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON, sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET);
476
477 /* Wait for the LCDC core to become idle */
478 while (lcdc_readl(sinfo, ATMEL_LCDC_PWRCON) & ATMEL_LCDC_BUSY)
479 msleep(10);
480
481 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, 0);
482 491
483 if (info->var.bits_per_pixel == 1) 492 if (info->var.bits_per_pixel == 1)
484 info->fix.visual = FB_VISUAL_MONO01; 493 info->fix.visual = FB_VISUAL_MONO01;
@@ -583,13 +592,7 @@ static int atmel_lcdfb_set_par(struct fb_info *info)
583 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY) 592 while (lcdc_readl(sinfo, ATMEL_LCDC_DMACON) & ATMEL_LCDC_DMABUSY)
584 msleep(10); 593 msleep(10);
585 594
586 dev_dbg(info->device, " * re-enable DMA engine\n"); 595 atmel_lcdfb_start(sinfo);
587 /* ...and enable it with updated configuration */
588 lcdc_writel(sinfo, ATMEL_LCDC_DMACON, sinfo->default_dmacon);
589
590 dev_dbg(info->device, " * re-enable LCDC core\n");
591 lcdc_writel(sinfo, ATMEL_LCDC_PWRCON,
592 (sinfo->guard_time << ATMEL_LCDC_GUARDT_OFFSET) | ATMEL_LCDC_PWR);
593 596
594 dev_dbg(info->device, " * DONE\n"); 597 dev_dbg(info->device, " * DONE\n");
595 598
@@ -939,7 +942,7 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev)
939 ret = register_framebuffer(info); 942 ret = register_framebuffer(info);
940 if (ret < 0) { 943 if (ret < 0) {
941 dev_err(dev, "failed to register framebuffer device: %d\n", ret); 944 dev_err(dev, "failed to register framebuffer device: %d\n", ret);
942 goto free_cmap; 945 goto reset_drvdata;
943 } 946 }
944 947
945 /* add selected videomode to modelist */ 948 /* add selected videomode to modelist */
@@ -955,7 +958,8 @@ static int __init atmel_lcdfb_probe(struct platform_device *pdev)
955 958
956 return 0; 959 return 0;
957 960
958 961reset_drvdata:
962 dev_set_drvdata(dev, NULL);
959free_cmap: 963free_cmap:
960 fb_dealloc_cmap(&info->cmap); 964 fb_dealloc_cmap(&info->cmap);
961unregister_irqs: 965unregister_irqs:
@@ -992,10 +996,11 @@ static int __exit atmel_lcdfb_remove(struct platform_device *pdev)
992{ 996{
993 struct device *dev = &pdev->dev; 997 struct device *dev = &pdev->dev;
994 struct fb_info *info = dev_get_drvdata(dev); 998 struct fb_info *info = dev_get_drvdata(dev);
995 struct atmel_lcdfb_info *sinfo = info->par; 999 struct atmel_lcdfb_info *sinfo;
996 1000
997 if (!sinfo) 1001 if (!info || !info->par)
998 return 0; 1002 return 0;
1003 sinfo = info->par;
999 1004
1000 cancel_work_sync(&sinfo->task); 1005 cancel_work_sync(&sinfo->task);
1001 exit_backlight(sinfo); 1006 exit_backlight(sinfo);
@@ -1030,11 +1035,20 @@ static int atmel_lcdfb_suspend(struct platform_device *pdev, pm_message_t mesg)
1030 struct fb_info *info = platform_get_drvdata(pdev); 1035 struct fb_info *info = platform_get_drvdata(pdev);
1031 struct atmel_lcdfb_info *sinfo = info->par; 1036 struct atmel_lcdfb_info *sinfo = info->par;
1032 1037
1038 /*
1039 * We don't want to handle interrupts while the clock is
1040 * stopped. It may take forever.
1041 */
1042 lcdc_writel(sinfo, ATMEL_LCDC_IDR, ~0UL);
1043
1033 sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_VAL); 1044 sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_VAL);
1034 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, 0); 1045 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, 0);
1035 if (sinfo->atmel_lcdfb_power_control) 1046 if (sinfo->atmel_lcdfb_power_control)
1036 sinfo->atmel_lcdfb_power_control(0); 1047 sinfo->atmel_lcdfb_power_control(0);
1048
1049 atmel_lcdfb_stop(sinfo);
1037 atmel_lcdfb_stop_clock(sinfo); 1050 atmel_lcdfb_stop_clock(sinfo);
1051
1038 return 0; 1052 return 0;
1039} 1053}
1040 1054
@@ -1044,9 +1058,15 @@ static int atmel_lcdfb_resume(struct platform_device *pdev)
1044 struct atmel_lcdfb_info *sinfo = info->par; 1058 struct atmel_lcdfb_info *sinfo = info->par;
1045 1059
1046 atmel_lcdfb_start_clock(sinfo); 1060 atmel_lcdfb_start_clock(sinfo);
1061 atmel_lcdfb_start(sinfo);
1047 if (sinfo->atmel_lcdfb_power_control) 1062 if (sinfo->atmel_lcdfb_power_control)
1048 sinfo->atmel_lcdfb_power_control(1); 1063 sinfo->atmel_lcdfb_power_control(1);
1049 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, sinfo->saved_lcdcon); 1064 lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, sinfo->saved_lcdcon);
1065
1066 /* Enable FIFO & DMA errors */
1067 lcdc_writel(sinfo, ATMEL_LCDC_IER, ATMEL_LCDC_UFLWI
1068 | ATMEL_LCDC_OWRI | ATMEL_LCDC_MERI);
1069
1050 return 0; 1070 return 0;
1051} 1071}
1052 1072
diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 452b770d8cc9..c72a13562954 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -24,6 +24,13 @@ config LCD_CLASS_DEVICE
24 To have support for your specific LCD panel you will have to 24 To have support for your specific LCD panel you will have to
25 select the proper drivers which depend on this option. 25 select the proper drivers which depend on this option.
26 26
27config LCD_CORGI
28 tristate "LCD Panel support for SHARP corgi/spitz model"
29 depends on LCD_CLASS_DEVICE && SPI_MASTER && PXA_SHARPSL
30 help
31 Say y here to support the LCD panels usually found on SHARP
32 corgi (C7x0) and spitz (Cxx00) models.
33
27config LCD_LTV350QV 34config LCD_LTV350QV
28 tristate "Samsung LTV350QV LCD Panel" 35 tristate "Samsung LTV350QV LCD Panel"
29 depends on LCD_CLASS_DEVICE && SPI_MASTER 36 depends on LCD_CLASS_DEVICE && SPI_MASTER
@@ -44,6 +51,14 @@ config LCD_ILI9320
44 If you have a panel based on the ILI9320 controller chip 51 If you have a panel based on the ILI9320 controller chip
45 then say y to include a power driver for it. 52 then say y to include a power driver for it.
46 53
54config LCD_TDO24M
55 tristate "Toppoly TDO24M LCD Panels support"
56 depends on LCD_CLASS_DEVICE && SPI_MASTER
57 default n
58 help
59 If you have a Toppoly TDO24M series LCD panel, say y here to
60 include the support for it.
61
47config LCD_VGG2432A4 62config LCD_VGG2432A4
48 tristate "VGG2432A4 LCM device support" 63 tristate "VGG2432A4 LCM device support"
49 depends on BACKLIGHT_LCD_SUPPORT && LCD_CLASS_DEVICE && SPI_MASTER 64 depends on BACKLIGHT_LCD_SUPPORT && LCD_CLASS_DEVICE && SPI_MASTER
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index b405aace803f..3ec551eb472c 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -1,10 +1,12 @@
1# Backlight & LCD drivers 1# Backlight & LCD drivers
2 2
3obj-$(CONFIG_LCD_CLASS_DEVICE) += lcd.o 3obj-$(CONFIG_LCD_CLASS_DEVICE) += lcd.o
4obj-$(CONFIG_LCD_CORGI) += corgi_lcd.o
4obj-$(CONFIG_LCD_LTV350QV) += ltv350qv.o 5obj-$(CONFIG_LCD_LTV350QV) += ltv350qv.o
5obj-$(CONFIG_LCD_ILI9320) += ili9320.o 6obj-$(CONFIG_LCD_ILI9320) += ili9320.o
6obj-$(CONFIG_LCD_PLATFORM) += platform_lcd.o 7obj-$(CONFIG_LCD_PLATFORM) += platform_lcd.o
7obj-$(CONFIG_LCD_VGG2432A4) += vgg2432a4.o 8obj-$(CONFIG_LCD_VGG2432A4) += vgg2432a4.o
9obj-$(CONFIG_LCD_TDO24M) += tdo24m.o
8 10
9obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o 11obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o
10obj-$(CONFIG_BACKLIGHT_ATMEL_PWM) += atmel-pwm-bl.o 12obj-$(CONFIG_BACKLIGHT_ATMEL_PWM) += atmel-pwm-bl.o
diff --git a/drivers/video/backlight/corgi_lcd.c b/drivers/video/backlight/corgi_lcd.c
new file mode 100644
index 000000000000..2afd47eefe74
--- /dev/null
+++ b/drivers/video/backlight/corgi_lcd.c
@@ -0,0 +1,641 @@
1/*
2 * LCD/Backlight Driver for Sharp Zaurus Handhelds (various models)
3 *
4 * Copyright (c) 2004-2006 Richard Purdie
5 *
6 * Based on Sharp's 2.4 Backlight Driver
7 *
8 * Copyright (c) 2008 Marvell International Ltd.
9 * Converted to SPI device based LCD/Backlight device driver
10 * by Eric Miao <eric.miao@marvell.com>
11 *
12 * This program is free software; you can redistribute it and/or modify
13 * it under the terms of the GNU General Public License version 2 as
14 * published by the Free Software Foundation.
15 *
16 */
17
18#include <linux/module.h>
19#include <linux/kernel.h>
20#include <linux/init.h>
21#include <linux/delay.h>
22#include <linux/gpio.h>
23#include <linux/fb.h>
24#include <linux/lcd.h>
25#include <linux/spi/spi.h>
26#include <linux/spi/corgi_lcd.h>
27#include <asm/mach/sharpsl_param.h>
28
29#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
30
31/* Register Addresses */
32#define RESCTL_ADRS 0x00
33#define PHACTRL_ADRS 0x01
34#define DUTYCTRL_ADRS 0x02
35#define POWERREG0_ADRS 0x03
36#define POWERREG1_ADRS 0x04
37#define GPOR3_ADRS 0x05
38#define PICTRL_ADRS 0x06
39#define POLCTRL_ADRS 0x07
40
41/* Register Bit Definitions */
42#define RESCTL_QVGA 0x01
43#define RESCTL_VGA 0x00
44
45#define POWER1_VW_ON 0x01 /* VW Supply FET ON */
46#define POWER1_GVSS_ON 0x02 /* GVSS(-8V) Power Supply ON */
47#define POWER1_VDD_ON 0x04 /* VDD(8V),SVSS(-4V) Power Supply ON */
48
49#define POWER1_VW_OFF 0x00 /* VW Supply FET OFF */
50#define POWER1_GVSS_OFF 0x00 /* GVSS(-8V) Power Supply OFF */
51#define POWER1_VDD_OFF 0x00 /* VDD(8V),SVSS(-4V) Power Supply OFF */
52
53#define POWER0_COM_DCLK 0x01 /* COM Voltage DC Bias DAC Serial Data Clock */
54#define POWER0_COM_DOUT 0x02 /* COM Voltage DC Bias DAC Serial Data Out */
55#define POWER0_DAC_ON 0x04 /* DAC Power Supply ON */
56#define POWER0_COM_ON 0x08 /* COM Power Supply ON */
57#define POWER0_VCC5_ON 0x10 /* VCC5 Power Supply ON */
58
59#define POWER0_DAC_OFF 0x00 /* DAC Power Supply OFF */
60#define POWER0_COM_OFF 0x00 /* COM Power Supply OFF */
61#define POWER0_VCC5_OFF 0x00 /* VCC5 Power Supply OFF */
62
63#define PICTRL_INIT_STATE 0x01
64#define PICTRL_INIOFF 0x02
65#define PICTRL_POWER_DOWN 0x04
66#define PICTRL_COM_SIGNAL_OFF 0x08
67#define PICTRL_DAC_SIGNAL_OFF 0x10
68
69#define POLCTRL_SYNC_POL_FALL 0x01
70#define POLCTRL_EN_POL_FALL 0x02
71#define POLCTRL_DATA_POL_FALL 0x04
72#define POLCTRL_SYNC_ACT_H 0x08
73#define POLCTRL_EN_ACT_L 0x10
74
75#define POLCTRL_SYNC_POL_RISE 0x00
76#define POLCTRL_EN_POL_RISE 0x00
77#define POLCTRL_DATA_POL_RISE 0x00
78#define POLCTRL_SYNC_ACT_L 0x00
79#define POLCTRL_EN_ACT_H 0x00
80
81#define PHACTRL_PHASE_MANUAL 0x01
82#define DEFAULT_PHAD_QVGA (9)
83#define DEFAULT_COMADJ (125)
84
85struct corgi_lcd {
86 struct spi_device *spi_dev;
87 struct lcd_device *lcd_dev;
88 struct backlight_device *bl_dev;
89
90 int limit_mask;
91 int intensity;
92 int power;
93 int mode;
94 char buf[2];
95
96 int gpio_backlight_on;
97 int gpio_backlight_cont;
98 int gpio_backlight_cont_inverted;
99
100 void (*kick_battery)(void);
101};
102
103static int corgi_ssp_lcdtg_send(struct corgi_lcd *lcd, int reg, uint8_t val);
104
105static struct corgi_lcd *the_corgi_lcd;
106static unsigned long corgibl_flags;
107#define CORGIBL_SUSPENDED 0x01
108#define CORGIBL_BATTLOW 0x02
109
110/*
111 * This is only a psuedo I2C interface. We can't use the standard kernel
112 * routines as the interface is write only. We just assume the data is acked...
113 */
114static void lcdtg_ssp_i2c_send(struct corgi_lcd *lcd, uint8_t data)
115{
116 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS, data);
117 udelay(10);
118}
119
120static void lcdtg_i2c_send_bit(struct corgi_lcd *lcd, uint8_t data)
121{
122 lcdtg_ssp_i2c_send(lcd, data);
123 lcdtg_ssp_i2c_send(lcd, data | POWER0_COM_DCLK);
124 lcdtg_ssp_i2c_send(lcd, data);
125}
126
127static void lcdtg_i2c_send_start(struct corgi_lcd *lcd, uint8_t base)
128{
129 lcdtg_ssp_i2c_send(lcd, base | POWER0_COM_DCLK | POWER0_COM_DOUT);
130 lcdtg_ssp_i2c_send(lcd, base | POWER0_COM_DCLK);
131 lcdtg_ssp_i2c_send(lcd, base);
132}
133
134static void lcdtg_i2c_send_stop(struct corgi_lcd *lcd, uint8_t base)
135{
136 lcdtg_ssp_i2c_send(lcd, base);
137 lcdtg_ssp_i2c_send(lcd, base | POWER0_COM_DCLK);
138 lcdtg_ssp_i2c_send(lcd, base | POWER0_COM_DCLK | POWER0_COM_DOUT);
139}
140
141static void lcdtg_i2c_send_byte(struct corgi_lcd *lcd,
142 uint8_t base, uint8_t data)
143{
144 int i;
145 for (i = 0; i < 8; i++) {
146 if (data & 0x80)
147 lcdtg_i2c_send_bit(lcd, base | POWER0_COM_DOUT);
148 else
149 lcdtg_i2c_send_bit(lcd, base);
150 data <<= 1;
151 }
152}
153
154static void lcdtg_i2c_wait_ack(struct corgi_lcd *lcd, uint8_t base)
155{
156 lcdtg_i2c_send_bit(lcd, base);
157}
158
159static void lcdtg_set_common_voltage(struct corgi_lcd *lcd,
160 uint8_t base_data, uint8_t data)
161{
162 /* Set Common Voltage to M62332FP via I2C */
163 lcdtg_i2c_send_start(lcd, base_data);
164 lcdtg_i2c_send_byte(lcd, base_data, 0x9c);
165 lcdtg_i2c_wait_ack(lcd, base_data);
166 lcdtg_i2c_send_byte(lcd, base_data, 0x00);
167 lcdtg_i2c_wait_ack(lcd, base_data);
168 lcdtg_i2c_send_byte(lcd, base_data, data);
169 lcdtg_i2c_wait_ack(lcd, base_data);
170 lcdtg_i2c_send_stop(lcd, base_data);
171}
172
173static int corgi_ssp_lcdtg_send(struct corgi_lcd *lcd, int adrs, uint8_t data)
174{
175 struct spi_message msg;
176 struct spi_transfer xfer = {
177 .len = 1,
178 .cs_change = 1,
179 .tx_buf = lcd->buf,
180 };
181
182 lcd->buf[0] = ((adrs & 0x07) << 5) | (data & 0x1f);
183 spi_message_init(&msg);
184 spi_message_add_tail(&xfer, &msg);
185
186 return spi_sync(lcd->spi_dev, &msg);
187}
188
189/* Set Phase Adjust */
190static void lcdtg_set_phadadj(struct corgi_lcd *lcd, int mode)
191{
192 int adj;
193
194 switch(mode) {
195 case CORGI_LCD_MODE_VGA:
196 /* Setting for VGA */
197 adj = sharpsl_param.phadadj;
198 adj = (adj < 0) ? PHACTRL_PHASE_MANUAL :
199 PHACTRL_PHASE_MANUAL | ((adj & 0xf) << 1);
200 break;
201 case CORGI_LCD_MODE_QVGA:
202 default:
203 /* Setting for QVGA */
204 adj = (DEFAULT_PHAD_QVGA << 1) | PHACTRL_PHASE_MANUAL;
205 break;
206 }
207
208 corgi_ssp_lcdtg_send(lcd, PHACTRL_ADRS, adj);
209}
210
211static void corgi_lcd_power_on(struct corgi_lcd *lcd)
212{
213 int comadj;
214
215 /* Initialize Internal Logic & Port */
216 corgi_ssp_lcdtg_send(lcd, PICTRL_ADRS,
217 PICTRL_POWER_DOWN | PICTRL_INIOFF |
218 PICTRL_INIT_STATE | PICTRL_COM_SIGNAL_OFF |
219 PICTRL_DAC_SIGNAL_OFF);
220
221 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS,
222 POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_OFF |
223 POWER0_COM_OFF | POWER0_VCC5_OFF);
224
225 corgi_ssp_lcdtg_send(lcd, POWERREG1_ADRS,
226 POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_OFF);
227
228 /* VDD(+8V), SVSS(-4V) ON */
229 corgi_ssp_lcdtg_send(lcd, POWERREG1_ADRS,
230 POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_ON);
231 mdelay(3);
232
233 /* DAC ON */
234 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS,
235 POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON |
236 POWER0_COM_OFF | POWER0_VCC5_OFF);
237
238 /* INIB = H, INI = L */
239 /* PICTL[0] = H , PICTL[1] = PICTL[2] = PICTL[4] = L */
240 corgi_ssp_lcdtg_send(lcd, PICTRL_ADRS,
241 PICTRL_INIT_STATE | PICTRL_COM_SIGNAL_OFF);
242
243 /* Set Common Voltage */
244 comadj = sharpsl_param.comadj;
245 if (comadj < 0)
246 comadj = DEFAULT_COMADJ;
247
248 lcdtg_set_common_voltage(lcd, POWER0_DAC_ON | POWER0_COM_OFF |
249 POWER0_VCC5_OFF, comadj);
250
251 /* VCC5 ON, DAC ON */
252 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS,
253 POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON |
254 POWER0_COM_OFF | POWER0_VCC5_ON);
255
256 /* GVSS(-8V) ON, VDD ON */
257 corgi_ssp_lcdtg_send(lcd, POWERREG1_ADRS,
258 POWER1_VW_OFF | POWER1_GVSS_ON | POWER1_VDD_ON);
259 mdelay(2);
260
261 /* COM SIGNAL ON (PICTL[3] = L) */
262 corgi_ssp_lcdtg_send(lcd, PICTRL_ADRS, PICTRL_INIT_STATE);
263
264 /* COM ON, DAC ON, VCC5_ON */
265 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS,
266 POWER0_COM_DCLK | POWER0_COM_DOUT | POWER0_DAC_ON |
267 POWER0_COM_ON | POWER0_VCC5_ON);
268
269 /* VW ON, GVSS ON, VDD ON */
270 corgi_ssp_lcdtg_send(lcd, POWERREG1_ADRS,
271 POWER1_VW_ON | POWER1_GVSS_ON | POWER1_VDD_ON);
272
273 /* Signals output enable */
274 corgi_ssp_lcdtg_send(lcd, PICTRL_ADRS, 0);
275
276 /* Set Phase Adjust */
277 lcdtg_set_phadadj(lcd, lcd->mode);
278
279 /* Initialize for Input Signals from ATI */
280 corgi_ssp_lcdtg_send(lcd, POLCTRL_ADRS,
281 POLCTRL_SYNC_POL_RISE | POLCTRL_EN_POL_RISE |
282 POLCTRL_DATA_POL_RISE | POLCTRL_SYNC_ACT_L |
283 POLCTRL_EN_ACT_H);
284 udelay(1000);
285
286 switch (lcd->mode) {
287 case CORGI_LCD_MODE_VGA:
288 corgi_ssp_lcdtg_send(lcd, RESCTL_ADRS, RESCTL_VGA);
289 break;
290 case CORGI_LCD_MODE_QVGA:
291 default:
292 corgi_ssp_lcdtg_send(lcd, RESCTL_ADRS, RESCTL_QVGA);
293 break;
294 }
295}
296
297static void corgi_lcd_power_off(struct corgi_lcd *lcd)
298{
299 /* 60Hz x 2 frame = 16.7msec x 2 = 33.4 msec */
300 msleep(34);
301
302 /* (1)VW OFF */
303 corgi_ssp_lcdtg_send(lcd, POWERREG1_ADRS,
304 POWER1_VW_OFF | POWER1_GVSS_ON | POWER1_VDD_ON);
305
306 /* (2)COM OFF */
307 corgi_ssp_lcdtg_send(lcd, PICTRL_ADRS, PICTRL_COM_SIGNAL_OFF);
308 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS,
309 POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_ON);
310
311 /* (3)Set Common Voltage Bias 0V */
312 lcdtg_set_common_voltage(lcd, POWER0_DAC_ON | POWER0_COM_OFF |
313 POWER0_VCC5_ON, 0);
314
315 /* (4)GVSS OFF */
316 corgi_ssp_lcdtg_send(lcd, POWERREG1_ADRS,
317 POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_ON);
318
319 /* (5)VCC5 OFF */
320 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS,
321 POWER0_DAC_ON | POWER0_COM_OFF | POWER0_VCC5_OFF);
322
323 /* (6)Set PDWN, INIOFF, DACOFF */
324 corgi_ssp_lcdtg_send(lcd, PICTRL_ADRS,
325 PICTRL_INIOFF | PICTRL_DAC_SIGNAL_OFF |
326 PICTRL_POWER_DOWN | PICTRL_COM_SIGNAL_OFF);
327
328 /* (7)DAC OFF */
329 corgi_ssp_lcdtg_send(lcd, POWERREG0_ADRS,
330 POWER0_DAC_OFF | POWER0_COM_OFF | POWER0_VCC5_OFF);
331
332 /* (8)VDD OFF */
333 corgi_ssp_lcdtg_send(lcd, POWERREG1_ADRS,
334 POWER1_VW_OFF | POWER1_GVSS_OFF | POWER1_VDD_OFF);
335}
336
337static int corgi_lcd_set_mode(struct lcd_device *ld, struct fb_videomode *m)
338{
339 struct corgi_lcd *lcd = dev_get_drvdata(&ld->dev);
340 int mode = CORGI_LCD_MODE_QVGA;
341
342 if (m->xres == 640 || m->xres == 480)
343 mode = CORGI_LCD_MODE_VGA;
344
345 if (lcd->mode == mode)
346 return 0;
347
348 lcdtg_set_phadadj(lcd, mode);
349
350 switch (mode) {
351 case CORGI_LCD_MODE_VGA:
352 corgi_ssp_lcdtg_send(lcd, RESCTL_ADRS, RESCTL_VGA);
353 break;
354 case CORGI_LCD_MODE_QVGA:
355 default:
356 corgi_ssp_lcdtg_send(lcd, RESCTL_ADRS, RESCTL_QVGA);
357 break;
358 }
359
360 lcd->mode = mode;
361 return 0;
362}
363
364static int corgi_lcd_set_power(struct lcd_device *ld, int power)
365{
366 struct corgi_lcd *lcd = dev_get_drvdata(&ld->dev);
367
368 if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
369 corgi_lcd_power_on(lcd);
370
371 if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
372 corgi_lcd_power_off(lcd);
373
374 lcd->power = power;
375 return 0;
376}
377
378static int corgi_lcd_get_power(struct lcd_device *ld)
379{
380 struct corgi_lcd *lcd = dev_get_drvdata(&ld->dev);
381
382 return lcd->power;
383}
384
385static struct lcd_ops corgi_lcd_ops = {
386 .get_power = corgi_lcd_get_power,
387 .set_power = corgi_lcd_set_power,
388 .set_mode = corgi_lcd_set_mode,
389};
390
391static int corgi_bl_get_intensity(struct backlight_device *bd)
392{
393 struct corgi_lcd *lcd = dev_get_drvdata(&bd->dev);
394
395 return lcd->intensity;
396}
397
398static int corgi_bl_set_intensity(struct corgi_lcd *lcd, int intensity)
399{
400 int cont;
401
402 if (intensity > 0x10)
403 intensity += 0x10;
404
405 corgi_ssp_lcdtg_send(lcd, DUTYCTRL_ADRS, intensity);
406
407 /* Bit 5 via GPIO_BACKLIGHT_CONT */
408 cont = !!(intensity & 0x20) ^ lcd->gpio_backlight_cont_inverted;
409
410 if (gpio_is_valid(lcd->gpio_backlight_cont))
411 gpio_set_value(lcd->gpio_backlight_cont, cont);
412
413 if (gpio_is_valid(lcd->gpio_backlight_on))
414 gpio_set_value(lcd->gpio_backlight_on, intensity);
415
416 if (lcd->kick_battery)
417 lcd->kick_battery();
418
419 lcd->intensity = intensity;
420 return 0;
421}
422
423static int corgi_bl_update_status(struct backlight_device *bd)
424{
425 struct corgi_lcd *lcd = dev_get_drvdata(&bd->dev);
426 int intensity = bd->props.brightness;
427
428 if (bd->props.power != FB_BLANK_UNBLANK)
429 intensity = 0;
430
431 if (bd->props.fb_blank != FB_BLANK_UNBLANK)
432 intensity = 0;
433
434 if (corgibl_flags & CORGIBL_SUSPENDED)
435 intensity = 0;
436 if (corgibl_flags & CORGIBL_BATTLOW)
437 intensity &= lcd->limit_mask;
438
439 return corgi_bl_set_intensity(lcd, intensity);
440}
441
442void corgibl_limit_intensity(int limit)
443{
444 if (limit)
445 corgibl_flags |= CORGIBL_BATTLOW;
446 else
447 corgibl_flags &= ~CORGIBL_BATTLOW;
448
449 backlight_update_status(the_corgi_lcd->bl_dev);
450}
451EXPORT_SYMBOL(corgibl_limit_intensity);
452
453static struct backlight_ops corgi_bl_ops = {
454 .get_brightness = corgi_bl_get_intensity,
455 .update_status = corgi_bl_update_status,
456};
457
458#ifdef CONFIG_PM
459static int corgi_lcd_suspend(struct spi_device *spi, pm_message_t state)
460{
461 struct corgi_lcd *lcd = dev_get_drvdata(&spi->dev);
462
463 corgibl_flags |= CORGIBL_SUSPENDED;
464 corgi_bl_set_intensity(lcd, 0);
465 corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
466 return 0;
467}
468
469static int corgi_lcd_resume(struct spi_device *spi)
470{
471 struct corgi_lcd *lcd = dev_get_drvdata(&spi->dev);
472
473 corgibl_flags &= ~CORGIBL_SUSPENDED;
474 corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_UNBLANK);
475 backlight_update_status(lcd->bl_dev);
476 return 0;
477}
478#else
479#define corgi_lcd_suspend NULL
480#define corgi_lcd_resume NULL
481#endif
482
483static int setup_gpio_backlight(struct corgi_lcd *lcd,
484 struct corgi_lcd_platform_data *pdata)
485{
486 struct spi_device *spi = lcd->spi_dev;
487 int err;
488
489 lcd->gpio_backlight_on = -1;
490 lcd->gpio_backlight_cont = -1;
491
492 if (gpio_is_valid(pdata->gpio_backlight_on)) {
493 err = gpio_request(pdata->gpio_backlight_on, "BL_ON");
494 if (err) {
495 dev_err(&spi->dev, "failed to request GPIO%d for "
496 "backlight_on\n", pdata->gpio_backlight_on);
497 return err;
498 }
499
500 lcd->gpio_backlight_on = pdata->gpio_backlight_on;
501 gpio_direction_output(lcd->gpio_backlight_on, 0);
502 }
503
504 if (gpio_is_valid(pdata->gpio_backlight_cont)) {
505 err = gpio_request(pdata->gpio_backlight_cont, "BL_CONT");
506 if (err) {
507 dev_err(&spi->dev, "failed to request GPIO%d for "
508 "backlight_cont\n", pdata->gpio_backlight_cont);
509 goto err_free_backlight_on;
510 }
511
512 lcd->gpio_backlight_cont = pdata->gpio_backlight_cont;
513
514 /* spitz and akita use both GPIOs for backlight, and
515 * have inverted polarity of GPIO_BACKLIGHT_CONT
516 */
517 if (gpio_is_valid(lcd->gpio_backlight_on)) {
518 lcd->gpio_backlight_cont_inverted = 1;
519 gpio_direction_output(lcd->gpio_backlight_cont, 1);
520 } else {
521 lcd->gpio_backlight_cont_inverted = 0;
522 gpio_direction_output(lcd->gpio_backlight_cont, 0);
523 }
524 }
525 return 0;
526
527err_free_backlight_on:
528 if (gpio_is_valid(lcd->gpio_backlight_on))
529 gpio_free(lcd->gpio_backlight_on);
530 return err;
531}
532
533static int __devinit corgi_lcd_probe(struct spi_device *spi)
534{
535 struct corgi_lcd_platform_data *pdata = spi->dev.platform_data;
536 struct corgi_lcd *lcd;
537 int ret = 0;
538
539 if (pdata == NULL) {
540 dev_err(&spi->dev, "platform data not available\n");
541 return -EINVAL;
542 }
543
544 lcd = kzalloc(sizeof(struct corgi_lcd), GFP_KERNEL);
545 if (!lcd) {
546 dev_err(&spi->dev, "failed to allocate memory\n");
547 return -ENOMEM;
548 }
549
550 lcd->spi_dev = spi;
551
552 lcd->lcd_dev = lcd_device_register("corgi_lcd", &spi->dev,
553 lcd, &corgi_lcd_ops);
554 if (IS_ERR(lcd->lcd_dev)) {
555 ret = PTR_ERR(lcd->lcd_dev);
556 goto err_free_lcd;
557 }
558 lcd->power = FB_BLANK_POWERDOWN;
559 lcd->mode = (pdata) ? pdata->init_mode : CORGI_LCD_MODE_VGA;
560
561 lcd->bl_dev = backlight_device_register("corgi_bl", &spi->dev,
562 lcd, &corgi_bl_ops);
563 if (IS_ERR(lcd->bl_dev)) {
564 ret = PTR_ERR(lcd->bl_dev);
565 goto err_unregister_lcd;
566 }
567 lcd->bl_dev->props.max_brightness = pdata->max_intensity;
568 lcd->bl_dev->props.brightness = pdata->default_intensity;
569 lcd->bl_dev->props.power = FB_BLANK_UNBLANK;
570
571 ret = setup_gpio_backlight(lcd, pdata);
572 if (ret)
573 goto err_unregister_bl;
574
575 lcd->kick_battery = pdata->kick_battery;
576
577 dev_set_drvdata(&spi->dev, lcd);
578 corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_UNBLANK);
579 backlight_update_status(lcd->bl_dev);
580
581 lcd->limit_mask = pdata->limit_mask;
582 the_corgi_lcd = lcd;
583 return 0;
584
585err_unregister_bl:
586 backlight_device_unregister(lcd->bl_dev);
587err_unregister_lcd:
588 lcd_device_unregister(lcd->lcd_dev);
589err_free_lcd:
590 kfree(lcd);
591 return ret;
592}
593
594static int __devexit corgi_lcd_remove(struct spi_device *spi)
595{
596 struct corgi_lcd *lcd = dev_get_drvdata(&spi->dev);
597
598 lcd->bl_dev->props.power = FB_BLANK_UNBLANK;
599 lcd->bl_dev->props.brightness = 0;
600 backlight_update_status(lcd->bl_dev);
601 backlight_device_unregister(lcd->bl_dev);
602
603 if (gpio_is_valid(lcd->gpio_backlight_on))
604 gpio_free(lcd->gpio_backlight_on);
605
606 if (gpio_is_valid(lcd->gpio_backlight_cont))
607 gpio_free(lcd->gpio_backlight_cont);
608
609 corgi_lcd_set_power(lcd->lcd_dev, FB_BLANK_POWERDOWN);
610 lcd_device_unregister(lcd->lcd_dev);
611 kfree(lcd);
612
613 return 0;
614}
615
616static struct spi_driver corgi_lcd_driver = {
617 .driver = {
618 .name = "corgi-lcd",
619 .owner = THIS_MODULE,
620 },
621 .probe = corgi_lcd_probe,
622 .remove = __devexit_p(corgi_lcd_remove),
623 .suspend = corgi_lcd_suspend,
624 .resume = corgi_lcd_resume,
625};
626
627static int __init corgi_lcd_init(void)
628{
629 return spi_register_driver(&corgi_lcd_driver);
630}
631module_init(corgi_lcd_init);
632
633static void __exit corgi_lcd_exit(void)
634{
635 spi_unregister_driver(&corgi_lcd_driver);
636}
637module_exit(corgi_lcd_exit);
638
639MODULE_DESCRIPTION("LCD and backlight driver for SHARP C7x0/Cxx00");
640MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>");
641MODULE_LICENSE("GPL");
diff --git a/drivers/video/backlight/lcd.c b/drivers/video/backlight/lcd.c
index b15b2b84a6f7..8e1731d3b228 100644
--- a/drivers/video/backlight/lcd.c
+++ b/drivers/video/backlight/lcd.c
@@ -27,14 +27,26 @@ static int fb_notifier_callback(struct notifier_block *self,
27 struct fb_event *evdata = data; 27 struct fb_event *evdata = data;
28 28
29 /* If we aren't interested in this event, skip it immediately ... */ 29 /* If we aren't interested in this event, skip it immediately ... */
30 if (event != FB_EVENT_BLANK) 30 switch (event) {
31 case FB_EVENT_BLANK:
32 case FB_EVENT_MODE_CHANGE:
33 case FB_EVENT_MODE_CHANGE_ALL:
34 break;
35 default:
31 return 0; 36 return 0;
37 }
32 38
33 ld = container_of(self, struct lcd_device, fb_notif); 39 ld = container_of(self, struct lcd_device, fb_notif);
40 if (!ld->ops)
41 return 0;
42
34 mutex_lock(&ld->ops_lock); 43 mutex_lock(&ld->ops_lock);
35 if (ld->ops) 44 if (!ld->ops->check_fb || ld->ops->check_fb(ld, evdata->info)) {
36 if (!ld->ops->check_fb || ld->ops->check_fb(ld, evdata->info)) 45 if (event == FB_EVENT_BLANK)
37 ld->ops->set_power(ld, *(int *)evdata->data); 46 ld->ops->set_power(ld, *(int *)evdata->data);
47 else
48 ld->ops->set_mode(ld, evdata->data);
49 }
38 mutex_unlock(&ld->ops_lock); 50 mutex_unlock(&ld->ops_lock);
39 return 0; 51 return 0;
40} 52}
diff --git a/drivers/video/backlight/tdo24m.c b/drivers/video/backlight/tdo24m.c
new file mode 100644
index 000000000000..8427669162ea
--- /dev/null
+++ b/drivers/video/backlight/tdo24m.c
@@ -0,0 +1,396 @@
1/*
2 * tdo24m - SPI-based drivers for Toppoly TDO24M series LCD panels
3 *
4 * Copyright (C) 2008 Marvell International Ltd.
5 * Eric Miao <eric.miao@marvell.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * publishhed by the Free Software Foundation.
10 */
11
12#include <linux/module.h>
13#include <linux/kernel.h>
14#include <linux/init.h>
15#include <linux/device.h>
16#include <linux/spi/spi.h>
17#include <linux/fb.h>
18#include <linux/lcd.h>
19
20#define POWER_IS_ON(pwr) ((pwr) <= FB_BLANK_NORMAL)
21
22#define TDO24M_SPI_BUFF_SIZE (4)
23#define MODE_QVGA 0
24#define MODE_VGA 1
25
26struct tdo24m {
27 struct spi_device *spi_dev;
28 struct lcd_device *lcd_dev;
29
30 struct spi_message msg;
31 struct spi_transfer xfer;
32 uint8_t *buf;
33
34 int power;
35 int mode;
36};
37
38/* use bit 30, 31 as the indicator of command parameter number */
39#define CMD0(x) ((0 << 30) | (x))
40#define CMD1(x, x1) ((1 << 30) | ((x) << 9) | 0x100 | (x1))
41#define CMD2(x, x1, x2) ((2 << 30) | ((x) << 18) | 0x20000 |\
42 ((x1) << 9) | 0x100 | (x2))
43#define CMD_NULL (-1)
44
45static uint32_t lcd_panel_reset[] = {
46 CMD0(0x1), /* reset */
47 CMD0(0x0), /* nop */
48 CMD0(0x0), /* nop */
49 CMD0(0x0), /* nop */
50 CMD_NULL,
51};
52
53static uint32_t lcd_panel_on[] = {
54 CMD0(0x29), /* Display ON */
55 CMD2(0xB8, 0xFF, 0xF9), /* Output Control */
56 CMD0(0x11), /* Sleep out */
57 CMD1(0xB0, 0x16), /* Wake */
58 CMD_NULL,
59};
60
61static uint32_t lcd_panel_off[] = {
62 CMD0(0x28), /* Display OFF */
63 CMD2(0xB8, 0x80, 0x02), /* Output Control */
64 CMD0(0x10), /* Sleep in */
65 CMD1(0xB0, 0x00), /* Deep stand by in */
66 CMD_NULL,
67};
68
69static uint32_t lcd_vga_pass_through[] = {
70 CMD1(0xB0, 0x16),
71 CMD1(0xBC, 0x80),
72 CMD1(0xE1, 0x00),
73 CMD1(0x36, 0x50),
74 CMD1(0x3B, 0x00),
75 CMD_NULL,
76};
77
78static uint32_t lcd_qvga_pass_through[] = {
79 CMD1(0xB0, 0x16),
80 CMD1(0xBC, 0x81),
81 CMD1(0xE1, 0x00),
82 CMD1(0x36, 0x50),
83 CMD1(0x3B, 0x22),
84 CMD_NULL,
85};
86
87static uint32_t lcd_vga_transfer[] = {
88 CMD1(0xcf, 0x02), /* Blanking period control (1) */
89 CMD2(0xd0, 0x08, 0x04), /* Blanking period control (2) */
90 CMD1(0xd1, 0x01), /* CKV timing control on/off */
91 CMD2(0xd2, 0x14, 0x00), /* CKV 1,2 timing control */
92 CMD2(0xd3, 0x1a, 0x0f), /* OEV timing control */
93 CMD2(0xd4, 0x1f, 0xaf), /* ASW timing control (1) */
94 CMD1(0xd5, 0x14), /* ASW timing control (2) */
95 CMD0(0x21), /* Invert for normally black display */
96 CMD0(0x29), /* Display on */
97 CMD_NULL,
98};
99
100static uint32_t lcd_qvga_transfer[] = {
101 CMD1(0xd6, 0x02), /* Blanking period control (1) */
102 CMD2(0xd7, 0x08, 0x04), /* Blanking period control (2) */
103 CMD1(0xd8, 0x01), /* CKV timing control on/off */
104 CMD2(0xd9, 0x00, 0x08), /* CKV 1,2 timing control */
105 CMD2(0xde, 0x05, 0x0a), /* OEV timing control */
106 CMD2(0xdf, 0x0a, 0x19), /* ASW timing control (1) */
107 CMD1(0xe0, 0x0a), /* ASW timing control (2) */
108 CMD0(0x21), /* Invert for normally black display */
109 CMD0(0x29), /* Display on */
110 CMD_NULL,
111};
112
113static uint32_t lcd_panel_config[] = {
114 CMD2(0xb8, 0xff, 0xf9), /* Output control */
115 CMD0(0x11), /* sleep out */
116 CMD1(0xba, 0x01), /* Display mode (1) */
117 CMD1(0xbb, 0x00), /* Display mode (2) */
118 CMD1(0x3a, 0x60), /* Display mode 18-bit RGB */
119 CMD1(0xbf, 0x10), /* Drive system change control */
120 CMD1(0xb1, 0x56), /* Booster operation setup */
121 CMD1(0xb2, 0x33), /* Booster mode setup */
122 CMD1(0xb3, 0x11), /* Booster frequency setup */
123 CMD1(0xb4, 0x02), /* Op amp/system clock */
124 CMD1(0xb5, 0x35), /* VCS voltage */
125 CMD1(0xb6, 0x40), /* VCOM voltage */
126 CMD1(0xb7, 0x03), /* External display signal */
127 CMD1(0xbd, 0x00), /* ASW slew rate */
128 CMD1(0xbe, 0x00), /* Dummy data for QuadData operation */
129 CMD1(0xc0, 0x11), /* Sleep out FR count (A) */
130 CMD1(0xc1, 0x11), /* Sleep out FR count (B) */
131 CMD1(0xc2, 0x11), /* Sleep out FR count (C) */
132 CMD2(0xc3, 0x20, 0x40), /* Sleep out FR count (D) */
133 CMD2(0xc4, 0x60, 0xc0), /* Sleep out FR count (E) */
134 CMD2(0xc5, 0x10, 0x20), /* Sleep out FR count (F) */
135 CMD1(0xc6, 0xc0), /* Sleep out FR count (G) */
136 CMD2(0xc7, 0x33, 0x43), /* Gamma 1 fine tuning (1) */
137 CMD1(0xc8, 0x44), /* Gamma 1 fine tuning (2) */
138 CMD1(0xc9, 0x33), /* Gamma 1 inclination adjustment */
139 CMD1(0xca, 0x00), /* Gamma 1 blue offset adjustment */
140 CMD2(0xec, 0x01, 0xf0), /* Horizontal clock cycles */
141 CMD_NULL,
142};
143
144static int tdo24m_writes(struct tdo24m *lcd, uint32_t *array)
145{
146 struct spi_transfer *x = &lcd->xfer;
147 uint32_t data, *p = array;
148 int nparams, err = 0;
149
150 for (; *p != CMD_NULL; p++) {
151
152 nparams = (*p >> 30) & 0x3;
153
154 data = *p << (7 - nparams);
155 switch (nparams) {
156 case 0:
157 lcd->buf[0] = (data >> 8) & 0xff;
158 lcd->buf[1] = data & 0xff;
159 break;
160 case 1:
161 lcd->buf[0] = (data >> 16) & 0xff;
162 lcd->buf[1] = (data >> 8) & 0xff;
163 lcd->buf[2] = data & 0xff;
164 break;
165 case 2:
166 lcd->buf[0] = (data >> 24) & 0xff;
167 lcd->buf[1] = (data >> 16) & 0xff;
168 lcd->buf[2] = (data >> 8) & 0xff;
169 lcd->buf[3] = data & 0xff;
170 break;
171 default:
172 continue;
173 }
174 x->len = nparams + 2;
175 err = spi_sync(lcd->spi_dev, &lcd->msg);
176 if (err)
177 break;
178 }
179
180 return err;
181}
182
183static int tdo24m_adj_mode(struct tdo24m *lcd, int mode)
184{
185 switch (mode) {
186 case MODE_VGA:
187 tdo24m_writes(lcd, lcd_vga_pass_through);
188 tdo24m_writes(lcd, lcd_panel_config);
189 tdo24m_writes(lcd, lcd_vga_transfer);
190 break;
191 case MODE_QVGA:
192 tdo24m_writes(lcd, lcd_qvga_pass_through);
193 tdo24m_writes(lcd, lcd_panel_config);
194 tdo24m_writes(lcd, lcd_qvga_transfer);
195 break;
196 default:
197 return -EINVAL;
198 }
199
200 lcd->mode = mode;
201 return 0;
202}
203
204static int tdo24m_power_on(struct tdo24m *lcd)
205{
206 int err;
207
208 err = tdo24m_writes(lcd, lcd_panel_on);
209 if (err)
210 goto out;
211
212 err = tdo24m_writes(lcd, lcd_panel_reset);
213 if (err)
214 goto out;
215
216 err = tdo24m_adj_mode(lcd, lcd->mode);
217out:
218 return err;
219}
220
221static int tdo24m_power_off(struct tdo24m *lcd)
222{
223 return tdo24m_writes(lcd, lcd_panel_off);
224}
225
226static int tdo24m_power(struct tdo24m *lcd, int power)
227{
228 int ret = 0;
229
230 if (POWER_IS_ON(power) && !POWER_IS_ON(lcd->power))
231 ret = tdo24m_power_on(lcd);
232 else if (!POWER_IS_ON(power) && POWER_IS_ON(lcd->power))
233 ret = tdo24m_power_off(lcd);
234
235 if (!ret)
236 lcd->power = power;
237
238 return ret;
239}
240
241
242static int tdo24m_set_power(struct lcd_device *ld, int power)
243{
244 struct tdo24m *lcd = lcd_get_data(ld);
245 return tdo24m_power(lcd, power);
246}
247
248static int tdo24m_get_power(struct lcd_device *ld)
249{
250 struct tdo24m *lcd = lcd_get_data(ld);
251 return lcd->power;
252}
253
254static int tdo24m_set_mode(struct lcd_device *ld, struct fb_videomode *m)
255{
256 struct tdo24m *lcd = lcd_get_data(ld);
257 int mode = MODE_QVGA;
258
259 if (m->xres == 640 || m->xres == 480)
260 mode = MODE_VGA;
261
262 if (lcd->mode == mode)
263 return 0;
264
265 return tdo24m_adj_mode(lcd, mode);
266}
267
268static struct lcd_ops tdo24m_ops = {
269 .get_power = tdo24m_get_power,
270 .set_power = tdo24m_set_power,
271 .set_mode = tdo24m_set_mode,
272};
273
274static int __devinit tdo24m_probe(struct spi_device *spi)
275{
276 struct tdo24m *lcd;
277 struct spi_message *m;
278 struct spi_transfer *x;
279 int err;
280
281 spi->bits_per_word = 8;
282 spi->mode = SPI_MODE_3;
283 err = spi_setup(spi);
284 if (err)
285 return err;
286
287 lcd = kzalloc(sizeof(struct tdo24m), GFP_KERNEL);
288 if (!lcd)
289 return -ENOMEM;
290
291 lcd->spi_dev = spi;
292 lcd->power = FB_BLANK_POWERDOWN;
293 lcd->mode = MODE_VGA; /* default to VGA */
294
295 lcd->buf = kmalloc(TDO24M_SPI_BUFF_SIZE, sizeof(GFP_KERNEL));
296 if (lcd->buf == NULL) {
297 kfree(lcd);
298 return -ENOMEM;
299 }
300
301 m = &lcd->msg;
302 x = &lcd->xfer;
303
304 spi_message_init(m);
305
306 x->tx_buf = &lcd->buf[0];
307 spi_message_add_tail(x, m);
308
309 lcd->lcd_dev = lcd_device_register("tdo24m", &spi->dev,
310 lcd, &tdo24m_ops);
311 if (IS_ERR(lcd->lcd_dev)) {
312 err = PTR_ERR(lcd->lcd_dev);
313 goto out_free;
314 }
315
316 dev_set_drvdata(&spi->dev, lcd);
317 err = tdo24m_power(lcd, FB_BLANK_UNBLANK);
318 if (err)
319 goto out_unregister;
320
321 return 0;
322
323out_unregister:
324 lcd_device_unregister(lcd->lcd_dev);
325out_free:
326 kfree(lcd->buf);
327 kfree(lcd);
328 return err;
329}
330
331static int __devexit tdo24m_remove(struct spi_device *spi)
332{
333 struct tdo24m *lcd = dev_get_drvdata(&spi->dev);
334
335 tdo24m_power(lcd, FB_BLANK_POWERDOWN);
336 lcd_device_unregister(lcd->lcd_dev);
337 kfree(lcd->buf);
338 kfree(lcd);
339
340 return 0;
341}
342
343#ifdef CONFIG_PM
344static int tdo24m_suspend(struct spi_device *spi, pm_message_t state)
345{
346 struct tdo24m *lcd = dev_get_drvdata(&spi->dev);
347
348 return tdo24m_power(lcd, FB_BLANK_POWERDOWN);
349}
350
351static int tdo24m_resume(struct spi_device *spi)
352{
353 struct tdo24m *lcd = dev_get_drvdata(&spi->dev);
354
355 return tdo24m_power(lcd, FB_BLANK_UNBLANK);
356}
357#else
358#define tdo24m_suspend NULL
359#define tdo24m_resume NULL
360#endif
361
362/* Power down all displays on reboot, poweroff or halt */
363static void tdo24m_shutdown(struct spi_device *spi)
364{
365 struct tdo24m *lcd = dev_get_drvdata(&spi->dev);
366
367 tdo24m_power(lcd, FB_BLANK_POWERDOWN);
368}
369
370static struct spi_driver tdo24m_driver = {
371 .driver = {
372 .name = "tdo24m",
373 .owner = THIS_MODULE,
374 },
375 .probe = tdo24m_probe,
376 .remove = __devexit_p(tdo24m_remove),
377 .shutdown = tdo24m_shutdown,
378 .suspend = tdo24m_suspend,
379 .resume = tdo24m_resume,
380};
381
382static int __init tdo24m_init(void)
383{
384 return spi_register_driver(&tdo24m_driver);
385}
386module_init(tdo24m_init);
387
388static void __exit tdo24m_exit(void)
389{
390 spi_unregister_driver(&tdo24m_driver);
391}
392module_exit(tdo24m_exit);
393
394MODULE_AUTHOR("Eric Miao <eric.miao@marvell.com>");
395MODULE_DESCRIPTION("Driver for Toppoly TDO24M LCD Panel");
396MODULE_LICENSE("GPL");
diff --git a/drivers/video/bf54x-lq043fb.c b/drivers/video/bf54x-lq043fb.c
index 6d5aa806777e..7644ed249564 100644
--- a/drivers/video/bf54x-lq043fb.c
+++ b/drivers/video/bf54x-lq043fb.c
@@ -58,7 +58,7 @@
58#include <asm/gpio.h> 58#include <asm/gpio.h>
59#include <asm/portmux.h> 59#include <asm/portmux.h>
60 60
61#include <asm/mach/bf54x-lq043.h> 61#include <mach/bf54x-lq043.h>
62 62
63#define NO_BL_SUPPORT 63#define NO_BL_SUPPORT
64 64
diff --git a/drivers/video/cirrusfb.c b/drivers/video/cirrusfb.c
index c14b2435d23e..e729fb279645 100644
--- a/drivers/video/cirrusfb.c
+++ b/drivers/video/cirrusfb.c
@@ -628,27 +628,18 @@ static long cirrusfb_get_mclk(long freq, int bpp, long *div)
628static int cirrusfb_check_var(struct fb_var_screeninfo *var, 628static int cirrusfb_check_var(struct fb_var_screeninfo *var,
629 struct fb_info *info) 629 struct fb_info *info)
630{ 630{
631 int nom, den; /* translyting from pixels->bytes */ 631 int yres;
632 int yres, i; 632 /* memory size in pixels */
633 static struct { int xres, yres; } modes[] = 633 unsigned pixels = info->screen_size * 8 / var->bits_per_pixel;
634 { { 1600, 1280 },
635 { 1280, 1024 },
636 { 1024, 768 },
637 { 800, 600 },
638 { 640, 480 },
639 { -1, -1 } };
640 634
641 switch (var->bits_per_pixel) { 635 switch (var->bits_per_pixel) {
642 case 1: 636 case 1:
643 nom = 4; 637 pixels /= 4;
644 den = 8;
645 break; /* 8 pixel per byte, only 1/4th of mem usable */ 638 break; /* 8 pixel per byte, only 1/4th of mem usable */
646 case 8: 639 case 8:
647 case 16: 640 case 16:
648 case 24: 641 case 24:
649 case 32: 642 case 32:
650 nom = var->bits_per_pixel / 8;
651 den = 1;
652 break; /* 1 pixel == 1 byte */ 643 break; /* 1 pixel == 1 byte */
653 default: 644 default:
654 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected..." 645 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected..."
@@ -658,43 +649,29 @@ static int cirrusfb_check_var(struct fb_var_screeninfo *var,
658 return -EINVAL; 649 return -EINVAL;
659 } 650 }
660 651
661 if (var->xres * nom / den * var->yres > info->screen_size) { 652 if (var->xres_virtual < var->xres)
662 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected..." 653 var->xres_virtual = var->xres;
663 "resolution too high to fit into video memory!\n",
664 var->xres, var->yres, var->bits_per_pixel);
665 DPRINTK("EXIT - EINVAL error\n");
666 return -EINVAL;
667 }
668
669 /* use highest possible virtual resolution */ 654 /* use highest possible virtual resolution */
670 if (var->xres_virtual == -1 && 655 if (var->yres_virtual == -1) {
671 var->yres_virtual == -1) { 656 var->yres_virtual = pixels / var->xres_virtual;
672 printk(KERN_INFO
673 "cirrusfb: using maximum available virtual resolution\n");
674 for (i = 0; modes[i].xres != -1; i++) {
675 int size = modes[i].xres * nom / den * modes[i].yres;
676 if (size < info->screen_size / 2)
677 break;
678 }
679 if (modes[i].xres == -1) {
680 printk(KERN_ERR "cirrusfb: could not find a virtual "
681 "resolution that fits into video memory!!\n");
682 DPRINTK("EXIT - EINVAL error\n");
683 return -EINVAL;
684 }
685 var->xres_virtual = modes[i].xres;
686 var->yres_virtual = modes[i].yres;
687 657
688 printk(KERN_INFO "cirrusfb: virtual resolution set to " 658 printk(KERN_INFO "cirrusfb: virtual resolution set to "
689 "maximum of %dx%d\n", var->xres_virtual, 659 "maximum of %dx%d\n", var->xres_virtual,
690 var->yres_virtual); 660 var->yres_virtual);
691 } 661 }
692
693 if (var->xres_virtual < var->xres)
694 var->xres_virtual = var->xres;
695 if (var->yres_virtual < var->yres) 662 if (var->yres_virtual < var->yres)
696 var->yres_virtual = var->yres; 663 var->yres_virtual = var->yres;
697 664
665 if (var->xres_virtual * var->yres_virtual > pixels) {
666 printk(KERN_ERR "cirrusfb: mode %dx%dx%d rejected... "
667 "virtual resolution too high to fit into video memory!\n",
668 var->xres_virtual, var->yres_virtual,
669 var->bits_per_pixel);
670 DPRINTK("EXIT - EINVAL error\n");
671 return -EINVAL;
672 }
673
674
698 if (var->xoffset < 0) 675 if (var->xoffset < 0)
699 var->xoffset = 0; 676 var->xoffset = 0;
700 if (var->yoffset < 0) 677 if (var->yoffset < 0)
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 98843c2ecf73..0737570030f5 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -979,6 +979,7 @@ fb_set_var(struct fb_info *info, struct fb_var_screeninfo *var)
979 979
980 info->flags &= ~FBINFO_MISC_USEREVENT; 980 info->flags &= ~FBINFO_MISC_USEREVENT;
981 event.info = info; 981 event.info = info;
982 event.data = &mode;
982 fb_notifier_call_chain(evnt, &event); 983 fb_notifier_call_chain(evnt, &event);
983 } 984 }
984 } 985 }
diff --git a/drivers/video/metronomefb.c b/drivers/video/metronomefb.c
index cc4c038a1b3f..afeed0611e3e 100644
--- a/drivers/video/metronomefb.c
+++ b/drivers/video/metronomefb.c
@@ -40,29 +40,63 @@
40 40
41#include <asm/unaligned.h> 41#include <asm/unaligned.h>
42 42
43
44#define DEBUG 1
45#ifdef DEBUG
46#define DPRINTK(f, a...) printk(KERN_DEBUG "%s: " f, __func__ , ## a)
47#else
48#define DPRINTK(f, a...)
49#endif
50
51
52/* Display specific information */ 43/* Display specific information */
53#define DPY_W 832 44#define DPY_W 832
54#define DPY_H 622 45#define DPY_H 622
55 46
47static int user_wfm_size;
48
56/* frame differs from image. frame includes non-visible pixels */ 49/* frame differs from image. frame includes non-visible pixels */
57struct epd_frame { 50struct epd_frame {
58 int fw; /* frame width */ 51 int fw; /* frame width */
59 int fh; /* frame height */ 52 int fh; /* frame height */
53 u16 config[4];
54 int wfm_size;
60}; 55};
61 56
62static struct epd_frame epd_frame_table[] = { 57static struct epd_frame epd_frame_table[] = {
63 { 58 {
64 .fw = 832, 59 .fw = 832,
65 .fh = 622 60 .fh = 622,
61 .config = {
62 15 /* sdlew */
63 | 2 << 8 /* sdosz */
64 | 0 << 11 /* sdor */
65 | 0 << 12 /* sdces */
66 | 0 << 15, /* sdcer */
67 42 /* gdspl */
68 | 1 << 8 /* gdr1 */
69 | 1 << 9 /* sdshr */
70 | 0 << 15, /* gdspp */
71 18 /* gdspw */
72 | 0 << 15, /* dispc */
73 599 /* vdlc */
74 | 0 << 11 /* dsi */
75 | 0 << 12, /* dsic */
76 },
77 .wfm_size = 47001,
78 },
79 {
80 .fw = 1088,
81 .fh = 791,
82 .config = {
83 0x0104,
84 0x031f,
85 0x0088,
86 0x02ff,
87 },
88 .wfm_size = 46770,
89 },
90 {
91 .fw = 1200,
92 .fh = 842,
93 .config = {
94 0x0101,
95 0x030e,
96 0x0012,
97 0x0280,
98 },
99 .wfm_size = 46770,
66 }, 100 },
67}; 101};
68 102
@@ -134,9 +168,8 @@ static u16 calc_img_cksum(u16 *start, int length)
134} 168}
135 169
136/* here we decode the incoming waveform file and populate metromem */ 170/* here we decode the incoming waveform file and populate metromem */
137#define EXP_WFORM_SIZE 47001 171static int __devinit load_waveform(u8 *mem, size_t size, int m, int t,
138static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t, 172 struct metronomefb_par *par)
139 u8 *frame_count)
140{ 173{
141 int tta; 174 int tta;
142 int wmta; 175 int wmta;
@@ -148,26 +181,31 @@ static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t,
148 int wfm_idx, owfm_idx; 181 int wfm_idx, owfm_idx;
149 int mem_idx = 0; 182 int mem_idx = 0;
150 struct waveform_hdr *wfm_hdr; 183 struct waveform_hdr *wfm_hdr;
184 u8 *metromem = par->metromem_wfm;
185 struct device *dev = par->info->dev;
151 186
152 if (size != EXP_WFORM_SIZE) { 187 if (user_wfm_size)
153 printk(KERN_ERR "Error: unexpected size %d != %d\n", size, 188 epd_frame_table[par->dt].wfm_size = user_wfm_size;
154 EXP_WFORM_SIZE); 189
190 if (size != epd_frame_table[par->dt].wfm_size) {
191 dev_err(dev, "Error: unexpected size %d != %d\n", size,
192 epd_frame_table[par->dt].wfm_size);
155 return -EINVAL; 193 return -EINVAL;
156 } 194 }
157 195
158 wfm_hdr = (struct waveform_hdr *) mem; 196 wfm_hdr = (struct waveform_hdr *) mem;
159 197
160 if (wfm_hdr->fvsn != 1) { 198 if (wfm_hdr->fvsn != 1) {
161 printk(KERN_ERR "Error: bad fvsn %x\n", wfm_hdr->fvsn); 199 dev_err(dev, "Error: bad fvsn %x\n", wfm_hdr->fvsn);
162 return -EINVAL; 200 return -EINVAL;
163 } 201 }
164 if (wfm_hdr->luts != 0) { 202 if (wfm_hdr->luts != 0) {
165 printk(KERN_ERR "Error: bad luts %x\n", wfm_hdr->luts); 203 dev_err(dev, "Error: bad luts %x\n", wfm_hdr->luts);
166 return -EINVAL; 204 return -EINVAL;
167 } 205 }
168 cksum = calc_cksum(32, 47, mem); 206 cksum = calc_cksum(32, 47, mem);
169 if (cksum != wfm_hdr->wfm_cs) { 207 if (cksum != wfm_hdr->wfm_cs) {
170 printk(KERN_ERR "Error: bad cksum %x != %x\n", cksum, 208 dev_err(dev, "Error: bad cksum %x != %x\n", cksum,
171 wfm_hdr->wfm_cs); 209 wfm_hdr->wfm_cs);
172 return -EINVAL; 210 return -EINVAL;
173 } 211 }
@@ -175,7 +213,7 @@ static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t,
175 wfm_hdr->trc += 1; 213 wfm_hdr->trc += 1;
176 for (i = 0; i < 5; i++) { 214 for (i = 0; i < 5; i++) {
177 if (*(wfm_hdr->stuff2a + i) != 0) { 215 if (*(wfm_hdr->stuff2a + i) != 0) {
178 printk(KERN_ERR "Error: unexpected value in padding\n"); 216 dev_err(dev, "Error: unexpected value in padding\n");
179 return -EINVAL; 217 return -EINVAL;
180 } 218 }
181 } 219 }
@@ -200,7 +238,7 @@ static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t,
200 return -EINVAL; 238 return -EINVAL;
201 cksum = calc_cksum(sizeof(*wfm_hdr), cksum_idx, mem); 239 cksum = calc_cksum(sizeof(*wfm_hdr), cksum_idx, mem);
202 if (cksum != mem[cksum_idx]) { 240 if (cksum != mem[cksum_idx]) {
203 printk(KERN_ERR "Error: bad temperature range table cksum" 241 dev_err(dev, "Error: bad temperature range table cksum"
204 " %x != %x\n", cksum, mem[cksum_idx]); 242 " %x != %x\n", cksum, mem[cksum_idx]);
205 return -EINVAL; 243 return -EINVAL;
206 } 244 }
@@ -212,7 +250,7 @@ static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t,
212 return -EINVAL; 250 return -EINVAL;
213 cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem); 251 cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem);
214 if (cksum != mem[cksum_idx]) { 252 if (cksum != mem[cksum_idx]) {
215 printk(KERN_ERR "Error: bad mode table address cksum" 253 dev_err(dev, "Error: bad mode table address cksum"
216 " %x != %x\n", cksum, mem[cksum_idx]); 254 " %x != %x\n", cksum, mem[cksum_idx]);
217 return -EINVAL; 255 return -EINVAL;
218 } 256 }
@@ -224,7 +262,7 @@ static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t,
224 return -EINVAL; 262 return -EINVAL;
225 cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem); 263 cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem);
226 if (cksum != mem[cksum_idx]) { 264 if (cksum != mem[cksum_idx]) {
227 printk(KERN_ERR "Error: bad temperature table address cksum" 265 dev_err(dev, "Error: bad temperature table address cksum"
228 " %x != %x\n", cksum, mem[cksum_idx]); 266 " %x != %x\n", cksum, mem[cksum_idx]);
229 return -EINVAL; 267 return -EINVAL;
230 } 268 }
@@ -259,11 +297,11 @@ static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t,
259 return -EINVAL; 297 return -EINVAL;
260 cksum = calc_cksum(owfm_idx, cksum_idx, mem); 298 cksum = calc_cksum(owfm_idx, cksum_idx, mem);
261 if (cksum != mem[cksum_idx]) { 299 if (cksum != mem[cksum_idx]) {
262 printk(KERN_ERR "Error: bad waveform data cksum" 300 dev_err(dev, "Error: bad waveform data cksum"
263 " %x != %x\n", cksum, mem[cksum_idx]); 301 " %x != %x\n", cksum, mem[cksum_idx]);
264 return -EINVAL; 302 return -EINVAL;
265 } 303 }
266 *frame_count = (mem_idx/64); 304 par->frame_count = (mem_idx/64);
267 305
268 return 0; 306 return 0;
269} 307}
@@ -274,15 +312,12 @@ static int metronome_display_cmd(struct metronomefb_par *par)
274 u16 cs; 312 u16 cs;
275 u16 opcode; 313 u16 opcode;
276 static u8 borderval; 314 static u8 borderval;
277 u8 *ptr;
278 315
279 /* setup display command 316 /* setup display command
280 we can't immediately set the opcode since the controller 317 we can't immediately set the opcode since the controller
281 will try parse the command before we've set it all up 318 will try parse the command before we've set it all up
282 so we just set cs here and set the opcode at the end */ 319 so we just set cs here and set the opcode at the end */
283 320
284 ptr = par->metromem;
285
286 if (par->metromem_cmd->opcode == 0xCC40) 321 if (par->metromem_cmd->opcode == 0xCC40)
287 opcode = cs = 0xCC41; 322 opcode = cs = 0xCC41;
288 else 323 else
@@ -335,44 +370,17 @@ static int __devinit metronome_powerup_cmd(struct metronomefb_par *par)
335 370
336static int __devinit metronome_config_cmd(struct metronomefb_par *par) 371static int __devinit metronome_config_cmd(struct metronomefb_par *par)
337{ 372{
338 int i;
339 u16 cs;
340
341 /* setup config command 373 /* setup config command
342 we can't immediately set the opcode since the controller 374 we can't immediately set the opcode since the controller
343 will try parse the command before we've set it all up 375 will try parse the command before we've set it all up */
344 so we just set cs here and set the opcode at the end */
345
346 cs = 0xCC10;
347
348 /* set the 12 args ( 8 bytes ) for config. see spec for meanings */
349 i = 0;
350 par->metromem_cmd->args[i] = 15 /* sdlew */
351 | 2 << 8 /* sdosz */
352 | 0 << 11 /* sdor */
353 | 0 << 12 /* sdces */
354 | 0 << 15; /* sdcer */
355 cs += par->metromem_cmd->args[i++];
356
357 par->metromem_cmd->args[i] = 42 /* gdspl */
358 | 1 << 8 /* gdr1 */
359 | 1 << 9 /* sdshr */
360 | 0 << 15; /* gdspp */
361 cs += par->metromem_cmd->args[i++];
362
363 par->metromem_cmd->args[i] = 18 /* gdspw */
364 | 0 << 15; /* dispc */
365 cs += par->metromem_cmd->args[i++];
366
367 par->metromem_cmd->args[i] = 599 /* vdlc */
368 | 0 << 11 /* dsi */
369 | 0 << 12; /* dsic */
370 cs += par->metromem_cmd->args[i++];
371 376
377 memcpy(par->metromem_cmd->args, epd_frame_table[par->dt].config,
378 sizeof(epd_frame_table[par->dt].config));
372 /* the rest are 0 */ 379 /* the rest are 0 */
373 memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2); 380 memset((u8 *) (par->metromem_cmd->args + 4), 0, (32-4)*2);
374 381
375 par->metromem_cmd->csum = cs; 382 par->metromem_cmd->csum = 0xCC10;
383 par->metromem_cmd->csum += calc_img_cksum(par->metromem_cmd->args, 4);
376 par->metromem_cmd->opcode = 0xCC10; /* config cmd */ 384 par->metromem_cmd->opcode = 0xCC10; /* config cmd */
377 385
378 return par->board->met_wait_event(par); 386 return par->board->met_wait_event(par);
@@ -408,12 +416,9 @@ static int __devinit metronome_init_regs(struct metronomefb_par *par)
408{ 416{
409 int res; 417 int res;
410 418
411 par->board->init_gpio_regs(par); 419 res = par->board->setup_io(par);
412 420 if (res)
413 par->board->init_lcdc_regs(par); 421 return res;
414
415 /* now that lcd is setup, setup dma descriptor */
416 par->board->post_dma_setup(par);
417 422
418 res = metronome_powerup_cmd(par); 423 res = metronome_powerup_cmd(par);
419 if (res) 424 if (res)
@@ -430,16 +435,16 @@ static int __devinit metronome_init_regs(struct metronomefb_par *par)
430 435
431static void metronomefb_dpy_update(struct metronomefb_par *par) 436static void metronomefb_dpy_update(struct metronomefb_par *par)
432{ 437{
438 int fbsize;
433 u16 cksum; 439 u16 cksum;
434 unsigned char *buf = (unsigned char __force *)par->info->screen_base; 440 unsigned char *buf = (unsigned char __force *)par->info->screen_base;
435 441
442 fbsize = par->info->fix.smem_len;
436 /* copy from vm to metromem */ 443 /* copy from vm to metromem */
437 memcpy(par->metromem_img, buf, DPY_W*DPY_H); 444 memcpy(par->metromem_img, buf, fbsize);
438 445
439 cksum = calc_img_cksum((u16 *) par->metromem_img, 446 cksum = calc_img_cksum((u16 *) par->metromem_img, fbsize/2);
440 (epd_frame_table[0].fw * DPY_H)/2); 447 *((u16 *)(par->metromem_img) + fbsize/2) = cksum;
441 *((u16 *)(par->metromem_img) +
442 (epd_frame_table[0].fw * DPY_H)/2) = cksum;
443 metronome_display_cmd(par); 448 metronome_display_cmd(par);
444} 449}
445 450
@@ -574,8 +579,10 @@ static int __devinit metronomefb_probe(struct platform_device *dev)
574 unsigned char *videomemory; 579 unsigned char *videomemory;
575 struct metronomefb_par *par; 580 struct metronomefb_par *par;
576 const struct firmware *fw_entry; 581 const struct firmware *fw_entry;
577 int cmd_size, wfm_size, img_size, padding_size, totalsize;
578 int i; 582 int i;
583 int panel_type;
584 int fw, fh;
585 int epd_dt_index;
579 586
580 /* pick up board specific routines */ 587 /* pick up board specific routines */
581 board = dev->dev.platform_data; 588 board = dev->dev.platform_data;
@@ -586,96 +593,108 @@ static int __devinit metronomefb_probe(struct platform_device *dev)
586 if (!try_module_get(board->owner)) 593 if (!try_module_get(board->owner))
587 return -ENODEV; 594 return -ENODEV;
588 595
596 info = framebuffer_alloc(sizeof(struct metronomefb_par), &dev->dev);
597 if (!info)
598 goto err;
599
589 /* we have two blocks of memory. 600 /* we have two blocks of memory.
590 info->screen_base which is vm, and is the fb used by apps. 601 info->screen_base which is vm, and is the fb used by apps.
591 par->metromem which is physically contiguous memory and 602 par->metromem which is physically contiguous memory and
592 contains the display controller commands, waveform, 603 contains the display controller commands, waveform,
593 processed image data and padding. this is the data pulled 604 processed image data and padding. this is the data pulled
594 by the device's LCD controller and pushed to Metronome */ 605 by the device's LCD controller and pushed to Metronome.
606 the metromem memory is allocated by the board driver and
607 is provided to us */
608
609 panel_type = board->get_panel_type();
610 switch (panel_type) {
611 case 6:
612 epd_dt_index = 0;
613 break;
614 case 8:
615 epd_dt_index = 1;
616 break;
617 case 97:
618 epd_dt_index = 2;
619 break;
620 default:
621 dev_err(&dev->dev, "Unexpected panel type. Defaulting to 6\n");
622 epd_dt_index = 0;
623 break;
624 }
625
626 fw = epd_frame_table[epd_dt_index].fw;
627 fh = epd_frame_table[epd_dt_index].fh;
595 628
596 videomemorysize = (DPY_W*DPY_H); 629 /* we need to add a spare page because our csum caching scheme walks
630 * to the end of the page */
631 videomemorysize = PAGE_SIZE + (fw * fh);
597 videomemory = vmalloc(videomemorysize); 632 videomemory = vmalloc(videomemorysize);
598 if (!videomemory) 633 if (!videomemory)
599 return -ENOMEM; 634 goto err_fb_rel;
600 635
601 memset(videomemory, 0, videomemorysize); 636 memset(videomemory, 0, videomemorysize);
602 637
603 info = framebuffer_alloc(sizeof(struct metronomefb_par), &dev->dev);
604 if (!info)
605 goto err_vfree;
606
607 info->screen_base = (char __force __iomem *)videomemory; 638 info->screen_base = (char __force __iomem *)videomemory;
608 info->fbops = &metronomefb_ops; 639 info->fbops = &metronomefb_ops;
609 640
641 metronomefb_fix.line_length = fw;
642 metronomefb_var.xres = fw;
643 metronomefb_var.yres = fh;
644 metronomefb_var.xres_virtual = fw;
645 metronomefb_var.yres_virtual = fh;
610 info->var = metronomefb_var; 646 info->var = metronomefb_var;
611 info->fix = metronomefb_fix; 647 info->fix = metronomefb_fix;
612 info->fix.smem_len = videomemorysize; 648 info->fix.smem_len = videomemorysize;
613 par = info->par; 649 par = info->par;
614 par->info = info; 650 par->info = info;
615 par->board = board; 651 par->board = board;
652 par->dt = epd_dt_index;
616 init_waitqueue_head(&par->waitq); 653 init_waitqueue_head(&par->waitq);
617 654
618 /* this table caches per page csum values. */ 655 /* this table caches per page csum values. */
619 par->csum_table = vmalloc(videomemorysize/PAGE_SIZE); 656 par->csum_table = vmalloc(videomemorysize/PAGE_SIZE);
620 if (!par->csum_table) 657 if (!par->csum_table)
658 goto err_vfree;
659
660 /* the physical framebuffer that we use is setup by
661 * the platform device driver. It will provide us
662 * with cmd, wfm and image memory in a contiguous area. */
663 retval = board->setup_fb(par);
664 if (retval) {
665 dev_err(&dev->dev, "Failed to setup fb\n");
621 goto err_csum_table; 666 goto err_csum_table;
667 }
622 668
623 /* the metromem buffer is divided as follows: 669 /* after this point we should have a framebuffer */
624 command | CRC | padding 670 if ((!par->metromem_wfm) || (!par->metromem_img) ||
625 16kb waveform data | CRC | padding 671 (!par->metromem_dma)) {
626 image data | CRC 672 dev_err(&dev->dev, "fb access failure\n");
627 and an extra 256 bytes for dma descriptors 673 retval = -EINVAL;
628 eg: IW=832 IH=622 WS=128 674 goto err_csum_table;
629 */
630
631 cmd_size = 1 * epd_frame_table[0].fw;
632 wfm_size = ((16*1024 + 2 + epd_frame_table[0].fw - 1)
633 / epd_frame_table[0].fw) * epd_frame_table[0].fw;
634 img_size = epd_frame_table[0].fh * epd_frame_table[0].fw;
635 padding_size = 4 * epd_frame_table[0].fw;
636 totalsize = cmd_size + wfm_size + img_size + padding_size;
637 par->metromemsize = PAGE_ALIGN(totalsize + 256);
638 DPRINTK("desired memory size = %d\n", par->metromemsize);
639 dev->dev.coherent_dma_mask = 0xffffffffull;
640 par->metromem = dma_alloc_writecombine(&dev->dev, par->metromemsize,
641 &par->metromem_dma, GFP_KERNEL);
642 if (!par->metromem) {
643 printk(KERN_ERR
644 "metronomefb: unable to allocate dma buffer\n");
645 goto err_vfree;
646 } 675 }
647 676
648 info->fix.smem_start = par->metromem_dma; 677 info->fix.smem_start = par->metromem_dma;
649 par->metromem_cmd = (struct metromem_cmd *) par->metromem;
650 par->metromem_wfm = par->metromem + cmd_size;
651 par->metromem_img = par->metromem + cmd_size + wfm_size;
652 par->metromem_img_csum = (u16 *) (par->metromem_img +
653 (epd_frame_table[0].fw * DPY_H));
654 DPRINTK("img offset=0x%x\n", cmd_size + wfm_size);
655 par->metromem_desc = (struct metromem_desc *) (par->metromem + cmd_size
656 + wfm_size + img_size + padding_size);
657 par->metromem_desc_dma = par->metromem_dma + cmd_size + wfm_size
658 + img_size + padding_size;
659 678
660 /* load the waveform in. assume mode 3, temp 31 for now 679 /* load the waveform in. assume mode 3, temp 31 for now
661 a) request the waveform file from userspace 680 a) request the waveform file from userspace
662 b) process waveform and decode into metromem */ 681 b) process waveform and decode into metromem */
663 retval = request_firmware(&fw_entry, "metronome.wbf", &dev->dev); 682 retval = request_firmware(&fw_entry, "metronome.wbf", &dev->dev);
664 if (retval < 0) { 683 if (retval < 0) {
665 printk(KERN_ERR "metronomefb: couldn't get waveform\n"); 684 dev_err(&dev->dev, "Failed to get waveform\n");
666 goto err_dma_free; 685 goto err_csum_table;
667 } 686 }
668 687
669 retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, 688 retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, 3, 31,
670 par->metromem_wfm, 3, 31, &par->frame_count); 689 par);
671 release_firmware(fw_entry); 690 release_firmware(fw_entry);
672 if (retval < 0) { 691 if (retval < 0) {
673 printk(KERN_ERR "metronomefb: couldn't process waveform\n"); 692 dev_err(&dev->dev, "Failed processing waveform\n");
674 goto err_dma_free; 693 goto err_csum_table;
675 } 694 }
676 695
677 if (board->setup_irq(info)) 696 if (board->setup_irq(info))
678 goto err_dma_free; 697 goto err_csum_table;
679 698
680 retval = metronome_init_regs(par); 699 retval = metronome_init_regs(par);
681 if (retval < 0) 700 if (retval < 0)
@@ -688,8 +707,8 @@ static int __devinit metronomefb_probe(struct platform_device *dev)
688 707
689 retval = fb_alloc_cmap(&info->cmap, 8, 0); 708 retval = fb_alloc_cmap(&info->cmap, 8, 0);
690 if (retval < 0) { 709 if (retval < 0) {
691 printk(KERN_ERR "Failed to allocate colormap\n"); 710 dev_err(&dev->dev, "Failed to allocate colormap\n");
692 goto err_fb_rel; 711 goto err_free_irq;
693 } 712 }
694 713
695 /* set cmap */ 714 /* set cmap */
@@ -704,7 +723,7 @@ static int __devinit metronomefb_probe(struct platform_device *dev)
704 723
705 platform_set_drvdata(dev, info); 724 platform_set_drvdata(dev, info);
706 725
707 printk(KERN_INFO 726 dev_dbg(&dev->dev,
708 "fb%d: Metronome frame buffer device, using %dK of video" 727 "fb%d: Metronome frame buffer device, using %dK of video"
709 " memory\n", info->node, videomemorysize >> 10); 728 " memory\n", info->node, videomemorysize >> 10);
710 729
@@ -712,17 +731,15 @@ static int __devinit metronomefb_probe(struct platform_device *dev)
712 731
713err_cmap: 732err_cmap:
714 fb_dealloc_cmap(&info->cmap); 733 fb_dealloc_cmap(&info->cmap);
715err_fb_rel:
716 framebuffer_release(info);
717err_free_irq: 734err_free_irq:
718 board->free_irq(info); 735 board->cleanup(par);
719err_dma_free:
720 dma_free_writecombine(&dev->dev, par->metromemsize, par->metromem,
721 par->metromem_dma);
722err_csum_table: 736err_csum_table:
723 vfree(par->csum_table); 737 vfree(par->csum_table);
724err_vfree: 738err_vfree:
725 vfree(videomemory); 739 vfree(videomemory);
740err_fb_rel:
741 framebuffer_release(info);
742err:
726 module_put(board->owner); 743 module_put(board->owner);
727 return retval; 744 return retval;
728} 745}
@@ -733,15 +750,15 @@ static int __devexit metronomefb_remove(struct platform_device *dev)
733 750
734 if (info) { 751 if (info) {
735 struct metronomefb_par *par = info->par; 752 struct metronomefb_par *par = info->par;
753
754 unregister_framebuffer(info);
736 fb_deferred_io_cleanup(info); 755 fb_deferred_io_cleanup(info);
737 dma_free_writecombine(&dev->dev, par->metromemsize,
738 par->metromem, par->metromem_dma);
739 fb_dealloc_cmap(&info->cmap); 756 fb_dealloc_cmap(&info->cmap);
757 par->board->cleanup(par);
740 vfree(par->csum_table); 758 vfree(par->csum_table);
741 unregister_framebuffer(info);
742 vfree((void __force *)info->screen_base); 759 vfree((void __force *)info->screen_base);
743 par->board->free_irq(info);
744 module_put(par->board->owner); 760 module_put(par->board->owner);
761 dev_dbg(&dev->dev, "calling release\n");
745 framebuffer_release(info); 762 framebuffer_release(info);
746 } 763 }
747 return 0; 764 return 0;
@@ -766,6 +783,9 @@ static void __exit metronomefb_exit(void)
766 platform_driver_unregister(&metronomefb_driver); 783 platform_driver_unregister(&metronomefb_driver);
767} 784}
768 785
786module_param(user_wfm_size, uint, 0);
787MODULE_PARM_DESC(user_wfm_size, "Set custom waveform size");
788
769module_init(metronomefb_init); 789module_init(metronomefb_init);
770module_exit(metronomefb_exit); 790module_exit(metronomefb_exit);
771 791
diff --git a/drivers/video/tdfxfb.c b/drivers/video/tdfxfb.c
index 77aafcfae037..4599a4385bc9 100644
--- a/drivers/video/tdfxfb.c
+++ b/drivers/video/tdfxfb.c
@@ -95,7 +95,6 @@ static inline int mtrr_del(int reg, unsigned long base,
95#define VOODOO5_MAX_PIXCLOCK 350000 95#define VOODOO5_MAX_PIXCLOCK 350000
96 96
97static struct fb_fix_screeninfo tdfx_fix __devinitdata = { 97static struct fb_fix_screeninfo tdfx_fix __devinitdata = {
98 .id = "3Dfx",
99 .type = FB_TYPE_PACKED_PIXELS, 98 .type = FB_TYPE_PACKED_PIXELS,
100 .visual = FB_VISUAL_PSEUDOCOLOR, 99 .visual = FB_VISUAL_PSEUDOCOLOR,
101 .ypanstep = 1, 100 .ypanstep = 1,
@@ -426,7 +425,7 @@ static unsigned long do_lfb_size(struct tdfx_par *par, unsigned short dev_id)
426 if (dev_id < PCI_DEVICE_ID_3DFX_VOODOO5) { 425 if (dev_id < PCI_DEVICE_ID_3DFX_VOODOO5) {
427 /* Banshee/Voodoo3 */ 426 /* Banshee/Voodoo3 */
428 chip_size = 2; 427 chip_size = 2;
429 if (has_sgram && (draminit0 & DRAMINIT0_SGRAM_TYPE)) 428 if (has_sgram && !(draminit0 & DRAMINIT0_SGRAM_TYPE))
430 chip_size = 1; 429 chip_size = 1;
431 } else { 430 } else {
432 /* Voodoo4/5 */ 431 /* Voodoo4/5 */
@@ -1200,15 +1199,15 @@ static int __devinit tdfxfb_probe(struct pci_dev *pdev,
1200 /* Configure the default fb_fix_screeninfo first */ 1199 /* Configure the default fb_fix_screeninfo first */
1201 switch (pdev->device) { 1200 switch (pdev->device) {
1202 case PCI_DEVICE_ID_3DFX_BANSHEE: 1201 case PCI_DEVICE_ID_3DFX_BANSHEE:
1203 strcat(tdfx_fix.id, " Banshee"); 1202 strcpy(tdfx_fix.id, "3Dfx Banshee");
1204 default_par->max_pixclock = BANSHEE_MAX_PIXCLOCK; 1203 default_par->max_pixclock = BANSHEE_MAX_PIXCLOCK;
1205 break; 1204 break;
1206 case PCI_DEVICE_ID_3DFX_VOODOO3: 1205 case PCI_DEVICE_ID_3DFX_VOODOO3:
1207 strcat(tdfx_fix.id, " Voodoo3"); 1206 strcpy(tdfx_fix.id, "3Dfx Voodoo3");
1208 default_par->max_pixclock = VOODOO3_MAX_PIXCLOCK; 1207 default_par->max_pixclock = VOODOO3_MAX_PIXCLOCK;
1209 break; 1208 break;
1210 case PCI_DEVICE_ID_3DFX_VOODOO5: 1209 case PCI_DEVICE_ID_3DFX_VOODOO5:
1211 strcat(tdfx_fix.id, " Voodoo5"); 1210 strcpy(tdfx_fix.id, "3Dfx Voodoo5");
1212 default_par->max_pixclock = VOODOO5_MAX_PIXCLOCK; 1211 default_par->max_pixclock = VOODOO5_MAX_PIXCLOCK;
1213 break; 1212 break;
1214 } 1213 }
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index db20542796bf..c51036716700 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -465,6 +465,16 @@ config PC87413_WDT
465 465
466 Most people will say N. 466 Most people will say N.
467 467
468config RDC321X_WDT
469 tristate "RDC R-321x SoC watchdog"
470 depends on X86_RDC321X
471 help
472 This is the driver for the built in hardware watchdog
473 in the RDC R-321x SoC.
474
475 To compile this driver as a module, choose M here: the
476 module will be called rdc321x_wdt.
477
468config 60XX_WDT 478config 60XX_WDT
469 tristate "SBC-60XX Watchdog Timer" 479 tristate "SBC-60XX Watchdog Timer"
470 depends on X86 480 depends on X86
@@ -633,6 +643,16 @@ config SBC_EPX_C3_WATCHDOG
633 643
634# MIPS Architecture 644# MIPS Architecture
635 645
646config RC32434_WDT
647 tristate "IDT RC32434 SoC Watchdog Timer"
648 depends on MIKROTIK_RB532
649 help
650 Hardware driver for the IDT RC32434 SoC built-in
651 watchdog timer.
652
653 To compile this driver as a module, choose M here: the
654 module will be called rc32434_wdt.
655
636config INDYDOG 656config INDYDOG
637 tristate "Indy/I2 Hardware Watchdog" 657 tristate "Indy/I2 Hardware Watchdog"
638 depends on SGI_HAS_INDYDOG 658 depends on SGI_HAS_INDYDOG
@@ -692,10 +712,6 @@ config MPC5200_WDT
692 tristate "MPC5200 Watchdog Timer" 712 tristate "MPC5200 Watchdog Timer"
693 depends on PPC_MPC52xx 713 depends on PPC_MPC52xx
694 714
695config 8xx_WDT
696 tristate "MPC8xx Watchdog Timer"
697 depends on 8xx
698
699config 8xxx_WDT 715config 8xxx_WDT
700 tristate "MPC8xxx Platform Watchdog Timer" 716 tristate "MPC8xxx Platform Watchdog Timer"
701 depends on PPC_8xx || PPC_83xx || PPC_86xx 717 depends on PPC_8xx || PPC_83xx || PPC_86xx
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index ca3dc043d786..e0ef123fbdea 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -75,6 +75,7 @@ obj-$(CONFIG_HP_WATCHDOG) += hpwdt.o
75obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o 75obj-$(CONFIG_SC1200_WDT) += sc1200wdt.o
76obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o 76obj-$(CONFIG_SCx200_WDT) += scx200_wdt.o
77obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o 77obj-$(CONFIG_PC87413_WDT) += pc87413_wdt.o
78obj-$(CONFIG_RDC321X_WDT) += rdc321x_wdt.o
78obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o 79obj-$(CONFIG_60XX_WDT) += sbc60xxwdt.o
79obj-$(CONFIG_SBC8360_WDT) += sbc8360.o 80obj-$(CONFIG_SBC8360_WDT) += sbc8360.o
80obj-$(CONFIG_SBC7240_WDT) += sbc7240_wdt.o 81obj-$(CONFIG_SBC7240_WDT) += sbc7240_wdt.o
@@ -94,6 +95,7 @@ obj-$(CONFIG_SBC_EPX_C3_WATCHDOG) += sbc_epx_c3.o
94# M68KNOMMU Architecture 95# M68KNOMMU Architecture
95 96
96# MIPS Architecture 97# MIPS Architecture
98obj-$(CONFIG_RC32434_WDT) += rc32434_wdt.o
97obj-$(CONFIG_INDYDOG) += indydog.o 99obj-$(CONFIG_INDYDOG) += indydog.o
98obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o 100obj-$(CONFIG_WDT_MTX1) += mtx-1_wdt.o
99obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o 101obj-$(CONFIG_WDT_RM9K_GPI) += rm9k_wdt.o
@@ -104,7 +106,6 @@ obj-$(CONFIG_TXX9_WDT) += txx9wdt.o
104# PARISC Architecture 106# PARISC Architecture
105 107
106# POWERPC Architecture 108# POWERPC Architecture
107obj-$(CONFIG_8xx_WDT) += mpc8xx_wdt.o
108obj-$(CONFIG_MPC5200_WDT) += mpc5200_wdt.o 109obj-$(CONFIG_MPC5200_WDT) += mpc5200_wdt.o
109obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o 110obj-$(CONFIG_8xxx_WDT) += mpc8xxx_wdt.o
110obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o 111obj-$(CONFIG_MV64X60_WDT) += mv64x60_wdt.o
diff --git a/drivers/watchdog/at91rm9200_wdt.c b/drivers/watchdog/at91rm9200_wdt.c
index d061f0ad2d20..993e5f52afef 100644
--- a/drivers/watchdog/at91rm9200_wdt.c
+++ b/drivers/watchdog/at91rm9200_wdt.c
@@ -241,7 +241,7 @@ static int at91wdt_resume(struct platform_device *pdev)
241{ 241{
242 if (at91wdt_busy) 242 if (at91wdt_busy)
243 at91_wdt_start(); 243 at91_wdt_start();
244 return 0; 244 return 0;
245} 245}
246 246
247#else 247#else
diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
index d039d5f2fd1c..a3765e0be4a8 100644
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -116,6 +116,7 @@ static unsigned int reload; /* the computed soft_margin */
116static int nowayout = WATCHDOG_NOWAYOUT; 116static int nowayout = WATCHDOG_NOWAYOUT;
117static char expect_release; 117static char expect_release;
118static unsigned long hpwdt_is_open; 118static unsigned long hpwdt_is_open;
119static unsigned int allow_kdump;
119 120
120static void __iomem *pci_mem_addr; /* the PCI-memory address */ 121static void __iomem *pci_mem_addr; /* the PCI-memory address */
121static unsigned long __iomem *hpwdt_timer_reg; 122static unsigned long __iomem *hpwdt_timer_reg;
@@ -221,19 +222,19 @@ static int __devinit cru_detect(unsigned long map_entry,
221 222
222 if (cmn_regs.u1.ral != 0) { 223 if (cmn_regs.u1.ral != 0) {
223 printk(KERN_WARNING 224 printk(KERN_WARNING
224 "hpwdt: Call succeeded but with an error: 0x%x\n", 225 "hpwdt: Call succeeded but with an error: 0x%x\n",
225 cmn_regs.u1.ral); 226 cmn_regs.u1.ral);
226 } else { 227 } else {
227 physical_bios_base = cmn_regs.u2.rebx; 228 physical_bios_base = cmn_regs.u2.rebx;
228 physical_bios_offset = cmn_regs.u4.redx; 229 physical_bios_offset = cmn_regs.u4.redx;
229 cru_length = cmn_regs.u3.recx; 230 cru_length = cmn_regs.u3.recx;
230 cru_physical_address = 231 cru_physical_address =
231 physical_bios_base + physical_bios_offset; 232 physical_bios_base + physical_bios_offset;
232 233
233 /* If the values look OK, then map it in. */ 234 /* If the values look OK, then map it in. */
234 if ((physical_bios_base + physical_bios_offset)) { 235 if ((physical_bios_base + physical_bios_offset)) {
235 cru_rom_addr = 236 cru_rom_addr =
236 ioremap(cru_physical_address, cru_length); 237 ioremap(cru_physical_address, cru_length);
237 if (cru_rom_addr) 238 if (cru_rom_addr)
238 retval = 0; 239 retval = 0;
239 } 240 }
@@ -356,7 +357,6 @@ asm(".text \n\t"
356 "call *%r12 \n\t" 357 "call *%r12 \n\t"
357 "pushfq \n\t" 358 "pushfq \n\t"
358 "popq %r12 \n\t" 359 "popq %r12 \n\t"
359 "popfq \n\t"
360 "movl %eax, (%r9) \n\t" 360 "movl %eax, (%r9) \n\t"
361 "movl %ebx, 4(%r9) \n\t" 361 "movl %ebx, 4(%r9) \n\t"
362 "movl %ecx, 8(%r9) \n\t" 362 "movl %ecx, 8(%r9) \n\t"
@@ -390,10 +390,10 @@ static void __devinit dmi_find_cru(const struct dmi_header *dm)
390 smbios_cru64_ptr = (struct smbios_cru64_info *) dm; 390 smbios_cru64_ptr = (struct smbios_cru64_info *) dm;
391 if (smbios_cru64_ptr->signature == CRU_BIOS_SIGNATURE_VALUE) { 391 if (smbios_cru64_ptr->signature == CRU_BIOS_SIGNATURE_VALUE) {
392 cru_physical_address = 392 cru_physical_address =
393 smbios_cru64_ptr->physical_address + 393 smbios_cru64_ptr->physical_address +
394 smbios_cru64_ptr->double_offset; 394 smbios_cru64_ptr->double_offset;
395 cru_rom_addr = ioremap(cru_physical_address, 395 cru_rom_addr = ioremap(cru_physical_address,
396 smbios_cru64_ptr->double_length); 396 smbios_cru64_ptr->double_length);
397 } 397 }
398 } 398 }
399} 399}
@@ -405,7 +405,7 @@ static int __devinit detect_cru_service(void)
405 dmi_walk(dmi_find_cru); 405 dmi_walk(dmi_find_cru);
406 406
407 /* if cru_rom_addr has been set then we found a CRU service */ 407 /* if cru_rom_addr has been set then we found a CRU service */
408 return ((cru_rom_addr != NULL) ? 0: -ENODEV); 408 return ((cru_rom_addr != NULL) ? 0 : -ENODEV);
409} 409}
410 410
411/* ------------------------------------------------------------------------- */ 411/* ------------------------------------------------------------------------- */
@@ -413,34 +413,6 @@ static int __devinit detect_cru_service(void)
413#endif 413#endif
414 414
415/* 415/*
416 * NMI Handler
417 */
418static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason,
419 void *data)
420{
421 unsigned long rom_pl;
422 static int die_nmi_called;
423
424 if (ulReason != DIE_NMI && ulReason != DIE_NMI_IPI)
425 return NOTIFY_OK;
426
427 spin_lock_irqsave(&rom_lock, rom_pl);
428 if (!die_nmi_called)
429 asminline_call(&cmn_regs, cru_rom_addr);
430 die_nmi_called = 1;
431 spin_unlock_irqrestore(&rom_lock, rom_pl);
432 if (cmn_regs.u1.ral == 0) {
433 printk(KERN_WARNING "hpwdt: An NMI occurred, "
434 "but unable to determine source.\n");
435 } else {
436 panic("An NMI occurred, please see the Integrated "
437 "Management Log for details.\n");
438 }
439
440 return NOTIFY_STOP;
441}
442
443/*
444 * Watchdog operations 416 * Watchdog operations
445 */ 417 */
446static void hpwdt_start(void) 418static void hpwdt_start(void)
@@ -484,6 +456,36 @@ static int hpwdt_change_timer(int new_margin)
484} 456}
485 457
486/* 458/*
459 * NMI Handler
460 */
461static int hpwdt_pretimeout(struct notifier_block *nb, unsigned long ulReason,
462 void *data)
463{
464 unsigned long rom_pl;
465 static int die_nmi_called;
466
467 if (ulReason != DIE_NMI && ulReason != DIE_NMI_IPI)
468 return NOTIFY_OK;
469
470 spin_lock_irqsave(&rom_lock, rom_pl);
471 if (!die_nmi_called)
472 asminline_call(&cmn_regs, cru_rom_addr);
473 die_nmi_called = 1;
474 spin_unlock_irqrestore(&rom_lock, rom_pl);
475 if (cmn_regs.u1.ral == 0) {
476 printk(KERN_WARNING "hpwdt: An NMI occurred, "
477 "but unable to determine source.\n");
478 } else {
479 if (allow_kdump)
480 hpwdt_stop();
481 panic("An NMI occurred, please see the Integrated "
482 "Management Log for details.\n");
483 }
484
485 return NOTIFY_STOP;
486}
487
488/*
487 * /dev/watchdog handling 489 * /dev/watchdog handling
488 */ 490 */
489static int hpwdt_open(struct inode *inode, struct file *file) 491static int hpwdt_open(struct inode *inode, struct file *file)
@@ -625,17 +627,18 @@ static struct notifier_block die_notifier = {
625 */ 627 */
626 628
627static int __devinit hpwdt_init_one(struct pci_dev *dev, 629static int __devinit hpwdt_init_one(struct pci_dev *dev,
628 const struct pci_device_id *ent) 630 const struct pci_device_id *ent)
629{ 631{
630 int retval; 632 int retval;
631 633
632 /* 634 /*
633 * First let's find out if we are on an iLO2 server. We will 635 * First let's find out if we are on an iLO2 server. We will
634 * not run on a legacy ASM box. 636 * not run on a legacy ASM box.
637 * So we only support the G5 ProLiant servers and higher.
635 */ 638 */
636 if (dev->subsystem_vendor != PCI_VENDOR_ID_HP) { 639 if (dev->subsystem_vendor != PCI_VENDOR_ID_HP) {
637 dev_warn(&dev->dev, 640 dev_warn(&dev->dev,
638 "This server does not have an iLO2 ASIC.\n"); 641 "This server does not have an iLO2 ASIC.\n");
639 return -ENODEV; 642 return -ENODEV;
640 } 643 }
641 644
@@ -669,7 +672,7 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
669 retval = detect_cru_service(); 672 retval = detect_cru_service();
670 if (retval < 0) { 673 if (retval < 0) {
671 dev_warn(&dev->dev, 674 dev_warn(&dev->dev,
672 "Unable to detect the %d Bit CRU Service.\n", 675 "Unable to detect the %d Bit CRU Service.\n",
673 HPWDT_ARCH); 676 HPWDT_ARCH);
674 goto error_get_cru; 677 goto error_get_cru;
675 } 678 }
@@ -684,7 +687,7 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
684 retval = register_die_notifier(&die_notifier); 687 retval = register_die_notifier(&die_notifier);
685 if (retval != 0) { 688 if (retval != 0) {
686 dev_warn(&dev->dev, 689 dev_warn(&dev->dev,
687 "Unable to register a die notifier (err=%d).\n", 690 "Unable to register a die notifier (err=%d).\n",
688 retval); 691 retval);
689 goto error_die_notifier; 692 goto error_die_notifier;
690 } 693 }
@@ -699,8 +702,9 @@ static int __devinit hpwdt_init_one(struct pci_dev *dev,
699 702
700 printk(KERN_INFO 703 printk(KERN_INFO
701 "hp Watchdog Timer Driver: 1.00" 704 "hp Watchdog Timer Driver: 1.00"
702 ", timer margin: %d seconds( nowayout=%d).\n", 705 ", timer margin: %d seconds (nowayout=%d)"
703 soft_margin, nowayout); 706 ", allow kernel dump: %s (default = 0/OFF).\n",
707 soft_margin, nowayout, (allow_kdump == 0) ? "OFF" : "ON");
704 708
705 return 0; 709 return 0;
706 710
@@ -755,6 +759,9 @@ MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
755module_param(soft_margin, int, 0); 759module_param(soft_margin, int, 0);
756MODULE_PARM_DESC(soft_margin, "Watchdog timeout in seconds"); 760MODULE_PARM_DESC(soft_margin, "Watchdog timeout in seconds");
757 761
762module_param(allow_kdump, int, 0);
763MODULE_PARM_DESC(allow_kdump, "Start a kernel dump after NMI occurs");
764
758module_param(nowayout, int, 0); 765module_param(nowayout, int, 0);
759MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=" 766MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
760 __MODULE_STRING(WATCHDOG_NOWAYOUT) ")"); 767 __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
diff --git a/drivers/watchdog/ixp4xx_wdt.c b/drivers/watchdog/ixp4xx_wdt.c
index 8302ef005be7..147b4d5c63b3 100644
--- a/drivers/watchdog/ixp4xx_wdt.c
+++ b/drivers/watchdog/ixp4xx_wdt.c
@@ -174,10 +174,8 @@ static struct miscdevice ixp4xx_wdt_miscdev = {
174static int __init ixp4xx_wdt_init(void) 174static int __init ixp4xx_wdt_init(void)
175{ 175{
176 int ret; 176 int ret;
177 unsigned long processor_id;
178 177
179 asm("mrc p15, 0, %0, cr0, cr0, 0;" : "=r"(processor_id) :); 178 if (!(read_cpuid_id() & 0xf) && !cpu_is_ixp46x()) {
180 if (!(processor_id & 0xf) && !cpu_is_ixp46x()) {
181 printk(KERN_ERR "IXP4XXX Watchdog: Rev. A0 IXP42x CPU detected" 179 printk(KERN_ERR "IXP4XXX Watchdog: Rev. A0 IXP42x CPU detected"
182 " - watchdog disabled\n"); 180 " - watchdog disabled\n");
183 181
diff --git a/drivers/watchdog/mpc8xx_wdt.c b/drivers/watchdog/mpc8xx_wdt.c
deleted file mode 100644
index 1336425acf20..000000000000
--- a/drivers/watchdog/mpc8xx_wdt.c
+++ /dev/null
@@ -1,170 +0,0 @@
1/*
2 * mpc8xx_wdt.c - MPC8xx watchdog userspace interface
3 *
4 * Author: Florian Schirmer <jolt@tuxbox.org>
5 *
6 * 2002 (c) Florian Schirmer <jolt@tuxbox.org> This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 */
11
12#include <linux/fs.h>
13#include <linux/init.h>
14#include <linux/kernel.h>
15#include <linux/miscdevice.h>
16#include <linux/module.h>
17#include <linux/watchdog.h>
18#include <asm/8xx_immap.h>
19#include <linux/uaccess.h>
20#include <linux/io.h>
21#include <syslib/m8xx_wdt.h>
22
23static unsigned long wdt_opened;
24static int wdt_status;
25static spinlock_t wdt_lock;
26
27static void mpc8xx_wdt_handler_disable(void)
28{
29 volatile uint __iomem *piscr;
30 piscr = (uint *)&((immap_t *)IMAP_ADDR)->im_sit.sit_piscr;
31
32 if (!m8xx_has_internal_rtc)
33 m8xx_wdt_stop_timer();
34 else
35 out_be32(piscr, in_be32(piscr) & ~(PISCR_PIE | PISCR_PTE));
36 printk(KERN_NOTICE "mpc8xx_wdt: keep-alive handler deactivated\n");
37}
38
39static void mpc8xx_wdt_handler_enable(void)
40{
41 volatile uint __iomem *piscr;
42 piscr = (uint *)&((immap_t *)IMAP_ADDR)->im_sit.sit_piscr;
43
44 if (!m8xx_has_internal_rtc)
45 m8xx_wdt_install_timer();
46 else
47 out_be32(piscr, in_be32(piscr) | PISCR_PIE | PISCR_PTE);
48 printk(KERN_NOTICE "mpc8xx_wdt: keep-alive handler activated\n");
49}
50
51static int mpc8xx_wdt_open(struct inode *inode, struct file *file)
52{
53 if (test_and_set_bit(0, &wdt_opened))
54 return -EBUSY;
55 m8xx_wdt_reset();
56 mpc8xx_wdt_handler_disable();
57 return nonseekable_open(inode, file);
58}
59
60static int mpc8xx_wdt_release(struct inode *inode, struct file *file)
61{
62 m8xx_wdt_reset();
63#if !defined(CONFIG_WATCHDOG_NOWAYOUT)
64 mpc8xx_wdt_handler_enable();
65#endif
66 clear_bit(0, &wdt_opened);
67 return 0;
68}
69
70static ssize_t mpc8xx_wdt_write(struct file *file, const char *data,
71 size_t len, loff_t *ppos)
72{
73 if (len) {
74 spin_lock(&wdt_lock);
75 m8xx_wdt_reset();
76 spin_unlock(&wdt_lock);
77 }
78 return len;
79}
80
81static long mpc8xx_wdt_ioctl(struct file *file,
82 unsigned int cmd, unsigned long arg)
83{
84 int timeout;
85 static struct watchdog_info info = {
86 .options = WDIOF_KEEPALIVEPING,
87 .firmware_version = 0,
88 .identity = "MPC8xx watchdog",
89 };
90
91 switch (cmd) {
92 case WDIOC_GETSUPPORT:
93 if (copy_to_user((void *)arg, &info, sizeof(info)))
94 return -EFAULT;
95 break;
96
97 case WDIOC_GETSTATUS:
98 case WDIOC_GETBOOTSTATUS:
99 if (put_user(wdt_status, (int *)arg))
100 return -EFAULT;
101 wdt_status &= ~WDIOF_KEEPALIVEPING;
102 break;
103
104 case WDIOC_GETTEMP:
105 return -EOPNOTSUPP;
106
107 case WDIOC_SETOPTIONS:
108 return -EOPNOTSUPP;
109
110 case WDIOC_KEEPALIVE:
111 spin_lock(&wdt_lock);
112 m8xx_wdt_reset();
113 wdt_status |= WDIOF_KEEPALIVEPING;
114 spin_unlock(&wdt_lock);
115 break;
116
117 case WDIOC_SETTIMEOUT:
118 return -EOPNOTSUPP;
119
120 case WDIOC_GETTIMEOUT:
121 spin_lock(&wdt_lock);
122 timeout = m8xx_wdt_get_timeout();
123 spin_unlock(&wdt_lock);
124 if (put_user(timeout, (int *)arg))
125 return -EFAULT;
126 break;
127
128 default:
129 return -ENOTTY;
130 }
131
132 return 0;
133}
134
135static const struct file_operations mpc8xx_wdt_fops = {
136 .owner = THIS_MODULE,
137 .llseek = no_llseek,
138 .write = mpc8xx_wdt_write,
139 .unlocked_ioctl = mpc8xx_wdt_ioctl,
140 .open = mpc8xx_wdt_open,
141 .release = mpc8xx_wdt_release,
142};
143
144static struct miscdevice mpc8xx_wdt_miscdev = {
145 .minor = WATCHDOG_MINOR,
146 .name = "watchdog",
147 .fops = &mpc8xx_wdt_fops,
148};
149
150static int __init mpc8xx_wdt_init(void)
151{
152 spin_lock_init(&wdt_lock);
153 return misc_register(&mpc8xx_wdt_miscdev);
154}
155
156static void __exit mpc8xx_wdt_exit(void)
157{
158 misc_deregister(&mpc8xx_wdt_miscdev);
159
160 m8xx_wdt_reset();
161 mpc8xx_wdt_handler_enable();
162}
163
164module_init(mpc8xx_wdt_init);
165module_exit(mpc8xx_wdt_exit);
166
167MODULE_AUTHOR("Florian Schirmer <jolt@tuxbox.org>");
168MODULE_DESCRIPTION("MPC8xx watchdog driver");
169MODULE_LICENSE("GPL");
170MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
diff --git a/drivers/watchdog/mpc8xxx_wdt.c b/drivers/watchdog/mpc8xxx_wdt.c
index f2094960e662..38c588ee694f 100644
--- a/drivers/watchdog/mpc8xxx_wdt.c
+++ b/drivers/watchdog/mpc8xxx_wdt.c
@@ -48,6 +48,7 @@ struct mpc8xxx_wdt_type {
48}; 48};
49 49
50static struct mpc8xxx_wdt __iomem *wd_base; 50static struct mpc8xxx_wdt __iomem *wd_base;
51static int mpc8xxx_wdt_init_late(void);
51 52
52static u16 timeout = 0xffff; 53static u16 timeout = 0xffff;
53module_param(timeout, ushort, 0); 54module_param(timeout, ushort, 0);
@@ -213,6 +214,12 @@ static int __devinit mpc8xxx_wdt_probe(struct of_device *ofdev,
213 else 214 else
214 timeout_sec = timeout / freq; 215 timeout_sec = timeout / freq;
215 216
217#ifdef MODULE
218 ret = mpc8xxx_wdt_init_late();
219 if (ret)
220 goto err_unmap;
221#endif
222
216 pr_info("WDT driver for MPC8xxx initialized. mode:%s timeout=%d " 223 pr_info("WDT driver for MPC8xxx initialized. mode:%s timeout=%d "
217 "(%d seconds)\n", reset ? "reset" : "interrupt", timeout, 224 "(%d seconds)\n", reset ? "reset" : "interrupt", timeout,
218 timeout_sec); 225 timeout_sec);
@@ -280,7 +287,7 @@ static struct of_platform_driver mpc8xxx_wdt_driver = {
280 * very early to start pinging the watchdog (misc devices are not yet 287 * very early to start pinging the watchdog (misc devices are not yet
281 * available), and later module_init() just registers the misc device. 288 * available), and later module_init() just registers the misc device.
282 */ 289 */
283static int __init mpc8xxx_wdt_init_late(void) 290static int mpc8xxx_wdt_init_late(void)
284{ 291{
285 int ret; 292 int ret;
286 293
@@ -295,7 +302,9 @@ static int __init mpc8xxx_wdt_init_late(void)
295 } 302 }
296 return 0; 303 return 0;
297} 304}
305#ifndef MODULE
298module_init(mpc8xxx_wdt_init_late); 306module_init(mpc8xxx_wdt_init_late);
307#endif
299 308
300static int __init mpc8xxx_wdt_init(void) 309static int __init mpc8xxx_wdt_init(void)
301{ 310{
diff --git a/drivers/watchdog/pc87413_wdt.c b/drivers/watchdog/pc87413_wdt.c
index e91ada72da1d..484c215e9f3f 100644
--- a/drivers/watchdog/pc87413_wdt.c
+++ b/drivers/watchdog/pc87413_wdt.c
@@ -30,7 +30,6 @@
30#include <linux/init.h> 30#include <linux/init.h>
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <linux/moduleparam.h> 32#include <linux/moduleparam.h>
33#include <linux/version.h>
34#include <linux/io.h> 33#include <linux/io.h>
35#include <linux/uaccess.h> 34#include <linux/uaccess.h>
36 35
diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c
new file mode 100644
index 000000000000..6756bcb009ed
--- /dev/null
+++ b/drivers/watchdog/rc32434_wdt.c
@@ -0,0 +1,344 @@
1/*
2 * IDT Interprise 79RC32434 watchdog driver
3 *
4 * Copyright (C) 2006, Ondrej Zajicek <santiago@crfreenet.org>
5 * Copyright (C) 2008, Florian Fainelli <florian@openwrt.org>
6 *
7 * based on
8 * SoftDog 0.05: A Software Watchdog Device
9 *
10 * (c) Copyright 1996 Alan Cox <alan@redhat.com>, All Rights Reserved.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version
15 * 2 of the License, or (at your option) any later version.
16 *
17 */
18
19#include <linux/module.h>
20#include <linux/types.h>
21#include <linux/kernel.h>
22#include <linux/fs.h>
23#include <linux/mm.h>
24#include <linux/miscdevice.h>
25#include <linux/watchdog.h>
26#include <linux/reboot.h>
27#include <linux/smp_lock.h>
28#include <linux/init.h>
29#include <linux/platform_device.h>
30#include <linux/uaccess.h>
31
32#include <asm/bootinfo.h>
33#include <asm/time.h>
34#include <asm/mach-rc32434/integ.h>
35
36#define MAX_TIMEOUT 20
37#define RC32434_WDT_INTERVAL (15 * HZ)
38
39#define VERSION "0.2"
40
41static struct {
42 struct completion stop;
43 int running;
44 struct timer_list timer;
45 int queue;
46 int default_ticks;
47 unsigned long inuse;
48} rc32434_wdt_device;
49
50static struct integ __iomem *wdt_reg;
51static int ticks = 100 * HZ;
52
53static int expect_close;
54static int timeout;
55
56static int nowayout = WATCHDOG_NOWAYOUT;
57module_param(nowayout, int, 0);
58MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default="
59 __MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
60
61
62static void rc32434_wdt_start(void)
63{
64 u32 val;
65
66 if (!rc32434_wdt_device.inuse) {
67 writel(0, &wdt_reg->wtcount);
68
69 val = RC32434_ERR_WRE;
70 writel(readl(&wdt_reg->errcs) | val, &wdt_reg->errcs);
71
72 val = RC32434_WTC_EN;
73 writel(readl(&wdt_reg->wtc) | val, &wdt_reg->wtc);
74 }
75 rc32434_wdt_device.running++;
76}
77
78static void rc32434_wdt_stop(void)
79{
80 u32 val;
81
82 if (rc32434_wdt_device.running) {
83
84 val = ~RC32434_WTC_EN;
85 writel(readl(&wdt_reg->wtc) & val, &wdt_reg->wtc);
86
87 val = ~RC32434_ERR_WRE;
88 writel(readl(&wdt_reg->errcs) & val, &wdt_reg->errcs);
89
90 rc32434_wdt_device.running = 0;
91 }
92}
93
94static void rc32434_wdt_set(int new_timeout)
95{
96 u32 cmp = new_timeout * HZ;
97 u32 state, val;
98
99 timeout = new_timeout;
100 /*
101 * store and disable WTC
102 */
103 state = (u32)(readl(&wdt_reg->wtc) & RC32434_WTC_EN);
104 val = ~RC32434_WTC_EN;
105 writel(readl(&wdt_reg->wtc) & val, &wdt_reg->wtc);
106
107 writel(0, &wdt_reg->wtcount);
108 writel(cmp, &wdt_reg->wtcompare);
109
110 /*
111 * restore WTC
112 */
113
114 writel(readl(&wdt_reg->wtc) | state, &wdt_reg);
115}
116
117static void rc32434_wdt_reset(void)
118{
119 ticks = rc32434_wdt_device.default_ticks;
120}
121
122static void rc32434_wdt_update(unsigned long unused)
123{
124 if (rc32434_wdt_device.running)
125 ticks--;
126
127 writel(0, &wdt_reg->wtcount);
128
129 if (rc32434_wdt_device.queue && ticks)
130 mod_timer(&rc32434_wdt_device.timer,
131 jiffies + RC32434_WDT_INTERVAL);
132 else
133 complete(&rc32434_wdt_device.stop);
134}
135
136static int rc32434_wdt_open(struct inode *inode, struct file *file)
137{
138 if (test_and_set_bit(0, &rc32434_wdt_device.inuse))
139 return -EBUSY;
140
141 if (nowayout)
142 __module_get(THIS_MODULE);
143
144 return nonseekable_open(inode, file);
145}
146
147static int rc32434_wdt_release(struct inode *inode, struct file *file)
148{
149 if (expect_close && nowayout == 0) {
150 rc32434_wdt_stop();
151 printk(KERN_INFO KBUILD_MODNAME ": disabling watchdog timer\n");
152 module_put(THIS_MODULE);
153 } else
154 printk(KERN_CRIT KBUILD_MODNAME
155 ": device closed unexpectedly. WDT will not stop !\n");
156
157 clear_bit(0, &rc32434_wdt_device.inuse);
158 return 0;
159}
160
161static ssize_t rc32434_wdt_write(struct file *file, const char *data,
162 size_t len, loff_t *ppos)
163{
164 if (len) {
165 if (!nowayout) {
166 size_t i;
167
168 /* In case it was set long ago */
169 expect_close = 0;
170
171 for (i = 0; i != len; i++) {
172 char c;
173 if (get_user(c, data + i))
174 return -EFAULT;
175 if (c == 'V')
176 expect_close = 1;
177 }
178 }
179 rc32434_wdt_update(0);
180 return len;
181 }
182 return 0;
183}
184
185static int rc32434_wdt_ioctl(struct inode *inode, struct file *file,
186 unsigned int cmd, unsigned long arg)
187{
188 void __user *argp = (void __user *)arg;
189 int new_timeout;
190 unsigned int value;
191 static struct watchdog_info ident = {
192 .options = WDIOF_SETTIMEOUT |
193 WDIOF_KEEPALIVEPING |
194 WDIOF_MAGICCLOSE,
195 .identity = "RC32434_WDT Watchdog",
196 };
197 switch (cmd) {
198 case WDIOC_KEEPALIVE:
199 rc32434_wdt_reset();
200 break;
201 case WDIOC_GETSTATUS:
202 case WDIOC_GETBOOTSTATUS:
203 value = readl(&wdt_reg->wtcount);
204 if (copy_to_user(argp, &value, sizeof(int)))
205 return -EFAULT;
206 break;
207 case WDIOC_GETSUPPORT:
208 if (copy_to_user(argp, &ident, sizeof(ident)))
209 return -EFAULT;
210 break;
211 case WDIOC_SETOPTIONS:
212 if (copy_from_user(&value, argp, sizeof(int)))
213 return -EFAULT;
214 switch (value) {
215 case WDIOS_ENABLECARD:
216 rc32434_wdt_start();
217 break;
218 case WDIOS_DISABLECARD:
219 rc32434_wdt_stop();
220 default:
221 return -EINVAL;
222 }
223 break;
224 case WDIOC_SETTIMEOUT:
225 if (copy_from_user(&new_timeout, argp, sizeof(int)))
226 return -EFAULT;
227 if (new_timeout < 1)
228 return -EINVAL;
229 if (new_timeout > MAX_TIMEOUT)
230 return -EINVAL;
231 rc32434_wdt_set(new_timeout);
232 case WDIOC_GETTIMEOUT:
233 return copy_to_user(argp, &timeout, sizeof(int));
234 default:
235 return -ENOTTY;
236 }
237
238 return 0;
239}
240
241static struct file_operations rc32434_wdt_fops = {
242 .owner = THIS_MODULE,
243 .llseek = no_llseek,
244 .write = rc32434_wdt_write,
245 .ioctl = rc32434_wdt_ioctl,
246 .open = rc32434_wdt_open,
247 .release = rc32434_wdt_release,
248};
249
250static struct miscdevice rc32434_wdt_miscdev = {
251 .minor = WATCHDOG_MINOR,
252 .name = "watchdog",
253 .fops = &rc32434_wdt_fops,
254};
255
256static char banner[] = KERN_INFO KBUILD_MODNAME
257 ": Watchdog Timer version " VERSION ", timer margin: %d sec\n";
258
259static int rc32434_wdt_probe(struct platform_device *pdev)
260{
261 int ret;
262 struct resource *r;
263
264 r = platform_get_resource_byname(pdev, IORESOURCE_MEM, "rb500_wdt_res");
265 if (!r) {
266 printk(KERN_ERR KBUILD_MODNAME
267 "failed to retrieve resources\n");
268 return -ENODEV;
269 }
270
271 wdt_reg = ioremap_nocache(r->start, r->end - r->start);
272 if (!wdt_reg) {
273 printk(KERN_ERR KBUILD_MODNAME
274 "failed to remap I/O resources\n");
275 return -ENXIO;
276 }
277
278 ret = misc_register(&rc32434_wdt_miscdev);
279
280 if (ret < 0) {
281 printk(KERN_ERR KBUILD_MODNAME
282 "failed to register watchdog device\n");
283 goto unmap;
284 }
285
286 init_completion(&rc32434_wdt_device.stop);
287 rc32434_wdt_device.queue = 0;
288
289 clear_bit(0, &rc32434_wdt_device.inuse);
290
291 setup_timer(&rc32434_wdt_device.timer, rc32434_wdt_update, 0L);
292
293 rc32434_wdt_device.default_ticks = ticks;
294
295 rc32434_wdt_start();
296
297 printk(banner, timeout);
298
299 return 0;
300
301unmap:
302 iounmap(wdt_reg);
303 return ret;
304}
305
306static int rc32434_wdt_remove(struct platform_device *pdev)
307{
308 if (rc32434_wdt_device.queue) {
309 rc32434_wdt_device.queue = 0;
310 wait_for_completion(&rc32434_wdt_device.stop);
311 }
312 misc_deregister(&rc32434_wdt_miscdev);
313
314 iounmap(wdt_reg);
315
316 return 0;
317}
318
319static struct platform_driver rc32434_wdt = {
320 .probe = rc32434_wdt_probe,
321 .remove = rc32434_wdt_remove,
322 .driver = {
323 .name = "rc32434_wdt",
324 }
325};
326
327static int __init rc32434_wdt_init(void)
328{
329 return platform_driver_register(&rc32434_wdt);
330}
331
332static void __exit rc32434_wdt_exit(void)
333{
334 platform_driver_unregister(&rc32434_wdt);
335}
336
337module_init(rc32434_wdt_init);
338module_exit(rc32434_wdt_exit);
339
340MODULE_AUTHOR("Ondrej Zajicek <santiago@crfreenet.org>,"
341 "Florian Fainelli <florian@openwrt.org>");
342MODULE_DESCRIPTION("Driver for the IDT RC32434 SoC watchdog");
343MODULE_LICENSE("GPL");
344MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
diff --git a/drivers/watchdog/rdc321x_wdt.c b/drivers/watchdog/rdc321x_wdt.c
new file mode 100644
index 000000000000..9108efa73e7d
--- /dev/null
+++ b/drivers/watchdog/rdc321x_wdt.c
@@ -0,0 +1,285 @@
1/*
2 * RDC321x watchdog driver
3 *
4 * Copyright (C) 2007 Florian Fainelli <florian@openwrt.org>
5 *
6 * This driver is highly inspired from the cpu5_wdt driver
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 *
22 */
23
24#include <linux/module.h>
25#include <linux/moduleparam.h>
26#include <linux/types.h>
27#include <linux/errno.h>
28#include <linux/miscdevice.h>
29#include <linux/fs.h>
30#include <linux/init.h>
31#include <linux/ioport.h>
32#include <linux/timer.h>
33#include <linux/completion.h>
34#include <linux/jiffies.h>
35#include <linux/platform_device.h>
36#include <linux/watchdog.h>
37#include <linux/io.h>
38#include <linux/uaccess.h>
39
40#include <asm/mach-rdc321x/rdc321x_defs.h>
41
42#define RDC_WDT_MASK 0x80000000 /* Mask */
43#define RDC_WDT_EN 0x00800000 /* Enable bit */
44#define RDC_WDT_WTI 0x00200000 /* Generate CPU reset/NMI/WDT on timeout */
45#define RDC_WDT_RST 0x00100000 /* Reset bit */
46#define RDC_WDT_WIF 0x00040000 /* WDT IRQ Flag */
47#define RDC_WDT_IRT 0x00000100 /* IRQ Routing table */
48#define RDC_WDT_CNT 0x00000001 /* WDT count */
49
50#define RDC_CLS_TMR 0x80003844 /* Clear timer */
51
52#define RDC_WDT_INTERVAL (HZ/10+1)
53
54static int ticks = 1000;
55
56/* some device data */
57
58static struct {
59 struct completion stop;
60 int running;
61 struct timer_list timer;
62 int queue;
63 int default_ticks;
64 unsigned long inuse;
65 spinlock_t lock;
66} rdc321x_wdt_device;
67
68/* generic helper functions */
69
70static void rdc321x_wdt_trigger(unsigned long unused)
71{
72 unsigned long flags;
73
74 if (rdc321x_wdt_device.running)
75 ticks--;
76
77 /* keep watchdog alive */
78 spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
79 outl(RDC_WDT_EN | inl(RDC3210_CFGREG_DATA),
80 RDC3210_CFGREG_DATA);
81 spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
82
83 /* requeue?? */
84 if (rdc321x_wdt_device.queue && ticks)
85 mod_timer(&rdc321x_wdt_device.timer,
86 jiffies + RDC_WDT_INTERVAL);
87 else {
88 /* ticks doesn't matter anyway */
89 complete(&rdc321x_wdt_device.stop);
90 }
91
92}
93
94static void rdc321x_wdt_reset(void)
95{
96 ticks = rdc321x_wdt_device.default_ticks;
97}
98
99static void rdc321x_wdt_start(void)
100{
101 unsigned long flags;
102
103 if (!rdc321x_wdt_device.queue) {
104 rdc321x_wdt_device.queue = 1;
105
106 /* Clear the timer */
107 spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
108 outl(RDC_CLS_TMR, RDC3210_CFGREG_ADDR);
109
110 /* Enable watchdog and set the timeout to 81.92 us */
111 outl(RDC_WDT_EN | RDC_WDT_CNT, RDC3210_CFGREG_DATA);
112 spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
113
114 mod_timer(&rdc321x_wdt_device.timer,
115 jiffies + RDC_WDT_INTERVAL);
116 }
117
118 /* if process dies, counter is not decremented */
119 rdc321x_wdt_device.running++;
120}
121
122static int rdc321x_wdt_stop(void)
123{
124 if (rdc321x_wdt_device.running)
125 rdc321x_wdt_device.running = 0;
126
127 ticks = rdc321x_wdt_device.default_ticks;
128
129 return -EIO;
130}
131
132/* filesystem operations */
133static int rdc321x_wdt_open(struct inode *inode, struct file *file)
134{
135 if (test_and_set_bit(0, &rdc321x_wdt_device.inuse))
136 return -EBUSY;
137
138 return nonseekable_open(inode, file);
139}
140
141static int rdc321x_wdt_release(struct inode *inode, struct file *file)
142{
143 clear_bit(0, &rdc321x_wdt_device.inuse);
144 return 0;
145}
146
147static int rdc321x_wdt_ioctl(struct inode *inode, struct file *file,
148 unsigned int cmd, unsigned long arg)
149{
150 void __user *argp = (void __user *)arg;
151 unsigned int value;
152 static struct watchdog_info ident = {
153 .options = WDIOF_CARDRESET,
154 .identity = "RDC321x WDT",
155 };
156 unsigned long flags;
157
158 switch (cmd) {
159 case WDIOC_KEEPALIVE:
160 rdc321x_wdt_reset();
161 break;
162 case WDIOC_GETSTATUS:
163 /* Read the value from the DATA register */
164 spin_lock_irqsave(&rdc321x_wdt_device.lock, flags);
165 value = inl(RDC3210_CFGREG_DATA);
166 spin_unlock_irqrestore(&rdc321x_wdt_device.lock, flags);
167 if (copy_to_user(argp, &value, sizeof(int)))
168 return -EFAULT;
169 break;
170 case WDIOC_GETSUPPORT:
171 if (copy_to_user(argp, &ident, sizeof(ident)))
172 return -EFAULT;
173 break;
174 case WDIOC_SETOPTIONS:
175 if (copy_from_user(&value, argp, sizeof(int)))
176 return -EFAULT;
177 switch (value) {
178 case WDIOS_ENABLECARD:
179 rdc321x_wdt_start();
180 break;
181 case WDIOS_DISABLECARD:
182 return rdc321x_wdt_stop();
183 default:
184 return -EINVAL;
185 }
186 break;
187 default:
188 return -ENOTTY;
189 }
190 return 0;
191}
192
193static ssize_t rdc321x_wdt_write(struct file *file, const char __user *buf,
194 size_t count, loff_t *ppos)
195{
196 if (!count)
197 return -EIO;
198
199 rdc321x_wdt_reset();
200
201 return count;
202}
203
204static const struct file_operations rdc321x_wdt_fops = {
205 .owner = THIS_MODULE,
206 .llseek = no_llseek,
207 .ioctl = rdc321x_wdt_ioctl,
208 .open = rdc321x_wdt_open,
209 .write = rdc321x_wdt_write,
210 .release = rdc321x_wdt_release,
211};
212
213static struct miscdevice rdc321x_wdt_misc = {
214 .minor = WATCHDOG_MINOR,
215 .name = "watchdog",
216 .fops = &rdc321x_wdt_fops,
217};
218
219static int __devinit rdc321x_wdt_probe(struct platform_device *pdev)
220{
221 int err;
222
223 err = misc_register(&rdc321x_wdt_misc);
224 if (err < 0) {
225 printk(KERN_ERR PFX "watchdog misc_register failed\n");
226 return err;
227 }
228
229 spin_lock_init(&rdc321x_wdt_device.lock);
230
231 /* Reset the watchdog */
232 outl(RDC_WDT_RST, RDC3210_CFGREG_DATA);
233
234 init_completion(&rdc321x_wdt_device.stop);
235 rdc321x_wdt_device.queue = 0;
236
237 clear_bit(0, &rdc321x_wdt_device.inuse);
238
239 setup_timer(&rdc321x_wdt_device.timer, rdc321x_wdt_trigger, 0);
240
241 rdc321x_wdt_device.default_ticks = ticks;
242
243 printk(KERN_INFO PFX "watchdog init success\n");
244
245 return 0;
246}
247
248static int rdc321x_wdt_remove(struct platform_device *pdev)
249{
250 if (rdc321x_wdt_device.queue) {
251 rdc321x_wdt_device.queue = 0;
252 wait_for_completion(&rdc321x_wdt_device.stop);
253 }
254
255 misc_deregister(&rdc321x_wdt_misc);
256
257 return 0;
258}
259
260static struct platform_driver rdc321x_wdt_driver = {
261 .probe = rdc321x_wdt_probe,
262 .remove = rdc321x_wdt_remove,
263 .driver = {
264 .owner = THIS_MODULE,
265 .name = "rdc321x-wdt",
266 },
267};
268
269static int __init rdc321x_wdt_init(void)
270{
271 return platform_driver_register(&rdc321x_wdt_driver);
272}
273
274static void __exit rdc321x_wdt_exit(void)
275{
276 platform_driver_unregister(&rdc321x_wdt_driver);
277}
278
279module_init(rdc321x_wdt_init);
280module_exit(rdc321x_wdt_exit);
281
282MODULE_AUTHOR("Florian Fainelli <florian@openwrt.org>");
283MODULE_DESCRIPTION("RDC321x watchdog driver");
284MODULE_LICENSE("GPL");
285MODULE_ALIAS_MISCDEV(WATCHDOG_MINOR);
diff --git a/drivers/watchdog/s3c2410_wdt.c b/drivers/watchdog/s3c2410_wdt.c
index 22715e3be5e7..86d42801de45 100644
--- a/drivers/watchdog/s3c2410_wdt.c
+++ b/drivers/watchdog/s3c2410_wdt.c
@@ -21,18 +21,6 @@
21 * You should have received a copy of the GNU General Public License 21 * You should have received a copy of the GNU General Public License
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 *
25 * Changelog:
26 * 05-Oct-2004 BJD Added semaphore init to stop crashes on open
27 * Fixed tmr_count / wdt_count confusion
28 * Added configurable debug
29 *
30 * 11-Jan-2005 BJD Fixed divide-by-2 in timeout code
31 *
32 * 25-Jan-2005 DA Added suspend/resume support
33 * Replaced reboot notifier with .shutdown method
34 *
35 * 10-Mar-2005 LCVR Changed S3C2410_VA to S3C24XX_VA
36*/ 24*/
37 25
38#include <linux/module.h> 26#include <linux/module.h>
@@ -365,7 +353,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
365 return -ENOENT; 353 return -ENOENT;
366 } 354 }
367 355
368 size = (res->end-res->start)+1; 356 size = (res->end - res->start) + 1;
369 wdt_mem = request_mem_region(res->start, size, pdev->name); 357 wdt_mem = request_mem_region(res->start, size, pdev->name);
370 if (wdt_mem == NULL) { 358 if (wdt_mem == NULL) {
371 dev_err(dev, "failed to get memory region\n"); 359 dev_err(dev, "failed to get memory region\n");
@@ -374,7 +362,7 @@ static int s3c2410wdt_probe(struct platform_device *pdev)
374 } 362 }
375 363
376 wdt_base = ioremap(res->start, size); 364 wdt_base = ioremap(res->start, size);
377 if (wdt_base == 0) { 365 if (wdt_base == NULL) {
378 dev_err(dev, "failed to ioremap() region\n"); 366 dev_err(dev, "failed to ioremap() region\n");
379 ret = -EINVAL; 367 ret = -EINVAL;
380 goto err_req; 368 goto err_req;
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index d4427cb86979..2e15da5459cf 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -60,7 +60,7 @@
60 60
61#define PAGES2KB(_p) ((_p)<<(PAGE_SHIFT-10)) 61#define PAGES2KB(_p) ((_p)<<(PAGE_SHIFT-10))
62 62
63#define BALLOON_CLASS_NAME "memory" 63#define BALLOON_CLASS_NAME "xen_memory"
64 64
65struct balloon_stats { 65struct balloon_stats {
66 /* We aim for 'current allocation' == 'target allocation'. */ 66 /* We aim for 'current allocation' == 'target allocation'. */
diff --git a/firmware/Makefile b/firmware/Makefile
index 9fe86041f86e..da75a6fbc6ba 100644
--- a/firmware/Makefile
+++ b/firmware/Makefile
@@ -146,15 +146,27 @@ $(patsubst %,$(obj)/%.gen.o, $(fw-external-y)): $(obj)/%.gen.o: $(fwdir)/%
146$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %) 146$(obj)/%: $(obj)/%.ihex | $(objtree)/$(obj)/$$(dir %)
147 $(call cmd,ihex) 147 $(call cmd,ihex)
148 148
149# Don't depend on ihex2fw if we're installing and it already exists.
150# Putting it after | in the dependencies doesn't seem sufficient when
151# we're installing after a cross-compile, because ihex2fw has dependencies
152# on stuff like /usr/lib/gcc/ppc64-redhat-linux/4.3.0/include/stddef.h and
153# thus wants to be rebuilt. Which it can't be, if the prebuilt kernel tree
154# is exported read-only for someone to run 'make install'.
155ifeq ($(INSTALL):$(wildcard $(obj)/ihex2fw),install:$(obj)/ihex2fw)
156ihex2fw_dep :=
157else
158ihex2fw_dep := $(obj)/ihex2fw
159endif
160
149# .HEX is also Intel HEX, but where the offset and length in each record 161# .HEX is also Intel HEX, but where the offset and length in each record
150# is actually meaningful, because the firmware has to be loaded in a certain 162# is actually meaningful, because the firmware has to be loaded in a certain
151# order rather than as a single binary blob. Thus, we convert them into our 163# order rather than as a single binary blob. Thus, we convert them into our
152# more compact binary representation of ihex records (<linux/ihex.h>) 164# more compact binary representation of ihex records (<linux/ihex.h>)
153$(obj)/%.fw: $(obj)/%.HEX $(obj)/ihex2fw | $(objtree)/$(obj)/$$(dir %) 165$(obj)/%.fw: $(obj)/%.HEX $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
154 $(call cmd,ihex2fw) 166 $(call cmd,ihex2fw)
155 167
156# .H16 is our own modified form of Intel HEX, with 16-bit length for records. 168# .H16 is our own modified form of Intel HEX, with 16-bit length for records.
157$(obj)/%.fw: $(obj)/%.H16 $(obj)/ihex2fw | $(objtree)/$(obj)/$$(dir %) 169$(obj)/%.fw: $(obj)/%.H16 $(ihex2fw_dep) | $(objtree)/$(obj)/$$(dir %)
158 $(call cmd,h16tofw) 170 $(call cmd,h16tofw)
159 171
160$(firmware-dirs): 172$(firmware-dirs):
diff --git a/fs/9p/vfs_dir.c b/fs/9p/vfs_dir.c
index 88e3787c6ea9..e298fe194093 100644
--- a/fs/9p/vfs_dir.c
+++ b/fs/9p/vfs_dir.c
@@ -119,6 +119,7 @@ int v9fs_dir_release(struct inode *inode, struct file *filp)
119 119
120const struct file_operations v9fs_dir_operations = { 120const struct file_operations v9fs_dir_operations = {
121 .read = generic_read_dir, 121 .read = generic_read_dir,
122 .llseek = generic_file_llseek,
122 .readdir = v9fs_dir_readdir, 123 .readdir = v9fs_dir_readdir,
123 .open = v9fs_file_open, 124 .open = v9fs_file_open,
124 .release = v9fs_dir_release, 125 .release = v9fs_dir_release,
diff --git a/fs/Kconfig b/fs/Kconfig
index d3873583360b..abccb5dab9a8 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -1930,6 +1930,16 @@ config CIFS_WEAK_PW_HASH
1930 1930
1931 If unsure, say N. 1931 If unsure, say N.
1932 1932
1933config CIFS_UPCALL
1934 bool "Kerberos/SPNEGO advanced session setup"
1935 depends on CIFS && KEYS
1936 help
1937 Enables an upcall mechanism for CIFS which accesses
1938 userspace helper utilities to provide SPNEGO packaged (RFC 4178)
1939 Kerberos tickets which are needed to mount to certain secure servers
1940 (for which more secure Kerberos authentication is required). If
1941 unsure, say N.
1942
1933config CIFS_XATTR 1943config CIFS_XATTR
1934 bool "CIFS extended attributes" 1944 bool "CIFS extended attributes"
1935 depends on CIFS 1945 depends on CIFS
@@ -1982,17 +1992,6 @@ config CIFS_EXPERIMENTAL
1982 (which is disabled by default). See the file fs/cifs/README 1992 (which is disabled by default). See the file fs/cifs/README
1983 for more details. If unsure, say N. 1993 for more details. If unsure, say N.
1984 1994
1985config CIFS_UPCALL
1986 bool "Kerberos/SPNEGO advanced session setup (EXPERIMENTAL)"
1987 depends on CIFS_EXPERIMENTAL
1988 depends on KEYS
1989 help
1990 Enables an upcall mechanism for CIFS which accesses
1991 userspace helper utilities to provide SPNEGO packaged (RFC 4178)
1992 Kerberos tickets which are needed to mount to certain secure servers
1993 (for which more secure Kerberos authentication is required). If
1994 unsure, say N.
1995
1996config CIFS_DFS_UPCALL 1995config CIFS_DFS_UPCALL
1997 bool "DFS feature support (EXPERIMENTAL)" 1996 bool "DFS feature support (EXPERIMENTAL)"
1998 depends on CIFS_EXPERIMENTAL 1997 depends on CIFS_EXPERIMENTAL
diff --git a/fs/adfs/dir.c b/fs/adfs/dir.c
index fc1a8dc64d78..85a30e929800 100644
--- a/fs/adfs/dir.c
+++ b/fs/adfs/dir.c
@@ -197,6 +197,7 @@ out:
197 197
198const struct file_operations adfs_dir_operations = { 198const struct file_operations adfs_dir_operations = {
199 .read = generic_read_dir, 199 .read = generic_read_dir,
200 .llseek = generic_file_llseek,
200 .readdir = adfs_readdir, 201 .readdir = adfs_readdir,
201 .fsync = file_fsync, 202 .fsync = file_fsync,
202}; 203};
diff --git a/fs/affs/dir.c b/fs/affs/dir.c
index 6e3f282424b0..7b36904dbeac 100644
--- a/fs/affs/dir.c
+++ b/fs/affs/dir.c
@@ -19,6 +19,7 @@ static int affs_readdir(struct file *, void *, filldir_t);
19 19
20const struct file_operations affs_dir_operations = { 20const struct file_operations affs_dir_operations = {
21 .read = generic_read_dir, 21 .read = generic_read_dir,
22 .llseek = generic_file_llseek,
22 .readdir = affs_readdir, 23 .readdir = affs_readdir,
23 .fsync = file_fsync, 24 .fsync = file_fsync,
24}; 25};
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
index bcfb2dc0a61b..2a41c2a7fc52 100644
--- a/fs/autofs4/root.c
+++ b/fs/autofs4/root.c
@@ -36,6 +36,7 @@ const struct file_operations autofs4_root_operations = {
36 .release = dcache_dir_close, 36 .release = dcache_dir_close,
37 .read = generic_read_dir, 37 .read = generic_read_dir,
38 .readdir = dcache_readdir, 38 .readdir = dcache_readdir,
39 .llseek = dcache_dir_lseek,
39 .ioctl = autofs4_root_ioctl, 40 .ioctl = autofs4_root_ioctl,
40}; 41};
41 42
@@ -44,6 +45,7 @@ const struct file_operations autofs4_dir_operations = {
44 .release = dcache_dir_close, 45 .release = dcache_dir_close,
45 .read = generic_read_dir, 46 .read = generic_read_dir,
46 .readdir = dcache_readdir, 47 .readdir = dcache_readdir,
48 .llseek = dcache_dir_lseek,
47}; 49};
48 50
49const struct inode_operations autofs4_indirect_root_inode_operations = { 51const struct inode_operations autofs4_indirect_root_inode_operations = {
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c
index 02c6e62b72f8..740f53672a8a 100644
--- a/fs/befs/linuxvfs.c
+++ b/fs/befs/linuxvfs.c
@@ -66,6 +66,7 @@ static struct kmem_cache *befs_inode_cachep;
66static const struct file_operations befs_dir_operations = { 66static const struct file_operations befs_dir_operations = {
67 .read = generic_read_dir, 67 .read = generic_read_dir,
68 .readdir = befs_readdir, 68 .readdir = befs_readdir,
69 .llseek = generic_file_llseek,
69}; 70};
70 71
71static const struct inode_operations befs_dir_inode_operations = { 72static const struct inode_operations befs_dir_inode_operations = {
diff --git a/fs/bfs/dir.c b/fs/bfs/dir.c
index 87ee5ccee348..ed8feb052df9 100644
--- a/fs/bfs/dir.c
+++ b/fs/bfs/dir.c
@@ -125,8 +125,8 @@ static int bfs_create(struct inode *dir, struct dentry *dentry, int mode,
125 inode->i_ino); 125 inode->i_ino);
126 if (err) { 126 if (err) {
127 inode_dec_link_count(inode); 127 inode_dec_link_count(inode);
128 iput(inode);
129 mutex_unlock(&info->bfs_lock); 128 mutex_unlock(&info->bfs_lock);
129 iput(inode);
130 return err; 130 return err;
131 } 131 }
132 mutex_unlock(&info->bfs_lock); 132 mutex_unlock(&info->bfs_lock);
diff --git a/fs/bio.c b/fs/bio.c
index 8000e2fa16cb..3cba7ae34d75 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -469,20 +469,21 @@ static void bio_free_map_data(struct bio_map_data *bmd)
469 kfree(bmd); 469 kfree(bmd);
470} 470}
471 471
472static struct bio_map_data *bio_alloc_map_data(int nr_segs, int iov_count) 472static struct bio_map_data *bio_alloc_map_data(int nr_segs, int iov_count,
473 gfp_t gfp_mask)
473{ 474{
474 struct bio_map_data *bmd = kmalloc(sizeof(*bmd), GFP_KERNEL); 475 struct bio_map_data *bmd = kmalloc(sizeof(*bmd), gfp_mask);
475 476
476 if (!bmd) 477 if (!bmd)
477 return NULL; 478 return NULL;
478 479
479 bmd->iovecs = kmalloc(sizeof(struct bio_vec) * nr_segs, GFP_KERNEL); 480 bmd->iovecs = kmalloc(sizeof(struct bio_vec) * nr_segs, gfp_mask);
480 if (!bmd->iovecs) { 481 if (!bmd->iovecs) {
481 kfree(bmd); 482 kfree(bmd);
482 return NULL; 483 return NULL;
483 } 484 }
484 485
485 bmd->sgvecs = kmalloc(sizeof(struct sg_iovec) * iov_count, GFP_KERNEL); 486 bmd->sgvecs = kmalloc(sizeof(struct sg_iovec) * iov_count, gfp_mask);
486 if (bmd->sgvecs) 487 if (bmd->sgvecs)
487 return bmd; 488 return bmd;
488 489
@@ -491,8 +492,8 @@ static struct bio_map_data *bio_alloc_map_data(int nr_segs, int iov_count)
491 return NULL; 492 return NULL;
492} 493}
493 494
494static int __bio_copy_iov(struct bio *bio, struct sg_iovec *iov, int iov_count, 495static int __bio_copy_iov(struct bio *bio, struct bio_vec *iovecs,
495 int uncopy) 496 struct sg_iovec *iov, int iov_count, int uncopy)
496{ 497{
497 int ret = 0, i; 498 int ret = 0, i;
498 struct bio_vec *bvec; 499 struct bio_vec *bvec;
@@ -502,7 +503,7 @@ static int __bio_copy_iov(struct bio *bio, struct sg_iovec *iov, int iov_count,
502 503
503 __bio_for_each_segment(bvec, bio, i, 0) { 504 __bio_for_each_segment(bvec, bio, i, 0) {
504 char *bv_addr = page_address(bvec->bv_page); 505 char *bv_addr = page_address(bvec->bv_page);
505 unsigned int bv_len = bvec->bv_len; 506 unsigned int bv_len = iovecs[i].bv_len;
506 507
507 while (bv_len && iov_idx < iov_count) { 508 while (bv_len && iov_idx < iov_count) {
508 unsigned int bytes; 509 unsigned int bytes;
@@ -554,7 +555,7 @@ int bio_uncopy_user(struct bio *bio)
554 struct bio_map_data *bmd = bio->bi_private; 555 struct bio_map_data *bmd = bio->bi_private;
555 int ret; 556 int ret;
556 557
557 ret = __bio_copy_iov(bio, bmd->sgvecs, bmd->nr_sgvecs, 1); 558 ret = __bio_copy_iov(bio, bmd->iovecs, bmd->sgvecs, bmd->nr_sgvecs, 1);
558 559
559 bio_free_map_data(bmd); 560 bio_free_map_data(bmd);
560 bio_put(bio); 561 bio_put(bio);
@@ -596,7 +597,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, struct sg_iovec *iov,
596 len += iov[i].iov_len; 597 len += iov[i].iov_len;
597 } 598 }
598 599
599 bmd = bio_alloc_map_data(nr_pages, iov_count); 600 bmd = bio_alloc_map_data(nr_pages, iov_count, GFP_KERNEL);
600 if (!bmd) 601 if (!bmd)
601 return ERR_PTR(-ENOMEM); 602 return ERR_PTR(-ENOMEM);
602 603
@@ -633,7 +634,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q, struct sg_iovec *iov,
633 * success 634 * success
634 */ 635 */
635 if (!write_to_vm) { 636 if (!write_to_vm) {
636 ret = __bio_copy_iov(bio, iov, iov_count, 0); 637 ret = __bio_copy_iov(bio, bio->bi_io_vec, iov, iov_count, 0);
637 if (ret) 638 if (ret)
638 goto cleanup; 639 goto cleanup;
639 } 640 }
@@ -942,19 +943,22 @@ static void bio_copy_kern_endio(struct bio *bio, int err)
942{ 943{
943 struct bio_vec *bvec; 944 struct bio_vec *bvec;
944 const int read = bio_data_dir(bio) == READ; 945 const int read = bio_data_dir(bio) == READ;
945 char *p = bio->bi_private; 946 struct bio_map_data *bmd = bio->bi_private;
946 int i; 947 int i;
948 char *p = bmd->sgvecs[0].iov_base;
947 949
948 __bio_for_each_segment(bvec, bio, i, 0) { 950 __bio_for_each_segment(bvec, bio, i, 0) {
949 char *addr = page_address(bvec->bv_page); 951 char *addr = page_address(bvec->bv_page);
952 int len = bmd->iovecs[i].bv_len;
950 953
951 if (read && !err) 954 if (read && !err)
952 memcpy(p, addr, bvec->bv_len); 955 memcpy(p, addr, len);
953 956
954 __free_page(bvec->bv_page); 957 __free_page(bvec->bv_page);
955 p += bvec->bv_len; 958 p += len;
956 } 959 }
957 960
961 bio_free_map_data(bmd);
958 bio_put(bio); 962 bio_put(bio);
959} 963}
960 964
@@ -978,11 +982,21 @@ struct bio *bio_copy_kern(struct request_queue *q, void *data, unsigned int len,
978 const int nr_pages = end - start; 982 const int nr_pages = end - start;
979 struct bio *bio; 983 struct bio *bio;
980 struct bio_vec *bvec; 984 struct bio_vec *bvec;
985 struct bio_map_data *bmd;
981 int i, ret; 986 int i, ret;
987 struct sg_iovec iov;
988
989 iov.iov_base = data;
990 iov.iov_len = len;
991
992 bmd = bio_alloc_map_data(nr_pages, 1, gfp_mask);
993 if (!bmd)
994 return ERR_PTR(-ENOMEM);
982 995
996 ret = -ENOMEM;
983 bio = bio_alloc(gfp_mask, nr_pages); 997 bio = bio_alloc(gfp_mask, nr_pages);
984 if (!bio) 998 if (!bio)
985 return ERR_PTR(-ENOMEM); 999 goto out_bmd;
986 1000
987 while (len) { 1001 while (len) {
988 struct page *page; 1002 struct page *page;
@@ -1016,14 +1030,18 @@ struct bio *bio_copy_kern(struct request_queue *q, void *data, unsigned int len,
1016 } 1030 }
1017 } 1031 }
1018 1032
1019 bio->bi_private = data; 1033 bio->bi_private = bmd;
1020 bio->bi_end_io = bio_copy_kern_endio; 1034 bio->bi_end_io = bio_copy_kern_endio;
1035
1036 bio_set_map_data(bmd, bio, &iov, 1);
1021 return bio; 1037 return bio;
1022cleanup: 1038cleanup:
1023 bio_for_each_segment(bvec, bio, i) 1039 bio_for_each_segment(bvec, bio, i)
1024 __free_page(bvec->bv_page); 1040 __free_page(bvec->bv_page);
1025 1041
1026 bio_put(bio); 1042 bio_put(bio);
1043out_bmd:
1044 bio_free_map_data(bmd);
1027 1045
1028 return ERR_PTR(ret); 1046 return ERR_PTR(ret);
1029} 1047}
diff --git a/fs/buffer.c b/fs/buffer.c
index 38653e36e225..ac78d4c19b3b 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2926,14 +2926,17 @@ int submit_bh(int rw, struct buffer_head * bh)
2926 BUG_ON(!buffer_mapped(bh)); 2926 BUG_ON(!buffer_mapped(bh));
2927 BUG_ON(!bh->b_end_io); 2927 BUG_ON(!bh->b_end_io);
2928 2928
2929 if (buffer_ordered(bh) && (rw == WRITE)) 2929 /*
2930 rw = WRITE_BARRIER; 2930 * Mask in barrier bit for a write (could be either a WRITE or a
2931 * WRITE_SYNC
2932 */
2933 if (buffer_ordered(bh) && (rw & WRITE))
2934 rw |= WRITE_BARRIER;
2931 2935
2932 /* 2936 /*
2933 * Only clear out a write error when rewriting, should this 2937 * Only clear out a write error when rewriting
2934 * include WRITE_SYNC as well?
2935 */ 2938 */
2936 if (test_set_buffer_req(bh) && (rw == WRITE || rw == WRITE_BARRIER)) 2939 if (test_set_buffer_req(bh) && (rw & WRITE))
2937 clear_buffer_write_io_error(bh); 2940 clear_buffer_write_io_error(bh);
2938 2941
2939 /* 2942 /*
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES
index f5d0083e09fa..06e521a945c3 100644
--- a/fs/cifs/CHANGES
+++ b/fs/cifs/CHANGES
@@ -4,7 +4,15 @@ Fix premature write failure on congested networks (we would give up
4on EAGAIN from the socket too quickly on large writes). 4on EAGAIN from the socket too quickly on large writes).
5Cifs_mkdir and cifs_create now respect the setgid bit on parent dir. 5Cifs_mkdir and cifs_create now respect the setgid bit on parent dir.
6Fix endian problems in acl (mode from/to cifs acl) on bigendian 6Fix endian problems in acl (mode from/to cifs acl) on bigendian
7architectures. 7architectures. Fix problems with preserving timestamps on copying open
8files (e.g. "cp -a") to Windows servers. For mkdir and create honor setgid bit
9on parent directory when server supports Unix Extensions but not POSIX
10create. Update cifs.upcall version to handle new Kerberos sec flags
11(this requires update of cifs.upcall program from Samba). Fix memory leak
12on dns_upcall (resolving DFS referralls). Fix plain text password
13authentication (requires setting SecurityFlags to 0x30030 to enable
14lanman and plain text though). Fix writes to be at correct offset when
15file is open with O_APPEND and file is on a directio (forcediretio) mount.
8 16
9Version 1.53 17Version 1.53
10------------ 18------------
diff --git a/fs/cifs/README b/fs/cifs/README
index 2bd6fe556f88..bd2343d4c6a6 100644
--- a/fs/cifs/README
+++ b/fs/cifs/README
@@ -542,10 +542,20 @@ SecurityFlags Flags which control security negotiation and
542 hashing mechanisms (as "must use") on the other hand 542 hashing mechanisms (as "must use") on the other hand
543 does not make much sense. Default flags are 543 does not make much sense. Default flags are
544 0x07007 544 0x07007
545 (NTLM, NTLMv2 and packet signing allowed). Maximum 545 (NTLM, NTLMv2 and packet signing allowed). The maximum
546 allowable flags if you want to allow mounts to servers 546 allowable flags if you want to allow mounts to servers
547 using weaker password hashes is 0x37037 (lanman, 547 using weaker password hashes is 0x37037 (lanman,
548 plaintext, ntlm, ntlmv2, signing allowed): 548 plaintext, ntlm, ntlmv2, signing allowed). Some
549 SecurityFlags require the corresponding menuconfig
550 options to be enabled (lanman and plaintext require
551 CONFIG_CIFS_WEAK_PW_HASH for example). Enabling
552 plaintext authentication currently requires also
553 enabling lanman authentication in the security flags
554 because the cifs module only supports sending
555 laintext passwords using the older lanman dialect
556 form of the session setup SMB. (e.g. for authentication
557 using plain text passwords, set the SecurityFlags
558 to 0x30030):
549 559
550 may use packet signing 0x00001 560 may use packet signing 0x00001
551 must use packet signing 0x01001 561 must use packet signing 0x01001
@@ -642,8 +652,30 @@ The statistics for the number of total SMBs and oplock breaks are different in
642that they represent all for that share, not just those for which the server 652that they represent all for that share, not just those for which the server
643returned success. 653returned success.
644 654
645Also note that "cat /proc/fs/cifs/DebugData" will display information about 655Also note that "cat /proc/fs/cifs/DebugData" will display information about
646the active sessions and the shares that are mounted. 656the active sessions and the shares that are mounted.
647Enabling Kerberos (extended security) works when CONFIG_CIFS_EXPERIMENTAL is 657
648on but requires a user space helper (from the Samba project). NTLM and NTLMv2 and 658Enabling Kerberos (extended security) works but requires version 1.2 or later
649LANMAN support do not require this helper. 659of the helper program cifs.upcall to be present and to be configured in the
660/etc/request-key.conf file. The cifs.upcall helper program is from the Samba
661project(http://www.samba.org). NTLM and NTLMv2 and LANMAN support do not
662require this helper. Note that NTLMv2 security (which does not require the
663cifs.upcall helper program), instead of using Kerberos, is sufficient for
664some use cases.
665
666Enabling DFS support (used to access shares transparently in an MS-DFS
667global name space) requires that CONFIG_CIFS_EXPERIMENTAL be enabled. In
668addition, DFS support for target shares which are specified as UNC
669names which begin with host names (rather than IP addresses) requires
670a user space helper (such as cifs.upcall) to be present in order to
671translate host names to ip address, and the user space helper must also
672be configured in the file /etc/request-key.conf
673
674To use cifs Kerberos and DFS support, the Linux keyutils package should be
675installed and something like the following lines should be added to the
676/etc/request-key.conf file:
677
678create cifs.spnego * * /usr/local/sbin/cifs.upcall %k
679create dns_resolver * * /usr/local/sbin/cifs.upcall %k
680
681
diff --git a/fs/cifs/asn1.c b/fs/cifs/asn1.c
index 5fabd2caf93c..1b09f1670061 100644
--- a/fs/cifs/asn1.c
+++ b/fs/cifs/asn1.c
@@ -476,6 +476,7 @@ decode_negTokenInit(unsigned char *security_blob, int length,
476 unsigned int cls, con, tag, oidlen, rc; 476 unsigned int cls, con, tag, oidlen, rc;
477 bool use_ntlmssp = false; 477 bool use_ntlmssp = false;
478 bool use_kerberos = false; 478 bool use_kerberos = false;
479 bool use_mskerberos = false;
479 480
480 *secType = NTLM; /* BB eventually make Kerberos or NLTMSSP the default*/ 481 *secType = NTLM; /* BB eventually make Kerberos or NLTMSSP the default*/
481 482
@@ -574,10 +575,12 @@ decode_negTokenInit(unsigned char *security_blob, int length,
574 *(oid + 1), *(oid + 2), *(oid + 3))); 575 *(oid + 1), *(oid + 2), *(oid + 3)));
575 576
576 if (compare_oid(oid, oidlen, MSKRB5_OID, 577 if (compare_oid(oid, oidlen, MSKRB5_OID,
577 MSKRB5_OID_LEN)) 578 MSKRB5_OID_LEN) &&
578 use_kerberos = true; 579 !use_kerberos)
580 use_mskerberos = true;
579 else if (compare_oid(oid, oidlen, KRB5_OID, 581 else if (compare_oid(oid, oidlen, KRB5_OID,
580 KRB5_OID_LEN)) 582 KRB5_OID_LEN) &&
583 !use_mskerberos)
581 use_kerberos = true; 584 use_kerberos = true;
582 else if (compare_oid(oid, oidlen, NTLMSSP_OID, 585 else if (compare_oid(oid, oidlen, NTLMSSP_OID,
583 NTLMSSP_OID_LEN)) 586 NTLMSSP_OID_LEN))
@@ -630,6 +633,8 @@ decode_negTokenInit(unsigned char *security_blob, int length,
630 633
631 if (use_kerberos) 634 if (use_kerberos)
632 *secType = Kerberos; 635 *secType = Kerberos;
636 else if (use_mskerberos)
637 *secType = MSKerberos;
633 else if (use_ntlmssp) 638 else if (use_ntlmssp)
634 *secType = NTLMSSP; 639 *secType = NTLMSSP;
635 640
diff --git a/fs/cifs/cifs_spnego.c b/fs/cifs/cifs_spnego.c
index 2434ab0e8791..117ef4bba68e 100644
--- a/fs/cifs/cifs_spnego.c
+++ b/fs/cifs/cifs_spnego.c
@@ -114,9 +114,11 @@ cifs_get_spnego_key(struct cifsSesInfo *sesInfo)
114 114
115 dp = description + strlen(description); 115 dp = description + strlen(description);
116 116
117 /* for now, only sec=krb5 is valid */ 117 /* for now, only sec=krb5 and sec=mskrb5 are valid */
118 if (server->secType == Kerberos) 118 if (server->secType == Kerberos)
119 sprintf(dp, ";sec=krb5"); 119 sprintf(dp, ";sec=krb5");
120 else if (server->secType == MSKerberos)
121 sprintf(dp, ";sec=mskrb5");
120 else 122 else
121 goto out; 123 goto out;
122 124
diff --git a/fs/cifs/cifs_spnego.h b/fs/cifs/cifs_spnego.h
index 05a34b17a1ab..e4041ec4d712 100644
--- a/fs/cifs/cifs_spnego.h
+++ b/fs/cifs/cifs_spnego.h
@@ -23,7 +23,7 @@
23#ifndef _CIFS_SPNEGO_H 23#ifndef _CIFS_SPNEGO_H
24#define _CIFS_SPNEGO_H 24#define _CIFS_SPNEGO_H
25 25
26#define CIFS_SPNEGO_UPCALL_VERSION 1 26#define CIFS_SPNEGO_UPCALL_VERSION 2
27 27
28/* 28/*
29 * The version field should always be set to CIFS_SPNEGO_UPCALL_VERSION. 29 * The version field should always be set to CIFS_SPNEGO_UPCALL_VERSION.
diff --git a/fs/cifs/cifsencrypt.c b/fs/cifs/cifsencrypt.c
index 83fd40dc1ef0..bd5f13d38450 100644
--- a/fs/cifs/cifsencrypt.c
+++ b/fs/cifs/cifsencrypt.c
@@ -294,6 +294,7 @@ void calc_lanman_hash(struct cifsSesInfo *ses, char *lnm_session_key)
294 294
295 if ((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0) 295 if ((ses->server->secMode & SECMODE_PW_ENCRYPT) == 0)
296 if (extended_security & CIFSSEC_MAY_PLNTXT) { 296 if (extended_security & CIFSSEC_MAY_PLNTXT) {
297 memset(lnm_session_key, 0, CIFS_SESS_KEY_SIZE);
297 memcpy(lnm_session_key, password_with_pad, 298 memcpy(lnm_session_key, password_with_pad,
298 CIFS_ENCPWD_SIZE); 299 CIFS_ENCPWD_SIZE);
299 return; 300 return;
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index 7e1cf262effe..8dfd6f24d488 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -80,7 +80,8 @@ enum securityEnum {
80 NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */ 80 NTLMv2, /* Legacy NTLM auth with NTLMv2 hash */
81 RawNTLMSSP, /* NTLMSSP without SPNEGO */ 81 RawNTLMSSP, /* NTLMSSP without SPNEGO */
82 NTLMSSP, /* NTLMSSP via SPNEGO */ 82 NTLMSSP, /* NTLMSSP via SPNEGO */
83 Kerberos /* Kerberos via SPNEGO */ 83 Kerberos, /* Kerberos via SPNEGO */
84 MSKerberos, /* MS Kerberos via SPNEGO */
84}; 85};
85 86
86enum protocolEnum { 87enum protocolEnum {
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
index 0711db65afe8..4c13bcdb92a5 100644
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -3598,19 +3598,21 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3598 char ntlm_session_key[CIFS_SESS_KEY_SIZE]; 3598 char ntlm_session_key[CIFS_SESS_KEY_SIZE];
3599 bool ntlmv2_flag = false; 3599 bool ntlmv2_flag = false;
3600 int first_time = 0; 3600 int first_time = 0;
3601 struct TCP_Server_Info *server = pSesInfo->server;
3601 3602
3602 /* what if server changes its buffer size after dropping the session? */ 3603 /* what if server changes its buffer size after dropping the session? */
3603 if (pSesInfo->server->maxBuf == 0) /* no need to send on reconnect */ { 3604 if (server->maxBuf == 0) /* no need to send on reconnect */ {
3604 rc = CIFSSMBNegotiate(xid, pSesInfo); 3605 rc = CIFSSMBNegotiate(xid, pSesInfo);
3605 if (rc == -EAGAIN) /* retry only once on 1st time connection */ { 3606 if (rc == -EAGAIN) {
3607 /* retry only once on 1st time connection */
3606 rc = CIFSSMBNegotiate(xid, pSesInfo); 3608 rc = CIFSSMBNegotiate(xid, pSesInfo);
3607 if (rc == -EAGAIN) 3609 if (rc == -EAGAIN)
3608 rc = -EHOSTDOWN; 3610 rc = -EHOSTDOWN;
3609 } 3611 }
3610 if (rc == 0) { 3612 if (rc == 0) {
3611 spin_lock(&GlobalMid_Lock); 3613 spin_lock(&GlobalMid_Lock);
3612 if (pSesInfo->server->tcpStatus != CifsExiting) 3614 if (server->tcpStatus != CifsExiting)
3613 pSesInfo->server->tcpStatus = CifsGood; 3615 server->tcpStatus = CifsGood;
3614 else 3616 else
3615 rc = -EHOSTDOWN; 3617 rc = -EHOSTDOWN;
3616 spin_unlock(&GlobalMid_Lock); 3618 spin_unlock(&GlobalMid_Lock);
@@ -3623,23 +3625,22 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3623 goto ss_err_exit; 3625 goto ss_err_exit;
3624 3626
3625 pSesInfo->flags = 0; 3627 pSesInfo->flags = 0;
3626 pSesInfo->capabilities = pSesInfo->server->capabilities; 3628 pSesInfo->capabilities = server->capabilities;
3627 if (linuxExtEnabled == 0) 3629 if (linuxExtEnabled == 0)
3628 pSesInfo->capabilities &= (~CAP_UNIX); 3630 pSesInfo->capabilities &= (~CAP_UNIX);
3629 /* pSesInfo->sequence_number = 0;*/ 3631 /* pSesInfo->sequence_number = 0;*/
3630 cFYI(1, ("Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d", 3632 cFYI(1, ("Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d",
3631 pSesInfo->server->secMode, 3633 server->secMode, server->capabilities, server->timeAdj));
3632 pSesInfo->server->capabilities, 3634
3633 pSesInfo->server->timeAdj));
3634 if (experimEnabled < 2) 3635 if (experimEnabled < 2)
3635 rc = CIFS_SessSetup(xid, pSesInfo, first_time, nls_info); 3636 rc = CIFS_SessSetup(xid, pSesInfo, first_time, nls_info);
3636 else if (extended_security 3637 else if (extended_security
3637 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY) 3638 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY)
3638 && (pSesInfo->server->secType == NTLMSSP)) { 3639 && (server->secType == NTLMSSP)) {
3639 rc = -EOPNOTSUPP; 3640 rc = -EOPNOTSUPP;
3640 } else if (extended_security 3641 } else if (extended_security
3641 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY) 3642 && (pSesInfo->capabilities & CAP_EXTENDED_SECURITY)
3642 && (pSesInfo->server->secType == RawNTLMSSP)) { 3643 && (server->secType == RawNTLMSSP)) {
3643 cFYI(1, ("NTLMSSP sesssetup")); 3644 cFYI(1, ("NTLMSSP sesssetup"));
3644 rc = CIFSNTLMSSPNegotiateSessSetup(xid, pSesInfo, &ntlmv2_flag, 3645 rc = CIFSNTLMSSPNegotiateSessSetup(xid, pSesInfo, &ntlmv2_flag,
3645 nls_info); 3646 nls_info);
@@ -3668,12 +3669,12 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3668 3669
3669 } else { 3670 } else {
3670 SMBNTencrypt(pSesInfo->password, 3671 SMBNTencrypt(pSesInfo->password,
3671 pSesInfo->server->cryptKey, 3672 server->cryptKey,
3672 ntlm_session_key); 3673 ntlm_session_key);
3673 3674
3674 if (first_time) 3675 if (first_time)
3675 cifs_calculate_mac_key( 3676 cifs_calculate_mac_key(
3676 &pSesInfo->server->mac_signing_key, 3677 &server->mac_signing_key,
3677 ntlm_session_key, 3678 ntlm_session_key,
3678 pSesInfo->password); 3679 pSesInfo->password);
3679 } 3680 }
@@ -3686,13 +3687,13 @@ int cifs_setup_session(unsigned int xid, struct cifsSesInfo *pSesInfo,
3686 nls_info); 3687 nls_info);
3687 } 3688 }
3688 } else { /* old style NTLM 0.12 session setup */ 3689 } else { /* old style NTLM 0.12 session setup */
3689 SMBNTencrypt(pSesInfo->password, pSesInfo->server->cryptKey, 3690 SMBNTencrypt(pSesInfo->password, server->cryptKey,
3690 ntlm_session_key); 3691 ntlm_session_key);
3691 3692
3692 if (first_time) 3693 if (first_time)
3693 cifs_calculate_mac_key( 3694 cifs_calculate_mac_key(&server->mac_signing_key,
3694 &pSesInfo->server->mac_signing_key, 3695 ntlm_session_key,
3695 ntlm_session_key, pSesInfo->password); 3696 pSesInfo->password);
3696 3697
3697 rc = CIFSSessSetup(xid, pSesInfo, ntlm_session_key, nls_info); 3698 rc = CIFSSessSetup(xid, pSesInfo, ntlm_session_key, nls_info);
3698 } 3699 }
diff --git a/fs/cifs/dns_resolve.c b/fs/cifs/dns_resolve.c
index f730ef35499e..a2e0673e1b08 100644
--- a/fs/cifs/dns_resolve.c
+++ b/fs/cifs/dns_resolve.c
@@ -47,11 +47,18 @@ static int dns_resolver_instantiate(struct key *key, const void *data,
47 return rc; 47 return rc;
48} 48}
49 49
50static void
51dns_resolver_destroy(struct key *key)
52{
53 kfree(key->payload.data);
54}
55
50struct key_type key_type_dns_resolver = { 56struct key_type key_type_dns_resolver = {
51 .name = "dns_resolver", 57 .name = "dns_resolver",
52 .def_datalen = sizeof(struct in_addr), 58 .def_datalen = sizeof(struct in_addr),
53 .describe = user_describe, 59 .describe = user_describe,
54 .instantiate = dns_resolver_instantiate, 60 .instantiate = dns_resolver_instantiate,
61 .destroy = dns_resolver_destroy,
55 .match = user_match, 62 .match = user_match,
56}; 63};
57 64
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index ff14d14903a0..cbefe1f1f9fe 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -833,6 +833,10 @@ ssize_t cifs_user_write(struct file *file, const char __user *write_data,
833 return -EBADF; 833 return -EBADF;
834 open_file = (struct cifsFileInfo *) file->private_data; 834 open_file = (struct cifsFileInfo *) file->private_data;
835 835
836 rc = generic_write_checks(file, poffset, &write_size, 0);
837 if (rc)
838 return rc;
839
836 xid = GetXid(); 840 xid = GetXid();
837 841
838 if (*poffset > file->f_path.dentry->d_inode->i_size) 842 if (*poffset > file->f_path.dentry->d_inode->i_size)
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
index 848286861c31..9c548f110102 100644
--- a/fs/cifs/inode.c
+++ b/fs/cifs/inode.c
@@ -546,7 +546,8 @@ int cifs_get_inode_info(struct inode **pinode,
546 if ((inode->i_mode & S_IWUGO) == 0 && 546 if ((inode->i_mode & S_IWUGO) == 0 &&
547 (attr & ATTR_READONLY) == 0) 547 (attr & ATTR_READONLY) == 0)
548 inode->i_mode |= (S_IWUGO & default_mode); 548 inode->i_mode |= (S_IWUGO & default_mode);
549 inode->i_mode &= ~S_IFMT; 549
550 inode->i_mode &= ~S_IFMT;
550 } 551 }
551 /* clear write bits if ATTR_READONLY is set */ 552 /* clear write bits if ATTR_READONLY is set */
552 if (attr & ATTR_READONLY) 553 if (attr & ATTR_READONLY)
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
index ed150efbe27c..252fdc0567f1 100644
--- a/fs/cifs/sess.c
+++ b/fs/cifs/sess.c
@@ -409,6 +409,8 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
409#ifdef CONFIG_CIFS_WEAK_PW_HASH 409#ifdef CONFIG_CIFS_WEAK_PW_HASH
410 char lnm_session_key[CIFS_SESS_KEY_SIZE]; 410 char lnm_session_key[CIFS_SESS_KEY_SIZE];
411 411
412 pSMB->req.hdr.Flags2 &= ~SMBFLG2_UNICODE;
413
412 /* no capabilities flags in old lanman negotiation */ 414 /* no capabilities flags in old lanman negotiation */
413 415
414 pSMB->old_req.PasswordLength = cpu_to_le16(CIFS_SESS_KEY_SIZE); 416 pSMB->old_req.PasswordLength = cpu_to_le16(CIFS_SESS_KEY_SIZE);
@@ -505,7 +507,7 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
505 unicode_ssetup_strings(&bcc_ptr, ses, nls_cp); 507 unicode_ssetup_strings(&bcc_ptr, ses, nls_cp);
506 } else 508 } else
507 ascii_ssetup_strings(&bcc_ptr, ses, nls_cp); 509 ascii_ssetup_strings(&bcc_ptr, ses, nls_cp);
508 } else if (type == Kerberos) { 510 } else if (type == Kerberos || type == MSKerberos) {
509#ifdef CONFIG_CIFS_UPCALL 511#ifdef CONFIG_CIFS_UPCALL
510 struct cifs_spnego_msg *msg; 512 struct cifs_spnego_msg *msg;
511 spnego_key = cifs_get_spnego_key(ses); 513 spnego_key = cifs_get_spnego_key(ses);
@@ -516,6 +518,15 @@ CIFS_SessSetup(unsigned int xid, struct cifsSesInfo *ses, int first_time,
516 } 518 }
517 519
518 msg = spnego_key->payload.data; 520 msg = spnego_key->payload.data;
521 /* check version field to make sure that cifs.upcall is
522 sending us a response in an expected form */
523 if (msg->version != CIFS_SPNEGO_UPCALL_VERSION) {
524 cERROR(1, ("incorrect version of cifs.upcall (expected"
525 " %d but got %d)",
526 CIFS_SPNEGO_UPCALL_VERSION, msg->version));
527 rc = -EKEYREJECTED;
528 goto ssetup_exit;
529 }
519 /* bail out if key is too long */ 530 /* bail out if key is too long */
520 if (msg->sesskey_len > 531 if (msg->sesskey_len >
521 sizeof(ses->server->mac_signing_key.data.krb5)) { 532 sizeof(ses->server->mac_signing_key.data.krb5)) {
diff --git a/fs/compat.c b/fs/compat.c
index c9d1472e65c5..075d0509970d 100644
--- a/fs/compat.c
+++ b/fs/compat.c
@@ -792,8 +792,10 @@ static int compat_fillonedir(void *__buf, const char *name, int namlen,
792 if (buf->result) 792 if (buf->result)
793 return -EINVAL; 793 return -EINVAL;
794 d_ino = ino; 794 d_ino = ino;
795 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 795 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
796 buf->result = -EOVERFLOW;
796 return -EOVERFLOW; 797 return -EOVERFLOW;
798 }
797 buf->result++; 799 buf->result++;
798 dirent = buf->dirent; 800 dirent = buf->dirent;
799 if (!access_ok(VERIFY_WRITE, dirent, 801 if (!access_ok(VERIFY_WRITE, dirent,
@@ -862,8 +864,10 @@ static int compat_filldir(void *__buf, const char *name, int namlen,
862 if (reclen > buf->count) 864 if (reclen > buf->count)
863 return -EINVAL; 865 return -EINVAL;
864 d_ino = ino; 866 d_ino = ino;
865 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 867 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
868 buf->error = -EOVERFLOW;
866 return -EOVERFLOW; 869 return -EOVERFLOW;
870 }
867 dirent = buf->previous; 871 dirent = buf->previous;
868 if (dirent) { 872 if (dirent) {
869 if (__put_user(offset, &dirent->d_off)) 873 if (__put_user(offset, &dirent->d_off))
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 7a8db78a91d2..8e93341f3e82 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -1311,16 +1311,18 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
1311 * Ensure that no racing symlink() will make detach_prep() fail while 1311 * Ensure that no racing symlink() will make detach_prep() fail while
1312 * the new link is temporarily attached 1312 * the new link is temporarily attached
1313 */ 1313 */
1314 mutex_lock(&configfs_symlink_mutex);
1315 spin_lock(&configfs_dirent_lock);
1316 do { 1314 do {
1317 struct mutex *wait_mutex; 1315 struct mutex *wait_mutex;
1318 1316
1317 mutex_lock(&configfs_symlink_mutex);
1318 spin_lock(&configfs_dirent_lock);
1319 ret = configfs_detach_prep(dentry, &wait_mutex); 1319 ret = configfs_detach_prep(dentry, &wait_mutex);
1320 if (ret) { 1320 if (ret)
1321 configfs_detach_rollback(dentry); 1321 configfs_detach_rollback(dentry);
1322 spin_unlock(&configfs_dirent_lock); 1322 spin_unlock(&configfs_dirent_lock);
1323 mutex_unlock(&configfs_symlink_mutex); 1323 mutex_unlock(&configfs_symlink_mutex);
1324
1325 if (ret) {
1324 if (ret != -EAGAIN) { 1326 if (ret != -EAGAIN) {
1325 config_item_put(parent_item); 1327 config_item_put(parent_item);
1326 return ret; 1328 return ret;
@@ -1329,13 +1331,8 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
1329 /* Wait until the racing operation terminates */ 1331 /* Wait until the racing operation terminates */
1330 mutex_lock(wait_mutex); 1332 mutex_lock(wait_mutex);
1331 mutex_unlock(wait_mutex); 1333 mutex_unlock(wait_mutex);
1332
1333 mutex_lock(&configfs_symlink_mutex);
1334 spin_lock(&configfs_dirent_lock);
1335 } 1334 }
1336 } while (ret == -EAGAIN); 1335 } while (ret == -EAGAIN);
1337 spin_unlock(&configfs_dirent_lock);
1338 mutex_unlock(&configfs_symlink_mutex);
1339 1336
1340 /* Get a working ref for the duration of this function */ 1337 /* Get a working ref for the duration of this function */
1341 item = configfs_get_config_item(dentry); 1338 item = configfs_get_config_item(dentry);
diff --git a/fs/dcache.c b/fs/dcache.c
index 101663d15e9f..80e93956aced 100644
--- a/fs/dcache.c
+++ b/fs/dcache.c
@@ -1236,7 +1236,7 @@ struct dentry *d_splice_alias(struct inode *inode, struct dentry *dentry)
1236 * If no entry exists with the exact case name, allocate new dentry with 1236 * If no entry exists with the exact case name, allocate new dentry with
1237 * the exact case, and return the spliced entry. 1237 * the exact case, and return the spliced entry.
1238 */ 1238 */
1239struct dentry *d_add_ci(struct inode *inode, struct dentry *dentry, 1239struct dentry *d_add_ci(struct dentry *dentry, struct inode *inode,
1240 struct qstr *name) 1240 struct qstr *name)
1241{ 1241{
1242 int error; 1242 int error;
diff --git a/fs/efs/namei.c b/fs/efs/namei.c
index 3a404e7fad53..291abb11e20e 100644
--- a/fs/efs/namei.c
+++ b/fs/efs/namei.c
@@ -74,8 +74,7 @@ struct dentry *efs_lookup(struct inode *dir, struct dentry *dentry, struct namei
74 } 74 }
75 unlock_kernel(); 75 unlock_kernel();
76 76
77 d_add(dentry, inode); 77 return d_splice_alias(inode, dentry);
78 return NULL;
79} 78}
80 79
81static struct inode *efs_nfs_get_inode(struct super_block *sb, u64 ino, 80static struct inode *efs_nfs_get_inode(struct super_block *sb, u64 ino,
diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index 9abcd2b329f7..e9b20173fef3 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1279,6 +1279,12 @@ static int nfs_parse_mount_options(char *raw,
1279 } 1279 }
1280 } 1280 }
1281 1281
1282 if (errors > 0) {
1283 dfprintk(MOUNT, "NFS: parsing encountered %d error%s\n",
1284 errors, (errors == 1 ? "" : "s"));
1285 if (!sloppy)
1286 return 0;
1287 }
1282 return 1; 1288 return 1;
1283 1289
1284out_nomem: 1290out_nomem:
diff --git a/fs/nfsd/nfs4acl.c b/fs/nfsd/nfs4acl.c
index b6ed38380ab8..54b8b4140c8f 100644
--- a/fs/nfsd/nfs4acl.c
+++ b/fs/nfsd/nfs4acl.c
@@ -443,7 +443,7 @@ init_state(struct posix_acl_state *state, int cnt)
443 * enough space for either: 443 * enough space for either:
444 */ 444 */
445 alloc = sizeof(struct posix_ace_state_array) 445 alloc = sizeof(struct posix_ace_state_array)
446 + cnt*sizeof(struct posix_ace_state); 446 + cnt*sizeof(struct posix_user_ace_state);
447 state->users = kzalloc(alloc, GFP_KERNEL); 447 state->users = kzalloc(alloc, GFP_KERNEL);
448 if (!state->users) 448 if (!state->users)
449 return -ENOMEM; 449 return -ENOMEM;
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
index 2e51adac65de..e5b51ffafc6c 100644
--- a/fs/nfsd/nfs4proc.c
+++ b/fs/nfsd/nfs4proc.c
@@ -867,11 +867,6 @@ nfsd4_proc_compound(struct svc_rqst *rqstp,
867 int slack_bytes; 867 int slack_bytes;
868 __be32 status; 868 __be32 status;
869 869
870 status = nfserr_resource;
871 cstate = cstate_alloc();
872 if (cstate == NULL)
873 goto out;
874
875 resp->xbuf = &rqstp->rq_res; 870 resp->xbuf = &rqstp->rq_res;
876 resp->p = rqstp->rq_res.head[0].iov_base + rqstp->rq_res.head[0].iov_len; 871 resp->p = rqstp->rq_res.head[0].iov_base + rqstp->rq_res.head[0].iov_len;
877 resp->tagp = resp->p; 872 resp->tagp = resp->p;
@@ -890,6 +885,11 @@ nfsd4_proc_compound(struct svc_rqst *rqstp,
890 if (args->minorversion > NFSD_SUPPORTED_MINOR_VERSION) 885 if (args->minorversion > NFSD_SUPPORTED_MINOR_VERSION)
891 goto out; 886 goto out;
892 887
888 status = nfserr_resource;
889 cstate = cstate_alloc();
890 if (cstate == NULL)
891 goto out;
892
893 status = nfs_ok; 893 status = nfs_ok;
894 while (!status && resp->opcnt < args->opcnt) { 894 while (!status && resp->opcnt < args->opcnt) {
895 op = &args->ops[resp->opcnt++]; 895 op = &args->ops[resp->opcnt++];
@@ -957,9 +957,9 @@ encode_op:
957 nfsd4_increment_op_stats(op->opnum); 957 nfsd4_increment_op_stats(op->opnum);
958 } 958 }
959 959
960 cstate_free(cstate);
960out: 961out:
961 nfsd4_release_compoundargs(args); 962 nfsd4_release_compoundargs(args);
962 cstate_free(cstate);
963 dprintk("nfsv4 compound returned %d\n", ntohl(status)); 963 dprintk("nfsv4 compound returned %d\n", ntohl(status));
964 return status; 964 return status;
965} 965}
diff --git a/fs/ntfs/namei.c b/fs/ntfs/namei.c
index e1781c8b1650..9e8a95be7a1e 100644
--- a/fs/ntfs/namei.c
+++ b/fs/ntfs/namei.c
@@ -174,7 +174,6 @@ static struct dentry *ntfs_lookup(struct inode *dir_ino, struct dentry *dent,
174 // TODO: Consider moving this lot to a separate function! (AIA) 174 // TODO: Consider moving this lot to a separate function! (AIA)
175handle_name: 175handle_name:
176 { 176 {
177 struct dentry *real_dent, *new_dent;
178 MFT_RECORD *m; 177 MFT_RECORD *m;
179 ntfs_attr_search_ctx *ctx; 178 ntfs_attr_search_ctx *ctx;
180 ntfs_inode *ni = NTFS_I(dent_inode); 179 ntfs_inode *ni = NTFS_I(dent_inode);
@@ -255,93 +254,9 @@ handle_name:
255 } 254 }
256 nls_name.hash = full_name_hash(nls_name.name, nls_name.len); 255 nls_name.hash = full_name_hash(nls_name.name, nls_name.len);
257 256
258 /* 257 dent = d_add_ci(dent, dent_inode, &nls_name);
259 * Note: No need for dent->d_lock lock as i_mutex is held on the
260 * parent inode.
261 */
262
263 /* Does a dentry matching the nls_name exist already? */
264 real_dent = d_lookup(dent->d_parent, &nls_name);
265 /* If not, create it now. */
266 if (!real_dent) {
267 real_dent = d_alloc(dent->d_parent, &nls_name);
268 kfree(nls_name.name);
269 if (!real_dent) {
270 err = -ENOMEM;
271 goto err_out;
272 }
273 new_dent = d_splice_alias(dent_inode, real_dent);
274 if (new_dent)
275 dput(real_dent);
276 else
277 new_dent = real_dent;
278 ntfs_debug("Done. (Created new dentry.)");
279 return new_dent;
280 }
281 kfree(nls_name.name); 258 kfree(nls_name.name);
282 /* Matching dentry exists, check if it is negative. */ 259 return dent;
283 if (real_dent->d_inode) {
284 if (unlikely(real_dent->d_inode != dent_inode)) {
285 /* This can happen because bad inodes are unhashed. */
286 BUG_ON(!is_bad_inode(dent_inode));
287 BUG_ON(!is_bad_inode(real_dent->d_inode));
288 }
289 /*
290 * Already have the inode and the dentry attached, decrement
291 * the reference count to balance the ntfs_iget() we did
292 * earlier on. We found the dentry using d_lookup() so it
293 * cannot be disconnected and thus we do not need to worry
294 * about any NFS/disconnectedness issues here.
295 */
296 iput(dent_inode);
297 ntfs_debug("Done. (Already had inode and dentry.)");
298 return real_dent;
299 }
300 /*
301 * Negative dentry: instantiate it unless the inode is a directory and
302 * has a 'disconnected' dentry (i.e. IS_ROOT and DCACHE_DISCONNECTED),
303 * in which case d_move() that in place of the found dentry.
304 */
305 if (!S_ISDIR(dent_inode->i_mode)) {
306 /* Not a directory; everything is easy. */
307 d_instantiate(real_dent, dent_inode);
308 ntfs_debug("Done. (Already had negative file dentry.)");
309 return real_dent;
310 }
311 spin_lock(&dcache_lock);
312 if (list_empty(&dent_inode->i_dentry)) {
313 /*
314 * Directory without a 'disconnected' dentry; we need to do
315 * d_instantiate() by hand because it takes dcache_lock which
316 * we already hold.
317 */
318 list_add(&real_dent->d_alias, &dent_inode->i_dentry);
319 real_dent->d_inode = dent_inode;
320 spin_unlock(&dcache_lock);
321 security_d_instantiate(real_dent, dent_inode);
322 ntfs_debug("Done. (Already had negative directory dentry.)");
323 return real_dent;
324 }
325 /*
326 * Directory with a 'disconnected' dentry; get a reference to the
327 * 'disconnected' dentry.
328 */
329 new_dent = list_entry(dent_inode->i_dentry.next, struct dentry,
330 d_alias);
331 dget_locked(new_dent);
332 spin_unlock(&dcache_lock);
333 /* Do security vodoo. */
334 security_d_instantiate(real_dent, dent_inode);
335 /* Move new_dent in place of real_dent. */
336 d_move(new_dent, real_dent);
337 /* Balance the ntfs_iget() we did above. */
338 iput(dent_inode);
339 /* Throw away real_dent. */
340 dput(real_dent);
341 /* Use new_dent as the actual dentry. */
342 ntfs_debug("Done. (Already had negative, disconnected directory "
343 "dentry.)");
344 return new_dent;
345 260
346eio_err_out: 261eio_err_out:
347 ntfs_error(vol->sb, "Illegal file name attribute. Run chkdsk."); 262 ntfs_error(vol->sb, "Illegal file name attribute. Run chkdsk.");
diff --git a/fs/ntfs/usnjrnl.h b/fs/ntfs/usnjrnl.h
index 3a8af75351e8..4087fbdac327 100644
--- a/fs/ntfs/usnjrnl.h
+++ b/fs/ntfs/usnjrnl.h
@@ -113,7 +113,7 @@ typedef struct {
113 * Reason flags (32-bit). Cumulative flags describing the change(s) to the 113 * Reason flags (32-bit). Cumulative flags describing the change(s) to the
114 * file since it was last opened. I think the names speak for themselves but 114 * file since it was last opened. I think the names speak for themselves but
115 * if you disagree check out the descriptions in the Linux NTFS project NTFS 115 * if you disagree check out the descriptions in the Linux NTFS project NTFS
116 * documentation: http://linux-ntfs.sourceforge.net/ntfs/files/usnjrnl.html 116 * documentation: http://www.linux-ntfs.org/
117 */ 117 */
118enum { 118enum {
119 USN_REASON_DATA_OVERWRITE = const_cpu_to_le32(0x00000001), 119 USN_REASON_DATA_OVERWRITE = const_cpu_to_le32(0x00000001),
@@ -145,7 +145,7 @@ typedef le32 USN_REASON_FLAGS;
145 * Source info flags (32-bit). Information about the source of the change(s) 145 * Source info flags (32-bit). Information about the source of the change(s)
146 * to the file. For detailed descriptions of what these mean, see the Linux 146 * to the file. For detailed descriptions of what these mean, see the Linux
147 * NTFS project NTFS documentation: 147 * NTFS project NTFS documentation:
148 * http://linux-ntfs.sourceforge.net/ntfs/files/usnjrnl.html 148 * http://www.linux-ntfs.org/
149 */ 149 */
150enum { 150enum {
151 USN_SOURCE_DATA_MANAGEMENT = const_cpu_to_le32(0x00000001), 151 USN_SOURCE_DATA_MANAGEMENT = const_cpu_to_le32(0x00000001),
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 506c24fb5078..a53da1466277 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -594,7 +594,7 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock,
594 goto bail; 594 goto bail;
595 } 595 }
596 596
597 if (!ocfs2_sparse_alloc(OCFS2_SB(inode->i_sb)) && !p_blkno) { 597 if (!ocfs2_sparse_alloc(OCFS2_SB(inode->i_sb)) && !p_blkno && create) {
598 ocfs2_error(inode->i_sb, 598 ocfs2_error(inode->i_sb,
599 "Inode %llu has a hole at block %llu\n", 599 "Inode %llu has a hole at block %llu\n",
600 (unsigned long long)OCFS2_I(inode)->ip_blkno, 600 (unsigned long long)OCFS2_I(inode)->ip_blkno,
diff --git a/fs/ocfs2/cluster/netdebug.c b/fs/ocfs2/cluster/netdebug.c
index d8bfa0eb41b2..52276c02f710 100644
--- a/fs/ocfs2/cluster/netdebug.c
+++ b/fs/ocfs2/cluster/netdebug.c
@@ -138,20 +138,20 @@ static int nst_seq_show(struct seq_file *seq, void *v)
138 " message id: %d\n" 138 " message id: %d\n"
139 " message type: %u\n" 139 " message type: %u\n"
140 " message key: 0x%08x\n" 140 " message key: 0x%08x\n"
141 " sock acquiry: %lu.%lu\n" 141 " sock acquiry: %lu.%ld\n"
142 " send start: %lu.%lu\n" 142 " send start: %lu.%ld\n"
143 " wait start: %lu.%lu\n", 143 " wait start: %lu.%ld\n",
144 nst, (unsigned long)nst->st_task->pid, 144 nst, (unsigned long)nst->st_task->pid,
145 (unsigned long)nst->st_task->tgid, 145 (unsigned long)nst->st_task->tgid,
146 nst->st_task->comm, nst->st_node, 146 nst->st_task->comm, nst->st_node,
147 nst->st_sc, nst->st_id, nst->st_msg_type, 147 nst->st_sc, nst->st_id, nst->st_msg_type,
148 nst->st_msg_key, 148 nst->st_msg_key,
149 nst->st_sock_time.tv_sec, 149 nst->st_sock_time.tv_sec,
150 (unsigned long)nst->st_sock_time.tv_usec, 150 (long)nst->st_sock_time.tv_usec,
151 nst->st_send_time.tv_sec, 151 nst->st_send_time.tv_sec,
152 (unsigned long)nst->st_send_time.tv_usec, 152 (long)nst->st_send_time.tv_usec,
153 nst->st_status_time.tv_sec, 153 nst->st_status_time.tv_sec,
154 nst->st_status_time.tv_usec); 154 (long)nst->st_status_time.tv_usec);
155 } 155 }
156 156
157 spin_unlock(&o2net_debug_lock); 157 spin_unlock(&o2net_debug_lock);
@@ -276,7 +276,7 @@ static void *sc_seq_next(struct seq_file *seq, void *v, loff_t *pos)
276 return sc; /* unused, just needs to be null when done */ 276 return sc; /* unused, just needs to be null when done */
277} 277}
278 278
279#define TV_SEC_USEC(TV) TV.tv_sec, (unsigned long)TV.tv_usec 279#define TV_SEC_USEC(TV) TV.tv_sec, (long)TV.tv_usec
280 280
281static int sc_seq_show(struct seq_file *seq, void *v) 281static int sc_seq_show(struct seq_file *seq, void *v)
282{ 282{
@@ -309,12 +309,12 @@ static int sc_seq_show(struct seq_file *seq, void *v)
309 " remote node: %s\n" 309 " remote node: %s\n"
310 " page off: %zu\n" 310 " page off: %zu\n"
311 " handshake ok: %u\n" 311 " handshake ok: %u\n"
312 " timer: %lu.%lu\n" 312 " timer: %lu.%ld\n"
313 " data ready: %lu.%lu\n" 313 " data ready: %lu.%ld\n"
314 " advance start: %lu.%lu\n" 314 " advance start: %lu.%ld\n"
315 " advance stop: %lu.%lu\n" 315 " advance stop: %lu.%ld\n"
316 " func start: %lu.%lu\n" 316 " func start: %lu.%ld\n"
317 " func stop: %lu.%lu\n" 317 " func stop: %lu.%ld\n"
318 " func key: %u\n" 318 " func key: %u\n"
319 " func type: %u\n", 319 " func type: %u\n",
320 sc, 320 sc,
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c
index a27d61581bd6..2bcf706d9dd3 100644
--- a/fs/ocfs2/cluster/tcp.c
+++ b/fs/ocfs2/cluster/tcp.c
@@ -143,8 +143,8 @@ static void o2net_sc_postpone_idle(struct o2net_sock_container *sc);
143static void o2net_sc_reset_idle_timer(struct o2net_sock_container *sc); 143static void o2net_sc_reset_idle_timer(struct o2net_sock_container *sc);
144 144
145#ifdef CONFIG_DEBUG_FS 145#ifdef CONFIG_DEBUG_FS
146void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype, 146static void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
147 u32 msgkey, struct task_struct *task, u8 node) 147 u32 msgkey, struct task_struct *task, u8 node)
148{ 148{
149 INIT_LIST_HEAD(&nst->st_net_debug_item); 149 INIT_LIST_HEAD(&nst->st_net_debug_item);
150 nst->st_task = task; 150 nst->st_task = task;
@@ -153,31 +153,61 @@ void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
153 nst->st_node = node; 153 nst->st_node = node;
154} 154}
155 155
156void o2net_set_nst_sock_time(struct o2net_send_tracking *nst) 156static void o2net_set_nst_sock_time(struct o2net_send_tracking *nst)
157{ 157{
158 do_gettimeofday(&nst->st_sock_time); 158 do_gettimeofday(&nst->st_sock_time);
159} 159}
160 160
161void o2net_set_nst_send_time(struct o2net_send_tracking *nst) 161static void o2net_set_nst_send_time(struct o2net_send_tracking *nst)
162{ 162{
163 do_gettimeofday(&nst->st_send_time); 163 do_gettimeofday(&nst->st_send_time);
164} 164}
165 165
166void o2net_set_nst_status_time(struct o2net_send_tracking *nst) 166static void o2net_set_nst_status_time(struct o2net_send_tracking *nst)
167{ 167{
168 do_gettimeofday(&nst->st_status_time); 168 do_gettimeofday(&nst->st_status_time);
169} 169}
170 170
171void o2net_set_nst_sock_container(struct o2net_send_tracking *nst, 171static void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
172 struct o2net_sock_container *sc) 172 struct o2net_sock_container *sc)
173{ 173{
174 nst->st_sc = sc; 174 nst->st_sc = sc;
175} 175}
176 176
177void o2net_set_nst_msg_id(struct o2net_send_tracking *nst, u32 msg_id) 177static void o2net_set_nst_msg_id(struct o2net_send_tracking *nst, u32 msg_id)
178{ 178{
179 nst->st_id = msg_id; 179 nst->st_id = msg_id;
180} 180}
181
182#else /* CONFIG_DEBUG_FS */
183
184static inline void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
185 u32 msgkey, struct task_struct *task, u8 node)
186{
187}
188
189static inline void o2net_set_nst_sock_time(struct o2net_send_tracking *nst)
190{
191}
192
193static inline void o2net_set_nst_send_time(struct o2net_send_tracking *nst)
194{
195}
196
197static inline void o2net_set_nst_status_time(struct o2net_send_tracking *nst)
198{
199}
200
201static inline void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
202 struct o2net_sock_container *sc)
203{
204}
205
206static inline void o2net_set_nst_msg_id(struct o2net_send_tracking *nst,
207 u32 msg_id)
208{
209}
210
181#endif /* CONFIG_DEBUG_FS */ 211#endif /* CONFIG_DEBUG_FS */
182 212
183static inline int o2net_reconnect_delay(void) 213static inline int o2net_reconnect_delay(void)
diff --git a/fs/ocfs2/cluster/tcp_internal.h b/fs/ocfs2/cluster/tcp_internal.h
index 18307ff81b77..8d58cfe410b1 100644
--- a/fs/ocfs2/cluster/tcp_internal.h
+++ b/fs/ocfs2/cluster/tcp_internal.h
@@ -224,42 +224,10 @@ struct o2net_send_tracking {
224 struct timeval st_send_time; 224 struct timeval st_send_time;
225 struct timeval st_status_time; 225 struct timeval st_status_time;
226}; 226};
227
228void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
229 u32 msgkey, struct task_struct *task, u8 node);
230void o2net_set_nst_sock_time(struct o2net_send_tracking *nst);
231void o2net_set_nst_send_time(struct o2net_send_tracking *nst);
232void o2net_set_nst_status_time(struct o2net_send_tracking *nst);
233void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
234 struct o2net_sock_container *sc);
235void o2net_set_nst_msg_id(struct o2net_send_tracking *nst, u32 msg_id);
236
237#else 227#else
238struct o2net_send_tracking { 228struct o2net_send_tracking {
239 u32 dummy; 229 u32 dummy;
240}; 230};
241
242static inline void o2net_init_nst(struct o2net_send_tracking *nst, u32 msgtype,
243 u32 msgkey, struct task_struct *task, u8 node)
244{
245}
246static inline void o2net_set_nst_sock_time(struct o2net_send_tracking *nst)
247{
248}
249static inline void o2net_set_nst_send_time(struct o2net_send_tracking *nst)
250{
251}
252static inline void o2net_set_nst_status_time(struct o2net_send_tracking *nst)
253{
254}
255static inline void o2net_set_nst_sock_container(struct o2net_send_tracking *nst,
256 struct o2net_sock_container *sc)
257{
258}
259static inline void o2net_set_nst_msg_id(struct o2net_send_tracking *nst,
260 u32 msg_id)
261{
262}
263#endif /* CONFIG_DEBUG_FS */ 231#endif /* CONFIG_DEBUG_FS */
264 232
265#endif /* O2CLUSTER_TCP_INTERNAL_H */ 233#endif /* O2CLUSTER_TCP_INTERNAL_H */
diff --git a/fs/ocfs2/dir.c b/fs/ocfs2/dir.c
index 8a1875848080..9cce563fd627 100644
--- a/fs/ocfs2/dir.c
+++ b/fs/ocfs2/dir.c
@@ -1300,7 +1300,6 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh,
1300 di->i_size = cpu_to_le64(sb->s_blocksize); 1300 di->i_size = cpu_to_le64(sb->s_blocksize);
1301 di->i_ctime = di->i_mtime = cpu_to_le64(dir->i_ctime.tv_sec); 1301 di->i_ctime = di->i_mtime = cpu_to_le64(dir->i_ctime.tv_sec);
1302 di->i_ctime_nsec = di->i_mtime_nsec = cpu_to_le32(dir->i_ctime.tv_nsec); 1302 di->i_ctime_nsec = di->i_mtime_nsec = cpu_to_le32(dir->i_ctime.tv_nsec);
1303 dir->i_blocks = ocfs2_inode_sector_count(dir);
1304 1303
1305 /* 1304 /*
1306 * This should never fail as our extent list is empty and all 1305 * This should never fail as our extent list is empty and all
@@ -1310,9 +1309,15 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh,
1310 NULL); 1309 NULL);
1311 if (ret) { 1310 if (ret) {
1312 mlog_errno(ret); 1311 mlog_errno(ret);
1313 goto out; 1312 goto out_commit;
1314 } 1313 }
1315 1314
1315 /*
1316 * Set i_blocks after the extent insert for the most up to
1317 * date ip_clusters value.
1318 */
1319 dir->i_blocks = ocfs2_inode_sector_count(dir);
1320
1316 ret = ocfs2_journal_dirty(handle, di_bh); 1321 ret = ocfs2_journal_dirty(handle, di_bh);
1317 if (ret) { 1322 if (ret) {
1318 mlog_errno(ret); 1323 mlog_errno(ret);
@@ -1336,7 +1341,7 @@ static int ocfs2_expand_inline_dir(struct inode *dir, struct buffer_head *di_bh,
1336 len, 0, NULL); 1341 len, 0, NULL);
1337 if (ret) { 1342 if (ret) {
1338 mlog_errno(ret); 1343 mlog_errno(ret);
1339 goto out; 1344 goto out_commit;
1340 } 1345 }
1341 } 1346 }
1342 1347
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c
index 7a37240f7a31..c47bc2a809c2 100644
--- a/fs/ocfs2/journal.c
+++ b/fs/ocfs2/journal.c
@@ -1418,13 +1418,13 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
1418{ 1418{
1419 unsigned int node_num; 1419 unsigned int node_num;
1420 int status, i; 1420 int status, i;
1421 u32 gen;
1421 struct buffer_head *bh = NULL; 1422 struct buffer_head *bh = NULL;
1422 struct ocfs2_dinode *di; 1423 struct ocfs2_dinode *di;
1423 1424
1424 /* This is called with the super block cluster lock, so we 1425 /* This is called with the super block cluster lock, so we
1425 * know that the slot map can't change underneath us. */ 1426 * know that the slot map can't change underneath us. */
1426 1427
1427 spin_lock(&osb->osb_lock);
1428 for (i = 0; i < osb->max_slots; i++) { 1428 for (i = 0; i < osb->max_slots; i++) {
1429 /* Read journal inode to get the recovery generation */ 1429 /* Read journal inode to get the recovery generation */
1430 status = ocfs2_read_journal_inode(osb, i, &bh, NULL); 1430 status = ocfs2_read_journal_inode(osb, i, &bh, NULL);
@@ -1433,23 +1433,31 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
1433 goto bail; 1433 goto bail;
1434 } 1434 }
1435 di = (struct ocfs2_dinode *)bh->b_data; 1435 di = (struct ocfs2_dinode *)bh->b_data;
1436 osb->slot_recovery_generations[i] = 1436 gen = ocfs2_get_recovery_generation(di);
1437 ocfs2_get_recovery_generation(di);
1438 brelse(bh); 1437 brelse(bh);
1439 bh = NULL; 1438 bh = NULL;
1440 1439
1440 spin_lock(&osb->osb_lock);
1441 osb->slot_recovery_generations[i] = gen;
1442
1441 mlog(0, "Slot %u recovery generation is %u\n", i, 1443 mlog(0, "Slot %u recovery generation is %u\n", i,
1442 osb->slot_recovery_generations[i]); 1444 osb->slot_recovery_generations[i]);
1443 1445
1444 if (i == osb->slot_num) 1446 if (i == osb->slot_num) {
1447 spin_unlock(&osb->osb_lock);
1445 continue; 1448 continue;
1449 }
1446 1450
1447 status = ocfs2_slot_to_node_num_locked(osb, i, &node_num); 1451 status = ocfs2_slot_to_node_num_locked(osb, i, &node_num);
1448 if (status == -ENOENT) 1452 if (status == -ENOENT) {
1453 spin_unlock(&osb->osb_lock);
1449 continue; 1454 continue;
1455 }
1450 1456
1451 if (__ocfs2_recovery_map_test(osb, node_num)) 1457 if (__ocfs2_recovery_map_test(osb, node_num)) {
1458 spin_unlock(&osb->osb_lock);
1452 continue; 1459 continue;
1460 }
1453 spin_unlock(&osb->osb_lock); 1461 spin_unlock(&osb->osb_lock);
1454 1462
1455 /* Ok, we have a slot occupied by another node which 1463 /* Ok, we have a slot occupied by another node which
@@ -1465,10 +1473,7 @@ int ocfs2_mark_dead_nodes(struct ocfs2_super *osb)
1465 mlog_errno(status); 1473 mlog_errno(status);
1466 goto bail; 1474 goto bail;
1467 } 1475 }
1468
1469 spin_lock(&osb->osb_lock);
1470 } 1476 }
1471 spin_unlock(&osb->osb_lock);
1472 1477
1473 status = 0; 1478 status = 0;
1474bail: 1479bail:
diff --git a/fs/ocfs2/stackglue.c b/fs/ocfs2/stackglue.c
index 10e149ae5e3a..07f348b8d721 100644
--- a/fs/ocfs2/stackglue.c
+++ b/fs/ocfs2/stackglue.c
@@ -97,13 +97,14 @@ static int ocfs2_stack_driver_request(const char *stack_name,
97 goto out; 97 goto out;
98 } 98 }
99 99
100 /* Ok, the stack is pinned */
101 p->sp_count++;
102 active_stack = p; 100 active_stack = p;
103
104 rc = 0; 101 rc = 0;
105 102
106out: 103out:
104 /* If we found it, pin it */
105 if (!rc)
106 active_stack->sp_count++;
107
107 spin_unlock(&ocfs2_stack_lock); 108 spin_unlock(&ocfs2_stack_lock);
108 return rc; 109 return rc;
109} 110}
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index 7d6b34e201db..ecc3330972e5 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -499,9 +499,9 @@ int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
499 if (!size) 499 if (!size)
500 continue; 500 continue;
501 if (from + size > get_capacity(disk)) { 501 if (from + size > get_capacity(disk)) {
502 printk(KERN_ERR " %s: p%d exceeds device capacity\n", 502 printk(KERN_WARNING
503 "%s: p%d exceeds device capacity\n",
503 disk->disk_name, p); 504 disk->disk_name, p);
504 continue;
505 } 505 }
506 res = add_partition(disk, p, from, size, state->parts[p].flags); 506 res = add_partition(disk, p, from, size, state->parts[p].flags);
507 if (res) { 507 if (res) {
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 0d6eb33597c6..71c9be59c9c2 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -337,65 +337,6 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
337 return 0; 337 return 0;
338} 338}
339 339
340/*
341 * Use precise platform statistics if available:
342 */
343#ifdef CONFIG_VIRT_CPU_ACCOUNTING
344static cputime_t task_utime(struct task_struct *p)
345{
346 return p->utime;
347}
348
349static cputime_t task_stime(struct task_struct *p)
350{
351 return p->stime;
352}
353#else
354static cputime_t task_utime(struct task_struct *p)
355{
356 clock_t utime = cputime_to_clock_t(p->utime),
357 total = utime + cputime_to_clock_t(p->stime);
358 u64 temp;
359
360 /*
361 * Use CFS's precise accounting:
362 */
363 temp = (u64)nsec_to_clock_t(p->se.sum_exec_runtime);
364
365 if (total) {
366 temp *= utime;
367 do_div(temp, total);
368 }
369 utime = (clock_t)temp;
370
371 p->prev_utime = max(p->prev_utime, clock_t_to_cputime(utime));
372 return p->prev_utime;
373}
374
375static cputime_t task_stime(struct task_struct *p)
376{
377 clock_t stime;
378
379 /*
380 * Use CFS's precise accounting. (we subtract utime from
381 * the total, to make sure the total observed by userspace
382 * grows monotonically - apps rely on that):
383 */
384 stime = nsec_to_clock_t(p->se.sum_exec_runtime) -
385 cputime_to_clock_t(task_utime(p));
386
387 if (stime >= 0)
388 p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime));
389
390 return p->prev_stime;
391}
392#endif
393
394static cputime_t task_gtime(struct task_struct *p)
395{
396 return p->gtime;
397}
398
399static int do_task_stat(struct seq_file *m, struct pid_namespace *ns, 340static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
400 struct pid *pid, struct task_struct *task, int whole) 341 struct pid *pid, struct task_struct *task, int whole)
401{ 342{
diff --git a/fs/proc/generic.c b/fs/proc/generic.c
index 4fb81e9c94e3..7821589a17d5 100644
--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -330,6 +330,7 @@ retry:
330 spin_lock(&proc_inum_lock); 330 spin_lock(&proc_inum_lock);
331 ida_remove(&proc_inum_ida, i); 331 ida_remove(&proc_inum_ida, i);
332 spin_unlock(&proc_inum_lock); 332 spin_unlock(&proc_inum_lock);
333 return 0;
333 } 334 }
334 return PROC_DYNAMIC_FIRST + i; 335 return PROC_DYNAMIC_FIRST + i;
335} 336}
@@ -546,8 +547,8 @@ static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp
546 547
547 for (tmp = dir->subdir; tmp; tmp = tmp->next) 548 for (tmp = dir->subdir; tmp; tmp = tmp->next)
548 if (strcmp(tmp->name, dp->name) == 0) { 549 if (strcmp(tmp->name, dp->name) == 0) {
549 printk(KERN_WARNING "proc_dir_entry '%s' already " 550 printk(KERN_WARNING "proc_dir_entry '%s/%s' already registered\n",
550 "registered\n", dp->name); 551 dir->name, dp->name);
551 dump_stack(); 552 dump_stack();
552 break; 553 break;
553 } 554 }
diff --git a/fs/proc/proc_misc.c b/fs/proc/proc_misc.c
index ded969862960..29e20c6b1f7f 100644
--- a/fs/proc/proc_misc.c
+++ b/fs/proc/proc_misc.c
@@ -24,6 +24,7 @@
24#include <linux/tty.h> 24#include <linux/tty.h>
25#include <linux/string.h> 25#include <linux/string.h>
26#include <linux/mman.h> 26#include <linux/mman.h>
27#include <linux/quicklist.h>
27#include <linux/proc_fs.h> 28#include <linux/proc_fs.h>
28#include <linux/ioport.h> 29#include <linux/ioport.h>
29#include <linux/mm.h> 30#include <linux/mm.h>
@@ -182,6 +183,9 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
182 "SReclaimable: %8lu kB\n" 183 "SReclaimable: %8lu kB\n"
183 "SUnreclaim: %8lu kB\n" 184 "SUnreclaim: %8lu kB\n"
184 "PageTables: %8lu kB\n" 185 "PageTables: %8lu kB\n"
186#ifdef CONFIG_QUICKLIST
187 "Quicklists: %8lu kB\n"
188#endif
185 "NFS_Unstable: %8lu kB\n" 189 "NFS_Unstable: %8lu kB\n"
186 "Bounce: %8lu kB\n" 190 "Bounce: %8lu kB\n"
187 "WritebackTmp: %8lu kB\n" 191 "WritebackTmp: %8lu kB\n"
@@ -214,6 +218,9 @@ static int meminfo_read_proc(char *page, char **start, off_t off,
214 K(global_page_state(NR_SLAB_RECLAIMABLE)), 218 K(global_page_state(NR_SLAB_RECLAIMABLE)),
215 K(global_page_state(NR_SLAB_UNRECLAIMABLE)), 219 K(global_page_state(NR_SLAB_UNRECLAIMABLE)),
216 K(global_page_state(NR_PAGETABLE)), 220 K(global_page_state(NR_PAGETABLE)),
221#ifdef CONFIG_QUICKLIST
222 K(quicklist_total_size()),
223#endif
217 K(global_page_state(NR_UNSTABLE_NFS)), 224 K(global_page_state(NR_UNSTABLE_NFS)),
218 K(global_page_state(NR_BOUNCE)), 225 K(global_page_state(NR_BOUNCE)),
219 K(global_page_state(NR_WRITEBACK_TEMP)), 226 K(global_page_state(NR_WRITEBACK_TEMP)),
diff --git a/fs/readdir.c b/fs/readdir.c
index 4e026e5407fb..93a7559bbfd8 100644
--- a/fs/readdir.c
+++ b/fs/readdir.c
@@ -80,8 +80,10 @@ static int fillonedir(void * __buf, const char * name, int namlen, loff_t offset
80 if (buf->result) 80 if (buf->result)
81 return -EINVAL; 81 return -EINVAL;
82 d_ino = ino; 82 d_ino = ino;
83 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 83 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
84 buf->result = -EOVERFLOW;
84 return -EOVERFLOW; 85 return -EOVERFLOW;
86 }
85 buf->result++; 87 buf->result++;
86 dirent = buf->dirent; 88 dirent = buf->dirent;
87 if (!access_ok(VERIFY_WRITE, dirent, 89 if (!access_ok(VERIFY_WRITE, dirent,
@@ -155,8 +157,10 @@ static int filldir(void * __buf, const char * name, int namlen, loff_t offset,
155 if (reclen > buf->count) 157 if (reclen > buf->count)
156 return -EINVAL; 158 return -EINVAL;
157 d_ino = ino; 159 d_ino = ino;
158 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) 160 if (sizeof(d_ino) < sizeof(ino) && d_ino != ino) {
161 buf->error = -EOVERFLOW;
159 return -EOVERFLOW; 162 return -EOVERFLOW;
163 }
160 dirent = buf->previous; 164 dirent = buf->previous;
161 if (dirent) { 165 if (dirent) {
162 if (__put_user(offset, &dirent->d_off)) 166 if (__put_user(offset, &dirent->d_off))
diff --git a/fs/seq_file.c b/fs/seq_file.c
index 5d54205e486b..bd20f7f5a933 100644
--- a/fs/seq_file.c
+++ b/fs/seq_file.c
@@ -108,9 +108,9 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
108 goto Done; 108 goto Done;
109 } 109 }
110 /* we need at least one record in buffer */ 110 /* we need at least one record in buffer */
111 pos = m->index;
112 p = m->op->start(m, &pos);
111 while (1) { 113 while (1) {
112 pos = m->index;
113 p = m->op->start(m, &pos);
114 err = PTR_ERR(p); 114 err = PTR_ERR(p);
115 if (!p || IS_ERR(p)) 115 if (!p || IS_ERR(p))
116 break; 116 break;
@@ -119,6 +119,11 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
119 break; 119 break;
120 if (unlikely(err)) 120 if (unlikely(err))
121 m->count = 0; 121 m->count = 0;
122 if (unlikely(!m->count)) {
123 p = m->op->next(m, p, &pos);
124 m->index = pos;
125 continue;
126 }
122 if (m->count < m->size) 127 if (m->count < m->size)
123 goto Fill; 128 goto Fill;
124 m->op->stop(m, p); 129 m->op->stop(m, p);
@@ -128,6 +133,8 @@ ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
128 goto Enomem; 133 goto Enomem;
129 m->count = 0; 134 m->count = 0;
130 m->version = 0; 135 m->version = 0;
136 pos = m->index;
137 p = m->op->start(m, &pos);
131 } 138 }
132 m->op->stop(m, p); 139 m->op->stop(m, p);
133 m->count = 0; 140 m->count = 0;
diff --git a/fs/ubifs/budget.c b/fs/ubifs/budget.c
index 154098157473..73db464cd08b 100644
--- a/fs/ubifs/budget.c
+++ b/fs/ubifs/budget.c
@@ -302,18 +302,6 @@ long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs)
302 int subtract_lebs; 302 int subtract_lebs;
303 long long available; 303 long long available;
304 304
305 /*
306 * Force the amount available to the total size reported if the used
307 * space is zero.
308 */
309 if (c->lst.total_used <= UBIFS_INO_NODE_SZ &&
310 c->budg_data_growth + c->budg_dd_growth == 0) {
311 /* Do the same calculation as for c->block_cnt */
312 available = c->main_lebs - 2;
313 available *= c->leb_size - c->dark_wm;
314 return available;
315 }
316
317 available = c->main_bytes - c->lst.total_used; 305 available = c->main_bytes - c->lst.total_used;
318 306
319 /* 307 /*
@@ -714,34 +702,106 @@ void ubifs_release_dirty_inode_budget(struct ubifs_info *c,
714} 702}
715 703
716/** 704/**
717 * ubifs_budg_get_free_space - return amount of free space. 705 * ubifs_reported_space - calculate reported free space.
706 * @c: the UBIFS file-system description object
707 * @free: amount of free space
708 *
709 * This function calculates amount of free space which will be reported to
710 * user-space. User-space application tend to expect that if the file-system
711 * (e.g., via the 'statfs()' call) reports that it has N bytes available, they
712 * are able to write a file of size N. UBIFS attaches node headers to each data
713 * node and it has to write indexind nodes as well. This introduces additional
714 * overhead, and UBIFS it has to report sligtly less free space to meet the
715 * above expectetion.
716 *
717 * This function assumes free space is made up of uncompressed data nodes and
718 * full index nodes (one per data node, tripled because we always allow enough
719 * space to write the index thrice).
720 *
721 * Note, the calculation is pessimistic, which means that most of the time
722 * UBIFS reports less space than it actually has.
723 */
724long long ubifs_reported_space(const struct ubifs_info *c, uint64_t free)
725{
726 int divisor, factor, f;
727
728 /*
729 * Reported space size is @free * X, where X is UBIFS block size
730 * divided by UBIFS block size + all overhead one data block
731 * introduces. The overhead is the node header + indexing overhead.
732 *
733 * Indexing overhead calculations are based on the following formula:
734 * I = N/(f - 1) + 1, where I - number of indexing nodes, N - number
735 * of data nodes, f - fanout. Because effective UBIFS fanout is twice
736 * as less than maximum fanout, we assume that each data node
737 * introduces 3 * @c->max_idx_node_sz / (@c->fanout/2 - 1) bytes.
738 * Note, the multiplier 3 is because UBIFS reseves thrice as more space
739 * for the index.
740 */
741 f = c->fanout > 3 ? c->fanout >> 1 : 2;
742 factor = UBIFS_BLOCK_SIZE;
743 divisor = UBIFS_MAX_DATA_NODE_SZ;
744 divisor += (c->max_idx_node_sz * 3) / (f - 1);
745 free *= factor;
746 do_div(free, divisor);
747 return free;
748}
749
750/**
751 * ubifs_get_free_space - return amount of free space.
718 * @c: UBIFS file-system description object 752 * @c: UBIFS file-system description object
719 * 753 *
720 * This function returns amount of free space on the file-system. 754 * This function calculates amount of free space to report to user-space.
755 *
756 * Because UBIFS may introduce substantial overhead (the index, node headers,
757 * alighment, wastage at the end of eraseblocks, etc), it cannot report real
758 * amount of free flash space it has (well, because not all dirty space is
759 * reclamable, UBIFS does not actually know the real amount). If UBIFS did so,
760 * it would bread user expectetion about what free space is. Users seem to
761 * accustomed to assume that if the file-system reports N bytes of free space,
762 * they would be able to fit a file of N bytes to the FS. This almost works for
763 * traditional file-systems, because they have way less overhead than UBIFS.
764 * So, to keep users happy, UBIFS tries to take the overhead into account.
721 */ 765 */
722long long ubifs_budg_get_free_space(struct ubifs_info *c) 766long long ubifs_get_free_space(struct ubifs_info *c)
723{ 767{
724 int min_idx_lebs, rsvd_idx_lebs; 768 int min_idx_lebs, rsvd_idx_lebs, lebs;
725 long long available, outstanding, free; 769 long long available, outstanding, free;
726 770
727 /* Do exactly the same calculations as in 'do_budget_space()' */
728 spin_lock(&c->space_lock); 771 spin_lock(&c->space_lock);
729 min_idx_lebs = ubifs_calc_min_idx_lebs(c); 772 min_idx_lebs = ubifs_calc_min_idx_lebs(c);
773 outstanding = c->budg_data_growth + c->budg_dd_growth;
730 774
731 if (min_idx_lebs > c->lst.idx_lebs) 775 /*
732 rsvd_idx_lebs = min_idx_lebs - c->lst.idx_lebs; 776 * Force the amount available to the total size reported if the used
733 else 777 * space is zero.
734 rsvd_idx_lebs = 0; 778 */
735 779 if (c->lst.total_used <= UBIFS_INO_NODE_SZ && !outstanding) {
736 if (rsvd_idx_lebs > c->lst.empty_lebs + c->freeable_cnt + c->idx_gc_cnt
737 - c->lst.taken_empty_lebs) {
738 spin_unlock(&c->space_lock); 780 spin_unlock(&c->space_lock);
739 return 0; 781 return (long long)c->block_cnt << UBIFS_BLOCK_SHIFT;
740 } 782 }
741 783
742 available = ubifs_calc_available(c, min_idx_lebs); 784 available = ubifs_calc_available(c, min_idx_lebs);
743 outstanding = c->budg_data_growth + c->budg_dd_growth; 785
744 c->min_idx_lebs = min_idx_lebs; 786 /*
787 * When reporting free space to user-space, UBIFS guarantees that it is
788 * possible to write a file of free space size. This means that for
789 * empty LEBs we may use more precise calculations than
790 * 'ubifs_calc_available()' is using. Namely, we know that in empty
791 * LEBs we would waste only @c->leb_overhead bytes, not @c->dark_wm.
792 * Thus, amend the available space.
793 *
794 * Note, the calculations below are similar to what we have in
795 * 'do_budget_space()', so refer there for comments.
796 */
797 if (min_idx_lebs > c->lst.idx_lebs)
798 rsvd_idx_lebs = min_idx_lebs - c->lst.idx_lebs;
799 else
800 rsvd_idx_lebs = 0;
801 lebs = c->lst.empty_lebs + c->freeable_cnt + c->idx_gc_cnt -
802 c->lst.taken_empty_lebs;
803 lebs -= rsvd_idx_lebs;
804 available += lebs * (c->dark_wm - c->leb_overhead);
745 spin_unlock(&c->space_lock); 805 spin_unlock(&c->space_lock);
746 806
747 if (available > outstanding) 807 if (available > outstanding)
diff --git a/fs/ubifs/dir.c b/fs/ubifs/dir.c
index 5c96f1fb7016..2b267c9a1806 100644
--- a/fs/ubifs/dir.c
+++ b/fs/ubifs/dir.c
@@ -587,7 +587,6 @@ static int ubifs_unlink(struct inode *dir, struct dentry *dentry)
587 if (err) { 587 if (err) {
588 if (err != -ENOSPC) 588 if (err != -ENOSPC)
589 return err; 589 return err;
590 err = 0;
591 budgeted = 0; 590 budgeted = 0;
592 } 591 }
593 592
diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
index 4071d1cae29f..3d698e2022b1 100644
--- a/fs/ubifs/file.c
+++ b/fs/ubifs/file.c
@@ -793,7 +793,7 @@ static int do_truncation(struct ubifs_info *c, struct inode *inode,
793 int err; 793 int err;
794 struct ubifs_budget_req req; 794 struct ubifs_budget_req req;
795 loff_t old_size = inode->i_size, new_size = attr->ia_size; 795 loff_t old_size = inode->i_size, new_size = attr->ia_size;
796 int offset = new_size & (UBIFS_BLOCK_SIZE - 1); 796 int offset = new_size & (UBIFS_BLOCK_SIZE - 1), budgeted = 1;
797 struct ubifs_inode *ui = ubifs_inode(inode); 797 struct ubifs_inode *ui = ubifs_inode(inode);
798 798
799 dbg_gen("ino %lu, size %lld -> %lld", inode->i_ino, old_size, new_size); 799 dbg_gen("ino %lu, size %lld -> %lld", inode->i_ino, old_size, new_size);
@@ -811,8 +811,15 @@ static int do_truncation(struct ubifs_info *c, struct inode *inode,
811 /* A funny way to budget for truncation node */ 811 /* A funny way to budget for truncation node */
812 req.dirtied_ino_d = UBIFS_TRUN_NODE_SZ; 812 req.dirtied_ino_d = UBIFS_TRUN_NODE_SZ;
813 err = ubifs_budget_space(c, &req); 813 err = ubifs_budget_space(c, &req);
814 if (err) 814 if (err) {
815 return err; 815 /*
816 * Treat truncations to zero as deletion and always allow them,
817 * just like we do for '->unlink()'.
818 */
819 if (new_size || err != -ENOSPC)
820 return err;
821 budgeted = 0;
822 }
816 823
817 err = vmtruncate(inode, new_size); 824 err = vmtruncate(inode, new_size);
818 if (err) 825 if (err)
@@ -869,7 +876,12 @@ static int do_truncation(struct ubifs_info *c, struct inode *inode,
869 err = ubifs_jnl_truncate(c, inode, old_size, new_size); 876 err = ubifs_jnl_truncate(c, inode, old_size, new_size);
870 mutex_unlock(&ui->ui_mutex); 877 mutex_unlock(&ui->ui_mutex);
871out_budg: 878out_budg:
872 ubifs_release_budget(c, &req); 879 if (budgeted)
880 ubifs_release_budget(c, &req);
881 else {
882 c->nospace = c->nospace_rp = 0;
883 smp_wmb();
884 }
873 return err; 885 return err;
874} 886}
875 887
diff --git a/fs/ubifs/find.c b/fs/ubifs/find.c
index adee7b5ddeab..e045c8b55423 100644
--- a/fs/ubifs/find.c
+++ b/fs/ubifs/find.c
@@ -211,14 +211,8 @@ static const struct ubifs_lprops *scan_for_dirty(struct ubifs_info *c,
211 * dirty index heap, and it falls-back to LPT scanning if the heaps are empty 211 * dirty index heap, and it falls-back to LPT scanning if the heaps are empty
212 * or do not have an LEB which satisfies the @min_space criteria. 212 * or do not have an LEB which satisfies the @min_space criteria.
213 * 213 *
214 * Note: 214 * Note, LEBs which have less than dead watermark of free + dirty space are
215 * o LEBs which have less than dead watermark of dirty space are never picked 215 * never picked by this function.
216 * by this function;
217 *
218 * Returns zero and the LEB properties of
219 * found dirty LEB in case of success, %-ENOSPC if no dirty LEB was found and a
220 * negative error code in case of other failures. The returned LEB is marked as
221 * "taken".
222 * 216 *
223 * The additional @pick_free argument controls if this function has to return a 217 * The additional @pick_free argument controls if this function has to return a
224 * free or freeable LEB if one is present. For example, GC must to set it to %1, 218 * free or freeable LEB if one is present. For example, GC must to set it to %1,
@@ -231,6 +225,10 @@ static const struct ubifs_lprops *scan_for_dirty(struct ubifs_info *c,
231 * 225 *
232 * In addition @pick_free is set to %2 by the recovery process in order to 226 * In addition @pick_free is set to %2 by the recovery process in order to
233 * recover gc_lnum in which case an index LEB must not be returned. 227 * recover gc_lnum in which case an index LEB must not be returned.
228 *
229 * This function returns zero and the LEB properties of found dirty LEB in case
230 * of success, %-ENOSPC if no dirty LEB was found and a negative error code in
231 * case of other failures. The returned LEB is marked as "taken".
234 */ 232 */
235int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp, 233int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
236 int min_space, int pick_free) 234 int min_space, int pick_free)
@@ -245,7 +243,7 @@ int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
245 int lebs, rsvd_idx_lebs = 0; 243 int lebs, rsvd_idx_lebs = 0;
246 244
247 spin_lock(&c->space_lock); 245 spin_lock(&c->space_lock);
248 lebs = c->lst.empty_lebs; 246 lebs = c->lst.empty_lebs + c->idx_gc_cnt;
249 lebs += c->freeable_cnt - c->lst.taken_empty_lebs; 247 lebs += c->freeable_cnt - c->lst.taken_empty_lebs;
250 248
251 /* 249 /*
@@ -317,7 +315,7 @@ int ubifs_find_dirty_leb(struct ubifs_info *c, struct ubifs_lprops *ret_lp,
317 lp = idx_lp; 315 lp = idx_lp;
318 316
319 if (lp) { 317 if (lp) {
320 ubifs_assert(lp->dirty >= c->dead_wm); 318 ubifs_assert(lp->free + lp->dirty >= c->dead_wm);
321 goto found; 319 goto found;
322 } 320 }
323 321
diff --git a/fs/ubifs/gc.c b/fs/ubifs/gc.c
index d0f3dac29081..13f1019c859f 100644
--- a/fs/ubifs/gc.c
+++ b/fs/ubifs/gc.c
@@ -344,6 +344,12 @@ int ubifs_garbage_collect_leb(struct ubifs_info *c, struct ubifs_lprops *lp)
344 if (err) 344 if (err)
345 goto out; 345 goto out;
346 346
347 /* Allow for races with TNC */
348 c->gced_lnum = lnum;
349 smp_wmb();
350 c->gc_seq += 1;
351 smp_wmb();
352
347 if (c->gc_lnum == -1) { 353 if (c->gc_lnum == -1) {
348 c->gc_lnum = lnum; 354 c->gc_lnum = lnum;
349 err = LEB_RETAINED; 355 err = LEB_RETAINED;
diff --git a/fs/ubifs/misc.h b/fs/ubifs/misc.h
index 87dabf9fe742..4c12a9215d7f 100644
--- a/fs/ubifs/misc.h
+++ b/fs/ubifs/misc.h
@@ -284,38 +284,6 @@ static inline void *ubifs_idx_key(const struct ubifs_info *c,
284} 284}
285 285
286/** 286/**
287 * ubifs_reported_space - calculate reported free space.
288 * @c: the UBIFS file-system description object
289 * @free: amount of free space
290 *
291 * This function calculates amount of free space which will be reported to
292 * user-space. User-space application tend to expect that if the file-system
293 * (e.g., via the 'statfs()' call) reports that it has N bytes available, they
294 * are able to write a file of size N. UBIFS attaches node headers to each data
295 * node and it has to write indexind nodes as well. This introduces additional
296 * overhead, and UBIFS it has to report sligtly less free space to meet the
297 * above expectetion.
298 *
299 * This function assumes free space is made up of uncompressed data nodes and
300 * full index nodes (one per data node, doubled because we always allow enough
301 * space to write the index twice).
302 *
303 * Note, the calculation is pessimistic, which means that most of the time
304 * UBIFS reports less space than it actually has.
305 */
306static inline long long ubifs_reported_space(const struct ubifs_info *c,
307 uint64_t free)
308{
309 int divisor, factor;
310
311 divisor = UBIFS_MAX_DATA_NODE_SZ + (c->max_idx_node_sz * 3);
312 factor = UBIFS_MAX_DATA_NODE_SZ - UBIFS_DATA_NODE_SZ;
313 do_div(free, divisor);
314
315 return free * factor;
316}
317
318/**
319 * ubifs_current_time - round current time to time granularity. 287 * ubifs_current_time - round current time to time granularity.
320 * @inode: inode 288 * @inode: inode
321 */ 289 */
@@ -325,4 +293,21 @@ static inline struct timespec ubifs_current_time(struct inode *inode)
325 current_fs_time(inode->i_sb) : CURRENT_TIME_SEC; 293 current_fs_time(inode->i_sb) : CURRENT_TIME_SEC;
326} 294}
327 295
296/**
297 * ubifs_tnc_lookup - look up a file-system node.
298 * @c: UBIFS file-system description object
299 * @key: node key to lookup
300 * @node: the node is returned here
301 *
302 * This function look up and reads node with key @key. The caller has to make
303 * sure the @node buffer is large enough to fit the node. Returns zero in case
304 * of success, %-ENOENT if the node was not found, and a negative error code in
305 * case of failure.
306 */
307static inline int ubifs_tnc_lookup(struct ubifs_info *c,
308 const union ubifs_key *key, void *node)
309{
310 return ubifs_tnc_locate(c, key, node, NULL, NULL);
311}
312
328#endif /* __UBIFS_MISC_H__ */ 313#endif /* __UBIFS_MISC_H__ */
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
index f71e6b8822c4..7562464ac83f 100644
--- a/fs/ubifs/super.c
+++ b/fs/ubifs/super.c
@@ -370,8 +370,9 @@ static int ubifs_statfs(struct dentry *dentry, struct kstatfs *buf)
370{ 370{
371 struct ubifs_info *c = dentry->d_sb->s_fs_info; 371 struct ubifs_info *c = dentry->d_sb->s_fs_info;
372 unsigned long long free; 372 unsigned long long free;
373 __le32 *uuid = (__le32 *)c->uuid;
373 374
374 free = ubifs_budg_get_free_space(c); 375 free = ubifs_get_free_space(c);
375 dbg_gen("free space %lld bytes (%lld blocks)", 376 dbg_gen("free space %lld bytes (%lld blocks)",
376 free, free >> UBIFS_BLOCK_SHIFT); 377 free, free >> UBIFS_BLOCK_SHIFT);
377 378
@@ -386,7 +387,8 @@ static int ubifs_statfs(struct dentry *dentry, struct kstatfs *buf)
386 buf->f_files = 0; 387 buf->f_files = 0;
387 buf->f_ffree = 0; 388 buf->f_ffree = 0;
388 buf->f_namelen = UBIFS_MAX_NLEN; 389 buf->f_namelen = UBIFS_MAX_NLEN;
389 390 buf->f_fsid.val[0] = le32_to_cpu(uuid[0]) ^ le32_to_cpu(uuid[2]);
391 buf->f_fsid.val[1] = le32_to_cpu(uuid[1]) ^ le32_to_cpu(uuid[3]);
390 return 0; 392 return 0;
391} 393}
392 394
@@ -530,6 +532,12 @@ static int init_constants_early(struct ubifs_info *c)
530 c->dead_wm = ALIGN(MIN_WRITE_SZ, c->min_io_size); 532 c->dead_wm = ALIGN(MIN_WRITE_SZ, c->min_io_size);
531 c->dark_wm = ALIGN(UBIFS_MAX_NODE_SZ, c->min_io_size); 533 c->dark_wm = ALIGN(UBIFS_MAX_NODE_SZ, c->min_io_size);
532 534
535 /*
536 * Calculate how many bytes would be wasted at the end of LEB if it was
537 * fully filled with data nodes of maximum size. This is used in
538 * calculations when reporting free space.
539 */
540 c->leb_overhead = c->leb_size % UBIFS_MAX_DATA_NODE_SZ;
533 return 0; 541 return 0;
534} 542}
535 543
@@ -647,13 +655,11 @@ static int init_constants_late(struct ubifs_info *c)
647 * internally because it does not make much sense for UBIFS, but it is 655 * internally because it does not make much sense for UBIFS, but it is
648 * necessary to report something for the 'statfs()' call. 656 * necessary to report something for the 'statfs()' call.
649 * 657 *
650 * Subtract the LEB reserved for GC and the LEB which is reserved for 658 * Subtract the LEB reserved for GC, the LEB which is reserved for
651 * deletions. 659 * deletions, and assume only one journal head is available.
652 *
653 * Review 'ubifs_calc_available()' if changing this calculation.
654 */ 660 */
655 tmp64 = c->main_lebs - 2; 661 tmp64 = c->main_lebs - 2 - c->jhead_cnt + 1;
656 tmp64 *= (uint64_t)c->leb_size - c->dark_wm; 662 tmp64 *= (uint64_t)c->leb_size - c->leb_overhead;
657 tmp64 = ubifs_reported_space(c, tmp64); 663 tmp64 = ubifs_reported_space(c, tmp64);
658 c->block_cnt = tmp64 >> UBIFS_BLOCK_SHIFT; 664 c->block_cnt = tmp64 >> UBIFS_BLOCK_SHIFT;
659 665
diff --git a/fs/ubifs/tnc.c b/fs/ubifs/tnc.c
index e909f4a96443..7da209ab9378 100644
--- a/fs/ubifs/tnc.c
+++ b/fs/ubifs/tnc.c
@@ -506,7 +506,7 @@ static int fallible_read_node(struct ubifs_info *c, const union ubifs_key *key,
506 if (keys_cmp(c, key, &node_key) != 0) 506 if (keys_cmp(c, key, &node_key) != 0)
507 ret = 0; 507 ret = 0;
508 } 508 }
509 if (ret == 0) 509 if (ret == 0 && c->replaying)
510 dbg_mnt("dangling branch LEB %d:%d len %d, key %s", 510 dbg_mnt("dangling branch LEB %d:%d len %d, key %s",
511 zbr->lnum, zbr->offs, zbr->len, DBGKEY(key)); 511 zbr->lnum, zbr->offs, zbr->len, DBGKEY(key));
512 return ret; 512 return ret;
@@ -1382,50 +1382,39 @@ static int lookup_level0_dirty(struct ubifs_info *c, const union ubifs_key *key,
1382} 1382}
1383 1383
1384/** 1384/**
1385 * ubifs_tnc_lookup - look up a file-system node. 1385 * maybe_leb_gced - determine if a LEB may have been garbage collected.
1386 * @c: UBIFS file-system description object 1386 * @c: UBIFS file-system description object
1387 * @key: node key to lookup 1387 * @lnum: LEB number
1388 * @node: the node is returned here 1388 * @gc_seq1: garbage collection sequence number
1389 * 1389 *
1390 * This function look up and reads node with key @key. The caller has to make 1390 * This function determines if @lnum may have been garbage collected since
1391 * sure the @node buffer is large enough to fit the node. Returns zero in case 1391 * sequence number @gc_seq1. If it may have been then %1 is returned, otherwise
1392 * of success, %-ENOENT if the node was not found, and a negative error code in 1392 * %0 is returned.
1393 * case of failure.
1394 */ 1393 */
1395int ubifs_tnc_lookup(struct ubifs_info *c, const union ubifs_key *key, 1394static int maybe_leb_gced(struct ubifs_info *c, int lnum, int gc_seq1)
1396 void *node)
1397{ 1395{
1398 int found, n, err; 1396 int gc_seq2, gced_lnum;
1399 struct ubifs_znode *znode;
1400 struct ubifs_zbranch zbr, *zt;
1401 1397
1402 mutex_lock(&c->tnc_mutex); 1398 gced_lnum = c->gced_lnum;
1403 found = ubifs_lookup_level0(c, key, &znode, &n); 1399 smp_rmb();
1404 if (!found) { 1400 gc_seq2 = c->gc_seq;
1405 err = -ENOENT; 1401 /* Same seq means no GC */
1406 goto out; 1402 if (gc_seq1 == gc_seq2)
1407 } else if (found < 0) { 1403 return 0;
1408 err = found; 1404 /* Different by more than 1 means we don't know */
1409 goto out; 1405 if (gc_seq1 + 1 != gc_seq2)
1410 } 1406 return 1;
1411 zt = &znode->zbranch[n]; 1407 /*
1412 if (is_hash_key(c, key)) { 1408 * We have seen the sequence number has increased by 1. Now we need to
1413 /* 1409 * be sure we read the right LEB number, so read it again.
1414 * In this case the leaf node cache gets used, so we pass the 1410 */
1415 * address of the zbranch and keep the mutex locked 1411 smp_rmb();
1416 */ 1412 if (gced_lnum != c->gced_lnum)
1417 err = tnc_read_node_nm(c, zt, node); 1413 return 1;
1418 goto out; 1414 /* Finally we can check lnum */
1419 } 1415 if (gced_lnum == lnum)
1420 zbr = znode->zbranch[n]; 1416 return 1;
1421 mutex_unlock(&c->tnc_mutex); 1417 return 0;
1422
1423 err = ubifs_tnc_read_node(c, &zbr, node);
1424 return err;
1425
1426out:
1427 mutex_unlock(&c->tnc_mutex);
1428 return err;
1429} 1418}
1430 1419
1431/** 1420/**
@@ -1436,16 +1425,19 @@ out:
1436 * @lnum: LEB number is returned here 1425 * @lnum: LEB number is returned here
1437 * @offs: offset is returned here 1426 * @offs: offset is returned here
1438 * 1427 *
1439 * This function is the same as 'ubifs_tnc_lookup()' but it returns the node 1428 * This function look up and reads node with key @key. The caller has to make
1440 * location also. See 'ubifs_tnc_lookup()'. 1429 * sure the @node buffer is large enough to fit the node. Returns zero in case
1430 * of success, %-ENOENT if the node was not found, and a negative error code in
1431 * case of failure. The node location can be returned in @lnum and @offs.
1441 */ 1432 */
1442int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key, 1433int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
1443 void *node, int *lnum, int *offs) 1434 void *node, int *lnum, int *offs)
1444{ 1435{
1445 int found, n, err; 1436 int found, n, err, safely = 0, gc_seq1;
1446 struct ubifs_znode *znode; 1437 struct ubifs_znode *znode;
1447 struct ubifs_zbranch zbr, *zt; 1438 struct ubifs_zbranch zbr, *zt;
1448 1439
1440again:
1449 mutex_lock(&c->tnc_mutex); 1441 mutex_lock(&c->tnc_mutex);
1450 found = ubifs_lookup_level0(c, key, &znode, &n); 1442 found = ubifs_lookup_level0(c, key, &znode, &n);
1451 if (!found) { 1443 if (!found) {
@@ -1456,24 +1448,43 @@ int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
1456 goto out; 1448 goto out;
1457 } 1449 }
1458 zt = &znode->zbranch[n]; 1450 zt = &znode->zbranch[n];
1451 if (lnum) {
1452 *lnum = zt->lnum;
1453 *offs = zt->offs;
1454 }
1459 if (is_hash_key(c, key)) { 1455 if (is_hash_key(c, key)) {
1460 /* 1456 /*
1461 * In this case the leaf node cache gets used, so we pass the 1457 * In this case the leaf node cache gets used, so we pass the
1462 * address of the zbranch and keep the mutex locked 1458 * address of the zbranch and keep the mutex locked
1463 */ 1459 */
1464 *lnum = zt->lnum;
1465 *offs = zt->offs;
1466 err = tnc_read_node_nm(c, zt, node); 1460 err = tnc_read_node_nm(c, zt, node);
1467 goto out; 1461 goto out;
1468 } 1462 }
1463 if (safely) {
1464 err = ubifs_tnc_read_node(c, zt, node);
1465 goto out;
1466 }
1467 /* Drop the TNC mutex prematurely and race with garbage collection */
1469 zbr = znode->zbranch[n]; 1468 zbr = znode->zbranch[n];
1469 gc_seq1 = c->gc_seq;
1470 mutex_unlock(&c->tnc_mutex); 1470 mutex_unlock(&c->tnc_mutex);
1471 1471
1472 *lnum = zbr.lnum; 1472 if (ubifs_get_wbuf(c, zbr.lnum)) {
1473 *offs = zbr.offs; 1473 /* We do not GC journal heads */
1474 err = ubifs_tnc_read_node(c, &zbr, node);
1475 return err;
1476 }
1474 1477
1475 err = ubifs_tnc_read_node(c, &zbr, node); 1478 err = fallible_read_node(c, key, &zbr, node);
1476 return err; 1479 if (maybe_leb_gced(c, zbr.lnum, gc_seq1)) {
1480 /*
1481 * The node may have been GC'ed out from under us so try again
1482 * while keeping the TNC mutex locked.
1483 */
1484 safely = 1;
1485 goto again;
1486 }
1487 return 0;
1477 1488
1478out: 1489out:
1479 mutex_unlock(&c->tnc_mutex); 1490 mutex_unlock(&c->tnc_mutex);
@@ -1498,7 +1509,6 @@ static int do_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
1498{ 1509{
1499 int found, n, err; 1510 int found, n, err;
1500 struct ubifs_znode *znode; 1511 struct ubifs_znode *znode;
1501 struct ubifs_zbranch zbr;
1502 1512
1503 dbg_tnc("name '%.*s' key %s", nm->len, nm->name, DBGKEY(key)); 1513 dbg_tnc("name '%.*s' key %s", nm->len, nm->name, DBGKEY(key));
1504 mutex_lock(&c->tnc_mutex); 1514 mutex_lock(&c->tnc_mutex);
@@ -1522,11 +1532,7 @@ static int do_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
1522 goto out_unlock; 1532 goto out_unlock;
1523 } 1533 }
1524 1534
1525 zbr = znode->zbranch[n]; 1535 err = tnc_read_node_nm(c, &znode->zbranch[n], node);
1526 mutex_unlock(&c->tnc_mutex);
1527
1528 err = tnc_read_node_nm(c, &zbr, node);
1529 return err;
1530 1536
1531out_unlock: 1537out_unlock:
1532 mutex_unlock(&c->tnc_mutex); 1538 mutex_unlock(&c->tnc_mutex);
diff --git a/fs/ubifs/ubifs-media.h b/fs/ubifs/ubifs-media.h
index bd2121f3426e..a9ecbd9af20d 100644
--- a/fs/ubifs/ubifs-media.h
+++ b/fs/ubifs/ubifs-media.h
@@ -87,7 +87,7 @@
87#define UBIFS_SK_LEN 8 87#define UBIFS_SK_LEN 8
88 88
89/* Minimum index tree fanout */ 89/* Minimum index tree fanout */
90#define UBIFS_MIN_FANOUT 2 90#define UBIFS_MIN_FANOUT 3
91 91
92/* Maximum number of levels in UBIFS indexing B-tree */ 92/* Maximum number of levels in UBIFS indexing B-tree */
93#define UBIFS_MAX_LEVELS 512 93#define UBIFS_MAX_LEVELS 512
diff --git a/fs/ubifs/ubifs.h b/fs/ubifs/ubifs.h
index d7f706f7a302..17c620b93eec 100644
--- a/fs/ubifs/ubifs.h
+++ b/fs/ubifs/ubifs.h
@@ -995,6 +995,9 @@ struct ubifs_mount_opts {
995 * @max_idx_node_sz: maximum indexing node aligned on 8-bytes boundary 995 * @max_idx_node_sz: maximum indexing node aligned on 8-bytes boundary
996 * @max_inode_sz: maximum possible inode size in bytes 996 * @max_inode_sz: maximum possible inode size in bytes
997 * @max_znode_sz: size of znode in bytes 997 * @max_znode_sz: size of znode in bytes
998 *
999 * @leb_overhead: how many bytes are wasted in an LEB when it is filled with
1000 * data nodes of maximum size - used in free space reporting
998 * @dead_wm: LEB dead space watermark 1001 * @dead_wm: LEB dead space watermark
999 * @dark_wm: LEB dark space watermark 1002 * @dark_wm: LEB dark space watermark
1000 * @block_cnt: count of 4KiB blocks on the FS 1003 * @block_cnt: count of 4KiB blocks on the FS
@@ -1028,6 +1031,8 @@ struct ubifs_mount_opts {
1028 * @sbuf: a buffer of LEB size used by GC and replay for scanning 1031 * @sbuf: a buffer of LEB size used by GC and replay for scanning
1029 * @idx_gc: list of index LEBs that have been garbage collected 1032 * @idx_gc: list of index LEBs that have been garbage collected
1030 * @idx_gc_cnt: number of elements on the idx_gc list 1033 * @idx_gc_cnt: number of elements on the idx_gc list
1034 * @gc_seq: incremented for every non-index LEB garbage collected
1035 * @gced_lnum: last non-index LEB that was garbage collected
1031 * 1036 *
1032 * @infos_list: links all 'ubifs_info' objects 1037 * @infos_list: links all 'ubifs_info' objects
1033 * @umount_mutex: serializes shrinker and un-mount 1038 * @umount_mutex: serializes shrinker and un-mount
@@ -1224,6 +1229,8 @@ struct ubifs_info {
1224 int max_idx_node_sz; 1229 int max_idx_node_sz;
1225 long long max_inode_sz; 1230 long long max_inode_sz;
1226 int max_znode_sz; 1231 int max_znode_sz;
1232
1233 int leb_overhead;
1227 int dead_wm; 1234 int dead_wm;
1228 int dark_wm; 1235 int dark_wm;
1229 int block_cnt; 1236 int block_cnt;
@@ -1257,6 +1264,8 @@ struct ubifs_info {
1257 void *sbuf; 1264 void *sbuf;
1258 struct list_head idx_gc; 1265 struct list_head idx_gc;
1259 int idx_gc_cnt; 1266 int idx_gc_cnt;
1267 volatile int gc_seq;
1268 volatile int gced_lnum;
1260 1269
1261 struct list_head infos_list; 1270 struct list_head infos_list;
1262 struct mutex umount_mutex; 1271 struct mutex umount_mutex;
@@ -1434,9 +1443,10 @@ void ubifs_release_ino_dirty(struct ubifs_info *c, struct inode *inode,
1434 struct ubifs_budget_req *req); 1443 struct ubifs_budget_req *req);
1435void ubifs_cancel_ino_op(struct ubifs_info *c, struct inode *inode, 1444void ubifs_cancel_ino_op(struct ubifs_info *c, struct inode *inode,
1436 struct ubifs_budget_req *req); 1445 struct ubifs_budget_req *req);
1437long long ubifs_budg_get_free_space(struct ubifs_info *c); 1446long long ubifs_get_free_space(struct ubifs_info *c);
1438int ubifs_calc_min_idx_lebs(struct ubifs_info *c); 1447int ubifs_calc_min_idx_lebs(struct ubifs_info *c);
1439void ubifs_convert_page_budget(struct ubifs_info *c); 1448void ubifs_convert_page_budget(struct ubifs_info *c);
1449long long ubifs_reported_space(const struct ubifs_info *c, uint64_t free);
1440long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs); 1450long long ubifs_calc_available(const struct ubifs_info *c, int min_idx_lebs);
1441 1451
1442/* find.c */ 1452/* find.c */
@@ -1451,8 +1461,6 @@ int ubifs_save_dirty_idx_lnums(struct ubifs_info *c);
1451/* tnc.c */ 1461/* tnc.c */
1452int ubifs_lookup_level0(struct ubifs_info *c, const union ubifs_key *key, 1462int ubifs_lookup_level0(struct ubifs_info *c, const union ubifs_key *key,
1453 struct ubifs_znode **zn, int *n); 1463 struct ubifs_znode **zn, int *n);
1454int ubifs_tnc_lookup(struct ubifs_info *c, const union ubifs_key *key,
1455 void *node);
1456int ubifs_tnc_lookup_nm(struct ubifs_info *c, const union ubifs_key *key, 1464int ubifs_tnc_lookup_nm(struct ubifs_info *c, const union ubifs_key *key,
1457 void *node, const struct qstr *nm); 1465 void *node, const struct qstr *nm);
1458int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key, 1466int ubifs_tnc_locate(struct ubifs_info *c, const union ubifs_key *key,
diff --git a/fs/udf/file.c b/fs/udf/file.c
index 0ed6e146a0d9..eb91f3b70320 100644
--- a/fs/udf/file.c
+++ b/fs/udf/file.c
@@ -211,6 +211,7 @@ const struct file_operations udf_file_operations = {
211 .release = udf_release_file, 211 .release = udf_release_file,
212 .fsync = udf_fsync_file, 212 .fsync = udf_fsync_file,
213 .splice_read = generic_file_splice_read, 213 .splice_read = generic_file_splice_read,
214 .llseek = generic_file_llseek,
214}; 215};
215 216
216const struct inode_operations udf_file_inode_operations = { 217const struct inode_operations udf_file_inode_operations = {
diff --git a/fs/udf/ialloc.c b/fs/udf/ialloc.c
index eb9cfa23dc3d..a4f2b3ce45b0 100644
--- a/fs/udf/ialloc.c
+++ b/fs/udf/ialloc.c
@@ -76,11 +76,24 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
76 *err = -ENOSPC; 76 *err = -ENOSPC;
77 77
78 iinfo = UDF_I(inode); 78 iinfo = UDF_I(inode);
79 iinfo->i_unique = 0; 79 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) {
80 iinfo->i_lenExtents = 0; 80 iinfo->i_efe = 1;
81 iinfo->i_next_alloc_block = 0; 81 if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev)
82 iinfo->i_next_alloc_goal = 0; 82 sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE;
83 iinfo->i_strat4096 = 0; 83 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
84 sizeof(struct extendedFileEntry),
85 GFP_KERNEL);
86 } else {
87 iinfo->i_efe = 0;
88 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
89 sizeof(struct fileEntry),
90 GFP_KERNEL);
91 }
92 if (!iinfo->i_ext.i_data) {
93 iput(inode);
94 *err = -ENOMEM;
95 return NULL;
96 }
84 97
85 block = udf_new_block(dir->i_sb, NULL, 98 block = udf_new_block(dir->i_sb, NULL,
86 dinfo->i_location.partitionReferenceNum, 99 dinfo->i_location.partitionReferenceNum,
@@ -111,6 +124,7 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
111 lvhd->uniqueID = cpu_to_le64(uniqueID); 124 lvhd->uniqueID = cpu_to_le64(uniqueID);
112 mark_buffer_dirty(sbi->s_lvid_bh); 125 mark_buffer_dirty(sbi->s_lvid_bh);
113 } 126 }
127 mutex_unlock(&sbi->s_alloc_mutex);
114 inode->i_mode = mode; 128 inode->i_mode = mode;
115 inode->i_uid = current->fsuid; 129 inode->i_uid = current->fsuid;
116 if (dir->i_mode & S_ISGID) { 130 if (dir->i_mode & S_ISGID) {
@@ -129,25 +143,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
129 iinfo->i_lenEAttr = 0; 143 iinfo->i_lenEAttr = 0;
130 iinfo->i_lenAlloc = 0; 144 iinfo->i_lenAlloc = 0;
131 iinfo->i_use = 0; 145 iinfo->i_use = 0;
132 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_EXTENDED_FE)) {
133 iinfo->i_efe = 1;
134 if (UDF_VERS_USE_EXTENDED_FE > sbi->s_udfrev)
135 sbi->s_udfrev = UDF_VERS_USE_EXTENDED_FE;
136 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
137 sizeof(struct extendedFileEntry),
138 GFP_KERNEL);
139 } else {
140 iinfo->i_efe = 0;
141 iinfo->i_ext.i_data = kzalloc(inode->i_sb->s_blocksize -
142 sizeof(struct fileEntry),
143 GFP_KERNEL);
144 }
145 if (!iinfo->i_ext.i_data) {
146 iput(inode);
147 *err = -ENOMEM;
148 mutex_unlock(&sbi->s_alloc_mutex);
149 return NULL;
150 }
151 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB)) 146 if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_AD_IN_ICB))
152 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB; 147 iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB;
153 else if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD)) 148 else if (UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_USE_SHORT_AD))
@@ -158,7 +153,6 @@ struct inode *udf_new_inode(struct inode *dir, int mode, int *err)
158 iinfo->i_crtime = current_fs_time(inode->i_sb); 153 iinfo->i_crtime = current_fs_time(inode->i_sb);
159 insert_inode_hash(inode); 154 insert_inode_hash(inode);
160 mark_inode_dirty(inode); 155 mark_inode_dirty(inode);
161 mutex_unlock(&sbi->s_alloc_mutex);
162 156
163 if (DQUOT_ALLOC_INODE(inode)) { 157 if (DQUOT_ALLOC_INODE(inode)) {
164 DQUOT_DROP(inode); 158 DQUOT_DROP(inode);
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c
index 5f60363b9343..5311c1acdd40 100644
--- a/fs/xfs/linux-2.6/xfs_file.c
+++ b/fs/xfs/linux-2.6/xfs_file.c
@@ -475,6 +475,7 @@ const struct file_operations xfs_invis_file_operations = {
475const struct file_operations xfs_dir_file_operations = { 475const struct file_operations xfs_dir_file_operations = {
476 .read = generic_read_dir, 476 .read = generic_read_dir,
477 .readdir = xfs_file_readdir, 477 .readdir = xfs_file_readdir,
478 .llseek = generic_file_llseek,
478 .unlocked_ioctl = xfs_file_ioctl, 479 .unlocked_ioctl = xfs_file_ioctl,
479#ifdef CONFIG_COMPAT 480#ifdef CONFIG_COMPAT
480 .compat_ioctl = xfs_file_compat_ioctl, 481 .compat_ioctl = xfs_file_compat_ioctl,
diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c
index 91bcd979242c..095d271f3434 100644
--- a/fs/xfs/linux-2.6/xfs_iops.c
+++ b/fs/xfs/linux-2.6/xfs_iops.c
@@ -355,7 +355,7 @@ xfs_vn_ci_lookup(
355 /* else case-insensitive match... */ 355 /* else case-insensitive match... */
356 dname.name = ci_name.name; 356 dname.name = ci_name.name;
357 dname.len = ci_name.len; 357 dname.len = ci_name.len;
358 dentry = d_add_ci(VFS_I(ip), dentry, &dname); 358 dentry = d_add_ci(dentry, VFS_I(ip), &dname);
359 kmem_free(ci_name.name); 359 kmem_free(ci_name.name);
360 return dentry; 360 return dentry;
361} 361}
diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm
index 1170dc60e638..1870d5e05f1c 100644
--- a/include/asm-generic/Kbuild.asm
+++ b/include/asm-generic/Kbuild.asm
@@ -1,8 +1,10 @@
1ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/kvm.h),) 1ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
2 $(srctree)/include/asm-$(SRCARCH)/kvm.h),)
2header-y += kvm.h 3header-y += kvm.h
3endif 4endif
4 5
5ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),) 6ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
7 $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
6unifdef-y += a.out.h 8unifdef-y += a.out.h
7endif 9endif
8unifdef-y += auxvec.h 10unifdef-y += auxvec.h
diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
index a3f738cffdb6..edc6ba82e090 100644
--- a/include/asm-generic/bug.h
+++ b/include/asm-generic/bug.h
@@ -97,6 +97,16 @@ extern void warn_slowpath(const char *file, const int line,
97 unlikely(__ret_warn_once); \ 97 unlikely(__ret_warn_once); \
98}) 98})
99 99
100#define WARN_ONCE(condition, format...) ({ \
101 static int __warned; \
102 int __ret_warn_once = !!(condition); \
103 \
104 if (unlikely(__ret_warn_once)) \
105 if (WARN(!__warned, format)) \
106 __warned = 1; \
107 unlikely(__ret_warn_once); \
108})
109
100#define WARN_ON_RATELIMIT(condition, state) \ 110#define WARN_ON_RATELIMIT(condition, state) \
101 WARN_ON((condition) && __ratelimit(state)) 111 WARN_ON((condition) && __ratelimit(state))
102 112
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
index 8feeae1f2369..79a7ff925bf8 100644
--- a/include/asm-generic/sections.h
+++ b/include/asm-generic/sections.h
@@ -14,4 +14,10 @@ extern char __kprobes_text_start[], __kprobes_text_end[];
14extern char __initdata_begin[], __initdata_end[]; 14extern char __initdata_begin[], __initdata_end[];
15extern char __start_rodata[], __end_rodata[]; 15extern char __start_rodata[], __end_rodata[];
16 16
17/* function descriptor handling (if any). Override
18 * in asm/sections.h */
19#ifndef dereference_function_descriptor
20#define dereference_function_descriptor(p) (p)
21#endif
22
17#endif /* _ASM_GENERIC_SECTIONS_H_ */ 23#endif /* _ASM_GENERIC_SECTIONS_H_ */
diff --git a/include/asm-generic/syscall.h b/include/asm-generic/syscall.h
index abcf34c2fdc7..ea8087b55ffc 100644
--- a/include/asm-generic/syscall.h
+++ b/include/asm-generic/syscall.h
@@ -126,7 +126,7 @@ void syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
126 * @args: array of argument values to store 126 * @args: array of argument values to store
127 * 127 *
128 * Changes @n arguments to the system call starting with the @i'th argument. 128 * Changes @n arguments to the system call starting with the @i'th argument.
129 * @n'th argument to @val. Argument @i gets value @args[0], and so on. 129 * Argument @i gets value @args[0], and so on.
130 * An arch inline version is probably optimal when @i and @n are constants. 130 * An arch inline version is probably optimal when @i and @n are constants.
131 * 131 *
132 * It's only valid to call this when @task is stopped for tracing on 132 * It's only valid to call this when @task is stopped for tracing on
diff --git a/include/asm-mips/cacheflush.h b/include/asm-mips/cacheflush.h
index d5c0f2fda51b..03b1d69b142f 100644
--- a/include/asm-mips/cacheflush.h
+++ b/include/asm-mips/cacheflush.h
@@ -63,6 +63,7 @@ static inline void flush_icache_page(struct vm_area_struct *vma,
63} 63}
64 64
65extern void (*flush_icache_range)(unsigned long start, unsigned long end); 65extern void (*flush_icache_range)(unsigned long start, unsigned long end);
66extern void (*local_flush_icache_range)(unsigned long start, unsigned long end);
66 67
67extern void (*__flush_cache_vmap)(void); 68extern void (*__flush_cache_vmap)(void);
68 69
diff --git a/include/asm-mips/unistd.h b/include/asm-mips/unistd.h
index 4964c82f85f9..a73e1531e151 100644
--- a/include/asm-mips/unistd.h
+++ b/include/asm-mips/unistd.h
@@ -344,16 +344,22 @@
344#define __NR_timerfd_create (__NR_Linux + 321) 344#define __NR_timerfd_create (__NR_Linux + 321)
345#define __NR_timerfd_gettime (__NR_Linux + 322) 345#define __NR_timerfd_gettime (__NR_Linux + 322)
346#define __NR_timerfd_settime (__NR_Linux + 323) 346#define __NR_timerfd_settime (__NR_Linux + 323)
347#define __NR_signalfd4 (__NR_Linux + 324)
348#define __NR_eventfd2 (__NR_Linux + 325)
349#define __NR_epoll_create1 (__NR_Linux + 326)
350#define __NR_dup3 (__NR_Linux + 327)
351#define __NR_pipe2 (__NR_Linux + 328)
352#define __NR_inotify_init1 (__NR_Linux + 329)
347 353
348/* 354/*
349 * Offset of the last Linux o32 flavoured syscall 355 * Offset of the last Linux o32 flavoured syscall
350 */ 356 */
351#define __NR_Linux_syscalls 323 357#define __NR_Linux_syscalls 329
352 358
353#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 359#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
354 360
355#define __NR_O32_Linux 4000 361#define __NR_O32_Linux 4000
356#define __NR_O32_Linux_syscalls 323 362#define __NR_O32_Linux_syscalls 329
357 363
358#if _MIPS_SIM == _MIPS_SIM_ABI64 364#if _MIPS_SIM == _MIPS_SIM_ABI64
359 365
@@ -644,16 +650,22 @@
644#define __NR_timerfd_create (__NR_Linux + 280) 650#define __NR_timerfd_create (__NR_Linux + 280)
645#define __NR_timerfd_gettime (__NR_Linux + 281) 651#define __NR_timerfd_gettime (__NR_Linux + 281)
646#define __NR_timerfd_settime (__NR_Linux + 282) 652#define __NR_timerfd_settime (__NR_Linux + 282)
653#define __NR_signalfd4 (__NR_Linux + 283)
654#define __NR_eventfd2 (__NR_Linux + 284)
655#define __NR_epoll_create1 (__NR_Linux + 285)
656#define __NR_dup3 (__NR_Linux + 286)
657#define __NR_pipe2 (__NR_Linux + 287)
658#define __NR_inotify_init1 (__NR_Linux + 288)
647 659
648/* 660/*
649 * Offset of the last Linux 64-bit flavoured syscall 661 * Offset of the last Linux 64-bit flavoured syscall
650 */ 662 */
651#define __NR_Linux_syscalls 282 663#define __NR_Linux_syscalls 288
652 664
653#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 665#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
654 666
655#define __NR_64_Linux 5000 667#define __NR_64_Linux 5000
656#define __NR_64_Linux_syscalls 282 668#define __NR_64_Linux_syscalls 288
657 669
658#if _MIPS_SIM == _MIPS_SIM_NABI32 670#if _MIPS_SIM == _MIPS_SIM_NABI32
659 671
@@ -948,16 +960,22 @@
948#define __NR_timerfd_create (__NR_Linux + 284) 960#define __NR_timerfd_create (__NR_Linux + 284)
949#define __NR_timerfd_gettime (__NR_Linux + 285) 961#define __NR_timerfd_gettime (__NR_Linux + 285)
950#define __NR_timerfd_settime (__NR_Linux + 286) 962#define __NR_timerfd_settime (__NR_Linux + 286)
963#define __NR_signalfd4 (__NR_Linux + 287)
964#define __NR_eventfd2 (__NR_Linux + 288)
965#define __NR_epoll_create1 (__NR_Linux + 289)
966#define __NR_dup3 (__NR_Linux + 290)
967#define __NR_pipe2 (__NR_Linux + 291)
968#define __NR_inotify_init1 (__NR_Linux + 292)
951 969
952/* 970/*
953 * Offset of the last N32 flavoured syscall 971 * Offset of the last N32 flavoured syscall
954 */ 972 */
955#define __NR_Linux_syscalls 286 973#define __NR_Linux_syscalls 292
956 974
957#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ 975#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
958 976
959#define __NR_N32_Linux 6000 977#define __NR_N32_Linux 6000
960#define __NR_N32_Linux_syscalls 286 978#define __NR_N32_Linux_syscalls 292
961 979
962#ifdef __KERNEL__ 980#ifdef __KERNEL__
963 981
diff --git a/include/asm-parisc/sections.h b/include/asm-parisc/sections.h
index fdd43ec42ec5..9d13c3507ad6 100644
--- a/include/asm-parisc/sections.h
+++ b/include/asm-parisc/sections.h
@@ -4,4 +4,9 @@
4/* nothing to see, move along */ 4/* nothing to see, move along */
5#include <asm-generic/sections.h> 5#include <asm-generic/sections.h>
6 6
7#ifdef CONFIG_64BIT
8#undef dereference_function_descriptor
9void *dereference_function_descriptor(void *);
10#endif
11
7#endif 12#endif
diff --git a/include/asm-x86/cpufeature.h b/include/asm-x86/cpufeature.h
index 762f6a6bc707..9489283a4bcf 100644
--- a/include/asm-x86/cpufeature.h
+++ b/include/asm-x86/cpufeature.h
@@ -72,14 +72,15 @@
72#define X86_FEATURE_UP (3*32+ 9) /* smp kernel running on up */ 72#define X86_FEATURE_UP (3*32+ 9) /* smp kernel running on up */
73#define X86_FEATURE_FXSAVE_LEAK (3*32+10) /* FXSAVE leaks FOP/FIP/FOP */ 73#define X86_FEATURE_FXSAVE_LEAK (3*32+10) /* FXSAVE leaks FOP/FIP/FOP */
74#define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */ 74#define X86_FEATURE_ARCH_PERFMON (3*32+11) /* Intel Architectural PerfMon */
75#define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */ 75#define X86_FEATURE_PEBS (3*32+12) /* Precise-Event Based Sampling */
76#define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */ 76#define X86_FEATURE_BTS (3*32+13) /* Branch Trace Store */
77#define X86_FEATURE_SYSCALL32 (3*32+14) /* syscall in ia32 userspace */ 77#define X86_FEATURE_SYSCALL32 (3*32+14) /* syscall in ia32 userspace */
78#define X86_FEATURE_SYSENTER32 (3*32+15) /* sysenter in ia32 userspace */ 78#define X86_FEATURE_SYSENTER32 (3*32+15) /* sysenter in ia32 userspace */
79#define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well on this CPU */ 79#define X86_FEATURE_REP_GOOD (3*32+16) /* rep microcode works well on this CPU */
80#define X86_FEATURE_MFENCE_RDTSC (3*32+17) /* Mfence synchronizes RDTSC */ 80#define X86_FEATURE_MFENCE_RDTSC (3*32+17) /* Mfence synchronizes RDTSC */
81#define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* Lfence synchronizes RDTSC */ 81#define X86_FEATURE_LFENCE_RDTSC (3*32+18) /* Lfence synchronizes RDTSC */
82#define X86_FEATURE_11AP (3*32+19) /* Bad local APIC aka 11AP */ 82#define X86_FEATURE_11AP (3*32+19) /* Bad local APIC aka 11AP */
83#define X86_FEATURE_NOPL (3*32+20) /* The NOPL (0F 1F) instructions */
83 84
84/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */ 85/* Intel-defined CPU features, CPUID level 0x00000001 (ecx), word 4 */
85#define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */ 86#define X86_FEATURE_XMM3 (4*32+ 0) /* Streaming SIMD Extensions-3 */
diff --git a/include/asm-x86/msr.h b/include/asm-x86/msr.h
index ca110ee73f07..2362cfda1fbc 100644
--- a/include/asm-x86/msr.h
+++ b/include/asm-x86/msr.h
@@ -52,14 +52,14 @@ static inline unsigned long long native_read_msr_safe(unsigned int msr,
52{ 52{
53 DECLARE_ARGS(val, low, high); 53 DECLARE_ARGS(val, low, high);
54 54
55 asm volatile("2: rdmsr ; xor %0,%0\n" 55 asm volatile("2: rdmsr ; xor %[err],%[err]\n"
56 "1:\n\t" 56 "1:\n\t"
57 ".section .fixup,\"ax\"\n\t" 57 ".section .fixup,\"ax\"\n\t"
58 "3: mov %3,%0 ; jmp 1b\n\t" 58 "3: mov %[fault],%[err] ; jmp 1b\n\t"
59 ".previous\n\t" 59 ".previous\n\t"
60 _ASM_EXTABLE(2b, 3b) 60 _ASM_EXTABLE(2b, 3b)
61 : "=r" (*err), EAX_EDX_RET(val, low, high) 61 : [err] "=r" (*err), EAX_EDX_RET(val, low, high)
62 : "c" (msr), "i" (-EFAULT)); 62 : "c" (msr), [fault] "i" (-EFAULT));
63 return EAX_EDX_VAL(val, low, high); 63 return EAX_EDX_VAL(val, low, high);
64} 64}
65 65
@@ -73,15 +73,15 @@ static inline int native_write_msr_safe(unsigned int msr,
73 unsigned low, unsigned high) 73 unsigned low, unsigned high)
74{ 74{
75 int err; 75 int err;
76 asm volatile("2: wrmsr ; xor %0,%0\n" 76 asm volatile("2: wrmsr ; xor %[err],%[err]\n"
77 "1:\n\t" 77 "1:\n\t"
78 ".section .fixup,\"ax\"\n\t" 78 ".section .fixup,\"ax\"\n\t"
79 "3: mov %4,%0 ; jmp 1b\n\t" 79 "3: mov %[fault],%[err] ; jmp 1b\n\t"
80 ".previous\n\t" 80 ".previous\n\t"
81 _ASM_EXTABLE(2b, 3b) 81 _ASM_EXTABLE(2b, 3b)
82 : "=a" (err) 82 : [err] "=a" (err)
83 : "c" (msr), "0" (low), "d" (high), 83 : "c" (msr), "0" (low), "d" (high),
84 "i" (-EFAULT) 84 [fault] "i" (-EFAULT)
85 : "memory"); 85 : "memory");
86 return err; 86 return err;
87} 87}
@@ -192,19 +192,20 @@ do { \
192#define write_rdtscp_aux(val) wrmsr(0xc0000103, (val), 0) 192#define write_rdtscp_aux(val) wrmsr(0xc0000103, (val), 0)
193 193
194#ifdef CONFIG_SMP 194#ifdef CONFIG_SMP
195void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); 195int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h);
196void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); 196int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h);
197int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h); 197int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h);
198
199int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h); 198int wrmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h);
200#else /* CONFIG_SMP */ 199#else /* CONFIG_SMP */
201static inline void rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h) 200static inline int rdmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 *l, u32 *h)
202{ 201{
203 rdmsr(msr_no, *l, *h); 202 rdmsr(msr_no, *l, *h);
203 return 0;
204} 204}
205static inline void wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h) 205static inline int wrmsr_on_cpu(unsigned int cpu, u32 msr_no, u32 l, u32 h)
206{ 206{
207 wrmsr(msr_no, l, h); 207 wrmsr(msr_no, l, h);
208 return 0;
208} 209}
209static inline int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no, 210static inline int rdmsr_safe_on_cpu(unsigned int cpu, u32 msr_no,
210 u32 *l, u32 *h) 211 u32 *l, u32 *h)
diff --git a/include/asm-x86/required-features.h b/include/asm-x86/required-features.h
index adec887dd7cd..5c2ff4bc2980 100644
--- a/include/asm-x86/required-features.h
+++ b/include/asm-x86/required-features.h
@@ -41,6 +41,12 @@
41# define NEED_3DNOW 0 41# define NEED_3DNOW 0
42#endif 42#endif
43 43
44#if defined(CONFIG_X86_P6_NOP) || defined(CONFIG_X86_64)
45# define NEED_NOPL (1<<(X86_FEATURE_NOPL & 31))
46#else
47# define NEED_NOPL 0
48#endif
49
44#ifdef CONFIG_X86_64 50#ifdef CONFIG_X86_64
45#define NEED_PSE 0 51#define NEED_PSE 0
46#define NEED_MSR (1<<(X86_FEATURE_MSR & 31)) 52#define NEED_MSR (1<<(X86_FEATURE_MSR & 31))
@@ -67,7 +73,7 @@
67#define REQUIRED_MASK1 (NEED_LM|NEED_3DNOW) 73#define REQUIRED_MASK1 (NEED_LM|NEED_3DNOW)
68 74
69#define REQUIRED_MASK2 0 75#define REQUIRED_MASK2 0
70#define REQUIRED_MASK3 0 76#define REQUIRED_MASK3 (NEED_NOPL)
71#define REQUIRED_MASK4 0 77#define REQUIRED_MASK4 0
72#define REQUIRED_MASK5 0 78#define REQUIRED_MASK5 0
73#define REQUIRED_MASK6 0 79#define REQUIRED_MASK6 0
diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 7d970678f940..b68ec09399be 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -167,7 +167,8 @@ unifdef-y += acct.h
167unifdef-y += adb.h 167unifdef-y += adb.h
168unifdef-y += adfs_fs.h 168unifdef-y += adfs_fs.h
169unifdef-y += agpgart.h 169unifdef-y += agpgart.h
170ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/a.out.h),) 170ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/a.out.h \
171 $(srctree)/include/asm-$(SRCARCH)/a.out.h),)
171unifdef-y += a.out.h 172unifdef-y += a.out.h
172endif 173endif
173unifdef-y += apm_bios.h 174unifdef-y += apm_bios.h
@@ -258,7 +259,8 @@ unifdef-y += kd.h
258unifdef-y += kernelcapi.h 259unifdef-y += kernelcapi.h
259unifdef-y += kernel.h 260unifdef-y += kernel.h
260unifdef-y += keyboard.h 261unifdef-y += keyboard.h
261ifneq ($(wildcard $(srctree)/include/asm-$(SRCARCH)/kvm.h),) 262ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/include/asm/kvm.h \
263 $(srctree)/include/asm-$(SRCARCH)/kvm.h),)
262unifdef-y += kvm.h 264unifdef-y += kvm.h
263endif 265endif
264unifdef-y += llc.h 266unifdef-y += llc.h
@@ -297,7 +299,6 @@ unifdef-y += parport.h
297unifdef-y += patchkey.h 299unifdef-y += patchkey.h
298unifdef-y += pci.h 300unifdef-y += pci.h
299unifdef-y += personality.h 301unifdef-y += personality.h
300unifdef-y += pim.h
301unifdef-y += pktcdvd.h 302unifdef-y += pktcdvd.h
302unifdef-y += pmu.h 303unifdef-y += pmu.h
303unifdef-y += poll.h 304unifdef-y += poll.h
diff --git a/include/linux/ata.h b/include/linux/ata.h
index 1ce19c1ef0e9..8a12d718c169 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -745,7 +745,7 @@ static inline int ata_ok(u8 status)
745static inline int lba_28_ok(u64 block, u32 n_block) 745static inline int lba_28_ok(u64 block, u32 n_block)
746{ 746{
747 /* check the ending block number */ 747 /* check the ending block number */
748 return ((block + n_block - 1) < ((u64)1 << 28)) && (n_block <= 256); 748 return ((block + n_block) < ((u64)1 << 28)) && (n_block <= 256);
749} 749}
750 750
751static inline int lba_48_ok(u64 block, u32 n_block) 751static inline int lba_48_ok(u64 block, u32 n_block)
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index e61f22be4d0e..53ea933cf60b 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -280,6 +280,15 @@ struct blk_queue_tag {
280 atomic_t refcnt; /* map can be shared */ 280 atomic_t refcnt; /* map can be shared */
281}; 281};
282 282
283#define BLK_SCSI_MAX_CMDS (256)
284#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8))
285
286struct blk_cmd_filter {
287 unsigned long read_ok[BLK_SCSI_CMD_PER_LONG];
288 unsigned long write_ok[BLK_SCSI_CMD_PER_LONG];
289 struct kobject kobj;
290};
291
283struct request_queue 292struct request_queue
284{ 293{
285 /* 294 /*
@@ -398,6 +407,7 @@ struct request_queue
398#if defined(CONFIG_BLK_DEV_BSG) 407#if defined(CONFIG_BLK_DEV_BSG)
399 struct bsg_class_device bsg_dev; 408 struct bsg_class_device bsg_dev;
400#endif 409#endif
410 struct blk_cmd_filter cmd_filter;
401}; 411};
402 412
403#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ 413#define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */
@@ -807,8 +817,6 @@ extern void blk_put_queue(struct request_queue *);
807/* 817/*
808 * tag stuff 818 * tag stuff
809 */ 819 */
810#define blk_queue_tag_depth(q) ((q)->queue_tags->busy)
811#define blk_queue_tag_queue(q) ((q)->queue_tags->busy < (q)->queue_tags->max_depth)
812#define blk_rq_tagged(rq) ((rq)->cmd_flags & REQ_QUEUED) 820#define blk_rq_tagged(rq) ((rq)->cmd_flags & REQ_QUEUED)
813extern int blk_queue_start_tag(struct request_queue *, struct request *); 821extern int blk_queue_start_tag(struct request_queue *, struct request *);
814extern struct request *blk_queue_find_tag(struct request_queue *, int); 822extern struct request *blk_queue_find_tag(struct request_queue *, int);
@@ -833,11 +841,9 @@ extern int blkdev_issue_flush(struct block_device *, sector_t *);
833/* 841/*
834* command filter functions 842* command filter functions
835*/ 843*/
836extern int blk_verify_command(struct file *file, unsigned char *cmd); 844extern int blk_verify_command(struct blk_cmd_filter *filter,
837extern int blk_cmd_filter_verify_command(struct blk_scsi_cmd_filter *filter, 845 unsigned char *cmd, int has_write_perm);
838 unsigned char *cmd, mode_t *f_mode); 846extern void blk_set_cmd_filter_defaults(struct blk_cmd_filter *filter);
839extern int blk_register_filter(struct gendisk *disk);
840extern void blk_unregister_filter(struct gendisk *disk);
841 847
842#define MAX_PHYS_SEGMENTS 128 848#define MAX_PHYS_SEGMENTS 128
843#define MAX_HW_SEGMENTS 128 849#define MAX_HW_SEGMENTS 128
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h
index c33b0dc28e4d..ed3a5d473e52 100644
--- a/include/linux/clockchips.h
+++ b/include/linux/clockchips.h
@@ -127,6 +127,8 @@ extern int clockevents_register_notifier(struct notifier_block *nb);
127extern int clockevents_program_event(struct clock_event_device *dev, 127extern int clockevents_program_event(struct clock_event_device *dev,
128 ktime_t expires, ktime_t now); 128 ktime_t expires, ktime_t now);
129 129
130extern void clockevents_handle_noop(struct clock_event_device *dev);
131
130#ifdef CONFIG_GENERIC_CLOCKEVENTS 132#ifdef CONFIG_GENERIC_CLOCKEVENTS
131extern void clockevents_notify(unsigned long reason, void *arg); 133extern void clockevents_notify(unsigned long reason, void *arg);
132#else 134#else
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
index e8f450c499b0..2691926fb506 100644
--- a/include/linux/cpuset.h
+++ b/include/linux/cpuset.h
@@ -160,7 +160,7 @@ static inline int current_cpuset_is_being_rebound(void)
160 160
161static inline void rebuild_sched_domains(void) 161static inline void rebuild_sched_domains(void)
162{ 162{
163 partition_sched_domains(0, NULL, NULL); 163 partition_sched_domains(1, NULL, NULL);
164} 164}
165 165
166#endif /* !CONFIG_CPUSETS */ 166#endif /* !CONFIG_CPUSETS */
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
index 07aa198f19ed..efba1de629ac 100644
--- a/include/linux/dcache.h
+++ b/include/linux/dcache.h
@@ -230,7 +230,7 @@ extern void d_delete(struct dentry *);
230extern struct dentry * d_alloc(struct dentry *, const struct qstr *); 230extern struct dentry * d_alloc(struct dentry *, const struct qstr *);
231extern struct dentry * d_alloc_anon(struct inode *); 231extern struct dentry * d_alloc_anon(struct inode *);
232extern struct dentry * d_splice_alias(struct inode *, struct dentry *); 232extern struct dentry * d_splice_alias(struct inode *, struct dentry *);
233extern struct dentry * d_add_ci(struct inode *, struct dentry *, struct qstr *); 233extern struct dentry * d_add_ci(struct dentry *, struct inode *, struct qstr *);
234extern void shrink_dcache_sb(struct super_block *); 234extern void shrink_dcache_sb(struct super_block *);
235extern void shrink_dcache_parent(struct dentry *); 235extern void shrink_dcache_parent(struct dentry *);
236extern void shrink_dcache_for_umount(struct super_block *); 236extern void shrink_dcache_for_umount(struct super_block *);
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index 118216f1bd3c..be4f5e5bfe06 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -110,15 +110,6 @@ struct hd_struct {
110#define GENHD_FL_SUPPRESS_PARTITION_INFO 32 110#define GENHD_FL_SUPPRESS_PARTITION_INFO 32
111#define GENHD_FL_FAIL 64 111#define GENHD_FL_FAIL 64
112 112
113#define BLK_SCSI_MAX_CMDS (256)
114#define BLK_SCSI_CMD_PER_LONG (BLK_SCSI_MAX_CMDS / (sizeof(long) * 8))
115
116struct blk_scsi_cmd_filter {
117 unsigned long read_ok[BLK_SCSI_CMD_PER_LONG];
118 unsigned long write_ok[BLK_SCSI_CMD_PER_LONG];
119 struct kobject kobj;
120};
121
122struct gendisk { 113struct gendisk {
123 int major; /* major number of driver */ 114 int major; /* major number of driver */
124 int first_minor; 115 int first_minor;
@@ -128,7 +119,6 @@ struct gendisk {
128 struct hd_struct **part; /* [indexed by minor] */ 119 struct hd_struct **part; /* [indexed by minor] */
129 struct block_device_operations *fops; 120 struct block_device_operations *fops;
130 struct request_queue *queue; 121 struct request_queue *queue;
131 struct blk_scsi_cmd_filter cmd_filter;
132 void *private_data; 122 void *private_data;
133 sector_t capacity; 123 sector_t capacity;
134 124
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 08be0d21864c..06115128047f 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -97,7 +97,19 @@ extern s32 i2c_smbus_write_i2c_block_data(struct i2c_client * client,
97 97
98/** 98/**
99 * struct i2c_driver - represent an I2C device driver 99 * struct i2c_driver - represent an I2C device driver
100 * @id: Unique driver ID (optional)
100 * @class: What kind of i2c device we instantiate (for detect) 101 * @class: What kind of i2c device we instantiate (for detect)
102 * @attach_adapter: Callback for bus addition (for legacy drivers)
103 * @detach_adapter: Callback for bus removal (for legacy drivers)
104 * @detach_client: Callback for device removal (for legacy drivers)
105 * @probe: Callback for device binding (new-style drivers)
106 * @remove: Callback for device unbinding (new-style drivers)
107 * @shutdown: Callback for device shutdown
108 * @suspend: Callback for device suspend
109 * @resume: Callback for device resume
110 * @command: Callback for bus-wide signaling (optional)
111 * @driver: Device driver model driver
112 * @id_table: List of I2C devices supported by this driver
101 * @detect: Callback for device detection 113 * @detect: Callback for device detection
102 * @address_data: The I2C addresses to probe, ignore or force (for detect) 114 * @address_data: The I2C addresses to probe, ignore or force (for detect)
103 * @clients: List of detected clients we created (for i2c-core use only) 115 * @clients: List of detected clients we created (for i2c-core use only)
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 87c12ed96954..1524829f73f2 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1111,7 +1111,6 @@ void ide_setup_pci_noise(struct pci_dev *, const struct ide_port_info *);
1111#ifdef CONFIG_BLK_DEV_IDEDMA_PCI 1111#ifdef CONFIG_BLK_DEV_IDEDMA_PCI
1112int ide_pci_set_master(struct pci_dev *, const char *); 1112int ide_pci_set_master(struct pci_dev *, const char *);
1113unsigned long ide_pci_dma_base(ide_hwif_t *, const struct ide_port_info *); 1113unsigned long ide_pci_dma_base(ide_hwif_t *, const struct ide_port_info *);
1114extern const struct ide_dma_ops sff_dma_ops;
1115int ide_pci_check_simplex(ide_hwif_t *, const struct ide_port_info *); 1114int ide_pci_check_simplex(ide_hwif_t *, const struct ide_port_info *);
1116int ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *); 1115int ide_hwif_setup_dma(ide_hwif_t *, const struct ide_port_info *);
1117#else 1116#else
@@ -1275,6 +1274,7 @@ extern int __ide_dma_end(ide_drive_t *);
1275int ide_dma_test_irq(ide_drive_t *); 1274int ide_dma_test_irq(ide_drive_t *);
1276extern void ide_dma_lost_irq(ide_drive_t *); 1275extern void ide_dma_lost_irq(ide_drive_t *);
1277extern void ide_dma_timeout(ide_drive_t *); 1276extern void ide_dma_timeout(ide_drive_t *);
1277extern const struct ide_dma_ops sff_dma_ops;
1278#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */ 1278#endif /* CONFIG_BLK_DEV_IDEDMA_SFF */
1279 1279
1280#else 1280#else
@@ -1448,8 +1448,7 @@ static inline void ide_dump_identify(u8 *id)
1448 1448
1449static inline int hwif_to_node(ide_hwif_t *hwif) 1449static inline int hwif_to_node(ide_hwif_t *hwif)
1450{ 1450{
1451 struct pci_dev *dev = to_pci_dev(hwif->dev); 1451 return hwif->dev ? dev_to_node(hwif->dev) : -1;
1452 return hwif->dev ? pcibus_to_node(dev->bus) : -1;
1453} 1452}
1454 1453
1455static inline ide_drive_t *ide_get_paired_drive(ide_drive_t *drive) 1454static inline ide_drive_t *ide_get_paired_drive(ide_drive_t *drive)
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 22d2115458c6..350033e8f4e1 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -109,6 +109,7 @@ extern struct resource iomem_resource;
109extern int request_resource(struct resource *root, struct resource *new); 109extern int request_resource(struct resource *root, struct resource *new);
110extern int release_resource(struct resource *new); 110extern int release_resource(struct resource *new);
111extern int insert_resource(struct resource *parent, struct resource *new); 111extern int insert_resource(struct resource *parent, struct resource *new);
112extern void insert_resource_expand_to_fit(struct resource *root, struct resource *new);
112extern int allocate_resource(struct resource *root, struct resource *new, 113extern int allocate_resource(struct resource *root, struct resource *new,
113 resource_size_t size, resource_size_t min, 114 resource_size_t size, resource_size_t min,
114 resource_size_t max, resource_size_t align, 115 resource_size_t max, resource_size_t align,
@@ -158,9 +159,9 @@ extern struct resource * __devm_request_region(struct device *dev,
158 struct resource *parent, resource_size_t start, 159 struct resource *parent, resource_size_t start,
159 resource_size_t n, const char *name); 160 resource_size_t n, const char *name);
160 161
161#define devm_release_region(start,n) \ 162#define devm_release_region(dev, start, n) \
162 __devm_release_region(dev, &ioport_resource, (start), (n)) 163 __devm_release_region(dev, &ioport_resource, (start), (n))
163#define devm_release_mem_region(start,n) \ 164#define devm_release_mem_region(dev, start, n) \
164 __devm_release_region(dev, &iomem_resource, (start), (n)) 165 __devm_release_region(dev, &iomem_resource, (start), (n))
165 166
166extern void __devm_release_region(struct device *dev, struct resource *parent, 167extern void __devm_release_region(struct device *dev, struct resource *parent,
diff --git a/include/linux/lcd.h b/include/linux/lcd.h
index 173febac6656..c67fecafff90 100644
--- a/include/linux/lcd.h
+++ b/include/linux/lcd.h
@@ -11,6 +11,7 @@
11#include <linux/device.h> 11#include <linux/device.h>
12#include <linux/mutex.h> 12#include <linux/mutex.h>
13#include <linux/notifier.h> 13#include <linux/notifier.h>
14#include <linux/fb.h>
14 15
15/* Notes on locking: 16/* Notes on locking:
16 * 17 *
@@ -45,6 +46,8 @@ struct lcd_ops {
45 int (*get_contrast)(struct lcd_device *); 46 int (*get_contrast)(struct lcd_device *);
46 /* Set LCD panel contrast */ 47 /* Set LCD panel contrast */
47 int (*set_contrast)(struct lcd_device *, int contrast); 48 int (*set_contrast)(struct lcd_device *, int contrast);
49 /* Set LCD panel mode (resolutions ...) */
50 int (*set_mode)(struct lcd_device *, struct fb_videomode *);
48 /* Check if given framebuffer device is the one LCD is bound to; 51 /* Check if given framebuffer device is the one LCD is bound to;
49 return 0 if not, !=0 if it is. If NULL, lcd always matches the fb. */ 52 return 0 if not, !=0 if it is. If NULL, lcd always matches the fb. */
50 int (*check_fb)(struct lcd_device *, struct fb_info *); 53 int (*check_fb)(struct lcd_device *, struct fb_info *);
diff --git a/include/linux/list.h b/include/linux/list.h
index db35ef02e745..969f6e92d089 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -619,6 +619,19 @@ static inline void hlist_add_after(struct hlist_node *n,
619 next->next->pprev = &next->next; 619 next->next->pprev = &next->next;
620} 620}
621 621
622/*
623 * Move a list from one list head to another. Fixup the pprev
624 * reference of the first entry if it exists.
625 */
626static inline void hlist_move_list(struct hlist_head *old,
627 struct hlist_head *new)
628{
629 new->first = old->first;
630 if (new->first)
631 new->first->pprev = &new->first;
632 old->first = NULL;
633}
634
622#define hlist_entry(ptr, type, member) container_of(ptr,type,member) 635#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
623 636
624#define hlist_for_each(pos, head) \ 637#define hlist_for_each(pos, head) \
diff --git a/include/linux/memstick.h b/include/linux/memstick.h
index a9f998a3f48b..d0c37e682234 100644
--- a/include/linux/memstick.h
+++ b/include/linux/memstick.h
@@ -21,30 +21,30 @@
21struct ms_status_register { 21struct ms_status_register {
22 unsigned char reserved; 22 unsigned char reserved;
23 unsigned char interrupt; 23 unsigned char interrupt;
24#define MEMSTICK_INT_CMDNAK 0x0001 24#define MEMSTICK_INT_CMDNAK 0x01
25#define MEMSTICK_INT_IOREQ 0x0008 25#define MEMSTICK_INT_IOREQ 0x08
26#define MEMSTICK_INT_IOBREQ 0x0010 26#define MEMSTICK_INT_IOBREQ 0x10
27#define MEMSTICK_INT_BREQ 0x0020 27#define MEMSTICK_INT_BREQ 0x20
28#define MEMSTICK_INT_ERR 0x0040 28#define MEMSTICK_INT_ERR 0x40
29#define MEMSTICK_INT_CED 0x0080 29#define MEMSTICK_INT_CED 0x80
30 30
31 unsigned char status0; 31 unsigned char status0;
32#define MEMSTICK_STATUS0_WP 0x0001 32#define MEMSTICK_STATUS0_WP 0x01
33#define MEMSTICK_STATUS0_SL 0x0002 33#define MEMSTICK_STATUS0_SL 0x02
34#define MEMSTICK_STATUS0_BF 0x0010 34#define MEMSTICK_STATUS0_BF 0x10
35#define MEMSTICK_STATUS0_BE 0x0020 35#define MEMSTICK_STATUS0_BE 0x20
36#define MEMSTICK_STATUS0_FB0 0x0040 36#define MEMSTICK_STATUS0_FB0 0x40
37#define MEMSTICK_STATUS0_MB 0x0080 37#define MEMSTICK_STATUS0_MB 0x80
38 38
39 unsigned char status1; 39 unsigned char status1;
40#define MEMSTICK_STATUS1_UCFG 0x0001 40#define MEMSTICK_STATUS1_UCFG 0x01
41#define MEMSTICK_STATUS1_FGER 0x0002 41#define MEMSTICK_STATUS1_FGER 0x02
42#define MEMSTICK_STATUS1_UCEX 0x0004 42#define MEMSTICK_STATUS1_UCEX 0x04
43#define MEMSTICK_STATUS1_EXER 0x0008 43#define MEMSTICK_STATUS1_EXER 0x08
44#define MEMSTICK_STATUS1_UCDT 0x0010 44#define MEMSTICK_STATUS1_UCDT 0x10
45#define MEMSTICK_STATUS1_DTER 0x0020 45#define MEMSTICK_STATUS1_DTER 0x20
46#define MEMSTICK_STATUS1_FBI 0x0040 46#define MEMSTICK_STATUS1_FB1 0x40
47#define MEMSTICK_STATUS1_MB 0x0080 47#define MEMSTICK_STATUS1_MB 0x80
48} __attribute__((packed)); 48} __attribute__((packed));
49 49
50struct ms_id_register { 50struct ms_id_register {
@@ -56,32 +56,32 @@ struct ms_id_register {
56 56
57struct ms_param_register { 57struct ms_param_register {
58 unsigned char system; 58 unsigned char system;
59#define MEMSTICK_SYS_ATEN 0xc0
60#define MEMSTICK_SYS_BAMD 0x80
61#define MEMSTICK_SYS_PAM 0x08 59#define MEMSTICK_SYS_PAM 0x08
60#define MEMSTICK_SYS_BAMD 0x80
62 61
63 unsigned char block_address_msb; 62 unsigned char block_address_msb;
64 unsigned short block_address; 63 unsigned short block_address;
65 unsigned char cp; 64 unsigned char cp;
66#define MEMSTICK_CP_BLOCK 0x0000 65#define MEMSTICK_CP_BLOCK 0x00
67#define MEMSTICK_CP_PAGE 0x0020 66#define MEMSTICK_CP_PAGE 0x20
68#define MEMSTICK_CP_EXTRA 0x0040 67#define MEMSTICK_CP_EXTRA 0x40
69#define MEMSTICK_CP_OVERWRITE 0x0080 68#define MEMSTICK_CP_OVERWRITE 0x80
70 69
71 unsigned char page_address; 70 unsigned char page_address;
72} __attribute__((packed)); 71} __attribute__((packed));
73 72
74struct ms_extra_data_register { 73struct ms_extra_data_register {
75 unsigned char overwrite_flag; 74 unsigned char overwrite_flag;
76#define MEMSTICK_OVERWRITE_UPDATA 0x0010 75#define MEMSTICK_OVERWRITE_UDST 0x10
77#define MEMSTICK_OVERWRITE_PAGE 0x0060 76#define MEMSTICK_OVERWRITE_PGST1 0x20
78#define MEMSTICK_OVERWRITE_BLOCK 0x0080 77#define MEMSTICK_OVERWRITE_PGST0 0x40
78#define MEMSTICK_OVERWRITE_BKST 0x80
79 79
80 unsigned char management_flag; 80 unsigned char management_flag;
81#define MEMSTICK_MANAGEMENT_SYSTEM 0x0004 81#define MEMSTICK_MANAGEMENT_SYSFLG 0x04
82#define MEMSTICK_MANAGEMENT_TRANS_TABLE 0x0008 82#define MEMSTICK_MANAGEMENT_ATFLG 0x08
83#define MEMSTICK_MANAGEMENT_COPY 0x0010 83#define MEMSTICK_MANAGEMENT_SCMS1 0x10
84#define MEMSTICK_MANAGEMENT_ACCESS 0x0020 84#define MEMSTICK_MANAGEMENT_SCMS0 0x20
85 85
86 unsigned short logical_address; 86 unsigned short logical_address;
87} __attribute__((packed)); 87} __attribute__((packed));
@@ -96,9 +96,9 @@ struct ms_register {
96 96
97struct mspro_param_register { 97struct mspro_param_register {
98 unsigned char system; 98 unsigned char system;
99#define MEMSTICK_SYS_SERIAL 0x80
100#define MEMSTICK_SYS_PAR4 0x00 99#define MEMSTICK_SYS_PAR4 0x00
101#define MEMSTICK_SYS_PAR8 0x40 100#define MEMSTICK_SYS_PAR8 0x40
101#define MEMSTICK_SYS_SERIAL 0x80
102 102
103 unsigned short data_count; 103 unsigned short data_count;
104 unsigned int data_address; 104 unsigned int data_address;
@@ -147,7 +147,7 @@ struct ms_register_addr {
147 unsigned char w_length; 147 unsigned char w_length;
148} __attribute__((packed)); 148} __attribute__((packed));
149 149
150enum { 150enum memstick_tpc {
151 MS_TPC_READ_MG_STATUS = 0x01, 151 MS_TPC_READ_MG_STATUS = 0x01,
152 MS_TPC_READ_LONG_DATA = 0x02, 152 MS_TPC_READ_LONG_DATA = 0x02,
153 MS_TPC_READ_SHORT_DATA = 0x03, 153 MS_TPC_READ_SHORT_DATA = 0x03,
@@ -167,7 +167,7 @@ enum {
167 MS_TPC_SET_CMD = 0x0e 167 MS_TPC_SET_CMD = 0x0e
168}; 168};
169 169
170enum { 170enum memstick_command {
171 MS_CMD_BLOCK_END = 0x33, 171 MS_CMD_BLOCK_END = 0x33,
172 MS_CMD_RESET = 0x3c, 172 MS_CMD_RESET = 0x3c,
173 MS_CMD_BLOCK_WRITE = 0x55, 173 MS_CMD_BLOCK_WRITE = 0x55,
@@ -201,8 +201,6 @@ enum {
201 201
202/*** Driver structures and functions ***/ 202/*** Driver structures and functions ***/
203 203
204#define MEMSTICK_PART_SHIFT 3
205
206enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE }; 204enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE };
207 205
208#define MEMSTICK_POWER_OFF 0 206#define MEMSTICK_POWER_OFF 0
@@ -215,24 +213,27 @@ enum memstick_param { MEMSTICK_POWER = 1, MEMSTICK_INTERFACE };
215struct memstick_host; 213struct memstick_host;
216struct memstick_driver; 214struct memstick_driver;
217 215
216struct memstick_device_id {
217 unsigned char match_flags;
218#define MEMSTICK_MATCH_ALL 0x01 218#define MEMSTICK_MATCH_ALL 0x01
219 219
220 unsigned char type;
220#define MEMSTICK_TYPE_LEGACY 0xff 221#define MEMSTICK_TYPE_LEGACY 0xff
221#define MEMSTICK_TYPE_DUO 0x00 222#define MEMSTICK_TYPE_DUO 0x00
222#define MEMSTICK_TYPE_PRO 0x01 223#define MEMSTICK_TYPE_PRO 0x01
223 224
225 unsigned char category;
224#define MEMSTICK_CATEGORY_STORAGE 0xff 226#define MEMSTICK_CATEGORY_STORAGE 0xff
225#define MEMSTICK_CATEGORY_STORAGE_DUO 0x00 227#define MEMSTICK_CATEGORY_STORAGE_DUO 0x00
228#define MEMSTICK_CATEGORY_IO 0x01
229#define MEMSTICK_CATEGORY_IO_PRO 0x10
226 230
227#define MEMSTICK_CLASS_GENERIC 0xff
228#define MEMSTICK_CLASS_GENERIC_DUO 0x00
229
230
231struct memstick_device_id {
232 unsigned char match_flags;
233 unsigned char type;
234 unsigned char category;
235 unsigned char class; 231 unsigned char class;
232#define MEMSTICK_CLASS_FLASH 0xff
233#define MEMSTICK_CLASS_DUO 0x00
234#define MEMSTICK_CLASS_ROM 0x01
235#define MEMSTICK_CLASS_RO 0x02
236#define MEMSTICK_CLASS_WP 0x03
236}; 237};
237 238
238struct memstick_request { 239struct memstick_request {
@@ -319,9 +320,9 @@ void memstick_suspend_host(struct memstick_host *host);
319void memstick_resume_host(struct memstick_host *host); 320void memstick_resume_host(struct memstick_host *host);
320 321
321void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, 322void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc,
322 struct scatterlist *sg); 323 const struct scatterlist *sg);
323void memstick_init_req(struct memstick_request *mrq, unsigned char tpc, 324void memstick_init_req(struct memstick_request *mrq, unsigned char tpc,
324 void *buf, size_t length); 325 const void *buf, size_t length);
325int memstick_next_req(struct memstick_host *host, 326int memstick_next_req(struct memstick_host *host,
326 struct memstick_request **mrq); 327 struct memstick_request **mrq);
327void memstick_new_req(struct memstick_host *host); 328void memstick_new_req(struct memstick_host *host);
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 443bc7cd8c62..428328a05fa1 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -751,8 +751,9 @@ static inline int zonelist_node_idx(struct zoneref *zoneref)
751 * 751 *
752 * This function returns the next zone at or below a given zone index that is 752 * This function returns the next zone at or below a given zone index that is
753 * within the allowed nodemask using a cursor as the starting point for the 753 * within the allowed nodemask using a cursor as the starting point for the
754 * search. The zoneref returned is a cursor that is used as the next starting 754 * search. The zoneref returned is a cursor that represents the current zone
755 * point for future calls to next_zones_zonelist(). 755 * being examined. It should be advanced by one before calling
756 * next_zones_zonelist again.
756 */ 757 */
757struct zoneref *next_zones_zonelist(struct zoneref *z, 758struct zoneref *next_zones_zonelist(struct zoneref *z,
758 enum zone_type highest_zoneidx, 759 enum zone_type highest_zoneidx,
@@ -768,9 +769,8 @@ struct zoneref *next_zones_zonelist(struct zoneref *z,
768 * 769 *
769 * This function returns the first zone at or below a given zone index that is 770 * This function returns the first zone at or below a given zone index that is
770 * within the allowed nodemask. The zoneref returned is a cursor that can be 771 * within the allowed nodemask. The zoneref returned is a cursor that can be
771 * used to iterate the zonelist with next_zones_zonelist. The cursor should 772 * used to iterate the zonelist with next_zones_zonelist by advancing it by
772 * not be used by the caller as it does not match the value of the zone 773 * one before calling.
773 * returned.
774 */ 774 */
775static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist, 775static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
776 enum zone_type highest_zoneidx, 776 enum zone_type highest_zoneidx,
@@ -795,7 +795,7 @@ static inline struct zoneref *first_zones_zonelist(struct zonelist *zonelist,
795#define for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, nodemask) \ 795#define for_each_zone_zonelist_nodemask(zone, z, zlist, highidx, nodemask) \
796 for (z = first_zones_zonelist(zlist, highidx, nodemask, &zone); \ 796 for (z = first_zones_zonelist(zlist, highidx, nodemask, &zone); \
797 zone; \ 797 zone; \
798 z = next_zones_zonelist(z, highidx, nodemask, &zone)) \ 798 z = next_zones_zonelist(++z, highidx, nodemask, &zone)) \
799 799
800/** 800/**
801 * for_each_zone_zonelist - helper macro to iterate over valid zones in a zonelist at or below a given zone index 801 * for_each_zone_zonelist - helper macro to iterate over valid zones in a zonelist at or below a given zone index
diff --git a/include/linux/mroute.h b/include/linux/mroute.h
index 07112ee9293a..8a455694d682 100644
--- a/include/linux/mroute.h
+++ b/include/linux/mroute.h
@@ -6,7 +6,6 @@
6#ifdef __KERNEL__ 6#ifdef __KERNEL__
7#include <linux/in.h> 7#include <linux/in.h>
8#endif 8#endif
9#include <linux/pim.h>
10 9
11/* 10/*
12 * Based on the MROUTING 3.5 defines primarily to keep 11 * Based on the MROUTING 3.5 defines primarily to keep
@@ -130,6 +129,7 @@ struct igmpmsg
130 */ 129 */
131 130
132#ifdef __KERNEL__ 131#ifdef __KERNEL__
132#include <linux/pim.h>
133#include <net/sock.h> 133#include <net/sock.h>
134 134
135#ifdef CONFIG_IP_MROUTE 135#ifdef CONFIG_IP_MROUTE
diff --git a/include/linux/mroute6.h b/include/linux/mroute6.h
index 5cf50473a10f..6f4c180179e2 100644
--- a/include/linux/mroute6.h
+++ b/include/linux/mroute6.h
@@ -115,6 +115,7 @@ struct sioc_mif_req6
115 115
116#ifdef __KERNEL__ 116#ifdef __KERNEL__
117 117
118#include <linux/pim.h>
118#include <linux/skbuff.h> /* for struct sk_buff_head */ 119#include <linux/skbuff.h> /* for struct sk_buff_head */
119 120
120#ifdef CONFIG_IPV6_MROUTE 121#ifdef CONFIG_IPV6_MROUTE
diff --git a/include/linux/net.h b/include/linux/net.h
index 4a9a30f2d68f..6dc14a240042 100644
--- a/include/linux/net.h
+++ b/include/linux/net.h
@@ -18,16 +18,9 @@
18#ifndef _LINUX_NET_H 18#ifndef _LINUX_NET_H
19#define _LINUX_NET_H 19#define _LINUX_NET_H
20 20
21#include <linux/wait.h>
22#include <linux/socket.h> 21#include <linux/socket.h>
23#include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */
24#include <asm/socket.h> 22#include <asm/socket.h>
25 23
26struct poll_table_struct;
27struct pipe_inode_info;
28struct inode;
29struct net;
30
31#define NPROTO AF_MAX 24#define NPROTO AF_MAX
32 25
33#define SYS_SOCKET 1 /* sys_socket(2) */ 26#define SYS_SOCKET 1 /* sys_socket(2) */
@@ -62,6 +55,13 @@ typedef enum {
62#ifdef __KERNEL__ 55#ifdef __KERNEL__
63#include <linux/stringify.h> 56#include <linux/stringify.h>
64#include <linux/random.h> 57#include <linux/random.h>
58#include <linux/wait.h>
59#include <linux/fcntl.h> /* For O_CLOEXEC and O_NONBLOCK */
60
61struct poll_table_struct;
62struct pipe_inode_info;
63struct inode;
64struct net;
65 65
66#define SOCK_ASYNC_NOSPACE 0 66#define SOCK_ASYNC_NOSPACE 0
67#define SOCK_ASYNC_WAITDATA 1 67#define SOCK_ASYNC_WAITDATA 1
diff --git a/include/linux/pim.h b/include/linux/pim.h
index 236ffd317394..1ba0661561a4 100644
--- a/include/linux/pim.h
+++ b/include/linux/pim.h
@@ -3,22 +3,6 @@
3 3
4#include <asm/byteorder.h> 4#include <asm/byteorder.h>
5 5
6#ifndef __KERNEL__
7struct pim {
8#if defined(__LITTLE_ENDIAN_BITFIELD)
9 __u8 pim_type:4, /* PIM message type */
10 pim_ver:4; /* PIM version */
11#elif defined(__BIG_ENDIAN_BITFIELD)
12 __u8 pim_ver:4; /* PIM version */
13 pim_type:4; /* PIM message type */
14#endif
15 __u8 pim_rsv; /* Reserved */
16 __be16 pim_cksum; /* Checksum */
17};
18
19#define PIM_MINLEN 8
20#endif
21
22/* Message types - V1 */ 6/* Message types - V1 */
23#define PIM_V1_VERSION __constant_htonl(0x10000000) 7#define PIM_V1_VERSION __constant_htonl(0x10000000)
24#define PIM_V1_REGISTER 1 8#define PIM_V1_REGISTER 1
@@ -27,7 +11,6 @@ struct pim {
27#define PIM_VERSION 2 11#define PIM_VERSION 2
28#define PIM_REGISTER 1 12#define PIM_REGISTER 1
29 13
30#if defined(__KERNEL__)
31#define PIM_NULL_REGISTER __constant_htonl(0x40000000) 14#define PIM_NULL_REGISTER __constant_htonl(0x40000000)
32 15
33/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */ 16/* PIMv2 register message header layout (ietf-draft-idmr-pimvsm-v2-00.ps */
@@ -42,4 +25,3 @@ struct pimreghdr
42struct sk_buff; 25struct sk_buff;
43extern int pim_rcv_v1(struct sk_buff *); 26extern int pim_rcv_v1(struct sk_buff *);
44#endif 27#endif
45#endif
diff --git a/include/linux/pnp.h b/include/linux/pnp.h
index 1ce54b63085d..be764e514e35 100644
--- a/include/linux/pnp.h
+++ b/include/linux/pnp.h
@@ -21,7 +21,14 @@ struct pnp_dev;
21/* 21/*
22 * Resource Management 22 * Resource Management
23 */ 23 */
24#ifdef CONFIG_PNP
24struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int); 25struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int);
26#else
27static inline struct resource *pnp_get_resource(struct pnp_dev *dev, unsigned int type, unsigned int num)
28{
29 return NULL;
30}
31#endif
25 32
26static inline int pnp_resource_valid(struct resource *res) 33static inline int pnp_resource_valid(struct resource *res)
27{ 34{
diff --git a/include/linux/quicklist.h b/include/linux/quicklist.h
index 39b66713a0bb..bd466439c588 100644
--- a/include/linux/quicklist.h
+++ b/include/linux/quicklist.h
@@ -80,6 +80,13 @@ void quicklist_trim(int nr, void (*dtor)(void *),
80 80
81unsigned long quicklist_total_size(void); 81unsigned long quicklist_total_size(void);
82 82
83#else
84
85static inline unsigned long quicklist_total_size(void)
86{
87 return 0;
88}
89
83#endif 90#endif
84 91
85#endif /* LINUX_QUICKLIST_H */ 92#endif /* LINUX_QUICKLIST_H */
diff --git a/include/linux/res_counter.h b/include/linux/res_counter.h
index fdeadd9740dc..271c1c2c9f6f 100644
--- a/include/linux/res_counter.h
+++ b/include/linux/res_counter.h
@@ -166,7 +166,7 @@ static inline int res_counter_set_limit(struct res_counter *cnt,
166 int ret = -EBUSY; 166 int ret = -EBUSY;
167 167
168 spin_lock_irqsave(&cnt->lock, flags); 168 spin_lock_irqsave(&cnt->lock, flags);
169 if (cnt->usage < limit) { 169 if (cnt->usage <= limit) {
170 cnt->limit = limit; 170 cnt->limit = limit;
171 ret = 0; 171 ret = 0;
172 } 172 }
diff --git a/include/linux/sched.h b/include/linux/sched.h
index cfb0d87b99fc..3d9120c5ad15 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1475,6 +1475,10 @@ static inline void put_task_struct(struct task_struct *t)
1475 __put_task_struct(t); 1475 __put_task_struct(t);
1476} 1476}
1477 1477
1478extern cputime_t task_utime(struct task_struct *p);
1479extern cputime_t task_stime(struct task_struct *p);
1480extern cputime_t task_gtime(struct task_struct *p);
1481
1478/* 1482/*
1479 * Per process flags 1483 * Per process flags
1480 */ 1484 */
diff --git a/include/linux/smc91x.h b/include/linux/smc91x.h
index 3827b922ba1f..bc21db598c06 100644
--- a/include/linux/smc91x.h
+++ b/include/linux/smc91x.h
@@ -16,8 +16,19 @@
16 16
17#define SMC91X_USE_DMA (1 << 6) 17#define SMC91X_USE_DMA (1 << 6)
18 18
19#define RPC_LED_100_10 (0x00) /* LED = 100Mbps OR's with 10Mbps link detect */
20#define RPC_LED_RES (0x01) /* LED = Reserved */
21#define RPC_LED_10 (0x02) /* LED = 10Mbps link detect */
22#define RPC_LED_FD (0x03) /* LED = Full Duplex Mode */
23#define RPC_LED_TX_RX (0x04) /* LED = TX or RX packet occurred */
24#define RPC_LED_100 (0x05) /* LED = 100Mbps link dectect */
25#define RPC_LED_TX (0x06) /* LED = TX packet occurred */
26#define RPC_LED_RX (0x07) /* LED = RX packet occurred */
27
19struct smc91x_platdata { 28struct smc91x_platdata {
20 unsigned long flags; 29 unsigned long flags;
30 unsigned char leda;
31 unsigned char ledb;
21}; 32};
22 33
23#endif /* __SMC91X_H__ */ 34#endif /* __SMC91X_H__ */
diff --git a/include/linux/spi/ads7846.h b/include/linux/spi/ads7846.h
index daf744017a31..05eab2f11e63 100644
--- a/include/linux/spi/ads7846.h
+++ b/include/linux/spi/ads7846.h
@@ -43,6 +43,9 @@ struct ads7846_platform_data {
43 u16 debounce_tol; /* tolerance used for filtering */ 43 u16 debounce_tol; /* tolerance used for filtering */
44 u16 debounce_rep; /* additional consecutive good readings 44 u16 debounce_rep; /* additional consecutive good readings
45 * required after the first two */ 45 * required after the first two */
46 int gpio_pendown; /* the GPIO used to decide the pendown
47 * state if get_pendown_state == NULL
48 */
46 int (*get_pendown_state)(void); 49 int (*get_pendown_state)(void);
47 int (*filter_init) (struct ads7846_platform_data *pdata, 50 int (*filter_init) (struct ads7846_platform_data *pdata,
48 void **filter_data); 51 void **filter_data);
diff --git a/include/linux/spi/corgi_lcd.h b/include/linux/spi/corgi_lcd.h
new file mode 100644
index 000000000000..6692b3418ccf
--- /dev/null
+++ b/include/linux/spi/corgi_lcd.h
@@ -0,0 +1,20 @@
1#ifndef __LINUX_SPI_CORGI_LCD_H
2#define __LINUX_SPI_CORGI_LCD_H
3
4#define CORGI_LCD_MODE_QVGA 1
5#define CORGI_LCD_MODE_VGA 2
6
7struct corgi_lcd_platform_data {
8 int init_mode;
9 int max_intensity;
10 int default_intensity;
11 int limit_mask;
12
13 int gpio_backlight_on; /* -1 if n/a */
14 int gpio_backlight_cont; /* -1 if n/a */
15
16 void (*notify)(int intensity);
17 void (*kick_battery)(void);
18};
19
20#endif /* __LINUX_SPI_CORGI_LCD_H */
diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
index ef2e3a20bf3b..dc05b54bd3a3 100644
--- a/include/linux/sunrpc/svc_rdma.h
+++ b/include/linux/sunrpc/svc_rdma.h
@@ -143,7 +143,6 @@ struct svcxprt_rdma {
143 unsigned long sc_flags; 143 unsigned long sc_flags;
144 struct list_head sc_dto_q; /* DTO tasklet I/O pending Q */ 144 struct list_head sc_dto_q; /* DTO tasklet I/O pending Q */
145 struct list_head sc_read_complete_q; 145 struct list_head sc_read_complete_q;
146 spinlock_t sc_read_complete_lock;
147 struct work_struct sc_work; 146 struct work_struct sc_work;
148}; 147};
149/* sc_flags */ 148/* sc_flags */
diff --git a/include/linux/tracehook.h b/include/linux/tracehook.h
index b48d81969574..6186a789d6c7 100644
--- a/include/linux/tracehook.h
+++ b/include/linux/tracehook.h
@@ -272,7 +272,7 @@ static inline void tracehook_finish_clone(struct task_struct *child,
272 * tracehook_report_clone_complete(). This must prevent the child from 272 * tracehook_report_clone_complete(). This must prevent the child from
273 * self-reaping if tracehook_report_clone_complete() uses the @child 273 * self-reaping if tracehook_report_clone_complete() uses the @child
274 * pointer; otherwise it might have died and been released by the time 274 * pointer; otherwise it might have died and been released by the time
275 * tracehook_report_report_clone_complete() is called. 275 * tracehook_report_clone_complete() is called.
276 * 276 *
277 * Called with no locks held, but the child cannot run until this returns. 277 * Called with no locks held, but the child cannot run until this returns.
278 */ 278 */
diff --git a/include/linux/ucb1400.h b/include/linux/ucb1400.h
new file mode 100644
index 000000000000..970473bf8d5a
--- /dev/null
+++ b/include/linux/ucb1400.h
@@ -0,0 +1,161 @@
1/*
2 * Register definitions and functions for:
3 * Philips UCB1400 driver
4 *
5 * Based on ucb1400_ts:
6 * Author: Nicolas Pitre
7 * Created: September 25, 2006
8 * Copyright: MontaVista Software, Inc.
9 *
10 * Spliting done by: Marek Vasut <marek.vasut@gmail.com>
11 * If something doesnt work and it worked before spliting, e-mail me,
12 * dont bother Nicolas please ;-)
13 *
14 * This program is free software; you can redistribute it and/or modify
15 * it under the terms of the GNU General Public License version 2 as
16 * published by the Free Software Foundation.
17 *
18 * This code is heavily based on ucb1x00-*.c copyrighted by Russell King
19 * covering the UCB1100, UCB1200 and UCB1300.. Support for the UCB1400 has
20 * been made separate from ucb1x00-core/ucb1x00-ts on Russell's request.
21 */
22
23#ifndef _LINUX__UCB1400_H
24#define _LINUX__UCB1400_H
25
26#include <sound/ac97_codec.h>
27#include <linux/mutex.h>
28#include <linux/platform_device.h>
29
30/*
31 * UCB1400 AC-link registers
32 */
33
34#define UCB_IO_DATA 0x5a
35#define UCB_IO_DIR 0x5c
36#define UCB_IE_RIS 0x5e
37#define UCB_IE_FAL 0x60
38#define UCB_IE_STATUS 0x62
39#define UCB_IE_CLEAR 0x62
40#define UCB_IE_ADC (1 << 11)
41#define UCB_IE_TSPX (1 << 12)
42
43#define UCB_TS_CR 0x64
44#define UCB_TS_CR_TSMX_POW (1 << 0)
45#define UCB_TS_CR_TSPX_POW (1 << 1)
46#define UCB_TS_CR_TSMY_POW (1 << 2)
47#define UCB_TS_CR_TSPY_POW (1 << 3)
48#define UCB_TS_CR_TSMX_GND (1 << 4)
49#define UCB_TS_CR_TSPX_GND (1 << 5)
50#define UCB_TS_CR_TSMY_GND (1 << 6)
51#define UCB_TS_CR_TSPY_GND (1 << 7)
52#define UCB_TS_CR_MODE_INT (0 << 8)
53#define UCB_TS_CR_MODE_PRES (1 << 8)
54#define UCB_TS_CR_MODE_POS (2 << 8)
55#define UCB_TS_CR_BIAS_ENA (1 << 11)
56#define UCB_TS_CR_TSPX_LOW (1 << 12)
57#define UCB_TS_CR_TSMX_LOW (1 << 13)
58
59#define UCB_ADC_CR 0x66
60#define UCB_ADC_SYNC_ENA (1 << 0)
61#define UCB_ADC_VREFBYP_CON (1 << 1)
62#define UCB_ADC_INP_TSPX (0 << 2)
63#define UCB_ADC_INP_TSMX (1 << 2)
64#define UCB_ADC_INP_TSPY (2 << 2)
65#define UCB_ADC_INP_TSMY (3 << 2)
66#define UCB_ADC_INP_AD0 (4 << 2)
67#define UCB_ADC_INP_AD1 (5 << 2)
68#define UCB_ADC_INP_AD2 (6 << 2)
69#define UCB_ADC_INP_AD3 (7 << 2)
70#define UCB_ADC_EXT_REF (1 << 5)
71#define UCB_ADC_START (1 << 7)
72#define UCB_ADC_ENA (1 << 15)
73
74#define UCB_ADC_DATA 0x68
75#define UCB_ADC_DAT_VALID (1 << 15)
76#define UCB_ADC_DAT_MASK 0x3ff
77
78#define UCB_ID 0x7e
79#define UCB_ID_1400 0x4304
80
81struct ucb1400_ts {
82 struct input_dev *ts_idev;
83 struct task_struct *ts_task;
84 int id;
85 wait_queue_head_t ts_wait;
86 unsigned int ts_restart:1;
87 int irq;
88 unsigned int irq_pending; /* not bit field shared */
89 struct snd_ac97 *ac97;
90};
91
92struct ucb1400 {
93 struct platform_device *ucb1400_ts;
94};
95
96static inline u16 ucb1400_reg_read(struct snd_ac97 *ac97, u16 reg)
97{
98 return ac97->bus->ops->read(ac97, reg);
99}
100
101static inline void ucb1400_reg_write(struct snd_ac97 *ac97, u16 reg, u16 val)
102{
103 ac97->bus->ops->write(ac97, reg, val);
104}
105
106static inline u16 ucb1400_gpio_get_value(struct snd_ac97 *ac97, u16 gpio)
107{
108 return ucb1400_reg_read(ac97, UCB_IO_DATA) & (1 << gpio);
109}
110
111static inline void ucb1400_gpio_set_value(struct snd_ac97 *ac97, u16 gpio,
112 u16 val)
113{
114 ucb1400_reg_write(ac97, UCB_IO_DATA, val ?
115 ucb1400_reg_read(ac97, UCB_IO_DATA) | (1 << gpio) :
116 ucb1400_reg_read(ac97, UCB_IO_DATA) & ~(1 << gpio));
117}
118
119static inline u16 ucb1400_gpio_get_direction(struct snd_ac97 *ac97, u16 gpio)
120{
121 return ucb1400_reg_read(ac97, UCB_IO_DIR) & (1 << gpio);
122}
123
124static inline void ucb1400_gpio_set_direction(struct snd_ac97 *ac97, u16 gpio,
125 u16 dir)
126{
127 ucb1400_reg_write(ac97, UCB_IO_DIR, dir ?
128 ucb1400_reg_read(ac97, UCB_IO_DIR) | (1 << gpio) :
129 ucb1400_reg_read(ac97, UCB_IO_DIR) & ~(1 << gpio));
130}
131
132static inline void ucb1400_adc_enable(struct snd_ac97 *ac97)
133{
134 ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA);
135}
136
137static unsigned int ucb1400_adc_read(struct snd_ac97 *ac97, u16 adc_channel,
138 int adcsync)
139{
140 unsigned int val;
141
142 if (adcsync)
143 adc_channel |= UCB_ADC_SYNC_ENA;
144
145 ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel);
146 ucb1400_reg_write(ac97, UCB_ADC_CR, UCB_ADC_ENA | adc_channel |
147 UCB_ADC_START);
148
149 while (!((val = ucb1400_reg_read(ac97, UCB_ADC_DATA))
150 & UCB_ADC_DAT_VALID))
151 schedule_timeout_uninterruptible(1);
152
153 return val & UCB_ADC_DAT_MASK;
154}
155
156static inline void ucb1400_adc_disable(struct snd_ac97 *ac97)
157{
158 ucb1400_reg_write(ac97, UCB_ADC_CR, 0);
159}
160
161#endif
diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
index e65a6bed4e3e..303d93ffd6b2 100644
--- a/include/linux/videodev2.h
+++ b/include/linux/videodev2.h
@@ -334,6 +334,8 @@ struct v4l2_pix_format {
334#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */ 334#define V4L2_PIX_FMT_SPCA508 v4l2_fourcc('S', '5', '0', '8') /* YUVY per line */
335#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */ 335#define V4L2_PIX_FMT_SPCA561 v4l2_fourcc('S', '5', '6', '1') /* compressed GBRG bayer */
336#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */ 336#define V4L2_PIX_FMT_PAC207 v4l2_fourcc('P', '2', '0', '7') /* compressed BGGR bayer */
337#define V4L2_PIX_FMT_PJPG v4l2_fourcc('P', 'J', 'P', 'G') /* Pixart 73xx JPEG */
338#define V4L2_PIX_FMT_YVYU v4l2_fourcc('Y', 'V', 'Y', 'U') /* 16 YVU 4:2:2 */
337 339
338/* 340/*
339 * F O R M A T E N U M E R A T I O N 341 * F O R M A T E N U M E R A T I O N
diff --git a/include/linux/wm97xx_batt.h b/include/linux/wm97xx_batt.h
new file mode 100644
index 000000000000..9681d1ab0e4f
--- /dev/null
+++ b/include/linux/wm97xx_batt.h
@@ -0,0 +1,26 @@
1#ifndef _LINUX_WM97XX_BAT_H
2#define _LINUX_WM97XX_BAT_H
3
4#include <linux/wm97xx.h>
5
6struct wm97xx_batt_info {
7 int batt_aux;
8 int temp_aux;
9 int charge_gpio;
10 int min_voltage;
11 int max_voltage;
12 int batt_div;
13 int batt_mult;
14 int temp_div;
15 int temp_mult;
16 int batt_tech;
17 char *batt_name;
18};
19
20#ifdef CONFIG_BATTERY_WM97XX
21void __init wm97xx_bat_set_pdata(struct wm97xx_batt_info *data);
22#else
23static inline void wm97xx_bat_set_pdata(struct wm97xx_batt_info *data) {}
24#endif
25
26#endif
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
index cbf751094688..46a43b721dd6 100644
--- a/include/net/bluetooth/hci_core.h
+++ b/include/net/bluetooth/hci_core.h
@@ -325,7 +325,8 @@ int hci_conn_del(struct hci_conn *conn);
325void hci_conn_hash_flush(struct hci_dev *hdev); 325void hci_conn_hash_flush(struct hci_dev *hdev);
326void hci_conn_check_pending(struct hci_dev *hdev); 326void hci_conn_check_pending(struct hci_dev *hdev);
327 327
328struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *src); 328struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 auth_type);
329int hci_conn_check_link_mode(struct hci_conn *conn);
329int hci_conn_auth(struct hci_conn *conn); 330int hci_conn_auth(struct hci_conn *conn);
330int hci_conn_encrypt(struct hci_conn *conn); 331int hci_conn_encrypt(struct hci_conn *conn);
331int hci_conn_change_link_key(struct hci_conn *conn); 332int hci_conn_change_link_key(struct hci_conn *conn);
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
index 95c660c9719b..91324908fccd 100644
--- a/include/net/inet_timewait_sock.h
+++ b/include/net/inet_timewait_sock.h
@@ -208,6 +208,9 @@ extern void inet_twsk_schedule(struct inet_timewait_sock *tw,
208extern void inet_twsk_deschedule(struct inet_timewait_sock *tw, 208extern void inet_twsk_deschedule(struct inet_timewait_sock *tw,
209 struct inet_timewait_death_row *twdr); 209 struct inet_timewait_death_row *twdr);
210 210
211extern void inet_twsk_purge(struct net *net, struct inet_hashinfo *hashinfo,
212 struct inet_timewait_death_row *twdr, int family);
213
211static inline 214static inline
212struct net *twsk_net(const struct inet_timewait_sock *twsk) 215struct net *twsk_net(const struct inet_timewait_sock *twsk)
213{ 216{
diff --git a/include/net/netlink.h b/include/net/netlink.h
index 18024b8cecb8..208fe5a38546 100644
--- a/include/net/netlink.h
+++ b/include/net/netlink.h
@@ -702,7 +702,7 @@ static inline int nla_len(const struct nlattr *nla)
702 */ 702 */
703static inline int nla_ok(const struct nlattr *nla, int remaining) 703static inline int nla_ok(const struct nlattr *nla, int remaining)
704{ 704{
705 return remaining >= sizeof(*nla) && 705 return remaining >= (int) sizeof(*nla) &&
706 nla->nla_len >= sizeof(*nla) && 706 nla->nla_len >= sizeof(*nla) &&
707 nla->nla_len <= remaining; 707 nla->nla_len <= remaining;
708} 708}
diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
index b1d2cfea89c5..e5569625d2a5 100644
--- a/include/net/sch_generic.h
+++ b/include/net/sch_generic.h
@@ -217,6 +217,14 @@ static inline spinlock_t *qdisc_root_lock(struct Qdisc *qdisc)
217 return qdisc_lock(root); 217 return qdisc_lock(root);
218} 218}
219 219
220static inline spinlock_t *qdisc_root_sleeping_lock(struct Qdisc *qdisc)
221{
222 struct Qdisc *root = qdisc_root_sleeping(qdisc);
223
224 ASSERT_RTNL();
225 return qdisc_lock(root);
226}
227
220static inline struct net_device *qdisc_dev(struct Qdisc *qdisc) 228static inline struct net_device *qdisc_dev(struct Qdisc *qdisc)
221{ 229{
222 return qdisc->dev_queue->dev; 230 return qdisc->dev_queue->dev;
@@ -224,12 +232,12 @@ static inline struct net_device *qdisc_dev(struct Qdisc *qdisc)
224 232
225static inline void sch_tree_lock(struct Qdisc *q) 233static inline void sch_tree_lock(struct Qdisc *q)
226{ 234{
227 spin_lock_bh(qdisc_root_lock(q)); 235 spin_lock_bh(qdisc_root_sleeping_lock(q));
228} 236}
229 237
230static inline void sch_tree_unlock(struct Qdisc *q) 238static inline void sch_tree_unlock(struct Qdisc *q)
231{ 239{
232 spin_unlock_bh(qdisc_root_lock(q)); 240 spin_unlock_bh(qdisc_root_sleeping_lock(q));
233} 241}
234 242
235#define tcf_tree_lock(tp) sch_tree_lock((tp)->q) 243#define tcf_tree_lock(tp) sch_tree_lock((tp)->q)
diff --git a/include/scsi/scsi.h b/include/scsi/scsi.h
index 5c40cc537d4c..192f8716aa9e 100644
--- a/include/scsi/scsi.h
+++ b/include/scsi/scsi.h
@@ -309,6 +309,20 @@ struct scsi_lun {
309}; 309};
310 310
311/* 311/*
312 * The Well Known LUNS (SAM-3) in our int representation of a LUN
313 */
314#define SCSI_W_LUN_BASE 0xc100
315#define SCSI_W_LUN_REPORT_LUNS (SCSI_W_LUN_BASE + 1)
316#define SCSI_W_LUN_ACCESS_CONTROL (SCSI_W_LUN_BASE + 2)
317#define SCSI_W_LUN_TARGET_LOG_PAGE (SCSI_W_LUN_BASE + 3)
318
319static inline int scsi_is_wlun(unsigned int lun)
320{
321 return (lun & 0xff00) == SCSI_W_LUN_BASE;
322}
323
324
325/*
312 * MESSAGE CODES 326 * MESSAGE CODES
313 */ 327 */
314 328
diff --git a/include/video/atmel_lcdc.h b/include/video/atmel_lcdc.h
index 920c4e9cb93d..6ad87f485992 100644
--- a/include/video/atmel_lcdc.h
+++ b/include/video/atmel_lcdc.h
@@ -30,6 +30,7 @@
30 */ 30 */
31#define ATMEL_LCDC_WIRING_BGR 0 31#define ATMEL_LCDC_WIRING_BGR 0
32#define ATMEL_LCDC_WIRING_RGB 1 32#define ATMEL_LCDC_WIRING_RGB 1
33#define ATMEL_LCDC_WIRING_RGB555 2
33 34
34 35
35 /* LCD Controller info data structure, stored in device platform_data */ 36 /* LCD Controller info data structure, stored in device platform_data */
diff --git a/include/video/metronomefb.h b/include/video/metronomefb.h
index dab04b4fad7f..9863f4b6d418 100644
--- a/include/video/metronomefb.h
+++ b/include/video/metronomefb.h
@@ -12,14 +12,6 @@
12#ifndef _LINUX_METRONOMEFB_H_ 12#ifndef _LINUX_METRONOMEFB_H_
13#define _LINUX_METRONOMEFB_H_ 13#define _LINUX_METRONOMEFB_H_
14 14
15/* address and control descriptors used by metronome controller */
16struct metromem_desc {
17 u32 mFDADR0;
18 u32 mFSADR0;
19 u32 mFIDR0;
20 u32 mLDCMD0;
21};
22
23/* command structure used by metronome controller */ 15/* command structure used by metronome controller */
24struct metromem_cmd { 16struct metromem_cmd {
25 u16 opcode; 17 u16 opcode;
@@ -29,34 +21,37 @@ struct metromem_cmd {
29 21
30/* struct used by metronome. board specific stuff comes from *board */ 22/* struct used by metronome. board specific stuff comes from *board */
31struct metronomefb_par { 23struct metronomefb_par {
32 unsigned char *metromem;
33 struct metromem_desc *metromem_desc;
34 struct metromem_cmd *metromem_cmd; 24 struct metromem_cmd *metromem_cmd;
35 unsigned char *metromem_wfm; 25 unsigned char *metromem_wfm;
36 unsigned char *metromem_img; 26 unsigned char *metromem_img;
37 u16 *metromem_img_csum; 27 u16 *metromem_img_csum;
38 u16 *csum_table; 28 u16 *csum_table;
39 int metromemsize;
40 dma_addr_t metromem_dma; 29 dma_addr_t metromem_dma;
41 dma_addr_t metromem_desc_dma;
42 struct fb_info *info; 30 struct fb_info *info;
43 struct metronome_board *board; 31 struct metronome_board *board;
44 wait_queue_head_t waitq; 32 wait_queue_head_t waitq;
45 u8 frame_count; 33 u8 frame_count;
34 int extra_size;
35 int dt;
46}; 36};
47 37
48/* board specific routines */ 38/* board specific routines and data */
49struct metronome_board { 39struct metronome_board {
50 struct module *owner; 40 struct module *owner; /* the platform device */
51 void (*free_irq)(struct fb_info *);
52 void (*init_gpio_regs)(struct metronomefb_par *);
53 void (*init_lcdc_regs)(struct metronomefb_par *);
54 void (*post_dma_setup)(struct metronomefb_par *);
55 void (*set_rst)(struct metronomefb_par *, int); 41 void (*set_rst)(struct metronomefb_par *, int);
56 void (*set_stdby)(struct metronomefb_par *, int); 42 void (*set_stdby)(struct metronomefb_par *, int);
43 void (*cleanup)(struct metronomefb_par *);
57 int (*met_wait_event)(struct metronomefb_par *); 44 int (*met_wait_event)(struct metronomefb_par *);
58 int (*met_wait_event_intr)(struct metronomefb_par *); 45 int (*met_wait_event_intr)(struct metronomefb_par *);
59 int (*setup_irq)(struct fb_info *); 46 int (*setup_irq)(struct fb_info *);
47 int (*setup_fb)(struct metronomefb_par *);
48 int (*setup_io)(struct metronomefb_par *);
49 int (*get_panel_type)(void);
50 unsigned char *metromem;
51 int fw;
52 int fh;
53 int wfm_size;
54 struct fb_info *host_fbinfo; /* the host LCD controller's fbi */
60}; 55};
61 56
62#endif 57#endif
diff --git a/kernel/auditsc.c b/kernel/auditsc.c
index 972f8e61d36a..59cedfb040e7 100644
--- a/kernel/auditsc.c
+++ b/kernel/auditsc.c
@@ -243,10 +243,11 @@ static inline int open_arg(int flags, int mask)
243 243
244static int audit_match_perm(struct audit_context *ctx, int mask) 244static int audit_match_perm(struct audit_context *ctx, int mask)
245{ 245{
246 unsigned n;
246 if (unlikely(!ctx)) 247 if (unlikely(!ctx))
247 return 0; 248 return 0;
248 249
249 unsigned n = ctx->major; 250 n = ctx->major;
250 switch (audit_classify_syscall(ctx->arch, n)) { 251 switch (audit_classify_syscall(ctx->arch, n)) {
251 case 0: /* native */ 252 case 0: /* native */
252 if ((mask & AUDIT_PERM_WRITE) && 253 if ((mask & AUDIT_PERM_WRITE) &&
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index d5ab79cf516d..827cd9adccb2 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -14,6 +14,8 @@
14 * 2003-10-22 Updates by Stephen Hemminger. 14 * 2003-10-22 Updates by Stephen Hemminger.
15 * 2004 May-July Rework by Paul Jackson. 15 * 2004 May-July Rework by Paul Jackson.
16 * 2006 Rework by Paul Menage to use generic cgroups 16 * 2006 Rework by Paul Menage to use generic cgroups
17 * 2008 Rework of the scheduler domains and CPU hotplug handling
18 * by Max Krasnyansky
17 * 19 *
18 * This file is subject to the terms and conditions of the GNU General Public 20 * This file is subject to the terms and conditions of the GNU General Public
19 * License. See the file COPYING in the main directory of the Linux 21 * License. See the file COPYING in the main directory of the Linux
@@ -236,9 +238,11 @@ static struct cpuset top_cpuset = {
236 238
237static DEFINE_MUTEX(callback_mutex); 239static DEFINE_MUTEX(callback_mutex);
238 240
239/* This is ugly, but preserves the userspace API for existing cpuset 241/*
242 * This is ugly, but preserves the userspace API for existing cpuset
240 * users. If someone tries to mount the "cpuset" filesystem, we 243 * users. If someone tries to mount the "cpuset" filesystem, we
241 * silently switch it to mount "cgroup" instead */ 244 * silently switch it to mount "cgroup" instead
245 */
242static int cpuset_get_sb(struct file_system_type *fs_type, 246static int cpuset_get_sb(struct file_system_type *fs_type,
243 int flags, const char *unused_dev_name, 247 int flags, const char *unused_dev_name,
244 void *data, struct vfsmount *mnt) 248 void *data, struct vfsmount *mnt)
@@ -473,10 +477,9 @@ static int validate_change(const struct cpuset *cur, const struct cpuset *trial)
473} 477}
474 478
475/* 479/*
476 * Helper routine for rebuild_sched_domains(). 480 * Helper routine for generate_sched_domains().
477 * Do cpusets a, b have overlapping cpus_allowed masks? 481 * Do cpusets a, b have overlapping cpus_allowed masks?
478 */ 482 */
479
480static int cpusets_overlap(struct cpuset *a, struct cpuset *b) 483static int cpusets_overlap(struct cpuset *a, struct cpuset *b)
481{ 484{
482 return cpus_intersects(a->cpus_allowed, b->cpus_allowed); 485 return cpus_intersects(a->cpus_allowed, b->cpus_allowed);
@@ -518,26 +521,15 @@ update_domain_attr_tree(struct sched_domain_attr *dattr, struct cpuset *c)
518} 521}
519 522
520/* 523/*
521 * rebuild_sched_domains() 524 * generate_sched_domains()
522 * 525 *
523 * This routine will be called to rebuild the scheduler's dynamic 526 * This function builds a partial partition of the systems CPUs
524 * sched domains: 527 * A 'partial partition' is a set of non-overlapping subsets whose
525 * - if the flag 'sched_load_balance' of any cpuset with non-empty 528 * union is a subset of that set.
526 * 'cpus' changes, 529 * The output of this function needs to be passed to kernel/sched.c
527 * - or if the 'cpus' allowed changes in any cpuset which has that 530 * partition_sched_domains() routine, which will rebuild the scheduler's
528 * flag enabled, 531 * load balancing domains (sched domains) as specified by that partial
529 * - or if the 'sched_relax_domain_level' of any cpuset which has 532 * partition.
530 * that flag enabled and with non-empty 'cpus' changes,
531 * - or if any cpuset with non-empty 'cpus' is removed,
532 * - or if a cpu gets offlined.
533 *
534 * This routine builds a partial partition of the systems CPUs
535 * (the set of non-overlappping cpumask_t's in the array 'part'
536 * below), and passes that partial partition to the kernel/sched.c
537 * partition_sched_domains() routine, which will rebuild the
538 * schedulers load balancing domains (sched domains) as specified
539 * by that partial partition. A 'partial partition' is a set of
540 * non-overlapping subsets whose union is a subset of that set.
541 * 533 *
542 * See "What is sched_load_balance" in Documentation/cpusets.txt 534 * See "What is sched_load_balance" in Documentation/cpusets.txt
543 * for a background explanation of this. 535 * for a background explanation of this.
@@ -547,13 +539,7 @@ update_domain_attr_tree(struct sched_domain_attr *dattr, struct cpuset *c)
547 * domains when operating in the severe memory shortage situations 539 * domains when operating in the severe memory shortage situations
548 * that could cause allocation failures below. 540 * that could cause allocation failures below.
549 * 541 *
550 * Call with cgroup_mutex held. May take callback_mutex during 542 * Must be called with cgroup_lock held.
551 * call due to the kfifo_alloc() and kmalloc() calls. May nest
552 * a call to the get_online_cpus()/put_online_cpus() pair.
553 * Must not be called holding callback_mutex, because we must not
554 * call get_online_cpus() while holding callback_mutex. Elsewhere
555 * the kernel nests callback_mutex inside get_online_cpus() calls.
556 * So the reverse nesting would risk an ABBA deadlock.
557 * 543 *
558 * The three key local variables below are: 544 * The three key local variables below are:
559 * q - a linked-list queue of cpuset pointers, used to implement a 545 * q - a linked-list queue of cpuset pointers, used to implement a
@@ -588,10 +574,10 @@ update_domain_attr_tree(struct sched_domain_attr *dattr, struct cpuset *c)
588 * element of the partition (one sched domain) to be passed to 574 * element of the partition (one sched domain) to be passed to
589 * partition_sched_domains(). 575 * partition_sched_domains().
590 */ 576 */
591 577static int generate_sched_domains(cpumask_t **domains,
592void rebuild_sched_domains(void) 578 struct sched_domain_attr **attributes)
593{ 579{
594 LIST_HEAD(q); /* queue of cpusets to be scanned*/ 580 LIST_HEAD(q); /* queue of cpusets to be scanned */
595 struct cpuset *cp; /* scans q */ 581 struct cpuset *cp; /* scans q */
596 struct cpuset **csa; /* array of all cpuset ptrs */ 582 struct cpuset **csa; /* array of all cpuset ptrs */
597 int csn; /* how many cpuset ptrs in csa so far */ 583 int csn; /* how many cpuset ptrs in csa so far */
@@ -601,23 +587,26 @@ void rebuild_sched_domains(void)
601 int ndoms; /* number of sched domains in result */ 587 int ndoms; /* number of sched domains in result */
602 int nslot; /* next empty doms[] cpumask_t slot */ 588 int nslot; /* next empty doms[] cpumask_t slot */
603 589
604 csa = NULL; 590 ndoms = 0;
605 doms = NULL; 591 doms = NULL;
606 dattr = NULL; 592 dattr = NULL;
593 csa = NULL;
607 594
608 /* Special case for the 99% of systems with one, full, sched domain */ 595 /* Special case for the 99% of systems with one, full, sched domain */
609 if (is_sched_load_balance(&top_cpuset)) { 596 if (is_sched_load_balance(&top_cpuset)) {
610 ndoms = 1;
611 doms = kmalloc(sizeof(cpumask_t), GFP_KERNEL); 597 doms = kmalloc(sizeof(cpumask_t), GFP_KERNEL);
612 if (!doms) 598 if (!doms)
613 goto rebuild; 599 goto done;
600
614 dattr = kmalloc(sizeof(struct sched_domain_attr), GFP_KERNEL); 601 dattr = kmalloc(sizeof(struct sched_domain_attr), GFP_KERNEL);
615 if (dattr) { 602 if (dattr) {
616 *dattr = SD_ATTR_INIT; 603 *dattr = SD_ATTR_INIT;
617 update_domain_attr_tree(dattr, &top_cpuset); 604 update_domain_attr_tree(dattr, &top_cpuset);
618 } 605 }
619 *doms = top_cpuset.cpus_allowed; 606 *doms = top_cpuset.cpus_allowed;
620 goto rebuild; 607
608 ndoms = 1;
609 goto done;
621 } 610 }
622 611
623 csa = kmalloc(number_of_cpusets * sizeof(cp), GFP_KERNEL); 612 csa = kmalloc(number_of_cpusets * sizeof(cp), GFP_KERNEL);
@@ -680,61 +669,141 @@ restart:
680 } 669 }
681 } 670 }
682 671
683 /* Convert <csn, csa> to <ndoms, doms> */ 672 /*
673 * Now we know how many domains to create.
674 * Convert <csn, csa> to <ndoms, doms> and populate cpu masks.
675 */
684 doms = kmalloc(ndoms * sizeof(cpumask_t), GFP_KERNEL); 676 doms = kmalloc(ndoms * sizeof(cpumask_t), GFP_KERNEL);
685 if (!doms) 677 if (!doms) {
686 goto rebuild; 678 ndoms = 0;
679 goto done;
680 }
681
682 /*
683 * The rest of the code, including the scheduler, can deal with
684 * dattr==NULL case. No need to abort if alloc fails.
685 */
687 dattr = kmalloc(ndoms * sizeof(struct sched_domain_attr), GFP_KERNEL); 686 dattr = kmalloc(ndoms * sizeof(struct sched_domain_attr), GFP_KERNEL);
688 687
689 for (nslot = 0, i = 0; i < csn; i++) { 688 for (nslot = 0, i = 0; i < csn; i++) {
690 struct cpuset *a = csa[i]; 689 struct cpuset *a = csa[i];
690 cpumask_t *dp;
691 int apn = a->pn; 691 int apn = a->pn;
692 692
693 if (apn >= 0) { 693 if (apn < 0) {
694 cpumask_t *dp = doms + nslot; 694 /* Skip completed partitions */
695 695 continue;
696 if (nslot == ndoms) { 696 }
697 static int warnings = 10; 697
698 if (warnings) { 698 dp = doms + nslot;
699 printk(KERN_WARNING 699
700 "rebuild_sched_domains confused:" 700 if (nslot == ndoms) {
701 " nslot %d, ndoms %d, csn %d, i %d," 701 static int warnings = 10;
702 " apn %d\n", 702 if (warnings) {
703 nslot, ndoms, csn, i, apn); 703 printk(KERN_WARNING
704 warnings--; 704 "rebuild_sched_domains confused:"
705 } 705 " nslot %d, ndoms %d, csn %d, i %d,"
706 continue; 706 " apn %d\n",
707 nslot, ndoms, csn, i, apn);
708 warnings--;
707 } 709 }
710 continue;
711 }
708 712
709 cpus_clear(*dp); 713 cpus_clear(*dp);
710 if (dattr) 714 if (dattr)
711 *(dattr + nslot) = SD_ATTR_INIT; 715 *(dattr + nslot) = SD_ATTR_INIT;
712 for (j = i; j < csn; j++) { 716 for (j = i; j < csn; j++) {
713 struct cpuset *b = csa[j]; 717 struct cpuset *b = csa[j];
714 718
715 if (apn == b->pn) { 719 if (apn == b->pn) {
716 cpus_or(*dp, *dp, b->cpus_allowed); 720 cpus_or(*dp, *dp, b->cpus_allowed);
717 b->pn = -1; 721 if (dattr)
718 if (dattr) 722 update_domain_attr_tree(dattr + nslot, b);
719 update_domain_attr_tree(dattr 723
720 + nslot, b); 724 /* Done with this partition */
721 } 725 b->pn = -1;
722 } 726 }
723 nslot++;
724 } 727 }
728 nslot++;
725 } 729 }
726 BUG_ON(nslot != ndoms); 730 BUG_ON(nslot != ndoms);
727 731
728rebuild: 732done:
729 /* Have scheduler rebuild sched domains */ 733 kfree(csa);
734
735 *domains = doms;
736 *attributes = dattr;
737 return ndoms;
738}
739
740/*
741 * Rebuild scheduler domains.
742 *
743 * Call with neither cgroup_mutex held nor within get_online_cpus().
744 * Takes both cgroup_mutex and get_online_cpus().
745 *
746 * Cannot be directly called from cpuset code handling changes
747 * to the cpuset pseudo-filesystem, because it cannot be called
748 * from code that already holds cgroup_mutex.
749 */
750static void do_rebuild_sched_domains(struct work_struct *unused)
751{
752 struct sched_domain_attr *attr;
753 cpumask_t *doms;
754 int ndoms;
755
730 get_online_cpus(); 756 get_online_cpus();
731 partition_sched_domains(ndoms, doms, dattr); 757
758 /* Generate domain masks and attrs */
759 cgroup_lock();
760 ndoms = generate_sched_domains(&doms, &attr);
761 cgroup_unlock();
762
763 /* Have scheduler rebuild the domains */
764 partition_sched_domains(ndoms, doms, attr);
765
732 put_online_cpus(); 766 put_online_cpus();
767}
733 768
734done: 769static DECLARE_WORK(rebuild_sched_domains_work, do_rebuild_sched_domains);
735 kfree(csa); 770
736 /* Don't kfree(doms) -- partition_sched_domains() does that. */ 771/*
737 /* Don't kfree(dattr) -- partition_sched_domains() does that. */ 772 * Rebuild scheduler domains, asynchronously via workqueue.
773 *
774 * If the flag 'sched_load_balance' of any cpuset with non-empty
775 * 'cpus' changes, or if the 'cpus' allowed changes in any cpuset
776 * which has that flag enabled, or if any cpuset with a non-empty
777 * 'cpus' is removed, then call this routine to rebuild the
778 * scheduler's dynamic sched domains.
779 *
780 * The rebuild_sched_domains() and partition_sched_domains()
781 * routines must nest cgroup_lock() inside get_online_cpus(),
782 * but such cpuset changes as these must nest that locking the
783 * other way, holding cgroup_lock() for much of the code.
784 *
785 * So in order to avoid an ABBA deadlock, the cpuset code handling
786 * these user changes delegates the actual sched domain rebuilding
787 * to a separate workqueue thread, which ends up processing the
788 * above do_rebuild_sched_domains() function.
789 */
790static void async_rebuild_sched_domains(void)
791{
792 schedule_work(&rebuild_sched_domains_work);
793}
794
795/*
796 * Accomplishes the same scheduler domain rebuild as the above
797 * async_rebuild_sched_domains(), however it directly calls the
798 * rebuild routine synchronously rather than calling it via an
799 * asynchronous work thread.
800 *
801 * This can only be called from code that is not holding
802 * cgroup_mutex (not nested in a cgroup_lock() call.)
803 */
804void rebuild_sched_domains(void)
805{
806 do_rebuild_sched_domains(NULL);
738} 807}
739 808
740/** 809/**
@@ -774,37 +843,25 @@ static void cpuset_change_cpumask(struct task_struct *tsk,
774/** 843/**
775 * update_tasks_cpumask - Update the cpumasks of tasks in the cpuset. 844 * update_tasks_cpumask - Update the cpumasks of tasks in the cpuset.
776 * @cs: the cpuset in which each task's cpus_allowed mask needs to be changed 845 * @cs: the cpuset in which each task's cpus_allowed mask needs to be changed
846 * @heap: if NULL, defer allocating heap memory to cgroup_scan_tasks()
777 * 847 *
778 * Called with cgroup_mutex held 848 * Called with cgroup_mutex held
779 * 849 *
780 * The cgroup_scan_tasks() function will scan all the tasks in a cgroup, 850 * The cgroup_scan_tasks() function will scan all the tasks in a cgroup,
781 * calling callback functions for each. 851 * calling callback functions for each.
782 * 852 *
783 * Return 0 if successful, -errno if not. 853 * No return value. It's guaranteed that cgroup_scan_tasks() always returns 0
854 * if @heap != NULL.
784 */ 855 */
785static int update_tasks_cpumask(struct cpuset *cs) 856static void update_tasks_cpumask(struct cpuset *cs, struct ptr_heap *heap)
786{ 857{
787 struct cgroup_scanner scan; 858 struct cgroup_scanner scan;
788 struct ptr_heap heap;
789 int retval;
790
791 /*
792 * cgroup_scan_tasks() will initialize heap->gt for us.
793 * heap_init() is still needed here for we should not change
794 * cs->cpus_allowed when heap_init() fails.
795 */
796 retval = heap_init(&heap, PAGE_SIZE, GFP_KERNEL, NULL);
797 if (retval)
798 return retval;
799 859
800 scan.cg = cs->css.cgroup; 860 scan.cg = cs->css.cgroup;
801 scan.test_task = cpuset_test_cpumask; 861 scan.test_task = cpuset_test_cpumask;
802 scan.process_task = cpuset_change_cpumask; 862 scan.process_task = cpuset_change_cpumask;
803 scan.heap = &heap; 863 scan.heap = heap;
804 retval = cgroup_scan_tasks(&scan); 864 cgroup_scan_tasks(&scan);
805
806 heap_free(&heap);
807 return retval;
808} 865}
809 866
810/** 867/**
@@ -814,6 +871,7 @@ static int update_tasks_cpumask(struct cpuset *cs)
814 */ 871 */
815static int update_cpumask(struct cpuset *cs, const char *buf) 872static int update_cpumask(struct cpuset *cs, const char *buf)
816{ 873{
874 struct ptr_heap heap;
817 struct cpuset trialcs; 875 struct cpuset trialcs;
818 int retval; 876 int retval;
819 int is_load_balanced; 877 int is_load_balanced;
@@ -848,6 +906,10 @@ static int update_cpumask(struct cpuset *cs, const char *buf)
848 if (cpus_equal(cs->cpus_allowed, trialcs.cpus_allowed)) 906 if (cpus_equal(cs->cpus_allowed, trialcs.cpus_allowed))
849 return 0; 907 return 0;
850 908
909 retval = heap_init(&heap, PAGE_SIZE, GFP_KERNEL, NULL);
910 if (retval)
911 return retval;
912
851 is_load_balanced = is_sched_load_balance(&trialcs); 913 is_load_balanced = is_sched_load_balance(&trialcs);
852 914
853 mutex_lock(&callback_mutex); 915 mutex_lock(&callback_mutex);
@@ -858,12 +920,12 @@ static int update_cpumask(struct cpuset *cs, const char *buf)
858 * Scan tasks in the cpuset, and update the cpumasks of any 920 * Scan tasks in the cpuset, and update the cpumasks of any
859 * that need an update. 921 * that need an update.
860 */ 922 */
861 retval = update_tasks_cpumask(cs); 923 update_tasks_cpumask(cs, &heap);
862 if (retval < 0) 924
863 return retval; 925 heap_free(&heap);
864 926
865 if (is_load_balanced) 927 if (is_load_balanced)
866 rebuild_sched_domains(); 928 async_rebuild_sched_domains();
867 return 0; 929 return 0;
868} 930}
869 931
@@ -1090,7 +1152,7 @@ static int update_relax_domain_level(struct cpuset *cs, s64 val)
1090 if (val != cs->relax_domain_level) { 1152 if (val != cs->relax_domain_level) {
1091 cs->relax_domain_level = val; 1153 cs->relax_domain_level = val;
1092 if (!cpus_empty(cs->cpus_allowed) && is_sched_load_balance(cs)) 1154 if (!cpus_empty(cs->cpus_allowed) && is_sched_load_balance(cs))
1093 rebuild_sched_domains(); 1155 async_rebuild_sched_domains();
1094 } 1156 }
1095 1157
1096 return 0; 1158 return 0;
@@ -1131,7 +1193,7 @@ static int update_flag(cpuset_flagbits_t bit, struct cpuset *cs,
1131 mutex_unlock(&callback_mutex); 1193 mutex_unlock(&callback_mutex);
1132 1194
1133 if (cpus_nonempty && balance_flag_changed) 1195 if (cpus_nonempty && balance_flag_changed)
1134 rebuild_sched_domains(); 1196 async_rebuild_sched_domains();
1135 1197
1136 return 0; 1198 return 0;
1137} 1199}
@@ -1492,6 +1554,9 @@ static u64 cpuset_read_u64(struct cgroup *cont, struct cftype *cft)
1492 default: 1554 default:
1493 BUG(); 1555 BUG();
1494 } 1556 }
1557
1558 /* Unreachable but makes gcc happy */
1559 return 0;
1495} 1560}
1496 1561
1497static s64 cpuset_read_s64(struct cgroup *cont, struct cftype *cft) 1562static s64 cpuset_read_s64(struct cgroup *cont, struct cftype *cft)
@@ -1504,6 +1569,9 @@ static s64 cpuset_read_s64(struct cgroup *cont, struct cftype *cft)
1504 default: 1569 default:
1505 BUG(); 1570 BUG();
1506 } 1571 }
1572
1573 /* Unrechable but makes gcc happy */
1574 return 0;
1507} 1575}
1508 1576
1509 1577
@@ -1692,15 +1760,9 @@ static struct cgroup_subsys_state *cpuset_create(
1692} 1760}
1693 1761
1694/* 1762/*
1695 * Locking note on the strange update_flag() call below:
1696 *
1697 * If the cpuset being removed has its flag 'sched_load_balance' 1763 * If the cpuset being removed has its flag 'sched_load_balance'
1698 * enabled, then simulate turning sched_load_balance off, which 1764 * enabled, then simulate turning sched_load_balance off, which
1699 * will call rebuild_sched_domains(). The get_online_cpus() 1765 * will call async_rebuild_sched_domains().
1700 * call in rebuild_sched_domains() must not be made while holding
1701 * callback_mutex. Elsewhere the kernel nests callback_mutex inside
1702 * get_online_cpus() calls. So the reverse nesting would risk an
1703 * ABBA deadlock.
1704 */ 1766 */
1705 1767
1706static void cpuset_destroy(struct cgroup_subsys *ss, struct cgroup *cont) 1768static void cpuset_destroy(struct cgroup_subsys *ss, struct cgroup *cont)
@@ -1719,7 +1781,7 @@ static void cpuset_destroy(struct cgroup_subsys *ss, struct cgroup *cont)
1719struct cgroup_subsys cpuset_subsys = { 1781struct cgroup_subsys cpuset_subsys = {
1720 .name = "cpuset", 1782 .name = "cpuset",
1721 .create = cpuset_create, 1783 .create = cpuset_create,
1722 .destroy = cpuset_destroy, 1784 .destroy = cpuset_destroy,
1723 .can_attach = cpuset_can_attach, 1785 .can_attach = cpuset_can_attach,
1724 .attach = cpuset_attach, 1786 .attach = cpuset_attach,
1725 .populate = cpuset_populate, 1787 .populate = cpuset_populate,
@@ -1811,7 +1873,7 @@ static void move_member_tasks_to_cpuset(struct cpuset *from, struct cpuset *to)
1811} 1873}
1812 1874
1813/* 1875/*
1814 * If common_cpu_mem_hotplug_unplug(), below, unplugs any CPUs 1876 * If CPU and/or memory hotplug handlers, below, unplug any CPUs
1815 * or memory nodes, we need to walk over the cpuset hierarchy, 1877 * or memory nodes, we need to walk over the cpuset hierarchy,
1816 * removing that CPU or node from all cpusets. If this removes the 1878 * removing that CPU or node from all cpusets. If this removes the
1817 * last CPU or node from a cpuset, then move the tasks in the empty 1879 * last CPU or node from a cpuset, then move the tasks in the empty
@@ -1896,42 +1958,13 @@ static void scan_for_empty_cpusets(const struct cpuset *root)
1896 nodes_empty(cp->mems_allowed)) 1958 nodes_empty(cp->mems_allowed))
1897 remove_tasks_in_empty_cpuset(cp); 1959 remove_tasks_in_empty_cpuset(cp);
1898 else { 1960 else {
1899 update_tasks_cpumask(cp); 1961 update_tasks_cpumask(cp, NULL);
1900 update_tasks_nodemask(cp, &oldmems); 1962 update_tasks_nodemask(cp, &oldmems);
1901 } 1963 }
1902 } 1964 }
1903} 1965}
1904 1966
1905/* 1967/*
1906 * The cpus_allowed and mems_allowed nodemasks in the top_cpuset track
1907 * cpu_online_map and node_states[N_HIGH_MEMORY]. Force the top cpuset to
1908 * track what's online after any CPU or memory node hotplug or unplug event.
1909 *
1910 * Since there are two callers of this routine, one for CPU hotplug
1911 * events and one for memory node hotplug events, we could have coded
1912 * two separate routines here. We code it as a single common routine
1913 * in order to minimize text size.
1914 */
1915
1916static void common_cpu_mem_hotplug_unplug(int rebuild_sd)
1917{
1918 cgroup_lock();
1919
1920 top_cpuset.cpus_allowed = cpu_online_map;
1921 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
1922 scan_for_empty_cpusets(&top_cpuset);
1923
1924 /*
1925 * Scheduler destroys domains on hotplug events.
1926 * Rebuild them based on the current settings.
1927 */
1928 if (rebuild_sd)
1929 rebuild_sched_domains();
1930
1931 cgroup_unlock();
1932}
1933
1934/*
1935 * The top_cpuset tracks what CPUs and Memory Nodes are online, 1968 * The top_cpuset tracks what CPUs and Memory Nodes are online,
1936 * period. This is necessary in order to make cpusets transparent 1969 * period. This is necessary in order to make cpusets transparent
1937 * (of no affect) on systems that are actively using CPU hotplug 1970 * (of no affect) on systems that are actively using CPU hotplug
@@ -1939,40 +1972,52 @@ static void common_cpu_mem_hotplug_unplug(int rebuild_sd)
1939 * 1972 *
1940 * This routine ensures that top_cpuset.cpus_allowed tracks 1973 * This routine ensures that top_cpuset.cpus_allowed tracks
1941 * cpu_online_map on each CPU hotplug (cpuhp) event. 1974 * cpu_online_map on each CPU hotplug (cpuhp) event.
1975 *
1976 * Called within get_online_cpus(). Needs to call cgroup_lock()
1977 * before calling generate_sched_domains().
1942 */ 1978 */
1943 1979static int cpuset_track_online_cpus(struct notifier_block *unused_nb,
1944static int cpuset_handle_cpuhp(struct notifier_block *unused_nb,
1945 unsigned long phase, void *unused_cpu) 1980 unsigned long phase, void *unused_cpu)
1946{ 1981{
1982 struct sched_domain_attr *attr;
1983 cpumask_t *doms;
1984 int ndoms;
1985
1947 switch (phase) { 1986 switch (phase) {
1948 case CPU_UP_CANCELED:
1949 case CPU_UP_CANCELED_FROZEN:
1950 case CPU_DOWN_FAILED:
1951 case CPU_DOWN_FAILED_FROZEN:
1952 case CPU_ONLINE: 1987 case CPU_ONLINE:
1953 case CPU_ONLINE_FROZEN: 1988 case CPU_ONLINE_FROZEN:
1954 case CPU_DEAD: 1989 case CPU_DEAD:
1955 case CPU_DEAD_FROZEN: 1990 case CPU_DEAD_FROZEN:
1956 common_cpu_mem_hotplug_unplug(1);
1957 break; 1991 break;
1992
1958 default: 1993 default:
1959 return NOTIFY_DONE; 1994 return NOTIFY_DONE;
1960 } 1995 }
1961 1996
1997 cgroup_lock();
1998 top_cpuset.cpus_allowed = cpu_online_map;
1999 scan_for_empty_cpusets(&top_cpuset);
2000 ndoms = generate_sched_domains(&doms, &attr);
2001 cgroup_unlock();
2002
2003 /* Have scheduler rebuild the domains */
2004 partition_sched_domains(ndoms, doms, attr);
2005
1962 return NOTIFY_OK; 2006 return NOTIFY_OK;
1963} 2007}
1964 2008
1965#ifdef CONFIG_MEMORY_HOTPLUG 2009#ifdef CONFIG_MEMORY_HOTPLUG
1966/* 2010/*
1967 * Keep top_cpuset.mems_allowed tracking node_states[N_HIGH_MEMORY]. 2011 * Keep top_cpuset.mems_allowed tracking node_states[N_HIGH_MEMORY].
1968 * Call this routine anytime after you change 2012 * Call this routine anytime after node_states[N_HIGH_MEMORY] changes.
1969 * node_states[N_HIGH_MEMORY]. 2013 * See also the previous routine cpuset_track_online_cpus().
1970 * See also the previous routine cpuset_handle_cpuhp().
1971 */ 2014 */
1972
1973void cpuset_track_online_nodes(void) 2015void cpuset_track_online_nodes(void)
1974{ 2016{
1975 common_cpu_mem_hotplug_unplug(0); 2017 cgroup_lock();
2018 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
2019 scan_for_empty_cpusets(&top_cpuset);
2020 cgroup_unlock();
1976} 2021}
1977#endif 2022#endif
1978 2023
@@ -1987,7 +2032,7 @@ void __init cpuset_init_smp(void)
1987 top_cpuset.cpus_allowed = cpu_online_map; 2032 top_cpuset.cpus_allowed = cpu_online_map;
1988 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY]; 2033 top_cpuset.mems_allowed = node_states[N_HIGH_MEMORY];
1989 2034
1990 hotcpu_notifier(cpuset_handle_cpuhp, 0); 2035 hotcpu_notifier(cpuset_track_online_cpus, 0);
1991} 2036}
1992 2037
1993/** 2038/**
diff --git a/kernel/exit.c b/kernel/exit.c
index 38ec40630149..16395644a98f 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -112,9 +112,9 @@ static void __exit_signal(struct task_struct *tsk)
112 * We won't ever get here for the group leader, since it 112 * We won't ever get here for the group leader, since it
113 * will have been the last reference on the signal_struct. 113 * will have been the last reference on the signal_struct.
114 */ 114 */
115 sig->utime = cputime_add(sig->utime, tsk->utime); 115 sig->utime = cputime_add(sig->utime, task_utime(tsk));
116 sig->stime = cputime_add(sig->stime, tsk->stime); 116 sig->stime = cputime_add(sig->stime, task_stime(tsk));
117 sig->gtime = cputime_add(sig->gtime, tsk->gtime); 117 sig->gtime = cputime_add(sig->gtime, task_gtime(tsk));
118 sig->min_flt += tsk->min_flt; 118 sig->min_flt += tsk->min_flt;
119 sig->maj_flt += tsk->maj_flt; 119 sig->maj_flt += tsk->maj_flt;
120 sig->nvcsw += tsk->nvcsw; 120 sig->nvcsw += tsk->nvcsw;
@@ -831,26 +831,50 @@ static void reparent_thread(struct task_struct *p, struct task_struct *father)
831 * the child reaper process (ie "init") in our pid 831 * the child reaper process (ie "init") in our pid
832 * space. 832 * space.
833 */ 833 */
834static struct task_struct *find_new_reaper(struct task_struct *father)
835{
836 struct pid_namespace *pid_ns = task_active_pid_ns(father);
837 struct task_struct *thread;
838
839 thread = father;
840 while_each_thread(father, thread) {
841 if (thread->flags & PF_EXITING)
842 continue;
843 if (unlikely(pid_ns->child_reaper == father))
844 pid_ns->child_reaper = thread;
845 return thread;
846 }
847
848 if (unlikely(pid_ns->child_reaper == father)) {
849 write_unlock_irq(&tasklist_lock);
850 if (unlikely(pid_ns == &init_pid_ns))
851 panic("Attempted to kill init!");
852
853 zap_pid_ns_processes(pid_ns);
854 write_lock_irq(&tasklist_lock);
855 /*
856 * We can not clear ->child_reaper or leave it alone.
857 * There may by stealth EXIT_DEAD tasks on ->children,
858 * forget_original_parent() must move them somewhere.
859 */
860 pid_ns->child_reaper = init_pid_ns.child_reaper;
861 }
862
863 return pid_ns->child_reaper;
864}
865
834static void forget_original_parent(struct task_struct *father) 866static void forget_original_parent(struct task_struct *father)
835{ 867{
836 struct task_struct *p, *n, *reaper = father; 868 struct task_struct *p, *n, *reaper;
837 LIST_HEAD(ptrace_dead); 869 LIST_HEAD(ptrace_dead);
838 870
839 write_lock_irq(&tasklist_lock); 871 write_lock_irq(&tasklist_lock);
840 872 reaper = find_new_reaper(father);
841 /* 873 /*
842 * First clean up ptrace if we were using it. 874 * First clean up ptrace if we were using it.
843 */ 875 */
844 ptrace_exit(father, &ptrace_dead); 876 ptrace_exit(father, &ptrace_dead);
845 877
846 do {
847 reaper = next_thread(reaper);
848 if (reaper == father) {
849 reaper = task_child_reaper(father);
850 break;
851 }
852 } while (reaper->flags & PF_EXITING);
853
854 list_for_each_entry_safe(p, n, &father->children, sibling) { 878 list_for_each_entry_safe(p, n, &father->children, sibling) {
855 p->real_parent = reaper; 879 p->real_parent = reaper;
856 if (p->parent == father) { 880 if (p->parent == father) {
@@ -918,8 +942,8 @@ static void exit_notify(struct task_struct *tsk, int group_dead)
918 942
919 /* mt-exec, de_thread() is waiting for us */ 943 /* mt-exec, de_thread() is waiting for us */
920 if (thread_group_leader(tsk) && 944 if (thread_group_leader(tsk) &&
921 tsk->signal->notify_count < 0 && 945 tsk->signal->group_exit_task &&
922 tsk->signal->group_exit_task) 946 tsk->signal->notify_count < 0)
923 wake_up_process(tsk->signal->group_exit_task); 947 wake_up_process(tsk->signal->group_exit_task);
924 948
925 write_unlock_irq(&tasklist_lock); 949 write_unlock_irq(&tasklist_lock);
@@ -959,39 +983,6 @@ static void check_stack_usage(void)
959static inline void check_stack_usage(void) {} 983static inline void check_stack_usage(void) {}
960#endif 984#endif
961 985
962static inline void exit_child_reaper(struct task_struct *tsk)
963{
964 if (likely(tsk->group_leader != task_child_reaper(tsk)))
965 return;
966
967 if (tsk->nsproxy->pid_ns == &init_pid_ns)
968 panic("Attempted to kill init!");
969
970 /*
971 * @tsk is the last thread in the 'cgroup-init' and is exiting.
972 * Terminate all remaining processes in the namespace and reap them
973 * before exiting @tsk.
974 *
975 * Note that @tsk (last thread of cgroup-init) may not necessarily
976 * be the child-reaper (i.e main thread of cgroup-init) of the
977 * namespace i.e the child_reaper may have already exited.
978 *
979 * Even after a child_reaper exits, we let it inherit orphaned children,
980 * because, pid_ns->child_reaper remains valid as long as there is
981 * at least one living sub-thread in the cgroup init.
982
983 * This living sub-thread of the cgroup-init will be notified when
984 * a child inherited by the 'child-reaper' exits (do_notify_parent()
985 * uses __group_send_sig_info()). Further, when reaping child processes,
986 * do_wait() iterates over children of all living sub threads.
987
988 * i.e even though 'child_reaper' thread is listed as the parent of the
989 * orphaned children, any living sub-thread in the cgroup-init can
990 * perform the role of the child_reaper.
991 */
992 zap_pid_ns_processes(tsk->nsproxy->pid_ns);
993}
994
995NORET_TYPE void do_exit(long code) 986NORET_TYPE void do_exit(long code)
996{ 987{
997 struct task_struct *tsk = current; 988 struct task_struct *tsk = current;
@@ -1051,7 +1042,6 @@ NORET_TYPE void do_exit(long code)
1051 } 1042 }
1052 group_dead = atomic_dec_and_test(&tsk->signal->live); 1043 group_dead = atomic_dec_and_test(&tsk->signal->live);
1053 if (group_dead) { 1044 if (group_dead) {
1054 exit_child_reaper(tsk);
1055 hrtimer_cancel(&tsk->signal->real_timer); 1045 hrtimer_cancel(&tsk->signal->real_timer);
1056 exit_itimers(tsk->signal); 1046 exit_itimers(tsk->signal);
1057 } 1047 }
diff --git a/kernel/lockdep.c b/kernel/lockdep.c
index 3bfb1877a003..dbda475b13bd 100644
--- a/kernel/lockdep.c
+++ b/kernel/lockdep.c
@@ -875,11 +875,11 @@ static int add_lock_to_list(struct lock_class *class, struct lock_class *this,
875 if (!entry) 875 if (!entry)
876 return 0; 876 return 0;
877 877
878 entry->class = this;
879 entry->distance = distance;
880 if (!save_trace(&entry->trace)) 878 if (!save_trace(&entry->trace))
881 return 0; 879 return 0;
882 880
881 entry->class = this;
882 entry->distance = distance;
883 /* 883 /*
884 * Since we never remove from the dependency list, the list can 884 * Since we never remove from the dependency list, the list can
885 * be walked lockless by other CPUs, it's only allocation 885 * be walked lockless by other CPUs, it's only allocation
@@ -3029,7 +3029,7 @@ found_it:
3029 3029
3030 stats = get_lock_stats(hlock_class(hlock)); 3030 stats = get_lock_stats(hlock_class(hlock));
3031 if (point < ARRAY_SIZE(stats->contention_point)) 3031 if (point < ARRAY_SIZE(stats->contention_point))
3032 stats->contention_point[i]++; 3032 stats->contention_point[point]++;
3033 if (lock->cpu != smp_processor_id()) 3033 if (lock->cpu != smp_processor_id())
3034 stats->bounces[bounce_contended + !!hlock->read]++; 3034 stats->bounces[bounce_contended + !!hlock->read]++;
3035 put_lock_stats(stats); 3035 put_lock_stats(stats);
diff --git a/kernel/lockdep_proc.c b/kernel/lockdep_proc.c
index 4b194d34d77f..20dbcbf9c7dd 100644
--- a/kernel/lockdep_proc.c
+++ b/kernel/lockdep_proc.c
@@ -472,8 +472,9 @@ static void snprint_time(char *buf, size_t bufsiz, s64 nr)
472{ 472{
473 unsigned long rem; 473 unsigned long rem;
474 474
475 nr += 5; /* for display rounding */
475 rem = do_div(nr, 1000); /* XXX: do_div_signed */ 476 rem = do_div(nr, 1000); /* XXX: do_div_signed */
476 snprintf(buf, bufsiz, "%lld.%02d", (long long)nr, ((int)rem+5)/10); 477 snprintf(buf, bufsiz, "%lld.%02d", (long long)nr, (int)rem/10);
477} 478}
478 479
479static void seq_time(struct seq_file *m, s64 time) 480static void seq_time(struct seq_file *m, s64 time)
diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
index ea567b78d1aa..fab8ea86fac3 100644
--- a/kernel/pid_namespace.c
+++ b/kernel/pid_namespace.c
@@ -179,9 +179,6 @@ void zap_pid_ns_processes(struct pid_namespace *pid_ns)
179 rc = sys_wait4(-1, NULL, __WALL, NULL); 179 rc = sys_wait4(-1, NULL, __WALL, NULL);
180 } while (rc != -ECHILD); 180 } while (rc != -ECHILD);
181 181
182
183 /* Child reaper for the pid namespace is going away */
184 pid_ns->child_reaper = NULL;
185 acct_exit_ns(pid_ns); 182 acct_exit_ns(pid_ns);
186 return; 183 return;
187} 184}
diff --git a/kernel/pm_qos_params.c b/kernel/pm_qos_params.c
index da9c2dda6a4e..dfdec524d1b7 100644
--- a/kernel/pm_qos_params.c
+++ b/kernel/pm_qos_params.c
@@ -43,7 +43,7 @@
43#include <linux/uaccess.h> 43#include <linux/uaccess.h>
44 44
45/* 45/*
46 * locking rule: all changes to target_value or requirements or notifiers lists 46 * locking rule: all changes to requirements or notifiers lists
47 * or pm_qos_object list and pm_qos_objects need to happen with pm_qos_lock 47 * or pm_qos_object list and pm_qos_objects need to happen with pm_qos_lock
48 * held, taken with _irqsave. One lock to rule them all 48 * held, taken with _irqsave. One lock to rule them all
49 */ 49 */
@@ -66,7 +66,7 @@ struct pm_qos_object {
66 struct miscdevice pm_qos_power_miscdev; 66 struct miscdevice pm_qos_power_miscdev;
67 char *name; 67 char *name;
68 s32 default_value; 68 s32 default_value;
69 s32 target_value; 69 atomic_t target_value;
70 s32 (*comparitor)(s32, s32); 70 s32 (*comparitor)(s32, s32);
71}; 71};
72 72
@@ -77,7 +77,7 @@ static struct pm_qos_object cpu_dma_pm_qos = {
77 .notifiers = &cpu_dma_lat_notifier, 77 .notifiers = &cpu_dma_lat_notifier,
78 .name = "cpu_dma_latency", 78 .name = "cpu_dma_latency",
79 .default_value = 2000 * USEC_PER_SEC, 79 .default_value = 2000 * USEC_PER_SEC,
80 .target_value = 2000 * USEC_PER_SEC, 80 .target_value = ATOMIC_INIT(2000 * USEC_PER_SEC),
81 .comparitor = min_compare 81 .comparitor = min_compare
82}; 82};
83 83
@@ -87,7 +87,7 @@ static struct pm_qos_object network_lat_pm_qos = {
87 .notifiers = &network_lat_notifier, 87 .notifiers = &network_lat_notifier,
88 .name = "network_latency", 88 .name = "network_latency",
89 .default_value = 2000 * USEC_PER_SEC, 89 .default_value = 2000 * USEC_PER_SEC,
90 .target_value = 2000 * USEC_PER_SEC, 90 .target_value = ATOMIC_INIT(2000 * USEC_PER_SEC),
91 .comparitor = min_compare 91 .comparitor = min_compare
92}; 92};
93 93
@@ -99,7 +99,7 @@ static struct pm_qos_object network_throughput_pm_qos = {
99 .notifiers = &network_throughput_notifier, 99 .notifiers = &network_throughput_notifier,
100 .name = "network_throughput", 100 .name = "network_throughput",
101 .default_value = 0, 101 .default_value = 0,
102 .target_value = 0, 102 .target_value = ATOMIC_INIT(0),
103 .comparitor = max_compare 103 .comparitor = max_compare
104}; 104};
105 105
@@ -150,11 +150,11 @@ static void update_target(int target)
150 extreme_value = pm_qos_array[target]->comparitor( 150 extreme_value = pm_qos_array[target]->comparitor(
151 extreme_value, node->value); 151 extreme_value, node->value);
152 } 152 }
153 if (pm_qos_array[target]->target_value != extreme_value) { 153 if (atomic_read(&pm_qos_array[target]->target_value) != extreme_value) {
154 call_notifier = 1; 154 call_notifier = 1;
155 pm_qos_array[target]->target_value = extreme_value; 155 atomic_set(&pm_qos_array[target]->target_value, extreme_value);
156 pr_debug(KERN_ERR "new target for qos %d is %d\n", target, 156 pr_debug(KERN_ERR "new target for qos %d is %d\n", target,
157 pm_qos_array[target]->target_value); 157 atomic_read(&pm_qos_array[target]->target_value));
158 } 158 }
159 spin_unlock_irqrestore(&pm_qos_lock, flags); 159 spin_unlock_irqrestore(&pm_qos_lock, flags);
160 160
@@ -193,14 +193,7 @@ static int find_pm_qos_object_by_minor(int minor)
193 */ 193 */
194int pm_qos_requirement(int pm_qos_class) 194int pm_qos_requirement(int pm_qos_class)
195{ 195{
196 int ret_val; 196 return atomic_read(&pm_qos_array[pm_qos_class]->target_value);
197 unsigned long flags;
198
199 spin_lock_irqsave(&pm_qos_lock, flags);
200 ret_val = pm_qos_array[pm_qos_class]->target_value;
201 spin_unlock_irqrestore(&pm_qos_lock, flags);
202
203 return ret_val;
204} 197}
205EXPORT_SYMBOL_GPL(pm_qos_requirement); 198EXPORT_SYMBOL_GPL(pm_qos_requirement);
206 199
diff --git a/kernel/power/disk.c b/kernel/power/disk.c
index f011e0870b52..bbd85c60f741 100644
--- a/kernel/power/disk.c
+++ b/kernel/power/disk.c
@@ -21,6 +21,7 @@
21#include <linux/console.h> 21#include <linux/console.h>
22#include <linux/cpu.h> 22#include <linux/cpu.h>
23#include <linux/freezer.h> 23#include <linux/freezer.h>
24#include <linux/ftrace.h>
24 25
25#include "power.h" 26#include "power.h"
26 27
@@ -255,7 +256,7 @@ static int create_image(int platform_mode)
255 256
256int hibernation_snapshot(int platform_mode) 257int hibernation_snapshot(int platform_mode)
257{ 258{
258 int error; 259 int error, ftrace_save;
259 260
260 /* Free memory before shutting down devices. */ 261 /* Free memory before shutting down devices. */
261 error = swsusp_shrink_memory(); 262 error = swsusp_shrink_memory();
@@ -267,6 +268,7 @@ int hibernation_snapshot(int platform_mode)
267 goto Close; 268 goto Close;
268 269
269 suspend_console(); 270 suspend_console();
271 ftrace_save = __ftrace_enabled_save();
270 error = device_suspend(PMSG_FREEZE); 272 error = device_suspend(PMSG_FREEZE);
271 if (error) 273 if (error)
272 goto Recover_platform; 274 goto Recover_platform;
@@ -296,6 +298,7 @@ int hibernation_snapshot(int platform_mode)
296 Resume_devices: 298 Resume_devices:
297 device_resume(in_suspend ? 299 device_resume(in_suspend ?
298 (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE); 300 (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE);
301 __ftrace_enabled_restore(ftrace_save);
299 resume_console(); 302 resume_console();
300 Close: 303 Close:
301 platform_end(platform_mode); 304 platform_end(platform_mode);
@@ -366,10 +369,11 @@ static int resume_target_kernel(void)
366 369
367int hibernation_restore(int platform_mode) 370int hibernation_restore(int platform_mode)
368{ 371{
369 int error; 372 int error, ftrace_save;
370 373
371 pm_prepare_console(); 374 pm_prepare_console();
372 suspend_console(); 375 suspend_console();
376 ftrace_save = __ftrace_enabled_save();
373 error = device_suspend(PMSG_QUIESCE); 377 error = device_suspend(PMSG_QUIESCE);
374 if (error) 378 if (error)
375 goto Finish; 379 goto Finish;
@@ -384,6 +388,7 @@ int hibernation_restore(int platform_mode)
384 platform_restore_cleanup(platform_mode); 388 platform_restore_cleanup(platform_mode);
385 device_resume(PMSG_RECOVER); 389 device_resume(PMSG_RECOVER);
386 Finish: 390 Finish:
391 __ftrace_enabled_restore(ftrace_save);
387 resume_console(); 392 resume_console();
388 pm_restore_console(); 393 pm_restore_console();
389 return error; 394 return error;
@@ -396,7 +401,7 @@ int hibernation_restore(int platform_mode)
396 401
397int hibernation_platform_enter(void) 402int hibernation_platform_enter(void)
398{ 403{
399 int error; 404 int error, ftrace_save;
400 405
401 if (!hibernation_ops) 406 if (!hibernation_ops)
402 return -ENOSYS; 407 return -ENOSYS;
@@ -411,6 +416,7 @@ int hibernation_platform_enter(void)
411 goto Close; 416 goto Close;
412 417
413 suspend_console(); 418 suspend_console();
419 ftrace_save = __ftrace_enabled_save();
414 error = device_suspend(PMSG_HIBERNATE); 420 error = device_suspend(PMSG_HIBERNATE);
415 if (error) { 421 if (error) {
416 if (hibernation_ops->recover) 422 if (hibernation_ops->recover)
@@ -445,6 +451,7 @@ int hibernation_platform_enter(void)
445 hibernation_ops->finish(); 451 hibernation_ops->finish();
446 Resume_devices: 452 Resume_devices:
447 device_resume(PMSG_RESTORE); 453 device_resume(PMSG_RESTORE);
454 __ftrace_enabled_restore(ftrace_save);
448 resume_console(); 455 resume_console();
449 Close: 456 Close:
450 hibernation_ops->end(); 457 hibernation_ops->end();
diff --git a/kernel/power/main.c b/kernel/power/main.c
index 0b7476f5d2a6..540b16b68565 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -21,6 +21,7 @@
21#include <linux/freezer.h> 21#include <linux/freezer.h>
22#include <linux/vmstat.h> 22#include <linux/vmstat.h>
23#include <linux/syscalls.h> 23#include <linux/syscalls.h>
24#include <linux/ftrace.h>
24 25
25#include "power.h" 26#include "power.h"
26 27
@@ -310,7 +311,7 @@ static int suspend_enter(suspend_state_t state)
310 */ 311 */
311int suspend_devices_and_enter(suspend_state_t state) 312int suspend_devices_and_enter(suspend_state_t state)
312{ 313{
313 int error; 314 int error, ftrace_save;
314 315
315 if (!suspend_ops) 316 if (!suspend_ops)
316 return -ENOSYS; 317 return -ENOSYS;
@@ -321,6 +322,7 @@ int suspend_devices_and_enter(suspend_state_t state)
321 goto Close; 322 goto Close;
322 } 323 }
323 suspend_console(); 324 suspend_console();
325 ftrace_save = __ftrace_enabled_save();
324 suspend_test_start(); 326 suspend_test_start();
325 error = device_suspend(PMSG_SUSPEND); 327 error = device_suspend(PMSG_SUSPEND);
326 if (error) { 328 if (error) {
@@ -352,6 +354,7 @@ int suspend_devices_and_enter(suspend_state_t state)
352 suspend_test_start(); 354 suspend_test_start();
353 device_resume(PMSG_RESUME); 355 device_resume(PMSG_RESUME);
354 suspend_test_finish("resume devices"); 356 suspend_test_finish("resume devices");
357 __ftrace_enabled_restore(ftrace_save);
355 resume_console(); 358 resume_console();
356 Close: 359 Close:
357 if (suspend_ops->end) 360 if (suspend_ops->end)
diff --git a/kernel/resource.c b/kernel/resource.c
index f5b518eabefe..03d796c1b2e9 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -362,35 +362,21 @@ int allocate_resource(struct resource *root, struct resource *new,
362 362
363EXPORT_SYMBOL(allocate_resource); 363EXPORT_SYMBOL(allocate_resource);
364 364
365/** 365/*
366 * insert_resource - Inserts a resource in the resource tree 366 * Insert a resource into the resource tree. If successful, return NULL,
367 * @parent: parent of the new resource 367 * otherwise return the conflicting resource (compare to __request_resource())
368 * @new: new resource to insert
369 *
370 * Returns 0 on success, -EBUSY if the resource can't be inserted.
371 *
372 * This function is equivalent to request_resource when no conflict
373 * happens. If a conflict happens, and the conflicting resources
374 * entirely fit within the range of the new resource, then the new
375 * resource is inserted and the conflicting resources become children of
376 * the new resource.
377 */ 368 */
378int insert_resource(struct resource *parent, struct resource *new) 369static struct resource * __insert_resource(struct resource *parent, struct resource *new)
379{ 370{
380 int result;
381 struct resource *first, *next; 371 struct resource *first, *next;
382 372
383 write_lock(&resource_lock);
384
385 for (;; parent = first) { 373 for (;; parent = first) {
386 result = 0;
387 first = __request_resource(parent, new); 374 first = __request_resource(parent, new);
388 if (!first) 375 if (!first)
389 goto out; 376 return first;
390 377
391 result = -EBUSY;
392 if (first == parent) 378 if (first == parent)
393 goto out; 379 return first;
394 380
395 if ((first->start > new->start) || (first->end < new->end)) 381 if ((first->start > new->start) || (first->end < new->end))
396 break; 382 break;
@@ -401,15 +387,13 @@ int insert_resource(struct resource *parent, struct resource *new)
401 for (next = first; ; next = next->sibling) { 387 for (next = first; ; next = next->sibling) {
402 /* Partial overlap? Bad, and unfixable */ 388 /* Partial overlap? Bad, and unfixable */
403 if (next->start < new->start || next->end > new->end) 389 if (next->start < new->start || next->end > new->end)
404 goto out; 390 return next;
405 if (!next->sibling) 391 if (!next->sibling)
406 break; 392 break;
407 if (next->sibling->start > new->end) 393 if (next->sibling->start > new->end)
408 break; 394 break;
409 } 395 }
410 396
411 result = 0;
412
413 new->parent = parent; 397 new->parent = parent;
414 new->sibling = next->sibling; 398 new->sibling = next->sibling;
415 new->child = first; 399 new->child = first;
@@ -426,10 +410,64 @@ int insert_resource(struct resource *parent, struct resource *new)
426 next = next->sibling; 410 next = next->sibling;
427 next->sibling = new; 411 next->sibling = new;
428 } 412 }
413 return NULL;
414}
429 415
430 out: 416/**
417 * insert_resource - Inserts a resource in the resource tree
418 * @parent: parent of the new resource
419 * @new: new resource to insert
420 *
421 * Returns 0 on success, -EBUSY if the resource can't be inserted.
422 *
423 * This function is equivalent to request_resource when no conflict
424 * happens. If a conflict happens, and the conflicting resources
425 * entirely fit within the range of the new resource, then the new
426 * resource is inserted and the conflicting resources become children of
427 * the new resource.
428 */
429int insert_resource(struct resource *parent, struct resource *new)
430{
431 struct resource *conflict;
432
433 write_lock(&resource_lock);
434 conflict = __insert_resource(parent, new);
435 write_unlock(&resource_lock);
436 return conflict ? -EBUSY : 0;
437}
438
439/**
440 * insert_resource_expand_to_fit - Insert a resource into the resource tree
441 * @root: root resource descriptor
442 * @new: new resource to insert
443 *
444 * Insert a resource into the resource tree, possibly expanding it in order
445 * to make it encompass any conflicting resources.
446 */
447void insert_resource_expand_to_fit(struct resource *root, struct resource *new)
448{
449 if (new->parent)
450 return;
451
452 write_lock(&resource_lock);
453 for (;;) {
454 struct resource *conflict;
455
456 conflict = __insert_resource(root, new);
457 if (!conflict)
458 break;
459 if (conflict == root)
460 break;
461
462 /* Ok, expand resource to cover the conflict, then try again .. */
463 if (conflict->start < new->start)
464 new->start = conflict->start;
465 if (conflict->end > new->end)
466 new->end = conflict->end;
467
468 printk("Expanded resource %s due to conflict with %s\n", new->name, conflict->name);
469 }
431 write_unlock(&resource_lock); 470 write_unlock(&resource_lock);
432 return result;
433} 471}
434 472
435/** 473/**
diff --git a/kernel/sched.c b/kernel/sched.c
index 9a1ddb84e26d..cc1f81b50b82 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -4179,6 +4179,65 @@ void account_steal_time(struct task_struct *p, cputime_t steal)
4179} 4179}
4180 4180
4181/* 4181/*
4182 * Use precise platform statistics if available:
4183 */
4184#ifdef CONFIG_VIRT_CPU_ACCOUNTING
4185cputime_t task_utime(struct task_struct *p)
4186{
4187 return p->utime;
4188}
4189
4190cputime_t task_stime(struct task_struct *p)
4191{
4192 return p->stime;
4193}
4194#else
4195cputime_t task_utime(struct task_struct *p)
4196{
4197 clock_t utime = cputime_to_clock_t(p->utime),
4198 total = utime + cputime_to_clock_t(p->stime);
4199 u64 temp;
4200
4201 /*
4202 * Use CFS's precise accounting:
4203 */
4204 temp = (u64)nsec_to_clock_t(p->se.sum_exec_runtime);
4205
4206 if (total) {
4207 temp *= utime;
4208 do_div(temp, total);
4209 }
4210 utime = (clock_t)temp;
4211
4212 p->prev_utime = max(p->prev_utime, clock_t_to_cputime(utime));
4213 return p->prev_utime;
4214}
4215
4216cputime_t task_stime(struct task_struct *p)
4217{
4218 clock_t stime;
4219
4220 /*
4221 * Use CFS's precise accounting. (we subtract utime from
4222 * the total, to make sure the total observed by userspace
4223 * grows monotonically - apps rely on that):
4224 */
4225 stime = nsec_to_clock_t(p->se.sum_exec_runtime) -
4226 cputime_to_clock_t(task_utime(p));
4227
4228 if (stime >= 0)
4229 p->prev_stime = max(p->prev_stime, clock_t_to_cputime(stime));
4230
4231 return p->prev_stime;
4232}
4233#endif
4234
4235inline cputime_t task_gtime(struct task_struct *p)
4236{
4237 return p->gtime;
4238}
4239
4240/*
4182 * This function gets called by the timer code, with HZ frequency. 4241 * This function gets called by the timer code, with HZ frequency.
4183 * We call it with interrupts disabled. 4242 * We call it with interrupts disabled.
4184 * 4243 *
@@ -7637,24 +7696,27 @@ static int dattrs_equal(struct sched_domain_attr *cur, int idx_cur,
7637 * and partition_sched_domains() will fallback to the single partition 7696 * and partition_sched_domains() will fallback to the single partition
7638 * 'fallback_doms', it also forces the domains to be rebuilt. 7697 * 'fallback_doms', it also forces the domains to be rebuilt.
7639 * 7698 *
7699 * If doms_new==NULL it will be replaced with cpu_online_map.
7700 * ndoms_new==0 is a special case for destroying existing domains.
7701 * It will not create the default domain.
7702 *
7640 * Call with hotplug lock held 7703 * Call with hotplug lock held
7641 */ 7704 */
7642void partition_sched_domains(int ndoms_new, cpumask_t *doms_new, 7705void partition_sched_domains(int ndoms_new, cpumask_t *doms_new,
7643 struct sched_domain_attr *dattr_new) 7706 struct sched_domain_attr *dattr_new)
7644{ 7707{
7645 int i, j; 7708 int i, j, n;
7646 7709
7647 mutex_lock(&sched_domains_mutex); 7710 mutex_lock(&sched_domains_mutex);
7648 7711
7649 /* always unregister in case we don't destroy any domains */ 7712 /* always unregister in case we don't destroy any domains */
7650 unregister_sched_domain_sysctl(); 7713 unregister_sched_domain_sysctl();
7651 7714
7652 if (doms_new == NULL) 7715 n = doms_new ? ndoms_new : 0;
7653 ndoms_new = 0;
7654 7716
7655 /* Destroy deleted domains */ 7717 /* Destroy deleted domains */
7656 for (i = 0; i < ndoms_cur; i++) { 7718 for (i = 0; i < ndoms_cur; i++) {
7657 for (j = 0; j < ndoms_new; j++) { 7719 for (j = 0; j < n; j++) {
7658 if (cpus_equal(doms_cur[i], doms_new[j]) 7720 if (cpus_equal(doms_cur[i], doms_new[j])
7659 && dattrs_equal(dattr_cur, i, dattr_new, j)) 7721 && dattrs_equal(dattr_cur, i, dattr_new, j))
7660 goto match1; 7722 goto match1;
@@ -7667,7 +7729,6 @@ match1:
7667 7729
7668 if (doms_new == NULL) { 7730 if (doms_new == NULL) {
7669 ndoms_cur = 0; 7731 ndoms_cur = 0;
7670 ndoms_new = 1;
7671 doms_new = &fallback_doms; 7732 doms_new = &fallback_doms;
7672 cpus_andnot(doms_new[0], cpu_online_map, cpu_isolated_map); 7733 cpus_andnot(doms_new[0], cpu_online_map, cpu_isolated_map);
7673 dattr_new = NULL; 7734 dattr_new = NULL;
@@ -7704,8 +7765,13 @@ match2:
7704int arch_reinit_sched_domains(void) 7765int arch_reinit_sched_domains(void)
7705{ 7766{
7706 get_online_cpus(); 7767 get_online_cpus();
7768
7769 /* Destroy domains first to force the rebuild */
7770 partition_sched_domains(0, NULL, NULL);
7771
7707 rebuild_sched_domains(); 7772 rebuild_sched_domains();
7708 put_online_cpus(); 7773 put_online_cpus();
7774
7709 return 0; 7775 return 0;
7710} 7776}
7711 7777
@@ -7789,7 +7855,7 @@ static int update_sched_domains(struct notifier_block *nfb,
7789 case CPU_ONLINE_FROZEN: 7855 case CPU_ONLINE_FROZEN:
7790 case CPU_DEAD: 7856 case CPU_DEAD:
7791 case CPU_DEAD_FROZEN: 7857 case CPU_DEAD_FROZEN:
7792 partition_sched_domains(0, NULL, NULL); 7858 partition_sched_domains(1, NULL, NULL);
7793 return NOTIFY_OK; 7859 return NOTIFY_OK;
7794 7860
7795 default: 7861 default:
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index 998ba54b4543..552310798dad 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -199,6 +199,8 @@ static inline struct rt_rq *group_rt_rq(struct sched_rt_entity *rt_se)
199 199
200static inline void sched_rt_rq_enqueue(struct rt_rq *rt_rq) 200static inline void sched_rt_rq_enqueue(struct rt_rq *rt_rq)
201{ 201{
202 if (rt_rq->rt_nr_running)
203 resched_task(rq_of_rt_rq(rt_rq)->curr);
202} 204}
203 205
204static inline void sched_rt_rq_dequeue(struct rt_rq *rt_rq) 206static inline void sched_rt_rq_dequeue(struct rt_rq *rt_rq)
@@ -438,9 +440,6 @@ static int sched_rt_runtime_exceeded(struct rt_rq *rt_rq)
438{ 440{
439 u64 runtime = sched_rt_runtime(rt_rq); 441 u64 runtime = sched_rt_runtime(rt_rq);
440 442
441 if (runtime == RUNTIME_INF)
442 return 0;
443
444 if (rt_rq->rt_throttled) 443 if (rt_rq->rt_throttled)
445 return rt_rq_throttled(rt_rq); 444 return rt_rq_throttled(rt_rq);
446 445
@@ -491,9 +490,11 @@ static void update_curr_rt(struct rq *rq)
491 rt_rq = rt_rq_of_se(rt_se); 490 rt_rq = rt_rq_of_se(rt_se);
492 491
493 spin_lock(&rt_rq->rt_runtime_lock); 492 spin_lock(&rt_rq->rt_runtime_lock);
494 rt_rq->rt_time += delta_exec; 493 if (sched_rt_runtime(rt_rq) != RUNTIME_INF) {
495 if (sched_rt_runtime_exceeded(rt_rq)) 494 rt_rq->rt_time += delta_exec;
496 resched_task(curr); 495 if (sched_rt_runtime_exceeded(rt_rq))
496 resched_task(curr);
497 }
497 spin_unlock(&rt_rq->rt_runtime_lock); 498 spin_unlock(&rt_rq->rt_runtime_lock);
498 } 499 }
499} 500}
diff --git a/kernel/smp.c b/kernel/smp.c
index 782e2b93e465..f362a8553777 100644
--- a/kernel/smp.c
+++ b/kernel/smp.c
@@ -210,8 +210,10 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
210{ 210{
211 struct call_single_data d; 211 struct call_single_data d;
212 unsigned long flags; 212 unsigned long flags;
213 /* prevent preemption and reschedule on another processor */ 213 /* prevent preemption and reschedule on another processor,
214 as well as CPU removal */
214 int me = get_cpu(); 215 int me = get_cpu();
216 int err = 0;
215 217
216 /* Can deadlock when called with interrupts disabled */ 218 /* Can deadlock when called with interrupts disabled */
217 WARN_ON(irqs_disabled()); 219 WARN_ON(irqs_disabled());
@@ -220,7 +222,7 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
220 local_irq_save(flags); 222 local_irq_save(flags);
221 func(info); 223 func(info);
222 local_irq_restore(flags); 224 local_irq_restore(flags);
223 } else { 225 } else if ((unsigned)cpu < NR_CPUS && cpu_online(cpu)) {
224 struct call_single_data *data = NULL; 226 struct call_single_data *data = NULL;
225 227
226 if (!wait) { 228 if (!wait) {
@@ -236,10 +238,12 @@ int smp_call_function_single(int cpu, void (*func) (void *info), void *info,
236 data->func = func; 238 data->func = func;
237 data->info = info; 239 data->info = info;
238 generic_exec_single(cpu, data); 240 generic_exec_single(cpu, data);
241 } else {
242 err = -ENXIO; /* CPU not online */
239 } 243 }
240 244
241 put_cpu(); 245 put_cpu();
242 return 0; 246 return err;
243} 247}
244EXPORT_SYMBOL(smp_call_function_single); 248EXPORT_SYMBOL(smp_call_function_single);
245 249
diff --git a/kernel/softlockup.c b/kernel/softlockup.c
index b75b492fbfcf..cb838ee93a82 100644
--- a/kernel/softlockup.c
+++ b/kernel/softlockup.c
@@ -233,7 +233,8 @@ static void check_hung_uninterruptible_tasks(int this_cpu)
233 do_each_thread(g, t) { 233 do_each_thread(g, t) {
234 if (!--max_count) 234 if (!--max_count)
235 goto unlock; 235 goto unlock;
236 if (t->state & TASK_UNINTERRUPTIBLE) 236 /* use "==" to skip the TASK_KILLABLE tasks waiting on NFS */
237 if (t->state == TASK_UNINTERRUPTIBLE)
237 check_hung_task(t, now); 238 check_hung_task(t, now);
238 } while_each_thread(g, t); 239 } while_each_thread(g, t);
239 unlock: 240 unlock:
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index fe4713347275..50ec0886fa3d 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -159,6 +159,7 @@ static int proc_dointvec_taint(struct ctl_table *table, int write, struct file *
159static struct ctl_table root_table[]; 159static struct ctl_table root_table[];
160static struct ctl_table_root sysctl_table_root; 160static struct ctl_table_root sysctl_table_root;
161static struct ctl_table_header root_table_header = { 161static struct ctl_table_header root_table_header = {
162 .count = 1,
162 .ctl_table = root_table, 163 .ctl_table = root_table,
163 .ctl_entry = LIST_HEAD_INIT(sysctl_table_root.default_set.list), 164 .ctl_entry = LIST_HEAD_INIT(sysctl_table_root.default_set.list),
164 .root = &sysctl_table_root, 165 .root = &sysctl_table_root,
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c
index 3d1e3e1a1971..1876b526c778 100644
--- a/kernel/time/clockevents.c
+++ b/kernel/time/clockevents.c
@@ -177,7 +177,7 @@ void clockevents_register_device(struct clock_event_device *dev)
177/* 177/*
178 * Noop handler when we shut down an event device 178 * Noop handler when we shut down an event device
179 */ 179 */
180static void clockevents_handle_noop(struct clock_event_device *dev) 180void clockevents_handle_noop(struct clock_event_device *dev)
181{ 181{
182} 182}
183 183
@@ -199,7 +199,6 @@ void clockevents_exchange_device(struct clock_event_device *old,
199 * released list and do a notify add later. 199 * released list and do a notify add later.
200 */ 200 */
201 if (old) { 201 if (old) {
202 old->event_handler = clockevents_handle_noop;
203 clockevents_set_mode(old, CLOCK_EVT_MODE_UNUSED); 202 clockevents_set_mode(old, CLOCK_EVT_MODE_UNUSED);
204 list_del(&old->list); 203 list_del(&old->list);
205 list_add(&old->list, &clockevents_released); 204 list_add(&old->list, &clockevents_released);
diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
index 5125ddd8196b..1ad46f3df6e7 100644
--- a/kernel/time/ntp.c
+++ b/kernel/time/ntp.c
@@ -245,7 +245,7 @@ static void sync_cmos_clock(unsigned long dummy)
245 if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2) 245 if (abs(now.tv_nsec - (NSEC_PER_SEC / 2)) <= tick_nsec / 2)
246 fail = update_persistent_clock(now); 246 fail = update_persistent_clock(now);
247 247
248 next.tv_nsec = (NSEC_PER_SEC / 2) - now.tv_nsec; 248 next.tv_nsec = (NSEC_PER_SEC / 2) - now.tv_nsec - (TICK_NSEC / 2);
249 if (next.tv_nsec <= 0) 249 if (next.tv_nsec <= 0)
250 next.tv_nsec += NSEC_PER_SEC; 250 next.tv_nsec += NSEC_PER_SEC;
251 251
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
index 31463d370b94..2f5a38294bf9 100644
--- a/kernel/time/tick-broadcast.c
+++ b/kernel/time/tick-broadcast.c
@@ -175,6 +175,8 @@ static void tick_do_periodic_broadcast(void)
175 */ 175 */
176static void tick_handle_periodic_broadcast(struct clock_event_device *dev) 176static void tick_handle_periodic_broadcast(struct clock_event_device *dev)
177{ 177{
178 ktime_t next;
179
178 tick_do_periodic_broadcast(); 180 tick_do_periodic_broadcast();
179 181
180 /* 182 /*
@@ -185,10 +187,13 @@ static void tick_handle_periodic_broadcast(struct clock_event_device *dev)
185 187
186 /* 188 /*
187 * Setup the next period for devices, which do not have 189 * Setup the next period for devices, which do not have
188 * periodic mode: 190 * periodic mode. We read dev->next_event first and add to it
191 * when the event alrady expired. clockevents_program_event()
192 * sets dev->next_event only when the event is really
193 * programmed to the device.
189 */ 194 */
190 for (;;) { 195 for (next = dev->next_event; ;) {
191 ktime_t next = ktime_add(dev->next_event, tick_period); 196 next = ktime_add(next, tick_period);
192 197
193 if (!clockevents_program_event(dev, next, ktime_get())) 198 if (!clockevents_program_event(dev, next, ktime_get()))
194 return; 199 return;
@@ -205,7 +210,7 @@ static void tick_do_broadcast_on_off(void *why)
205 struct clock_event_device *bc, *dev; 210 struct clock_event_device *bc, *dev;
206 struct tick_device *td; 211 struct tick_device *td;
207 unsigned long flags, *reason = why; 212 unsigned long flags, *reason = why;
208 int cpu; 213 int cpu, bc_stopped;
209 214
210 spin_lock_irqsave(&tick_broadcast_lock, flags); 215 spin_lock_irqsave(&tick_broadcast_lock, flags);
211 216
@@ -223,6 +228,8 @@ static void tick_do_broadcast_on_off(void *why)
223 if (!tick_device_is_functional(dev)) 228 if (!tick_device_is_functional(dev))
224 goto out; 229 goto out;
225 230
231 bc_stopped = cpus_empty(tick_broadcast_mask);
232
226 switch (*reason) { 233 switch (*reason) {
227 case CLOCK_EVT_NOTIFY_BROADCAST_ON: 234 case CLOCK_EVT_NOTIFY_BROADCAST_ON:
228 case CLOCK_EVT_NOTIFY_BROADCAST_FORCE: 235 case CLOCK_EVT_NOTIFY_BROADCAST_FORCE:
@@ -245,9 +252,10 @@ static void tick_do_broadcast_on_off(void *why)
245 break; 252 break;
246 } 253 }
247 254
248 if (cpus_empty(tick_broadcast_mask)) 255 if (cpus_empty(tick_broadcast_mask)) {
249 clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN); 256 if (!bc_stopped)
250 else { 257 clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN);
258 } else if (bc_stopped) {
251 if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC) 259 if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC)
252 tick_broadcast_start_periodic(bc); 260 tick_broadcast_start_periodic(bc);
253 else 261 else
@@ -364,16 +372,8 @@ cpumask_t *tick_get_broadcast_oneshot_mask(void)
364static int tick_broadcast_set_event(ktime_t expires, int force) 372static int tick_broadcast_set_event(ktime_t expires, int force)
365{ 373{
366 struct clock_event_device *bc = tick_broadcast_device.evtdev; 374 struct clock_event_device *bc = tick_broadcast_device.evtdev;
367 ktime_t now = ktime_get(); 375
368 int res; 376 return tick_dev_program_event(bc, expires, force);
369
370 for(;;) {
371 res = clockevents_program_event(bc, expires, now);
372 if (!res || !force)
373 return res;
374 now = ktime_get();
375 expires = ktime_add(now, ktime_set(0, bc->min_delta_ns));
376 }
377} 377}
378 378
379int tick_resume_broadcast_oneshot(struct clock_event_device *bc) 379int tick_resume_broadcast_oneshot(struct clock_event_device *bc)
@@ -491,14 +491,52 @@ static void tick_broadcast_clear_oneshot(int cpu)
491 cpu_clear(cpu, tick_broadcast_oneshot_mask); 491 cpu_clear(cpu, tick_broadcast_oneshot_mask);
492} 492}
493 493
494static void tick_broadcast_init_next_event(cpumask_t *mask, ktime_t expires)
495{
496 struct tick_device *td;
497 int cpu;
498
499 for_each_cpu_mask_nr(cpu, *mask) {
500 td = &per_cpu(tick_cpu_device, cpu);
501 if (td->evtdev)
502 td->evtdev->next_event = expires;
503 }
504}
505
494/** 506/**
495 * tick_broadcast_setup_oneshot - setup the broadcast device 507 * tick_broadcast_setup_oneshot - setup the broadcast device
496 */ 508 */
497void tick_broadcast_setup_oneshot(struct clock_event_device *bc) 509void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
498{ 510{
499 bc->event_handler = tick_handle_oneshot_broadcast; 511 /* Set it up only once ! */
500 clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT); 512 if (bc->event_handler != tick_handle_oneshot_broadcast) {
501 bc->next_event.tv64 = KTIME_MAX; 513 int was_periodic = bc->mode == CLOCK_EVT_MODE_PERIODIC;
514 int cpu = smp_processor_id();
515 cpumask_t mask;
516
517 bc->event_handler = tick_handle_oneshot_broadcast;
518 clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT);
519
520 /* Take the do_timer update */
521 tick_do_timer_cpu = cpu;
522
523 /*
524 * We must be careful here. There might be other CPUs
525 * waiting for periodic broadcast. We need to set the
526 * oneshot_mask bits for those and program the
527 * broadcast device to fire.
528 */
529 mask = tick_broadcast_mask;
530 cpu_clear(cpu, mask);
531 cpus_or(tick_broadcast_oneshot_mask,
532 tick_broadcast_oneshot_mask, mask);
533
534 if (was_periodic && !cpus_empty(mask)) {
535 tick_broadcast_init_next_event(&mask, tick_next_period);
536 tick_broadcast_set_event(tick_next_period, 1);
537 } else
538 bc->next_event.tv64 = KTIME_MAX;
539 }
502} 540}
503 541
504/* 542/*
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c
index 80c4336f4188..c4777193d567 100644
--- a/kernel/time/tick-common.c
+++ b/kernel/time/tick-common.c
@@ -161,6 +161,7 @@ static void tick_setup_device(struct tick_device *td,
161 } else { 161 } else {
162 handler = td->evtdev->event_handler; 162 handler = td->evtdev->event_handler;
163 next_event = td->evtdev->next_event; 163 next_event = td->evtdev->next_event;
164 td->evtdev->event_handler = clockevents_handle_noop;
164 } 165 }
165 166
166 td->evtdev = newdev; 167 td->evtdev = newdev;
diff --git a/kernel/time/tick-internal.h b/kernel/time/tick-internal.h
index f13f2b7f4fd4..0ffc2918ea6f 100644
--- a/kernel/time/tick-internal.h
+++ b/kernel/time/tick-internal.h
@@ -17,6 +17,8 @@ extern void tick_handle_periodic(struct clock_event_device *dev);
17extern void tick_setup_oneshot(struct clock_event_device *newdev, 17extern void tick_setup_oneshot(struct clock_event_device *newdev,
18 void (*handler)(struct clock_event_device *), 18 void (*handler)(struct clock_event_device *),
19 ktime_t nextevt); 19 ktime_t nextevt);
20extern int tick_dev_program_event(struct clock_event_device *dev,
21 ktime_t expires, int force);
20extern int tick_program_event(ktime_t expires, int force); 22extern int tick_program_event(ktime_t expires, int force);
21extern void tick_oneshot_notify(void); 23extern void tick_oneshot_notify(void);
22extern int tick_switch_to_oneshot(void (*handler)(struct clock_event_device *)); 24extern int tick_switch_to_oneshot(void (*handler)(struct clock_event_device *));
diff --git a/kernel/time/tick-oneshot.c b/kernel/time/tick-oneshot.c
index 450c04935b66..2e8de678e767 100644
--- a/kernel/time/tick-oneshot.c
+++ b/kernel/time/tick-oneshot.c
@@ -23,24 +23,56 @@
23#include "tick-internal.h" 23#include "tick-internal.h"
24 24
25/** 25/**
26 * tick_program_event 26 * tick_program_event internal worker function
27 */ 27 */
28int tick_program_event(ktime_t expires, int force) 28int tick_dev_program_event(struct clock_event_device *dev, ktime_t expires,
29 int force)
29{ 30{
30 struct clock_event_device *dev = __get_cpu_var(tick_cpu_device).evtdev;
31 ktime_t now = ktime_get(); 31 ktime_t now = ktime_get();
32 int i;
32 33
33 while (1) { 34 for (i = 0;;) {
34 int ret = clockevents_program_event(dev, expires, now); 35 int ret = clockevents_program_event(dev, expires, now);
35 36
36 if (!ret || !force) 37 if (!ret || !force)
37 return ret; 38 return ret;
39
40 /*
41 * We tried 2 times to program the device with the given
42 * min_delta_ns. If that's not working then we double it
43 * and emit a warning.
44 */
45 if (++i > 2) {
46 /* Increase the min. delta and try again */
47 if (!dev->min_delta_ns)
48 dev->min_delta_ns = 5000;
49 else
50 dev->min_delta_ns += dev->min_delta_ns >> 1;
51
52 printk(KERN_WARNING
53 "CE: %s increasing min_delta_ns to %lu nsec\n",
54 dev->name ? dev->name : "?",
55 dev->min_delta_ns << 1);
56
57 i = 0;
58 }
59
38 now = ktime_get(); 60 now = ktime_get();
39 expires = ktime_add(now, ktime_set(0, dev->min_delta_ns)); 61 expires = ktime_add_ns(now, dev->min_delta_ns);
40 } 62 }
41} 63}
42 64
43/** 65/**
66 * tick_program_event
67 */
68int tick_program_event(ktime_t expires, int force)
69{
70 struct clock_event_device *dev = __get_cpu_var(tick_cpu_device).evtdev;
71
72 return tick_dev_program_event(dev, expires, force);
73}
74
75/**
44 * tick_resume_onshot - resume oneshot mode 76 * tick_resume_onshot - resume oneshot mode
45 */ 77 */
46void tick_resume_oneshot(void) 78void tick_resume_oneshot(void)
@@ -61,7 +93,7 @@ void tick_setup_oneshot(struct clock_event_device *newdev,
61{ 93{
62 newdev->event_handler = handler; 94 newdev->event_handler = handler;
63 clockevents_set_mode(newdev, CLOCK_EVT_MODE_ONESHOT); 95 clockevents_set_mode(newdev, CLOCK_EVT_MODE_ONESHOT);
64 clockevents_program_event(newdev, next_event, ktime_get()); 96 tick_dev_program_event(newdev, next_event, 1);
65} 97}
66 98
67/** 99/**
diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
index 7a46bde78c66..a87b0468568b 100644
--- a/kernel/time/tick-sched.c
+++ b/kernel/time/tick-sched.c
@@ -162,6 +162,8 @@ void tick_nohz_stop_idle(int cpu)
162 ts->idle_lastupdate = now; 162 ts->idle_lastupdate = now;
163 ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta); 163 ts->idle_sleeptime = ktime_add(ts->idle_sleeptime, delta);
164 ts->idle_active = 0; 164 ts->idle_active = 0;
165
166 sched_clock_idle_wakeup_event(0);
165 } 167 }
166} 168}
167 169
@@ -177,6 +179,7 @@ static ktime_t tick_nohz_start_idle(struct tick_sched *ts)
177 } 179 }
178 ts->idle_entrytime = now; 180 ts->idle_entrytime = now;
179 ts->idle_active = 1; 181 ts->idle_active = 1;
182 sched_clock_idle_sleep_event();
180 return now; 183 return now;
181} 184}
182 185
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 8b5a7d304a5f..0b504814e378 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -394,7 +394,7 @@ config LOCKDEP
394 bool 394 bool
395 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 395 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
396 select STACKTRACE 396 select STACKTRACE
397 select FRAME_POINTER if !X86 && !MIPS 397 select FRAME_POINTER if !X86 && !MIPS && !PPC
398 select KALLSYMS 398 select KALLSYMS
399 select KALLSYMS_ALL 399 select KALLSYMS_ALL
400 400
@@ -676,13 +676,13 @@ config FAULT_INJECTION_STACKTRACE_FILTER
676 depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT 676 depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
677 depends on !X86_64 677 depends on !X86_64
678 select STACKTRACE 678 select STACKTRACE
679 select FRAME_POINTER 679 select FRAME_POINTER if !PPC
680 help 680 help
681 Provide stacktrace filter for fault-injection capabilities 681 Provide stacktrace filter for fault-injection capabilities
682 682
683config LATENCYTOP 683config LATENCYTOP
684 bool "Latency measuring infrastructure" 684 bool "Latency measuring infrastructure"
685 select FRAME_POINTER if !MIPS 685 select FRAME_POINTER if !MIPS && !PPC
686 select KALLSYMS 686 select KALLSYMS
687 select KALLSYMS_ALL 687 select KALLSYMS_ALL
688 select STACKTRACE 688 select STACKTRACE
diff --git a/lib/debugobjects.c b/lib/debugobjects.c
index 45a6bde762d1..e3ab374e1334 100644
--- a/lib/debugobjects.c
+++ b/lib/debugobjects.c
@@ -112,6 +112,7 @@ static struct debug_obj *lookup_object(void *addr, struct debug_bucket *b)
112 112
113/* 113/*
114 * Allocate a new object. If the pool is empty, switch off the debugger. 114 * Allocate a new object. If the pool is empty, switch off the debugger.
115 * Must be called with interrupts disabled.
115 */ 116 */
116static struct debug_obj * 117static struct debug_obj *
117alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr) 118alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr)
@@ -148,17 +149,18 @@ alloc_object(void *addr, struct debug_bucket *b, struct debug_obj_descr *descr)
148static void free_object(struct debug_obj *obj) 149static void free_object(struct debug_obj *obj)
149{ 150{
150 unsigned long idx = (unsigned long)(obj - obj_static_pool); 151 unsigned long idx = (unsigned long)(obj - obj_static_pool);
152 unsigned long flags;
151 153
152 if (obj_pool_free < ODEBUG_POOL_SIZE || idx < ODEBUG_POOL_SIZE) { 154 if (obj_pool_free < ODEBUG_POOL_SIZE || idx < ODEBUG_POOL_SIZE) {
153 spin_lock(&pool_lock); 155 spin_lock_irqsave(&pool_lock, flags);
154 hlist_add_head(&obj->node, &obj_pool); 156 hlist_add_head(&obj->node, &obj_pool);
155 obj_pool_free++; 157 obj_pool_free++;
156 obj_pool_used--; 158 obj_pool_used--;
157 spin_unlock(&pool_lock); 159 spin_unlock_irqrestore(&pool_lock, flags);
158 } else { 160 } else {
159 spin_lock(&pool_lock); 161 spin_lock_irqsave(&pool_lock, flags);
160 obj_pool_used--; 162 obj_pool_used--;
161 spin_unlock(&pool_lock); 163 spin_unlock_irqrestore(&pool_lock, flags);
162 kmem_cache_free(obj_cache, obj); 164 kmem_cache_free(obj_cache, obj);
163 } 165 }
164} 166}
@@ -171,6 +173,7 @@ static void debug_objects_oom(void)
171{ 173{
172 struct debug_bucket *db = obj_hash; 174 struct debug_bucket *db = obj_hash;
173 struct hlist_node *node, *tmp; 175 struct hlist_node *node, *tmp;
176 HLIST_HEAD(freelist);
174 struct debug_obj *obj; 177 struct debug_obj *obj;
175 unsigned long flags; 178 unsigned long flags;
176 int i; 179 int i;
@@ -179,11 +182,14 @@ static void debug_objects_oom(void)
179 182
180 for (i = 0; i < ODEBUG_HASH_SIZE; i++, db++) { 183 for (i = 0; i < ODEBUG_HASH_SIZE; i++, db++) {
181 spin_lock_irqsave(&db->lock, flags); 184 spin_lock_irqsave(&db->lock, flags);
182 hlist_for_each_entry_safe(obj, node, tmp, &db->list, node) { 185 hlist_move_list(&db->list, &freelist);
186 spin_unlock_irqrestore(&db->lock, flags);
187
188 /* Now free them */
189 hlist_for_each_entry_safe(obj, node, tmp, &freelist, node) {
183 hlist_del(&obj->node); 190 hlist_del(&obj->node);
184 free_object(obj); 191 free_object(obj);
185 } 192 }
186 spin_unlock_irqrestore(&db->lock, flags);
187 } 193 }
188} 194}
189 195
@@ -498,8 +504,9 @@ void debug_object_free(void *addr, struct debug_obj_descr *descr)
498 return; 504 return;
499 default: 505 default:
500 hlist_del(&obj->node); 506 hlist_del(&obj->node);
507 spin_unlock_irqrestore(&db->lock, flags);
501 free_object(obj); 508 free_object(obj);
502 break; 509 return;
503 } 510 }
504out_unlock: 511out_unlock:
505 spin_unlock_irqrestore(&db->lock, flags); 512 spin_unlock_irqrestore(&db->lock, flags);
@@ -510,6 +517,7 @@ static void __debug_check_no_obj_freed(const void *address, unsigned long size)
510{ 517{
511 unsigned long flags, oaddr, saddr, eaddr, paddr, chunks; 518 unsigned long flags, oaddr, saddr, eaddr, paddr, chunks;
512 struct hlist_node *node, *tmp; 519 struct hlist_node *node, *tmp;
520 HLIST_HEAD(freelist);
513 struct debug_obj_descr *descr; 521 struct debug_obj_descr *descr;
514 enum debug_obj_state state; 522 enum debug_obj_state state;
515 struct debug_bucket *db; 523 struct debug_bucket *db;
@@ -545,11 +553,18 @@ repeat:
545 goto repeat; 553 goto repeat;
546 default: 554 default:
547 hlist_del(&obj->node); 555 hlist_del(&obj->node);
548 free_object(obj); 556 hlist_add_head(&obj->node, &freelist);
549 break; 557 break;
550 } 558 }
551 } 559 }
552 spin_unlock_irqrestore(&db->lock, flags); 560 spin_unlock_irqrestore(&db->lock, flags);
561
562 /* Now free them */
563 hlist_for_each_entry_safe(obj, node, tmp, &freelist, node) {
564 hlist_del(&obj->node);
565 free_object(obj);
566 }
567
553 if (cnt > debug_objects_maxchain) 568 if (cnt > debug_objects_maxchain)
554 debug_objects_maxchain = cnt; 569 debug_objects_maxchain = cnt;
555 } 570 }
diff --git a/lib/scatterlist.c b/lib/scatterlist.c
index 876ba6d5b670..8d2688ff1352 100644
--- a/lib/scatterlist.c
+++ b/lib/scatterlist.c
@@ -422,9 +422,12 @@ static size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents,
422{ 422{
423 unsigned int offset = 0; 423 unsigned int offset = 0;
424 struct sg_mapping_iter miter; 424 struct sg_mapping_iter miter;
425 unsigned long flags;
425 426
426 sg_miter_start(&miter, sgl, nents, SG_MITER_ATOMIC); 427 sg_miter_start(&miter, sgl, nents, SG_MITER_ATOMIC);
427 428
429 local_irq_save(flags);
430
428 while (sg_miter_next(&miter) && offset < buflen) { 431 while (sg_miter_next(&miter) && offset < buflen) {
429 unsigned int len; 432 unsigned int len;
430 433
@@ -442,6 +445,7 @@ static size_t sg_copy_buffer(struct scatterlist *sgl, unsigned int nents,
442 445
443 sg_miter_stop(&miter); 446 sg_miter_stop(&miter);
444 447
448 local_irq_restore(flags);
445 return offset; 449 return offset;
446} 450}
447 451
diff --git a/lib/swiotlb.c b/lib/swiotlb.c
index 977edbdbc1de..8826fdf0f180 100644
--- a/lib/swiotlb.c
+++ b/lib/swiotlb.c
@@ -491,7 +491,7 @@ swiotlb_alloc_coherent(struct device *hwdev, size_t size,
491 * the lowest available address range. 491 * the lowest available address range.
492 */ 492 */
493 dma_addr_t handle; 493 dma_addr_t handle;
494 handle = swiotlb_map_single(NULL, NULL, size, DMA_FROM_DEVICE); 494 handle = swiotlb_map_single(hwdev, NULL, size, DMA_FROM_DEVICE);
495 if (swiotlb_dma_mapping_error(hwdev, handle)) 495 if (swiotlb_dma_mapping_error(hwdev, handle))
496 return NULL; 496 return NULL;
497 497
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index d8d1d1142248..c399bc1093cb 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -27,6 +27,7 @@
27 27
28#include <asm/page.h> /* for PAGE_SIZE */ 28#include <asm/page.h> /* for PAGE_SIZE */
29#include <asm/div64.h> 29#include <asm/div64.h>
30#include <asm/sections.h> /* for dereference_function_descriptor() */
30 31
31/* Works only for digits and letters, but small and fast */ 32/* Works only for digits and letters, but small and fast */
32#define TOLOWER(x) ((x) | 0x20) 33#define TOLOWER(x) ((x) | 0x20)
@@ -513,16 +514,6 @@ static char *string(char *buf, char *end, char *s, int field_width, int precisio
513 return buf; 514 return buf;
514} 515}
515 516
516static inline void *dereference_function_descriptor(void *ptr)
517{
518#if defined(CONFIG_IA64) || defined(CONFIG_PPC64)
519 void *p;
520 if (!probe_kernel_address(ptr, p))
521 ptr = p;
522#endif
523 return ptr;
524}
525
526static char *symbol_string(char *buf, char *end, void *ptr, int field_width, int precision, int flags) 517static char *symbol_string(char *buf, char *end, void *ptr, int field_width, int precision, int flags)
527{ 518{
528 unsigned long value = (unsigned long) ptr; 519 unsigned long value = (unsigned long) ptr;
diff --git a/mm/filemap.c b/mm/filemap.c
index 54e968650855..876bc595d0f8 100644
--- a/mm/filemap.c
+++ b/mm/filemap.c
@@ -2129,13 +2129,20 @@ generic_file_direct_write(struct kiocb *iocb, const struct iovec *iov,
2129 * After a write we want buffered reads to be sure to go to disk to get 2129 * After a write we want buffered reads to be sure to go to disk to get
2130 * the new data. We invalidate clean cached page from the region we're 2130 * the new data. We invalidate clean cached page from the region we're
2131 * about to write. We do this *before* the write so that we can return 2131 * about to write. We do this *before* the write so that we can return
2132 * -EIO without clobbering -EIOCBQUEUED from ->direct_IO(). 2132 * without clobbering -EIOCBQUEUED from ->direct_IO().
2133 */ 2133 */
2134 if (mapping->nrpages) { 2134 if (mapping->nrpages) {
2135 written = invalidate_inode_pages2_range(mapping, 2135 written = invalidate_inode_pages2_range(mapping,
2136 pos >> PAGE_CACHE_SHIFT, end); 2136 pos >> PAGE_CACHE_SHIFT, end);
2137 if (written) 2137 /*
2138 * If a page can not be invalidated, return 0 to fall back
2139 * to buffered write.
2140 */
2141 if (written) {
2142 if (written == -EBUSY)
2143 return 0;
2138 goto out; 2144 goto out;
2145 }
2139 } 2146 }
2140 2147
2141 written = mapping->a_ops->direct_IO(WRITE, iocb, iov, pos, *nr_segs); 2148 written = mapping->a_ops->direct_IO(WRITE, iocb, iov, pos, *nr_segs);
diff --git a/mm/mmap.c b/mm/mmap.c
index 339cf5c4d5d8..e7a5a68a9c2e 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1030,6 +1030,10 @@ unsigned long do_mmap_pgoff(struct file * file, unsigned long addr,
1030 } else { 1030 } else {
1031 switch (flags & MAP_TYPE) { 1031 switch (flags & MAP_TYPE) {
1032 case MAP_SHARED: 1032 case MAP_SHARED:
1033 /*
1034 * Ignore pgoff.
1035 */
1036 pgoff = 0;
1033 vm_flags |= VM_SHARED | VM_MAYSHARE; 1037 vm_flags |= VM_SHARED | VM_MAYSHARE;
1034 break; 1038 break;
1035 case MAP_PRIVATE: 1039 case MAP_PRIVATE:
diff --git a/mm/mmzone.c b/mm/mmzone.c
index 486ed595ee6f..16ce8b955dcf 100644
--- a/mm/mmzone.c
+++ b/mm/mmzone.c
@@ -69,6 +69,6 @@ struct zoneref *next_zones_zonelist(struct zoneref *z,
69 (z->zone && !zref_in_nodemask(z, nodes))) 69 (z->zone && !zref_in_nodemask(z, nodes)))
70 z++; 70 z++;
71 71
72 *zone = zonelist_zone(z++); 72 *zone = zonelist_zone(z);
73 return z; 73 return z;
74} 74}
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index af982f7cdb2a..e293c58bea58 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -694,6 +694,9 @@ static int move_freepages(struct zone *zone,
694#endif 694#endif
695 695
696 for (page = start_page; page <= end_page;) { 696 for (page = start_page; page <= end_page;) {
697 /* Make sure we are not inadvertently changing nodes */
698 VM_BUG_ON(page_to_nid(page) != zone_to_nid(zone));
699
697 if (!pfn_valid_within(page_to_pfn(page))) { 700 if (!pfn_valid_within(page_to_pfn(page))) {
698 page++; 701 page++;
699 continue; 702 continue;
@@ -2516,6 +2519,10 @@ static void setup_zone_migrate_reserve(struct zone *zone)
2516 continue; 2519 continue;
2517 page = pfn_to_page(pfn); 2520 page = pfn_to_page(pfn);
2518 2521
2522 /* Watch out for overlapping nodes */
2523 if (page_to_nid(page) != zone_to_nid(zone))
2524 continue;
2525
2519 /* Blocks with reserved pages will never free, skip them. */ 2526 /* Blocks with reserved pages will never free, skip them. */
2520 if (PageReserved(page)) 2527 if (PageReserved(page))
2521 continue; 2528 continue;
@@ -4064,7 +4071,7 @@ void __init set_dma_reserve(unsigned long new_dma_reserve)
4064} 4071}
4065 4072
4066#ifndef CONFIG_NEED_MULTIPLE_NODES 4073#ifndef CONFIG_NEED_MULTIPLE_NODES
4067struct pglist_data contig_page_data = { .bdata = &bootmem_node_data[0] }; 4074struct pglist_data __refdata contig_page_data = { .bdata = &bootmem_node_data[0] };
4068EXPORT_SYMBOL(contig_page_data); 4075EXPORT_SYMBOL(contig_page_data);
4069#endif 4076#endif
4070 4077
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index 3444b58033c8..c69f84fe038d 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -2,7 +2,6 @@
2 * linux/mm/page_isolation.c 2 * linux/mm/page_isolation.c
3 */ 3 */
4 4
5#include <stddef.h>
6#include <linux/mm.h> 5#include <linux/mm.h>
7#include <linux/page-isolation.h> 6#include <linux/page-isolation.h>
8#include <linux/pageblock-flags.h> 7#include <linux/pageblock-flags.h>
diff --git a/mm/quicklist.c b/mm/quicklist.c
index 3f703f7cb398..8dbb6805ef35 100644
--- a/mm/quicklist.c
+++ b/mm/quicklist.c
@@ -26,7 +26,10 @@ DEFINE_PER_CPU(struct quicklist, quicklist)[CONFIG_NR_QUICK];
26static unsigned long max_pages(unsigned long min_pages) 26static unsigned long max_pages(unsigned long min_pages)
27{ 27{
28 unsigned long node_free_pages, max; 28 unsigned long node_free_pages, max;
29 struct zone *zones = NODE_DATA(numa_node_id())->node_zones; 29 int node = numa_node_id();
30 struct zone *zones = NODE_DATA(node)->node_zones;
31 int num_cpus_on_node;
32 node_to_cpumask_ptr(cpumask_on_node, node);
30 33
31 node_free_pages = 34 node_free_pages =
32#ifdef CONFIG_ZONE_DMA 35#ifdef CONFIG_ZONE_DMA
@@ -38,6 +41,10 @@ static unsigned long max_pages(unsigned long min_pages)
38 zone_page_state(&zones[ZONE_NORMAL], NR_FREE_PAGES); 41 zone_page_state(&zones[ZONE_NORMAL], NR_FREE_PAGES);
39 42
40 max = node_free_pages / FRACTION_OF_NODE_MEM; 43 max = node_free_pages / FRACTION_OF_NODE_MEM;
44
45 num_cpus_on_node = cpus_weight_nr(*cpumask_on_node);
46 max /= num_cpus_on_node;
47
41 return max(max, min_pages); 48 return max(max, min_pages);
42} 49}
43 50
diff --git a/mm/slub.c b/mm/slub.c
index 4f5b96149458..0c83e6afe7b2 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1932,6 +1932,7 @@ init_kmem_cache_node(struct kmem_cache_node *n, struct kmem_cache *s)
1932 INIT_LIST_HEAD(&n->partial); 1932 INIT_LIST_HEAD(&n->partial);
1933#ifdef CONFIG_SLUB_DEBUG 1933#ifdef CONFIG_SLUB_DEBUG
1934 atomic_long_set(&n->nr_slabs, 0); 1934 atomic_long_set(&n->nr_slabs, 0);
1935 atomic_long_set(&n->total_objects, 0);
1935 INIT_LIST_HEAD(&n->full); 1936 INIT_LIST_HEAD(&n->full);
1936#endif 1937#endif
1937} 1938}
@@ -2312,7 +2313,7 @@ static int kmem_cache_open(struct kmem_cache *s, gfp_t gfpflags,
2312 2313
2313 s->refcount = 1; 2314 s->refcount = 1;
2314#ifdef CONFIG_NUMA 2315#ifdef CONFIG_NUMA
2315 s->remote_node_defrag_ratio = 100; 2316 s->remote_node_defrag_ratio = 1000;
2316#endif 2317#endif
2317 if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA)) 2318 if (!init_kmem_cache_nodes(s, gfpflags & ~SLUB_DMA))
2318 goto error; 2319 goto error;
@@ -4058,7 +4059,7 @@ static ssize_t remote_node_defrag_ratio_store(struct kmem_cache *s,
4058 if (err) 4059 if (err)
4059 return err; 4060 return err;
4060 4061
4061 if (ratio < 100) 4062 if (ratio <= 100)
4062 s->remote_node_defrag_ratio = ratio * 10; 4063 s->remote_node_defrag_ratio = ratio * 10;
4063 4064
4064 return length; 4065 return length;
diff --git a/mm/truncate.c b/mm/truncate.c
index 250505091d37..6650c1d878b4 100644
--- a/mm/truncate.c
+++ b/mm/truncate.c
@@ -380,7 +380,7 @@ static int do_launder_page(struct address_space *mapping, struct page *page)
380 * Any pages which are found to be mapped into pagetables are unmapped prior to 380 * Any pages which are found to be mapped into pagetables are unmapped prior to
381 * invalidation. 381 * invalidation.
382 * 382 *
383 * Returns -EIO if any pages could not be invalidated. 383 * Returns -EBUSY if any pages could not be invalidated.
384 */ 384 */
385int invalidate_inode_pages2_range(struct address_space *mapping, 385int invalidate_inode_pages2_range(struct address_space *mapping,
386 pgoff_t start, pgoff_t end) 386 pgoff_t start, pgoff_t end)
@@ -440,7 +440,7 @@ int invalidate_inode_pages2_range(struct address_space *mapping,
440 ret2 = do_launder_page(mapping, page); 440 ret2 = do_launder_page(mapping, page);
441 if (ret2 == 0) { 441 if (ret2 == 0) {
442 if (!invalidate_complete_page2(mapping, page)) 442 if (!invalidate_complete_page2(mapping, page))
443 ret2 = -EIO; 443 ret2 = -EBUSY;
444 } 444 }
445 if (ret2 < 0) 445 if (ret2 < 0)
446 ret = ret2; 446 ret = ret2;
diff --git a/mm/vmstat.c b/mm/vmstat.c
index b0d08e667ece..d7826af2fb07 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -516,9 +516,26 @@ static void pagetypeinfo_showblockcount_print(struct seq_file *m,
516 continue; 516 continue;
517 517
518 page = pfn_to_page(pfn); 518 page = pfn_to_page(pfn);
519#ifdef CONFIG_ARCH_FLATMEM_HAS_HOLES
520 /*
521 * Ordinarily, memory holes in flatmem still have a valid
522 * memmap for the PFN range. However, an architecture for
523 * embedded systems (e.g. ARM) can free up the memmap backing
524 * holes to save memory on the assumption the memmap is
525 * never used. The page_zone linkages are then broken even
526 * though pfn_valid() returns true. Skip the page if the
527 * linkages are broken. Even if this test passed, the impact
528 * is that the counters for the movable type are off but
529 * fragmentation monitoring is likely meaningless on small
530 * systems.
531 */
532 if (page_zone(page) != zone)
533 continue;
534#endif
519 mtype = get_pageblock_migratetype(page); 535 mtype = get_pageblock_migratetype(page);
520 536
521 count[mtype]++; 537 if (mtype < MIGRATE_TYPES)
538 count[mtype]++;
522 } 539 }
523 540
524 /* Print counts */ 541 /* Print counts */
diff --git a/net/bluetooth/af_bluetooth.c b/net/bluetooth/af_bluetooth.c
index 1edfdf4c095b..f6348e078aa4 100644
--- a/net/bluetooth/af_bluetooth.c
+++ b/net/bluetooth/af_bluetooth.c
@@ -49,7 +49,7 @@
49#define BT_DBG(D...) 49#define BT_DBG(D...)
50#endif 50#endif
51 51
52#define VERSION "2.12" 52#define VERSION "2.13"
53 53
54/* Bluetooth sockets */ 54/* Bluetooth sockets */
55#define BT_MAX_PROTO 8 55#define BT_MAX_PROTO 8
diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
index ca8d05245ca0..b7002429f152 100644
--- a/net/bluetooth/hci_conn.c
+++ b/net/bluetooth/hci_conn.c
@@ -330,7 +330,7 @@ EXPORT_SYMBOL(hci_get_route);
330 330
331/* Create SCO or ACL connection. 331/* Create SCO or ACL connection.
332 * Device _must_ be locked */ 332 * Device _must_ be locked */
333struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst) 333struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst, __u8 auth_type)
334{ 334{
335 struct hci_conn *acl; 335 struct hci_conn *acl;
336 struct hci_conn *sco; 336 struct hci_conn *sco;
@@ -344,8 +344,10 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst)
344 344
345 hci_conn_hold(acl); 345 hci_conn_hold(acl);
346 346
347 if (acl->state == BT_OPEN || acl->state == BT_CLOSED) 347 if (acl->state == BT_OPEN || acl->state == BT_CLOSED) {
348 acl->auth_type = auth_type;
348 hci_acl_connect(acl); 349 hci_acl_connect(acl);
350 }
349 351
350 if (type == ACL_LINK) 352 if (type == ACL_LINK)
351 return acl; 353 return acl;
@@ -374,6 +376,19 @@ struct hci_conn *hci_connect(struct hci_dev *hdev, int type, bdaddr_t *dst)
374} 376}
375EXPORT_SYMBOL(hci_connect); 377EXPORT_SYMBOL(hci_connect);
376 378
379/* Check link security requirement */
380int hci_conn_check_link_mode(struct hci_conn *conn)
381{
382 BT_DBG("conn %p", conn);
383
384 if (conn->ssp_mode > 0 && conn->hdev->ssp_mode > 0 &&
385 !(conn->link_mode & HCI_LM_ENCRYPT))
386 return 0;
387
388 return 1;
389}
390EXPORT_SYMBOL(hci_conn_check_link_mode);
391
377/* Authenticate remote device */ 392/* Authenticate remote device */
378int hci_conn_auth(struct hci_conn *conn) 393int hci_conn_auth(struct hci_conn *conn)
379{ 394{
@@ -381,7 +396,7 @@ int hci_conn_auth(struct hci_conn *conn)
381 396
382 if (conn->ssp_mode > 0 && conn->hdev->ssp_mode > 0) { 397 if (conn->ssp_mode > 0 && conn->hdev->ssp_mode > 0) {
383 if (!(conn->auth_type & 0x01)) { 398 if (!(conn->auth_type & 0x01)) {
384 conn->auth_type = HCI_AT_GENERAL_BONDING_MITM; 399 conn->auth_type |= 0x01;
385 conn->link_mode &= ~HCI_LM_AUTH; 400 conn->link_mode &= ~HCI_LM_AUTH;
386 } 401 }
387 } 402 }
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index f5b21cb93699..278a3ace14f6 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -164,6 +164,9 @@ static inline int hci_request(struct hci_dev *hdev, void (*req)(struct hci_dev *
164{ 164{
165 int ret; 165 int ret;
166 166
167 if (!test_bit(HCI_UP, &hdev->flags))
168 return -ENETDOWN;
169
167 /* Serialize all requests */ 170 /* Serialize all requests */
168 hci_req_lock(hdev); 171 hci_req_lock(hdev);
169 ret = __hci_request(hdev, req, opt, timeout); 172 ret = __hci_request(hdev, req, opt, timeout);
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
index 0e3db289f4be..ad7a553d7713 100644
--- a/net/bluetooth/hci_event.c
+++ b/net/bluetooth/hci_event.c
@@ -1605,14 +1605,11 @@ static inline void hci_remote_ext_features_evt(struct hci_dev *hdev, struct sk_b
1605 1605
1606 if (conn->state == BT_CONFIG) { 1606 if (conn->state == BT_CONFIG) {
1607 if (!ev->status && hdev->ssp_mode > 0 && 1607 if (!ev->status && hdev->ssp_mode > 0 &&
1608 conn->ssp_mode > 0) { 1608 conn->ssp_mode > 0 && conn->out) {
1609 if (conn->out) { 1609 struct hci_cp_auth_requested cp;
1610 struct hci_cp_auth_requested cp; 1610 cp.handle = ev->handle;
1611 cp.handle = ev->handle; 1611 hci_send_cmd(hdev, HCI_OP_AUTH_REQUESTED,
1612 hci_send_cmd(hdev,
1613 HCI_OP_AUTH_REQUESTED,
1614 sizeof(cp), &cp); 1612 sizeof(cp), &cp);
1615 }
1616 } else { 1613 } else {
1617 conn->state = BT_CONNECTED; 1614 conn->state = BT_CONNECTED;
1618 hci_proto_connect_cfm(conn, ev->status); 1615 hci_proto_connect_cfm(conn, ev->status);
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index 3396d5bdef1c..9610a9c85b98 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -55,7 +55,7 @@
55#define BT_DBG(D...) 55#define BT_DBG(D...)
56#endif 56#endif
57 57
58#define VERSION "2.10" 58#define VERSION "2.11"
59 59
60static u32 l2cap_feat_mask = 0x0000; 60static u32 l2cap_feat_mask = 0x0000;
61 61
@@ -778,6 +778,7 @@ static int l2cap_do_connect(struct sock *sk)
778 struct l2cap_conn *conn; 778 struct l2cap_conn *conn;
779 struct hci_conn *hcon; 779 struct hci_conn *hcon;
780 struct hci_dev *hdev; 780 struct hci_dev *hdev;
781 __u8 auth_type;
781 int err = 0; 782 int err = 0;
782 783
783 BT_DBG("%s -> %s psm 0x%2.2x", batostr(src), batostr(dst), l2cap_pi(sk)->psm); 784 BT_DBG("%s -> %s psm 0x%2.2x", batostr(src), batostr(dst), l2cap_pi(sk)->psm);
@@ -789,7 +790,21 @@ static int l2cap_do_connect(struct sock *sk)
789 790
790 err = -ENOMEM; 791 err = -ENOMEM;
791 792
792 hcon = hci_connect(hdev, ACL_LINK, dst); 793 if (l2cap_pi(sk)->link_mode & L2CAP_LM_AUTH ||
794 l2cap_pi(sk)->link_mode & L2CAP_LM_ENCRYPT ||
795 l2cap_pi(sk)->link_mode & L2CAP_LM_SECURE) {
796 if (l2cap_pi(sk)->psm == cpu_to_le16(0x0001))
797 auth_type = HCI_AT_NO_BONDING_MITM;
798 else
799 auth_type = HCI_AT_GENERAL_BONDING_MITM;
800 } else {
801 if (l2cap_pi(sk)->psm == cpu_to_le16(0x0001))
802 auth_type = HCI_AT_NO_BONDING;
803 else
804 auth_type = HCI_AT_GENERAL_BONDING;
805 }
806
807 hcon = hci_connect(hdev, ACL_LINK, dst, auth_type);
793 if (!hcon) 808 if (!hcon)
794 goto done; 809 goto done;
795 810
@@ -1553,10 +1568,10 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
1553 struct l2cap_conn_req *req = (struct l2cap_conn_req *) data; 1568 struct l2cap_conn_req *req = (struct l2cap_conn_req *) data;
1554 struct l2cap_conn_rsp rsp; 1569 struct l2cap_conn_rsp rsp;
1555 struct sock *sk, *parent; 1570 struct sock *sk, *parent;
1556 int result, status = 0; 1571 int result, status = L2CAP_CS_NO_INFO;
1557 1572
1558 u16 dcid = 0, scid = __le16_to_cpu(req->scid); 1573 u16 dcid = 0, scid = __le16_to_cpu(req->scid);
1559 __le16 psm = req->psm; 1574 __le16 psm = req->psm;
1560 1575
1561 BT_DBG("psm 0x%2.2x scid 0x%4.4x", psm, scid); 1576 BT_DBG("psm 0x%2.2x scid 0x%4.4x", psm, scid);
1562 1577
@@ -1567,6 +1582,13 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
1567 goto sendresp; 1582 goto sendresp;
1568 } 1583 }
1569 1584
1585 /* Check if the ACL is secure enough (if not SDP) */
1586 if (psm != cpu_to_le16(0x0001) &&
1587 !hci_conn_check_link_mode(conn->hcon)) {
1588 result = L2CAP_CR_SEC_BLOCK;
1589 goto response;
1590 }
1591
1570 result = L2CAP_CR_NO_MEM; 1592 result = L2CAP_CR_NO_MEM;
1571 1593
1572 /* Check for backlog size */ 1594 /* Check for backlog size */
@@ -2224,7 +2246,7 @@ static int l2cap_auth_cfm(struct hci_conn *hcon, u8 status)
2224 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid); 2246 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid);
2225 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid); 2247 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid);
2226 rsp.result = cpu_to_le16(result); 2248 rsp.result = cpu_to_le16(result);
2227 rsp.status = cpu_to_le16(0); 2249 rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
2228 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 2250 l2cap_send_cmd(conn, l2cap_pi(sk)->ident,
2229 L2CAP_CONN_RSP, sizeof(rsp), &rsp); 2251 L2CAP_CONN_RSP, sizeof(rsp), &rsp);
2230 } 2252 }
@@ -2296,7 +2318,7 @@ static int l2cap_encrypt_cfm(struct hci_conn *hcon, u8 status, u8 encrypt)
2296 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid); 2318 rsp.scid = cpu_to_le16(l2cap_pi(sk)->dcid);
2297 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid); 2319 rsp.dcid = cpu_to_le16(l2cap_pi(sk)->scid);
2298 rsp.result = cpu_to_le16(result); 2320 rsp.result = cpu_to_le16(result);
2299 rsp.status = cpu_to_le16(0); 2321 rsp.status = cpu_to_le16(L2CAP_CS_NO_INFO);
2300 l2cap_send_cmd(conn, l2cap_pi(sk)->ident, 2322 l2cap_send_cmd(conn, l2cap_pi(sk)->ident,
2301 L2CAP_CONN_RSP, sizeof(rsp), &rsp); 2323 L2CAP_CONN_RSP, sizeof(rsp), &rsp);
2302 } 2324 }
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
index a16011fedc1d..0cc91e6da76d 100644
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
@@ -200,7 +200,7 @@ static int sco_connect(struct sock *sk)
200 else 200 else
201 type = SCO_LINK; 201 type = SCO_LINK;
202 202
203 hcon = hci_connect(hdev, type, dst); 203 hcon = hci_connect(hdev, type, dst, HCI_AT_NO_BONDING);
204 if (!hcon) 204 if (!hcon)
205 goto done; 205 goto done;
206 206
diff --git a/net/bridge/br_ioctl.c b/net/bridge/br_ioctl.c
index eeee218eed80..5bbf07362172 100644
--- a/net/bridge/br_ioctl.c
+++ b/net/bridge/br_ioctl.c
@@ -188,15 +188,21 @@ static int old_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
188 return 0; 188 return 0;
189 189
190 case BRCTL_SET_BRIDGE_HELLO_TIME: 190 case BRCTL_SET_BRIDGE_HELLO_TIME:
191 {
192 unsigned long t = clock_t_to_jiffies(args[1]);
191 if (!capable(CAP_NET_ADMIN)) 193 if (!capable(CAP_NET_ADMIN))
192 return -EPERM; 194 return -EPERM;
193 195
196 if (t < HZ)
197 return -EINVAL;
198
194 spin_lock_bh(&br->lock); 199 spin_lock_bh(&br->lock);
195 br->bridge_hello_time = clock_t_to_jiffies(args[1]); 200 br->bridge_hello_time = t;
196 if (br_is_root_bridge(br)) 201 if (br_is_root_bridge(br))
197 br->hello_time = br->bridge_hello_time; 202 br->hello_time = br->bridge_hello_time;
198 spin_unlock_bh(&br->lock); 203 spin_unlock_bh(&br->lock);
199 return 0; 204 return 0;
205 }
200 206
201 case BRCTL_SET_BRIDGE_MAX_AGE: 207 case BRCTL_SET_BRIDGE_MAX_AGE:
202 if (!capable(CAP_NET_ADMIN)) 208 if (!capable(CAP_NET_ADMIN))
diff --git a/net/bridge/br_sysfs_br.c b/net/bridge/br_sysfs_br.c
index 27d6a511c8c1..158dee8b4965 100644
--- a/net/bridge/br_sysfs_br.c
+++ b/net/bridge/br_sysfs_br.c
@@ -29,11 +29,12 @@
29 */ 29 */
30static ssize_t store_bridge_parm(struct device *d, 30static ssize_t store_bridge_parm(struct device *d,
31 const char *buf, size_t len, 31 const char *buf, size_t len,
32 void (*set)(struct net_bridge *, unsigned long)) 32 int (*set)(struct net_bridge *, unsigned long))
33{ 33{
34 struct net_bridge *br = to_bridge(d); 34 struct net_bridge *br = to_bridge(d);
35 char *endp; 35 char *endp;
36 unsigned long val; 36 unsigned long val;
37 int err;
37 38
38 if (!capable(CAP_NET_ADMIN)) 39 if (!capable(CAP_NET_ADMIN))
39 return -EPERM; 40 return -EPERM;
@@ -43,9 +44,9 @@ static ssize_t store_bridge_parm(struct device *d,
43 return -EINVAL; 44 return -EINVAL;
44 45
45 spin_lock_bh(&br->lock); 46 spin_lock_bh(&br->lock);
46 (*set)(br, val); 47 err = (*set)(br, val);
47 spin_unlock_bh(&br->lock); 48 spin_unlock_bh(&br->lock);
48 return len; 49 return err ? err : len;
49} 50}
50 51
51 52
@@ -56,12 +57,13 @@ static ssize_t show_forward_delay(struct device *d,
56 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->forward_delay)); 57 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->forward_delay));
57} 58}
58 59
59static void set_forward_delay(struct net_bridge *br, unsigned long val) 60static int set_forward_delay(struct net_bridge *br, unsigned long val)
60{ 61{
61 unsigned long delay = clock_t_to_jiffies(val); 62 unsigned long delay = clock_t_to_jiffies(val);
62 br->forward_delay = delay; 63 br->forward_delay = delay;
63 if (br_is_root_bridge(br)) 64 if (br_is_root_bridge(br))
64 br->bridge_forward_delay = delay; 65 br->bridge_forward_delay = delay;
66 return 0;
65} 67}
66 68
67static ssize_t store_forward_delay(struct device *d, 69static ssize_t store_forward_delay(struct device *d,
@@ -80,12 +82,17 @@ static ssize_t show_hello_time(struct device *d, struct device_attribute *attr,
80 jiffies_to_clock_t(to_bridge(d)->hello_time)); 82 jiffies_to_clock_t(to_bridge(d)->hello_time));
81} 83}
82 84
83static void set_hello_time(struct net_bridge *br, unsigned long val) 85static int set_hello_time(struct net_bridge *br, unsigned long val)
84{ 86{
85 unsigned long t = clock_t_to_jiffies(val); 87 unsigned long t = clock_t_to_jiffies(val);
88
89 if (t < HZ)
90 return -EINVAL;
91
86 br->hello_time = t; 92 br->hello_time = t;
87 if (br_is_root_bridge(br)) 93 if (br_is_root_bridge(br))
88 br->bridge_hello_time = t; 94 br->bridge_hello_time = t;
95 return 0;
89} 96}
90 97
91static ssize_t store_hello_time(struct device *d, 98static ssize_t store_hello_time(struct device *d,
@@ -104,12 +111,13 @@ static ssize_t show_max_age(struct device *d, struct device_attribute *attr,
104 jiffies_to_clock_t(to_bridge(d)->max_age)); 111 jiffies_to_clock_t(to_bridge(d)->max_age));
105} 112}
106 113
107static void set_max_age(struct net_bridge *br, unsigned long val) 114static int set_max_age(struct net_bridge *br, unsigned long val)
108{ 115{
109 unsigned long t = clock_t_to_jiffies(val); 116 unsigned long t = clock_t_to_jiffies(val);
110 br->max_age = t; 117 br->max_age = t;
111 if (br_is_root_bridge(br)) 118 if (br_is_root_bridge(br))
112 br->bridge_max_age = t; 119 br->bridge_max_age = t;
120 return 0;
113} 121}
114 122
115static ssize_t store_max_age(struct device *d, struct device_attribute *attr, 123static ssize_t store_max_age(struct device *d, struct device_attribute *attr,
@@ -126,9 +134,10 @@ static ssize_t show_ageing_time(struct device *d,
126 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->ageing_time)); 134 return sprintf(buf, "%lu\n", jiffies_to_clock_t(br->ageing_time));
127} 135}
128 136
129static void set_ageing_time(struct net_bridge *br, unsigned long val) 137static int set_ageing_time(struct net_bridge *br, unsigned long val)
130{ 138{
131 br->ageing_time = clock_t_to_jiffies(val); 139 br->ageing_time = clock_t_to_jiffies(val);
140 return 0;
132} 141}
133 142
134static ssize_t store_ageing_time(struct device *d, 143static ssize_t store_ageing_time(struct device *d,
@@ -180,9 +189,10 @@ static ssize_t show_priority(struct device *d, struct device_attribute *attr,
180 (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]); 189 (br->bridge_id.prio[0] << 8) | br->bridge_id.prio[1]);
181} 190}
182 191
183static void set_priority(struct net_bridge *br, unsigned long val) 192static int set_priority(struct net_bridge *br, unsigned long val)
184{ 193{
185 br_stp_set_bridge_priority(br, (u16) val); 194 br_stp_set_bridge_priority(br, (u16) val);
195 return 0;
186} 196}
187 197
188static ssize_t store_priority(struct device *d, struct device_attribute *attr, 198static ssize_t store_priority(struct device *d, struct device_attribute *attr,
diff --git a/net/core/dev.c b/net/core/dev.c
index 60c51f765887..e719ed29310f 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1991,8 +1991,13 @@ static void net_tx_action(struct softirq_action *h)
1991 spin_unlock(root_lock); 1991 spin_unlock(root_lock);
1992 } else { 1992 } else {
1993 if (!test_bit(__QDISC_STATE_DEACTIVATED, 1993 if (!test_bit(__QDISC_STATE_DEACTIVATED,
1994 &q->state)) 1994 &q->state)) {
1995 __netif_reschedule(q); 1995 __netif_reschedule(q);
1996 } else {
1997 smp_mb__before_clear_bit();
1998 clear_bit(__QDISC_STATE_SCHED,
1999 &q->state);
2000 }
1996 } 2001 }
1997 } 2002 }
1998 } 2003 }
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 91d3d96805d0..b12dae2b0b2d 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1029,6 +1029,11 @@ skip:
1029 } 1029 }
1030} 1030}
1031 1031
1032static inline bool inetdev_valid_mtu(unsigned mtu)
1033{
1034 return mtu >= 68;
1035}
1036
1032/* Called only under RTNL semaphore */ 1037/* Called only under RTNL semaphore */
1033 1038
1034static int inetdev_event(struct notifier_block *this, unsigned long event, 1039static int inetdev_event(struct notifier_block *this, unsigned long event,
@@ -1048,6 +1053,10 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
1048 IN_DEV_CONF_SET(in_dev, NOXFRM, 1); 1053 IN_DEV_CONF_SET(in_dev, NOXFRM, 1);
1049 IN_DEV_CONF_SET(in_dev, NOPOLICY, 1); 1054 IN_DEV_CONF_SET(in_dev, NOPOLICY, 1);
1050 } 1055 }
1056 } else if (event == NETDEV_CHANGEMTU) {
1057 /* Re-enabling IP */
1058 if (inetdev_valid_mtu(dev->mtu))
1059 in_dev = inetdev_init(dev);
1051 } 1060 }
1052 goto out; 1061 goto out;
1053 } 1062 }
@@ -1058,7 +1067,7 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
1058 dev->ip_ptr = NULL; 1067 dev->ip_ptr = NULL;
1059 break; 1068 break;
1060 case NETDEV_UP: 1069 case NETDEV_UP:
1061 if (dev->mtu < 68) 1070 if (!inetdev_valid_mtu(dev->mtu))
1062 break; 1071 break;
1063 if (dev->flags & IFF_LOOPBACK) { 1072 if (dev->flags & IFF_LOOPBACK) {
1064 struct in_ifaddr *ifa; 1073 struct in_ifaddr *ifa;
@@ -1080,9 +1089,9 @@ static int inetdev_event(struct notifier_block *this, unsigned long event,
1080 ip_mc_down(in_dev); 1089 ip_mc_down(in_dev);
1081 break; 1090 break;
1082 case NETDEV_CHANGEMTU: 1091 case NETDEV_CHANGEMTU:
1083 if (dev->mtu >= 68) 1092 if (inetdev_valid_mtu(dev->mtu))
1084 break; 1093 break;
1085 /* MTU falled under 68, disable IP */ 1094 /* disable IP when MTU is not enough */
1086 case NETDEV_UNREGISTER: 1095 case NETDEV_UNREGISTER:
1087 inetdev_destroy(in_dev); 1096 inetdev_destroy(in_dev);
1088 break; 1097 break;
diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
index d985bd613d25..743f011b9a84 100644
--- a/net/ipv4/inet_timewait_sock.c
+++ b/net/ipv4/inet_timewait_sock.c
@@ -409,3 +409,38 @@ out:
409} 409}
410 410
411EXPORT_SYMBOL_GPL(inet_twdr_twcal_tick); 411EXPORT_SYMBOL_GPL(inet_twdr_twcal_tick);
412
413void inet_twsk_purge(struct net *net, struct inet_hashinfo *hashinfo,
414 struct inet_timewait_death_row *twdr, int family)
415{
416 struct inet_timewait_sock *tw;
417 struct sock *sk;
418 struct hlist_node *node;
419 int h;
420
421 local_bh_disable();
422 for (h = 0; h < (hashinfo->ehash_size); h++) {
423 struct inet_ehash_bucket *head =
424 inet_ehash_bucket(hashinfo, h);
425 rwlock_t *lock = inet_ehash_lockp(hashinfo, h);
426restart:
427 write_lock(lock);
428 sk_for_each(sk, node, &head->twchain) {
429
430 tw = inet_twsk(sk);
431 if (!net_eq(twsk_net(tw), net) ||
432 tw->tw_family != family)
433 continue;
434
435 atomic_inc(&tw->tw_refcnt);
436 write_unlock(lock);
437 inet_twsk_deschedule(tw, twdr);
438 inet_twsk_put(tw);
439
440 goto restart;
441 }
442 write_unlock(lock);
443 }
444 local_bh_enable();
445}
446EXPORT_SYMBOL_GPL(inet_twsk_purge);
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index e91bafeb32f4..6ee5354c9aa1 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -3121,9 +3121,9 @@ static struct ctl_table empty[1];
3121static struct ctl_table ipv4_skeleton[] = 3121static struct ctl_table ipv4_skeleton[] =
3122{ 3122{
3123 { .procname = "route", .ctl_name = NET_IPV4_ROUTE, 3123 { .procname = "route", .ctl_name = NET_IPV4_ROUTE,
3124 .child = ipv4_route_table}, 3124 .mode = 0555, .child = ipv4_route_table},
3125 { .procname = "neigh", .ctl_name = NET_IPV4_NEIGH, 3125 { .procname = "neigh", .ctl_name = NET_IPV4_NEIGH,
3126 .child = empty}, 3126 .mode = 0555, .child = empty},
3127 { } 3127 { }
3128}; 3128};
3129 3129
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index 44c1e934824b..1b4fee20fc93 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -2376,6 +2376,7 @@ static int __net_init tcp_sk_init(struct net *net)
2376static void __net_exit tcp_sk_exit(struct net *net) 2376static void __net_exit tcp_sk_exit(struct net *net)
2377{ 2377{
2378 inet_ctl_sock_destroy(net->ipv4.tcp_sock); 2378 inet_ctl_sock_destroy(net->ipv4.tcp_sock);
2379 inet_twsk_purge(net, &tcp_hashinfo, &tcp_death_row, AF_INET);
2379} 2380}
2380 2381
2381static struct pernet_operations __net_initdata tcp_sk_ops = { 2382static struct pernet_operations __net_initdata tcp_sk_ops = {
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index a00532de2a8c..8165f5aa8c71 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -468,7 +468,8 @@ static unsigned tcp_syn_options(struct sock *sk, struct sk_buff *skb,
468 } 468 }
469 if (likely(sysctl_tcp_window_scaling)) { 469 if (likely(sysctl_tcp_window_scaling)) {
470 opts->ws = tp->rx_opt.rcv_wscale; 470 opts->ws = tp->rx_opt.rcv_wscale;
471 size += TCPOLEN_WSCALE_ALIGNED; 471 if(likely(opts->ws))
472 size += TCPOLEN_WSCALE_ALIGNED;
472 } 473 }
473 if (likely(sysctl_tcp_sack)) { 474 if (likely(sysctl_tcp_sack)) {
474 opts->options |= OPTION_SACK_ADVERTISE; 475 opts->options |= OPTION_SACK_ADVERTISE;
@@ -509,7 +510,8 @@ static unsigned tcp_synack_options(struct sock *sk,
509 510
510 if (likely(ireq->wscale_ok)) { 511 if (likely(ireq->wscale_ok)) {
511 opts->ws = ireq->rcv_wscale; 512 opts->ws = ireq->rcv_wscale;
512 size += TCPOLEN_WSCALE_ALIGNED; 513 if(likely(opts->ws))
514 size += TCPOLEN_WSCALE_ALIGNED;
513 } 515 }
514 if (likely(doing_ts)) { 516 if (likely(doing_ts)) {
515 opts->options |= OPTION_TS; 517 opts->options |= OPTION_TS;
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 0e844c2736a7..3df2c442d90b 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -943,39 +943,39 @@ static int ip6_dst_lookup_tail(struct sock *sk,
943 } 943 }
944 944
945#ifdef CONFIG_IPV6_OPTIMISTIC_DAD 945#ifdef CONFIG_IPV6_OPTIMISTIC_DAD
946 /* 946 /*
947 * Here if the dst entry we've looked up 947 * Here if the dst entry we've looked up
948 * has a neighbour entry that is in the INCOMPLETE 948 * has a neighbour entry that is in the INCOMPLETE
949 * state and the src address from the flow is 949 * state and the src address from the flow is
950 * marked as OPTIMISTIC, we release the found 950 * marked as OPTIMISTIC, we release the found
951 * dst entry and replace it instead with the 951 * dst entry and replace it instead with the
952 * dst entry of the nexthop router 952 * dst entry of the nexthop router
953 */ 953 */
954 if (!((*dst)->neighbour->nud_state & NUD_VALID)) { 954 if ((*dst)->neighbour && !((*dst)->neighbour->nud_state & NUD_VALID)) {
955 struct inet6_ifaddr *ifp; 955 struct inet6_ifaddr *ifp;
956 struct flowi fl_gw; 956 struct flowi fl_gw;
957 int redirect; 957 int redirect;
958 958
959 ifp = ipv6_get_ifaddr(net, &fl->fl6_src, 959 ifp = ipv6_get_ifaddr(net, &fl->fl6_src,
960 (*dst)->dev, 1); 960 (*dst)->dev, 1);
961 961
962 redirect = (ifp && ifp->flags & IFA_F_OPTIMISTIC); 962 redirect = (ifp && ifp->flags & IFA_F_OPTIMISTIC);
963 if (ifp) 963 if (ifp)
964 in6_ifa_put(ifp); 964 in6_ifa_put(ifp);
965 965
966 if (redirect) { 966 if (redirect) {
967 /* 967 /*
968 * We need to get the dst entry for the 968 * We need to get the dst entry for the
969 * default router instead 969 * default router instead
970 */ 970 */
971 dst_release(*dst); 971 dst_release(*dst);
972 memcpy(&fl_gw, fl, sizeof(struct flowi)); 972 memcpy(&fl_gw, fl, sizeof(struct flowi));
973 memset(&fl_gw.fl6_dst, 0, sizeof(struct in6_addr)); 973 memset(&fl_gw.fl6_dst, 0, sizeof(struct in6_addr));
974 *dst = ip6_route_output(net, sk, &fl_gw); 974 *dst = ip6_route_output(net, sk, &fl_gw);
975 if ((err = (*dst)->error)) 975 if ((err = (*dst)->error))
976 goto out_err_release; 976 goto out_err_release;
977 }
978 } 977 }
978 }
979#endif 979#endif
980 980
981 return 0; 981 return 0;
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index 01d47674f7e5..e53e493606c5 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -377,14 +377,14 @@ static inline int rawv6_rcv_skb(struct sock * sk, struct sk_buff * skb)
377 skb_checksum_complete(skb)) { 377 skb_checksum_complete(skb)) {
378 atomic_inc(&sk->sk_drops); 378 atomic_inc(&sk->sk_drops);
379 kfree_skb(skb); 379 kfree_skb(skb);
380 return 0; 380 return NET_RX_DROP;
381 } 381 }
382 382
383 /* Charge it to the socket. */ 383 /* Charge it to the socket. */
384 if (sock_queue_rcv_skb(sk,skb)<0) { 384 if (sock_queue_rcv_skb(sk,skb)<0) {
385 atomic_inc(&sk->sk_drops); 385 atomic_inc(&sk->sk_drops);
386 kfree_skb(skb); 386 kfree_skb(skb);
387 return 0; 387 return NET_RX_DROP;
388 } 388 }
389 389
390 return 0; 390 return 0;
@@ -429,7 +429,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
429 if (skb_checksum_complete(skb)) { 429 if (skb_checksum_complete(skb)) {
430 atomic_inc(&sk->sk_drops); 430 atomic_inc(&sk->sk_drops);
431 kfree_skb(skb); 431 kfree_skb(skb);
432 return 0; 432 return NET_RX_DROP;
433 } 433 }
434 } 434 }
435 435
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 5b90b369ccb2..b585c850a89a 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -2148,6 +2148,7 @@ static int tcpv6_net_init(struct net *net)
2148static void tcpv6_net_exit(struct net *net) 2148static void tcpv6_net_exit(struct net *net)
2149{ 2149{
2150 inet_ctl_sock_destroy(net->ipv6.tcp_sk); 2150 inet_ctl_sock_destroy(net->ipv6.tcp_sk);
2151 inet_twsk_purge(net, &tcp_hashinfo, &tcp_death_row, AF_INET6);
2151} 2152}
2152 2153
2153static struct pernet_operations tcpv6_net_ops = { 2154static struct pernet_operations tcpv6_net_ops = {
diff --git a/net/mac80211/debugfs_key.c b/net/mac80211/debugfs_key.c
index 7439b63df5d0..cf82acec913a 100644
--- a/net/mac80211/debugfs_key.c
+++ b/net/mac80211/debugfs_key.c
@@ -265,7 +265,7 @@ void ieee80211_debugfs_key_add_default(struct ieee80211_sub_if_data *sdata)
265 key = sdata->default_key; 265 key = sdata->default_key;
266 if (key) { 266 if (key) {
267 sprintf(buf, "../keys/%d", key->debugfs.cnt); 267 sprintf(buf, "../keys/%d", key->debugfs.cnt);
268 sdata->debugfs.default_key = 268 sdata->common_debugfs.default_key =
269 debugfs_create_symlink("default_key", 269 debugfs_create_symlink("default_key",
270 sdata->debugfsdir, buf); 270 sdata->debugfsdir, buf);
271 } else 271 } else
@@ -277,8 +277,8 @@ void ieee80211_debugfs_key_remove_default(struct ieee80211_sub_if_data *sdata)
277 if (!sdata) 277 if (!sdata)
278 return; 278 return;
279 279
280 debugfs_remove(sdata->debugfs.default_key); 280 debugfs_remove(sdata->common_debugfs.default_key);
281 sdata->debugfs.default_key = NULL; 281 sdata->common_debugfs.default_key = NULL;
282} 282}
283 283
284void ieee80211_debugfs_key_sta_del(struct ieee80211_key *key, 284void ieee80211_debugfs_key_sta_del(struct ieee80211_key *key,
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 475f89a8aee1..8165df578c92 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -248,8 +248,8 @@ IEEE80211_IF_WFILE(min_discovery_timeout,
248static void add_sta_files(struct ieee80211_sub_if_data *sdata) 248static void add_sta_files(struct ieee80211_sub_if_data *sdata)
249{ 249{
250 DEBUGFS_ADD(drop_unencrypted, sta); 250 DEBUGFS_ADD(drop_unencrypted, sta);
251 DEBUGFS_ADD(force_unicast_rateidx, ap); 251 DEBUGFS_ADD(force_unicast_rateidx, sta);
252 DEBUGFS_ADD(max_ratectrl_rateidx, ap); 252 DEBUGFS_ADD(max_ratectrl_rateidx, sta);
253 253
254 DEBUGFS_ADD(state, sta); 254 DEBUGFS_ADD(state, sta);
255 DEBUGFS_ADD(bssid, sta); 255 DEBUGFS_ADD(bssid, sta);
@@ -283,8 +283,8 @@ static void add_ap_files(struct ieee80211_sub_if_data *sdata)
283static void add_wds_files(struct ieee80211_sub_if_data *sdata) 283static void add_wds_files(struct ieee80211_sub_if_data *sdata)
284{ 284{
285 DEBUGFS_ADD(drop_unencrypted, wds); 285 DEBUGFS_ADD(drop_unencrypted, wds);
286 DEBUGFS_ADD(force_unicast_rateidx, ap); 286 DEBUGFS_ADD(force_unicast_rateidx, wds);
287 DEBUGFS_ADD(max_ratectrl_rateidx, ap); 287 DEBUGFS_ADD(max_ratectrl_rateidx, wds);
288 288
289 DEBUGFS_ADD(peer, wds); 289 DEBUGFS_ADD(peer, wds);
290} 290}
@@ -292,8 +292,8 @@ static void add_wds_files(struct ieee80211_sub_if_data *sdata)
292static void add_vlan_files(struct ieee80211_sub_if_data *sdata) 292static void add_vlan_files(struct ieee80211_sub_if_data *sdata)
293{ 293{
294 DEBUGFS_ADD(drop_unencrypted, vlan); 294 DEBUGFS_ADD(drop_unencrypted, vlan);
295 DEBUGFS_ADD(force_unicast_rateidx, ap); 295 DEBUGFS_ADD(force_unicast_rateidx, vlan);
296 DEBUGFS_ADD(max_ratectrl_rateidx, ap); 296 DEBUGFS_ADD(max_ratectrl_rateidx, vlan);
297} 297}
298 298
299static void add_monitor_files(struct ieee80211_sub_if_data *sdata) 299static void add_monitor_files(struct ieee80211_sub_if_data *sdata)
@@ -381,8 +381,8 @@ static void add_files(struct ieee80211_sub_if_data *sdata)
381static void del_sta_files(struct ieee80211_sub_if_data *sdata) 381static void del_sta_files(struct ieee80211_sub_if_data *sdata)
382{ 382{
383 DEBUGFS_DEL(drop_unencrypted, sta); 383 DEBUGFS_DEL(drop_unencrypted, sta);
384 DEBUGFS_DEL(force_unicast_rateidx, ap); 384 DEBUGFS_DEL(force_unicast_rateidx, sta);
385 DEBUGFS_DEL(max_ratectrl_rateidx, ap); 385 DEBUGFS_DEL(max_ratectrl_rateidx, sta);
386 386
387 DEBUGFS_DEL(state, sta); 387 DEBUGFS_DEL(state, sta);
388 DEBUGFS_DEL(bssid, sta); 388 DEBUGFS_DEL(bssid, sta);
@@ -416,8 +416,8 @@ static void del_ap_files(struct ieee80211_sub_if_data *sdata)
416static void del_wds_files(struct ieee80211_sub_if_data *sdata) 416static void del_wds_files(struct ieee80211_sub_if_data *sdata)
417{ 417{
418 DEBUGFS_DEL(drop_unencrypted, wds); 418 DEBUGFS_DEL(drop_unencrypted, wds);
419 DEBUGFS_DEL(force_unicast_rateidx, ap); 419 DEBUGFS_DEL(force_unicast_rateidx, wds);
420 DEBUGFS_DEL(max_ratectrl_rateidx, ap); 420 DEBUGFS_DEL(max_ratectrl_rateidx, wds);
421 421
422 DEBUGFS_DEL(peer, wds); 422 DEBUGFS_DEL(peer, wds);
423} 423}
@@ -425,8 +425,8 @@ static void del_wds_files(struct ieee80211_sub_if_data *sdata)
425static void del_vlan_files(struct ieee80211_sub_if_data *sdata) 425static void del_vlan_files(struct ieee80211_sub_if_data *sdata)
426{ 426{
427 DEBUGFS_DEL(drop_unencrypted, vlan); 427 DEBUGFS_DEL(drop_unencrypted, vlan);
428 DEBUGFS_DEL(force_unicast_rateidx, ap); 428 DEBUGFS_DEL(force_unicast_rateidx, vlan);
429 DEBUGFS_DEL(max_ratectrl_rateidx, ap); 429 DEBUGFS_DEL(max_ratectrl_rateidx, vlan);
430} 430}
431 431
432static void del_monitor_files(struct ieee80211_sub_if_data *sdata) 432static void del_monitor_files(struct ieee80211_sub_if_data *sdata)
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index ec59345af65b..4498d8713652 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -470,6 +470,8 @@ struct ieee80211_sub_if_data {
470 struct dentry *auth_transaction; 470 struct dentry *auth_transaction;
471 struct dentry *flags; 471 struct dentry *flags;
472 struct dentry *num_beacons_sta; 472 struct dentry *num_beacons_sta;
473 struct dentry *force_unicast_rateidx;
474 struct dentry *max_ratectrl_rateidx;
473 } sta; 475 } sta;
474 struct { 476 struct {
475 struct dentry *drop_unencrypted; 477 struct dentry *drop_unencrypted;
@@ -483,15 +485,21 @@ struct ieee80211_sub_if_data {
483 struct { 485 struct {
484 struct dentry *drop_unencrypted; 486 struct dentry *drop_unencrypted;
485 struct dentry *peer; 487 struct dentry *peer;
488 struct dentry *force_unicast_rateidx;
489 struct dentry *max_ratectrl_rateidx;
486 } wds; 490 } wds;
487 struct { 491 struct {
488 struct dentry *drop_unencrypted; 492 struct dentry *drop_unencrypted;
493 struct dentry *force_unicast_rateidx;
494 struct dentry *max_ratectrl_rateidx;
489 } vlan; 495 } vlan;
490 struct { 496 struct {
491 struct dentry *mode; 497 struct dentry *mode;
492 } monitor; 498 } monitor;
493 struct dentry *default_key;
494 } debugfs; 499 } debugfs;
500 struct {
501 struct dentry *default_key;
502 } common_debugfs;
495 503
496#ifdef CONFIG_MAC80211_MESH 504#ifdef CONFIG_MAC80211_MESH
497 struct dentry *mesh_stats_dir; 505 struct dentry *mesh_stats_dir;
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index b5933b271491..35f2f95f2fa7 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -383,7 +383,7 @@ errcopy:
383 hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) 383 hlist_for_each_safe(p, q, &newtbl->hash_buckets[i])
384 tbl->free_node(p, 0); 384 tbl->free_node(p, 0);
385 } 385 }
386 __mesh_table_free(tbl); 386 __mesh_table_free(newtbl);
387endgrow: 387endgrow:
388 return NULL; 388 return NULL;
389} 389}
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1e97fb9fb34b..902cac1bd246 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -813,7 +813,7 @@ static void ieee80211_send_assoc(struct net_device *dev,
813 } 813 }
814 } 814 }
815 815
816 if (count == 8) { 816 if (rates_len > count) {
817 pos = skb_put(skb, rates_len - count + 2); 817 pos = skb_put(skb, rates_len - count + 2);
818 *pos++ = WLAN_EID_EXT_SUPP_RATES; 818 *pos++ = WLAN_EID_EXT_SUPP_RATES;
819 *pos++ = rates_len - count; 819 *pos++ = rates_len - count;
@@ -2868,7 +2868,7 @@ static void ieee80211_rx_bss_info(struct net_device *dev,
2868 jiffies); 2868 jiffies);
2869#endif /* CONFIG_MAC80211_IBSS_DEBUG */ 2869#endif /* CONFIG_MAC80211_IBSS_DEBUG */
2870 if (beacon_timestamp > rx_timestamp) { 2870 if (beacon_timestamp > rx_timestamp) {
2871#ifndef CONFIG_MAC80211_IBSS_DEBUG 2871#ifdef CONFIG_MAC80211_IBSS_DEBUG
2872 printk(KERN_DEBUG "%s: beacon TSF higher than " 2872 printk(KERN_DEBUG "%s: beacon TSF higher than "
2873 "local TSF - IBSS merge with BSSID %s\n", 2873 "local TSF - IBSS merge with BSSID %s\n",
2874 dev->name, print_mac(mac, mgmt->bssid)); 2874 dev->name, print_mac(mac, mgmt->bssid));
diff --git a/net/netfilter/nf_conntrack_irc.c b/net/netfilter/nf_conntrack_irc.c
index 1b1226d6653f..20633fdf7e6b 100644
--- a/net/netfilter/nf_conntrack_irc.c
+++ b/net/netfilter/nf_conntrack_irc.c
@@ -68,11 +68,21 @@ static const char *const dccprotos[] = {
68static int parse_dcc(char *data, const char *data_end, u_int32_t *ip, 68static int parse_dcc(char *data, const char *data_end, u_int32_t *ip,
69 u_int16_t *port, char **ad_beg_p, char **ad_end_p) 69 u_int16_t *port, char **ad_beg_p, char **ad_end_p)
70{ 70{
71 char *tmp;
72
71 /* at least 12: "AAAAAAAA P\1\n" */ 73 /* at least 12: "AAAAAAAA P\1\n" */
72 while (*data++ != ' ') 74 while (*data++ != ' ')
73 if (data > data_end - 12) 75 if (data > data_end - 12)
74 return -1; 76 return -1;
75 77
78 /* Make sure we have a newline character within the packet boundaries
79 * because simple_strtoul parses until the first invalid character. */
80 for (tmp = data; tmp <= data_end; tmp++)
81 if (*tmp == '\n')
82 break;
83 if (tmp > data_end || *tmp != '\n')
84 return -1;
85
76 *ad_beg_p = data; 86 *ad_beg_p = data;
77 *ip = simple_strtoul(data, &data, 10); 87 *ip = simple_strtoul(data, &data, 10);
78 88
diff --git a/net/netfilter/nf_conntrack_proto_gre.c b/net/netfilter/nf_conntrack_proto_gre.c
index 654a4f7f12c6..9bd03967fea4 100644
--- a/net/netfilter/nf_conntrack_proto_gre.c
+++ b/net/netfilter/nf_conntrack_proto_gre.c
@@ -45,12 +45,12 @@ static LIST_HEAD(gre_keymap_list);
45 45
46void nf_ct_gre_keymap_flush(void) 46void nf_ct_gre_keymap_flush(void)
47{ 47{
48 struct list_head *pos, *n; 48 struct nf_ct_gre_keymap *km, *tmp;
49 49
50 write_lock_bh(&nf_ct_gre_lock); 50 write_lock_bh(&nf_ct_gre_lock);
51 list_for_each_safe(pos, n, &gre_keymap_list) { 51 list_for_each_entry_safe(km, tmp, &gre_keymap_list, list) {
52 list_del(pos); 52 list_del(&km->list);
53 kfree(pos); 53 kfree(km);
54 } 54 }
55 write_unlock_bh(&nf_ct_gre_lock); 55 write_unlock_bh(&nf_ct_gre_lock);
56} 56}
@@ -97,10 +97,14 @@ int nf_ct_gre_keymap_add(struct nf_conn *ct, enum ip_conntrack_dir dir,
97 kmp = &help->help.ct_pptp_info.keymap[dir]; 97 kmp = &help->help.ct_pptp_info.keymap[dir];
98 if (*kmp) { 98 if (*kmp) {
99 /* check whether it's a retransmission */ 99 /* check whether it's a retransmission */
100 read_lock_bh(&nf_ct_gre_lock);
100 list_for_each_entry(km, &gre_keymap_list, list) { 101 list_for_each_entry(km, &gre_keymap_list, list) {
101 if (gre_key_cmpfn(km, t) && km == *kmp) 102 if (gre_key_cmpfn(km, t) && km == *kmp) {
103 read_unlock_bh(&nf_ct_gre_lock);
102 return 0; 104 return 0;
105 }
103 } 106 }
107 read_unlock_bh(&nf_ct_gre_lock);
104 pr_debug("trying to override keymap_%s for ct %p\n", 108 pr_debug("trying to override keymap_%s for ct %p\n",
105 dir == IP_CT_DIR_REPLY ? "reply" : "orig", ct); 109 dir == IP_CT_DIR_REPLY ? "reply" : "orig", ct);
106 return -EEXIST; 110 return -EEXIST;
diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
index 2f9bbc058b48..1fa306be60fb 100644
--- a/net/netfilter/nf_conntrack_sip.c
+++ b/net/netfilter/nf_conntrack_sip.c
@@ -1193,7 +1193,6 @@ static const struct sip_handler sip_handlers[] = {
1193static int process_sip_response(struct sk_buff *skb, 1193static int process_sip_response(struct sk_buff *skb,
1194 const char **dptr, unsigned int *datalen) 1194 const char **dptr, unsigned int *datalen)
1195{ 1195{
1196 static const struct sip_handler *handler;
1197 enum ip_conntrack_info ctinfo; 1196 enum ip_conntrack_info ctinfo;
1198 struct nf_conn *ct = nf_ct_get(skb, &ctinfo); 1197 struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
1199 unsigned int matchoff, matchlen; 1198 unsigned int matchoff, matchlen;
@@ -1214,6 +1213,8 @@ static int process_sip_response(struct sk_buff *skb,
1214 dataoff = matchoff + matchlen + 1; 1213 dataoff = matchoff + matchlen + 1;
1215 1214
1216 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) { 1215 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) {
1216 const struct sip_handler *handler;
1217
1217 handler = &sip_handlers[i]; 1218 handler = &sip_handlers[i];
1218 if (handler->response == NULL) 1219 if (handler->response == NULL)
1219 continue; 1220 continue;
@@ -1228,13 +1229,14 @@ static int process_sip_response(struct sk_buff *skb,
1228static int process_sip_request(struct sk_buff *skb, 1229static int process_sip_request(struct sk_buff *skb,
1229 const char **dptr, unsigned int *datalen) 1230 const char **dptr, unsigned int *datalen)
1230{ 1231{
1231 static const struct sip_handler *handler;
1232 enum ip_conntrack_info ctinfo; 1232 enum ip_conntrack_info ctinfo;
1233 struct nf_conn *ct = nf_ct_get(skb, &ctinfo); 1233 struct nf_conn *ct = nf_ct_get(skb, &ctinfo);
1234 unsigned int matchoff, matchlen; 1234 unsigned int matchoff, matchlen;
1235 unsigned int cseq, i; 1235 unsigned int cseq, i;
1236 1236
1237 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) { 1237 for (i = 0; i < ARRAY_SIZE(sip_handlers); i++) {
1238 const struct sip_handler *handler;
1239
1238 handler = &sip_handlers[i]; 1240 handler = &sip_handlers[i];
1239 if (handler->request == NULL) 1241 if (handler->request == NULL)
1240 continue; 1242 continue;
diff --git a/net/rfkill/rfkill.c b/net/rfkill/rfkill.c
index 35a9994e2339..74aecc098bad 100644
--- a/net/rfkill/rfkill.c
+++ b/net/rfkill/rfkill.c
@@ -377,7 +377,7 @@ static ssize_t rfkill_claim_show(struct device *dev,
377{ 377{
378 struct rfkill *rfkill = to_rfkill(dev); 378 struct rfkill *rfkill = to_rfkill(dev);
379 379
380 return sprintf(buf, "%d", rfkill->user_claim); 380 return sprintf(buf, "%d\n", rfkill->user_claim);
381} 381}
382 382
383static ssize_t rfkill_claim_store(struct device *dev, 383static ssize_t rfkill_claim_store(struct device *dev,
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 5cafdd4c8018..8eb79e92e94c 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -205,7 +205,7 @@ replay:
205 } 205 }
206 } 206 }
207 207
208 root_lock = qdisc_root_lock(q); 208 root_lock = qdisc_root_sleeping_lock(q);
209 209
210 if (tp == NULL) { 210 if (tp == NULL) {
211 /* Proto-tcf does not exist, create new one */ 211 /* Proto-tcf does not exist, create new one */
diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c
index 481260a4f10f..e3d8455eebc2 100644
--- a/net/sched/cls_route.c
+++ b/net/sched/cls_route.c
@@ -75,7 +75,7 @@ static __inline__ int route4_fastmap_hash(u32 id, int iif)
75static inline 75static inline
76void route4_reset_fastmap(struct Qdisc *q, struct route4_head *head, u32 id) 76void route4_reset_fastmap(struct Qdisc *q, struct route4_head *head, u32 id)
77{ 77{
78 spinlock_t *root_lock = qdisc_root_lock(q); 78 spinlock_t *root_lock = qdisc_root_sleeping_lock(q);
79 79
80 spin_lock_bh(root_lock); 80 spin_lock_bh(root_lock);
81 memset(head->fastmap, 0, sizeof(head->fastmap)); 81 memset(head->fastmap, 0, sizeof(head->fastmap));
diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
index e7fb9e0d21b4..1122c952aa99 100644
--- a/net/sched/sch_api.c
+++ b/net/sched/sch_api.c
@@ -624,7 +624,7 @@ static struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
624 struct Qdisc *oqdisc = dev_queue->qdisc_sleeping; 624 struct Qdisc *oqdisc = dev_queue->qdisc_sleeping;
625 spinlock_t *root_lock; 625 spinlock_t *root_lock;
626 626
627 root_lock = qdisc_root_lock(oqdisc); 627 root_lock = qdisc_lock(oqdisc);
628 spin_lock_bh(root_lock); 628 spin_lock_bh(root_lock);
629 629
630 /* Prune old scheduler */ 630 /* Prune old scheduler */
@@ -635,7 +635,7 @@ static struct Qdisc *dev_graft_qdisc(struct netdev_queue *dev_queue,
635 if (qdisc == NULL) 635 if (qdisc == NULL)
636 qdisc = &noop_qdisc; 636 qdisc = &noop_qdisc;
637 dev_queue->qdisc_sleeping = qdisc; 637 dev_queue->qdisc_sleeping = qdisc;
638 dev_queue->qdisc = &noop_qdisc; 638 rcu_assign_pointer(dev_queue->qdisc, &noop_qdisc);
639 639
640 spin_unlock_bh(root_lock); 640 spin_unlock_bh(root_lock);
641 641
@@ -830,9 +830,16 @@ qdisc_create(struct net_device *dev, struct netdev_queue *dev_queue,
830 sch->stab = stab; 830 sch->stab = stab;
831 } 831 }
832 if (tca[TCA_RATE]) { 832 if (tca[TCA_RATE]) {
833 spinlock_t *root_lock;
834
835 if ((sch->parent != TC_H_ROOT) &&
836 !(sch->flags & TCQ_F_INGRESS))
837 root_lock = qdisc_root_sleeping_lock(sch);
838 else
839 root_lock = qdisc_lock(sch);
840
833 err = gen_new_estimator(&sch->bstats, &sch->rate_est, 841 err = gen_new_estimator(&sch->bstats, &sch->rate_est,
834 qdisc_root_lock(sch), 842 root_lock, tca[TCA_RATE]);
835 tca[TCA_RATE]);
836 if (err) { 843 if (err) {
837 /* 844 /*
838 * Any broken qdiscs that would require 845 * Any broken qdiscs that would require
@@ -884,7 +891,8 @@ static int qdisc_change(struct Qdisc *sch, struct nlattr **tca)
884 891
885 if (tca[TCA_RATE]) 892 if (tca[TCA_RATE])
886 gen_replace_estimator(&sch->bstats, &sch->rate_est, 893 gen_replace_estimator(&sch->bstats, &sch->rate_est,
887 qdisc_root_lock(sch), tca[TCA_RATE]); 894 qdisc_root_sleeping_lock(sch),
895 tca[TCA_RATE]);
888 return 0; 896 return 0;
889} 897}
890 898
@@ -1161,8 +1169,8 @@ static int tc_fill_qdisc(struct sk_buff *skb, struct Qdisc *q, u32 clid,
1161 if (q->stab && qdisc_dump_stab(skb, q->stab) < 0) 1169 if (q->stab && qdisc_dump_stab(skb, q->stab) < 0)
1162 goto nla_put_failure; 1170 goto nla_put_failure;
1163 1171
1164 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, 1172 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, TCA_XSTATS,
1165 TCA_XSTATS, qdisc_root_lock(q), &d) < 0) 1173 qdisc_root_sleeping_lock(q), &d) < 0)
1166 goto nla_put_failure; 1174 goto nla_put_failure;
1167 1175
1168 if (q->ops->dump_stats && q->ops->dump_stats(q, &d) < 0) 1176 if (q->ops->dump_stats && q->ops->dump_stats(q, &d) < 0)
@@ -1453,8 +1461,8 @@ static int tc_fill_tclass(struct sk_buff *skb, struct Qdisc *q,
1453 if (cl_ops->dump && cl_ops->dump(q, cl, skb, tcm) < 0) 1461 if (cl_ops->dump && cl_ops->dump(q, cl, skb, tcm) < 0)
1454 goto nla_put_failure; 1462 goto nla_put_failure;
1455 1463
1456 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, 1464 if (gnet_stats_start_copy_compat(skb, TCA_STATS2, TCA_STATS, TCA_XSTATS,
1457 TCA_XSTATS, qdisc_root_lock(q), &d) < 0) 1465 qdisc_root_sleeping_lock(q), &d) < 0)
1458 goto nla_put_failure; 1466 goto nla_put_failure;
1459 1467
1460 if (cl_ops->dump_stats && cl_ops->dump_stats(q, cl, &d) < 0) 1468 if (cl_ops->dump_stats && cl_ops->dump_stats(q, cl, &d) < 0)
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index 8fa90d68ec6d..8b06fa900482 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -1754,7 +1754,7 @@ static void cbq_put(struct Qdisc *sch, unsigned long arg)
1754 1754
1755 if (--cl->refcnt == 0) { 1755 if (--cl->refcnt == 0) {
1756#ifdef CONFIG_NET_CLS_ACT 1756#ifdef CONFIG_NET_CLS_ACT
1757 spinlock_t *root_lock = qdisc_root_lock(sch); 1757 spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
1758 struct cbq_sched_data *q = qdisc_priv(sch); 1758 struct cbq_sched_data *q = qdisc_priv(sch);
1759 1759
1760 spin_lock_bh(root_lock); 1760 spin_lock_bh(root_lock);
@@ -1839,7 +1839,7 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
1839 1839
1840 if (tca[TCA_RATE]) 1840 if (tca[TCA_RATE])
1841 gen_replace_estimator(&cl->bstats, &cl->rate_est, 1841 gen_replace_estimator(&cl->bstats, &cl->rate_est,
1842 qdisc_root_lock(sch), 1842 qdisc_root_sleeping_lock(sch),
1843 tca[TCA_RATE]); 1843 tca[TCA_RATE]);
1844 return 0; 1844 return 0;
1845 } 1845 }
@@ -1930,7 +1930,7 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
1930 1930
1931 if (tca[TCA_RATE]) 1931 if (tca[TCA_RATE])
1932 gen_new_estimator(&cl->bstats, &cl->rate_est, 1932 gen_new_estimator(&cl->bstats, &cl->rate_est,
1933 qdisc_root_lock(sch), tca[TCA_RATE]); 1933 qdisc_root_sleeping_lock(sch), tca[TCA_RATE]);
1934 1934
1935 *arg = (unsigned long)cl; 1935 *arg = (unsigned long)cl;
1936 return 0; 1936 return 0;
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
index 5f0ade7806a7..ec0a0839ce51 100644
--- a/net/sched/sch_generic.c
+++ b/net/sched/sch_generic.c
@@ -215,10 +215,9 @@ static void dev_watchdog(unsigned long arg)
215 time_after(jiffies, (dev->trans_start + 215 time_after(jiffies, (dev->trans_start +
216 dev->watchdog_timeo))) { 216 dev->watchdog_timeo))) {
217 char drivername[64]; 217 char drivername[64];
218 printk(KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit timed out\n", 218 WARN_ONCE(1, KERN_INFO "NETDEV WATCHDOG: %s (%s): transmit timed out\n",
219 dev->name, netdev_drivername(dev, drivername, 64)); 219 dev->name, netdev_drivername(dev, drivername, 64));
220 dev->tx_timeout(dev); 220 dev->tx_timeout(dev);
221 WARN_ON_ONCE(1);
222 } 221 }
223 if (!mod_timer(&dev->watchdog_timer, 222 if (!mod_timer(&dev->watchdog_timer,
224 round_jiffies(jiffies + 223 round_jiffies(jiffies +
@@ -634,7 +633,7 @@ static void dev_deactivate_queue(struct net_device *dev,
634 if (!(qdisc->flags & TCQ_F_BUILTIN)) 633 if (!(qdisc->flags & TCQ_F_BUILTIN))
635 set_bit(__QDISC_STATE_DEACTIVATED, &qdisc->state); 634 set_bit(__QDISC_STATE_DEACTIVATED, &qdisc->state);
636 635
637 dev_queue->qdisc = qdisc_default; 636 rcu_assign_pointer(dev_queue->qdisc, qdisc_default);
638 qdisc_reset(qdisc); 637 qdisc_reset(qdisc);
639 638
640 spin_unlock_bh(qdisc_lock(qdisc)); 639 spin_unlock_bh(qdisc_lock(qdisc));
@@ -709,7 +708,7 @@ static void shutdown_scheduler_queue(struct net_device *dev,
709 struct Qdisc *qdisc_default = _qdisc_default; 708 struct Qdisc *qdisc_default = _qdisc_default;
710 709
711 if (qdisc) { 710 if (qdisc) {
712 dev_queue->qdisc = qdisc_default; 711 rcu_assign_pointer(dev_queue->qdisc, qdisc_default);
713 dev_queue->qdisc_sleeping = qdisc_default; 712 dev_queue->qdisc_sleeping = qdisc_default;
714 713
715 qdisc_destroy(qdisc); 714 qdisc_destroy(qdisc);
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c
index c2b8d9cce3d2..c1e77da8cd09 100644
--- a/net/sched/sch_hfsc.c
+++ b/net/sched/sch_hfsc.c
@@ -1045,7 +1045,7 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
1045 1045
1046 if (tca[TCA_RATE]) 1046 if (tca[TCA_RATE])
1047 gen_replace_estimator(&cl->bstats, &cl->rate_est, 1047 gen_replace_estimator(&cl->bstats, &cl->rate_est,
1048 qdisc_root_lock(sch), 1048 qdisc_root_sleeping_lock(sch),
1049 tca[TCA_RATE]); 1049 tca[TCA_RATE]);
1050 return 0; 1050 return 0;
1051 } 1051 }
@@ -1104,7 +1104,7 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
1104 1104
1105 if (tca[TCA_RATE]) 1105 if (tca[TCA_RATE])
1106 gen_new_estimator(&cl->bstats, &cl->rate_est, 1106 gen_new_estimator(&cl->bstats, &cl->rate_est,
1107 qdisc_root_lock(sch), tca[TCA_RATE]); 1107 qdisc_root_sleeping_lock(sch), tca[TCA_RATE]);
1108 *arg = (unsigned long)cl; 1108 *arg = (unsigned long)cl;
1109 return 0; 1109 return 0;
1110} 1110}
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 0df0df202ed0..d14f02056ae6 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -1043,7 +1043,7 @@ static int htb_init(struct Qdisc *sch, struct nlattr *opt)
1043 1043
1044static int htb_dump(struct Qdisc *sch, struct sk_buff *skb) 1044static int htb_dump(struct Qdisc *sch, struct sk_buff *skb)
1045{ 1045{
1046 spinlock_t *root_lock = qdisc_root_lock(sch); 1046 spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
1047 struct htb_sched *q = qdisc_priv(sch); 1047 struct htb_sched *q = qdisc_priv(sch);
1048 struct nlattr *nest; 1048 struct nlattr *nest;
1049 struct tc_htb_glob gopt; 1049 struct tc_htb_glob gopt;
@@ -1075,7 +1075,7 @@ static int htb_dump_class(struct Qdisc *sch, unsigned long arg,
1075 struct sk_buff *skb, struct tcmsg *tcm) 1075 struct sk_buff *skb, struct tcmsg *tcm)
1076{ 1076{
1077 struct htb_class *cl = (struct htb_class *)arg; 1077 struct htb_class *cl = (struct htb_class *)arg;
1078 spinlock_t *root_lock = qdisc_root_lock(sch); 1078 spinlock_t *root_lock = qdisc_root_sleeping_lock(sch);
1079 struct nlattr *nest; 1079 struct nlattr *nest;
1080 struct tc_htb_opt opt; 1080 struct tc_htb_opt opt;
1081 1081
@@ -1372,7 +1372,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
1372 goto failure; 1372 goto failure;
1373 1373
1374 gen_new_estimator(&cl->bstats, &cl->rate_est, 1374 gen_new_estimator(&cl->bstats, &cl->rate_est,
1375 qdisc_root_lock(sch), 1375 qdisc_root_sleeping_lock(sch),
1376 tca[TCA_RATE] ? : &est.nla); 1376 tca[TCA_RATE] ? : &est.nla);
1377 cl->refcnt = 1; 1377 cl->refcnt = 1;
1378 cl->children = 0; 1378 cl->children = 0;
@@ -1427,7 +1427,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
1427 } else { 1427 } else {
1428 if (tca[TCA_RATE]) 1428 if (tca[TCA_RATE])
1429 gen_replace_estimator(&cl->bstats, &cl->rate_est, 1429 gen_replace_estimator(&cl->bstats, &cl->rate_est,
1430 qdisc_root_lock(sch), 1430 qdisc_root_sleeping_lock(sch),
1431 tca[TCA_RATE]); 1431 tca[TCA_RATE]);
1432 sch_tree_lock(sch); 1432 sch_tree_lock(sch);
1433 } 1433 }
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index fb0294d0b55e..3781e55046d0 100644
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -341,7 +341,7 @@ static int get_dist_table(struct Qdisc *sch, const struct nlattr *attr)
341 for (i = 0; i < n; i++) 341 for (i = 0; i < n; i++)
342 d->table[i] = data[i]; 342 d->table[i] = data[i];
343 343
344 root_lock = qdisc_root_lock(sch); 344 root_lock = qdisc_root_sleeping_lock(sch);
345 345
346 spin_lock_bh(root_lock); 346 spin_lock_bh(root_lock);
347 d = xchg(&q->delay_dist, d); 347 d = xchg(&q->delay_dist, d);
diff --git a/net/sched/sch_teql.c b/net/sched/sch_teql.c
index 2c35c678563b..d35ef059abb1 100644
--- a/net/sched/sch_teql.c
+++ b/net/sched/sch_teql.c
@@ -161,7 +161,7 @@ teql_destroy(struct Qdisc* sch)
161 txq = netdev_get_tx_queue(master->dev, 0); 161 txq = netdev_get_tx_queue(master->dev, 0);
162 master->slaves = NULL; 162 master->slaves = NULL;
163 163
164 root_lock = qdisc_root_lock(txq->qdisc); 164 root_lock = qdisc_root_sleeping_lock(txq->qdisc);
165 spin_lock_bh(root_lock); 165 spin_lock_bh(root_lock);
166 qdisc_reset(txq->qdisc); 166 qdisc_reset(txq->qdisc);
167 spin_unlock_bh(root_lock); 167 spin_unlock_bh(root_lock);
diff --git a/net/sctp/auth.c b/net/sctp/auth.c
index 1fcb4cf2f4c9..52db5f60daa0 100644
--- a/net/sctp/auth.c
+++ b/net/sctp/auth.c
@@ -786,6 +786,9 @@ int sctp_auth_ep_set_hmacs(struct sctp_endpoint *ep,
786 for (i = 0; i < hmacs->shmac_num_idents; i++) { 786 for (i = 0; i < hmacs->shmac_num_idents; i++) {
787 id = hmacs->shmac_idents[i]; 787 id = hmacs->shmac_idents[i];
788 788
789 if (id > SCTP_AUTH_HMAC_ID_MAX)
790 return -EOPNOTSUPP;
791
789 if (SCTP_AUTH_HMAC_ID_SHA1 == id) 792 if (SCTP_AUTH_HMAC_ID_SHA1 == id)
790 has_sha1 = 1; 793 has_sha1 = 1;
791 794
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index afa952e726d7..5ffb9dec1c3f 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3086,6 +3086,7 @@ static int sctp_setsockopt_hmac_ident(struct sock *sk,
3086 int optlen) 3086 int optlen)
3087{ 3087{
3088 struct sctp_hmacalgo *hmacs; 3088 struct sctp_hmacalgo *hmacs;
3089 u32 idents;
3089 int err; 3090 int err;
3090 3091
3091 if (!sctp_auth_enable) 3092 if (!sctp_auth_enable)
@@ -3103,8 +3104,9 @@ static int sctp_setsockopt_hmac_ident(struct sock *sk,
3103 goto out; 3104 goto out;
3104 } 3105 }
3105 3106
3106 if (hmacs->shmac_num_idents == 0 || 3107 idents = hmacs->shmac_num_idents;
3107 hmacs->shmac_num_idents > SCTP_AUTH_NUM_HMACS) { 3108 if (idents == 0 || idents > SCTP_AUTH_NUM_HMACS ||
3109 (idents * sizeof(u16)) > (optlen - sizeof(struct sctp_hmacalgo))) {
3108 err = -EINVAL; 3110 err = -EINVAL;
3109 goto out; 3111 goto out;
3110 } 3112 }
@@ -3144,7 +3146,7 @@ static int sctp_setsockopt_auth_key(struct sock *sk,
3144 goto out; 3146 goto out;
3145 } 3147 }
3146 3148
3147 if (authkey->sca_keylength > optlen) { 3149 if (authkey->sca_keylength > optlen - sizeof(struct sctp_authkey)) {
3148 ret = -EINVAL; 3150 ret = -EINVAL;
3149 goto out; 3151 goto out;
3150 } 3152 }
diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c
index 0f8c439b848a..5231f7aaac0e 100644
--- a/net/sunrpc/sysctl.c
+++ b/net/sunrpc/sysctl.c
@@ -60,24 +60,14 @@ static int proc_do_xprt(ctl_table *table, int write, struct file *file,
60 void __user *buffer, size_t *lenp, loff_t *ppos) 60 void __user *buffer, size_t *lenp, loff_t *ppos)
61{ 61{
62 char tmpbuf[256]; 62 char tmpbuf[256];
63 int len; 63 size_t len;
64
64 if ((*ppos && !write) || !*lenp) { 65 if ((*ppos && !write) || !*lenp) {
65 *lenp = 0; 66 *lenp = 0;
66 return 0; 67 return 0;
67 } 68 }
68 if (write) 69 len = svc_print_xprts(tmpbuf, sizeof(tmpbuf));
69 return -EINVAL; 70 return simple_read_from_buffer(buffer, *lenp, ppos, tmpbuf, len);
70 else {
71 len = svc_print_xprts(tmpbuf, sizeof(tmpbuf));
72 if (!access_ok(VERIFY_WRITE, buffer, len))
73 return -EFAULT;
74
75 if (__copy_to_user(buffer, tmpbuf, len))
76 return -EFAULT;
77 }
78 *lenp -= len;
79 *ppos += len;
80 return 0;
81} 71}
82 72
83static int 73static int
diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
index b4b17f44cb29..74de31a06616 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
@@ -443,18 +443,18 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
443 443
444 dprintk("svcrdma: rqstp=%p\n", rqstp); 444 dprintk("svcrdma: rqstp=%p\n", rqstp);
445 445
446 spin_lock_bh(&rdma_xprt->sc_read_complete_lock); 446 spin_lock_bh(&rdma_xprt->sc_rq_dto_lock);
447 if (!list_empty(&rdma_xprt->sc_read_complete_q)) { 447 if (!list_empty(&rdma_xprt->sc_read_complete_q)) {
448 ctxt = list_entry(rdma_xprt->sc_read_complete_q.next, 448 ctxt = list_entry(rdma_xprt->sc_read_complete_q.next,
449 struct svc_rdma_op_ctxt, 449 struct svc_rdma_op_ctxt,
450 dto_q); 450 dto_q);
451 list_del_init(&ctxt->dto_q); 451 list_del_init(&ctxt->dto_q);
452 } 452 }
453 spin_unlock_bh(&rdma_xprt->sc_read_complete_lock); 453 if (ctxt) {
454 if (ctxt) 454 spin_unlock_bh(&rdma_xprt->sc_rq_dto_lock);
455 return rdma_read_complete(rqstp, ctxt); 455 return rdma_read_complete(rqstp, ctxt);
456 }
456 457
457 spin_lock_bh(&rdma_xprt->sc_rq_dto_lock);
458 if (!list_empty(&rdma_xprt->sc_rq_dto_q)) { 458 if (!list_empty(&rdma_xprt->sc_rq_dto_q)) {
459 ctxt = list_entry(rdma_xprt->sc_rq_dto_q.next, 459 ctxt = list_entry(rdma_xprt->sc_rq_dto_q.next,
460 struct svc_rdma_op_ctxt, 460 struct svc_rdma_op_ctxt,
diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
index 19ddc382b777..900cb69728c6 100644
--- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
+++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
@@ -359,11 +359,11 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
359 if (test_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags)) { 359 if (test_bit(RDMACTXT_F_LAST_CTXT, &ctxt->flags)) {
360 struct svc_rdma_op_ctxt *read_hdr = ctxt->read_hdr; 360 struct svc_rdma_op_ctxt *read_hdr = ctxt->read_hdr;
361 BUG_ON(!read_hdr); 361 BUG_ON(!read_hdr);
362 spin_lock_bh(&xprt->sc_rq_dto_lock);
362 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags); 363 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags);
363 spin_lock_bh(&xprt->sc_read_complete_lock);
364 list_add_tail(&read_hdr->dto_q, 364 list_add_tail(&read_hdr->dto_q,
365 &xprt->sc_read_complete_q); 365 &xprt->sc_read_complete_q);
366 spin_unlock_bh(&xprt->sc_read_complete_lock); 366 spin_unlock_bh(&xprt->sc_rq_dto_lock);
367 svc_xprt_enqueue(&xprt->sc_xprt); 367 svc_xprt_enqueue(&xprt->sc_xprt);
368 } 368 }
369 svc_rdma_put_context(ctxt, 0); 369 svc_rdma_put_context(ctxt, 0);
@@ -428,7 +428,6 @@ static struct svcxprt_rdma *rdma_create_xprt(struct svc_serv *serv,
428 init_waitqueue_head(&cma_xprt->sc_send_wait); 428 init_waitqueue_head(&cma_xprt->sc_send_wait);
429 429
430 spin_lock_init(&cma_xprt->sc_lock); 430 spin_lock_init(&cma_xprt->sc_lock);
431 spin_lock_init(&cma_xprt->sc_read_complete_lock);
432 spin_lock_init(&cma_xprt->sc_rq_dto_lock); 431 spin_lock_init(&cma_xprt->sc_rq_dto_lock);
433 432
434 cma_xprt->sc_ord = svcrdma_ord; 433 cma_xprt->sc_ord = svcrdma_ord;
diff --git a/net/tipc/bcast.c b/net/tipc/bcast.c
index b1ff16aa4bdb..3ddaff42d1bb 100644
--- a/net/tipc/bcast.c
+++ b/net/tipc/bcast.c
@@ -96,8 +96,8 @@ struct bcbearer {
96 struct media media; 96 struct media media;
97 struct bcbearer_pair bpairs[MAX_BEARERS]; 97 struct bcbearer_pair bpairs[MAX_BEARERS];
98 struct bcbearer_pair bpairs_temp[TIPC_MAX_LINK_PRI + 1]; 98 struct bcbearer_pair bpairs_temp[TIPC_MAX_LINK_PRI + 1];
99 struct node_map remains; 99 struct tipc_node_map remains;
100 struct node_map remains_new; 100 struct tipc_node_map remains_new;
101}; 101};
102 102
103/** 103/**
@@ -110,7 +110,7 @@ struct bcbearer {
110 110
111struct bclink { 111struct bclink {
112 struct link link; 112 struct link link;
113 struct node node; 113 struct tipc_node node;
114}; 114};
115 115
116 116
@@ -149,7 +149,7 @@ static void bcbuf_decr_acks(struct sk_buff *buf)
149 * Called with 'node' locked, bc_lock unlocked 149 * Called with 'node' locked, bc_lock unlocked
150 */ 150 */
151 151
152static void bclink_set_gap(struct node *n_ptr) 152static void bclink_set_gap(struct tipc_node *n_ptr)
153{ 153{
154 struct sk_buff *buf = n_ptr->bclink.deferred_head; 154 struct sk_buff *buf = n_ptr->bclink.deferred_head;
155 155
@@ -202,7 +202,7 @@ static void bclink_retransmit_pkt(u32 after, u32 to)
202 * Node is locked, bc_lock unlocked. 202 * Node is locked, bc_lock unlocked.
203 */ 203 */
204 204
205void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked) 205void tipc_bclink_acknowledge(struct tipc_node *n_ptr, u32 acked)
206{ 206{
207 struct sk_buff *crs; 207 struct sk_buff *crs;
208 struct sk_buff *next; 208 struct sk_buff *next;
@@ -250,7 +250,7 @@ void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked)
250 * tipc_net_lock and node lock set 250 * tipc_net_lock and node lock set
251 */ 251 */
252 252
253static void bclink_send_ack(struct node *n_ptr) 253static void bclink_send_ack(struct tipc_node *n_ptr)
254{ 254{
255 struct link *l_ptr = n_ptr->active_links[n_ptr->addr & 1]; 255 struct link *l_ptr = n_ptr->active_links[n_ptr->addr & 1];
256 256
@@ -264,7 +264,7 @@ static void bclink_send_ack(struct node *n_ptr)
264 * tipc_net_lock and node lock set 264 * tipc_net_lock and node lock set
265 */ 265 */
266 266
267static void bclink_send_nack(struct node *n_ptr) 267static void bclink_send_nack(struct tipc_node *n_ptr)
268{ 268{
269 struct sk_buff *buf; 269 struct sk_buff *buf;
270 struct tipc_msg *msg; 270 struct tipc_msg *msg;
@@ -308,7 +308,7 @@ static void bclink_send_nack(struct node *n_ptr)
308 * tipc_net_lock and node lock set 308 * tipc_net_lock and node lock set
309 */ 309 */
310 310
311void tipc_bclink_check_gap(struct node *n_ptr, u32 last_sent) 311void tipc_bclink_check_gap(struct tipc_node *n_ptr, u32 last_sent)
312{ 312{
313 if (!n_ptr->bclink.supported || 313 if (!n_ptr->bclink.supported ||
314 less_eq(last_sent, mod(n_ptr->bclink.last_in))) 314 less_eq(last_sent, mod(n_ptr->bclink.last_in)))
@@ -328,7 +328,7 @@ void tipc_bclink_check_gap(struct node *n_ptr, u32 last_sent)
328 328
329static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 gap_to) 329static void tipc_bclink_peek_nack(u32 dest, u32 sender_tag, u32 gap_after, u32 gap_to)
330{ 330{
331 struct node *n_ptr = tipc_node_find(dest); 331 struct tipc_node *n_ptr = tipc_node_find(dest);
332 u32 my_after, my_to; 332 u32 my_after, my_to;
333 333
334 if (unlikely(!n_ptr || !tipc_node_is_up(n_ptr))) 334 if (unlikely(!n_ptr || !tipc_node_is_up(n_ptr)))
@@ -418,7 +418,7 @@ void tipc_bclink_recv_pkt(struct sk_buff *buf)
418 static int rx_count = 0; 418 static int rx_count = 0;
419#endif 419#endif
420 struct tipc_msg *msg = buf_msg(buf); 420 struct tipc_msg *msg = buf_msg(buf);
421 struct node* node = tipc_node_find(msg_prevnode(msg)); 421 struct tipc_node* node = tipc_node_find(msg_prevnode(msg));
422 u32 next_in; 422 u32 next_in;
423 u32 seqno; 423 u32 seqno;
424 struct sk_buff *deferred; 424 struct sk_buff *deferred;
@@ -538,7 +538,7 @@ u32 tipc_bclink_get_last_sent(void)
538 return last_sent; 538 return last_sent;
539} 539}
540 540
541u32 tipc_bclink_acks_missing(struct node *n_ptr) 541u32 tipc_bclink_acks_missing(struct tipc_node *n_ptr)
542{ 542{
543 return (n_ptr->bclink.supported && 543 return (n_ptr->bclink.supported &&
544 (tipc_bclink_get_last_sent() != n_ptr->bclink.acked)); 544 (tipc_bclink_get_last_sent() != n_ptr->bclink.acked));
diff --git a/net/tipc/bcast.h b/net/tipc/bcast.h
index a2416fa6b906..5aa024b99c55 100644
--- a/net/tipc/bcast.h
+++ b/net/tipc/bcast.h
@@ -41,12 +41,12 @@
41#define WSIZE 32 41#define WSIZE 32
42 42
43/** 43/**
44 * struct node_map - set of node identifiers 44 * struct tipc_node_map - set of node identifiers
45 * @count: # of nodes in set 45 * @count: # of nodes in set
46 * @map: bitmap of node identifiers that are in the set 46 * @map: bitmap of node identifiers that are in the set
47 */ 47 */
48 48
49struct node_map { 49struct tipc_node_map {
50 u32 count; 50 u32 count;
51 u32 map[MAX_NODES / WSIZE]; 51 u32 map[MAX_NODES / WSIZE];
52}; 52};
@@ -68,7 +68,7 @@ struct port_list {
68}; 68};
69 69
70 70
71struct node; 71struct tipc_node;
72 72
73extern char tipc_bclink_name[]; 73extern char tipc_bclink_name[];
74 74
@@ -77,7 +77,7 @@ extern char tipc_bclink_name[];
77 * nmap_add - add a node to a node map 77 * nmap_add - add a node to a node map
78 */ 78 */
79 79
80static inline void tipc_nmap_add(struct node_map *nm_ptr, u32 node) 80static inline void tipc_nmap_add(struct tipc_node_map *nm_ptr, u32 node)
81{ 81{
82 int n = tipc_node(node); 82 int n = tipc_node(node);
83 int w = n / WSIZE; 83 int w = n / WSIZE;
@@ -93,7 +93,7 @@ static inline void tipc_nmap_add(struct node_map *nm_ptr, u32 node)
93 * nmap_remove - remove a node from a node map 93 * nmap_remove - remove a node from a node map
94 */ 94 */
95 95
96static inline void tipc_nmap_remove(struct node_map *nm_ptr, u32 node) 96static inline void tipc_nmap_remove(struct tipc_node_map *nm_ptr, u32 node)
97{ 97{
98 int n = tipc_node(node); 98 int n = tipc_node(node);
99 int w = n / WSIZE; 99 int w = n / WSIZE;
@@ -109,7 +109,7 @@ static inline void tipc_nmap_remove(struct node_map *nm_ptr, u32 node)
109 * nmap_equal - test for equality of node maps 109 * nmap_equal - test for equality of node maps
110 */ 110 */
111 111
112static inline int tipc_nmap_equal(struct node_map *nm_a, struct node_map *nm_b) 112static inline int tipc_nmap_equal(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b)
113{ 113{
114 return !memcmp(nm_a, nm_b, sizeof(*nm_a)); 114 return !memcmp(nm_a, nm_b, sizeof(*nm_a));
115} 115}
@@ -121,8 +121,8 @@ static inline int tipc_nmap_equal(struct node_map *nm_a, struct node_map *nm_b)
121 * @nm_diff: output node map A-B (i.e. nodes of A that are not in B) 121 * @nm_diff: output node map A-B (i.e. nodes of A that are not in B)
122 */ 122 */
123 123
124static inline void tipc_nmap_diff(struct node_map *nm_a, struct node_map *nm_b, 124static inline void tipc_nmap_diff(struct tipc_node_map *nm_a, struct tipc_node_map *nm_b,
125 struct node_map *nm_diff) 125 struct tipc_node_map *nm_diff)
126{ 126{
127 int stop = sizeof(nm_a->map) / sizeof(u32); 127 int stop = sizeof(nm_a->map) / sizeof(u32);
128 int w; 128 int w;
@@ -195,12 +195,12 @@ static inline void tipc_port_list_free(struct port_list *pl_ptr)
195 195
196int tipc_bclink_init(void); 196int tipc_bclink_init(void);
197void tipc_bclink_stop(void); 197void tipc_bclink_stop(void);
198void tipc_bclink_acknowledge(struct node *n_ptr, u32 acked); 198void tipc_bclink_acknowledge(struct tipc_node *n_ptr, u32 acked);
199int tipc_bclink_send_msg(struct sk_buff *buf); 199int tipc_bclink_send_msg(struct sk_buff *buf);
200void tipc_bclink_recv_pkt(struct sk_buff *buf); 200void tipc_bclink_recv_pkt(struct sk_buff *buf);
201u32 tipc_bclink_get_last_sent(void); 201u32 tipc_bclink_get_last_sent(void);
202u32 tipc_bclink_acks_missing(struct node *n_ptr); 202u32 tipc_bclink_acks_missing(struct tipc_node *n_ptr);
203void tipc_bclink_check_gap(struct node *n_ptr, u32 seqno); 203void tipc_bclink_check_gap(struct tipc_node *n_ptr, u32 seqno);
204int tipc_bclink_stats(char *stats_buf, const u32 buf_size); 204int tipc_bclink_stats(char *stats_buf, const u32 buf_size);
205int tipc_bclink_reset_stats(void); 205int tipc_bclink_reset_stats(void);
206int tipc_bclink_set_queue_limits(u32 limit); 206int tipc_bclink_set_queue_limits(u32 limit);
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c
index 6a9aba3edd08..a7a36779b9b3 100644
--- a/net/tipc/bearer.c
+++ b/net/tipc/bearer.c
@@ -599,7 +599,7 @@ int tipc_block_bearer(const char *name)
599 spin_lock_bh(&b_ptr->publ.lock); 599 spin_lock_bh(&b_ptr->publ.lock);
600 b_ptr->publ.blocked = 1; 600 b_ptr->publ.blocked = 1;
601 list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) { 601 list_for_each_entry_safe(l_ptr, temp_l_ptr, &b_ptr->links, link_list) {
602 struct node *n_ptr = l_ptr->owner; 602 struct tipc_node *n_ptr = l_ptr->owner;
603 603
604 spin_lock_bh(&n_ptr->lock); 604 spin_lock_bh(&n_ptr->lock);
605 tipc_link_reset(l_ptr); 605 tipc_link_reset(l_ptr);
diff --git a/net/tipc/bearer.h b/net/tipc/bearer.h
index 6a36b6600e6c..ca5734892713 100644
--- a/net/tipc/bearer.h
+++ b/net/tipc/bearer.h
@@ -104,7 +104,7 @@ struct bearer {
104 u32 continue_count; 104 u32 continue_count;
105 int active; 105 int active;
106 char net_plane; 106 char net_plane;
107 struct node_map nodes; 107 struct tipc_node_map nodes;
108}; 108};
109 109
110struct bearer_name { 110struct bearer_name {
diff --git a/net/tipc/cluster.c b/net/tipc/cluster.c
index 46ee6c58532d..689fdefe9d04 100644
--- a/net/tipc/cluster.c
+++ b/net/tipc/cluster.c
@@ -48,8 +48,8 @@ static void tipc_cltr_multicast(struct cluster *c_ptr, struct sk_buff *buf,
48 u32 lower, u32 upper); 48 u32 lower, u32 upper);
49static struct sk_buff *tipc_cltr_prepare_routing_msg(u32 data_size, u32 dest); 49static struct sk_buff *tipc_cltr_prepare_routing_msg(u32 data_size, u32 dest);
50 50
51struct node **tipc_local_nodes = NULL; 51struct tipc_node **tipc_local_nodes = NULL;
52struct node_map tipc_cltr_bcast_nodes = {0,{0,}}; 52struct tipc_node_map tipc_cltr_bcast_nodes = {0,{0,}};
53u32 tipc_highest_allowed_slave = 0; 53u32 tipc_highest_allowed_slave = 0;
54 54
55struct cluster *tipc_cltr_create(u32 addr) 55struct cluster *tipc_cltr_create(u32 addr)
@@ -115,7 +115,7 @@ void tipc_cltr_delete(struct cluster *c_ptr)
115 115
116u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr) 116u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr)
117{ 117{
118 struct node *n_ptr; 118 struct tipc_node *n_ptr;
119 u32 n_num = tipc_node(addr) + 1; 119 u32 n_num = tipc_node(addr) + 1;
120 120
121 if (!c_ptr) 121 if (!c_ptr)
@@ -133,7 +133,7 @@ u32 tipc_cltr_next_node(struct cluster *c_ptr, u32 addr)
133 return 0; 133 return 0;
134} 134}
135 135
136void tipc_cltr_attach_node(struct cluster *c_ptr, struct node *n_ptr) 136void tipc_cltr_attach_node(struct cluster *c_ptr, struct tipc_node *n_ptr)
137{ 137{
138 u32 n_num = tipc_node(n_ptr->addr); 138 u32 n_num = tipc_node(n_ptr->addr);
139 u32 max_n_num = tipc_max_nodes; 139 u32 max_n_num = tipc_max_nodes;
@@ -196,7 +196,7 @@ u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref)
196 * Uses deterministic and fair algorithm. 196 * Uses deterministic and fair algorithm.
197 */ 197 */
198 198
199struct node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector) 199struct tipc_node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector)
200{ 200{
201 u32 n_num; 201 u32 n_num;
202 u32 mask = tipc_max_nodes; 202 u32 mask = tipc_max_nodes;
@@ -379,7 +379,7 @@ void tipc_cltr_recv_routing_table(struct sk_buff *buf)
379{ 379{
380 struct tipc_msg *msg = buf_msg(buf); 380 struct tipc_msg *msg = buf_msg(buf);
381 struct cluster *c_ptr; 381 struct cluster *c_ptr;
382 struct node *n_ptr; 382 struct tipc_node *n_ptr;
383 unchar *node_table; 383 unchar *node_table;
384 u32 table_size; 384 u32 table_size;
385 u32 router; 385 u32 router;
@@ -499,7 +499,7 @@ static void tipc_cltr_multicast(struct cluster *c_ptr, struct sk_buff *buf,
499 u32 lower, u32 upper) 499 u32 lower, u32 upper)
500{ 500{
501 struct sk_buff *buf_copy; 501 struct sk_buff *buf_copy;
502 struct node *n_ptr; 502 struct tipc_node *n_ptr;
503 u32 n_num; 503 u32 n_num;
504 u32 tstop; 504 u32 tstop;
505 505
@@ -534,7 +534,7 @@ void tipc_cltr_broadcast(struct sk_buff *buf)
534{ 534{
535 struct sk_buff *buf_copy; 535 struct sk_buff *buf_copy;
536 struct cluster *c_ptr; 536 struct cluster *c_ptr;
537 struct node *n_ptr; 537 struct tipc_node *n_ptr;
538 u32 n_num; 538 u32 n_num;
539 u32 tstart; 539 u32 tstart;
540 u32 tstop; 540 u32 tstop;
diff --git a/net/tipc/cluster.h b/net/tipc/cluster.h
index 62df074afaec..333efb0b9c44 100644
--- a/net/tipc/cluster.h
+++ b/net/tipc/cluster.h
@@ -54,24 +54,24 @@
54struct cluster { 54struct cluster {
55 u32 addr; 55 u32 addr;
56 struct _zone *owner; 56 struct _zone *owner;
57 struct node **nodes; 57 struct tipc_node **nodes;
58 u32 highest_node; 58 u32 highest_node;
59 u32 highest_slave; 59 u32 highest_slave;
60}; 60};
61 61
62 62
63extern struct node **tipc_local_nodes; 63extern struct tipc_node **tipc_local_nodes;
64extern u32 tipc_highest_allowed_slave; 64extern u32 tipc_highest_allowed_slave;
65extern struct node_map tipc_cltr_bcast_nodes; 65extern struct tipc_node_map tipc_cltr_bcast_nodes;
66 66
67void tipc_cltr_remove_as_router(struct cluster *c_ptr, u32 router); 67void tipc_cltr_remove_as_router(struct cluster *c_ptr, u32 router);
68void tipc_cltr_send_ext_routes(struct cluster *c_ptr, u32 dest); 68void tipc_cltr_send_ext_routes(struct cluster *c_ptr, u32 dest);
69struct node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector); 69struct tipc_node *tipc_cltr_select_node(struct cluster *c_ptr, u32 selector);
70u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref); 70u32 tipc_cltr_select_router(struct cluster *c_ptr, u32 ref);
71void tipc_cltr_recv_routing_table(struct sk_buff *buf); 71void tipc_cltr_recv_routing_table(struct sk_buff *buf);
72struct cluster *tipc_cltr_create(u32 addr); 72struct cluster *tipc_cltr_create(u32 addr);
73void tipc_cltr_delete(struct cluster *c_ptr); 73void tipc_cltr_delete(struct cluster *c_ptr);
74void tipc_cltr_attach_node(struct cluster *c_ptr, struct node *n_ptr); 74void tipc_cltr_attach_node(struct cluster *c_ptr, struct tipc_node *n_ptr);
75void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest); 75void tipc_cltr_send_slave_routes(struct cluster *c_ptr, u32 dest);
76void tipc_cltr_broadcast(struct sk_buff *buf); 76void tipc_cltr_broadcast(struct sk_buff *buf);
77int tipc_cltr_init(void); 77int tipc_cltr_init(void);
diff --git a/net/tipc/discover.c b/net/tipc/discover.c
index 1657f0e795ff..74b7d1e28aec 100644
--- a/net/tipc/discover.c
+++ b/net/tipc/discover.c
@@ -193,7 +193,7 @@ void tipc_disc_recv_msg(struct sk_buff *buf, struct bearer *b_ptr)
193 /* Always accept link here */ 193 /* Always accept link here */
194 struct sk_buff *rbuf; 194 struct sk_buff *rbuf;
195 struct tipc_media_addr *addr; 195 struct tipc_media_addr *addr;
196 struct node *n_ptr = tipc_node_find(orig); 196 struct tipc_node *n_ptr = tipc_node_find(orig);
197 int link_fully_up; 197 int link_fully_up;
198 198
199 dbg(" in own cluster\n"); 199 dbg(" in own cluster\n");
diff --git a/net/tipc/link.c b/net/tipc/link.c
index d60113ba4b1b..dd4c18b9a35b 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -1155,7 +1155,7 @@ int tipc_link_send_buf(struct link *l_ptr, struct sk_buff *buf)
1155int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector) 1155int tipc_link_send(struct sk_buff *buf, u32 dest, u32 selector)
1156{ 1156{
1157 struct link *l_ptr; 1157 struct link *l_ptr;
1158 struct node *n_ptr; 1158 struct tipc_node *n_ptr;
1159 int res = -ELINKCONG; 1159 int res = -ELINKCONG;
1160 1160
1161 read_lock_bh(&tipc_net_lock); 1161 read_lock_bh(&tipc_net_lock);
@@ -1226,7 +1226,7 @@ static int link_send_buf_fast(struct link *l_ptr, struct sk_buff *buf,
1226int tipc_send_buf_fast(struct sk_buff *buf, u32 destnode) 1226int tipc_send_buf_fast(struct sk_buff *buf, u32 destnode)
1227{ 1227{
1228 struct link *l_ptr; 1228 struct link *l_ptr;
1229 struct node *n_ptr; 1229 struct tipc_node *n_ptr;
1230 int res; 1230 int res;
1231 u32 selector = msg_origport(buf_msg(buf)) & 1; 1231 u32 selector = msg_origport(buf_msg(buf)) & 1;
1232 u32 dummy; 1232 u32 dummy;
@@ -1270,7 +1270,7 @@ int tipc_link_send_sections_fast(struct port *sender,
1270 struct tipc_msg *hdr = &sender->publ.phdr; 1270 struct tipc_msg *hdr = &sender->publ.phdr;
1271 struct link *l_ptr; 1271 struct link *l_ptr;
1272 struct sk_buff *buf; 1272 struct sk_buff *buf;
1273 struct node *node; 1273 struct tipc_node *node;
1274 int res; 1274 int res;
1275 u32 selector = msg_origport(hdr) & 1; 1275 u32 selector = msg_origport(hdr) & 1;
1276 1276
@@ -1364,7 +1364,7 @@ static int link_send_sections_long(struct port *sender,
1364 u32 destaddr) 1364 u32 destaddr)
1365{ 1365{
1366 struct link *l_ptr; 1366 struct link *l_ptr;
1367 struct node *node; 1367 struct tipc_node *node;
1368 struct tipc_msg *hdr = &sender->publ.phdr; 1368 struct tipc_msg *hdr = &sender->publ.phdr;
1369 u32 dsz = msg_data_sz(hdr); 1369 u32 dsz = msg_data_sz(hdr);
1370 u32 max_pkt,fragm_sz,rest; 1370 u32 max_pkt,fragm_sz,rest;
@@ -1636,7 +1636,7 @@ void tipc_link_push_queue(struct link *l_ptr)
1636 1636
1637static void link_reset_all(unsigned long addr) 1637static void link_reset_all(unsigned long addr)
1638{ 1638{
1639 struct node *n_ptr; 1639 struct tipc_node *n_ptr;
1640 char addr_string[16]; 1640 char addr_string[16];
1641 u32 i; 1641 u32 i;
1642 1642
@@ -1682,7 +1682,7 @@ static void link_retransmit_failure(struct link *l_ptr, struct sk_buff *buf)
1682 1682
1683 /* Handle failure on broadcast link */ 1683 /* Handle failure on broadcast link */
1684 1684
1685 struct node *n_ptr; 1685 struct tipc_node *n_ptr;
1686 char addr_string[16]; 1686 char addr_string[16];
1687 1687
1688 tipc_printf(TIPC_OUTPUT, "Msg seq number: %u, ", msg_seqno(msg)); 1688 tipc_printf(TIPC_OUTPUT, "Msg seq number: %u, ", msg_seqno(msg));
@@ -1843,7 +1843,7 @@ void tipc_recv_msg(struct sk_buff *head, struct tipc_bearer *tb_ptr)
1843 read_lock_bh(&tipc_net_lock); 1843 read_lock_bh(&tipc_net_lock);
1844 while (head) { 1844 while (head) {
1845 struct bearer *b_ptr = (struct bearer *)tb_ptr; 1845 struct bearer *b_ptr = (struct bearer *)tb_ptr;
1846 struct node *n_ptr; 1846 struct tipc_node *n_ptr;
1847 struct link *l_ptr; 1847 struct link *l_ptr;
1848 struct sk_buff *crs; 1848 struct sk_buff *crs;
1849 struct sk_buff *buf = head; 1849 struct sk_buff *buf = head;
@@ -2935,7 +2935,7 @@ void tipc_link_set_queue_limits(struct link *l_ptr, u32 window)
2935 * Returns pointer to link (or 0 if invalid link name). 2935 * Returns pointer to link (or 0 if invalid link name).
2936 */ 2936 */
2937 2937
2938static struct link *link_find_link(const char *name, struct node **node) 2938static struct link *link_find_link(const char *name, struct tipc_node **node)
2939{ 2939{
2940 struct link_name link_name_parts; 2940 struct link_name link_name_parts;
2941 struct bearer *b_ptr; 2941 struct bearer *b_ptr;
@@ -2965,7 +2965,7 @@ struct sk_buff *tipc_link_cmd_config(const void *req_tlv_area, int req_tlv_space
2965 struct tipc_link_config *args; 2965 struct tipc_link_config *args;
2966 u32 new_value; 2966 u32 new_value;
2967 struct link *l_ptr; 2967 struct link *l_ptr;
2968 struct node *node; 2968 struct tipc_node *node;
2969 int res; 2969 int res;
2970 2970
2971 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_CONFIG)) 2971 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_CONFIG))
@@ -3043,7 +3043,7 @@ struct sk_buff *tipc_link_cmd_reset_stats(const void *req_tlv_area, int req_tlv_
3043{ 3043{
3044 char *link_name; 3044 char *link_name;
3045 struct link *l_ptr; 3045 struct link *l_ptr;
3046 struct node *node; 3046 struct tipc_node *node;
3047 3047
3048 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_NAME)) 3048 if (!TLV_CHECK(req_tlv_area, req_tlv_space, TIPC_TLV_LINK_NAME))
3049 return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR); 3049 return tipc_cfg_reply_error_string(TIPC_CFG_TLV_ERROR);
@@ -3091,7 +3091,7 @@ static int tipc_link_stats(const char *name, char *buf, const u32 buf_size)
3091{ 3091{
3092 struct print_buf pb; 3092 struct print_buf pb;
3093 struct link *l_ptr; 3093 struct link *l_ptr;
3094 struct node *node; 3094 struct tipc_node *node;
3095 char *status; 3095 char *status;
3096 u32 profile_total = 0; 3096 u32 profile_total = 0;
3097 3097
@@ -3207,7 +3207,7 @@ int link_control(const char *name, u32 op, u32 val)
3207 int res = -EINVAL; 3207 int res = -EINVAL;
3208 struct link *l_ptr; 3208 struct link *l_ptr;
3209 u32 bearer_id; 3209 u32 bearer_id;
3210 struct node * node; 3210 struct tipc_node * node;
3211 u32 a; 3211 u32 a;
3212 3212
3213 a = link_name2addr(name, &bearer_id); 3213 a = link_name2addr(name, &bearer_id);
@@ -3249,7 +3249,7 @@ int link_control(const char *name, u32 op, u32 val)
3249 3249
3250u32 tipc_link_get_max_pkt(u32 dest, u32 selector) 3250u32 tipc_link_get_max_pkt(u32 dest, u32 selector)
3251{ 3251{
3252 struct node *n_ptr; 3252 struct tipc_node *n_ptr;
3253 struct link *l_ptr; 3253 struct link *l_ptr;
3254 u32 res = MAX_PKT_DEFAULT; 3254 u32 res = MAX_PKT_DEFAULT;
3255 3255
diff --git a/net/tipc/link.h b/net/tipc/link.h
index 52f3e7c1871f..6a51e38ad25c 100644
--- a/net/tipc/link.h
+++ b/net/tipc/link.h
@@ -116,7 +116,7 @@ struct link {
116 char name[TIPC_MAX_LINK_NAME]; 116 char name[TIPC_MAX_LINK_NAME];
117 struct tipc_media_addr media_addr; 117 struct tipc_media_addr media_addr;
118 struct timer_list timer; 118 struct timer_list timer;
119 struct node *owner; 119 struct tipc_node *owner;
120 struct list_head link_list; 120 struct list_head link_list;
121 121
122 /* Management and link supervision data */ 122 /* Management and link supervision data */
diff --git a/net/tipc/name_table.h b/net/tipc/name_table.h
index b9e7cd336d76..139882d4ed00 100644
--- a/net/tipc/name_table.h
+++ b/net/tipc/name_table.h
@@ -76,7 +76,7 @@ struct publication {
76 u32 node; 76 u32 node;
77 u32 ref; 77 u32 ref;
78 u32 key; 78 u32 key;
79 struct node_subscr subscr; 79 struct tipc_node_subscr subscr;
80 struct list_head local_list; 80 struct list_head local_list;
81 struct list_head pport_list; 81 struct list_head pport_list;
82 struct publication *node_list_next; 82 struct publication *node_list_next;
diff --git a/net/tipc/net.c b/net/tipc/net.c
index ec7b04fbdc43..7906608bf510 100644
--- a/net/tipc/net.c
+++ b/net/tipc/net.c
@@ -118,7 +118,7 @@
118DEFINE_RWLOCK(tipc_net_lock); 118DEFINE_RWLOCK(tipc_net_lock);
119struct network tipc_net = { NULL }; 119struct network tipc_net = { NULL };
120 120
121struct node *tipc_net_select_remote_node(u32 addr, u32 ref) 121struct tipc_node *tipc_net_select_remote_node(u32 addr, u32 ref)
122{ 122{
123 return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref); 123 return tipc_zone_select_remote_node(tipc_net.zones[tipc_zone(addr)], addr, ref);
124} 124}
diff --git a/net/tipc/net.h b/net/tipc/net.h
index d154ac2bda9a..de2b9ad8f646 100644
--- a/net/tipc/net.h
+++ b/net/tipc/net.h
@@ -55,7 +55,7 @@ extern rwlock_t tipc_net_lock;
55void tipc_net_remove_as_router(u32 router); 55void tipc_net_remove_as_router(u32 router);
56void tipc_net_send_external_routes(u32 dest); 56void tipc_net_send_external_routes(u32 dest);
57void tipc_net_route_msg(struct sk_buff *buf); 57void tipc_net_route_msg(struct sk_buff *buf);
58struct node *tipc_net_select_remote_node(u32 addr, u32 ref); 58struct tipc_node *tipc_net_select_remote_node(u32 addr, u32 ref);
59u32 tipc_net_select_router(u32 addr, u32 ref); 59u32 tipc_net_select_router(u32 addr, u32 ref);
60 60
61int tipc_net_start(u32 addr); 61int tipc_net_start(u32 addr);
diff --git a/net/tipc/node.c b/net/tipc/node.c
index ee952ad60218..20d98c56e152 100644
--- a/net/tipc/node.c
+++ b/net/tipc/node.c
@@ -46,11 +46,11 @@
46#include "bearer.h" 46#include "bearer.h"
47#include "name_distr.h" 47#include "name_distr.h"
48 48
49void node_print(struct print_buf *buf, struct node *n_ptr, char *str); 49void node_print(struct print_buf *buf, struct tipc_node *n_ptr, char *str);
50static void node_lost_contact(struct node *n_ptr); 50static void node_lost_contact(struct tipc_node *n_ptr);
51static void node_established_contact(struct node *n_ptr); 51static void node_established_contact(struct tipc_node *n_ptr);
52 52
53struct node *tipc_nodes = NULL; /* sorted list of nodes within cluster */ 53struct tipc_node *tipc_nodes = NULL; /* sorted list of nodes within cluster */
54 54
55static DEFINE_SPINLOCK(node_create_lock); 55static DEFINE_SPINLOCK(node_create_lock);
56 56
@@ -66,11 +66,11 @@ u32 tipc_own_tag = 0;
66 * but this is a non-trivial change.) 66 * but this is a non-trivial change.)
67 */ 67 */
68 68
69struct node *tipc_node_create(u32 addr) 69struct tipc_node *tipc_node_create(u32 addr)
70{ 70{
71 struct cluster *c_ptr; 71 struct cluster *c_ptr;
72 struct node *n_ptr; 72 struct tipc_node *n_ptr;
73 struct node **curr_node; 73 struct tipc_node **curr_node;
74 74
75 spin_lock_bh(&node_create_lock); 75 spin_lock_bh(&node_create_lock);
76 76
@@ -120,7 +120,7 @@ struct node *tipc_node_create(u32 addr)
120 return n_ptr; 120 return n_ptr;
121} 121}
122 122
123void tipc_node_delete(struct node *n_ptr) 123void tipc_node_delete(struct tipc_node *n_ptr)
124{ 124{
125 if (!n_ptr) 125 if (!n_ptr)
126 return; 126 return;
@@ -146,7 +146,7 @@ void tipc_node_delete(struct node *n_ptr)
146 * Link becomes active (alone or shared) or standby, depending on its priority. 146 * Link becomes active (alone or shared) or standby, depending on its priority.
147 */ 147 */
148 148
149void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr) 149void tipc_node_link_up(struct tipc_node *n_ptr, struct link *l_ptr)
150{ 150{
151 struct link **active = &n_ptr->active_links[0]; 151 struct link **active = &n_ptr->active_links[0];
152 152
@@ -180,7 +180,7 @@ void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr)
180 * node_select_active_links - select active link 180 * node_select_active_links - select active link
181 */ 181 */
182 182
183static void node_select_active_links(struct node *n_ptr) 183static void node_select_active_links(struct tipc_node *n_ptr)
184{ 184{
185 struct link **active = &n_ptr->active_links[0]; 185 struct link **active = &n_ptr->active_links[0];
186 u32 i; 186 u32 i;
@@ -208,7 +208,7 @@ static void node_select_active_links(struct node *n_ptr)
208 * tipc_node_link_down - handle loss of link 208 * tipc_node_link_down - handle loss of link
209 */ 209 */
210 210
211void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr) 211void tipc_node_link_down(struct tipc_node *n_ptr, struct link *l_ptr)
212{ 212{
213 struct link **active; 213 struct link **active;
214 214
@@ -235,30 +235,30 @@ void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr)
235 node_lost_contact(n_ptr); 235 node_lost_contact(n_ptr);
236} 236}
237 237
238int tipc_node_has_active_links(struct node *n_ptr) 238int tipc_node_has_active_links(struct tipc_node *n_ptr)
239{ 239{
240 return (n_ptr && 240 return (n_ptr &&
241 ((n_ptr->active_links[0]) || (n_ptr->active_links[1]))); 241 ((n_ptr->active_links[0]) || (n_ptr->active_links[1])));
242} 242}
243 243
244int tipc_node_has_redundant_links(struct node *n_ptr) 244int tipc_node_has_redundant_links(struct tipc_node *n_ptr)
245{ 245{
246 return (n_ptr->working_links > 1); 246 return (n_ptr->working_links > 1);
247} 247}
248 248
249static int tipc_node_has_active_routes(struct node *n_ptr) 249static int tipc_node_has_active_routes(struct tipc_node *n_ptr)
250{ 250{
251 return (n_ptr && (n_ptr->last_router >= 0)); 251 return (n_ptr && (n_ptr->last_router >= 0));
252} 252}
253 253
254int tipc_node_is_up(struct node *n_ptr) 254int tipc_node_is_up(struct tipc_node *n_ptr)
255{ 255{
256 return (tipc_node_has_active_links(n_ptr) || tipc_node_has_active_routes(n_ptr)); 256 return (tipc_node_has_active_links(n_ptr) || tipc_node_has_active_routes(n_ptr));
257} 257}
258 258
259struct node *tipc_node_attach_link(struct link *l_ptr) 259struct tipc_node *tipc_node_attach_link(struct link *l_ptr)
260{ 260{
261 struct node *n_ptr = tipc_node_find(l_ptr->addr); 261 struct tipc_node *n_ptr = tipc_node_find(l_ptr->addr);
262 262
263 if (!n_ptr) 263 if (!n_ptr)
264 n_ptr = tipc_node_create(l_ptr->addr); 264 n_ptr = tipc_node_create(l_ptr->addr);
@@ -285,7 +285,7 @@ struct node *tipc_node_attach_link(struct link *l_ptr)
285 return NULL; 285 return NULL;
286} 286}
287 287
288void tipc_node_detach_link(struct node *n_ptr, struct link *l_ptr) 288void tipc_node_detach_link(struct tipc_node *n_ptr, struct link *l_ptr)
289{ 289{
290 n_ptr->links[l_ptr->b_ptr->identity] = NULL; 290 n_ptr->links[l_ptr->b_ptr->identity] = NULL;
291 tipc_net.zones[tipc_zone(l_ptr->addr)]->links--; 291 tipc_net.zones[tipc_zone(l_ptr->addr)]->links--;
@@ -338,7 +338,7 @@ void tipc_node_detach_link(struct node *n_ptr, struct link *l_ptr)
338 * 338 *
339 */ 339 */
340 340
341static void node_established_contact(struct node *n_ptr) 341static void node_established_contact(struct tipc_node *n_ptr)
342{ 342{
343 struct cluster *c_ptr; 343 struct cluster *c_ptr;
344 344
@@ -384,10 +384,10 @@ static void node_established_contact(struct node *n_ptr)
384 tipc_highest_allowed_slave); 384 tipc_highest_allowed_slave);
385} 385}
386 386
387static void node_lost_contact(struct node *n_ptr) 387static void node_lost_contact(struct tipc_node *n_ptr)
388{ 388{
389 struct cluster *c_ptr; 389 struct cluster *c_ptr;
390 struct node_subscr *ns, *tns; 390 struct tipc_node_subscr *ns, *tns;
391 char addr_string[16]; 391 char addr_string[16];
392 u32 i; 392 u32 i;
393 393
@@ -466,9 +466,9 @@ static void node_lost_contact(struct node *n_ptr)
466 * Called by when cluster local lookup has failed. 466 * Called by when cluster local lookup has failed.
467 */ 467 */
468 468
469struct node *tipc_node_select_next_hop(u32 addr, u32 selector) 469struct tipc_node *tipc_node_select_next_hop(u32 addr, u32 selector)
470{ 470{
471 struct node *n_ptr; 471 struct tipc_node *n_ptr;
472 u32 router_addr; 472 u32 router_addr;
473 473
474 if (!tipc_addr_domain_valid(addr)) 474 if (!tipc_addr_domain_valid(addr))
@@ -513,7 +513,7 @@ struct node *tipc_node_select_next_hop(u32 addr, u32 selector)
513 * Uses a deterministic and fair algorithm for selecting router node. 513 * Uses a deterministic and fair algorithm for selecting router node.
514 */ 514 */
515 515
516u32 tipc_node_select_router(struct node *n_ptr, u32 ref) 516u32 tipc_node_select_router(struct tipc_node *n_ptr, u32 ref)
517{ 517{
518 u32 ulim; 518 u32 ulim;
519 u32 mask; 519 u32 mask;
@@ -551,7 +551,7 @@ u32 tipc_node_select_router(struct node *n_ptr, u32 ref)
551 return tipc_addr(own_zone(), own_cluster(), r); 551 return tipc_addr(own_zone(), own_cluster(), r);
552} 552}
553 553
554void tipc_node_add_router(struct node *n_ptr, u32 router) 554void tipc_node_add_router(struct tipc_node *n_ptr, u32 router)
555{ 555{
556 u32 r_num = tipc_node(router); 556 u32 r_num = tipc_node(router);
557 557
@@ -562,7 +562,7 @@ void tipc_node_add_router(struct node *n_ptr, u32 router)
562 !n_ptr->routers[n_ptr->last_router]); 562 !n_ptr->routers[n_ptr->last_router]);
563} 563}
564 564
565void tipc_node_remove_router(struct node *n_ptr, u32 router) 565void tipc_node_remove_router(struct tipc_node *n_ptr, u32 router)
566{ 566{
567 u32 r_num = tipc_node(router); 567 u32 r_num = tipc_node(router);
568 568
@@ -580,7 +580,7 @@ void tipc_node_remove_router(struct node *n_ptr, u32 router)
580} 580}
581 581
582#if 0 582#if 0
583void node_print(struct print_buf *buf, struct node *n_ptr, char *str) 583void node_print(struct print_buf *buf, struct tipc_node *n_ptr, char *str)
584{ 584{
585 u32 i; 585 u32 i;
586 586
@@ -597,7 +597,7 @@ void node_print(struct print_buf *buf, struct node *n_ptr, char *str)
597 597
598u32 tipc_available_nodes(const u32 domain) 598u32 tipc_available_nodes(const u32 domain)
599{ 599{
600 struct node *n_ptr; 600 struct tipc_node *n_ptr;
601 u32 cnt = 0; 601 u32 cnt = 0;
602 602
603 read_lock_bh(&tipc_net_lock); 603 read_lock_bh(&tipc_net_lock);
@@ -615,7 +615,7 @@ struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space)
615{ 615{
616 u32 domain; 616 u32 domain;
617 struct sk_buff *buf; 617 struct sk_buff *buf;
618 struct node *n_ptr; 618 struct tipc_node *n_ptr;
619 struct tipc_node_info node_info; 619 struct tipc_node_info node_info;
620 u32 payload_size; 620 u32 payload_size;
621 621
@@ -667,7 +667,7 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space)
667{ 667{
668 u32 domain; 668 u32 domain;
669 struct sk_buff *buf; 669 struct sk_buff *buf;
670 struct node *n_ptr; 670 struct tipc_node *n_ptr;
671 struct tipc_link_info link_info; 671 struct tipc_link_info link_info;
672 u32 payload_size; 672 u32 payload_size;
673 673
diff --git a/net/tipc/node.h b/net/tipc/node.h
index cd1882654bbb..6f990da5d143 100644
--- a/net/tipc/node.h
+++ b/net/tipc/node.h
@@ -43,7 +43,7 @@
43#include "bearer.h" 43#include "bearer.h"
44 44
45/** 45/**
46 * struct node - TIPC node structure 46 * struct tipc_node - TIPC node structure
47 * @addr: network address of node 47 * @addr: network address of node
48 * @lock: spinlock governing access to structure 48 * @lock: spinlock governing access to structure
49 * @owner: pointer to cluster that node belongs to 49 * @owner: pointer to cluster that node belongs to
@@ -68,11 +68,11 @@
68 * @defragm: list of partially reassembled b'cast message fragments from node 68 * @defragm: list of partially reassembled b'cast message fragments from node
69 */ 69 */
70 70
71struct node { 71struct tipc_node {
72 u32 addr; 72 u32 addr;
73 spinlock_t lock; 73 spinlock_t lock;
74 struct cluster *owner; 74 struct cluster *owner;
75 struct node *next; 75 struct tipc_node *next;
76 struct list_head nsub; 76 struct list_head nsub;
77 struct link *active_links[2]; 77 struct link *active_links[2];
78 struct link *links[MAX_BEARERS]; 78 struct link *links[MAX_BEARERS];
@@ -94,26 +94,26 @@ struct node {
94 } bclink; 94 } bclink;
95}; 95};
96 96
97extern struct node *tipc_nodes; 97extern struct tipc_node *tipc_nodes;
98extern u32 tipc_own_tag; 98extern u32 tipc_own_tag;
99 99
100struct node *tipc_node_create(u32 addr); 100struct tipc_node *tipc_node_create(u32 addr);
101void tipc_node_delete(struct node *n_ptr); 101void tipc_node_delete(struct tipc_node *n_ptr);
102struct node *tipc_node_attach_link(struct link *l_ptr); 102struct tipc_node *tipc_node_attach_link(struct link *l_ptr);
103void tipc_node_detach_link(struct node *n_ptr, struct link *l_ptr); 103void tipc_node_detach_link(struct tipc_node *n_ptr, struct link *l_ptr);
104void tipc_node_link_down(struct node *n_ptr, struct link *l_ptr); 104void tipc_node_link_down(struct tipc_node *n_ptr, struct link *l_ptr);
105void tipc_node_link_up(struct node *n_ptr, struct link *l_ptr); 105void tipc_node_link_up(struct tipc_node *n_ptr, struct link *l_ptr);
106int tipc_node_has_active_links(struct node *n_ptr); 106int tipc_node_has_active_links(struct tipc_node *n_ptr);
107int tipc_node_has_redundant_links(struct node *n_ptr); 107int tipc_node_has_redundant_links(struct tipc_node *n_ptr);
108u32 tipc_node_select_router(struct node *n_ptr, u32 ref); 108u32 tipc_node_select_router(struct tipc_node *n_ptr, u32 ref);
109struct node *tipc_node_select_next_hop(u32 addr, u32 selector); 109struct tipc_node *tipc_node_select_next_hop(u32 addr, u32 selector);
110int tipc_node_is_up(struct node *n_ptr); 110int tipc_node_is_up(struct tipc_node *n_ptr);
111void tipc_node_add_router(struct node *n_ptr, u32 router); 111void tipc_node_add_router(struct tipc_node *n_ptr, u32 router);
112void tipc_node_remove_router(struct node *n_ptr, u32 router); 112void tipc_node_remove_router(struct tipc_node *n_ptr, u32 router);
113struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space); 113struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space);
114struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space); 114struct sk_buff *tipc_node_get_nodes(const void *req_tlv_area, int req_tlv_space);
115 115
116static inline struct node *tipc_node_find(u32 addr) 116static inline struct tipc_node *tipc_node_find(u32 addr)
117{ 117{
118 if (likely(in_own_cluster(addr))) 118 if (likely(in_own_cluster(addr)))
119 return tipc_local_nodes[tipc_node(addr)]; 119 return tipc_local_nodes[tipc_node(addr)];
@@ -126,19 +126,19 @@ static inline struct node *tipc_node_find(u32 addr)
126 return NULL; 126 return NULL;
127} 127}
128 128
129static inline struct node *tipc_node_select(u32 addr, u32 selector) 129static inline struct tipc_node *tipc_node_select(u32 addr, u32 selector)
130{ 130{
131 if (likely(in_own_cluster(addr))) 131 if (likely(in_own_cluster(addr)))
132 return tipc_local_nodes[tipc_node(addr)]; 132 return tipc_local_nodes[tipc_node(addr)];
133 return tipc_node_select_next_hop(addr, selector); 133 return tipc_node_select_next_hop(addr, selector);
134} 134}
135 135
136static inline void tipc_node_lock(struct node *n_ptr) 136static inline void tipc_node_lock(struct tipc_node *n_ptr)
137{ 137{
138 spin_lock_bh(&n_ptr->lock); 138 spin_lock_bh(&n_ptr->lock);
139} 139}
140 140
141static inline void tipc_node_unlock(struct node *n_ptr) 141static inline void tipc_node_unlock(struct tipc_node *n_ptr)
142{ 142{
143 spin_unlock_bh(&n_ptr->lock); 143 spin_unlock_bh(&n_ptr->lock);
144} 144}
diff --git a/net/tipc/node_subscr.c b/net/tipc/node_subscr.c
index 8ecbd0fb6103..19194d476a9e 100644
--- a/net/tipc/node_subscr.c
+++ b/net/tipc/node_subscr.c
@@ -44,7 +44,7 @@
44 * tipc_nodesub_subscribe - create "node down" subscription for specified node 44 * tipc_nodesub_subscribe - create "node down" subscription for specified node
45 */ 45 */
46 46
47void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr, 47void tipc_nodesub_subscribe(struct tipc_node_subscr *node_sub, u32 addr,
48 void *usr_handle, net_ev_handler handle_down) 48 void *usr_handle, net_ev_handler handle_down)
49{ 49{
50 if (addr == tipc_own_addr) { 50 if (addr == tipc_own_addr) {
@@ -69,7 +69,7 @@ void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr,
69 * tipc_nodesub_unsubscribe - cancel "node down" subscription (if any) 69 * tipc_nodesub_unsubscribe - cancel "node down" subscription (if any)
70 */ 70 */
71 71
72void tipc_nodesub_unsubscribe(struct node_subscr *node_sub) 72void tipc_nodesub_unsubscribe(struct tipc_node_subscr *node_sub)
73{ 73{
74 if (!node_sub->node) 74 if (!node_sub->node)
75 return; 75 return;
diff --git a/net/tipc/node_subscr.h b/net/tipc/node_subscr.h
index 5f3f5859b84c..006ed739f515 100644
--- a/net/tipc/node_subscr.h
+++ b/net/tipc/node_subscr.h
@@ -42,22 +42,22 @@
42typedef void (*net_ev_handler) (void *usr_handle); 42typedef void (*net_ev_handler) (void *usr_handle);
43 43
44/** 44/**
45 * struct node_subscr - "node down" subscription entry 45 * struct tipc_node_subscr - "node down" subscription entry
46 * @node: ptr to node structure of interest (or NULL, if none) 46 * @node: ptr to node structure of interest (or NULL, if none)
47 * @handle_node_down: routine to invoke when node fails 47 * @handle_node_down: routine to invoke when node fails
48 * @usr_handle: argument to pass to routine when node fails 48 * @usr_handle: argument to pass to routine when node fails
49 * @nodesub_list: adjacent entries in list of subscriptions for the node 49 * @nodesub_list: adjacent entries in list of subscriptions for the node
50 */ 50 */
51 51
52struct node_subscr { 52struct tipc_node_subscr {
53 struct node *node; 53 struct tipc_node *node;
54 net_ev_handler handle_node_down; 54 net_ev_handler handle_node_down;
55 void *usr_handle; 55 void *usr_handle;
56 struct list_head nodesub_list; 56 struct list_head nodesub_list;
57}; 57};
58 58
59void tipc_nodesub_subscribe(struct node_subscr *node_sub, u32 addr, 59void tipc_nodesub_subscribe(struct tipc_node_subscr *node_sub, u32 addr,
60 void *usr_handle, net_ev_handler handle_down); 60 void *usr_handle, net_ev_handler handle_down);
61void tipc_nodesub_unsubscribe(struct node_subscr *node_sub); 61void tipc_nodesub_unsubscribe(struct tipc_node_subscr *node_sub);
62 62
63#endif 63#endif
diff --git a/net/tipc/port.h b/net/tipc/port.h
index e5f8c16429bd..ff31ee4a1dc3 100644
--- a/net/tipc/port.h
+++ b/net/tipc/port.h
@@ -105,7 +105,7 @@ struct port {
105 u32 probing_interval; 105 u32 probing_interval;
106 u32 last_in_seqno; 106 u32 last_in_seqno;
107 struct timer_list timer; 107 struct timer_list timer;
108 struct node_subscr subscription; 108 struct tipc_node_subscr subscription;
109}; 109};
110 110
111extern spinlock_t tipc_port_list_lock; 111extern spinlock_t tipc_port_list_lock;
diff --git a/net/tipc/zone.c b/net/tipc/zone.c
index 3506f8563441..2c01ba2d86bf 100644
--- a/net/tipc/zone.c
+++ b/net/tipc/zone.c
@@ -111,10 +111,10 @@ void tipc_zone_send_external_routes(struct _zone *z_ptr, u32 dest)
111 } 111 }
112} 112}
113 113
114struct node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref) 114struct tipc_node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref)
115{ 115{
116 struct cluster *c_ptr; 116 struct cluster *c_ptr;
117 struct node *n_ptr; 117 struct tipc_node *n_ptr;
118 u32 c_num; 118 u32 c_num;
119 119
120 if (!z_ptr) 120 if (!z_ptr)
diff --git a/net/tipc/zone.h b/net/tipc/zone.h
index 6e7a08df8af5..7bdc3406ba9b 100644
--- a/net/tipc/zone.h
+++ b/net/tipc/zone.h
@@ -54,7 +54,7 @@ struct _zone {
54 u32 links; 54 u32 links;
55}; 55};
56 56
57struct node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref); 57struct tipc_node *tipc_zone_select_remote_node(struct _zone *z_ptr, u32 addr, u32 ref);
58u32 tipc_zone_select_router(struct _zone *z_ptr, u32 addr, u32 ref); 58u32 tipc_zone_select_router(struct _zone *z_ptr, u32 addr, u32 ref);
59void tipc_zone_remove_as_router(struct _zone *z_ptr, u32 router); 59void tipc_zone_remove_as_router(struct _zone *z_ptr, u32 router);
60void tipc_zone_send_external_routes(struct _zone *z_ptr, u32 dest); 60void tipc_zone_send_external_routes(struct _zone *z_ptr, u32 dest);
diff --git a/net/wireless/Kconfig b/net/wireless/Kconfig
index ab015c62d561..833b024f8f66 100644
--- a/net/wireless/Kconfig
+++ b/net/wireless/Kconfig
@@ -39,4 +39,5 @@ config WIRELESS_EXT_SYSFS
39 files in /sys/class/net/*/wireless/. The same information 39 files in /sys/class/net/*/wireless/. The same information
40 is available via the ioctls as well. 40 is available via the ioctls as well.
41 41
42 Say Y if you have programs using it (we don't know of any). 42 Say Y if you have programs using it, like old versions of
43 hal.
diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
index 841b32a2e680..b7754b1b73a4 100644
--- a/net/xfrm/xfrm_policy.c
+++ b/net/xfrm/xfrm_policy.c
@@ -1077,6 +1077,7 @@ static void __xfrm_policy_link(struct xfrm_policy *pol, int dir)
1077 struct hlist_head *chain = policy_hash_bysel(&pol->selector, 1077 struct hlist_head *chain = policy_hash_bysel(&pol->selector,
1078 pol->family, dir); 1078 pol->family, dir);
1079 1079
1080 list_add_tail(&pol->bytype, &xfrm_policy_bytype[pol->type]);
1080 hlist_add_head(&pol->bydst, chain); 1081 hlist_add_head(&pol->bydst, chain);
1081 hlist_add_head(&pol->byidx, xfrm_policy_byidx+idx_hash(pol->index)); 1082 hlist_add_head(&pol->byidx, xfrm_policy_byidx+idx_hash(pol->index));
1082 xfrm_policy_count[dir]++; 1083 xfrm_policy_count[dir]++;
@@ -1731,8 +1732,7 @@ restart:
1731 * We can't enlist stable bundles either. 1732 * We can't enlist stable bundles either.
1732 */ 1733 */
1733 write_unlock_bh(&policy->lock); 1734 write_unlock_bh(&policy->lock);
1734 if (dst) 1735 dst_free(dst);
1735 dst_free(dst);
1736 1736
1737 if (pol_dead) 1737 if (pol_dead)
1738 XFRM_INC_STATS(LINUX_MIB_XFRMOUTPOLDEAD); 1738 XFRM_INC_STATS(LINUX_MIB_XFRMOUTPOLDEAD);
@@ -1748,8 +1748,7 @@ restart:
1748 err = xfrm_dst_update_origin(dst, fl); 1748 err = xfrm_dst_update_origin(dst, fl);
1749 if (unlikely(err)) { 1749 if (unlikely(err)) {
1750 write_unlock_bh(&policy->lock); 1750 write_unlock_bh(&policy->lock);
1751 if (dst) 1751 dst_free(dst);
1752 dst_free(dst);
1753 XFRM_INC_STATS(LINUX_MIB_XFRMOUTBUNDLECHECKERROR); 1752 XFRM_INC_STATS(LINUX_MIB_XFRMOUTBUNDLECHECKERROR);
1754 goto error; 1753 goto error;
1755 } 1754 }
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 4c6914ef7d92..0a8f09c3144c 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -780,11 +780,13 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
780{ 780{
781 unsigned int h; 781 unsigned int h;
782 struct hlist_node *entry; 782 struct hlist_node *entry;
783 struct xfrm_state *x, *x0; 783 struct xfrm_state *x, *x0, *to_put;
784 int acquire_in_progress = 0; 784 int acquire_in_progress = 0;
785 int error = 0; 785 int error = 0;
786 struct xfrm_state *best = NULL; 786 struct xfrm_state *best = NULL;
787 787
788 to_put = NULL;
789
788 spin_lock_bh(&xfrm_state_lock); 790 spin_lock_bh(&xfrm_state_lock);
789 h = xfrm_dst_hash(daddr, saddr, tmpl->reqid, family); 791 h = xfrm_dst_hash(daddr, saddr, tmpl->reqid, family);
790 hlist_for_each_entry(x, entry, xfrm_state_bydst+h, bydst) { 792 hlist_for_each_entry(x, entry, xfrm_state_bydst+h, bydst) {
@@ -833,7 +835,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
833 if (tmpl->id.spi && 835 if (tmpl->id.spi &&
834 (x0 = __xfrm_state_lookup(daddr, tmpl->id.spi, 836 (x0 = __xfrm_state_lookup(daddr, tmpl->id.spi,
835 tmpl->id.proto, family)) != NULL) { 837 tmpl->id.proto, family)) != NULL) {
836 xfrm_state_put(x0); 838 to_put = x0;
837 error = -EEXIST; 839 error = -EEXIST;
838 goto out; 840 goto out;
839 } 841 }
@@ -849,13 +851,14 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
849 error = security_xfrm_state_alloc_acquire(x, pol->security, fl->secid); 851 error = security_xfrm_state_alloc_acquire(x, pol->security, fl->secid);
850 if (error) { 852 if (error) {
851 x->km.state = XFRM_STATE_DEAD; 853 x->km.state = XFRM_STATE_DEAD;
852 xfrm_state_put(x); 854 to_put = x;
853 x = NULL; 855 x = NULL;
854 goto out; 856 goto out;
855 } 857 }
856 858
857 if (km_query(x, tmpl, pol) == 0) { 859 if (km_query(x, tmpl, pol) == 0) {
858 x->km.state = XFRM_STATE_ACQ; 860 x->km.state = XFRM_STATE_ACQ;
861 list_add_tail(&x->all, &xfrm_state_all);
859 hlist_add_head(&x->bydst, xfrm_state_bydst+h); 862 hlist_add_head(&x->bydst, xfrm_state_bydst+h);
860 h = xfrm_src_hash(daddr, saddr, family); 863 h = xfrm_src_hash(daddr, saddr, family);
861 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h); 864 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h);
@@ -870,7 +873,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
870 xfrm_hash_grow_check(x->bydst.next != NULL); 873 xfrm_hash_grow_check(x->bydst.next != NULL);
871 } else { 874 } else {
872 x->km.state = XFRM_STATE_DEAD; 875 x->km.state = XFRM_STATE_DEAD;
873 xfrm_state_put(x); 876 to_put = x;
874 x = NULL; 877 x = NULL;
875 error = -ESRCH; 878 error = -ESRCH;
876 } 879 }
@@ -881,6 +884,8 @@ out:
881 else 884 else
882 *err = acquire_in_progress ? -EAGAIN : error; 885 *err = acquire_in_progress ? -EAGAIN : error;
883 spin_unlock_bh(&xfrm_state_lock); 886 spin_unlock_bh(&xfrm_state_lock);
887 if (to_put)
888 xfrm_state_put(to_put);
884 return x; 889 return x;
885} 890}
886 891
@@ -1051,6 +1056,7 @@ static struct xfrm_state *__find_acq_core(unsigned short family, u8 mode, u32 re
1051 xfrm_state_hold(x); 1056 xfrm_state_hold(x);
1052 x->timer.expires = jiffies + sysctl_xfrm_acq_expires*HZ; 1057 x->timer.expires = jiffies + sysctl_xfrm_acq_expires*HZ;
1053 add_timer(&x->timer); 1058 add_timer(&x->timer);
1059 list_add_tail(&x->all, &xfrm_state_all);
1054 hlist_add_head(&x->bydst, xfrm_state_bydst+h); 1060 hlist_add_head(&x->bydst, xfrm_state_bydst+h);
1055 h = xfrm_src_hash(daddr, saddr, family); 1061 h = xfrm_src_hash(daddr, saddr, family);
1056 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h); 1062 hlist_add_head(&x->bysrc, xfrm_state_bysrc+h);
@@ -1067,18 +1073,20 @@ static struct xfrm_state *__xfrm_find_acq_byseq(u32 seq);
1067 1073
1068int xfrm_state_add(struct xfrm_state *x) 1074int xfrm_state_add(struct xfrm_state *x)
1069{ 1075{
1070 struct xfrm_state *x1; 1076 struct xfrm_state *x1, *to_put;
1071 int family; 1077 int family;
1072 int err; 1078 int err;
1073 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY); 1079 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY);
1074 1080
1075 family = x->props.family; 1081 family = x->props.family;
1076 1082
1083 to_put = NULL;
1084
1077 spin_lock_bh(&xfrm_state_lock); 1085 spin_lock_bh(&xfrm_state_lock);
1078 1086
1079 x1 = __xfrm_state_locate(x, use_spi, family); 1087 x1 = __xfrm_state_locate(x, use_spi, family);
1080 if (x1) { 1088 if (x1) {
1081 xfrm_state_put(x1); 1089 to_put = x1;
1082 x1 = NULL; 1090 x1 = NULL;
1083 err = -EEXIST; 1091 err = -EEXIST;
1084 goto out; 1092 goto out;
@@ -1088,7 +1096,7 @@ int xfrm_state_add(struct xfrm_state *x)
1088 x1 = __xfrm_find_acq_byseq(x->km.seq); 1096 x1 = __xfrm_find_acq_byseq(x->km.seq);
1089 if (x1 && ((x1->id.proto != x->id.proto) || 1097 if (x1 && ((x1->id.proto != x->id.proto) ||
1090 xfrm_addr_cmp(&x1->id.daddr, &x->id.daddr, family))) { 1098 xfrm_addr_cmp(&x1->id.daddr, &x->id.daddr, family))) {
1091 xfrm_state_put(x1); 1099 to_put = x1;
1092 x1 = NULL; 1100 x1 = NULL;
1093 } 1101 }
1094 } 1102 }
@@ -1110,6 +1118,9 @@ out:
1110 xfrm_state_put(x1); 1118 xfrm_state_put(x1);
1111 } 1119 }
1112 1120
1121 if (to_put)
1122 xfrm_state_put(to_put);
1123
1113 return err; 1124 return err;
1114} 1125}
1115EXPORT_SYMBOL(xfrm_state_add); 1126EXPORT_SYMBOL(xfrm_state_add);
@@ -1269,10 +1280,12 @@ EXPORT_SYMBOL(xfrm_state_migrate);
1269 1280
1270int xfrm_state_update(struct xfrm_state *x) 1281int xfrm_state_update(struct xfrm_state *x)
1271{ 1282{
1272 struct xfrm_state *x1; 1283 struct xfrm_state *x1, *to_put;
1273 int err; 1284 int err;
1274 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY); 1285 int use_spi = xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY);
1275 1286
1287 to_put = NULL;
1288
1276 spin_lock_bh(&xfrm_state_lock); 1289 spin_lock_bh(&xfrm_state_lock);
1277 x1 = __xfrm_state_locate(x, use_spi, x->props.family); 1290 x1 = __xfrm_state_locate(x, use_spi, x->props.family);
1278 1291
@@ -1281,7 +1294,7 @@ int xfrm_state_update(struct xfrm_state *x)
1281 goto out; 1294 goto out;
1282 1295
1283 if (xfrm_state_kern(x1)) { 1296 if (xfrm_state_kern(x1)) {
1284 xfrm_state_put(x1); 1297 to_put = x1;
1285 err = -EEXIST; 1298 err = -EEXIST;
1286 goto out; 1299 goto out;
1287 } 1300 }
@@ -1295,6 +1308,9 @@ int xfrm_state_update(struct xfrm_state *x)
1295out: 1308out:
1296 spin_unlock_bh(&xfrm_state_lock); 1309 spin_unlock_bh(&xfrm_state_lock);
1297 1310
1311 if (to_put)
1312 xfrm_state_put(to_put);
1313
1298 if (err) 1314 if (err)
1299 return err; 1315 return err;
1300 1316
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 7bd296cca041..46f23971f7e4 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -508,12 +508,11 @@ int devcgroup_inode_permission(struct inode *inode, int mask)
508 return 0; 508 return 0;
509 if (!S_ISBLK(inode->i_mode) && !S_ISCHR(inode->i_mode)) 509 if (!S_ISBLK(inode->i_mode) && !S_ISCHR(inode->i_mode))
510 return 0; 510 return 0;
511 dev_cgroup = css_to_devcgroup(task_subsys_state(current,
512 devices_subsys_id));
513 if (!dev_cgroup)
514 return 0;
515 511
516 rcu_read_lock(); 512 rcu_read_lock();
513
514 dev_cgroup = task_devcgroup(current);
515
517 list_for_each_entry_rcu(wh, &dev_cgroup->whitelist, list) { 516 list_for_each_entry_rcu(wh, &dev_cgroup->whitelist, list) {
518 if (wh->type & DEV_ALL) 517 if (wh->type & DEV_ALL)
519 goto acc_check; 518 goto acc_check;
@@ -533,6 +532,7 @@ acc_check:
533 rcu_read_unlock(); 532 rcu_read_unlock();
534 return 0; 533 return 0;
535 } 534 }
535
536 rcu_read_unlock(); 536 rcu_read_unlock();
537 537
538 return -EPERM; 538 return -EPERM;
@@ -543,12 +543,10 @@ int devcgroup_inode_mknod(int mode, dev_t dev)
543 struct dev_cgroup *dev_cgroup; 543 struct dev_cgroup *dev_cgroup;
544 struct dev_whitelist_item *wh; 544 struct dev_whitelist_item *wh;
545 545
546 dev_cgroup = css_to_devcgroup(task_subsys_state(current,
547 devices_subsys_id));
548 if (!dev_cgroup)
549 return 0;
550
551 rcu_read_lock(); 546 rcu_read_lock();
547
548 dev_cgroup = task_devcgroup(current);
549
552 list_for_each_entry(wh, &dev_cgroup->whitelist, list) { 550 list_for_each_entry(wh, &dev_cgroup->whitelist, list) {
553 if (wh->type & DEV_ALL) 551 if (wh->type & DEV_ALL)
554 goto acc_check; 552 goto acc_check;
@@ -566,6 +564,8 @@ acc_check:
566 rcu_read_unlock(); 564 rcu_read_unlock();
567 return 0; 565 return 0;
568 } 566 }
567
569 rcu_read_unlock(); 568 rcu_read_unlock();
569
570 return -EPERM; 570 return -EPERM;
571} 571}
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c
index b52f923ce680..d11a8154500f 100644
--- a/security/selinux/ss/services.c
+++ b/security/selinux/ss/services.c
@@ -811,11 +811,12 @@ static int string_to_context_struct(struct policydb *pol,
811 /* Check the validity of the new context. */ 811 /* Check the validity of the new context. */
812 if (!policydb_context_isvalid(pol, ctx)) { 812 if (!policydb_context_isvalid(pol, ctx)) {
813 rc = -EINVAL; 813 rc = -EINVAL;
814 context_destroy(ctx);
815 goto out; 814 goto out;
816 } 815 }
817 rc = 0; 816 rc = 0;
818out: 817out:
818 if (rc)
819 context_destroy(ctx);
819 return rc; 820 return rc;
820} 821}
821 822
@@ -868,8 +869,7 @@ static int security_context_to_sid_core(const char *scontext, u32 scontext_len,
868 } else if (rc) 869 } else if (rc)
869 goto out; 870 goto out;
870 rc = sidtab_context_to_sid(&sidtab, &context, sid); 871 rc = sidtab_context_to_sid(&sidtab, &context, sid);
871 if (rc) 872 context_destroy(&context);
872 context_destroy(&context);
873out: 873out:
874 read_unlock(&policy_rwlock); 874 read_unlock(&policy_rwlock);
875 kfree(scontext2); 875 kfree(scontext2);
diff --git a/sound/Kconfig b/sound/Kconfig
index a37bee094eba..8ebf512ced6c 100644
--- a/sound/Kconfig
+++ b/sound/Kconfig
@@ -91,6 +91,9 @@ endif # SOUND_PRIME
91 91
92endif # !M68K 92endif # !M68K
93 93
94endif # SOUND
95
96# AC97_BUS is used from both sound and ucb1400
94config AC97_BUS 97config AC97_BUS
95 tristate 98 tristate
96 help 99 help
@@ -99,4 +102,3 @@ config AC97_BUS
99 sound although they're sharing the AC97 bus. Concerned drivers 102 sound although they're sharing the AC97 bus. Concerned drivers
100 should "select" this. 103 should "select" this.
101 104
102endif # SOUND
diff --git a/sound/arm/pxa2xx-ac97.c b/sound/arm/pxa2xx-ac97.c
index 199cca3366df..714b3baa4be7 100644
--- a/sound/arm/pxa2xx-ac97.c
+++ b/sound/arm/pxa2xx-ac97.c
@@ -215,7 +215,7 @@ static struct snd_ac97_bus_ops pxa2xx_ac97_ops = {
215static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_out = { 215static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_out = {
216 .name = "AC97 PCM out", 216 .name = "AC97 PCM out",
217 .dev_addr = __PREG(PCDR), 217 .dev_addr = __PREG(PCDR),
218 .drcmr = &DRCMRTXPCDR, 218 .drcmr = &DRCMR(12),
219 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG | 219 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG |
220 DCMD_BURST32 | DCMD_WIDTH4, 220 DCMD_BURST32 | DCMD_WIDTH4,
221}; 221};
@@ -223,7 +223,7 @@ static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_out = {
223static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_in = { 223static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_in = {
224 .name = "AC97 PCM in", 224 .name = "AC97 PCM in",
225 .dev_addr = __PREG(PCDR), 225 .dev_addr = __PREG(PCDR),
226 .drcmr = &DRCMRRXPCDR, 226 .drcmr = &DRCMR(11),
227 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC | 227 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC |
228 DCMD_BURST32 | DCMD_WIDTH4, 228 DCMD_BURST32 | DCMD_WIDTH4,
229}; 229};
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 909f1c101c95..66025161bd69 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6197,7 +6197,6 @@ static struct snd_pci_quirk alc882_cfg_tbl[] = {
6197 SND_PCI_QUIRK(0x1043, 0x817f, "Asus P5LD2", ALC882_6ST_DIG), 6197 SND_PCI_QUIRK(0x1043, 0x817f, "Asus P5LD2", ALC882_6ST_DIG),
6198 SND_PCI_QUIRK(0x1043, 0x81d8, "Asus P5WD", ALC882_6ST_DIG), 6198 SND_PCI_QUIRK(0x1043, 0x81d8, "Asus P5WD", ALC882_6ST_DIG),
6199 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC882_6ST_DIG), 6199 SND_PCI_QUIRK(0x105b, 0x6668, "Foxconn", ALC882_6ST_DIG),
6200 SND_PCI_QUIRK(0x106b, 0x00a0, "Apple iMac 24''", ALC885_IMAC24),
6201 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG), 6200 SND_PCI_QUIRK(0x1458, 0xa002, "Gigabyte P35 DS3R", ALC882_6ST_DIG),
6202 SND_PCI_QUIRK(0x1462, 0x28fb, "Targa T8", ALC882_TARGA), /* MSI-1049 T8 */ 6201 SND_PCI_QUIRK(0x1462, 0x28fb, "Targa T8", ALC882_TARGA), /* MSI-1049 T8 */
6203 SND_PCI_QUIRK(0x1462, 0x6668, "MSI", ALC882_6ST_DIG), 6202 SND_PCI_QUIRK(0x1462, 0x6668, "MSI", ALC882_6ST_DIG),
@@ -14067,6 +14066,13 @@ static struct hda_verb alc662_auto_init_verbs[] = {
14067 { } 14066 { }
14068}; 14067};
14069 14068
14069/* additional verbs for ALC663 */
14070static struct hda_verb alc663_auto_init_verbs[] = {
14071 {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)},
14072 {0x0f, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
14073 { }
14074};
14075
14070static struct hda_verb alc663_m51va_init_verbs[] = { 14076static struct hda_verb alc663_m51va_init_verbs[] = {
14071 {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, 14077 {0x21, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
14072 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, 14078 {0x21, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE},
@@ -14595,6 +14601,14 @@ static int alc662_auto_create_extra_out(struct alc_spec *spec, hda_nid_t pin,
14595 if (!pin) 14601 if (!pin)
14596 return 0; 14602 return 0;
14597 14603
14604 if (pin == 0x17) {
14605 /* ALC663 has a mono output pin on 0x17 */
14606 sprintf(name, "%s Playback Switch", pfx);
14607 err = add_control(spec, ALC_CTL_WIDGET_MUTE, name,
14608 HDA_COMPOSE_AMP_VAL(pin, 2, 0, HDA_OUTPUT));
14609 return err;
14610 }
14611
14598 if (alc880_is_fixed_pin(pin)) { 14612 if (alc880_is_fixed_pin(pin)) {
14599 nid = alc880_idx_to_dac(alc880_fixed_pin_idx(pin)); 14613 nid = alc880_idx_to_dac(alc880_fixed_pin_idx(pin));
14600 /* printk("DAC nid=%x\n",nid); */ 14614 /* printk("DAC nid=%x\n",nid); */
@@ -14765,6 +14779,14 @@ static int alc662_parse_auto_config(struct hda_codec *codec)
14765 spec->input_mux = &spec->private_imux; 14779 spec->input_mux = &spec->private_imux;
14766 14780
14767 spec->init_verbs[spec->num_init_verbs++] = alc662_auto_init_verbs; 14781 spec->init_verbs[spec->num_init_verbs++] = alc662_auto_init_verbs;
14782 if (codec->vendor_id == 0x10ec0663)
14783 spec->init_verbs[spec->num_init_verbs++] =
14784 alc663_auto_init_verbs;
14785
14786 err = alc_auto_add_mic_boost(codec);
14787 if (err < 0)
14788 return err;
14789
14768 spec->mixers[spec->num_mixers] = alc662_capture_mixer; 14790 spec->mixers[spec->num_mixers] = alc662_capture_mixer;
14769 spec->num_mixers++; 14791 spec->num_mixers++;
14770 return 1; 14792 return 1;
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 7fdafcb0015d..ad994fcab725 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -560,8 +560,9 @@ static struct hda_verb dell_eq_core_init[] = {
560}; 560};
561 561
562static struct hda_verb dell_m6_core_init[] = { 562static struct hda_verb dell_m6_core_init[] = {
563 /* set master volume and direct control */ 563 /* set master volume to max value without distortion
564 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, 564 * and direct control */
565 { 0x1f, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xec},
565 /* setup audio connections */ 566 /* setup audio connections */
566 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00}, 567 { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
567 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01}, 568 { 0x0a, AC_VERB_SET_CONNECT_SEL, 0x01},
diff --git a/sound/pci/oxygen/hifier.c b/sound/pci/oxygen/hifier.c
index 7442460583dd..dad393ae040a 100644
--- a/sound/pci/oxygen/hifier.c
+++ b/sound/pci/oxygen/hifier.c
@@ -17,6 +17,7 @@
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20#include <linux/delay.h>
20#include <linux/pci.h> 21#include <linux/pci.h>
21#include <sound/control.h> 22#include <sound/control.h>
22#include <sound/core.h> 23#include <sound/core.h>
@@ -107,6 +108,9 @@ static void set_ak4396_params(struct oxygen *chip,
107 else 108 else
108 value |= AK4396_DFS_QUAD; 109 value |= AK4396_DFS_QUAD;
109 data->ak4396_ctl2 = value; 110 data->ak4396_ctl2 = value;
111
112 msleep(1); /* wait for the new MCLK to become stable */
113
110 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB); 114 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB);
111 ak4396_write(chip, AK4396_CONTROL_2, value); 115 ak4396_write(chip, AK4396_CONTROL_2, value);
112 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB | AK4396_RSTN); 116 ak4396_write(chip, AK4396_CONTROL_1, AK4396_DIF_24_MSB | AK4396_RSTN);
diff --git a/sound/pci/oxygen/oxygen.c b/sound/pci/oxygen/oxygen.c
index 7c8ae31eb468..c5829d30ef86 100644
--- a/sound/pci/oxygen/oxygen.c
+++ b/sound/pci/oxygen/oxygen.c
@@ -28,6 +28,7 @@
28 * GPIO 1 -> DFS1 of AK5385 28 * GPIO 1 -> DFS1 of AK5385
29 */ 29 */
30 30
31#include <linux/delay.h>
31#include <linux/mutex.h> 32#include <linux/mutex.h>
32#include <linux/pci.h> 33#include <linux/pci.h>
33#include <sound/ac97_codec.h> 34#include <sound/ac97_codec.h>
@@ -213,6 +214,9 @@ static void set_ak4396_params(struct oxygen *chip,
213 else 214 else
214 value |= AK4396_DFS_QUAD; 215 value |= AK4396_DFS_QUAD;
215 data->ak4396_ctl2 = value; 216 data->ak4396_ctl2 = value;
217
218 msleep(1); /* wait for the new MCLK to become stable */
219
216 for (i = 0; i < 4; ++i) { 220 for (i = 0; i < 4; ++i) {
217 ak4396_write(chip, i, 221 ak4396_write(chip, i,
218 AK4396_CONTROL_1, AK4396_DIF_24_MSB); 222 AK4396_CONTROL_1, AK4396_DIF_24_MSB);
diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c
index 6facac5aed90..05eb8994c141 100644
--- a/sound/pci/oxygen/oxygen_mixer.c
+++ b/sound/pci/oxygen/oxygen_mixer.c
@@ -512,9 +512,12 @@ static int ac97_switch_get(struct snd_kcontrol *ctl,
512 512
513static void mute_ac97_ctl(struct oxygen *chip, unsigned int control) 513static void mute_ac97_ctl(struct oxygen *chip, unsigned int control)
514{ 514{
515 unsigned int priv_idx = chip->controls[control]->private_value & 0xff; 515 unsigned int priv_idx;
516 u16 value; 516 u16 value;
517 517
518 if (!chip->controls[control])
519 return;
520 priv_idx = chip->controls[control]->private_value & 0xff;
518 value = oxygen_read_ac97(chip, 0, priv_idx); 521 value = oxygen_read_ac97(chip, 0, priv_idx);
519 if (!(value & 0x8000)) { 522 if (!(value & 0x8000)) {
520 oxygen_write_ac97(chip, 0, priv_idx, value | 0x8000); 523 oxygen_write_ac97(chip, 0, priv_idx, value | 0x8000);
diff --git a/sound/soc/omap/n810.c b/sound/soc/omap/n810.c
index 7694621ec40b..87d0ed01f65a 100644
--- a/sound/soc/omap/n810.c
+++ b/sound/soc/omap/n810.c
@@ -329,12 +329,14 @@ static int __init n810_soc_init(void)
329 sys_clkout2_src = clk_get(dev, "sys_clkout2_src"); 329 sys_clkout2_src = clk_get(dev, "sys_clkout2_src");
330 if (IS_ERR(sys_clkout2_src)) { 330 if (IS_ERR(sys_clkout2_src)) {
331 dev_err(dev, "Could not get sys_clkout2_src clock\n"); 331 dev_err(dev, "Could not get sys_clkout2_src clock\n");
332 return -ENODEV; 332 err = PTR_ERR(sys_clkout2_src);
333 goto err2;
333 } 334 }
334 sys_clkout2 = clk_get(dev, "sys_clkout2"); 335 sys_clkout2 = clk_get(dev, "sys_clkout2");
335 if (IS_ERR(sys_clkout2)) { 336 if (IS_ERR(sys_clkout2)) {
336 dev_err(dev, "Could not get sys_clkout2\n"); 337 dev_err(dev, "Could not get sys_clkout2\n");
337 goto err1; 338 err = PTR_ERR(sys_clkout2);
339 goto err3;
338 } 340 }
339 /* 341 /*
340 * Configure 12 MHz output on SYS_CLKOUT2. Therefore we must use 342 * Configure 12 MHz output on SYS_CLKOUT2. Therefore we must use
@@ -343,7 +345,8 @@ static int __init n810_soc_init(void)
343 func96m_clk = clk_get(dev, "func_96m_ck"); 345 func96m_clk = clk_get(dev, "func_96m_ck");
344 if (IS_ERR(func96m_clk)) { 346 if (IS_ERR(func96m_clk)) {
345 dev_err(dev, "Could not get func 96M clock\n"); 347 dev_err(dev, "Could not get func 96M clock\n");
346 goto err2; 348 err = PTR_ERR(func96m_clk);
349 goto err4;
347 } 350 }
348 clk_set_parent(sys_clkout2_src, func96m_clk); 351 clk_set_parent(sys_clkout2_src, func96m_clk);
349 clk_set_rate(sys_clkout2, 12000000); 352 clk_set_rate(sys_clkout2, 12000000);
@@ -356,20 +359,25 @@ static int __init n810_soc_init(void)
356 gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0); 359 gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0);
357 360
358 return 0; 361 return 0;
359err2: 362err4:
360 clk_put(sys_clkout2); 363 clk_put(sys_clkout2);
364err3:
365 clk_put(sys_clkout2_src);
366err2:
361 platform_device_del(n810_snd_device); 367 platform_device_del(n810_snd_device);
362err1: 368err1:
363 platform_device_put(n810_snd_device); 369 platform_device_put(n810_snd_device);
364 370
365 return err; 371 return err;
366
367} 372}
368 373
369static void __exit n810_soc_exit(void) 374static void __exit n810_soc_exit(void)
370{ 375{
371 gpio_free(N810_SPEAKER_AMP_GPIO); 376 gpio_free(N810_SPEAKER_AMP_GPIO);
372 gpio_free(N810_HEADSET_AMP_GPIO); 377 gpio_free(N810_HEADSET_AMP_GPIO);
378 clk_put(sys_clkout2_src);
379 clk_put(sys_clkout2);
380 clk_put(func96m_clk);
373 381
374 platform_device_unregister(n810_snd_device); 382 platform_device_unregister(n810_snd_device);
375} 383}
diff --git a/sound/soc/pxa/corgi.c b/sound/soc/pxa/corgi.c
index 0a53f72077fd..fa69faa886ef 100644
--- a/sound/soc/pxa/corgi.c
+++ b/sound/soc/pxa/corgi.c
@@ -18,13 +18,13 @@
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/interrupt.h> 19#include <linux/interrupt.h>
20#include <linux/platform_device.h> 20#include <linux/platform_device.h>
21#include <linux/gpio.h>
21#include <sound/core.h> 22#include <sound/core.h>
22#include <sound/pcm.h> 23#include <sound/pcm.h>
23#include <sound/soc.h> 24#include <sound/soc.h>
24#include <sound/soc-dapm.h> 25#include <sound/soc-dapm.h>
25 26
26#include <asm/mach-types.h> 27#include <asm/mach-types.h>
27#include <asm/hardware/scoop.h>
28#include <mach/pxa-regs.h> 28#include <mach/pxa-regs.h>
29#include <mach/hardware.h> 29#include <mach/hardware.h>
30#include <mach/corgi.h> 30#include <mach/corgi.h>
@@ -54,8 +54,8 @@ static void corgi_ext_control(struct snd_soc_codec *codec)
54 switch (corgi_jack_func) { 54 switch (corgi_jack_func) {
55 case CORGI_HP: 55 case CORGI_HP:
56 /* set = unmute headphone */ 56 /* set = unmute headphone */
57 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); 57 gpio_set_value(CORGI_GPIO_MUTE_L, 1);
58 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); 58 gpio_set_value(CORGI_GPIO_MUTE_R, 1);
59 snd_soc_dapm_disable_pin(codec, "Mic Jack"); 59 snd_soc_dapm_disable_pin(codec, "Mic Jack");
60 snd_soc_dapm_disable_pin(codec, "Line Jack"); 60 snd_soc_dapm_disable_pin(codec, "Line Jack");
61 snd_soc_dapm_enable_pin(codec, "Headphone Jack"); 61 snd_soc_dapm_enable_pin(codec, "Headphone Jack");
@@ -63,24 +63,24 @@ static void corgi_ext_control(struct snd_soc_codec *codec)
63 break; 63 break;
64 case CORGI_MIC: 64 case CORGI_MIC:
65 /* reset = mute headphone */ 65 /* reset = mute headphone */
66 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); 66 gpio_set_value(CORGI_GPIO_MUTE_L, 0);
67 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); 67 gpio_set_value(CORGI_GPIO_MUTE_R, 0);
68 snd_soc_dapm_enable_pin(codec, "Mic Jack"); 68 snd_soc_dapm_enable_pin(codec, "Mic Jack");
69 snd_soc_dapm_disable_pin(codec, "Line Jack"); 69 snd_soc_dapm_disable_pin(codec, "Line Jack");
70 snd_soc_dapm_disable_pin(codec, "Headphone Jack"); 70 snd_soc_dapm_disable_pin(codec, "Headphone Jack");
71 snd_soc_dapm_disable_pin(codec, "Headset Jack"); 71 snd_soc_dapm_disable_pin(codec, "Headset Jack");
72 break; 72 break;
73 case CORGI_LINE: 73 case CORGI_LINE:
74 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); 74 gpio_set_value(CORGI_GPIO_MUTE_L, 0);
75 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); 75 gpio_set_value(CORGI_GPIO_MUTE_R, 0);
76 snd_soc_dapm_disable_pin(codec, "Mic Jack"); 76 snd_soc_dapm_disable_pin(codec, "Mic Jack");
77 snd_soc_dapm_enable_pin(codec, "Line Jack"); 77 snd_soc_dapm_enable_pin(codec, "Line Jack");
78 snd_soc_dapm_disable_pin(codec, "Headphone Jack"); 78 snd_soc_dapm_disable_pin(codec, "Headphone Jack");
79 snd_soc_dapm_disable_pin(codec, "Headset Jack"); 79 snd_soc_dapm_disable_pin(codec, "Headset Jack");
80 break; 80 break;
81 case CORGI_HEADSET: 81 case CORGI_HEADSET:
82 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); 82 gpio_set_value(CORGI_GPIO_MUTE_L, 0);
83 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); 83 gpio_set_value(CORGI_GPIO_MUTE_R, 1);
84 snd_soc_dapm_enable_pin(codec, "Mic Jack"); 84 snd_soc_dapm_enable_pin(codec, "Mic Jack");
85 snd_soc_dapm_disable_pin(codec, "Line Jack"); 85 snd_soc_dapm_disable_pin(codec, "Line Jack");
86 snd_soc_dapm_disable_pin(codec, "Headphone Jack"); 86 snd_soc_dapm_disable_pin(codec, "Headphone Jack");
@@ -114,8 +114,8 @@ static int corgi_shutdown(struct snd_pcm_substream *substream)
114 struct snd_soc_codec *codec = rtd->socdev->codec; 114 struct snd_soc_codec *codec = rtd->socdev->codec;
115 115
116 /* set = unmute headphone */ 116 /* set = unmute headphone */
117 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L); 117 gpio_set_value(CORGI_GPIO_MUTE_L, 1);
118 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R); 118 gpio_set_value(CORGI_GPIO_MUTE_R, 1);
119 return 0; 119 return 0;
120} 120}
121 121
@@ -218,22 +218,14 @@ static int corgi_set_spk(struct snd_kcontrol *kcontrol,
218static int corgi_amp_event(struct snd_soc_dapm_widget *w, 218static int corgi_amp_event(struct snd_soc_dapm_widget *w,
219 struct snd_kcontrol *k, int event) 219 struct snd_kcontrol *k, int event)
220{ 220{
221 if (SND_SOC_DAPM_EVENT_ON(event)) 221 gpio_set_value(CORGI_GPIO_APM_ON, SND_SOC_DAPM_EVENT_ON(event));
222 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
223 else
224 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_APM_ON);
225
226 return 0; 222 return 0;
227} 223}
228 224
229static int corgi_mic_event(struct snd_soc_dapm_widget *w, 225static int corgi_mic_event(struct snd_soc_dapm_widget *w,
230 struct snd_kcontrol *k, int event) 226 struct snd_kcontrol *k, int event)
231{ 227{
232 if (SND_SOC_DAPM_EVENT_ON(event)) 228 gpio_set_value(CORGI_GPIO_MIC_BIAS, SND_SOC_DAPM_EVENT_ON(event));
233 set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS);
234 else
235 reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS);
236
237 return 0; 229 return 0;
238} 230}
239 231
diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c
index d94a495bd6bd..ac8f227bab0b 100644
--- a/sound/soc/pxa/pxa2xx-ac97.c
+++ b/sound/soc/pxa/pxa2xx-ac97.c
@@ -244,7 +244,7 @@ struct snd_ac97_bus_ops soc_ac97_ops = {
244static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_stereo_out = { 244static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_stereo_out = {
245 .name = "AC97 PCM Stereo out", 245 .name = "AC97 PCM Stereo out",
246 .dev_addr = __PREG(PCDR), 246 .dev_addr = __PREG(PCDR),
247 .drcmr = &DRCMRTXPCDR, 247 .drcmr = &DRCMR(12),
248 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG | 248 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG |
249 DCMD_BURST32 | DCMD_WIDTH4, 249 DCMD_BURST32 | DCMD_WIDTH4,
250}; 250};
@@ -252,7 +252,7 @@ static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_stereo_out = {
252static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_stereo_in = { 252static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_stereo_in = {
253 .name = "AC97 PCM Stereo in", 253 .name = "AC97 PCM Stereo in",
254 .dev_addr = __PREG(PCDR), 254 .dev_addr = __PREG(PCDR),
255 .drcmr = &DRCMRRXPCDR, 255 .drcmr = &DRCMR(11),
256 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC | 256 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC |
257 DCMD_BURST32 | DCMD_WIDTH4, 257 DCMD_BURST32 | DCMD_WIDTH4,
258}; 258};
@@ -260,7 +260,7 @@ static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_stereo_in = {
260static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_aux_mono_out = { 260static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_aux_mono_out = {
261 .name = "AC97 Aux PCM (Slot 5) Mono out", 261 .name = "AC97 Aux PCM (Slot 5) Mono out",
262 .dev_addr = __PREG(MODR), 262 .dev_addr = __PREG(MODR),
263 .drcmr = &DRCMRTXMODR, 263 .drcmr = &DRCMR(10),
264 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG | 264 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG |
265 DCMD_BURST16 | DCMD_WIDTH2, 265 DCMD_BURST16 | DCMD_WIDTH2,
266}; 266};
@@ -268,7 +268,7 @@ static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_aux_mono_out = {
268static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_aux_mono_in = { 268static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_aux_mono_in = {
269 .name = "AC97 Aux PCM (Slot 5) Mono in", 269 .name = "AC97 Aux PCM (Slot 5) Mono in",
270 .dev_addr = __PREG(MODR), 270 .dev_addr = __PREG(MODR),
271 .drcmr = &DRCMRRXMODR, 271 .drcmr = &DRCMR(9),
272 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC | 272 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC |
273 DCMD_BURST16 | DCMD_WIDTH2, 273 DCMD_BURST16 | DCMD_WIDTH2,
274}; 274};
@@ -276,7 +276,7 @@ static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_aux_mono_in = {
276static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_mic_mono_in = { 276static struct pxa2xx_pcm_dma_params pxa2xx_ac97_pcm_mic_mono_in = {
277 .name = "AC97 Mic PCM (Slot 6) Mono in", 277 .name = "AC97 Mic PCM (Slot 6) Mono in",
278 .dev_addr = __PREG(MCDR), 278 .dev_addr = __PREG(MCDR),
279 .drcmr = &DRCMRRXMCDR, 279 .drcmr = &DRCMR(8),
280 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC | 280 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC |
281 DCMD_BURST16 | DCMD_WIDTH2, 281 DCMD_BURST16 | DCMD_WIDTH2,
282}; 282};
@@ -293,14 +293,6 @@ static int pxa2xx_ac97_suspend(struct platform_device *pdev,
293static int pxa2xx_ac97_resume(struct platform_device *pdev, 293static int pxa2xx_ac97_resume(struct platform_device *pdev,
294 struct snd_soc_dai *dai) 294 struct snd_soc_dai *dai)
295{ 295{
296 pxa_gpio_mode(GPIO31_SYNC_AC97_MD);
297 pxa_gpio_mode(GPIO30_SDATA_OUT_AC97_MD);
298 pxa_gpio_mode(GPIO28_BITCLK_AC97_MD);
299 pxa_gpio_mode(GPIO29_SDATA_IN_AC97_MD);
300#ifdef CONFIG_PXA27x
301 /* Use GPIO 113 as AC97 Reset on Bulverde */
302 pxa_gpio_mode(113 | GPIO_ALT_FN_2_OUT);
303#endif
304 clk_enable(ac97_clk); 296 clk_enable(ac97_clk);
305 return 0; 297 return 0;
306} 298}
diff --git a/sound/soc/pxa/pxa2xx-i2s.c b/sound/soc/pxa/pxa2xx-i2s.c
index 8548818eea08..ad4c31ddb3d4 100644
--- a/sound/soc/pxa/pxa2xx-i2s.c
+++ b/sound/soc/pxa/pxa2xx-i2s.c
@@ -16,6 +16,7 @@
16#include <linux/device.h> 16#include <linux/device.h>
17#include <linux/delay.h> 17#include <linux/delay.h>
18#include <linux/clk.h> 18#include <linux/clk.h>
19#include <linux/platform_device.h>
19#include <sound/core.h> 20#include <sound/core.h>
20#include <sound/pcm.h> 21#include <sound/pcm.h>
21#include <sound/initval.h> 22#include <sound/initval.h>
@@ -29,6 +30,46 @@
29#include "pxa2xx-pcm.h" 30#include "pxa2xx-pcm.h"
30#include "pxa2xx-i2s.h" 31#include "pxa2xx-i2s.h"
31 32
33/*
34 * I2S Controller Register and Bit Definitions
35 */
36#define SACR0 __REG(0x40400000) /* Global Control Register */
37#define SACR1 __REG(0x40400004) /* Serial Audio I 2 S/MSB-Justified Control Register */
38#define SASR0 __REG(0x4040000C) /* Serial Audio I 2 S/MSB-Justified Interface and FIFO Status Register */
39#define SAIMR __REG(0x40400014) /* Serial Audio Interrupt Mask Register */
40#define SAICR __REG(0x40400018) /* Serial Audio Interrupt Clear Register */
41#define SADIV __REG(0x40400060) /* Audio Clock Divider Register. */
42#define SADR __REG(0x40400080) /* Serial Audio Data Register (TX and RX FIFO access Register). */
43
44#define SACR0_RFTH(x) ((x) << 12) /* Rx FIFO Interrupt or DMA Trigger Threshold */
45#define SACR0_TFTH(x) ((x) << 8) /* Tx FIFO Interrupt or DMA Trigger Threshold */
46#define SACR0_STRF (1 << 5) /* FIFO Select for EFWR Special Function */
47#define SACR0_EFWR (1 << 4) /* Enable EFWR Function */
48#define SACR0_RST (1 << 3) /* FIFO, i2s Register Reset */
49#define SACR0_BCKD (1 << 2) /* Bit Clock Direction */
50#define SACR0_ENB (1 << 0) /* Enable I2S Link */
51#define SACR1_ENLBF (1 << 5) /* Enable Loopback */
52#define SACR1_DRPL (1 << 4) /* Disable Replaying Function */
53#define SACR1_DREC (1 << 3) /* Disable Recording Function */
54#define SACR1_AMSL (1 << 0) /* Specify Alternate Mode */
55
56#define SASR0_I2SOFF (1 << 7) /* Controller Status */
57#define SASR0_ROR (1 << 6) /* Rx FIFO Overrun */
58#define SASR0_TUR (1 << 5) /* Tx FIFO Underrun */
59#define SASR0_RFS (1 << 4) /* Rx FIFO Service Request */
60#define SASR0_TFS (1 << 3) /* Tx FIFO Service Request */
61#define SASR0_BSY (1 << 2) /* I2S Busy */
62#define SASR0_RNE (1 << 1) /* Rx FIFO Not Empty */
63#define SASR0_TNF (1 << 0) /* Tx FIFO Not Empty */
64
65#define SAICR_ROR (1 << 6) /* Clear Rx FIFO Overrun Interrupt */
66#define SAICR_TUR (1 << 5) /* Clear Tx FIFO Underrun Interrupt */
67
68#define SAIMR_ROR (1 << 6) /* Enable Rx FIFO Overrun Condition Interrupt */
69#define SAIMR_TUR (1 << 5) /* Enable Tx FIFO Underrun Condition Interrupt */
70#define SAIMR_RFS (1 << 4) /* Enable Rx FIFO Service Interrupt */
71#define SAIMR_TFS (1 << 3) /* Enable Tx FIFO Service Interrupt */
72
32struct pxa_i2s_port { 73struct pxa_i2s_port {
33 u32 sadiv; 74 u32 sadiv;
34 u32 sacr0; 75 u32 sacr0;
@@ -43,7 +84,7 @@ static struct clk *clk_i2s;
43static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_out = { 84static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_out = {
44 .name = "I2S PCM Stereo out", 85 .name = "I2S PCM Stereo out",
45 .dev_addr = __PREG(SADR), 86 .dev_addr = __PREG(SADR),
46 .drcmr = &DRCMRTXSADR, 87 .drcmr = &DRCMR(3),
47 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG | 88 .dcmd = DCMD_INCSRCADDR | DCMD_FLOWTRG |
48 DCMD_BURST32 | DCMD_WIDTH4, 89 DCMD_BURST32 | DCMD_WIDTH4,
49}; 90};
@@ -51,7 +92,7 @@ static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_out = {
51static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_in = { 92static struct pxa2xx_pcm_dma_params pxa2xx_i2s_pcm_stereo_in = {
52 .name = "I2S PCM Stereo in", 93 .name = "I2S PCM Stereo in",
53 .dev_addr = __PREG(SADR), 94 .dev_addr = __PREG(SADR),
54 .drcmr = &DRCMRRXSADR, 95 .drcmr = &DRCMR(2),
55 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC | 96 .dcmd = DCMD_INCTRGADDR | DCMD_FLOWSRC |
56 DCMD_BURST32 | DCMD_WIDTH4, 97 DCMD_BURST32 | DCMD_WIDTH4,
57}; 98};
@@ -81,7 +122,6 @@ static int pxa2xx_i2s_startup(struct snd_pcm_substream *substream)
81 struct snd_soc_pcm_runtime *rtd = substream->private_data; 122 struct snd_soc_pcm_runtime *rtd = substream->private_data;
82 struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai; 123 struct snd_soc_dai *cpu_dai = rtd->dai->cpu_dai;
83 124
84 clk_i2s = clk_get(NULL, "I2SCLK");
85 if (IS_ERR(clk_i2s)) 125 if (IS_ERR(clk_i2s))
86 return PTR_ERR(clk_i2s); 126 return PTR_ERR(clk_i2s);
87 127
@@ -152,6 +192,7 @@ static int pxa2xx_i2s_hw_params(struct snd_pcm_substream *substream,
152 pxa_gpio_mode(gpio_bus[pxa_i2s.master].tx); 192 pxa_gpio_mode(gpio_bus[pxa_i2s.master].tx);
153 pxa_gpio_mode(gpio_bus[pxa_i2s.master].frm); 193 pxa_gpio_mode(gpio_bus[pxa_i2s.master].frm);
154 pxa_gpio_mode(gpio_bus[pxa_i2s.master].clk); 194 pxa_gpio_mode(gpio_bus[pxa_i2s.master].clk);
195 BUG_ON(IS_ERR(clk_i2s));
155 clk_enable(clk_i2s); 196 clk_enable(clk_i2s);
156 pxa_i2s_wait(); 197 pxa_i2s_wait();
157 198
@@ -317,6 +358,43 @@ struct snd_soc_dai pxa_i2s_dai = {
317 358
318EXPORT_SYMBOL_GPL(pxa_i2s_dai); 359EXPORT_SYMBOL_GPL(pxa_i2s_dai);
319 360
361static int pxa2xx_i2s_probe(struct platform_device *dev)
362{
363 clk_i2s = clk_get(&dev->dev, "I2SCLK");
364 return IS_ERR(clk_i2s) ? PTR_ERR(clk_i2s) : 0;
365}
366
367static int __devexit pxa2xx_i2s_remove(struct platform_device *dev)
368{
369 clk_put(clk_i2s);
370 clk_i2s = ERR_PTR(-ENOENT);
371 return 0;
372}
373
374static struct platform_driver pxa2xx_i2s_driver = {
375 .probe = pxa2xx_i2s_probe,
376 .remove = __devexit_p(pxa2xx_i2s_remove),
377
378 .driver = {
379 .name = "pxa2xx-i2s",
380 .owner = THIS_MODULE,
381 },
382};
383
384static int __init pxa2xx_i2s_init(void)
385{
386 clk_i2s = ERR_PTR(-ENOENT);
387 return platform_driver_register(&pxa2xx_i2s_driver);
388}
389
390static void __exit pxa2xx_i2s_exit(void)
391{
392 platform_driver_unregister(&pxa2xx_i2s_driver);
393}
394
395module_init(pxa2xx_i2s_init);
396module_exit(pxa2xx_i2s_exit);
397
320/* Module information */ 398/* Module information */
321MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com"); 399MODULE_AUTHOR("Liam Girdwood, liam.girdwood@wolfsonmicro.com, www.wolfsonmicro.com");
322MODULE_DESCRIPTION("pxa2xx I2S SoC Interface"); 400MODULE_DESCRIPTION("pxa2xx I2S SoC Interface");
diff --git a/sound/soc/pxa/spitz.c b/sound/soc/pxa/spitz.c
index 37cb768fc933..b89a3edd2183 100644
--- a/sound/soc/pxa/spitz.c
+++ b/sound/soc/pxa/spitz.c
@@ -19,16 +19,15 @@
19#include <linux/timer.h> 19#include <linux/timer.h>
20#include <linux/interrupt.h> 20#include <linux/interrupt.h>
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/gpio.h>
22#include <sound/core.h> 23#include <sound/core.h>
23#include <sound/pcm.h> 24#include <sound/pcm.h>
24#include <sound/soc.h> 25#include <sound/soc.h>
25#include <sound/soc-dapm.h> 26#include <sound/soc-dapm.h>
26 27
27#include <asm/mach-types.h> 28#include <asm/mach-types.h>
28#include <asm/hardware/scoop.h>
29#include <mach/pxa-regs.h> 29#include <mach/pxa-regs.h>
30#include <mach/hardware.h> 30#include <mach/hardware.h>
31#include <mach/akita.h>
32#include <mach/spitz.h> 31#include <mach/spitz.h>
33#include "../codecs/wm8750.h" 32#include "../codecs/wm8750.h"
34#include "pxa2xx-pcm.h" 33#include "pxa2xx-pcm.h"
@@ -63,8 +62,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
63 snd_soc_dapm_disable_pin(codec, "Mic Jack"); 62 snd_soc_dapm_disable_pin(codec, "Mic Jack");
64 snd_soc_dapm_disable_pin(codec, "Line Jack"); 63 snd_soc_dapm_disable_pin(codec, "Line Jack");
65 snd_soc_dapm_enable_pin(codec, "Headphone Jack"); 64 snd_soc_dapm_enable_pin(codec, "Headphone Jack");
66 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L); 65 gpio_set_value(SPITZ_GPIO_MUTE_L, 1);
67 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R); 66 gpio_set_value(SPITZ_GPIO_MUTE_R, 1);
68 break; 67 break;
69 case SPITZ_MIC: 68 case SPITZ_MIC:
70 /* enable mic jack and bias, mute hp */ 69 /* enable mic jack and bias, mute hp */
@@ -72,8 +71,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
72 snd_soc_dapm_disable_pin(codec, "Headset Jack"); 71 snd_soc_dapm_disable_pin(codec, "Headset Jack");
73 snd_soc_dapm_disable_pin(codec, "Line Jack"); 72 snd_soc_dapm_disable_pin(codec, "Line Jack");
74 snd_soc_dapm_enable_pin(codec, "Mic Jack"); 73 snd_soc_dapm_enable_pin(codec, "Mic Jack");
75 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L); 74 gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
76 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R); 75 gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
77 break; 76 break;
78 case SPITZ_LINE: 77 case SPITZ_LINE:
79 /* enable line jack, disable mic bias and mute hp */ 78 /* enable line jack, disable mic bias and mute hp */
@@ -81,8 +80,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
81 snd_soc_dapm_disable_pin(codec, "Headset Jack"); 80 snd_soc_dapm_disable_pin(codec, "Headset Jack");
82 snd_soc_dapm_disable_pin(codec, "Mic Jack"); 81 snd_soc_dapm_disable_pin(codec, "Mic Jack");
83 snd_soc_dapm_enable_pin(codec, "Line Jack"); 82 snd_soc_dapm_enable_pin(codec, "Line Jack");
84 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L); 83 gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
85 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R); 84 gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
86 break; 85 break;
87 case SPITZ_HEADSET: 86 case SPITZ_HEADSET:
88 /* enable and unmute headset jack enable mic bias, mute L hp */ 87 /* enable and unmute headset jack enable mic bias, mute L hp */
@@ -90,8 +89,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
90 snd_soc_dapm_enable_pin(codec, "Mic Jack"); 89 snd_soc_dapm_enable_pin(codec, "Mic Jack");
91 snd_soc_dapm_disable_pin(codec, "Line Jack"); 90 snd_soc_dapm_disable_pin(codec, "Line Jack");
92 snd_soc_dapm_enable_pin(codec, "Headset Jack"); 91 snd_soc_dapm_enable_pin(codec, "Headset Jack");
93 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L); 92 gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
94 set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R); 93 gpio_set_value(SPITZ_GPIO_MUTE_R, 1);
95 break; 94 break;
96 case SPITZ_HP_OFF: 95 case SPITZ_HP_OFF:
97 96
@@ -100,8 +99,8 @@ static void spitz_ext_control(struct snd_soc_codec *codec)
100 snd_soc_dapm_disable_pin(codec, "Headset Jack"); 99 snd_soc_dapm_disable_pin(codec, "Headset Jack");
101 snd_soc_dapm_disable_pin(codec, "Mic Jack"); 100 snd_soc_dapm_disable_pin(codec, "Mic Jack");
102 snd_soc_dapm_disable_pin(codec, "Line Jack"); 101 snd_soc_dapm_disable_pin(codec, "Line Jack");
103 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L); 102 gpio_set_value(SPITZ_GPIO_MUTE_L, 0);
104 reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R); 103 gpio_set_value(SPITZ_GPIO_MUTE_R, 0);
105 break; 104 break;
106 } 105 }
107 snd_soc_dapm_sync(codec); 106 snd_soc_dapm_sync(codec);
@@ -215,23 +214,14 @@ static int spitz_set_spk(struct snd_kcontrol *kcontrol,
215static int spitz_mic_bias(struct snd_soc_dapm_widget *w, 214static int spitz_mic_bias(struct snd_soc_dapm_widget *w,
216 struct snd_kcontrol *k, int event) 215 struct snd_kcontrol *k, int event)
217{ 216{
218 if (machine_is_borzoi() || machine_is_spitz()) { 217 if (machine_is_borzoi() || machine_is_spitz())
219 if (SND_SOC_DAPM_EVENT_ON(event)) 218 gpio_set_value(SPITZ_GPIO_MIC_BIAS,
220 set_scoop_gpio(&spitzscoop2_device.dev, 219 SND_SOC_DAPM_EVENT_ON(event));
221 SPITZ_SCP2_MIC_BIAS); 220
222 else 221 if (machine_is_akita())
223 reset_scoop_gpio(&spitzscoop2_device.dev, 222 gpio_set_value(AKITA_GPIO_MIC_BIAS,
224 SPITZ_SCP2_MIC_BIAS); 223 SND_SOC_DAPM_EVENT_ON(event));
225 }
226 224
227 if (machine_is_akita()) {
228 if (SND_SOC_DAPM_EVENT_ON(event))
229 akita_set_ioexp(&akitaioexp_device.dev,
230 AKITA_IOEXP_MIC_BIAS);
231 else
232 akita_reset_ioexp(&akitaioexp_device.dev,
233 AKITA_IOEXP_MIC_BIAS);
234 }
235 return 0; 225 return 0;
236} 226}
237 227