From 23c6a2538247c4be484c3e1f8ccfc36ab1a6cf67 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Mon, 14 Jul 2008 13:43:24 -0700 Subject: [PATCH] --- yaml --- r: 100176 b: refs/heads/master c: a3da5bf84a97d48cfaf66c6842470fc403da5121 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Documentation/ABI/testing/sysfs-block | 34 + trunk/Documentation/ABI/testing/sysfs-bus-css | 35 + trunk/Documentation/block/data-integrity.txt | 327 ++++ trunk/Documentation/ioctl-number.txt | 1 + .../sound/alsa/ALSA-Configuration.txt | 17 +- .../alsa/DocBook/writing-an-alsa-driver.tmpl | 4 +- trunk/arch/avr32/Kconfig | 9 + trunk/arch/avr32/boards/atngw100/setup.c | 29 + trunk/arch/avr32/boards/atstk1000/atstk1002.c | 8 +- trunk/arch/avr32/boards/atstk1000/atstk1003.c | 7 + trunk/arch/avr32/boards/atstk1000/atstk1004.c | 9 +- trunk/arch/avr32/kernel/entry-avr32b.S | 88 +- trunk/arch/avr32/kernel/signal.c | 3 + trunk/arch/avr32/kernel/time.c | 14 +- trunk/arch/avr32/kernel/vmlinux.lds.S | 12 +- trunk/arch/avr32/lib/io-readsb.S | 2 +- trunk/arch/avr32/mach-at32ap/Makefile | 7 +- trunk/arch/avr32/mach-at32ap/at32ap700x.c | 252 ++- trunk/arch/avr32/mach-at32ap/intc.c | 80 +- .../avr32/mach-at32ap/{at32ap.c => pdc.c} | 8 - trunk/arch/avr32/mach-at32ap/pio.c | 2 + trunk/arch/avr32/mach-at32ap/pio.h | 2 +- trunk/arch/avr32/mach-at32ap/pm-at32ap700x.S | 108 ++ trunk/arch/avr32/mach-at32ap/pm.c | 245 +++ trunk/arch/avr32/mach-at32ap/sdramc.h | 76 + trunk/arch/avr32/mm/init.c | 22 +- trunk/arch/avr32/mm/tlb.c | 175 +- trunk/arch/s390/Kconfig | 21 + trunk/arch/s390/appldata/appldata.h | 10 +- trunk/arch/s390/appldata/appldata_base.c | 41 +- trunk/arch/s390/appldata/appldata_mem.c | 43 +- trunk/arch/s390/appldata/appldata_net_sum.c | 39 +- trunk/arch/s390/appldata/appldata_os.c | 57 +- trunk/arch/s390/crypto/crypt_s390.h | 4 + trunk/arch/s390/crypto/prng.c | 5 +- trunk/arch/s390/hypfs/inode.c | 29 +- trunk/arch/s390/kernel/Makefile | 9 +- trunk/arch/s390/kernel/binfmt_elf32.c | 214 --- trunk/arch/s390/kernel/compat_ptrace.h | 4 +- trunk/arch/s390/kernel/debug.c | 9 - trunk/arch/s390/kernel/early.c | 211 +-- trunk/arch/s390/kernel/ipl.c | 462 ++++- trunk/arch/s390/kernel/kprobes.c | 4 +- trunk/arch/s390/kernel/machine_kexec.c | 1 - trunk/arch/s390/kernel/mem_detect.c | 100 + trunk/arch/s390/kernel/process.c | 32 +- trunk/arch/s390/kernel/ptrace.c | 363 +++- trunk/arch/s390/kernel/setup.c | 51 +- trunk/arch/s390/kernel/time.c | 634 +++++-- trunk/arch/s390/kernel/topology.c | 2 - trunk/arch/s390/kernel/vtime.c | 81 +- trunk/arch/s390/mm/init.c | 19 + trunk/arch/x86/kernel/traps_64.c | 25 +- trunk/block/Kconfig | 12 + trunk/block/Makefile | 4 +- trunk/block/as-iosched.c | 18 +- trunk/block/blk-core.c | 19 +- trunk/block/blk-integrity.c | 381 ++++ trunk/block/blk-map.c | 6 + trunk/block/blk-merge.c | 3 + trunk/block/blk-settings.c | 24 +- trunk/block/blk.h | 8 + trunk/block/blktrace.c | 45 + trunk/block/bsg.c | 38 +- trunk/block/cfq-iosched.c | 83 +- trunk/block/cmd-filter.c | 334 ++++ trunk/block/elevator.c | 8 +- trunk/block/genhd.c | 12 + trunk/block/scsi_ioctl.c | 121 +- trunk/crypto/Kconfig | 63 +- trunk/crypto/Makefile | 7 +- trunk/crypto/ahash.c | 194 ++ trunk/crypto/api.c | 8 +- trunk/crypto/camellia.c | 84 +- trunk/crypto/crc32c.c | 128 +- trunk/crypto/cryptd.c | 253 ++- trunk/crypto/digest.c | 83 +- trunk/crypto/hash.c | 102 +- trunk/crypto/hmac.c | 16 +- trunk/crypto/internal.h | 1 + trunk/crypto/prng.c | 410 +++++ trunk/crypto/prng.h | 27 + trunk/crypto/ripemd.h | 43 + trunk/crypto/rmd128.c | 325 ++++ trunk/crypto/rmd160.c | 369 ++++ trunk/crypto/rmd256.c | 344 ++++ trunk/crypto/rmd320.c | 393 ++++ trunk/crypto/tcrypt.c | 188 +- trunk/crypto/tcrypt.h | 526 +++++- trunk/drivers/Makefile | 1 + trunk/drivers/ata/libata-scsi.c | 3 +- trunk/drivers/block/DAC960.c | 157 +- trunk/drivers/block/aoe/aoecmd.c | 2 +- trunk/drivers/block/paride/pt.c | 20 +- trunk/drivers/block/pktcdvd.c | 46 +- trunk/drivers/block/xen-blkfront.c | 48 +- trunk/drivers/cdrom/cdrom.c | 274 +-- trunk/drivers/char/Makefile | 1 - trunk/drivers/char/drm/Makefile | 40 - trunk/drivers/char/pcmcia/cm4000_cs.c | 118 +- trunk/drivers/char/pcmcia/cm4040_cs.c | 23 +- trunk/drivers/char/pcmcia/ipwireless/main.c | 1 - trunk/drivers/crypto/Kconfig | 26 + trunk/drivers/crypto/Makefile | 2 + trunk/drivers/crypto/hifn_795x.c | 367 ++-- trunk/drivers/crypto/ixp4xx_crypto.c | 1506 +++++++++++++++ trunk/drivers/crypto/padlock-aes.c | 4 +- trunk/drivers/crypto/padlock-sha.c | 4 +- trunk/drivers/crypto/talitos.c | 1597 ++++++++++++++++ trunk/drivers/crypto/talitos.h | 199 ++ trunk/drivers/gpu/Makefile | 1 + trunk/drivers/{char => gpu}/drm/Kconfig | 0 trunk/drivers/gpu/drm/Makefile | 26 + trunk/drivers/{char => gpu}/drm/README.drm | 0 trunk/drivers/{char => gpu}/drm/ati_pcigart.c | 0 .../{char => gpu}/drm/drm_agpsupport.c | 0 trunk/drivers/{char => gpu}/drm/drm_auth.c | 0 trunk/drivers/{char => gpu}/drm/drm_bufs.c | 0 trunk/drivers/{char => gpu}/drm/drm_context.c | 0 trunk/drivers/{char => gpu}/drm/drm_dma.c | 0 .../drivers/{char => gpu}/drm/drm_drawable.c | 0 trunk/drivers/{char => gpu}/drm/drm_drv.c | 0 trunk/drivers/{char => gpu}/drm/drm_fops.c | 0 trunk/drivers/{char => gpu}/drm/drm_hashtab.c | 0 trunk/drivers/{char => gpu}/drm/drm_ioc32.c | 0 trunk/drivers/{char => gpu}/drm/drm_ioctl.c | 0 trunk/drivers/{char => gpu}/drm/drm_irq.c | 0 trunk/drivers/{char => gpu}/drm/drm_lock.c | 0 trunk/drivers/{char => gpu}/drm/drm_memory.c | 0 trunk/drivers/{char => gpu}/drm/drm_mm.c | 0 trunk/drivers/{char => gpu}/drm/drm_pci.c | 0 trunk/drivers/{char => gpu}/drm/drm_proc.c | 0 trunk/drivers/{char => gpu}/drm/drm_scatter.c | 0 trunk/drivers/{char => gpu}/drm/drm_sman.c | 0 trunk/drivers/{char => gpu}/drm/drm_stub.c | 0 trunk/drivers/{char => gpu}/drm/drm_sysfs.c | 0 trunk/drivers/{char => gpu}/drm/drm_vm.c | 0 trunk/drivers/gpu/drm/i810/Makefile | 8 + .../{char/drm => gpu/drm/i810}/i810_dma.c | 0 .../{char/drm => gpu/drm/i810}/i810_drv.c | 0 .../{char/drm => gpu/drm/i810}/i810_drv.h | 0 trunk/drivers/gpu/drm/i830/Makefile | 8 + .../{char/drm => gpu/drm/i830}/i830_dma.c | 0 .../{char/drm => gpu/drm/i830}/i830_drv.c | 0 .../{char/drm => gpu/drm/i830}/i830_drv.h | 0 .../{char/drm => gpu/drm/i830}/i830_irq.c | 0 trunk/drivers/gpu/drm/i915/Makefile | 10 + .../{char/drm => gpu/drm/i915}/i915_dma.c | 0 .../{char/drm => gpu/drm/i915}/i915_drv.c | 0 .../{char/drm => gpu/drm/i915}/i915_drv.h | 0 .../{char/drm => gpu/drm/i915}/i915_ioc32.c | 0 .../{char/drm => gpu/drm/i915}/i915_irq.c | 0 .../{char/drm => gpu/drm/i915}/i915_mem.c | 0 trunk/drivers/gpu/drm/mga/Makefile | 11 + .../{char/drm => gpu/drm/mga}/mga_dma.c | 0 .../{char/drm => gpu/drm/mga}/mga_drv.c | 0 .../{char/drm => gpu/drm/mga}/mga_drv.h | 0 .../{char/drm => gpu/drm/mga}/mga_ioc32.c | 0 .../{char/drm => gpu/drm/mga}/mga_irq.c | 0 .../{char/drm => gpu/drm/mga}/mga_state.c | 0 .../{char/drm => gpu/drm/mga}/mga_ucode.h | 0 .../{char/drm => gpu/drm/mga}/mga_warp.c | 0 trunk/drivers/gpu/drm/r128/Makefile | 10 + .../{char/drm => gpu/drm/r128}/r128_cce.c | 0 .../{char/drm => gpu/drm/r128}/r128_drv.c | 0 .../{char/drm => gpu/drm/r128}/r128_drv.h | 0 .../{char/drm => gpu/drm/r128}/r128_ioc32.c | 0 .../{char/drm => gpu/drm/r128}/r128_irq.c | 0 .../{char/drm => gpu/drm/r128}/r128_state.c | 0 trunk/drivers/gpu/drm/radeon/Makefile | 10 + .../drm => gpu/drm/radeon}/r300_cmdbuf.c | 0 .../{char/drm => gpu/drm/radeon}/r300_reg.h | 0 .../{char/drm => gpu/drm/radeon}/radeon_cp.c | 0 .../{char/drm => gpu/drm/radeon}/radeon_drv.c | 0 .../{char/drm => gpu/drm/radeon}/radeon_drv.h | 0 .../drm => gpu/drm/radeon}/radeon_ioc32.c | 0 .../{char/drm => gpu/drm/radeon}/radeon_irq.c | 0 .../{char/drm => gpu/drm/radeon}/radeon_mem.c | 0 .../drm => gpu/drm/radeon}/radeon_microcode.h | 0 .../drm => gpu/drm/radeon}/radeon_state.c | 0 trunk/drivers/gpu/drm/savage/Makefile | 9 + .../{char/drm => gpu/drm/savage}/savage_bci.c | 0 .../{char/drm => gpu/drm/savage}/savage_drv.c | 0 .../{char/drm => gpu/drm/savage}/savage_drv.h | 0 .../drm => gpu/drm/savage}/savage_state.c | 0 trunk/drivers/gpu/drm/sis/Makefile | 10 + .../{char/drm => gpu/drm/sis}/sis_drv.c | 0 .../{char/drm => gpu/drm/sis}/sis_drv.h | 0 .../{char/drm => gpu/drm/sis}/sis_mm.c | 0 trunk/drivers/gpu/drm/tdfx/Makefile | 8 + .../{char/drm => gpu/drm/tdfx}/tdfx_drv.c | 0 .../{char/drm => gpu/drm/tdfx}/tdfx_drv.h | 0 trunk/drivers/gpu/drm/via/Makefile | 8 + .../{char/drm => gpu/drm/via}/via_3d_reg.h | 0 .../{char/drm => gpu/drm/via}/via_dma.c | 0 .../{char/drm => gpu/drm/via}/via_dmablit.c | 0 .../{char/drm => gpu/drm/via}/via_dmablit.h | 0 .../{char/drm => gpu/drm/via}/via_drv.c | 0 .../{char/drm => gpu/drm/via}/via_drv.h | 0 .../{char/drm => gpu/drm/via}/via_irq.c | 0 .../{char/drm => gpu/drm/via}/via_map.c | 0 .../{char/drm => gpu/drm/via}/via_mm.c | 0 .../{char/drm => gpu/drm/via}/via_verifier.c | 0 .../{char/drm => gpu/drm/via}/via_verifier.h | 0 .../{char/drm => gpu/drm/via}/via_video.c | 0 trunk/drivers/ide/legacy/ide-cs.c | 10 +- trunk/drivers/md/linear.c | 10 +- trunk/drivers/md/raid0.c | 10 +- trunk/drivers/md/raid10.c | 15 +- trunk/drivers/md/raid5.c | 10 +- trunk/drivers/misc/atmel_pwm.c | 2 +- trunk/drivers/mtd/ftl.c | 4 - trunk/drivers/mtd/maps/pcmciamtd.c | 9 +- trunk/drivers/net/macb.c | 37 + trunk/drivers/net/xen-netfront.c | 4 +- trunk/drivers/pcmcia/Kconfig | 7 + trunk/drivers/pcmcia/Makefile | 1 + trunk/drivers/pcmcia/au1000_generic.h | 27 +- trunk/drivers/pcmcia/au1000_pb1x00.c | 1 - trunk/drivers/pcmcia/au1000_xxs1500.c | 1 - trunk/drivers/pcmcia/bfin_cf_pcmcia.c | 339 ++++ trunk/drivers/pcmcia/cardbus.c | 2 - trunk/drivers/pcmcia/cistpl.c | 16 +- trunk/drivers/pcmcia/cs.c | 14 +- trunk/drivers/pcmcia/cs_internal.h | 13 - trunk/drivers/pcmcia/ds.c | 12 +- trunk/drivers/pcmcia/hd64465_ss.c | 3 - trunk/drivers/pcmcia/i82092.c | 2 - trunk/drivers/pcmcia/i82092aa.h | 2 - trunk/drivers/pcmcia/i82365.c | 39 +- trunk/drivers/pcmcia/m8xx_pcmcia.c | 3 +- trunk/drivers/pcmcia/pcmcia_ioctl.c | 154 +- trunk/drivers/pcmcia/pcmcia_resource.c | 81 +- trunk/drivers/pcmcia/pxa2xx_base.c | 1 - trunk/drivers/pcmcia/rsrc_mgr.c | 86 +- trunk/drivers/pcmcia/rsrc_nonstatic.c | 57 +- trunk/drivers/pcmcia/soc_common.h | 1 - trunk/drivers/pcmcia/socket_sysfs.c | 8 +- trunk/drivers/pcmcia/ti113x.h | 4 +- trunk/drivers/rtc/rtc-at32ap700x.c | 3 + trunk/drivers/s390/block/dasd.c | 18 +- trunk/drivers/s390/block/dasd_3990_erp.c | 15 +- trunk/drivers/s390/block/dasd_eckd.c | 12 +- trunk/drivers/s390/block/dasd_fba.c | 12 +- trunk/drivers/s390/block/dcssblk.c | 22 +- trunk/drivers/s390/block/xpram.c | 18 +- trunk/drivers/s390/char/con3215.c | 38 +- trunk/drivers/s390/char/con3270.c | 6 +- trunk/drivers/s390/char/fs3270.c | 11 +- trunk/drivers/s390/char/monreader.c | 74 +- trunk/drivers/s390/char/raw3270.c | 28 +- trunk/drivers/s390/char/sclp.c | 12 +- trunk/drivers/s390/char/sclp_cmd.c | 343 +++- trunk/drivers/s390/char/sclp_con.c | 5 +- trunk/drivers/s390/char/sclp_config.c | 17 +- trunk/drivers/s390/char/sclp_cpi_sys.c | 57 +- trunk/drivers/s390/char/sclp_quiesce.c | 8 +- trunk/drivers/s390/char/sclp_rw.c | 2 - trunk/drivers/s390/char/sclp_sdias.c | 4 +- trunk/drivers/s390/char/sclp_tty.c | 261 +-- trunk/drivers/s390/char/sclp_tty.h | 53 - trunk/drivers/s390/char/sclp_vt220.c | 62 +- trunk/drivers/s390/char/tape_34xx.c | 12 +- trunk/drivers/s390/char/tape_3590.c | 21 +- trunk/drivers/s390/char/tape_core.c | 15 +- trunk/drivers/s390/char/tty3270.c | 9 +- trunk/drivers/s390/char/vmcp.c | 37 +- trunk/drivers/s390/char/vmlogrdr.c | 29 +- trunk/drivers/s390/char/vmur.c | 5 +- trunk/drivers/s390/char/vmwatchdog.c | 16 +- trunk/drivers/s390/char/zcore.c | 31 +- trunk/drivers/s390/cio/Makefile | 4 +- trunk/drivers/s390/cio/airq.c | 45 +- trunk/drivers/s390/cio/chp.c | 116 +- trunk/drivers/s390/cio/chp.h | 15 +- trunk/drivers/s390/cio/chsc.c | 379 ++-- trunk/drivers/s390/cio/chsc.h | 26 +- trunk/drivers/s390/cio/chsc_sch.c | 820 +++++++++ trunk/drivers/s390/cio/chsc_sch.h | 13 + trunk/drivers/s390/cio/cio.c | 282 +-- trunk/drivers/s390/cio/cio.h | 14 +- trunk/drivers/s390/cio/cmf.c | 20 +- trunk/drivers/s390/cio/css.c | 283 ++- trunk/drivers/s390/cio/css.h | 49 +- trunk/drivers/s390/cio/device.c | 476 +++-- trunk/drivers/s390/cio/device.h | 7 +- trunk/drivers/s390/cio/device_fsm.c | 210 +-- trunk/drivers/s390/cio/device_id.c | 16 +- trunk/drivers/s390/cio/device_ops.c | 134 +- trunk/drivers/s390/cio/device_pgid.c | 26 +- trunk/drivers/s390/cio/device_status.c | 133 +- trunk/drivers/s390/cio/fcx.c | 350 ++++ trunk/drivers/s390/cio/idset.h | 2 +- trunk/drivers/s390/cio/io_sch.h | 48 +- trunk/drivers/s390/cio/ioasm.h | 2 +- trunk/drivers/s390/cio/isc.c | 68 + trunk/drivers/s390/cio/itcw.c | 327 ++++ trunk/drivers/s390/cio/qdio.c | 35 +- trunk/drivers/s390/cio/qdio.h | 6 +- trunk/drivers/s390/cio/scsw.c | 843 +++++++++ trunk/drivers/s390/crypto/ap_bus.c | 63 +- trunk/drivers/s390/crypto/ap_bus.h | 2 + trunk/drivers/s390/crypto/zcrypt_api.c | 24 +- trunk/drivers/s390/crypto/zcrypt_api.h | 28 - trunk/drivers/s390/crypto/zcrypt_cex2a.c | 4 +- trunk/drivers/s390/crypto/zcrypt_error.h | 6 - trunk/drivers/s390/crypto/zcrypt_pcica.c | 3 - trunk/drivers/s390/crypto/zcrypt_pcicc.c | 15 +- trunk/drivers/s390/crypto/zcrypt_pcixcc.c | 69 +- trunk/drivers/s390/net/claw.c | 77 +- trunk/drivers/s390/net/ctcm_fsms.c | 12 +- trunk/drivers/s390/net/ctcm_main.c | 28 +- trunk/drivers/s390/net/cu3088.c | 2 - trunk/drivers/s390/net/cu3088.h | 3 - trunk/drivers/s390/net/lcs.c | 44 +- trunk/drivers/s390/net/netiucv.c | 61 +- trunk/drivers/s390/net/qeth_core_main.c | 15 +- trunk/drivers/s390/net/qeth_l3_main.c | 9 +- trunk/drivers/s390/net/smsgiucv.c | 10 +- trunk/drivers/s390/s390mach.c | 106 +- trunk/drivers/s390/s390mach.h | 10 + trunk/drivers/scsi/sg.c | 44 +- trunk/drivers/scsi/sr.c | 20 +- trunk/drivers/serial/atmel_serial.c | 17 +- trunk/drivers/video/Kconfig | 2 +- trunk/drivers/xen/xenbus/xenbus_client.c | 2 +- trunk/drivers/xen/xenbus/xenbus_xs.c | 10 +- trunk/fs/Makefile | 1 + trunk/fs/bio-integrity.c | 719 ++++++++ trunk/fs/bio.c | 88 +- trunk/fs/namespace.c | 14 +- trunk/fs/proc/base.c | 9 +- trunk/fs/proc/task_mmu.c | 6 +- trunk/fs/proc/task_nommu.c | 2 +- trunk/fs/ramfs/file-mmu.c | 1 + trunk/fs/ramfs/file-nommu.c | 1 + trunk/fs/splice.c | 17 +- trunk/include/Kbuild | 1 + trunk/include/asm-avr32/arch-at32ap/board.h | 10 +- trunk/include/asm-avr32/arch-at32ap/init.h | 4 - trunk/include/asm-avr32/arch-at32ap/pm.h | 3 + trunk/include/asm-avr32/arch-at32ap/sram.h | 30 + trunk/include/asm-avr32/mmu_context.h | 1 - trunk/include/asm-avr32/pci.h | 2 + trunk/include/asm-avr32/pgalloc.h | 68 +- trunk/include/asm-avr32/pgtable.h | 34 +- trunk/include/asm-avr32/thread_info.h | 1 + trunk/include/asm-avr32/tlbflush.h | 1 - .../include/asm-mips/mach-au1x00/au1xxx_psc.h | 8 + trunk/include/asm-s390/Kbuild | 3 + trunk/include/asm-s390/airq.h | 4 +- trunk/include/asm-s390/ccwdev.h | 12 + trunk/include/asm-s390/chpid.h | 5 +- trunk/include/asm-s390/chsc.h | 127 ++ trunk/include/asm-s390/cio.h | 114 +- trunk/include/asm-s390/elf.h | 51 +- trunk/include/asm-s390/etr.h | 45 +- trunk/include/asm-s390/fcx.h | 311 ++++ trunk/include/asm-s390/ipl.h | 17 +- trunk/include/asm-s390/isc.h | 25 + trunk/include/asm-s390/itcw.h | 30 + trunk/include/asm-s390/pgtable.h | 1 + trunk/include/asm-s390/processor.h | 24 +- trunk/include/asm-s390/ptrace.h | 15 + .../s390/cio => include/asm-s390}/schid.h | 18 +- trunk/include/asm-s390/sclp.h | 4 +- trunk/include/asm-s390/setup.h | 12 +- trunk/include/asm-s390/sparsemem.h | 4 +- trunk/include/asm-s390/timer.h | 12 + trunk/include/asm-s390/zcrypt.h | 2 +- trunk/include/crypto/hash.h | 154 ++ trunk/include/crypto/internal/hash.h | 78 + trunk/include/drm/Kbuild | 10 + trunk/{drivers/char => include}/drm/drm.h | 0 trunk/{drivers/char => include}/drm/drmP.h | 0 .../{drivers/char => include}/drm/drm_core.h | 0 .../char => include}/drm/drm_hashtab.h | 0 .../char => include}/drm/drm_memory.h | 0 .../char => include}/drm/drm_memory_debug.h | 0 .../char => include}/drm/drm_os_linux.h | 0 .../char => include}/drm/drm_pciids.h | 0 .../{drivers/char => include}/drm/drm_sarea.h | 0 .../{drivers/char => include}/drm/drm_sman.h | 0 .../{drivers/char => include}/drm/i810_drm.h | 0 .../{drivers/char => include}/drm/i830_drm.h | 0 .../{drivers/char => include}/drm/i915_drm.h | 0 trunk/{drivers/char => include}/drm/mga_drm.h | 0 .../{drivers/char => include}/drm/r128_drm.h | 0 .../char => include}/drm/radeon_drm.h | 0 .../char => include}/drm/savage_drm.h | 0 trunk/{drivers/char => include}/drm/sis_drm.h | 0 trunk/{drivers/char => include}/drm/via_drm.h | 0 trunk/include/linux/bio.h | 130 +- trunk/include/linux/blkdev.h | 163 +- trunk/include/linux/blktrace_api.h | 1 + trunk/include/linux/crypto.h | 48 +- trunk/include/linux/genhd.h | 12 + trunk/include/linux/iocontext.h | 18 + trunk/include/linux/mod_devicetable.h | 9 + trunk/include/linux/ptrace.h | 8 +- trunk/include/linux/security.h | 49 +- trunk/include/pcmcia/bulkmem.h | 41 - trunk/include/pcmcia/cistpl.h | 2 +- trunk/include/pcmcia/cs.h | 3 - trunk/include/pcmcia/cs_types.h | 6 +- trunk/include/pcmcia/ds.h | 19 +- trunk/include/pcmcia/ss.h | 12 +- trunk/include/pcmcia/version.h | 3 - trunk/include/sound/ad1843.h | 46 + trunk/include/sound/control.h | 3 - trunk/include/sound/core.h | 8 +- trunk/include/sound/cs4231-regs.h | 8 + trunk/include/sound/cs4231.h | 3 + trunk/include/sound/emu10k1.h | 1 + trunk/include/sound/seq_kernel.h | 2 +- trunk/include/sound/soc-dapm.h | 42 +- trunk/include/sound/soc.h | 175 +- trunk/include/sound/uda1341.h | 2 - trunk/include/sound/version.h | 4 +- trunk/kernel/exit.c | 1 + trunk/kernel/fork.c | 1 + trunk/kernel/ptrace.c | 15 +- trunk/mm/Kconfig | 4 +- trunk/mm/slub.c | 5 +- trunk/net/iucv/af_iucv.c | 8 +- trunk/net/iucv/iucv.c | 9 +- trunk/scripts/mod/file2alias.c | 12 + trunk/security/Kconfig | 10 +- trunk/security/Makefile | 11 +- trunk/security/capability.c | 1043 ++++++++++- trunk/security/commoncap.c | 3 +- trunk/security/dummy.c | 1251 ------------- trunk/security/root_plug.c | 9 - trunk/security/security.c | 66 +- trunk/security/selinux/hooks.c | 244 ++- trunk/security/selinux/include/audit.h | 4 +- trunk/security/selinux/include/avc.h | 15 +- trunk/security/selinux/include/objsec.h | 1 - trunk/security/selinux/include/security.h | 7 +- trunk/security/selinux/netnode.c | 1 - trunk/security/selinux/netport.c | 3 +- trunk/security/selinux/selinuxfs.c | 15 +- trunk/security/selinux/ss/avtab.c | 2 +- trunk/security/selinux/ss/context.h | 27 +- trunk/security/selinux/ss/mls.c | 19 +- trunk/security/selinux/ss/mls.h | 3 +- trunk/security/selinux/ss/policydb.c | 15 +- trunk/security/selinux/ss/services.c | 450 +++-- trunk/security/selinux/ss/sidtab.c | 76 +- trunk/security/selinux/ss/sidtab.h | 7 +- trunk/security/smack/smack_lsm.c | 28 +- trunk/sound/Kconfig | 34 +- trunk/sound/aoa/Kconfig | 11 +- trunk/sound/aoa/codecs/Kconfig | 4 - trunk/sound/aoa/fabrics/Kconfig | 1 - trunk/sound/aoa/soundbus/Kconfig | 1 - trunk/sound/arm/Kconfig | 21 +- trunk/sound/arm/sa11xx-uda1341.c | 2 - trunk/sound/core/Kconfig | 29 +- trunk/sound/core/control.c | 7 +- trunk/sound/core/init.c | 67 +- trunk/sound/core/memalloc.c | 62 - trunk/sound/core/seq/seq_clientmgr.c | 2 +- trunk/sound/core/seq/seq_device.c | 6 +- trunk/sound/core/sound.c | 8 +- trunk/sound/core/timer.c | 6 +- trunk/sound/drivers/Kconfig | 91 +- trunk/sound/drivers/vx/vx_hwdep.c | 2 +- trunk/sound/i2c/cs8427.c | 6 +- trunk/sound/i2c/l3/uda1341.c | 2 - trunk/sound/isa/Kconfig | 61 +- trunk/sound/isa/cs423x/cs4231_lib.c | 118 +- trunk/sound/isa/opti9xx/opti92x-ad1848.c | 1126 +----------- trunk/sound/isa/sb/Makefile | 2 - trunk/sound/isa/wavefront/wavefront_synth.c | 2 +- trunk/sound/mips/Kconfig | 27 +- trunk/sound/mips/Makefile | 4 + trunk/sound/mips/ad1843.c | 561 ++++++ trunk/sound/mips/hal2.c | 947 ++++++++++ trunk/sound/mips/hal2.h | 245 +++ trunk/sound/mips/sgio2audio.c | 1006 ++++++++++ trunk/sound/oss/Kconfig | 49 +- trunk/sound/oss/dmasound/dmasound_core.c | 7 +- trunk/sound/oss/dmasound/dmasound_paula.c | 2 +- trunk/sound/oss/dmasound/dmasound_q40.c | 2 +- trunk/sound/oss/msnd.c | 2 - trunk/sound/oss/msnd.h | 2 - trunk/sound/oss/msnd_classic.h | 2 - trunk/sound/oss/msnd_pinnacle.c | 5 - trunk/sound/oss/msnd_pinnacle.h | 2 - trunk/sound/parisc/Kconfig | 13 +- trunk/sound/pci/Kconfig | 104 +- trunk/sound/pci/Makefile | 2 +- trunk/sound/pci/ac97/Makefile | 12 +- trunk/sound/pci/ac97/ac97_codec.c | 11 +- trunk/sound/pci/ac97/ac97_patch.c | 81 +- trunk/sound/pci/{ac97 => }/ak4531_codec.c | 34 +- trunk/sound/pci/au88x0/au88x0_game.c | 2 - trunk/sound/pci/azt3328.c | 1235 ++++++++----- trunk/sound/pci/azt3328.h | 207 ++- trunk/sound/pci/ca0106/ca0106_main.c | 5 + trunk/sound/pci/emu10k1/emu10k1_main.c | 1 + trunk/sound/pci/emu10k1/emumixer.c | 13 +- trunk/sound/pci/emu10k1/memory.c | 69 +- trunk/sound/pci/hda/hda_codec.c | 2 +- trunk/sound/pci/hda/hda_codec.h | 2 +- trunk/sound/pci/hda/hda_hwdep.c | 2 +- trunk/sound/pci/hda/hda_intel.c | 306 +++- trunk/sound/pci/hda/hda_proc.c | 5 +- trunk/sound/pci/hda/patch_analog.c | 38 +- trunk/sound/pci/hda/patch_conexant.c | 33 +- trunk/sound/pci/hda/patch_realtek.c | 548 +++++- trunk/sound/pci/hda/patch_sigmatel.c | 71 +- trunk/sound/pci/ice1712/envy24ht.h | 10 +- trunk/sound/pci/ice1712/ice1712.h | 2 + trunk/sound/pci/ice1712/ice1724.c | 213 ++- trunk/sound/pci/maestro3.c | 42 +- trunk/sound/pci/nm256/nm256.c | 4 +- trunk/sound/pci/oxygen/hifier.c | 33 +- trunk/sound/pci/oxygen/oxygen.c | 76 +- trunk/sound/pci/oxygen/oxygen.h | 14 + trunk/sound/pci/oxygen/oxygen_io.c | 22 +- trunk/sound/pci/oxygen/oxygen_lib.c | 106 +- trunk/sound/pci/oxygen/oxygen_pcm.c | 53 +- trunk/sound/pci/oxygen/virtuoso.c | 252 +-- trunk/sound/pci/pcxhr/pcxhr.c | 4 +- trunk/sound/pci/pcxhr/pcxhr_core.c | 18 +- trunk/sound/pci/trident/trident_main.c | 5 +- trunk/sound/pci/trident/trident_memory.c | 178 -- trunk/sound/pci/via82xx.c | 6 + trunk/sound/pci/ymfpci/ymfpci_main.c | 2 + trunk/sound/pcmcia/Kconfig | 15 +- trunk/sound/pcmcia/vx/vxp_ops.c | 2 +- trunk/sound/ppc/Kconfig | 26 +- trunk/sound/ppc/daca.c | 2 - trunk/sound/ppc/tumbler.c | 2 - trunk/sound/sh/Kconfig | 16 +- trunk/sound/soc/Kconfig | 19 +- trunk/sound/soc/Makefile | 3 +- trunk/sound/soc/at32/Kconfig | 34 + trunk/sound/soc/at32/Makefile | 11 + trunk/sound/soc/at32/at32-pcm.c | 491 +++++ trunk/sound/soc/at32/at32-pcm.h | 79 + trunk/sound/soc/at32/at32-ssc.c | 849 +++++++++ trunk/sound/soc/at32/at32-ssc.h | 59 + trunk/sound/soc/at32/playpaq_wm8510.c | 522 ++++++ trunk/sound/soc/at91/Kconfig | 2 +- trunk/sound/soc/at91/at91-pcm.c | 6 +- trunk/sound/soc/at91/at91-ssc.c | 12 +- trunk/sound/soc/at91/at91-ssc.h | 2 +- trunk/sound/soc/at91/eti_b1_wm8731.c | 53 +- trunk/sound/soc/au1x/Kconfig | 32 + trunk/sound/soc/au1x/Makefile | 13 + trunk/sound/soc/au1x/dbdma2.c | 421 +++++ trunk/sound/soc/au1x/psc-ac97.c | 387 ++++ trunk/sound/soc/au1x/psc-i2s.c | 414 +++++ trunk/sound/soc/au1x/psc.h | 53 + trunk/sound/soc/au1x/sample-ac97.c | 144 ++ trunk/sound/soc/codecs/Kconfig | 22 +- trunk/sound/soc/codecs/Makefile | 8 + trunk/sound/soc/codecs/ac97.c | 31 +- trunk/sound/soc/codecs/ac97.h | 2 +- trunk/sound/soc/codecs/ak4535.c | 696 +++++++ trunk/sound/soc/codecs/ak4535.h | 46 + trunk/sound/soc/codecs/cs4270.c | 8 +- trunk/sound/soc/codecs/cs4270.h | 2 +- trunk/sound/soc/codecs/tlv320aic3x.c | 384 ++-- trunk/sound/soc/codecs/tlv320aic3x.h | 55 +- trunk/sound/soc/codecs/uda1380.c | 852 +++++++++ trunk/sound/soc/codecs/uda1380.h | 89 + trunk/sound/soc/codecs/wm8510.c | 817 +++++++++ trunk/sound/soc/codecs/wm8510.h | 103 ++ trunk/sound/soc/codecs/wm8731.c | 79 +- trunk/sound/soc/codecs/wm8731.h | 2 +- trunk/sound/soc/codecs/wm8750.c | 87 +- trunk/sound/soc/codecs/wm8750.h | 2 +- trunk/sound/soc/codecs/wm8753.c | 183 +- trunk/sound/soc/codecs/wm8753.h | 2 +- trunk/sound/soc/codecs/wm8990.c | 1626 +++++++++++++++++ trunk/sound/soc/codecs/wm8990.h | 832 +++++++++ trunk/sound/soc/codecs/wm9712.c | 53 +- trunk/sound/soc/codecs/wm9712.h | 2 +- trunk/sound/soc/codecs/wm9713.c | 79 +- trunk/sound/soc/codecs/wm9713.h | 2 +- trunk/sound/soc/davinci/Kconfig | 2 +- trunk/sound/soc/davinci/davinci-evm.c | 40 +- trunk/sound/soc/davinci/davinci-i2s.c | 16 +- trunk/sound/soc/davinci/davinci-i2s.h | 2 +- trunk/sound/soc/davinci/davinci-pcm.c | 2 +- trunk/sound/soc/fsl/Kconfig | 6 +- trunk/sound/soc/fsl/fsl_dma.c | 2 +- trunk/sound/soc/fsl/fsl_dma.h | 2 +- trunk/sound/soc/fsl/fsl_ssi.c | 24 +- trunk/sound/soc/fsl/fsl_ssi.h | 4 +- trunk/sound/soc/fsl/mpc8610_hpcd.c | 72 +- trunk/sound/soc/omap/Kconfig | 4 - trunk/sound/soc/omap/n810.c | 106 +- trunk/sound/soc/omap/omap-mcbsp.c | 16 +- trunk/sound/soc/omap/omap-mcbsp.h | 2 +- trunk/sound/soc/omap/omap-pcm.c | 2 +- trunk/sound/soc/pxa/Kconfig | 11 +- trunk/sound/soc/pxa/Makefile | 3 +- trunk/sound/soc/pxa/corgi.c | 70 +- trunk/sound/soc/pxa/em-x270.c | 102 ++ trunk/sound/soc/pxa/poodle.c | 50 +- trunk/sound/soc/pxa/pxa2xx-ac97.c | 18 +- trunk/sound/soc/pxa/pxa2xx-ac97.h | 2 +- trunk/sound/soc/pxa/pxa2xx-i2s.c | 17 +- trunk/sound/soc/pxa/pxa2xx-i2s.h | 2 +- trunk/sound/soc/pxa/pxa2xx-pcm.c | 2 +- trunk/sound/soc/pxa/spitz.c | 91 +- trunk/sound/soc/pxa/tosa.c | 47 +- trunk/sound/soc/s3c24xx/Kconfig | 4 +- trunk/sound/soc/s3c24xx/neo1973_wm8753.c | 237 ++- trunk/sound/soc/s3c24xx/s3c2412-i2s.c | 15 +- trunk/sound/soc/s3c24xx/s3c2412-i2s.h | 2 +- trunk/sound/soc/s3c24xx/s3c2443-ac97.c | 15 +- trunk/sound/soc/s3c24xx/s3c24xx-ac97.h | 2 +- trunk/sound/soc/s3c24xx/s3c24xx-i2s.c | 25 +- trunk/sound/soc/s3c24xx/s3c24xx-i2s.h | 2 +- trunk/sound/soc/s3c24xx/s3c24xx-pcm.c | 6 +- trunk/sound/soc/s3c24xx/smdk2443_wm9710.c | 3 - trunk/sound/soc/sh/Kconfig | 5 +- trunk/sound/soc/sh/dma-sh7760.c | 2 +- trunk/sound/soc/sh/hac.c | 2 +- trunk/sound/soc/sh/sh7760-ac97.c | 4 +- trunk/sound/soc/sh/ssi.c | 8 +- trunk/sound/soc/soc-core.c | 443 ++++- trunk/sound/soc/soc-dapm.c | 344 +++- trunk/sound/sparc/Kconfig | 17 +- trunk/sound/sparc/dbri.c | 2 +- trunk/sound/spi/Kconfig | 13 +- trunk/sound/usb/Kconfig | 16 +- trunk/sound/usb/caiaq/caiaq-audio.c | 1 + trunk/sound/usb/caiaq/caiaq-device.c | 12 +- trunk/sound/usb/caiaq/caiaq-device.h | 1 + trunk/sound/usb/usbaudio.c | 4 - trunk/sound/usb/usbquirks.h | 38 + 639 files changed, 36844 insertions(+), 10443 deletions(-) create mode 100644 trunk/Documentation/ABI/testing/sysfs-bus-css create mode 100644 trunk/Documentation/block/data-integrity.txt rename trunk/arch/avr32/mach-at32ap/{at32ap.c => pdc.c} (90%) create mode 100644 trunk/arch/avr32/mach-at32ap/pm.c create mode 100644 trunk/arch/avr32/mach-at32ap/sdramc.h delete mode 100644 trunk/arch/s390/kernel/binfmt_elf32.c create mode 100644 trunk/arch/s390/kernel/mem_detect.c create mode 100644 trunk/block/blk-integrity.c create mode 100644 trunk/block/cmd-filter.c create mode 100644 trunk/crypto/ahash.c create mode 100644 trunk/crypto/prng.c create mode 100644 trunk/crypto/prng.h create mode 100644 trunk/crypto/ripemd.h create mode 100644 trunk/crypto/rmd128.c create mode 100644 trunk/crypto/rmd160.c create mode 100644 trunk/crypto/rmd256.c create mode 100644 trunk/crypto/rmd320.c delete mode 100644 trunk/drivers/char/drm/Makefile create mode 100644 trunk/drivers/crypto/ixp4xx_crypto.c create mode 100644 trunk/drivers/crypto/talitos.c create mode 100644 trunk/drivers/crypto/talitos.h create mode 100644 trunk/drivers/gpu/Makefile rename trunk/drivers/{char => gpu}/drm/Kconfig (100%) create mode 100644 trunk/drivers/gpu/drm/Makefile rename trunk/drivers/{char => gpu}/drm/README.drm (100%) rename trunk/drivers/{char => gpu}/drm/ati_pcigart.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_agpsupport.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_auth.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_bufs.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_context.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_dma.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_drawable.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_drv.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_fops.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_hashtab.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_ioc32.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_ioctl.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_irq.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_lock.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_memory.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_mm.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_pci.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_proc.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_scatter.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_sman.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_stub.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_sysfs.c (100%) rename trunk/drivers/{char => gpu}/drm/drm_vm.c (100%) create mode 100644 trunk/drivers/gpu/drm/i810/Makefile rename trunk/drivers/{char/drm => gpu/drm/i810}/i810_dma.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i810}/i810_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i810}/i810_drv.h (100%) create mode 100644 trunk/drivers/gpu/drm/i830/Makefile rename trunk/drivers/{char/drm => gpu/drm/i830}/i830_dma.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i830}/i830_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i830}/i830_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/i830}/i830_irq.c (100%) create mode 100644 trunk/drivers/gpu/drm/i915/Makefile rename trunk/drivers/{char/drm => gpu/drm/i915}/i915_dma.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i915}/i915_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i915}/i915_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/i915}/i915_ioc32.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i915}/i915_irq.c (100%) rename trunk/drivers/{char/drm => gpu/drm/i915}/i915_mem.c (100%) create mode 100644 trunk/drivers/gpu/drm/mga/Makefile rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_dma.c (100%) rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_ioc32.c (100%) rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_irq.c (100%) rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_state.c (100%) rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_ucode.h (100%) rename trunk/drivers/{char/drm => gpu/drm/mga}/mga_warp.c (100%) create mode 100644 trunk/drivers/gpu/drm/r128/Makefile rename trunk/drivers/{char/drm => gpu/drm/r128}/r128_cce.c (100%) rename trunk/drivers/{char/drm => gpu/drm/r128}/r128_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/r128}/r128_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/r128}/r128_ioc32.c (100%) rename trunk/drivers/{char/drm => gpu/drm/r128}/r128_irq.c (100%) rename trunk/drivers/{char/drm => gpu/drm/r128}/r128_state.c (100%) create mode 100644 trunk/drivers/gpu/drm/radeon/Makefile rename trunk/drivers/{char/drm => gpu/drm/radeon}/r300_cmdbuf.c (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/r300_reg.h (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_cp.c (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_ioc32.c (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_irq.c (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_mem.c (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_microcode.h (100%) rename trunk/drivers/{char/drm => gpu/drm/radeon}/radeon_state.c (100%) create mode 100644 trunk/drivers/gpu/drm/savage/Makefile rename trunk/drivers/{char/drm => gpu/drm/savage}/savage_bci.c (100%) rename trunk/drivers/{char/drm => gpu/drm/savage}/savage_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/savage}/savage_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/savage}/savage_state.c (100%) create mode 100644 trunk/drivers/gpu/drm/sis/Makefile rename trunk/drivers/{char/drm => gpu/drm/sis}/sis_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/sis}/sis_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/sis}/sis_mm.c (100%) create mode 100644 trunk/drivers/gpu/drm/tdfx/Makefile rename trunk/drivers/{char/drm => gpu/drm/tdfx}/tdfx_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/tdfx}/tdfx_drv.h (100%) create mode 100644 trunk/drivers/gpu/drm/via/Makefile rename trunk/drivers/{char/drm => gpu/drm/via}/via_3d_reg.h (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_dma.c (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_dmablit.c (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_dmablit.h (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_drv.c (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_drv.h (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_irq.c (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_map.c (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_mm.c (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_verifier.c (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_verifier.h (100%) rename trunk/drivers/{char/drm => gpu/drm/via}/via_video.c (100%) create mode 100644 trunk/drivers/pcmcia/bfin_cf_pcmcia.c create mode 100644 trunk/drivers/s390/cio/chsc_sch.c create mode 100644 trunk/drivers/s390/cio/chsc_sch.h create mode 100644 trunk/drivers/s390/cio/fcx.c create mode 100644 trunk/drivers/s390/cio/isc.c create mode 100644 trunk/drivers/s390/cio/itcw.c create mode 100644 trunk/drivers/s390/cio/scsw.c create mode 100644 trunk/fs/bio-integrity.c create mode 100644 trunk/include/asm-avr32/arch-at32ap/sram.h create mode 100644 trunk/include/asm-s390/chsc.h create mode 100644 trunk/include/asm-s390/fcx.h create mode 100644 trunk/include/asm-s390/isc.h create mode 100644 trunk/include/asm-s390/itcw.h rename trunk/{drivers/s390/cio => include/asm-s390}/schid.h (65%) create mode 100644 trunk/include/crypto/hash.h create mode 100644 trunk/include/crypto/internal/hash.h create mode 100644 trunk/include/drm/Kbuild rename trunk/{drivers/char => include}/drm/drm.h (100%) rename trunk/{drivers/char => include}/drm/drmP.h (100%) rename trunk/{drivers/char => include}/drm/drm_core.h (100%) rename trunk/{drivers/char => include}/drm/drm_hashtab.h (100%) rename trunk/{drivers/char => include}/drm/drm_memory.h (100%) rename trunk/{drivers/char => include}/drm/drm_memory_debug.h (100%) rename trunk/{drivers/char => include}/drm/drm_os_linux.h (100%) rename trunk/{drivers/char => include}/drm/drm_pciids.h (100%) rename trunk/{drivers/char => include}/drm/drm_sarea.h (100%) rename trunk/{drivers/char => include}/drm/drm_sman.h (100%) rename trunk/{drivers/char => include}/drm/i810_drm.h (100%) rename trunk/{drivers/char => include}/drm/i830_drm.h (100%) rename trunk/{drivers/char => include}/drm/i915_drm.h (100%) rename trunk/{drivers/char => include}/drm/mga_drm.h (100%) rename trunk/{drivers/char => include}/drm/r128_drm.h (100%) rename trunk/{drivers/char => include}/drm/radeon_drm.h (100%) rename trunk/{drivers/char => include}/drm/savage_drm.h (100%) rename trunk/{drivers/char => include}/drm/sis_drm.h (100%) rename trunk/{drivers/char => include}/drm/via_drm.h (100%) delete mode 100644 trunk/include/pcmcia/bulkmem.h delete mode 100644 trunk/include/pcmcia/version.h create mode 100644 trunk/include/sound/ad1843.h delete mode 100644 trunk/security/dummy.c create mode 100644 trunk/sound/mips/ad1843.c create mode 100644 trunk/sound/mips/hal2.c create mode 100644 trunk/sound/mips/hal2.h create mode 100644 trunk/sound/mips/sgio2audio.c rename trunk/sound/pci/{ac97 => }/ak4531_codec.c (96%) create mode 100644 trunk/sound/soc/at32/Kconfig create mode 100644 trunk/sound/soc/at32/Makefile create mode 100644 trunk/sound/soc/at32/at32-pcm.c create mode 100644 trunk/sound/soc/at32/at32-pcm.h create mode 100644 trunk/sound/soc/at32/at32-ssc.c create mode 100644 trunk/sound/soc/at32/at32-ssc.h create mode 100644 trunk/sound/soc/at32/playpaq_wm8510.c create mode 100644 trunk/sound/soc/au1x/Kconfig create mode 100644 trunk/sound/soc/au1x/Makefile create mode 100644 trunk/sound/soc/au1x/dbdma2.c create mode 100644 trunk/sound/soc/au1x/psc-ac97.c create mode 100644 trunk/sound/soc/au1x/psc-i2s.c create mode 100644 trunk/sound/soc/au1x/psc.h create mode 100644 trunk/sound/soc/au1x/sample-ac97.c create mode 100644 trunk/sound/soc/codecs/ak4535.c create mode 100644 trunk/sound/soc/codecs/ak4535.h create mode 100644 trunk/sound/soc/codecs/uda1380.c create mode 100644 trunk/sound/soc/codecs/uda1380.h create mode 100644 trunk/sound/soc/codecs/wm8510.c create mode 100644 trunk/sound/soc/codecs/wm8510.h create mode 100644 trunk/sound/soc/codecs/wm8990.c create mode 100644 trunk/sound/soc/codecs/wm8990.h create mode 100644 trunk/sound/soc/pxa/em-x270.c diff --git a/[refs] b/[refs] index 38164746c24d..f3c2efb64fbe 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d59fdcf2ac501de99c3dfb452af5e254d4342886 +refs/heads/master: a3da5bf84a97d48cfaf66c6842470fc403da5121 diff --git a/trunk/Documentation/ABI/testing/sysfs-block b/trunk/Documentation/ABI/testing/sysfs-block index 4bd9ea539129..44f52a4f5903 100644 --- a/trunk/Documentation/ABI/testing/sysfs-block +++ b/trunk/Documentation/ABI/testing/sysfs-block @@ -26,3 +26,37 @@ Description: I/O statistics of partition . The format is the same as the above-written /sys/block//stat format. + + +What: /sys/block//integrity/format +Date: June 2008 +Contact: Martin K. Petersen +Description: + Metadata format for integrity capable block device. + E.g. T10-DIF-TYPE1-CRC. + + +What: /sys/block//integrity/read_verify +Date: June 2008 +Contact: Martin K. Petersen +Description: + Indicates whether the block layer should verify the + integrity of read requests serviced by devices that + support sending integrity metadata. + + +What: /sys/block//integrity/tag_size +Date: June 2008 +Contact: Martin K. Petersen +Description: + Number of bytes of integrity tag space available per + 512 bytes of data. + + +What: /sys/block//integrity/write_generate +Date: June 2008 +Contact: Martin K. Petersen +Description: + Indicates whether the block layer should automatically + generate checksums for write requests bound for + devices that support receiving integrity metadata. diff --git a/trunk/Documentation/ABI/testing/sysfs-bus-css b/trunk/Documentation/ABI/testing/sysfs-bus-css new file mode 100644 index 000000000000..b585ec258a08 --- /dev/null +++ b/trunk/Documentation/ABI/testing/sysfs-bus-css @@ -0,0 +1,35 @@ +What: /sys/bus/css/devices/.../type +Date: March 2008 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the subchannel type, as reported by the hardware. + This attribute is present for all subchannel types. + +What: /sys/bus/css/devices/.../modalias +Date: March 2008 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the module alias as reported with uevents. + It is of the format css:t and present for all + subchannel types. + +What: /sys/bus/css/drivers/io_subchannel/.../chpids +Date: December 2002 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the ids of the channel paths used by this + subchannel, as reported by the channel subsystem + during subchannel recognition. + Note: This is an I/O-subchannel specific attribute. +Users: s390-tools, HAL + +What: /sys/bus/css/drivers/io_subchannel/.../pimpampom +Date: December 2002 +Contact: Cornelia Huck + linux-s390@vger.kernel.org +Description: Contains the PIM/PAM/POM values, as reported by the + channel subsystem when last queried by the common I/O + layer (this implies that this attribute is not neccessarily + in sync with the values current in the channel subsystem). + Note: This is an I/O-subchannel specific attribute. +Users: s390-tools, HAL diff --git a/trunk/Documentation/block/data-integrity.txt b/trunk/Documentation/block/data-integrity.txt new file mode 100644 index 000000000000..e9dc8d86adc7 --- /dev/null +++ b/trunk/Documentation/block/data-integrity.txt @@ -0,0 +1,327 @@ +---------------------------------------------------------------------- +1. INTRODUCTION + +Modern filesystems feature checksumming of data and metadata to +protect against data corruption. However, the detection of the +corruption is done at read time which could potentially be months +after the data was written. At that point the original data that the +application tried to write is most likely lost. + +The solution is to ensure that the disk is actually storing what the +application meant it to. Recent additions to both the SCSI family +protocols (SBC Data Integrity Field, SCC protection proposal) as well +as SATA/T13 (External Path Protection) try to remedy this by adding +support for appending integrity metadata to an I/O. The integrity +metadata (or protection information in SCSI terminology) includes a +checksum for each sector as well as an incrementing counter that +ensures the individual sectors are written in the right order. And +for some protection schemes also that the I/O is written to the right +place on disk. + +Current storage controllers and devices implement various protective +measures, for instance checksumming and scrubbing. But these +technologies are working in their own isolated domains or at best +between adjacent nodes in the I/O path. The interesting thing about +DIF and the other integrity extensions is that the protection format +is well defined and every node in the I/O path can verify the +integrity of the I/O and reject it if corruption is detected. This +allows not only corruption prevention but also isolation of the point +of failure. + +---------------------------------------------------------------------- +2. THE DATA INTEGRITY EXTENSIONS + +As written, the protocol extensions only protect the path between +controller and storage device. However, many controllers actually +allow the operating system to interact with the integrity metadata +(IMD). We have been working with several FC/SAS HBA vendors to enable +the protection information to be transferred to and from their +controllers. + +The SCSI Data Integrity Field works by appending 8 bytes of protection +information to each sector. The data + integrity metadata is stored +in 520 byte sectors on disk. Data + IMD are interleaved when +transferred between the controller and target. The T13 proposal is +similar. + +Because it is highly inconvenient for operating systems to deal with +520 (and 4104) byte sectors, we approached several HBA vendors and +encouraged them to allow separation of the data and integrity metadata +scatter-gather lists. + +The controller will interleave the buffers on write and split them on +read. This means that the Linux can DMA the data buffers to and from +host memory without changes to the page cache. + +Also, the 16-bit CRC checksum mandated by both the SCSI and SATA specs +is somewhat heavy to compute in software. Benchmarks found that +calculating this checksum had a significant impact on system +performance for a number of workloads. Some controllers allow a +lighter-weight checksum to be used when interfacing with the operating +system. Emulex, for instance, supports the TCP/IP checksum instead. +The IP checksum received from the OS is converted to the 16-bit CRC +when writing and vice versa. This allows the integrity metadata to be +generated by Linux or the application at very low cost (comparable to +software RAID5). + +The IP checksum is weaker than the CRC in terms of detecting bit +errors. However, the strength is really in the separation of the data +buffers and the integrity metadata. These two distinct buffers much +match up for an I/O to complete. + +The separation of the data and integrity metadata buffers as well as +the choice in checksums is referred to as the Data Integrity +Extensions. As these extensions are outside the scope of the protocol +bodies (T10, T13), Oracle and its partners are trying to standardize +them within the Storage Networking Industry Association. + +---------------------------------------------------------------------- +3. KERNEL CHANGES + +The data integrity framework in Linux enables protection information +to be pinned to I/Os and sent to/received from controllers that +support it. + +The advantage to the integrity extensions in SCSI and SATA is that +they enable us to protect the entire path from application to storage +device. However, at the same time this is also the biggest +disadvantage. It means that the protection information must be in a +format that can be understood by the disk. + +Generally Linux/POSIX applications are agnostic to the intricacies of +the storage devices they are accessing. The virtual filesystem switch +and the block layer make things like hardware sector size and +transport protocols completely transparent to the application. + +However, this level of detail is required when preparing the +protection information to send to a disk. Consequently, the very +concept of an end-to-end protection scheme is a layering violation. +It is completely unreasonable for an application to be aware whether +it is accessing a SCSI or SATA disk. + +The data integrity support implemented in Linux attempts to hide this +from the application. As far as the application (and to some extent +the kernel) is concerned, the integrity metadata is opaque information +that's attached to the I/O. + +The current implementation allows the block layer to automatically +generate the protection information for any I/O. Eventually the +intent is to move the integrity metadata calculation to userspace for +user data. Metadata and other I/O that originates within the kernel +will still use the automatic generation interface. + +Some storage devices allow each hardware sector to be tagged with a +16-bit value. The owner of this tag space is the owner of the block +device. I.e. the filesystem in most cases. The filesystem can use +this extra space to tag sectors as they see fit. Because the tag +space is limited, the block interface allows tagging bigger chunks by +way of interleaving. This way, 8*16 bits of information can be +attached to a typical 4KB filesystem block. + +This also means that applications such as fsck and mkfs will need +access to manipulate the tags from user space. A passthrough +interface for this is being worked on. + + +---------------------------------------------------------------------- +4. BLOCK LAYER IMPLEMENTATION DETAILS + +4.1 BIO + +The data integrity patches add a new field to struct bio when +CONFIG_BLK_DEV_INTEGRITY is enabled. bio->bi_integrity is a pointer +to a struct bip which contains the bio integrity payload. Essentially +a bip is a trimmed down struct bio which holds a bio_vec containing +the integrity metadata and the required housekeeping information (bvec +pool, vector count, etc.) + +A kernel subsystem can enable data integrity protection on a bio by +calling bio_integrity_alloc(bio). This will allocate and attach the +bip to the bio. + +Individual pages containing integrity metadata can subsequently be +attached using bio_integrity_add_page(). + +bio_free() will automatically free the bip. + + +4.2 BLOCK DEVICE + +Because the format of the protection data is tied to the physical +disk, each block device has been extended with a block integrity +profile (struct blk_integrity). This optional profile is registered +with the block layer using blk_integrity_register(). + +The profile contains callback functions for generating and verifying +the protection data, as well as getting and setting application tags. +The profile also contains a few constants to aid in completing, +merging and splitting the integrity metadata. + +Layered block devices will need to pick a profile that's appropriate +for all subdevices. blk_integrity_compare() can help with that. DM +and MD linear, RAID0 and RAID1 are currently supported. RAID4/5/6 +will require extra work due to the application tag. + + +---------------------------------------------------------------------- +5.0 BLOCK LAYER INTEGRITY API + +5.1 NORMAL FILESYSTEM + + The normal filesystem is unaware that the underlying block device + is capable of sending/receiving integrity metadata. The IMD will + be automatically generated by the block layer at submit_bio() time + in case of a WRITE. A READ request will cause the I/O integrity + to be verified upon completion. + + IMD generation and verification can be toggled using the + + /sys/block//integrity/write_generate + + and + + /sys/block//integrity/read_verify + + flags. + + +5.2 INTEGRITY-AWARE FILESYSTEM + + A filesystem that is integrity-aware can prepare I/Os with IMD + attached. It can also use the application tag space if this is + supported by the block device. + + + int bdev_integrity_enabled(block_device, int rw); + + bdev_integrity_enabled() will return 1 if the block device + supports integrity metadata transfer for the data direction + specified in 'rw'. + + bdev_integrity_enabled() honors the write_generate and + read_verify flags in sysfs and will respond accordingly. + + + int bio_integrity_prep(bio); + + To generate IMD for WRITE and to set up buffers for READ, the + filesystem must call bio_integrity_prep(bio). + + Prior to calling this function, the bio data direction and start + sector must be set, and the bio should have all data pages + added. It is up to the caller to ensure that the bio does not + change while I/O is in progress. + + bio_integrity_prep() should only be called if + bio_integrity_enabled() returned 1. + + + int bio_integrity_tag_size(bio); + + If the filesystem wants to use the application tag space it will + first have to find out how much storage space is available. + Because tag space is generally limited (usually 2 bytes per + sector regardless of sector size), the integrity framework + supports interleaving the information between the sectors in an + I/O. + + Filesystems can call bio_integrity_tag_size(bio) to find out how + many bytes of storage are available for that particular bio. + + Another option is bdev_get_tag_size(block_device) which will + return the number of available bytes per hardware sector. + + + int bio_integrity_set_tag(bio, void *tag_buf, len); + + After a successful return from bio_integrity_prep(), + bio_integrity_set_tag() can be used to attach an opaque tag + buffer to a bio. Obviously this only makes sense if the I/O is + a WRITE. + + + int bio_integrity_get_tag(bio, void *tag_buf, len); + + Similarly, at READ I/O completion time the filesystem can + retrieve the tag buffer using bio_integrity_get_tag(). + + +6.3 PASSING EXISTING INTEGRITY METADATA + + Filesystems that either generate their own integrity metadata or + are capable of transferring IMD from user space can use the + following calls: + + + struct bip * bio_integrity_alloc(bio, gfp_mask, nr_pages); + + Allocates the bio integrity payload and hangs it off of the bio. + nr_pages indicate how many pages of protection data need to be + stored in the integrity bio_vec list (similar to bio_alloc()). + + The integrity payload will be freed at bio_free() time. + + + int bio_integrity_add_page(bio, page, len, offset); + + Attaches a page containing integrity metadata to an existing + bio. The bio must have an existing bip, + i.e. bio_integrity_alloc() must have been called. For a WRITE, + the integrity metadata in the pages must be in a format + understood by the target device with the notable exception that + the sector numbers will be remapped as the request traverses the + I/O stack. This implies that the pages added using this call + will be modified during I/O! The first reference tag in the + integrity metadata must have a value of bip->bip_sector. + + Pages can be added using bio_integrity_add_page() as long as + there is room in the bip bio_vec array (nr_pages). + + Upon completion of a READ operation, the attached pages will + contain the integrity metadata received from the storage device. + It is up to the receiver to process them and verify data + integrity upon completion. + + +6.4 REGISTERING A BLOCK DEVICE AS CAPABLE OF EXCHANGING INTEGRITY + METADATA + + To enable integrity exchange on a block device the gendisk must be + registered as capable: + + int blk_integrity_register(gendisk, blk_integrity); + + The blk_integrity struct is a template and should contain the + following: + + static struct blk_integrity my_profile = { + .name = "STANDARDSBODY-TYPE-VARIANT-CSUM", + .generate_fn = my_generate_fn, + .verify_fn = my_verify_fn, + .get_tag_fn = my_get_tag_fn, + .set_tag_fn = my_set_tag_fn, + .tuple_size = sizeof(struct my_tuple_size), + .tag_size = , + }; + + 'name' is a text string which will be visible in sysfs. This is + part of the userland API so chose it carefully and never change + it. The format is standards body-type-variant. + E.g. T10-DIF-TYPE1-IP or T13-EPP-0-CRC. + + 'generate_fn' generates appropriate integrity metadata (for WRITE). + + 'verify_fn' verifies that the data buffer matches the integrity + metadata. + + 'tuple_size' must be set to match the size of the integrity + metadata per sector. I.e. 8 for DIF and EPP. + + 'tag_size' must be set to identify how many bytes of tag space + are available per hardware sector. For DIF this is either 2 or + 0 depending on the value of the Control Mode Page ATO bit. + + See 6.2 for a description of get_tag_fn and set_tag_fn. + +---------------------------------------------------------------------- +2007-12-24 Martin K. Petersen diff --git a/trunk/Documentation/ioctl-number.txt b/trunk/Documentation/ioctl-number.txt index 240ce7a56c40..3bb5f466a90d 100644 --- a/trunk/Documentation/ioctl-number.txt +++ b/trunk/Documentation/ioctl-number.txt @@ -117,6 +117,7 @@ Code Seq# Include File Comments 'c' 00-7F linux/comstats.h conflict! 'c' 00-7F linux/coda.h conflict! +'c' 80-9F asm-s390/chsc.h 'd' 00-FF linux/char/drm/drm/h conflict! 'd' 00-DF linux/video_decoder.h conflict! 'd' F0-FF linux/digi1.h diff --git a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt index 0bbee38acd26..72aff61e7315 100644 --- a/trunk/Documentation/sound/alsa/ALSA-Configuration.txt +++ b/trunk/Documentation/sound/alsa/ALSA-Configuration.txt @@ -753,8 +753,11 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. [Multiple options for each card instance] model - force the model name - position_fix - Fix DMA pointer (0 = auto, 1 = none, 2 = POSBUF, 3 = FIFO size) + position_fix - Fix DMA pointer (0 = auto, 1 = use LPIB, 2 = POSBUF) probe_mask - Bitmask to probe codecs (default = -1, meaning all slots) + bdl_pos_adj - Specifies the DMA IRQ timing delay in samples. + Passing -1 will make the driver to choose the appropriate + value based on the controller chip. [Single (global) options] single_cmd - Use single immediate commands to communicate with @@ -845,7 +848,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. ALC269 basic Basic preset - ALC662 + ALC662/663 3stack-dig 3-stack (2-channel) with SPDIF 3stack-6ch 3-stack (6-channel) 3stack-6ch-dig 3-stack (6-channel) with SPDIF @@ -853,6 +856,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. lenovo-101e Lenovo laptop eeepc-p701 ASUS Eeepc P701 eeepc-ep20 ASUS Eeepc EP20 + m51va ASUS M51VA + g71v ASUS G71V + h13 ASUS H13 + g50v ASUS G50V auto auto-config reading BIOS (default) ALC882/885 @@ -1091,7 +1098,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed. This occurs when the access to non-existing or non-working codec slot (likely a modem one) causes a stall of the communication via HD-audio bus. You can see which codec slots are probed by enabling - CONFIG_SND_DEBUG_DETECT, or simply from the file name of the codec + CONFIG_SND_DEBUG_VERBOSE, or simply from the file name of the codec proc files. Then limit the slots to probe by probe_mask option. For example, probe_mask=1 means to probe only the first slot, and probe_mask=4 means only the third slot. @@ -2267,6 +2274,10 @@ case above again, the first two slots are already reserved. If any other driver (e.g. snd-usb-audio) is loaded before snd-interwave or snd-ens1371, it will be assigned to the third or later slot. +When a module name is given with '!', the slot will be given for any +modules but that name. For example, "slots=!snd-pcsp" will reserve +the first slot for any modules but snd-pcsp. + ALSA PCM devices to OSS devices mapping ======================================= diff --git a/trunk/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/trunk/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl index b03df4d4795c..e13c4e67029f 100644 --- a/trunk/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl +++ b/trunk/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl @@ -6127,8 +6127,8 @@ struct _snd_pcm_runtime { snd_printdd() is compiled in only when - CONFIG_SND_DEBUG_DETECT is set. Please note - that DEBUG_DETECT is not set as default + CONFIG_SND_DEBUG_VERBOSE is set. Please note + that CONFIG_SND_DEBUG_VERBOSE is not set as default even if you configure the alsa-driver with option. You need to give explicitly option instead. diff --git a/trunk/arch/avr32/Kconfig b/trunk/arch/avr32/Kconfig index 09ad7995080c..45d63c986015 100644 --- a/trunk/arch/avr32/Kconfig +++ b/trunk/arch/avr32/Kconfig @@ -88,6 +88,7 @@ config PLATFORM_AT32AP select MMU select PERFORMANCE_COUNTERS select HAVE_GPIO_LIB + select GENERIC_ALLOCATOR # # CPU types @@ -147,6 +148,9 @@ config PHYS_OFFSET source "kernel/Kconfig.preempt" +config QUICKLIST + def_bool y + config HAVE_ARCH_BOOTMEM_NODE def_bool n @@ -201,6 +205,11 @@ endmenu menu "Power management options" +source "kernel/power/Kconfig" + +config ARCH_SUSPEND_POSSIBLE + def_bool y + menu "CPU Frequency scaling" source "drivers/cpufreq/Kconfig" diff --git a/trunk/arch/avr32/boards/atngw100/setup.c b/trunk/arch/avr32/boards/atngw100/setup.c index a398be284966..a51bb9fb3c89 100644 --- a/trunk/arch/avr32/boards/atngw100/setup.c +++ b/trunk/arch/avr32/boards/atngw100/setup.c @@ -9,6 +9,8 @@ */ #include #include +#include +#include #include #include #include @@ -25,6 +27,13 @@ #include #include +/* Oscillator frequencies. These are board-specific */ +unsigned long at32_board_osc_rates[3] = { + [0] = 32768, /* 32.768 kHz on RTC osc */ + [1] = 20000000, /* 20 MHz on osc0 */ + [2] = 12000000, /* 12 MHz on osc1 */ +}; + /* Initialized by bootloader-specific startup code. */ struct tag *bootloader_tags __initdata; @@ -140,6 +149,10 @@ static struct platform_device i2c_gpio_device = { }, }; +static struct i2c_board_info __initdata i2c_info[] = { + /* NOTE: original ATtiny24 firmware is at address 0x0b */ +}; + static int __init atngw100_init(void) { unsigned i; @@ -165,12 +178,28 @@ static int __init atngw100_init(void) } platform_device_register(&ngw_gpio_leds); + /* all these i2c/smbus pins should have external pullups for + * open-drain sharing among all I2C devices. SDA and SCL do; + * PB28/EXTINT3 doesn't; it should be SMBALERT# (for PMBus), + * but it's not available off-board. + */ + at32_select_periph(GPIO_PIN_PB(28), 0, AT32_GPIOF_PULLUP); at32_select_gpio(i2c_gpio_data.sda_pin, AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); at32_select_gpio(i2c_gpio_data.scl_pin, AT32_GPIOF_MULTIDRV | AT32_GPIOF_OUTPUT | AT32_GPIOF_HIGH); platform_device_register(&i2c_gpio_device); + i2c_register_board_info(0, i2c_info, ARRAY_SIZE(i2c_info)); return 0; } postcore_initcall(atngw100_init); + +static int __init atngw100_arch_init(void) +{ + /* set_irq_type() after the arch_initcall for EIC has run, and + * before the I2C subsystem could try using this IRQ. + */ + return set_irq_type(AT32_EXTINT(3), IRQ_TYPE_EDGE_FALLING); +} +arch_initcall(atngw100_arch_init); diff --git a/trunk/arch/avr32/boards/atstk1000/atstk1002.c b/trunk/arch/avr32/boards/atstk1000/atstk1002.c index 000eb4220a12..86b363c1c25b 100644 --- a/trunk/arch/avr32/boards/atstk1000/atstk1002.c +++ b/trunk/arch/avr32/boards/atstk1000/atstk1002.c @@ -28,6 +28,12 @@ #include "atstk1000.h" +/* Oscillator frequencies. These are board specific */ +unsigned long at32_board_osc_rates[3] = { + [0] = 32768, /* 32.768 kHz on RTC osc */ + [1] = 20000000, /* 20 MHz on osc0 */ + [2] = 12000000, /* 12 MHz on osc1 */ +}; struct eth_addr { u8 addr[6]; @@ -232,7 +238,7 @@ static int __init atstk1002_init(void) set_hw_addr(at32_add_device_eth(1, ð_data[1])); #else at32_add_device_lcdc(0, &atstk1000_lcdc_data, - fbmem_start, fbmem_size); + fbmem_start, fbmem_size, 0); #endif at32_add_device_usba(0, NULL); #ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM diff --git a/trunk/arch/avr32/boards/atstk1000/atstk1003.c b/trunk/arch/avr32/boards/atstk1000/atstk1003.c index a0b223df35a2..ea109f435a83 100644 --- a/trunk/arch/avr32/boards/atstk1000/atstk1003.c +++ b/trunk/arch/avr32/boards/atstk1000/atstk1003.c @@ -27,6 +27,13 @@ #include "atstk1000.h" +/* Oscillator frequencies. These are board specific */ +unsigned long at32_board_osc_rates[3] = { + [0] = 32768, /* 32.768 kHz on RTC osc */ + [1] = 20000000, /* 20 MHz on osc0 */ + [2] = 12000000, /* 12 MHz on osc1 */ +}; + #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC static struct at73c213_board_info at73c213_data = { .ssc_id = 0, diff --git a/trunk/arch/avr32/boards/atstk1000/atstk1004.c b/trunk/arch/avr32/boards/atstk1000/atstk1004.c index e765a8652b3e..c7236df74d74 100644 --- a/trunk/arch/avr32/boards/atstk1000/atstk1004.c +++ b/trunk/arch/avr32/boards/atstk1000/atstk1004.c @@ -29,6 +29,13 @@ #include "atstk1000.h" +/* Oscillator frequencies. These are board specific */ +unsigned long at32_board_osc_rates[3] = { + [0] = 32768, /* 32.768 kHz on RTC osc */ + [1] = 20000000, /* 20 MHz on osc0 */ + [2] = 12000000, /* 12 MHz on osc1 */ +}; + #ifdef CONFIG_BOARD_ATSTK1000_EXTDAC static struct at73c213_board_info at73c213_data = { .ssc_id = 0, @@ -133,7 +140,7 @@ static int __init atstk1004_init(void) at32_add_device_mci(0); #endif at32_add_device_lcdc(0, &atstk1000_lcdc_data, - fbmem_start, fbmem_size); + fbmem_start, fbmem_size, 0); at32_add_device_usba(0, NULL); #ifndef CONFIG_BOARD_ATSTK100X_SW3_CUSTOM at32_add_device_ssc(0, ATMEL_SSC_TX); diff --git a/trunk/arch/avr32/kernel/entry-avr32b.S b/trunk/arch/avr32/kernel/entry-avr32b.S index 5f31702d6b1c..2b398cae110c 100644 --- a/trunk/arch/avr32/kernel/entry-avr32b.S +++ b/trunk/arch/avr32/kernel/entry-avr32b.S @@ -74,50 +74,41 @@ exception_vectors: .align 2 bral do_dtlb_modified - /* - * r0 : PGD/PT/PTE - * r1 : Offending address - * r2 : Scratch register - * r3 : Cause (5, 12 or 13) - */ #define tlbmiss_save pushm r0-r3 #define tlbmiss_restore popm r0-r3 - .section .tlbx.ex.text,"ax",@progbits + .org 0x50 .global itlb_miss itlb_miss: tlbmiss_save rjmp tlb_miss_common - .section .tlbr.ex.text,"ax",@progbits + .org 0x60 dtlb_miss_read: tlbmiss_save rjmp tlb_miss_common - .section .tlbw.ex.text,"ax",@progbits + .org 0x70 dtlb_miss_write: tlbmiss_save .global tlb_miss_common + .align 2 tlb_miss_common: mfsr r0, SYSREG_TLBEAR mfsr r1, SYSREG_PTBR - /* Is it the vmalloc space? */ - bld r0, 31 - brcs handle_vmalloc_miss - - /* First level lookup */ + /* + * First level lookup: The PGD contains virtual pointers to + * the second-level page tables, but they may be NULL if not + * present. + */ pgtbl_lookup: lsr r2, r0, PGDIR_SHIFT ld.w r3, r1[r2 << 2] bfextu r1, r0, PAGE_SHIFT, PGDIR_SHIFT - PAGE_SHIFT - bld r3, _PAGE_BIT_PRESENT - brcc page_table_not_present - - /* Translate to virtual address in P1. */ - andl r3, 0xf000 - sbr r3, 31 + cp.w r3, 0 + breq page_table_not_present /* Second level lookup */ ld.w r2, r3[r1 << 2] @@ -148,16 +139,55 @@ pgtbl_lookup: tlbmiss_restore rete -handle_vmalloc_miss: - /* Simply do the lookup in init's page table */ + /* The slow path of the TLB miss handler */ + .align 2 +page_table_not_present: + /* Do we need to synchronize with swapper_pg_dir? */ + bld r0, 31 + brcs sync_with_swapper_pg_dir + +page_not_present: + tlbmiss_restore + sub sp, 4 + stmts --sp, r0-lr + rcall save_full_context_ex + mfsr r12, SYSREG_ECR + mov r11, sp + rcall do_page_fault + rjmp ret_from_exception + + .align 2 +sync_with_swapper_pg_dir: + /* + * If swapper_pg_dir contains a non-NULL second-level page + * table pointer, copy it into the current PGD. If not, we + * must handle it as a full-blown page fault. + * + * Jumping back to pgtbl_lookup causes an unnecessary lookup, + * but it is guaranteed to be a cache hit, it won't happen + * very often, and we absolutely do not want to sacrifice any + * performance in the fast path in order to improve this. + */ mov r1, lo(swapper_pg_dir) orh r1, hi(swapper_pg_dir) + ld.w r3, r1[r2 << 2] + cp.w r3, 0 + breq page_not_present + mfsr r1, SYSREG_PTBR + st.w r1[r2 << 2], r3 rjmp pgtbl_lookup + /* + * We currently have two bytes left at this point until we + * crash into the system call handler... + * + * Don't worry, the assembler will let us know. + */ + /* --- System Call --- */ - .section .scall.text,"ax",@progbits + .org 0x100 system_call: #ifdef CONFIG_PREEMPT mask_interrupts @@ -266,18 +296,6 @@ syscall_exit_work: brcc syscall_exit_cont rjmp enter_monitor_mode - /* The slow path of the TLB miss handler */ -page_table_not_present: -page_not_present: - tlbmiss_restore - sub sp, 4 - stmts --sp, r0-lr - rcall save_full_context_ex - mfsr r12, SYSREG_ECR - mov r11, sp - rcall do_page_fault - rjmp ret_from_exception - /* This function expects to find offending PC in SYSREG_RAR_EX */ .type save_full_context_ex, @function .align 2 diff --git a/trunk/arch/avr32/kernel/signal.c b/trunk/arch/avr32/kernel/signal.c index 5616a00c10ba..c5b11f9067f1 100644 --- a/trunk/arch/avr32/kernel/signal.c +++ b/trunk/arch/avr32/kernel/signal.c @@ -93,6 +93,9 @@ asmlinkage int sys_rt_sigreturn(struct pt_regs *regs) if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) goto badframe; + if (do_sigaltstack(&frame->uc.uc_stack, NULL, regs->sp) == -EFAULT) + goto badframe; + pr_debug("Context restored: pc = %08lx, lr = %08lx, sp = %08lx\n", regs->pc, regs->lr, regs->sp); diff --git a/trunk/arch/avr32/kernel/time.c b/trunk/arch/avr32/kernel/time.c index 00a9862380ff..abd954fb7ba0 100644 --- a/trunk/arch/avr32/kernel/time.c +++ b/trunk/arch/avr32/kernel/time.c @@ -7,21 +7,13 @@ */ #include #include -#include -#include +#include #include #include -#include -#include -#include -#include -#include -#include +#include +#include -#include #include -#include -#include #include diff --git a/trunk/arch/avr32/kernel/vmlinux.lds.S b/trunk/arch/avr32/kernel/vmlinux.lds.S index 481cfd40c053..5d25d8eeb750 100644 --- a/trunk/arch/avr32/kernel/vmlinux.lds.S +++ b/trunk/arch/avr32/kernel/vmlinux.lds.S @@ -68,14 +68,6 @@ SECTIONS _evba = .; _text = .; *(.ex.text) - . = 0x50; - *(.tlbx.ex.text) - . = 0x60; - *(.tlbr.ex.text) - . = 0x70; - *(.tlbw.ex.text) - . = 0x100; - *(.scall.text) *(.irq.text) KPROBES_TEXT TEXT_TEXT @@ -107,6 +99,10 @@ SECTIONS */ *(.data.init_task) + /* Then, the page-aligned data */ + . = ALIGN(PAGE_SIZE); + *(.data.page_aligned) + /* Then, the cacheline aligned data */ . = ALIGN(L1_CACHE_BYTES); *(.data.cacheline_aligned) diff --git a/trunk/arch/avr32/lib/io-readsb.S b/trunk/arch/avr32/lib/io-readsb.S index 2be5da7ed26b..cb2d86945559 100644 --- a/trunk/arch/avr32/lib/io-readsb.S +++ b/trunk/arch/avr32/lib/io-readsb.S @@ -41,7 +41,7 @@ __raw_readsb: 2: sub r10, -4 reteq r12 -3: ld.uh r8, r12[0] +3: ld.ub r8, r12[0] sub r10, 1 st.b r11++, r8 brne 3b diff --git a/trunk/arch/avr32/mach-at32ap/Makefile b/trunk/arch/avr32/mach-at32ap/Makefile index e89009439e4a..d5018e2eed25 100644 --- a/trunk/arch/avr32/mach-at32ap/Makefile +++ b/trunk/arch/avr32/mach-at32ap/Makefile @@ -1,3 +1,8 @@ -obj-y += at32ap.o clock.o intc.o extint.o pio.o hsmc.o +obj-y += pdc.o clock.o intc.o extint.o pio.o hsmc.o obj-$(CONFIG_CPU_AT32AP700X) += at32ap700x.o pm-at32ap700x.o obj-$(CONFIG_CPU_FREQ_AT32AP) += cpufreq.o +obj-$(CONFIG_PM) += pm.o + +ifeq ($(CONFIG_PM_DEBUG),y) +CFLAGS_pm.o += -DDEBUG +endif diff --git a/trunk/arch/avr32/mach-at32ap/at32ap700x.c b/trunk/arch/avr32/mach-at32ap/at32ap700x.c index 0f24b4f85c17..07b21b121eef 100644 --- a/trunk/arch/avr32/mach-at32ap/at32ap700x.c +++ b/trunk/arch/avr32/mach-at32ap/at32ap700x.c @@ -20,6 +20,7 @@ #include #include #include +#include #include