From 894361259ea51eef86b27d7f4bc574b286f340cf Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 16 Dec 2009 09:16:41 +0100 Subject: [PATCH] --- yaml --- r: 177167 b: refs/heads/master c: b568be627a7270eba575bc4406a606e1545f91bb h: refs/heads/master i: 177165: d14d05598dc0230d4fc4c528159ee9e49c07ed5f 177163: 1489a11cd8eea10a669b974ecab4fca8d51db136 177159: 05392006d6dad7f36994fe8901111118878e4a05 177151: 4efd7d32d51156085e6d06d94c11f894fd46bcaa v: v3 --- [refs] | 2 +- trunk/Documentation/Changes | 2 - trunk/Documentation/DocBook/Makefile | 38 +- .../Documentation/DocBook/media-entities.tmpl | 18 - .../Documentation/DocBook/media-indices.tmpl | 4 - trunk/Documentation/DocBook/procfs-guide.tmpl | 626 ++ trunk/Documentation/DocBook/procfs_example.c | 201 + trunk/Documentation/DocBook/v4l/common.xml | 35 - trunk/Documentation/DocBook/v4l/compat.xml | 16 +- trunk/Documentation/DocBook/v4l/v4l2.xml | 26 +- .../Documentation/DocBook/v4l/videodev2.h.xml | 116 +- .../DocBook/v4l/vidioc-enum-dv-presets.xml | 238 - .../DocBook/v4l/vidioc-enuminput.xml | 36 +- .../DocBook/v4l/vidioc-enumoutput.xml | 36 +- .../DocBook/v4l/vidioc-g-dv-preset.xml | 111 - .../DocBook/v4l/vidioc-g-dv-timings.xml | 224 - .../DocBook/v4l/vidioc-g-std.xml | 6 - .../DocBook/v4l/vidioc-query-dv-preset.xml | 85 - .../DocBook/v4l/vidioc-querystd.xml | 6 - trunk/Documentation/SubmitChecklist | 5 +- trunk/Documentation/fb/viafb.txt | 12 +- trunk/Documentation/filesystems/seq_file.txt | 4 +- trunk/Documentation/gpio.txt | 15 - trunk/Documentation/infiniband/ipoib.txt | 10 +- trunk/Documentation/kernel-parameters.txt | 5 - .../dts-bindings/4xx/ppc440spe-adma.txt | 93 - trunk/Documentation/video4linux/gspca.txt | 34 +- .../video4linux/sh_mobile_ceu_camera.txt | 157 - .../video4linux/v4l2-framework.txt | 16 +- trunk/MAINTAINERS | 4 +- trunk/arch/alpha/include/asm/elf.h | 1 + trunk/arch/arm/include/asm/elf.h | 1 + trunk/arch/arm/mach-bcmring/arch.c | 10 - .../arm/mach-bcmring/include/mach/reg_nand.h | 66 - .../arm/mach-bcmring/include/mach/reg_umi.h | 237 - trunk/arch/arm/mach-davinci/board-da850-evm.c | 24 +- .../arch/arm/mach-davinci/include/mach/nand.h | 4 - .../mach-ep93xx/include/mach/ep93xx_keypad.h | 11 +- trunk/arch/arm/mach-nomadik/board-nhk8815.c | 11 +- .../arm/mach-u300/include/mach/coh901318.h | 281 - .../arch/arm/plat-mxc/include/mach/mxc_nand.h | 3 +- trunk/arch/arm/plat-s3c/include/plat/nand.h | 2 - trunk/arch/avr32/include/asm/elf.h | 1 + .../arch/blackfin/include/asm/bfin-lq035q1.h | 28 - trunk/arch/blackfin/include/asm/elf.h | 1 + trunk/arch/cris/include/asm/elf.h | 2 + trunk/arch/frv/include/asm/elf.h | 1 + trunk/arch/h8300/include/asm/elf.h | 1 + trunk/arch/ia64/ia32/elfcore32.h | 2 + trunk/arch/ia64/include/asm/dma-mapping.h | 2 +- trunk/arch/ia64/include/asm/elf.h | 1 + trunk/arch/ia64/include/asm/io.h | 2 - trunk/arch/ia64/mm/ioremap.c | 11 - trunk/arch/ia64/sn/pci/tioca_provider.c | 19 +- trunk/arch/m32r/include/asm/elf.h | 1 + trunk/arch/m68k/include/asm/elf.h | 1 + trunk/arch/microblaze/include/asm/elf.h | 1 + trunk/arch/mips/include/asm/elf.h | 1 + trunk/arch/mn10300/include/asm/elf.h | 1 + trunk/arch/parisc/include/asm/bug.h | 4 +- trunk/arch/parisc/include/asm/elf.h | 1 + trunk/arch/parisc/include/asm/ftrace.h | 14 - trunk/arch/parisc/kernel/asm-offsets.c | 3 + trunk/arch/parisc/kernel/irq.c | 4 +- trunk/arch/parisc/kernel/signal.c | 1 + trunk/arch/parisc/kernel/smp.c | 9 +- trunk/arch/parisc/kernel/unwind.c | 50 +- trunk/arch/powerpc/include/asm/async_tx.h | 47 - trunk/arch/powerpc/include/asm/dcr-regs.h | 23 - trunk/arch/powerpc/include/asm/dma-mapping.h | 2 +- trunk/arch/powerpc/include/asm/elf.h | 1 + trunk/arch/powerpc/include/asm/ptrace.h | 2 - trunk/arch/powerpc/kernel/iommu.c | 4 +- trunk/arch/powerpc/kernel/traps.c | 9 - trunk/arch/s390/include/asm/elf.h | 1 + trunk/arch/score/include/asm/elf.h | 1 + trunk/arch/sh/Kconfig.debug | 44 + trunk/arch/sh/boards/mach-ap325rxa/setup.c | 44 +- trunk/arch/sh/boards/mach-ecovec24/setup.c | 322 +- trunk/arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | 6 - trunk/arch/sh/boards/mach-kfr2r09/setup.c | 14 +- trunk/arch/sh/boards/mach-migor/setup.c | 32 +- trunk/arch/sh/boards/mach-se/7722/irq.c | 7 +- trunk/arch/sh/boards/mach-se/7724/setup.c | 17 - .../sh/configs/ecovec24-romimage_defconfig | 2 +- trunk/arch/sh/configs/ecovec24_defconfig | 2 +- trunk/arch/sh/configs/rts7751r2d1_defconfig | 2 +- .../arch/sh/configs/rts7751r2dplus_defconfig | 2 +- trunk/arch/sh/include/asm/elf.h | 1 + trunk/arch/sh/include/asm/io.h | 11 +- trunk/arch/sh/include/asm/pgtable_32.h | 5 +- trunk/arch/sh/include/asm/unistd_32.h | 3 +- trunk/arch/sh/include/asm/unistd_64.h | 3 +- .../sh/include/mach-kfr2r09/mach/kfr2r09.h | 6 - trunk/arch/sh/kernel/Makefile | 3 +- trunk/arch/sh/kernel/cpu/irq/ipr.c | 7 +- trunk/arch/sh/kernel/cpu/sh2/setup-sh7619.c | 71 +- trunk/arch/sh/kernel/cpu/sh2a/setup-mxg.c | 23 +- trunk/arch/sh/kernel/cpu/sh2a/setup-sh7201.c | 181 +- trunk/arch/sh/kernel/cpu/sh2a/setup-sh7203.c | 89 +- trunk/arch/sh/kernel/cpu/sh2a/setup-sh7206.c | 89 +- trunk/arch/sh/kernel/cpu/sh3/setup-sh7705.c | 49 +- trunk/arch/sh/kernel/cpu/sh3/setup-sh770x.c | 80 +- trunk/arch/sh/kernel/cpu/sh3/setup-sh7710.c | 50 +- trunk/arch/sh/kernel/cpu/sh3/setup-sh7720.c | 50 +- trunk/arch/sh/kernel/cpu/sh4/setup-sh4-202.c | 23 +- trunk/arch/sh/kernel/cpu/sh4/setup-sh7750.c | 47 +- trunk/arch/sh/kernel/cpu/sh4/setup-sh7760.c | 89 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7343.c | 112 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7366.c | 39 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7722.c | 91 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7723.c | 160 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7724.c | 149 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7757.c | 92 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7763.c | 81 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7770.c | 221 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7780.c | 60 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7785.c | 159 +- trunk/arch/sh/kernel/cpu/sh4a/setup-sh7786.c | 132 +- trunk/arch/sh/kernel/cpu/sh4a/setup-shx3.c | 76 +- trunk/arch/sh/kernel/cpu/sh5/fpu.c | 4 +- trunk/arch/sh/kernel/cpu/sh5/setup-sh5.c | 22 +- trunk/arch/sh/kernel/early_printk.c | 157 +- trunk/arch/sh/kernel/ftrace.c | 76 +- trunk/arch/sh/kernel/process_64.c | 4 +- trunk/arch/sh/kernel/ptrace_64.c | 4 +- trunk/arch/sh/kernel/setup.c | 3 - trunk/arch/sh/kernel/signal_64.c | 2 +- trunk/arch/sh/kernel/syscalls_32.S | 1 - trunk/arch/sh/kernel/traps_32.c | 18 +- trunk/arch/sh/kernel/traps_64.c | 4 +- trunk/arch/sh/mm/cache-sh4.c | 3 +- trunk/arch/sh/mm/ioremap_32.c | 10 +- trunk/arch/sh/mm/ioremap_64.c | 6 +- trunk/arch/sh/mm/numa.c | 15 +- trunk/arch/sparc/include/asm/elf_32.h | 2 + trunk/arch/sparc/include/asm/elf_64.h | 1 + trunk/arch/sparc/kernel/iommu.c | 3 +- trunk/arch/sparc/kernel/ldc.c | 16 +- trunk/arch/sparc/mm/sun4c.c | 17 +- trunk/arch/um/sys-i386/asm/elf.h | 1 + trunk/arch/um/sys-ppc/asm/elf.h | 2 + trunk/arch/um/sys-x86_64/asm/elf.h | 1 + trunk/arch/x86/include/asm/dma-mapping.h | 2 +- trunk/arch/x86/include/asm/elf.h | 1 + trunk/arch/x86/include/asm/ptrace.h | 2 - trunk/arch/x86/include/asm/uv/bios.h | 11 +- trunk/arch/x86/include/asm/uv/uv_hub.h | 44 +- trunk/arch/x86/kernel/amd_iommu.c | 4 +- trunk/arch/x86/kernel/bios_uv.c | 8 +- trunk/arch/x86/kernel/pci-calgary_64.c | 6 +- trunk/arch/x86/kernel/pci-gart_64.c | 6 +- trunk/arch/x86/kernel/ptrace.c | 51 +- trunk/arch/xtensa/include/asm/elf.h | 1 + trunk/block/blk-settings.c | 7 + trunk/drivers/atm/iphase.c | 2 +- trunk/drivers/char/efirtc.c | 1 - trunk/drivers/char/ipmi/ipmi_kcs_sm.c | 2 +- trunk/drivers/char/keyboard.c | 10 +- trunk/drivers/char/sysrq.c | 2 +- trunk/drivers/char/vt.c | 7 +- trunk/drivers/dma/Kconfig | 18 - trunk/drivers/dma/Makefile | 2 - trunk/drivers/dma/coh901318.c | 1325 ----- trunk/drivers/dma/coh901318_lli.c | 318 -- trunk/drivers/dma/coh901318_lli.h | 124 - trunk/drivers/dma/dmatest.c | 16 +- trunk/drivers/dma/iop-adma.c | 4 +- trunk/drivers/dma/ppc4xx/Makefile | 1 - trunk/drivers/dma/ppc4xx/adma.c | 5027 ----------------- trunk/drivers/dma/ppc4xx/adma.h | 195 - trunk/drivers/dma/ppc4xx/dma.h | 223 - trunk/drivers/dma/ppc4xx/xor.h | 110 - trunk/drivers/dma/shdma.c | 36 +- trunk/drivers/dma/shdma.h | 14 +- trunk/drivers/edac/edac_mce_amd.c | 24 +- trunk/drivers/edac/i5100_edac.c | 252 +- trunk/drivers/gpio/Kconfig | 6 - trunk/drivers/gpio/Makefile | 1 - trunk/drivers/gpio/gpiolib.c | 161 +- trunk/drivers/gpio/langwell_gpio.c | 2 +- trunk/drivers/gpio/timbgpio.c | 342 -- trunk/drivers/gpu/drm/nouveau/Kconfig | 5 +- trunk/drivers/gpu/drm/nouveau/nouveau_bo.c | 2 - trunk/drivers/gpu/drm/nouveau/nouveau_fence.c | 2 +- trunk/drivers/gpu/drm/nouveau/nouveau_gem.c | 7 + trunk/drivers/gpu/drm/nouveau/nouveau_mem.c | 4 - trunk/drivers/gpu/drm/nouveau/nv40_graph.c | 20 +- trunk/drivers/gpu/drm/radeon/Makefile | 2 +- trunk/drivers/gpu/drm/radeon/r100.c | 54 +- trunk/drivers/gpu/drm/radeon/r100_track.h | 5 - trunk/drivers/gpu/drm/radeon/r200.c | 10 +- trunk/drivers/gpu/drm/radeon/r300.c | 24 +- trunk/drivers/gpu/drm/radeon/r600.c | 19 +- trunk/drivers/gpu/drm/radeon/r600_audio.c | 267 - trunk/drivers/gpu/drm/radeon/r600_hdmi.c | 506 -- trunk/drivers/gpu/drm/radeon/r600_reg.h | 74 - trunk/drivers/gpu/drm/radeon/radeon.h | 25 - trunk/drivers/gpu/drm/radeon/radeon_drv.c | 4 - .../drivers/gpu/drm/radeon/radeon_encoders.c | 16 +- trunk/drivers/gpu/drm/radeon/radeon_gem.c | 8 +- trunk/drivers/gpu/drm/radeon/radeon_mode.h | 3 - trunk/drivers/gpu/drm/radeon/radeon_object.c | 21 +- trunk/drivers/gpu/drm/radeon/radeon_object.h | 16 +- trunk/drivers/gpu/drm/radeon/radeon_pm.c | 7 +- trunk/drivers/gpu/drm/radeon/radeon_ttm.c | 14 +- trunk/drivers/gpu/drm/radeon/rs400.c | 2 - trunk/drivers/gpu/drm/radeon/rv770.c | 14 +- trunk/drivers/gpu/drm/ttm/ttm_bo.c | 77 +- trunk/drivers/gpu/drm/ttm/ttm_bo_vm.c | 2 +- trunk/drivers/infiniband/core/addr.c | 275 +- trunk/drivers/infiniband/core/cma.c | 133 +- trunk/drivers/infiniband/core/sa_query.c | 6 - trunk/drivers/infiniband/core/ucma.c | 57 +- trunk/drivers/infiniband/core/uverbs_cmd.c | 2 +- trunk/drivers/infiniband/hw/amso1100/c2_qp.c | 14 +- trunk/drivers/infiniband/hw/cxgb3/iwch_qp.c | 32 +- .../drivers/infiniband/hw/ehca/ehca_classes.h | 1 - trunk/drivers/infiniband/hw/ehca/ehca_eq.c | 9 +- trunk/drivers/infiniband/hw/ehca/ehca_main.c | 2 +- trunk/drivers/infiniband/hw/ehca/ehca_reqs.c | 67 +- .../infiniband/hw/ipath/ipath_driver.c | 10 +- trunk/drivers/infiniband/hw/mlx4/main.c | 2 +- trunk/drivers/infiniband/hw/mlx4/qp.c | 25 +- trunk/drivers/infiniband/hw/nes/Kconfig | 9 +- trunk/drivers/infiniband/hw/nes/nes.c | 5 +- trunk/drivers/infiniband/hw/nes/nes.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_cm.c | 201 +- trunk/drivers/infiniband/hw/nes/nes_cm.h | 7 +- trunk/drivers/infiniband/hw/nes/nes_context.h | 2 +- trunk/drivers/infiniband/hw/nes/nes_hw.c | 40 +- trunk/drivers/infiniband/hw/nes/nes_hw.h | 29 +- trunk/drivers/infiniband/hw/nes/nes_nic.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_user.h | 3 +- trunk/drivers/infiniband/hw/nes/nes_utils.c | 2 +- trunk/drivers/infiniband/hw/nes/nes_verbs.c | 817 ++- trunk/drivers/infiniband/hw/nes/nes_verbs.h | 23 +- .../drivers/infiniband/ulp/ipoib/ipoib_main.c | 1 - .../drivers/infiniband/ulp/iser/iser_memory.c | 122 +- trunk/drivers/input/input.c | 10 +- trunk/drivers/input/keyboard/ep93xx_keypad.c | 150 +- trunk/drivers/input/mouse/alps.c | 265 +- trunk/drivers/input/mouse/alps.h | 1 - trunk/drivers/input/serio/altera_ps2.c | 15 +- trunk/drivers/input/serio/ambakmi.c | 9 +- trunk/drivers/input/serio/at32psif.c | 3 +- trunk/drivers/input/serio/gscps2.c | 6 +- trunk/drivers/input/serio/hil_mlc.c | 8 +- trunk/drivers/input/serio/i8042-x86ia64io.h | 8 - trunk/drivers/input/serio/i8042.c | 88 +- trunk/drivers/input/serio/sa1111ps2.c | 10 +- trunk/drivers/input/tablet/wacom.h | 11 +- trunk/drivers/input/tablet/wacom_sys.c | 231 +- trunk/drivers/input/tablet/wacom_wac.c | 368 +- trunk/drivers/input/tablet/wacom_wac.h | 29 +- trunk/drivers/input/touchscreen/Kconfig | 12 - trunk/drivers/input/touchscreen/Makefile | 1 - trunk/drivers/input/touchscreen/mc13783_ts.c | 258 - trunk/drivers/media/IR/Kconfig | 9 - trunk/drivers/media/IR/Makefile | 5 - trunk/drivers/media/Kconfig | 1 - trunk/drivers/media/Makefile | 2 +- trunk/drivers/media/common/Makefile | 2 + .../media/{IR => common}/ir-functions.c | 20 +- .../drivers/media/{IR => common}/ir-keymaps.c | 219 +- .../media/{IR => common}/ir-keytable.c | 90 +- trunk/drivers/media/common/saa7146_fops.c | 60 +- trunk/drivers/media/dvb/dm1105/dm1105.c | 14 +- trunk/drivers/media/dvb/dvb-usb/Kconfig | 8 +- trunk/drivers/media/dvb/dvb-usb/dib0700.h | 26 +- .../drivers/media/dvb/dvb-usb/dib0700_core.c | 101 +- .../media/dvb/dvb-usb/dib0700_devices.c | 725 +-- .../drivers/media/dvb/dvb-usb/dibusb-common.c | 15 +- trunk/drivers/media/dvb/dvb-usb/dvb-usb-ids.h | 3 - trunk/drivers/media/dvb/dvb-usb/dw2102.c | 456 +- trunk/drivers/media/dvb/dvb-usb/friio-fe.c | 10 +- trunk/drivers/media/dvb/dvb-usb/gp8psk-fe.c | 4 +- trunk/drivers/media/dvb/frontends/Kconfig | 9 - trunk/drivers/media/dvb/frontends/Makefile | 1 - .../media/dvb/frontends/au8522_decoder.c | 4 +- trunk/drivers/media/dvb/frontends/dib0070.c | 674 ++- trunk/drivers/media/dvb/frontends/dib0070.h | 4 +- trunk/drivers/media/dvb/frontends/dib0090.c | 1522 ----- trunk/drivers/media/dvb/frontends/dib0090.h | 108 - trunk/drivers/media/dvb/frontends/dib8000.c | 137 +- trunk/drivers/media/dvb/frontends/dib8000.h | 32 +- .../media/dvb/frontends/dibx000_common.c | 15 +- .../media/dvb/frontends/dibx000_common.h | 71 +- trunk/drivers/media/dvb/frontends/lgs8gxx.c | 4 +- trunk/drivers/media/dvb/frontends/lnbp21.c | 28 +- .../media/dvb/frontends/stv0900_core.c | 13 - trunk/drivers/media/dvb/frontends/stv090x.c | 7 +- trunk/drivers/media/dvb/frontends/stv090x.h | 2 - trunk/drivers/media/dvb/siano/smsdvb.c | 4 +- trunk/drivers/media/dvb/siano/smssdio.c | 8 +- trunk/drivers/media/dvb/siano/smsusb.c | 18 +- trunk/drivers/media/dvb/ttpci/budget-ci.c | 52 +- trunk/drivers/media/radio/Kconfig | 7 +- trunk/drivers/media/radio/radio-aimslab.c | 4 - trunk/drivers/media/radio/radio-aztech.c | 4 - trunk/drivers/media/radio/radio-gemtek-pci.c | 4 - trunk/drivers/media/radio/radio-maestro.c | 4 - trunk/drivers/media/radio/radio-maxiradio.c | 4 - trunk/drivers/media/radio/radio-mr800.c | 4 - trunk/drivers/media/radio/radio-rtrack2.c | 4 - trunk/drivers/media/radio/radio-sf16fmi.c | 82 +- trunk/drivers/media/radio/radio-sf16fmr2.c | 4 - trunk/drivers/media/radio/radio-tea5764.c | 12 +- trunk/drivers/media/radio/radio-terratec.c | 4 - trunk/drivers/media/radio/radio-trust.c | 4 - trunk/drivers/media/radio/radio-typhoon.c | 4 - trunk/drivers/media/radio/radio-zoltrix.c | 4 - .../media/radio/si470x/radio-si470x-common.c | 98 - .../media/radio/si470x/radio-si470x-i2c.c | 219 +- .../media/radio/si470x/radio-si470x-usb.c | 97 +- .../drivers/media/radio/si470x/radio-si470x.h | 5 +- trunk/drivers/media/video/Kconfig | 10 +- trunk/drivers/media/video/Makefile | 3 +- trunk/drivers/media/video/arv.c | 5 +- .../drivers/media/video/au0828/au0828-video.c | 36 +- trunk/drivers/media/video/au0828/au0828.h | 1 + trunk/drivers/media/video/bt8xx/bttv-driver.c | 41 +- trunk/drivers/media/video/bt8xx/bttv-i2c.c | 4 +- trunk/drivers/media/video/bt8xx/bttv-input.c | 9 +- trunk/drivers/media/video/c-qcam.c | 4 +- trunk/drivers/media/video/cafe_ccic.c | 1 + trunk/drivers/media/video/cpia.c | 221 +- trunk/drivers/media/video/cpia2/cpia2_v4l.c | 34 +- trunk/drivers/media/video/cx18/cx18-fileops.c | 4 +- trunk/drivers/media/video/cx18/cx18-streams.c | 20 +- .../media/video/cx231xx/cx231xx-cards.c | 23 +- .../media/video/cx231xx/cx231xx-core.c | 26 + .../media/video/cx231xx/cx231xx-input.c | 10 +- .../media/video/cx231xx/cx231xx-video.c | 58 +- trunk/drivers/media/video/cx231xx/cx231xx.h | 2 + trunk/drivers/media/video/cx23885/cimax2.c | 107 +- .../drivers/media/video/cx23885/cx23885-417.c | 29 +- .../media/video/cx23885/cx23885-core.c | 11 + .../media/video/cx23885/cx23885-input.c | 9 +- .../media/video/cx23885/cx23885-video.c | 57 +- trunk/drivers/media/video/cx23885/cx23885.h | 3 + .../drivers/media/video/cx88/cx88-blackbird.c | 26 +- trunk/drivers/media/video/cx88/cx88-input.c | 9 +- trunk/drivers/media/video/cx88/cx88-mpeg.c | 15 + trunk/drivers/media/video/cx88/cx88-video.c | 68 +- trunk/drivers/media/video/cx88/cx88.h | 2 + .../media/video/davinci/vpfe_capture.c | 6 +- trunk/drivers/media/video/davinci/vpif.c | 2 +- .../media/video/davinci/vpif_display.c | 1 + trunk/drivers/media/video/davinci/vpss.c | 2 +- .../drivers/media/video/em28xx/em28xx-cards.c | 7 +- .../drivers/media/video/em28xx/em28xx-core.c | 30 +- .../drivers/media/video/em28xx/em28xx-input.c | 68 +- .../drivers/media/video/em28xx/em28xx-video.c | 59 +- trunk/drivers/media/video/em28xx/em28xx.h | 5 +- .../media/video/et61x251/et61x251_core.c | 45 +- trunk/drivers/media/video/gspca/conex.c | 4 +- trunk/drivers/media/video/gspca/etoms.c | 4 +- .../media/video/gspca/gl860/gl860-mi1320.c | 2 +- .../media/video/gspca/gl860/gl860-mi2020.c | 2 +- trunk/drivers/media/video/gspca/gl860/gl860.c | 14 +- trunk/drivers/media/video/gspca/gspca.c | 67 +- trunk/drivers/media/video/gspca/gspca.h | 10 - .../media/video/gspca/m5602/m5602_core.c | 4 +- .../media/video/gspca/m5602/m5602_ov9650.c | 2 +- .../media/video/gspca/m5602/m5602_s5k4aa.c | 10 +- trunk/drivers/media/video/gspca/mr97310a.c | 2 +- trunk/drivers/media/video/gspca/ov519.c | 14 +- trunk/drivers/media/video/gspca/pac7302.c | 25 +- trunk/drivers/media/video/gspca/pac7311.c | 4 +- trunk/drivers/media/video/gspca/sn9c20x.c | 12 +- trunk/drivers/media/video/gspca/sonixb.c | 4 +- trunk/drivers/media/video/gspca/spca506.c | 4 +- trunk/drivers/media/video/gspca/stk014.c | 106 +- trunk/drivers/media/video/gspca/sunplus.c | 237 +- trunk/drivers/media/video/gspca/zc3xx.c | 36 +- trunk/drivers/media/video/hdpvr/hdpvr-core.c | 16 +- trunk/drivers/media/video/hdpvr/hdpvr-video.c | 2 +- trunk/drivers/media/video/ir-kbd-i2c.c | 12 +- trunk/drivers/media/video/ivtv/ivtv-fileops.c | 4 +- trunk/drivers/media/video/ivtv/ivtv-streams.c | 19 +- trunk/drivers/media/video/meye.c | 1 + trunk/drivers/media/video/mt9m001.c | 205 +- trunk/drivers/media/video/mt9m111.c | 189 +- trunk/drivers/media/video/mt9t031.c | 281 +- trunk/drivers/media/video/mt9t112.c | 1177 ---- trunk/drivers/media/video/mt9v022.c | 228 +- trunk/drivers/media/video/mx1_camera.c | 126 +- trunk/drivers/media/video/mx3_camera.c | 296 +- trunk/drivers/media/video/omap24xxcam.c | 10 +- trunk/drivers/media/video/ov511.c | 9 +- trunk/drivers/media/video/ov772x.c | 233 +- trunk/drivers/media/video/ov9640.c | 107 +- trunk/drivers/media/video/pms.c | 2 +- .../media/video/pvrusb2/pvrusb2-v4l2.c | 21 +- trunk/drivers/media/video/pwc/pwc-if.c | 5 +- trunk/drivers/media/video/pxa_camera.c | 335 +- trunk/drivers/media/video/rj54n1cb0c.c | 474 +- trunk/drivers/media/video/s2255drv.c | 55 +- trunk/drivers/media/video/saa5246a.c | 1 + .../media/video/saa7134/saa7134-cards.c | 22 - .../media/video/saa7134/saa7134-core.c | 19 +- .../media/video/saa7134/saa7134-empress.c | 20 +- .../media/video/saa7134/saa7134-input.c | 71 +- .../media/video/saa7134/saa7134-video.c | 39 +- trunk/drivers/media/video/se401.c | 4 +- .../media/video/sh_mobile_ceu_camera.c | 520 +- .../media/video/sn9c102/sn9c102_core.c | 47 +- trunk/drivers/media/video/soc_camera.c | 106 +- .../drivers/media/video/soc_camera_platform.c | 40 +- trunk/drivers/media/video/soc_mediabus.c | 157 - trunk/drivers/media/video/stk-webcam.c | 9 +- trunk/drivers/media/video/stradis.c | 4 +- trunk/drivers/media/video/stv680.c | 5 +- trunk/drivers/media/video/tw9910.c | 337 +- trunk/drivers/media/video/usbvideo/usbvideo.c | 4 +- trunk/drivers/media/video/usbvideo/vicam.c | 5 +- .../media/video/usbvision/usbvision-i2c.c | 4 +- .../media/video/usbvision/usbvision-video.c | 34 +- trunk/drivers/media/video/uvc/uvc_driver.c | 1 + trunk/drivers/media/video/uvc/uvc_video.c | 2 +- trunk/drivers/media/video/v4l2-common.c | 47 - .../drivers/media/video/v4l2-compat-ioctl32.c | 6 - trunk/drivers/media/video/v4l2-dev.c | 22 +- trunk/drivers/media/video/v4l2-ioctl.c | 147 - .../drivers/media/video/videobuf-dma-contig.c | 6 +- trunk/drivers/media/video/vino.c | 1 + trunk/drivers/media/video/vivi.c | 22 +- trunk/drivers/media/video/w9968cf.c | 34 +- .../drivers/media/video/zc0301/zc0301_core.c | 44 +- .../drivers/media/video/zoran/zoran_driver.c | 1 + trunk/drivers/media/video/zr364xx.c | 5 +- trunk/drivers/misc/sgi-gru/gru.h | 11 - trunk/drivers/misc/sgi-gru/gru_instructions.h | 144 +- trunk/drivers/misc/sgi-gru/grufault.c | 311 +- trunk/drivers/misc/sgi-gru/grufile.c | 290 +- trunk/drivers/misc/sgi-gru/gruhandles.c | 70 +- trunk/drivers/misc/sgi-gru/gruhandles.h | 37 +- trunk/drivers/misc/sgi-gru/grukdump.c | 13 +- trunk/drivers/misc/sgi-gru/grukservices.c | 211 +- trunk/drivers/misc/sgi-gru/grukservices.h | 14 - trunk/drivers/misc/sgi-gru/grulib.h | 21 +- trunk/drivers/misc/sgi-gru/grumain.c | 228 +- trunk/drivers/misc/sgi-gru/gruprocfs.c | 42 +- trunk/drivers/misc/sgi-gru/grutables.h | 75 +- trunk/drivers/misc/sgi-gru/grutlbpurge.c | 14 +- trunk/drivers/misc/sgi-xp/xp.h | 1 - trunk/drivers/misc/sgi-xp/xp_main.c | 3 - trunk/drivers/misc/sgi-xp/xp_sn2.c | 10 - trunk/drivers/misc/sgi-xp/xp_uv.c | 33 - trunk/drivers/misc/sgi-xp/xpc_partition.c | 13 +- trunk/drivers/misc/sgi-xp/xpc_uv.c | 46 +- trunk/drivers/mtd/chips/cfi_cmdset_0001.c | 35 +- trunk/drivers/mtd/chips/cfi_cmdset_0002.c | 17 +- trunk/drivers/mtd/chips/cfi_util.c | 7 - trunk/drivers/mtd/chips/jedec_probe.c | 8 +- trunk/drivers/mtd/devices/m25p80.c | 334 +- trunk/drivers/mtd/devices/mtd_dataflash.c | 19 +- trunk/drivers/mtd/maps/Kconfig | 6 + trunk/drivers/mtd/maps/Makefile | 2 +- trunk/drivers/mtd/maps/ipaq-flash.c | 460 ++ trunk/drivers/mtd/maps/ixp4xx.c | 6 +- trunk/drivers/mtd/maps/physmap.c | 21 +- trunk/drivers/mtd/maps/sa1100-flash.c | 2 +- trunk/drivers/mtd/maps/vmu-flash.c | 9 +- trunk/drivers/mtd/mtd_blkdevs.c | 5 +- trunk/drivers/mtd/mtdcore.c | 2 +- trunk/drivers/mtd/mtdoops.c | 389 +- trunk/drivers/mtd/nand/Kconfig | 16 - trunk/drivers/mtd/nand/Makefile | 1 - trunk/drivers/mtd/nand/alauda.c | 11 +- trunk/drivers/mtd/nand/atmel_nand.c | 5 +- trunk/drivers/mtd/nand/bcm_umi_bch.c | 213 - trunk/drivers/mtd/nand/bcm_umi_nand.c | 581 -- trunk/drivers/mtd/nand/davinci_nand.c | 4 +- trunk/drivers/mtd/nand/excite_nandflash.c | 2 +- trunk/drivers/mtd/nand/fsl_elbc_nand.c | 86 +- trunk/drivers/mtd/nand/fsl_upm.c | 2 +- trunk/drivers/mtd/nand/mxc_nand.c | 783 ++- trunk/drivers/mtd/nand/nand_base.c | 141 +- trunk/drivers/mtd/nand/nand_bcm_umi.c | 149 - trunk/drivers/mtd/nand/nand_bcm_umi.h | 358 -- trunk/drivers/mtd/nand/nand_ecc.c | 25 +- trunk/drivers/mtd/nand/nandsim.c | 7 +- trunk/drivers/mtd/nand/plat_nand.c | 50 +- trunk/drivers/mtd/nand/s3c2410.c | 2 +- trunk/drivers/mtd/nand/txx9ndfmc.c | 3 +- trunk/drivers/mtd/onenand/omap2.c | 22 +- trunk/drivers/mtd/onenand/onenand_base.c | 745 +-- trunk/drivers/mtd/tests/Makefile | 1 - trunk/drivers/mtd/tests/mtd_nandecctest.c | 87 - trunk/drivers/mtd/tests/mtd_oobtest.c | 18 +- trunk/drivers/mtd/tests/mtd_pagetest.c | 1 - trunk/drivers/net/bcm63xx_enet.c | 12 +- trunk/drivers/net/bonding/bond_3ad.c | 171 +- trunk/drivers/net/bonding/bond_alb.c | 38 +- trunk/drivers/net/bonding/bond_ipv6.c | 12 +- trunk/drivers/net/bonding/bond_main.c | 607 +- trunk/drivers/net/bonding/bond_sysfs.c | 327 +- trunk/drivers/net/can/Kconfig | 2 +- trunk/drivers/net/can/at91_can.c | 2 +- trunk/drivers/net/can/bfin_can.c | 2 +- trunk/drivers/net/can/mcp251x.c | 13 +- trunk/drivers/net/can/mscan/mscan.c | 3 +- trunk/drivers/net/can/sja1000/sja1000.c | 18 +- trunk/drivers/net/can/ti_hecc.c | 2 +- trunk/drivers/net/can/usb/ems_usb.c | 2 +- trunk/drivers/net/cpmac.c | 2 +- trunk/drivers/net/ixgbe/ixgbe_82598.c | 38 - trunk/drivers/net/ixgbe/ixgbe_main.c | 20 +- trunk/drivers/net/ixgbe/ixgbe_type.h | 2 - trunk/drivers/net/mlx4/alloc.c | 37 +- trunk/drivers/net/mlx4/fw.c | 3 +- trunk/drivers/net/mlx4/sense.c | 2 +- trunk/drivers/net/pcmcia/3c574_cs.c | 4 - trunk/drivers/net/pcmcia/3c589_cs.c | 4 - trunk/drivers/net/sfc/selftest.c | 2 +- trunk/drivers/net/sh_eth.c | 7 +- trunk/drivers/net/sky2.c | 15 +- trunk/drivers/net/usb/rtl8150.c | 2 +- trunk/drivers/parisc/dino.c | 2 +- trunk/drivers/parisc/eisa.c | 2 +- trunk/drivers/parisc/gsc.c | 2 +- trunk/drivers/parisc/iosapic.c | 2 +- trunk/drivers/parisc/led.c | 59 +- trunk/drivers/parisc/superio.c | 2 +- trunk/drivers/parport/parport_pc.c | 2 +- trunk/drivers/pci/dmar.c | 110 +- trunk/drivers/pci/intel-iommu.c | 78 +- trunk/drivers/pci/intr_remapping.c | 3 +- trunk/drivers/pnp/pnpbios/proc.c | 204 +- trunk/drivers/rtc/Kconfig | 28 +- trunk/drivers/rtc/Makefile | 3 - trunk/drivers/rtc/rtc-at32ap700x.c | 4 +- trunk/drivers/rtc/rtc-bq32k.c | 204 - trunk/drivers/rtc/rtc-bq4802.c | 3 +- trunk/drivers/rtc/rtc-cmos.c | 78 +- trunk/drivers/rtc/rtc-ds1302.c | 1 + trunk/drivers/rtc/rtc-ds1305.c | 14 +- trunk/drivers/rtc/rtc-ds1307.c | 2 +- trunk/drivers/rtc/rtc-ds1511.c | 148 +- trunk/drivers/rtc/rtc-ds1553.c | 149 +- trunk/drivers/rtc/rtc-ds1742.c | 59 +- trunk/drivers/rtc/rtc-m48t35.c | 16 +- trunk/drivers/rtc/rtc-m48t59.c | 11 +- trunk/drivers/rtc/rtc-mc13783.c | 262 - trunk/drivers/rtc/rtc-mv.c | 157 +- trunk/drivers/rtc/rtc-nuc900.c | 342 -- trunk/drivers/rtc/rtc-omap.c | 47 +- trunk/drivers/rtc/rtc-pcf50633.c | 5 - trunk/drivers/rtc/rtc-pcf8563.c | 4 +- trunk/drivers/rtc/rtc-pcf8583.c | 3 +- trunk/drivers/rtc/rtc-pl031.c | 23 +- trunk/drivers/rtc/rtc-stk17ta8.c | 124 +- trunk/drivers/rtc/rtc-tx4939.c | 51 +- trunk/drivers/rtc/rtc-v3020.c | 8 +- trunk/drivers/rtc/rtc-vr41xx.c | 4 +- trunk/drivers/rtc/rtc-wm8350.c | 14 +- trunk/drivers/rtc/rtc-x1205.c | 53 +- trunk/drivers/serial/sh-sci.c | 54 +- trunk/drivers/sh/intc.c | 2 - trunk/drivers/sh/pfc.c | 2 +- .../staging/cx25821/cx25821-audups11.c | 33 +- trunk/drivers/staging/cx25821/cx25821-video.c | 6 +- .../drivers/staging/cx25821/cx25821-video0.c | 33 +- .../drivers/staging/cx25821/cx25821-video1.c | 33 +- .../drivers/staging/cx25821/cx25821-video2.c | 34 +- .../drivers/staging/cx25821/cx25821-video3.c | 34 +- .../drivers/staging/cx25821/cx25821-video4.c | 34 +- .../drivers/staging/cx25821/cx25821-video5.c | 34 +- .../drivers/staging/cx25821/cx25821-video6.c | 34 +- .../drivers/staging/cx25821/cx25821-video7.c | 34 +- .../staging/cx25821/cx25821-videoioctl.c | 32 +- .../staging/cx25821/cx25821-vidups10.c | 33 +- .../drivers/staging/cx25821/cx25821-vidups9.c | 33 +- trunk/drivers/staging/go7007/go7007-v4l2.c | 5 +- trunk/drivers/usb/host/isp1362-hcd.c | 26 +- trunk/drivers/video/Kconfig | 15 - trunk/drivers/video/Makefile | 1 - trunk/drivers/video/atafb.c | 3 - trunk/drivers/video/bfin-lq035q1-fb.c | 826 --- trunk/drivers/video/bfin-t350mcqb-fb.c | 32 +- trunk/drivers/video/clps711xfb.c | 50 +- trunk/drivers/video/da8xx-fb.c | 175 +- trunk/drivers/video/ep93xx-fb.c | 2 - trunk/drivers/video/geode/lxfb.h | 10 - trunk/drivers/video/i810/i810_dvt.c | 53 +- trunk/drivers/video/intelfb/intelfbdrv.c | 3 - trunk/drivers/video/intelfb/intelfbhw.c | 47 +- trunk/drivers/video/intelfb/intelfbhw.h | 1 - trunk/drivers/video/matrox/g450_pll.c | 3 +- trunk/drivers/video/maxinefb.c | 3 - trunk/drivers/video/mb862xx/Makefile | 2 +- trunk/drivers/video/mb862xx/mb862xxfb.c | 14 - trunk/drivers/video/mb862xx/mb862xxfb.h | 2 - trunk/drivers/video/mb862xx/mb862xxfb_accel.c | 331 -- trunk/drivers/video/mb862xx/mb862xxfb_accel.h | 203 - trunk/drivers/video/modedb.c | 24 +- trunk/drivers/video/pmag-ba-fb.c | 3 +- trunk/drivers/video/pmagb-b-fb.c | 3 +- trunk/drivers/video/pxafb.c | 5 +- trunk/drivers/video/sh_mobile_lcdcfb.c | 10 +- trunk/drivers/video/sis/sis_main.c | 2 +- trunk/drivers/video/sm501fb.c | 249 +- trunk/drivers/video/via/lcd.c | 40 +- trunk/drivers/video/via/viafbdev.c | 2 +- trunk/fs/aio.c | 40 +- trunk/fs/autofs4/autofs_i.h | 38 +- trunk/fs/autofs4/expire.c | 8 +- trunk/fs/autofs4/inode.c | 2 - trunk/fs/autofs4/root.c | 616 +- trunk/fs/binfmt_elf.c | 11 +- trunk/fs/binfmt_elf_fdpic.c | 8 +- trunk/fs/direct-io.c | 165 +- trunk/fs/ext2/dir.c | 2 +- trunk/fs/ext2/ext2.h | 1 - trunk/fs/ext2/file.c | 21 +- trunk/fs/ext2/super.c | 22 - trunk/fs/fat/fat.h | 3 +- trunk/fs/fat/fatent.c | 25 +- trunk/fs/fat/inode.c | 8 +- trunk/fs/fat/misc.c | 57 +- trunk/fs/fscache/object-list.c | 2 +- trunk/fs/hpfs/super.c | 17 +- trunk/fs/jffs2/gc.c | 3 +- trunk/fs/jffs2/readinode.c | 2 +- trunk/fs/jffs2/summary.c | 2 +- trunk/fs/ocfs2/aops.c | 34 +- trunk/fs/proc/base.c | 4 +- trunk/fs/proc/generic.c | 21 +- trunk/fs/proc/inode.c | 31 +- trunk/fs/proc/internal.h | 10 +- trunk/fs/qnx4/bitmap.c | 24 +- trunk/fs/qnx4/inode.c | 22 +- trunk/fs/reiserfs/Makefile | 6 +- trunk/fs/reiserfs/procfs.c | 65 + trunk/fs/reiserfs/super.c | 4 + trunk/fs/ufs/dir.c | 10 +- trunk/fs/ufs/namei.c | 8 +- trunk/fs/ufs/super.c | 52 - trunk/fs/ufs/ufs.h | 4 +- trunk/fs/xfs/linux-2.6/xfs_aops.c | 20 +- trunk/include/asm-generic/gpio.h | 6 - trunk/include/linux/aio.h | 4 + trunk/include/linux/bitmap.h | 11 - trunk/include/linux/can/dev.h | 9 - trunk/include/linux/dmaengine.h | 2 +- trunk/include/linux/fs.h | 22 +- trunk/include/linux/gpio.h | 6 - trunk/include/linux/i8042.h | 18 +- trunk/include/linux/intel-iommu.h | 1 - trunk/include/linux/iommu-helper.h | 3 + trunk/include/linux/ioport.h | 4 +- trunk/include/linux/ipc_namespace.h | 2 +- trunk/include/linux/kexec.h | 2 - trunk/include/linux/kmsg_dump.h | 60 - trunk/include/linux/ksm.h | 14 +- trunk/include/linux/memcontrol.h | 17 +- trunk/include/linux/mlx4/device.h | 1 - trunk/include/linux/mtd/bbm.h | 35 +- trunk/include/linux/mtd/cfi.h | 9 +- trunk/include/linux/mtd/flashchip.h | 9 - trunk/include/linux/mtd/nand.h | 97 +- trunk/include/linux/mtd/nand_ecc.h | 10 +- trunk/include/linux/mtd/onenand.h | 23 +- trunk/include/linux/mtd/onenand_regs.h | 2 - trunk/include/linux/oom.h | 4 +- trunk/include/linux/page_cgroup.h | 7 +- trunk/include/linux/ptrace.h | 23 +- trunk/include/linux/reiserfs_fs.h | 35 +- trunk/include/linux/rtnetlink.h | 6 +- trunk/include/linux/sched.h | 14 +- trunk/include/linux/sem.h | 5 +- trunk/include/linux/sm501-regs.h | 2 - trunk/include/linux/timb_gpio.h | 37 - trunk/include/linux/tracehook.h | 7 - trunk/include/linux/videodev2.h | 123 +- trunk/include/media/ir-common.h | 39 +- trunk/include/media/ir-core.h | 62 - trunk/include/media/mt9t112.h | 30 - trunk/include/media/ov772x.h | 4 +- trunk/include/media/rj54n1cb0c.h | 19 - trunk/include/media/saa7146_vv.h | 4 + trunk/include/media/sh_mobile_ceu.h | 2 - trunk/include/media/soc_camera.h | 30 +- trunk/include/media/soc_camera_platform.h | 3 +- trunk/include/media/soc_mediabus.h | 65 - trunk/include/media/tw9910.h | 1 + trunk/include/media/v4l2-chip-ident.h | 2 - trunk/include/media/v4l2-common.h | 2 +- trunk/include/media/v4l2-dev.h | 23 +- trunk/include/media/v4l2-ioctl.h | 15 - trunk/include/media/v4l2-mediabus.h | 61 - trunk/include/media/v4l2-subdev.h | 61 +- trunk/include/net/dst.h | 2 +- trunk/include/net/ip.h | 1 - trunk/include/net/ipv6.h | 8 - .../net/netfilter/ipv6/nf_conntrack_ipv6.h | 2 +- trunk/include/net/tcp.h | 3 +- trunk/include/rdma/ib_addr.h | 36 +- trunk/include/rdma/ib_sa.h | 6 - trunk/include/rdma/ib_user_sa.h | 16 - trunk/include/rdma/ib_verbs.h | 5 - trunk/include/rdma/rdma_user_cm.h | 6 +- trunk/include/video/da8xx-fb.h | 1 - trunk/include/video/sh_mobile_lcdc.h | 2 - trunk/ipc/msg.c | 1 - trunk/ipc/sem.c | 214 +- trunk/ipc/shm.c | 1 - trunk/kernel/fork.c | 9 +- trunk/kernel/kexec.c | 59 - trunk/kernel/ksysfs.c | 21 - trunk/kernel/panic.c | 3 - trunk/kernel/pid.c | 12 +- trunk/kernel/printk.c | 119 - trunk/kernel/relay.c | 2 +- trunk/kernel/signal.c | 38 +- trunk/kernel/time/timecompare.c | 2 +- trunk/kernel/trace/trace.c | 4 +- trunk/lib/bitmap.c | 81 - trunk/lib/genalloc.c | 33 +- trunk/lib/iommu-helper.c | 59 +- trunk/lib/swiotlb.c | 4 +- trunk/mm/memcontrol.c | 419 +- trunk/mm/memory.c | 2 - trunk/mm/oom_kill.c | 75 +- trunk/mm/page_alloc.c | 22 +- trunk/mm/rmap.c | 4 +- trunk/mm/truncate.c | 6 - trunk/net/core/dev.c | 11 - trunk/net/core/rtnetlink.c | 6 +- trunk/net/core/skbuff.c | 2 +- trunk/net/ipv4/netfilter/nf_defrag_ipv4.c | 21 +- trunk/net/ipv4/syncookies.c | 27 +- trunk/net/ipv4/tcp_input.c | 24 +- trunk/net/ipv4/tcp_ipv4.c | 21 +- trunk/net/ipv4/tcp_minisocks.c | 10 +- trunk/net/ipv4/tcp_output.c | 18 +- trunk/net/ipv4/udp.c | 7 +- .../netfilter/nf_conntrack_l3proto_ipv6.c | 19 +- trunk/net/ipv6/netfilter/nf_conntrack_reasm.c | 7 +- trunk/net/ipv6/reassembly.c | 5 +- trunk/net/ipv6/syncookies.c | 28 +- trunk/net/ipv6/tcp_ipv6.c | 3 +- trunk/net/netfilter/ipvs/ip_vs_core.c | 1 - trunk/net/netfilter/ipvs/ip_vs_ctl.c | 4 - trunk/net/packet/af_packet.c | 71 +- trunk/net/rds/ib.c | 4 +- trunk/net/rds/iw.c | 4 +- 749 files changed, 12652 insertions(+), 35247 deletions(-) create mode 100644 trunk/Documentation/DocBook/procfs-guide.tmpl create mode 100644 trunk/Documentation/DocBook/procfs_example.c delete mode 100644 trunk/Documentation/DocBook/v4l/vidioc-enum-dv-presets.xml delete mode 100644 trunk/Documentation/DocBook/v4l/vidioc-g-dv-preset.xml delete mode 100644 trunk/Documentation/DocBook/v4l/vidioc-g-dv-timings.xml delete mode 100644 trunk/Documentation/DocBook/v4l/vidioc-query-dv-preset.xml delete mode 100644 trunk/Documentation/powerpc/dts-bindings/4xx/ppc440spe-adma.txt delete mode 100644 trunk/Documentation/video4linux/sh_mobile_ceu_camera.txt delete mode 100644 trunk/arch/arm/mach-bcmring/include/mach/reg_nand.h delete mode 100644 trunk/arch/arm/mach-bcmring/include/mach/reg_umi.h delete mode 100644 trunk/arch/arm/mach-u300/include/mach/coh901318.h delete mode 100644 trunk/arch/blackfin/include/asm/bfin-lq035q1.h delete mode 100644 trunk/arch/powerpc/include/asm/async_tx.h delete mode 100644 trunk/drivers/dma/coh901318.c delete mode 100644 trunk/drivers/dma/coh901318_lli.c delete mode 100644 trunk/drivers/dma/coh901318_lli.h delete mode 100644 trunk/drivers/dma/ppc4xx/Makefile delete mode 100644 trunk/drivers/dma/ppc4xx/adma.c delete mode 100644 trunk/drivers/dma/ppc4xx/adma.h delete mode 100644 trunk/drivers/dma/ppc4xx/dma.h delete mode 100644 trunk/drivers/dma/ppc4xx/xor.h delete mode 100644 trunk/drivers/gpio/timbgpio.c delete mode 100644 trunk/drivers/gpu/drm/radeon/r600_audio.c delete mode 100644 trunk/drivers/gpu/drm/radeon/r600_hdmi.c delete mode 100644 trunk/drivers/input/touchscreen/mc13783_ts.c delete mode 100644 trunk/drivers/media/IR/Kconfig delete mode 100644 trunk/drivers/media/IR/Makefile rename trunk/drivers/media/{IR => common}/ir-functions.c (92%) rename trunk/drivers/media/{IR => common}/ir-keymaps.c (97%) rename trunk/drivers/media/{IR => common}/ir-keytable.c (81%) delete mode 100644 trunk/drivers/media/dvb/frontends/dib0090.c delete mode 100644 trunk/drivers/media/dvb/frontends/dib0090.h delete mode 100644 trunk/drivers/media/video/mt9t112.c delete mode 100644 trunk/drivers/media/video/soc_mediabus.c create mode 100644 trunk/drivers/mtd/maps/ipaq-flash.c delete mode 100644 trunk/drivers/mtd/nand/bcm_umi_bch.c delete mode 100644 trunk/drivers/mtd/nand/bcm_umi_nand.c delete mode 100644 trunk/drivers/mtd/nand/nand_bcm_umi.c delete mode 100644 trunk/drivers/mtd/nand/nand_bcm_umi.h delete mode 100644 trunk/drivers/mtd/tests/mtd_nandecctest.c delete mode 100644 trunk/drivers/rtc/rtc-bq32k.c delete mode 100644 trunk/drivers/rtc/rtc-mc13783.c delete mode 100644 trunk/drivers/rtc/rtc-nuc900.c delete mode 100644 trunk/drivers/video/bfin-lq035q1-fb.c delete mode 100644 trunk/drivers/video/mb862xx/mb862xxfb_accel.c delete mode 100644 trunk/drivers/video/mb862xx/mb862xxfb_accel.h delete mode 100644 trunk/include/linux/kmsg_dump.h delete mode 100644 trunk/include/linux/timb_gpio.h delete mode 100644 trunk/include/media/ir-core.h delete mode 100644 trunk/include/media/mt9t112.h delete mode 100644 trunk/include/media/rj54n1cb0c.h delete mode 100644 trunk/include/media/soc_mediabus.h delete mode 100644 trunk/include/media/v4l2-mediabus.h diff --git a/[refs] b/[refs] index d8870eaa808d..cc75f485d85a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 59be2e04e50ac9947e4356c10099f49977f5f74d +refs/heads/master: b568be627a7270eba575bc4406a606e1545f91bb diff --git a/trunk/Documentation/Changes b/trunk/Documentation/Changes index f08b313cd235..6d0f1efc5bf6 100644 --- a/trunk/Documentation/Changes +++ b/trunk/Documentation/Changes @@ -49,8 +49,6 @@ o oprofile 0.9 # oprofiled --version o udev 081 # udevinfo -V o grub 0.93 # grub --version o mcelog 0.6 -o iptables 1.4.1 # iptables -V - Kernel compilation ================== diff --git a/trunk/Documentation/DocBook/Makefile b/trunk/Documentation/DocBook/Makefile index 325cfd1d6d99..ab8300f67182 100644 --- a/trunk/Documentation/DocBook/Makefile +++ b/trunk/Documentation/DocBook/Makefile @@ -8,7 +8,7 @@ DOCBOOKS := z8530book.xml mcabook.xml device-drivers.xml \ kernel-hacking.xml kernel-locking.xml deviceiobook.xml \ - writing_usb_driver.xml networking.xml \ + procfs-guide.xml writing_usb_driver.xml networking.xml \ kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \ gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \ genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \ @@ -32,10 +32,10 @@ PS_METHOD = $(prefer-db2x) ### # The targets that may be used. -PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs xmldoclinks +PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs media BOOKS := $(addprefix $(obj)/,$(DOCBOOKS)) -xmldocs: $(BOOKS) xmldoclinks +xmldocs: $(BOOKS) sgmldocs: xmldocs PS := $(patsubst %.xml, %.ps, $(BOOKS)) @@ -45,24 +45,15 @@ PDF := $(patsubst %.xml, %.pdf, $(BOOKS)) pdfdocs: $(PDF) HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS))) -htmldocs: $(HTML) +htmldocs: media $(HTML) $(call build_main_index) - $(call build_images) MAN := $(patsubst %.xml, %.9, $(BOOKS)) mandocs: $(MAN) -build_images = mkdir -p $(objtree)/Documentation/DocBook/media/ && \ - cp $(srctree)/Documentation/DocBook/dvb/*.png $(srctree)/Documentation/DocBook/v4l/*.gif $(objtree)/Documentation/DocBook/media/ - -xmldoclinks: -ifneq ($(objtree),$(srctree)) - for dep in dvb media-entities.tmpl media-indices.tmpl v4l; do \ - rm -f $(objtree)/Documentation/DocBook/$$dep \ - && ln -s $(srctree)/Documentation/DocBook/$$dep $(objtree)/Documentation/DocBook/ \ - || exit; \ - done -endif +media: + mkdir -p $(srctree)/Documentation/DocBook/media/ + cp $(srctree)/Documentation/DocBook/dvb/*.png $(srctree)/Documentation/DocBook/v4l/*.gif $(srctree)/Documentation/DocBook/media/ installmandocs: mandocs mkdir -p /usr/local/man/man9/ @@ -74,7 +65,7 @@ KERNELDOC = $(srctree)/scripts/kernel-doc DOCPROC = $(objtree)/scripts/basic/docproc XMLTOFLAGS = -m $(srctree)/Documentation/DocBook/stylesheet.xsl -XMLTOFLAGS += --skip-validation +#XMLTOFLAGS += --skip-validation ### # DOCPROC is used for two purposes: @@ -110,6 +101,17 @@ endif # Changes in kernel-doc force a rebuild of all documentation $(BOOKS): $(KERNELDOC) +### +# procfs guide uses a .c file as example code. +# This requires an explicit dependency +C-procfs-example = procfs_example.xml +C-procfs-example2 = $(addprefix $(obj)/,$(C-procfs-example)) +$(obj)/procfs-guide.xml: $(C-procfs-example2) + +# List of programs to build +##oops, this is a kernel module::hostprogs-y := procfs_example +obj-m += procfs_example.o + # Tell kbuild to always build the programs always := $(hostprogs-y) @@ -236,7 +238,7 @@ clean-files := $(DOCBOOKS) \ $(patsubst %.xml, %.pdf, $(DOCBOOKS)) \ $(patsubst %.xml, %.html, $(DOCBOOKS)) \ $(patsubst %.xml, %.9, $(DOCBOOKS)) \ - $(index) + $(C-procfs-example) $(index) clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man diff --git a/trunk/Documentation/DocBook/media-entities.tmpl b/trunk/Documentation/DocBook/media-entities.tmpl index c725cb852c54..bb5ab741220e 100644 --- a/trunk/Documentation/DocBook/media-entities.tmpl +++ b/trunk/Documentation/DocBook/media-entities.tmpl @@ -23,7 +23,6 @@ VIDIOC_ENUMINPUT"> VIDIOC_ENUMOUTPUT"> VIDIOC_ENUMSTD"> -VIDIOC_ENUM_DV_PRESETS"> VIDIOC_ENUM_FMT"> VIDIOC_ENUM_FRAMEINTERVALS"> VIDIOC_ENUM_FRAMESIZES"> @@ -31,8 +30,6 @@ VIDIOC_G_AUDOUT"> VIDIOC_G_CROP"> VIDIOC_G_CTRL"> -VIDIOC_G_DV_PRESET"> -VIDIOC_G_DV_TIMINGS"> VIDIOC_G_ENC_INDEX"> VIDIOC_G_EXT_CTRLS"> VIDIOC_G_FBUF"> @@ -56,7 +53,6 @@ VIDIOC_QUERYCTRL"> VIDIOC_QUERYMENU"> VIDIOC_QUERYSTD"> -VIDIOC_QUERY_DV_PRESET"> VIDIOC_REQBUFS"> VIDIOC_STREAMOFF"> VIDIOC_STREAMON"> @@ -64,8 +60,6 @@ VIDIOC_S_AUDOUT"> VIDIOC_S_CROP"> VIDIOC_S_CTRL"> -VIDIOC_S_DV_PRESET"> -VIDIOC_S_DV_TIMINGS"> VIDIOC_S_EXT_CTRLS"> VIDIOC_S_FBUF"> VIDIOC_S_FMT"> @@ -124,7 +118,6 @@ v4l2_audio"> v4l2_audioout"> -v4l2_bt_timings"> v4l2_buffer"> v4l2_capability"> v4l2_captureparm"> @@ -135,9 +128,6 @@ v4l2_dbg_chip_ident"> v4l2_dbg_match"> v4l2_dbg_register"> -v4l2_dv_enum_preset"> -v4l2_dv_preset"> -v4l2_dv_timings"> v4l2_enc_idx"> v4l2_enc_idx_entry"> v4l2_encoder_cmd"> @@ -253,10 +243,6 @@ - - - - @@ -347,10 +333,6 @@ - - - - diff --git a/trunk/Documentation/DocBook/media-indices.tmpl b/trunk/Documentation/DocBook/media-indices.tmpl index 78d6031de001..9e30a236d74f 100644 --- a/trunk/Documentation/DocBook/media-indices.tmpl +++ b/trunk/Documentation/DocBook/media-indices.tmpl @@ -36,7 +36,6 @@ enum v4l2_preemphasis struct v4l2_audio struct v4l2_audioout -struct v4l2_bt_timings struct v4l2_buffer struct v4l2_capability struct v4l2_captureparm @@ -47,9 +46,6 @@ struct v4l2_dbg_chip_ident struct v4l2_dbg_match struct v4l2_dbg_register -struct v4l2_dv_enum_preset -struct v4l2_dv_preset -struct v4l2_dv_timings struct v4l2_enc_idx struct v4l2_enc_idx_entry struct v4l2_encoder_cmd diff --git a/trunk/Documentation/DocBook/procfs-guide.tmpl b/trunk/Documentation/DocBook/procfs-guide.tmpl new file mode 100644 index 000000000000..9eba4b7af73d --- /dev/null +++ b/trunk/Documentation/DocBook/procfs-guide.tmpl @@ -0,0 +1,626 @@ + + +]> + + + + Linux Kernel Procfs Guide + + + + Erik + (J.A.K.) + Mouw + +
+ mouw@nl.linux.org +
+
+
+ + + This software and documentation were written while working on the + LART computing board + (http://www.lartmaker.nl/), + which was sponsored by the Delt University of Technology projects + Mobile Multi-media Communications and Ubiquitous Communications. + + +
+ + + + 1.0 + May 30, 2001 + Initial revision posted to linux-kernel + + + 1.1 + June 3, 2001 + Revised after comments from linux-kernel + + + + + 2001 + Erik Mouw + + + + + + This documentation is free software; you can redistribute it + and/or modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later + version. + + + + This documentation is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the GNU General Public License for more details. + + + + You should have received a copy of the GNU General Public + License along with this program; if not, write to the Free + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, + MA 02111-1307 USA + + + + For more details see the file COPYING in the source + distribution of Linux. + + +
+ + + + + + + + + + + + Preface + + + This guide describes the use of the procfs file system from + within the Linux kernel. The idea to write this guide came up on + the #kernelnewbies IRC channel (see http://www.kernelnewbies.org/), + when Jeff Garzik explained the use of procfs and forwarded me a + message Alexander Viro wrote to the linux-kernel mailing list. I + agreed to write it up nicely, so here it is. + + + + I'd like to thank Jeff Garzik + jgarzik@pobox.com and Alexander Viro + viro@parcelfarce.linux.theplanet.co.uk for their input, + Tim Waugh twaugh@redhat.com for his Selfdocbook, + and Marc Joosen marcj@historia.et.tudelft.nl for + proofreading. + + + + Erik + + + + + + + + Introduction + + + The /proc file system + (procfs) is a special file system in the linux kernel. It's a + virtual file system: it is not associated with a block device + but exists only in memory. The files in the procfs are there to + allow userland programs access to certain information from the + kernel (like process information in /proc/[0-9]+/), but also for debug + purposes (like /proc/ksyms). + + + + This guide describes the use of the procfs file system from + within the Linux kernel. It starts by introducing all relevant + functions to manage the files within the file system. After that + it shows how to communicate with userland, and some tips and + tricks will be pointed out. Finally a complete example will be + shown. + + + + Note that the files in /proc/sys are sysctl files: they + don't belong to procfs and are governed by a completely + different API described in the Kernel API book. + + + + + + + + Managing procfs entries + + + This chapter describes the functions that various kernel + components use to populate the procfs with files, symlinks, + device nodes, and directories. + + + + A minor note before we start: if you want to use any of the + procfs functions, be sure to include the correct header file! + This should be one of the first lines in your code: + + + +#include <linux/proc_fs.h> + + + + + + + Creating a regular file + + + + struct proc_dir_entry* create_proc_entry + const char* name + mode_t mode + struct proc_dir_entry* parent + + + + + This function creates a regular file with the name + name, file mode + mode in the directory + parent. To create a file in the root of + the procfs, use NULL as + parent parameter. When successful, the + function will return a pointer to the freshly created + struct proc_dir_entry; otherwise it + will return NULL. describes how to do something useful with + regular files. + + + + Note that it is specifically supported that you can pass a + path that spans multiple directories. For example + create_proc_entry("drivers/via0/info") + will create the via0 + directory if necessary, with standard + 0755 permissions. + + + + If you only want to be able to read the file, the function + create_proc_read_entry described in may be used to create and initialise + the procfs entry in one single call. + + + + + + + + Creating a symlink + + + + struct proc_dir_entry* + proc_symlink const + char* name + struct proc_dir_entry* + parent const + char* dest + + + + + This creates a symlink in the procfs directory + parent that points from + name to + dest. This translates in userland to + ln -s dest + name. + + + + + Creating a directory + + + + struct proc_dir_entry* proc_mkdir + const char* name + struct proc_dir_entry* parent + + + + + Create a directory name in the procfs + directory parent. + + + + + + + + Removing an entry + + + + void remove_proc_entry + const char* name + struct proc_dir_entry* parent + + + + + Removes the entry name in the directory + parent from the procfs. Entries are + removed by their name, not by the + struct proc_dir_entry returned by the + various create functions. Note that this function doesn't + recursively remove entries. + + + + Be sure to free the data entry from + the struct proc_dir_entry before + remove_proc_entry is called (that is: if + there was some data allocated, of + course). See for more information + on using the data entry. + + + + + + + + + Communicating with userland + + + Instead of reading (or writing) information directly from + kernel memory, procfs works with call back + functions for files: functions that are called when + a specific file is being read or written. Such functions have + to be initialised after the procfs file is created by setting + the read_proc and/or + write_proc fields in the + struct proc_dir_entry* that the + function create_proc_entry returned: + + + +struct proc_dir_entry* entry; + +entry->read_proc = read_proc_foo; +entry->write_proc = write_proc_foo; + + + + If you only want to use a the + read_proc, the function + create_proc_read_entry described in may be used to create and initialise the + procfs entry in one single call. + + + + + + Reading data + + + The read function is a call back function that allows userland + processes to read data from the kernel. The read function + should have the following format: + + + + + int read_func + char* buffer + char** start + off_t off + int count + int* peof + void* data + + + + + The read function should write its information into the + buffer, which will be exactly + PAGE_SIZE bytes long. + + + + The parameter + peof should be used to signal that the + end of the file has been reached by writing + 1 to the memory location + peof points to. + + + + The data + parameter can be used to create a single call back function for + several files, see . + + + + The rest of the parameters and the return value are described + by a comment in fs/proc/generic.c as follows: + + +
+ + You have three ways to return data: + + + + + Leave *start = NULL. (This is the default.) + Put the data of the requested offset at that + offset within the buffer. Return the number (n) + of bytes there are from the beginning of the + buffer up to the last byte of data. If the + number of supplied bytes (= n - offset) is + greater than zero and you didn't signal eof + and the reader is prepared to take more data + you will be called again with the requested + offset advanced by the number of bytes + absorbed. This interface is useful for files + no larger than the buffer. + + + + + Set *start to an unsigned long value less than + the buffer address but greater than zero. + Put the data of the requested offset at the + beginning of the buffer. Return the number of + bytes of data placed there. If this number is + greater than zero and you didn't signal eof + and the reader is prepared to take more data + you will be called again with the requested + offset advanced by *start. This interface is + useful when you have a large file consisting + of a series of blocks which you want to count + and return as wholes. + (Hack by Paul.Russell@rustcorp.com.au) + + + + + Set *start to an address within the buffer. + Put the data of the requested offset at *start. + Return the number of bytes of data placed there. + If this number is greater than zero and you + didn't signal eof and the reader is prepared to + take more data you will be called again with the + requested offset advanced by the number of bytes + absorbed. + + + +
+ + + shows how to use a read call back + function. + +
+ + + + + + Writing data + + + The write call back function allows a userland process to write + data to the kernel, so it has some kind of control over the + kernel. The write function should have the following format: + + + + + int write_func + struct file* file + const char* buffer + unsigned long count + void* data + + + + + The write function should read count + bytes at maximum from the buffer. Note + that the buffer doesn't live in the + kernel's memory space, so it should first be copied to kernel + space with copy_from_user. The + file parameter is usually + ignored. shows how to use the + data parameter. + + + + Again, shows how to use this call back + function. + + + + + + + + A single call back for many files + + + When a large number of almost identical files is used, it's + quite inconvenient to use a separate call back function for + each file. A better approach is to have a single call back + function that distinguishes between the files by using the + data field in struct + proc_dir_entry. First of all, the + data field has to be initialised: + + + +struct proc_dir_entry* entry; +struct my_file_data *file_data; + +file_data = kmalloc(sizeof(struct my_file_data), GFP_KERNEL); +entry->data = file_data; + + + + The data field is a void + *, so it can be initialised with anything. + + + + Now that the data field is set, the + read_proc and + write_proc can use it to distinguish + between files because they get it passed into their + data parameter: + + + +int foo_read_func(char *page, char **start, off_t off, + int count, int *eof, void *data) +{ + int len; + + if(data == file_data) { + /* special case for this file */ + } else { + /* normal processing */ + } + + return len; +} + + + + Be sure to free the data data field + when removing the procfs entry. + + +
+ + + + + + Tips and tricks + + + + + + Convenience functions + + + + struct proc_dir_entry* create_proc_read_entry + const char* name + mode_t mode + struct proc_dir_entry* parent + read_proc_t* read_proc + void* data + + + + + This function creates a regular file in exactly the same way + as create_proc_entry from does, but also allows to set the read + function read_proc in one call. This + function can set the data as well, like + explained in . + + + + + + + Modules + + + If procfs is being used from within a module, be sure to set + the owner field in the + struct proc_dir_entry to + THIS_MODULE. + + + +struct proc_dir_entry* entry; + +entry->owner = THIS_MODULE; + + + + + + + + Mode and ownership + + + Sometimes it is useful to change the mode and/or ownership of + a procfs entry. Here is an example that shows how to achieve + that: + + + +struct proc_dir_entry* entry; + +entry->mode = S_IWUSR |S_IRUSR | S_IRGRP | S_IROTH; +entry->uid = 0; +entry->gid = 100; + + + + + + + + + + Example + + + +&procfsexample; + + +
diff --git a/trunk/Documentation/DocBook/procfs_example.c b/trunk/Documentation/DocBook/procfs_example.c new file mode 100644 index 000000000000..a5b11793b1e0 --- /dev/null +++ b/trunk/Documentation/DocBook/procfs_example.c @@ -0,0 +1,201 @@ +/* + * procfs_example.c: an example proc interface + * + * Copyright (C) 2001, Erik Mouw (mouw@nl.linux.org) + * + * This file accompanies the procfs-guide in the Linux kernel + * source. Its main use is to demonstrate the concepts and + * functions described in the guide. + * + * This software has been developed while working on the LART + * computing board (http://www.lartmaker.nl), which was sponsored + * by the Delt University of Technology projects Mobile Multi-media + * Communications and Ubiquitous Communications. + * + * This program is free software; you can redistribute + * it and/or modify it under the terms of the GNU General + * Public License as published by the Free Software + * Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be + * useful, but WITHOUT ANY WARRANTY; without even the implied + * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place, + * Suite 330, Boston, MA 02111-1307 USA + * + */ + +#include +#include +#include +#include +#include +#include + + +#define MODULE_VERS "1.0" +#define MODULE_NAME "procfs_example" + +#define FOOBAR_LEN 8 + +struct fb_data_t { + char name[FOOBAR_LEN + 1]; + char value[FOOBAR_LEN + 1]; +}; + + +static struct proc_dir_entry *example_dir, *foo_file, + *bar_file, *jiffies_file, *symlink; + + +struct fb_data_t foo_data, bar_data; + + +static int proc_read_jiffies(char *page, char **start, + off_t off, int count, + int *eof, void *data) +{ + int len; + + len = sprintf(page, "jiffies = %ld\n", + jiffies); + + return len; +} + + +static int proc_read_foobar(char *page, char **start, + off_t off, int count, + int *eof, void *data) +{ + int len; + struct fb_data_t *fb_data = (struct fb_data_t *)data; + + /* DON'T DO THAT - buffer overruns are bad */ + len = sprintf(page, "%s = '%s'\n", + fb_data->name, fb_data->value); + + return len; +} + + +static int proc_write_foobar(struct file *file, + const char *buffer, + unsigned long count, + void *data) +{ + int len; + struct fb_data_t *fb_data = (struct fb_data_t *)data; + + if(count > FOOBAR_LEN) + len = FOOBAR_LEN; + else + len = count; + + if(copy_from_user(fb_data->value, buffer, len)) + return -EFAULT; + + fb_data->value[len] = '\0'; + + return len; +} + + +static int __init init_procfs_example(void) +{ + int rv = 0; + + /* create directory */ + example_dir = proc_mkdir(MODULE_NAME, NULL); + if(example_dir == NULL) { + rv = -ENOMEM; + goto out; + } + /* create jiffies using convenience function */ + jiffies_file = create_proc_read_entry("jiffies", + 0444, example_dir, + proc_read_jiffies, + NULL); + if(jiffies_file == NULL) { + rv = -ENOMEM; + goto no_jiffies; + } + + /* create foo and bar files using same callback + * functions + */ + foo_file = create_proc_entry("foo", 0644, example_dir); + if(foo_file == NULL) { + rv = -ENOMEM; + goto no_foo; + } + + strcpy(foo_data.name, "foo"); + strcpy(foo_data.value, "foo"); + foo_file->data = &foo_data; + foo_file->read_proc = proc_read_foobar; + foo_file->write_proc = proc_write_foobar; + + bar_file = create_proc_entry("bar", 0644, example_dir); + if(bar_file == NULL) { + rv = -ENOMEM; + goto no_bar; + } + + strcpy(bar_data.name, "bar"); + strcpy(bar_data.value, "bar"); + bar_file->data = &bar_data; + bar_file->read_proc = proc_read_foobar; + bar_file->write_proc = proc_write_foobar; + + /* create symlink */ + symlink = proc_symlink("jiffies_too", example_dir, + "jiffies"); + if(symlink == NULL) { + rv = -ENOMEM; + goto no_symlink; + } + + /* everything OK */ + printk(KERN_INFO "%s %s initialised\n", + MODULE_NAME, MODULE_VERS); + return 0; + +no_symlink: + remove_proc_entry("bar", example_dir); +no_bar: + remove_proc_entry("foo", example_dir); +no_foo: + remove_proc_entry("jiffies", example_dir); +no_jiffies: + remove_proc_entry(MODULE_NAME, NULL); +out: + return rv; +} + + +static void __exit cleanup_procfs_example(void) +{ + remove_proc_entry("jiffies_too", example_dir); + remove_proc_entry("bar", example_dir); + remove_proc_entry("foo", example_dir); + remove_proc_entry("jiffies", example_dir); + remove_proc_entry(MODULE_NAME, NULL); + + printk(KERN_INFO "%s %s removed\n", + MODULE_NAME, MODULE_VERS); +} + + +module_init(init_procfs_example); +module_exit(cleanup_procfs_example); + +MODULE_AUTHOR("Erik Mouw"); +MODULE_DESCRIPTION("procfs examples"); +MODULE_LICENSE("GPL"); diff --git a/trunk/Documentation/DocBook/v4l/common.xml b/trunk/Documentation/DocBook/v4l/common.xml index c65f0ac9b6ee..b1a81d246d58 100644 --- a/trunk/Documentation/DocBook/v4l/common.xml +++ b/trunk/Documentation/DocBook/v4l/common.xml @@ -716,41 +716,6 @@ if (-1 == ioctl (fd, &VIDIOC-S-STD;, &std_id)) { } -
- Digital Video (DV) Timings - - The video standards discussed so far has been dealing with Analog TV and the -corresponding video timings. Today there are many more different hardware interfaces -such as High Definition TV interfaces (HDMI), VGA, DVI connectors etc., that carry -video signals and there is a need to extend the API to select the video timings -for these interfaces. Since it is not possible to extend the &v4l2-std-id; due to -the limited bits available, a new set of IOCTLs is added to set/get video timings at -the input and output: - - DV Presets: Digital Video (DV) presets. These are IDs representing a -video timing at the input/output. Presets are pre-defined timings implemented -by the hardware according to video standards. A __u32 data type is used to represent -a preset unlike the bit mask that is used in &v4l2-std-id; allowing future extensions -to support as many different presets as needed. - - - Custom DV Timings: This will allow applications to define more detailed -custom video timings for the interface. This includes parameters such as width, height, -polarities, frontporch, backporch etc. - - - - To enumerate and query the attributes of DV presets supported by a device, -applications use the &VIDIOC-ENUM-DV-PRESETS; ioctl. To get the current DV preset, -applications use the &VIDIOC-G-DV-PRESET; ioctl and to set a preset they use the -&VIDIOC-S-DV-PRESET; ioctl. - To set custom DV timings for the device, applications use the -&VIDIOC-S-DV-TIMINGS; ioctl and to get current custom DV timings they use the -&VIDIOC-G-DV-TIMINGS; ioctl. - Applications can make use of the and - flags to decide what ioctls are available to set the -video timings for the device. -
&sub-controls; diff --git a/trunk/Documentation/DocBook/v4l/compat.xml b/trunk/Documentation/DocBook/v4l/compat.xml index b9dbdf9e6d29..4d1902a54d61 100644 --- a/trunk/Documentation/DocBook/v4l/compat.xml +++ b/trunk/Documentation/DocBook/v4l/compat.xml @@ -2291,8 +2291,8 @@ was renamed to v4l2_chip_ident_old New control V4L2_CID_COLORFX was added. - - + +
V4L2 in Linux 2.6.32 @@ -2322,16 +2322,8 @@ more information. Added Remote Controller chapter, describing the default Remote Controller mapping for media devices. - -
-
- V4L2 in Linux 2.6.33 - - - Added support for Digital Video timings in order to support HDTV receivers and transmitters. - - -
+ +
diff --git a/trunk/Documentation/DocBook/v4l/v4l2.xml b/trunk/Documentation/DocBook/v4l/v4l2.xml index 060105af49e5..937b4157a5d0 100644 --- a/trunk/Documentation/DocBook/v4l/v4l2.xml +++ b/trunk/Documentation/DocBook/v4l/v4l2.xml @@ -74,17 +74,6 @@ Remote Controller chapter. - - - Muralidharan - Karicheri - Documented the Digital Video timings API. - -
- m-karicheri2@ti.com -
-
-
@@ -100,7 +89,7 @@ Remote Controller chapter. 2008 2009 Bill Dirks, Michael H. Schimek, Hans Verkuil, Martin -Rubli, Andy Walls, Muralidharan Karicheri, Mauro Carvalho Chehab +Rubli, Andy Walls, Mauro Carvalho Chehab Except when explicitly stated as GPL, programming examples within @@ -113,13 +102,6 @@ structs, ioctls) must be noted in more detail in the history chapter (compat.sgml), along with the possible impact on existing drivers and applications. --> - - 2.6.33 - 2009-12-03 - mk - Added documentation for the Digital Video timings API. - - 2.6.32 2009-08-31 @@ -373,7 +355,7 @@ and discussions on the V4L mailing list. Video for Linux Two API Specification - Revision 2.6.33 + Revision 2.6.32 &sub-common; @@ -429,7 +411,6 @@ and discussions on the V4L mailing list. &sub-encoder-cmd; &sub-enumaudio; &sub-enumaudioout; - &sub-enum-dv-presets; &sub-enum-fmt; &sub-enum-framesizes; &sub-enum-frameintervals; @@ -440,8 +421,6 @@ and discussions on the V4L mailing list. &sub-g-audioout; &sub-g-crop; &sub-g-ctrl; - &sub-g-dv-preset; - &sub-g-dv-timings; &sub-g-enc-index; &sub-g-ext-ctrls; &sub-g-fbuf; @@ -462,7 +441,6 @@ and discussions on the V4L mailing list. &sub-querybuf; &sub-querycap; &sub-queryctrl; - &sub-query-dv-preset; &sub-querystd; &sub-reqbufs; &sub-s-hw-freq-seek; diff --git a/trunk/Documentation/DocBook/v4l/videodev2.h.xml b/trunk/Documentation/DocBook/v4l/videodev2.h.xml index 068325940658..3e282ed9f593 100644 --- a/trunk/Documentation/DocBook/v4l/videodev2.h.xml +++ b/trunk/Documentation/DocBook/v4l/videodev2.h.xml @@ -733,99 +733,6 @@ struct v4l2_standard { __u32 reserved[4]; }; -/* - * V I D E O T I M I N G S D V P R E S E T - */ -struct v4l2_dv_preset { - __u32 preset; - __u32 reserved[4]; -}; - -/* - * D V P R E S E T S E N U M E R A T I O N - */ -struct v4l2_dv_enum_preset { - __u32 index; - __u32 preset; - __u8 name[32]; /* Name of the preset timing */ - __u32 width; - __u32 height; - __u32 reserved[4]; -}; - -/* - * D V P R E S E T V A L U E S - */ -#define V4L2_DV_INVALID 0 -#define V4L2_DV_480P59_94 1 /* BT.1362 */ -#define V4L2_DV_576P50 2 /* BT.1362 */ -#define V4L2_DV_720P24 3 /* SMPTE 296M */ -#define V4L2_DV_720P25 4 /* SMPTE 296M */ -#define V4L2_DV_720P30 5 /* SMPTE 296M */ -#define V4L2_DV_720P50 6 /* SMPTE 296M */ -#define V4L2_DV_720P59_94 7 /* SMPTE 274M */ -#define V4L2_DV_720P60 8 /* SMPTE 274M/296M */ -#define V4L2_DV_1080I29_97 9 /* BT.1120/ SMPTE 274M */ -#define V4L2_DV_1080I30 10 /* BT.1120/ SMPTE 274M */ -#define V4L2_DV_1080I25 11 /* BT.1120 */ -#define V4L2_DV_1080I50 12 /* SMPTE 296M */ -#define V4L2_DV_1080I60 13 /* SMPTE 296M */ -#define V4L2_DV_1080P24 14 /* SMPTE 296M */ -#define V4L2_DV_1080P25 15 /* SMPTE 296M */ -#define V4L2_DV_1080P30 16 /* SMPTE 296M */ -#define V4L2_DV_1080P50 17 /* BT.1120 */ -#define V4L2_DV_1080P60 18 /* BT.1120 */ - -/* - * D V B T T I M I N G S - */ - -/* BT.656/BT.1120 timing data */ -struct v4l2_bt_timings { - __u32 width; /* width in pixels */ - __u32 height; /* height in lines */ - __u32 interlaced; /* Interlaced or progressive */ - __u32 polarities; /* Positive or negative polarity */ - __u64 pixelclock; /* Pixel clock in HZ. Ex. 74.25MHz->74250000 */ - __u32 hfrontporch; /* Horizpontal front porch in pixels */ - __u32 hsync; /* Horizontal Sync length in pixels */ - __u32 hbackporch; /* Horizontal back porch in pixels */ - __u32 vfrontporch; /* Vertical front porch in pixels */ - __u32 vsync; /* Vertical Sync length in lines */ - __u32 vbackporch; /* Vertical back porch in lines */ - __u32 il_vfrontporch; /* Vertical front porch for bottom field of - * interlaced field formats - */ - __u32 il_vsync; /* Vertical sync length for bottom field of - * interlaced field formats - */ - __u32 il_vbackporch; /* Vertical back porch for bottom field of - * interlaced field formats - */ - __u32 reserved[16]; -} __attribute__ ((packed)); - -/* Interlaced or progressive format */ -#define V4L2_DV_PROGRESSIVE 0 -#define V4L2_DV_INTERLACED 1 - -/* Polarities. If bit is not set, it is assumed to be negative polarity */ -#define V4L2_DV_VSYNC_POS_POL 0x00000001 -#define V4L2_DV_HSYNC_POS_POL 0x00000002 - - -/* DV timings */ -struct v4l2_dv_timings { - __u32 type; - union { - struct v4l2_bt_timings bt; - __u32 reserved[32]; - }; -} __attribute__ ((packed)); - -/* Values for the type field */ -#define V4L2_DV_BT_656_1120 0 /* BT.656/1120 timing type */ - /* * V I D E O I N P U T S */ @@ -837,8 +744,7 @@ struct v4l2_input { __u32 tuner; /* Associated tuner */ v4l2_std_id std; __u32 status; - __u32 capabilities; - __u32 reserved[3]; + __u32 reserved[4]; }; /* Values for the 'type' field */ @@ -869,11 +775,6 @@ struct v4l2_input { #define V4L2_IN_ST_NO_ACCESS 0x02000000 /* Conditional access denied */ #define V4L2_IN_ST_VTR 0x04000000 /* VTR time constant */ -/* capabilities flags */ -#define V4L2_IN_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */ -#define V4L2_IN_CAP_CUSTOM_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */ -#define V4L2_IN_CAP_STD 0x00000004 /* Supports S_STD */ - /* * V I D E O O U T P U T S */ @@ -884,19 +785,13 @@ struct v4l2_output { __u32 audioset; /* Associated audios (bitfield) */ __u32 modulator; /* Associated modulator */ v4l2_std_id std; - __u32 capabilities; - __u32 reserved[3]; + __u32 reserved[4]; }; /* Values for the 'type' field */ #define V4L2_OUTPUT_TYPE_MODULATOR 1 #define V4L2_OUTPUT_TYPE_ANALOG 2 #define V4L2_OUTPUT_TYPE_ANALOGVGAOVERLAY 3 -/* capabilities flags */ -#define V4L2_OUT_CAP_PRESETS 0x00000001 /* Supports S_DV_PRESET */ -#define V4L2_OUT_CAP_CUSTOM_TIMINGS 0x00000002 /* Supports S_DV_TIMINGS */ -#define V4L2_OUT_CAP_STD 0x00000004 /* Supports S_STD */ - /* * C O N T R O L S */ @@ -1731,13 +1626,6 @@ struct v4l2_dbg_chip_ident { #endif #define VIDIOC_S_HW_FREQ_SEEK _IOW('V', 82, struct v4l2_hw_freq_seek) -#define VIDIOC_ENUM_DV_PRESETS _IOWR('V', 83, struct v4l2_dv_enum_preset) -#define VIDIOC_S_DV_PRESET _IOWR('V', 84, struct v4l2_dv_preset) -#define VIDIOC_G_DV_PRESET _IOWR('V', 85, struct v4l2_dv_preset) -#define VIDIOC_QUERY_DV_PRESET _IOR('V', 86, struct v4l2_dv_preset) -#define VIDIOC_S_DV_TIMINGS _IOWR('V', 87, struct v4l2_dv_timings) -#define VIDIOC_G_DV_TIMINGS _IOWR('V', 88, struct v4l2_dv_timings) - /* Reminder: when adding new ioctls please add support for them to drivers/media/video/v4l2-compat-ioctl32.c as well! */ diff --git a/trunk/Documentation/DocBook/v4l/vidioc-enum-dv-presets.xml b/trunk/Documentation/DocBook/v4l/vidioc-enum-dv-presets.xml deleted file mode 100644 index 1d31427edd1b..000000000000 --- a/trunk/Documentation/DocBook/v4l/vidioc-enum-dv-presets.xml +++ /dev/null @@ -1,238 +0,0 @@ - - - ioctl VIDIOC_ENUM_DV_PRESETS - &manvol; - - - - VIDIOC_ENUM_DV_PRESETS - Enumerate supported Digital Video presets - - - - - - int ioctl - int fd - int request - struct v4l2_dv_enum_preset *argp - - - - - - Arguments - - - - fd - - &fd; - - - - request - - VIDIOC_ENUM_DV_PRESETS - - - - argp - - - - - - - - - Description - - To query the attributes of a DV preset, applications initialize the -index field and zero the reserved array of &v4l2-dv-enum-preset; -and call the VIDIOC_ENUM_DV_PRESETS ioctl with a pointer to this -structure. Drivers fill the rest of the structure or return an -&EINVAL; when the index is out of bounds. To enumerate all DV Presets supported, -applications shall begin at index zero, incrementing by one until the -driver returns EINVAL. Drivers may enumerate a -different set of DV presets after switching the video input or -output. - - - struct <structname>v4l2_dv_enum_presets</structname> - - &cs-str; - - - __u32 - index - Number of the DV preset, set by the -application. - - - __u32 - preset - This field identifies one of the DV preset values listed in . - - - __u8 - name[24] - Name of the preset, a NUL-terminated ASCII string, for example: "720P-60", "1080I-60". This information is -intended for the user. - - - __u32 - width - Width of the active video in pixels for the DV preset. - - - __u32 - height - Height of the active video in lines for the DV preset. - - - __u32 - reserved[4] - Reserved for future extensions. Drivers must set the array to zero. - - - -
- - - struct <structname>DV Presets</structname> - - &cs-str; - - - Preset - Preset value - Description - - - - - - - - V4L2_DV_INVALID - 0 - Invalid preset value. - - - V4L2_DV_480P59_94 - 1 - 720x480 progressive video at 59.94 fps as per BT.1362. - - - V4L2_DV_576P50 - 2 - 720x576 progressive video at 50 fps as per BT.1362. - - - V4L2_DV_720P24 - 3 - 1280x720 progressive video at 24 fps as per SMPTE 296M. - - - V4L2_DV_720P25 - 4 - 1280x720 progressive video at 25 fps as per SMPTE 296M. - - - V4L2_DV_720P30 - 5 - 1280x720 progressive video at 30 fps as per SMPTE 296M. - - - V4L2_DV_720P50 - 6 - 1280x720 progressive video at 50 fps as per SMPTE 296M. - - - V4L2_DV_720P59_94 - 7 - 1280x720 progressive video at 59.94 fps as per SMPTE 274M. - - - V4L2_DV_720P60 - 8 - 1280x720 progressive video at 60 fps as per SMPTE 274M/296M. - - - V4L2_DV_1080I29_97 - 9 - 1920x1080 interlaced video at 29.97 fps as per BT.1120/SMPTE 274M. - - - V4L2_DV_1080I30 - 10 - 1920x1080 interlaced video at 30 fps as per BT.1120/SMPTE 274M. - - - V4L2_DV_1080I25 - 11 - 1920x1080 interlaced video at 25 fps as per BT.1120. - - - V4L2_DV_1080I50 - 12 - 1920x1080 interlaced video at 50 fps as per SMPTE 296M. - - - V4L2_DV_1080I60 - 13 - 1920x1080 interlaced video at 60 fps as per SMPTE 296M. - - - V4L2_DV_1080P24 - 14 - 1920x1080 progressive video at 24 fps as per SMPTE 296M. - - - V4L2_DV_1080P25 - 15 - 1920x1080 progressive video at 25 fps as per SMPTE 296M. - - - V4L2_DV_1080P30 - 16 - 1920x1080 progressive video at 30 fps as per SMPTE 296M. - - - V4L2_DV_1080P50 - 17 - 1920x1080 progressive video at 50 fps as per BT.1120. - - - V4L2_DV_1080P60 - 18 - 1920x1080 progressive video at 60 fps as per BT.1120. - - - -
-
- - - &return-value; - - - - EINVAL - - The &v4l2-dv-enum-preset; index -is out of bounds. - - - - -
- - diff --git a/trunk/Documentation/DocBook/v4l/vidioc-enuminput.xml b/trunk/Documentation/DocBook/v4l/vidioc-enuminput.xml index 71b868e2fb8f..414856b82473 100644 --- a/trunk/Documentation/DocBook/v4l/vidioc-enuminput.xml +++ b/trunk/Documentation/DocBook/v4l/vidioc-enuminput.xml @@ -124,13 +124,7 @@ current input. __u32 - capabilities - This field provides capabilities for the -input. See for flags. - - - __u32 - reserved[3] + reserved[4] Reserved for future extensions. Drivers must set the array to zero. @@ -267,34 +261,6 @@ flag is set Macrovision has been detected. - - - - Input capabilities - - &cs-def; - - - V4L2_IN_CAP_PRESETS - 0x00000001 - This input supports setting DV presets by using VIDIOC_S_DV_PRESET. - - - V4L2_OUT_CAP_CUSTOM_TIMINGS - 0x00000002 - This input supports setting custom video timings by using VIDIOC_S_DV_TIMINGS. - - - V4L2_IN_CAP_STD - 0x00000004 - This input supports setting the TV standard by using VIDIOC_S_STD. - - - -
diff --git a/trunk/Documentation/DocBook/v4l/vidioc-enumoutput.xml b/trunk/Documentation/DocBook/v4l/vidioc-enumoutput.xml index a281d26a195f..e8d16dcd50cf 100644 --- a/trunk/Documentation/DocBook/v4l/vidioc-enumoutput.xml +++ b/trunk/Documentation/DocBook/v4l/vidioc-enumoutput.xml @@ -114,13 +114,7 @@ details on video standards and how to switch see __u32 - capabilities - This field provides capabilities for the -output. See for flags. - - - __u32 - reserved[3] + reserved[4] Reserved for future extensions. Drivers must set the array to zero. @@ -153,34 +147,6 @@ CVBS, S-Video, RGB. - - - Output capabilities - - &cs-def; - - - V4L2_OUT_CAP_PRESETS - 0x00000001 - This output supports setting DV presets by using VIDIOC_S_DV_PRESET. - - - V4L2_OUT_CAP_CUSTOM_TIMINGS - 0x00000002 - This output supports setting custom video timings by using VIDIOC_S_DV_TIMINGS. - - - V4L2_OUT_CAP_STD - 0x00000004 - This output supports setting the TV standard by using VIDIOC_S_STD. - - - -
-
&return-value; diff --git a/trunk/Documentation/DocBook/v4l/vidioc-g-dv-preset.xml b/trunk/Documentation/DocBook/v4l/vidioc-g-dv-preset.xml deleted file mode 100644 index 3c6784e132f3..000000000000 --- a/trunk/Documentation/DocBook/v4l/vidioc-g-dv-preset.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - ioctl VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET - &manvol; - - - - VIDIOC_G_DV_PRESET - VIDIOC_S_DV_PRESET - Query or select the DV preset of the current input or output - - - - - - int ioctl - int fd - int request - &v4l2-dv-preset; -*argp - - - - - - Arguments - - - - fd - - &fd; - - - - request - - VIDIOC_G_DV_PRESET, VIDIOC_S_DV_PRESET - - - - argp - - - - - - - - - Description - To query and select the current DV preset, applications -use the VIDIOC_G_DV_PRESET and VIDIOC_S_DV_PRESET -ioctls which take a pointer to a &v4l2-dv-preset; type as argument. -Applications must zero the reserved array in &v4l2-dv-preset;. -VIDIOC_G_DV_PRESET returns a dv preset in the field -preset of &v4l2-dv-preset;. - - VIDIOC_S_DV_PRESET accepts a pointer to a &v4l2-dv-preset; -that has the preset value to be set. Applications must zero the reserved array in &v4l2-dv-preset;. -If the preset is not supported, it returns an &EINVAL; - - - - &return-value; - - - - EINVAL - - This ioctl is not supported, or the -VIDIOC_S_DV_PRESET,VIDIOC_S_DV_PRESET parameter was unsuitable. - - - - EBUSY - - The device is busy and therefore can not change the preset. - - - - - - struct <structname>v4l2_dv_preset</structname> - - &cs-str; - - - __u32 - preset - Preset value to represent the digital video timings - - - __u32 - reserved[4] - Reserved fields for future use - - - -
- -
-
- - diff --git a/trunk/Documentation/DocBook/v4l/vidioc-g-dv-timings.xml b/trunk/Documentation/DocBook/v4l/vidioc-g-dv-timings.xml deleted file mode 100644 index ecc19576bb8f..000000000000 --- a/trunk/Documentation/DocBook/v4l/vidioc-g-dv-timings.xml +++ /dev/null @@ -1,224 +0,0 @@ - - - ioctl VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS - &manvol; - - - - VIDIOC_G_DV_TIMINGS - VIDIOC_S_DV_TIMINGS - Get or set custom DV timings for input or output - - - - - - int ioctl - int fd - int request - &v4l2-dv-timings; -*argp - - - - - - Arguments - - - - fd - - &fd; - - - - request - - VIDIOC_G_DV_TIMINGS, VIDIOC_S_DV_TIMINGS - - - - argp - - - - - - - - - Description - To set custom DV timings for the input or output, applications use the -VIDIOC_S_DV_TIMINGS ioctl and to get the current custom timings, -applications use the VIDIOC_G_DV_TIMINGS ioctl. The detailed timing -information is filled in using the structure &v4l2-dv-timings;. These ioctls take -a pointer to the &v4l2-dv-timings; structure as argument. If the ioctl is not supported -or the timing values are not correct, the driver returns &EINVAL;. - - - - &return-value; - - - - EINVAL - - This ioctl is not supported, or the -VIDIOC_S_DV_TIMINGS parameter was unsuitable. - - - - EBUSY - - The device is busy and therefore can not change the timings. - - - - - - struct <structname>v4l2_bt_timings</structname> - - &cs-str; - - - __u32 - width - Width of the active video in pixels - - - __u32 - height - Height of the active video in lines - - - __u32 - interlaced - Progressive (0) or interlaced (1) - - - __u32 - polarities - This is a bit mask that defines polarities of sync signals. -bit 0 (V4L2_DV_VSYNC_POS_POL) is for vertical sync polarity and bit 1 (V4L2_DV_HSYNC_POS_POL) is for horizontal sync polarity. If the bit is set -(1) it is positive polarity and if is cleared (0), it is negative polarity. - - - __u64 - pixelclock - Pixel clock in Hz. Ex. 74.25MHz->74250000 - - - __u32 - hfrontporch - Horizontal front porch in pixels - - - __u32 - hsync - Horizontal sync length in pixels - - - __u32 - hbackporch - Horizontal back porch in pixels - - - __u32 - vfrontporch - Vertical front porch in lines - - - __u32 - vsync - Vertical sync length in lines - - - __u32 - vbackporch - Vertical back porch in lines - - - __u32 - il_vfrontporch - Vertical front porch in lines for bottom field of interlaced field formats - - - __u32 - il_vsync - Vertical sync length in lines for bottom field of interlaced field formats - - - __u32 - il_vbackporch - Vertical back porch in lines for bottom field of interlaced field formats - - - -
- - - struct <structname>v4l2_dv_timings</structname> - - &cs-str; - - - __u32 - type - - Type of DV timings as listed in . - - - union - - - - - - &v4l2-bt-timings; - bt - Timings defined by BT.656/1120 specifications - - - - __u32 - reserved[32] - - - - -
- - - DV Timing types - - &cs-str; - - - Timing type - value - Description - - - - - - - - V4L2_DV_BT_656_1120 - 0 - BT.656/1120 timings - - - -
-
-
- - diff --git a/trunk/Documentation/DocBook/v4l/vidioc-g-std.xml b/trunk/Documentation/DocBook/v4l/vidioc-g-std.xml index 912f8513e5da..b6f5d267e856 100644 --- a/trunk/Documentation/DocBook/v4l/vidioc-g-std.xml +++ b/trunk/Documentation/DocBook/v4l/vidioc-g-std.xml @@ -86,12 +86,6 @@ standards.
VIDIOC_S_STD parameter was unsuitable. - - EBUSY - - The device is busy and therefore can not change the standard - - diff --git a/trunk/Documentation/DocBook/v4l/vidioc-query-dv-preset.xml b/trunk/Documentation/DocBook/v4l/vidioc-query-dv-preset.xml deleted file mode 100644 index 87e4f0f6151c..000000000000 --- a/trunk/Documentation/DocBook/v4l/vidioc-query-dv-preset.xml +++ /dev/null @@ -1,85 +0,0 @@ - - - ioctl VIDIOC_QUERY_DV_PRESET - &manvol; - - - - VIDIOC_QUERY_DV_PRESET - Sense the DV preset received by the current -input - - - - - - int ioctl - int fd - int request - &v4l2-dv-preset; *argp - - - - - - Arguments - - - - fd - - &fd; - - - - request - - VIDIOC_QUERY_DV_PRESET - - - - argp - - - - - - - - - Description - - The hardware may be able to detect the current DV preset -automatically, similar to sensing the video standard. To do so, applications -call VIDIOC_QUERY_DV_PRESET with a pointer to a -&v4l2-dv-preset; type. Once the hardware detects a preset, that preset is -returned in the preset field of &v4l2-dv-preset;. When detection is not -possible or fails, the value V4L2_DV_INVALID is returned. - - - - &return-value; - - - EINVAL - - This ioctl is not supported. - - - - EBUSY - - The device is busy and therefore can not sense the preset - - - - - - - diff --git a/trunk/Documentation/DocBook/v4l/vidioc-querystd.xml b/trunk/Documentation/DocBook/v4l/vidioc-querystd.xml index 1a9e60393091..b5a7ff934486 100644 --- a/trunk/Documentation/DocBook/v4l/vidioc-querystd.xml +++ b/trunk/Documentation/DocBook/v4l/vidioc-querystd.xml @@ -70,12 +70,6 @@ current video input or output. This ioctl is not supported. - - EBUSY - - The device is busy and therefore can not detect the standard - - diff --git a/trunk/Documentation/SubmitChecklist b/trunk/Documentation/SubmitChecklist index 1053a56be3b1..78a9168ff377 100644 --- a/trunk/Documentation/SubmitChecklist +++ b/trunk/Documentation/SubmitChecklist @@ -15,7 +15,7 @@ kernel patches. 2: Passes allnoconfig, allmodconfig 3: Builds on multiple CPU architectures by using local cross-compile tools - or some other build farm. + or something like PLM at OSDL. 4: ppc64 is a good architecture for cross-compilation checking because it tends to use `unsigned long' for 64-bit quantities. @@ -88,6 +88,3 @@ kernel patches. 24: All memory barriers {e.g., barrier(), rmb(), wmb()} need a comment in the source code that explains the logic of what they are doing and why. - -25: If any ioctl's are added by the patch, then also update - Documentation/ioctl/ioctl-number.txt. diff --git a/trunk/Documentation/fb/viafb.txt b/trunk/Documentation/fb/viafb.txt index f3e046a6a987..67dbf442b0b6 100644 --- a/trunk/Documentation/fb/viafb.txt +++ b/trunk/Documentation/fb/viafb.txt @@ -7,7 +7,7 @@ VIA UniChrome Family(CLE266, PM800 / CN400 / CN300, P4M800CE / P4M800Pro / CN700 / VN800, CX700 / VX700, K8M890, P4M890, - CN896 / P4M900, VX800, VX855) + CN896 / P4M900, VX800) [Driver features] ------------------------ @@ -154,6 +154,13 @@ 0 : No Dual Edge Panel (default) 1 : Dual Edge Panel + viafb_video_dev: + This option is used to specify video output devices(CRT, DVI, LCD) for + duoview case. + For example: + To output video on DVI, we should use: + modprobe viafb viafb_video_dev=DVI... + viafb_lcd_port: This option is used to specify LCD output port, available values are "DVP0" "DVP1" "DFP_HIGHLOW" "DFP_HIGH" "DFP_LOW". @@ -174,6 +181,9 @@ Notes: and bpp, need to call VIAFB specified ioctl interface VIAFB_SET_DEVICE instead of calling common ioctl function FBIOPUT_VSCREENINFO since viafb doesn't support multi-head well, or it will cause screen crush. + 4. VX800 2D accelerator hasn't been supported in this driver yet. When + using driver on VX800, the driver will disable the acceleration + function as default. [Configure viafb with "fbset" tool] diff --git a/trunk/Documentation/filesystems/seq_file.txt b/trunk/Documentation/filesystems/seq_file.txt index a1e2e0dda907..0d15ebccf5b0 100644 --- a/trunk/Documentation/filesystems/seq_file.txt +++ b/trunk/Documentation/filesystems/seq_file.txt @@ -248,7 +248,9 @@ code, that is done in the initialization code in the usual way: { struct proc_dir_entry *entry; - proc_create("sequence", 0, NULL, &ct_file_ops); + entry = create_proc_entry("sequence", 0, NULL); + if (entry) + entry->proc_fops = &ct_file_ops; return 0; } diff --git a/trunk/Documentation/gpio.txt b/trunk/Documentation/gpio.txt index 1866c27eec69..e4e7daed2ba8 100644 --- a/trunk/Documentation/gpio.txt +++ b/trunk/Documentation/gpio.txt @@ -531,13 +531,6 @@ and have the following read/write attributes: This file exists only if the pin can be configured as an interrupt generating input pin. - "active_low" ... reads as either 0 (false) or 1 (true). Write - any nonzero value to invert the value attribute both - for reading and writing. Existing and subsequent - poll(2) support configuration via the edge attribute - for "rising" and "falling" edges will follow this - setting. - GPIO controllers have paths like /sys/class/gpio/gpiochip42/ (for the controller implementing GPIOs starting at #42) and have the following read-only attributes: @@ -573,8 +566,6 @@ requested using gpio_request(): int gpio_export_link(struct device *dev, const char *name, unsigned gpio) - /* change the polarity of a GPIO node in sysfs */ - int gpio_sysfs_set_active_low(unsigned gpio, int value); After a kernel driver requests a GPIO, it may only be made available in the sysfs interface by gpio_export(). The driver can control whether the @@ -589,9 +580,3 @@ After the GPIO has been exported, gpio_export_link() allows creating symlinks from elsewhere in sysfs to the GPIO sysfs node. Drivers can use this to provide the interface under their own device in sysfs with a descriptive name. - -Drivers can use gpio_sysfs_set_active_low() to hide GPIO line polarity -differences between boards from user space. This only affects the -sysfs interface. Polarity change can be done both before and after -gpio_export(), and previously enabled poll(2) support for either -rising or falling edge will be reconfigured to follow this setting. diff --git a/trunk/Documentation/infiniband/ipoib.txt b/trunk/Documentation/infiniband/ipoib.txt index 64eeb55d0c09..6d40f00b358c 100644 --- a/trunk/Documentation/infiniband/ipoib.txt +++ b/trunk/Documentation/infiniband/ipoib.txt @@ -36,11 +36,11 @@ Datagram vs Connected modes fabric with a 2K MTU, the IPoIB MTU will be 2048 - 4 = 2044 bytes. In connected mode, the IB RC (Reliable Connected) transport is used. - Connected mode takes advantage of the connected nature of the IB - transport and allows an MTU up to the maximal IP packet size of 64K, - which reduces the number of IP packets needed for handling large UDP - datagrams, TCP segments, etc and increases the performance for large - messages. + Connected mode is to takes advantage of the connected nature of the + IB transport and allows an MTU up to the maximal IP packet size of + 64K, which reduces the number of IP packets needed for handling + large UDP datagrams, TCP segments, etc and increases the performance + for large messages. In connected mode, the interface's UD QP is still used for multicast and communication with peers that don't support connected mode. In diff --git a/trunk/Documentation/kernel-parameters.txt b/trunk/Documentation/kernel-parameters.txt index c309515ae959..ab95d3ada5c7 100644 --- a/trunk/Documentation/kernel-parameters.txt +++ b/trunk/Documentation/kernel-parameters.txt @@ -2729,11 +2729,6 @@ and is between 256 and 4096 characters. It is defined in the file vmpoff= [KNL,S390] Perform z/VM CP command after power off. Format: - vt.cur_default= [VT] Default cursor shape. - Format: 0xCCBBAA, where AA, BB, and CC are the same as - the parameters of the [?A;B;Cc escape sequence; - see VGA-softcursor.txt. Default: 2 = underline. - vt.default_blu= [VT] Format: ,,,..., Change the default blue palette of the console. diff --git a/trunk/Documentation/powerpc/dts-bindings/4xx/ppc440spe-adma.txt b/trunk/Documentation/powerpc/dts-bindings/4xx/ppc440spe-adma.txt deleted file mode 100644 index 515ebcf1b97d..000000000000 --- a/trunk/Documentation/powerpc/dts-bindings/4xx/ppc440spe-adma.txt +++ /dev/null @@ -1,93 +0,0 @@ -PPC440SPe DMA/XOR (DMA Controller and XOR Accelerator) - -Device nodes needed for operation of the ppc440spe-adma driver -are specified hereby. These are I2O/DMA, DMA and XOR nodes -for DMA engines and Memory Queue Module node. The latter is used -by ADMA driver for configuration of RAID-6 H/W capabilities of -the PPC440SPe. In addition to the nodes and properties described -below, the ranges property of PLB node must specify ranges for -DMA devices. - - i) The I2O node - - Required properties: - - - compatible : "ibm,i2o-440spe"; - - reg : - - dcr-reg : - - Example: - - I2O: i2o@400100000 { - compatible = "ibm,i2o-440spe"; - reg = <0x00000004 0x00100000 0x100>; - dcr-reg = <0x060 0x020>; - }; - - - ii) The DMA node - - Required properties: - - - compatible : "ibm,dma-440spe"; - - cell-index : 1 cell, hardware index of the DMA engine - (typically 0x0 and 0x1 for DMA0 and DMA1) - - reg : - - dcr-reg : - - interrupts : . - - interrupt-parent : needed for interrupt mapping - - Example: - - DMA0: dma0@400100100 { - compatible = "ibm,dma-440spe"; - cell-index = <0>; - reg = <0x00000004 0x00100100 0x100>; - dcr-reg = <0x060 0x020>; - interrupt-parent = <&DMA0>; - interrupts = <0 1>; - #interrupt-cells = <1>; - #address-cells = <0>; - #size-cells = <0>; - interrupt-map = < - 0 &UIC0 0x14 4 - 1 &UIC1 0x16 4>; - }; - - - iii) XOR Accelerator node - - Required properties: - - - compatible : "amcc,xor-accelerator"; - - reg : - - interrupts : - - interrupt-parent : for interrupt mapping - - Example: - - xor-accel@400200000 { - compatible = "amcc,xor-accelerator"; - reg = <0x00000004 0x00200000 0x400>; - interrupt-parent = <&UIC1>; - interrupts = <0x1f 4>; - }; - - - iv) Memory Queue Module node - - Required properties: - - - compatible : "ibm,mq-440spe"; - - dcr-reg : - - Example: - - MQ0: mq { - compatible = "ibm,mq-440spe"; - dcr-reg = <0x040 0x020>; - }; - diff --git a/trunk/Documentation/video4linux/gspca.txt b/trunk/Documentation/video4linux/gspca.txt index 1800a62cf135..319d9838e87e 100644 --- a/trunk/Documentation/video4linux/gspca.txt +++ b/trunk/Documentation/video4linux/gspca.txt @@ -12,7 +12,6 @@ m5602 0402:5602 ALi Video Camera Controller spca501 040a:0002 Kodak DVC-325 spca500 040a:0300 Kodak EZ200 zc3xx 041e:041e Creative WebCam Live! -ov519 041e:4003 Video Blaster WebCam Go Plus spca500 041e:400a Creative PC-CAM 300 sunplus 041e:400b Creative PC-CAM 600 sunplus 041e:4012 PC-Cam350 @@ -169,14 +168,10 @@ sunplus 055f:c650 Mustek MDC5500Z zc3xx 055f:d003 Mustek WCam300A zc3xx 055f:d004 Mustek WCam300 AN conex 0572:0041 Creative Notebook cx11646 -ov519 05a9:0511 Video Blaster WebCam 3/WebCam Plus, D-Link USB Digital Video Camera -ov519 05a9:0518 Creative WebCam ov519 05a9:0519 OV519 Microphone ov519 05a9:0530 OmniVision -ov519 05a9:2800 OmniVision SuperCAM ov519 05a9:4519 Webcam Classic ov519 05a9:8519 OmniVision -ov519 05a9:a511 D-Link USB Digital Video Camera ov519 05a9:a518 D-Link DSB-C310 Webcam sunplus 05da:1018 Digital Dream Enigma 1.3 stk014 05e1:0893 Syntek DV4000 @@ -192,7 +187,7 @@ ov534 06f8:3002 Hercules Blog Webcam ov534 06f8:3003 Hercules Dualpix HD Weblog sonixj 06f8:3004 Hercules Classic Silver sonixj 06f8:3008 Hercules Deluxe Optical Glass -pac7302 06f8:3009 Hercules Classic Link +pac7311 06f8:3009 Hercules Classic Link spca508 0733:0110 ViewQuest VQ110 spca501 0733:0401 Intel Create and Share spca501 0733:0402 ViewQuest M318B @@ -204,7 +199,6 @@ sunplus 0733:2221 Mercury Digital Pro 3.1p sunplus 0733:3261 Concord 3045 spca536a sunplus 0733:3281 Cyberpix S550V spca506 0734:043b 3DeMon USB Capture aka -ov519 0813:0002 Dual Mode USB Camera Plus spca500 084d:0003 D-Link DSC-350 spca500 08ca:0103 Aiptek PocketDV sunplus 08ca:0104 Aiptek PocketDVII 1.3 @@ -242,15 +236,15 @@ pac7311 093a:2603 Philips SPC 500 NC pac7311 093a:2608 Trust WB-3300p pac7311 093a:260e Gigaware VGA PC Camera, Trust WB-3350p, SIGMA cam 2350 pac7311 093a:260f SnakeCam -pac7302 093a:2620 Apollo AC-905 -pac7302 093a:2621 PAC731x -pac7302 093a:2622 Genius Eye 312 -pac7302 093a:2624 PAC7302 -pac7302 093a:2626 Labtec 2200 -pac7302 093a:2628 Genius iLook 300 -pac7302 093a:2629 Genious iSlim 300 -pac7302 093a:262a Webcam 300k -pac7302 093a:262c Philips SPC 230 NC +pac7311 093a:2620 Apollo AC-905 +pac7311 093a:2621 PAC731x +pac7311 093a:2622 Genius Eye 312 +pac7311 093a:2624 PAC7302 +pac7311 093a:2626 Labtec 2200 +pac7311 093a:2628 Genius iLook 300 +pac7311 093a:2629 Genious iSlim 300 +pac7311 093a:262a Webcam 300k +pac7311 093a:262c Philips SPC 230 NC jeilinj 0979:0280 Sakar 57379 zc3xx 0ac8:0302 Z-star Vimicro zc0302 vc032x 0ac8:0321 Vimicro generic vc0321 @@ -265,7 +259,6 @@ vc032x 0ac8:c002 Sony embedded vimicro vc032x 0ac8:c301 Samsung Q1 Ultra Premium spca508 0af9:0010 Hama USB Sightcam 100 spca508 0af9:0011 Hama USB Sightcam 100 -ov519 0b62:0059 iBOT2 Webcam sonixb 0c45:6001 Genius VideoCAM NB sonixb 0c45:6005 Microdia Sweex Mini Webcam sonixb 0c45:6007 Sonix sn9c101 + Tas5110D @@ -325,10 +318,8 @@ sn9c20x 0c45:62b3 PC Camera (SN9C202 + OV9655) sn9c20x 0c45:62bb PC Camera (SN9C202 + OV7660) sn9c20x 0c45:62bc PC Camera (SN9C202 + HV7131R) sunplus 0d64:0303 Sunplus FashionCam DXG -ov519 0e96:c001 TRUST 380 USB2 SPACEC@M etoms 102c:6151 Qcam Sangha CIF etoms 102c:6251 Qcam xxxxxx VGA -ov519 1046:9967 W9967CF/W9968CF WebCam IC, Video Blaster WebCam Go zc3xx 10fd:0128 Typhoon Webshot II USB 300k 0x0128 spca561 10fd:7e50 FlyCam Usb 100 zc3xx 10fd:8050 Typhoon Webshot II USB 300k @@ -341,12 +332,7 @@ spca501 1776:501c Arowana 300K CMOS Camera t613 17a1:0128 TASCORP JPEG Webcam, NGS Cyclops vc032x 17ef:4802 Lenovo Vc0323+MI1310_SOC pac207 2001:f115 D-Link DSB-C120 -sq905c 2770:9050 sq905c -sq905c 2770:905c DualCamera -sq905 2770:9120 Argus Digital Camera DC1512 -sq905c 2770:913d sq905c spca500 2899:012c Toptro Industrial -ov519 8020:ef04 ov519 spca508 8086:0110 Intel Easy PC Camera spca500 8086:0630 Intel Pocket PC Camera spca506 99fa:8988 Grandtec V.cap diff --git a/trunk/Documentation/video4linux/sh_mobile_ceu_camera.txt b/trunk/Documentation/video4linux/sh_mobile_ceu_camera.txt deleted file mode 100644 index 2ae16349a78d..000000000000 --- a/trunk/Documentation/video4linux/sh_mobile_ceu_camera.txt +++ /dev/null @@ -1,157 +0,0 @@ - Cropping and Scaling algorithm, used in the sh_mobile_ceu_camera driver - ======================================================================= - -Terminology ------------ - -sensor scales: horizontal and vertical scales, configured by the sensor driver -host scales: -"- host driver -combined scales: sensor_scale * host_scale - - -Generic scaling / cropping scheme ---------------------------------- - --1-- -| --2-- -\ -| --\ -| --\ -+-5-- -\ -- -3-- -| ---\ -| --- -4-- -\ -| -\ -| - -6-- -| -| - -6'- -| -/ -| --- -4'- -/ -| ---/ -+-5'- -/ -| -- -3'- -| --/ -| --/ --2'- -/ -| -| --1'- - -Produced by user requests: - -S_CROP(left / top = (5) - (1), width / height = (5') - (5)) -S_FMT(width / height = (6') - (6)) - -Here: - -(1) to (1') - whole max width or height -(1) to (2) - sensor cropped left or top -(2) to (2') - sensor cropped width or height -(3) to (3') - sensor scale -(3) to (4) - CEU cropped left or top -(4) to (4') - CEU cropped width or height -(5) to (5') - reverse sensor scale applied to CEU cropped width or height -(2) to (5) - reverse sensor scale applied to CEU cropped left or top -(6) to (6') - CEU scale - user window - - -S_FMT ------ - -Do not touch input rectangle - it is already optimal. - -1. Calculate current sensor scales: - - scale_s = ((3') - (3)) / ((2') - (2)) - -2. Calculate "effective" input crop (sensor subwindow) - CEU crop scaled back at -current sensor scales onto input window - this is user S_CROP: - - width_u = (5') - (5) = ((4') - (4)) * scale_s - -3. Calculate new combined scales from "effective" input window to requested user -window: - - scale_comb = width_u / ((6') - (6)) - -4. Calculate sensor output window by applying combined scales to real input -window: - - width_s_out = ((2') - (2)) / scale_comb - -5. Apply iterative sensor S_FMT for sensor output window. - - subdev->video_ops->s_fmt(.width = width_s_out) - -6. Retrieve sensor output window (g_fmt) - -7. Calculate new sensor scales: - - scale_s_new = ((3')_new - (3)_new) / ((2') - (2)) - -8. Calculate new CEU crop - apply sensor scales to previously calculated -"effective" crop: - - width_ceu = (4')_new - (4)_new = width_u / scale_s_new - left_ceu = (4)_new - (3)_new = ((5) - (2)) / scale_s_new - -9. Use CEU cropping to crop to the new window: - - ceu_crop(.width = width_ceu, .left = left_ceu) - -10. Use CEU scaling to scale to the requested user window: - - scale_ceu = width_ceu / width - - -S_CROP ------- - -If old scale applied to new crop is invalid produce nearest new scale possible - -1. Calculate current combined scales. - - scale_comb = (((4') - (4)) / ((6') - (6))) * (((2') - (2)) / ((3') - (3))) - -2. Apply iterative sensor S_CROP for new input window. - -3. If old combined scales applied to new crop produce an impossible user window, -adjust scales to produce nearest possible window. - - width_u_out = ((5') - (5)) / scale_comb - - if (width_u_out > max) - scale_comb = ((5') - (5)) / max; - else if (width_u_out < min) - scale_comb = ((5') - (5)) / min; - -4. Issue G_CROP to retrieve actual input window. - -5. Using actual input window and calculated combined scales calculate sensor -target output window. - - width_s_out = ((3') - (3)) = ((2') - (2)) / scale_comb - -6. Apply iterative S_FMT for new sensor target output window. - -7. Issue G_FMT to retrieve the actual sensor output window. - -8. Calculate sensor scales. - - scale_s = ((3') - (3)) / ((2') - (2)) - -9. Calculate sensor output subwindow to be cropped on CEU by applying sensor -scales to the requested window. - - width_ceu = ((5') - (5)) / scale_s - -10. Use CEU cropping for above calculated window. - -11. Calculate CEU scales from sensor scales from results of (10) and user window -from (3) - - scale_ceu = calc_scale(((5') - (5)), &width_u_out) - -12. Apply CEU scales. - --- -Author: Guennadi Liakhovetski diff --git a/trunk/Documentation/video4linux/v4l2-framework.txt b/trunk/Documentation/video4linux/v4l2-framework.txt index 74d677c8b036..b806edaf3e75 100644 --- a/trunk/Documentation/video4linux/v4l2-framework.txt +++ b/trunk/Documentation/video4linux/v4l2-framework.txt @@ -561,8 +561,6 @@ video_device helper functions There are a few useful helper functions: -- file/video_device private data - You can set/get driver private data in the video_device struct using: void *video_get_drvdata(struct video_device *vdev); @@ -577,7 +575,8 @@ struct video_device *video_devdata(struct file *file); returns the video_device belonging to the file struct. -The video_drvdata function combines video_get_drvdata with video_devdata: +The final helper function combines video_get_drvdata with +video_devdata: void *video_drvdata(struct file *file); @@ -585,17 +584,6 @@ You can go from a video_device struct to the v4l2_device struct using: struct v4l2_device *v4l2_dev = vdev->v4l2_dev; -- Device node name - -The video_device node kernel name can be retrieved using - -const char *video_device_node_name(struct video_device *vdev); - -The name is used as a hint by userspace tools such as udev. The function -should be used where possible instead of accessing the video_device::num and -video_device::minor fields. - - video buffer helper functions ----------------------------- diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index d6a27110a747..0a32c3ec6b1c 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -5991,9 +5991,9 @@ F: sound/soc/codecs/wm8350.* F: sound/soc/codecs/wm8400.* X.25 NETWORK LAYER -M: Andrew Hendry +M: Henner Eisen L: linux-x25@vger.kernel.org -S: Odd Fixes +S: Maintained F: Documentation/networking/x25* F: include/net/x25* F: net/x25/ diff --git a/trunk/arch/alpha/include/asm/elf.h b/trunk/arch/alpha/include/asm/elf.h index 9baae8afe8a3..5c75c1b2352a 100644 --- a/trunk/arch/alpha/include/asm/elf.h +++ b/trunk/arch/alpha/include/asm/elf.h @@ -81,6 +81,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; #define ELF_DATA ELFDATA2LSB #define ELF_ARCH EM_ALPHA +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 8192 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/arm/include/asm/elf.h b/trunk/arch/arm/include/asm/elf.h index a399bb5730f1..6aac3f5bb2f3 100644 --- a/trunk/arch/arm/include/asm/elf.h +++ b/trunk/arch/arm/include/asm/elf.h @@ -101,6 +101,7 @@ extern int arm_elf_read_implies_exec(const struct elf32_hdr *, int); int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs); #define ELF_CORE_COPY_TASK_REGS dump_task_regs +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/arm/mach-bcmring/arch.c b/trunk/arch/arm/mach-bcmring/arch.c index 53dd2a9eecf9..fbe6fa02c882 100644 --- a/trunk/arch/arm/mach-bcmring/arch.c +++ b/trunk/arch/arm/mach-bcmring/arch.c @@ -70,19 +70,9 @@ static struct ctl_table bcmring_sysctl_reboot[] = { {} }; -static struct resource nand_resource[] = { - [0] = { - .start = MM_ADDR_IO_NAND, - .end = MM_ADDR_IO_NAND + 0x1000 - 1, - .flags = IORESOURCE_MEM, - }, -}; - static struct platform_device nand_device = { .name = "bcm-nand", .id = -1, - .resource = nand_resource, - .num_resources = ARRAY_SIZE(nand_resource), }; static struct platform_device *devices[] __initdata = { diff --git a/trunk/arch/arm/mach-bcmring/include/mach/reg_nand.h b/trunk/arch/arm/mach-bcmring/include/mach/reg_nand.h deleted file mode 100644 index 387376ffb56b..000000000000 --- a/trunk/arch/arm/mach-bcmring/include/mach/reg_nand.h +++ /dev/null @@ -1,66 +0,0 @@ -/***************************************************************************** -* Copyright 2001 - 2008 Broadcom Corporation. All rights reserved. -* -* Unless you and Broadcom execute a separate written software license -* agreement governing use of this software, this software is licensed to you -* under the terms of the GNU General Public License version 2, available at -* http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). -* -* Notwithstanding the above, under no circumstances may you combine this -* software in any way with any other Broadcom software provided under a -* license other than the GPL, without Broadcom's express prior written -* consent. -*****************************************************************************/ - -/* -* -***************************************************************************** -* -* REG_NAND.h -* -* PURPOSE: -* -* This file contains definitions for the nand registers: -* -* NOTES: -* -*****************************************************************************/ - -#if !defined(__ASM_ARCH_REG_NAND_H) -#define __ASM_ARCH_REG_NAND_H - -/* ---- Include Files ---------------------------------------------------- */ -#include -#include - -/* ---- Constants and Types ---------------------------------------------- */ - -#define HW_NAND_BASE MM_IO_BASE_NAND /* NAND Flash */ - -/* DMA accesses by the bootstrap need hard nonvirtual addresses */ -#define REG_NAND_CMD __REG16(HW_NAND_BASE + 0) -#define REG_NAND_ADDR __REG16(HW_NAND_BASE + 4) - -#define REG_NAND_PHYS_DATA16 (HW_NAND_BASE + 8) -#define REG_NAND_PHYS_DATA8 (HW_NAND_BASE + 8) -#define REG_NAND_DATA16 __REG16(REG_NAND_PHYS_DATA16) -#define REG_NAND_DATA8 __REG8(REG_NAND_PHYS_DATA8) - -/* use appropriate offset to make sure it start at the 1K boundary */ -#define REG_NAND_PHYS_DATA_DMA (HW_NAND_BASE + 0x400) -#define REG_NAND_DATA_DMA __REG32(REG_NAND_PHYS_DATA_DMA) - -/* Linux DMA requires physical address of the data register */ -#define REG_NAND_DATA16_PADDR HW_IO_VIRT_TO_PHYS(REG_NAND_PHYS_DATA16) -#define REG_NAND_DATA8_PADDR HW_IO_VIRT_TO_PHYS(REG_NAND_PHYS_DATA8) -#define REG_NAND_DATA_PADDR HW_IO_VIRT_TO_PHYS(REG_NAND_PHYS_DATA_DMA) - -#define NAND_BUS_16BIT() (0) -#define NAND_BUS_8BIT() (!NAND_BUS_16BIT()) - -/* Register offsets */ -#define REG_NAND_CMD_OFFSET (0) -#define REG_NAND_ADDR_OFFSET (4) -#define REG_NAND_DATA8_OFFSET (8) - -#endif diff --git a/trunk/arch/arm/mach-bcmring/include/mach/reg_umi.h b/trunk/arch/arm/mach-bcmring/include/mach/reg_umi.h deleted file mode 100644 index 06a355481ea6..000000000000 --- a/trunk/arch/arm/mach-bcmring/include/mach/reg_umi.h +++ /dev/null @@ -1,237 +0,0 @@ -/***************************************************************************** -* Copyright 2005 - 2008 Broadcom Corporation. All rights reserved. -* -* Unless you and Broadcom execute a separate written software license -* agreement governing use of this software, this software is licensed to you -* under the terms of the GNU General Public License version 2, available at -* http://www.broadcom.com/licenses/GPLv2.php (the "GPL"). -* -* Notwithstanding the above, under no circumstances may you combine this -* software in any way with any other Broadcom software provided under a -* license other than the GPL, without Broadcom's express prior written -* consent. -*****************************************************************************/ - -/* -* -***************************************************************************** -* -* REG_UMI.h -* -* PURPOSE: -* -* This file contains definitions for the nand registers: -* -* NOTES: -* -*****************************************************************************/ - -#if !defined(__ASM_ARCH_REG_UMI_H) -#define __ASM_ARCH_REG_UMI_H - -/* ---- Include Files ---------------------------------------------------- */ -#include -#include - -/* ---- Constants and Types ---------------------------------------------- */ - -/* Unified Memory Interface Ctrl Register */ -#define HW_UMI_BASE MM_IO_BASE_UMI - -/* Flash bank 0 timing and control register */ -#define REG_UMI_FLASH0_TCR __REG32(HW_UMI_BASE + 0x00) -/* Flash bank 1 timing and control register */ -#define REG_UMI_FLASH1_TCR __REG32(HW_UMI_BASE + 0x04) -/* Flash bank 2 timing and control register */ -#define REG_UMI_FLASH2_TCR __REG32(HW_UMI_BASE + 0x08) -/* MMD interface and control register */ -#define REG_UMI_MMD_ICR __REG32(HW_UMI_BASE + 0x0c) -/* NAND timing and control register */ -#define REG_UMI_NAND_TCR __REG32(HW_UMI_BASE + 0x18) -/* NAND ready/chip select register */ -#define REG_UMI_NAND_RCSR __REG32(HW_UMI_BASE + 0x1c) -/* NAND ECC control & status register */ -#define REG_UMI_NAND_ECC_CSR __REG32(HW_UMI_BASE + 0x20) -/* NAND ECC data register XXB2B1B0 */ -#define REG_UMI_NAND_ECC_DATA __REG32(HW_UMI_BASE + 0x24) -/* BCH ECC Parameter N */ -#define REG_UMI_BCH_N __REG32(HW_UMI_BASE + 0x40) -/* BCH ECC Parameter T */ -#define REG_UMI_BCH_K __REG32(HW_UMI_BASE + 0x44) -/* BCH ECC Parameter K */ -#define REG_UMI_BCH_T __REG32(HW_UMI_BASE + 0x48) -/* BCH ECC Contro Status */ -#define REG_UMI_BCH_CTRL_STATUS __REG32(HW_UMI_BASE + 0x4C) -/* BCH WR ECC 31:0 */ -#define REG_UMI_BCH_WR_ECC_0 __REG32(HW_UMI_BASE + 0x50) -/* BCH WR ECC 63:32 */ -#define REG_UMI_BCH_WR_ECC_1 __REG32(HW_UMI_BASE + 0x54) -/* BCH WR ECC 95:64 */ -#define REG_UMI_BCH_WR_ECC_2 __REG32(HW_UMI_BASE + 0x58) -/* BCH WR ECC 127:96 */ -#define REG_UMI_BCH_WR_ECC_3 __REG32(HW_UMI_BASE + 0x5c) -/* BCH WR ECC 155:128 */ -#define REG_UMI_BCH_WR_ECC_4 __REG32(HW_UMI_BASE + 0x60) -/* BCH Read Error Location 1,0 */ -#define REG_UMI_BCH_RD_ERR_LOC_1_0 __REG32(HW_UMI_BASE + 0x64) -/* BCH Read Error Location 3,2 */ -#define REG_UMI_BCH_RD_ERR_LOC_3_2 __REG32(HW_UMI_BASE + 0x68) -/* BCH Read Error Location 5,4 */ -#define REG_UMI_BCH_RD_ERR_LOC_5_4 __REG32(HW_UMI_BASE + 0x6c) -/* BCH Read Error Location 7,6 */ -#define REG_UMI_BCH_RD_ERR_LOC_7_6 __REG32(HW_UMI_BASE + 0x70) -/* BCH Read Error Location 9,8 */ -#define REG_UMI_BCH_RD_ERR_LOC_9_8 __REG32(HW_UMI_BASE + 0x74) -/* BCH Read Error Location 11,10 */ -#define REG_UMI_BCH_RD_ERR_LOC_B_A __REG32(HW_UMI_BASE + 0x78) - -/* REG_UMI_FLASH0/1/2_TCR, REG_UMI_SRAM0/1_TCR bits */ -/* Enable wait pin during burst write or read */ -#define REG_UMI_TCR_WAITEN 0x80000000 -/* Enable mem ctrlr to work iwth ext mem of lower freq than AHB clk */ -#define REG_UMI_TCR_LOWFREQ 0x40000000 -/* 1=synch write, 0=async write */ -#define REG_UMI_TCR_MEMTYPE_SYNCWRITE 0x20000000 -/* 1=synch read, 0=async read */ -#define REG_UMI_TCR_MEMTYPE_SYNCREAD 0x10000000 -/* 1=page mode read, 0=normal mode read */ -#define REG_UMI_TCR_MEMTYPE_PAGEREAD 0x08000000 -/* page size/burst size (wrap only) */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_MASK 0x07000000 -/* 4 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_4 0x00000000 -/* 8 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_8 0x01000000 -/* 16 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_16 0x02000000 -/* 32 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_32 0x03000000 -/* 64 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_64 0x04000000 -/* 128 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_128 0x05000000 -/* 256 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_256 0x06000000 -/* 512 word */ -#define REG_UMI_TCR_MEMTYPE_PGSZ_512 0x07000000 -/* Page read access cycle / Burst write latency (n+2 / n+1) */ -#define REG_UMI_TCR_TPRC_TWLC_MASK 0x00f80000 -/* Bus turnaround cycle (n) */ -#define REG_UMI_TCR_TBTA_MASK 0x00070000 -/* Write pulse width cycle (n+1) */ -#define REG_UMI_TCR_TWP_MASK 0x0000f800 -/* Write recovery cycle (n+1) */ -#define REG_UMI_TCR_TWR_MASK 0x00000600 -/* Write address setup cycle (n+1) */ -#define REG_UMI_TCR_TAS_MASK 0x00000180 -/* Output enable delay cycle (n) */ -#define REG_UMI_TCR_TOE_MASK 0x00000060 -/* Read access cycle / Burst read latency (n+2 / n+1) */ -#define REG_UMI_TCR_TRC_TLC_MASK 0x0000001f - -/* REG_UMI_MMD_ICR bits */ -/* Flash write protection pin control */ -#define REG_UMI_MMD_ICR_FLASH_WP 0x8000 -/* Extend hold time for sram0, sram1 csn (39 MHz operation) */ -#define REG_UMI_MMD_ICR_XHCS 0x4000 -/* Enable SDRAM 2 interface control */ -#define REG_UMI_MMD_ICR_SDRAM2EN 0x2000 -/* Enable merge of flash banks 0/1 to 512 MBit bank */ -#define REG_UMI_MMD_ICR_INST512 0x1000 -/* Enable merge of flash banks 1/2 to 512 MBit bank */ -#define REG_UMI_MMD_ICR_DATA512 0x0800 -/* Enable SDRAM interface control */ -#define REG_UMI_MMD_ICR_SDRAMEN 0x0400 -/* Polarity of busy state of Burst Wait Signal */ -#define REG_UMI_MMD_ICR_WAITPOL 0x0200 -/* Enable burst clock stopped when not accessing external burst flash/sram */ -#define REG_UMI_MMD_ICR_BCLKSTOP 0x0100 -/* Enable the peri1_csn to replace flash1_csn in 512 Mb flash mode */ -#define REG_UMI_MMD_ICR_PERI1EN 0x0080 -/* Enable the peri2_csn to replace sdram_csn */ -#define REG_UMI_MMD_ICR_PERI2EN 0x0040 -/* Enable the peri3_csn to replace sdram2_csn */ -#define REG_UMI_MMD_ICR_PERI3EN 0x0020 -/* Enable sram bank1 for H/W controlled MRS */ -#define REG_UMI_MMD_ICR_MRSB1 0x0010 -/* Enable sram bank0 for H/W controlled MRS */ -#define REG_UMI_MMD_ICR_MRSB0 0x0008 -/* Polarity for assert3ed state of H/W controlled MRS */ -#define REG_UMI_MMD_ICR_MRSPOL 0x0004 -/* 0: S/W controllable ZZ/MRS/CRE/P-Mode pin */ -/* 1: H/W controlled ZZ/MRS/CRE/P-Mode, same timing as CS */ -#define REG_UMI_MMD_ICR_MRSMODE 0x0002 -/* MRS state for S/W controlled mode */ -#define REG_UMI_MMD_ICR_MRSSTATE 0x0001 - -/* REG_UMI_NAND_TCR bits */ -/* Enable software to control CS */ -#define REG_UMI_NAND_TCR_CS_SWCTRL 0x80000000 -/* 16-bit nand wordsize if set */ -#define REG_UMI_NAND_TCR_WORD16 0x40000000 -/* Bus turnaround cycle (n) */ -#define REG_UMI_NAND_TCR_TBTA_MASK 0x00070000 -/* Write pulse width cycle (n+1) */ -#define REG_UMI_NAND_TCR_TWP_MASK 0x0000f800 -/* Write recovery cycle (n+1) */ -#define REG_UMI_NAND_TCR_TWR_MASK 0x00000600 -/* Write address setup cycle (n+1) */ -#define REG_UMI_NAND_TCR_TAS_MASK 0x00000180 -/* Output enable delay cycle (n) */ -#define REG_UMI_NAND_TCR_TOE_MASK 0x00000060 -/* Read access cycle (n+2) */ -#define REG_UMI_NAND_TCR_TRC_TLC_MASK 0x0000001f - -/* REG_UMI_NAND_RCSR bits */ -/* Status: Ready=1, Busy=0 */ -#define REG_UMI_NAND_RCSR_RDY 0x02 -/* Keep CS asserted during operation */ -#define REG_UMI_NAND_RCSR_CS_ASSERTED 0x01 - -/* REG_UMI_NAND_ECC_CSR bits */ -/* Interrupt status - read-only */ -#define REG_UMI_NAND_ECC_CSR_NANDINT 0x80000000 -/* Read: Status of ECC done, Write: clear ECC interrupt */ -#define REG_UMI_NAND_ECC_CSR_ECCINT_RAW 0x00800000 -/* Read: Status of R/B, Write: clear R/B interrupt */ -#define REG_UMI_NAND_ECC_CSR_RBINT_RAW 0x00400000 -/* 1 = Enable ECC Interrupt */ -#define REG_UMI_NAND_ECC_CSR_ECCINT_ENABLE 0x00008000 -/* 1 = Assert interrupt at rising edge of R/B_ */ -#define REG_UMI_NAND_ECC_CSR_RBINT_ENABLE 0x00004000 -/* Calculate ECC by 0=512 bytes, 1=256 bytes */ -#define REG_UMI_NAND_ECC_CSR_256BYTE 0x00000080 -/* Enable ECC in hardware */ -#define REG_UMI_NAND_ECC_CSR_ECC_ENABLE 0x00000001 - -/* REG_UMI_BCH_CTRL_STATUS bits */ -/* Shift to Indicate Number of correctable errors detected */ -#define REG_UMI_BCH_CTRL_STATUS_NB_CORR_ERROR_SHIFT 20 -/* Indicate Number of correctable errors detected */ -#define REG_UMI_BCH_CTRL_STATUS_NB_CORR_ERROR 0x00F00000 -/* Indicate Errors detected during read but uncorrectable */ -#define REG_UMI_BCH_CTRL_STATUS_UNCORR_ERR 0x00080000 -/* Indicate Errors detected during read and are correctable */ -#define REG_UMI_BCH_CTRL_STATUS_CORR_ERR 0x00040000 -/* Flag indicates BCH's ECC status of read process are valid */ -#define REG_UMI_BCH_CTRL_STATUS_RD_ECC_VALID 0x00020000 -/* Flag indicates BCH's ECC status of write process are valid */ -#define REG_UMI_BCH_CTRL_STATUS_WR_ECC_VALID 0x00010000 -/* Pause ECC calculation */ -#define REG_UMI_BCH_CTRL_STATUS_PAUSE_ECC_DEC 0x00000010 -/* Enable Interrupt */ -#define REG_UMI_BCH_CTRL_STATUS_INT_EN 0x00000004 -/* Enable ECC during read */ -#define REG_UMI_BCH_CTRL_STATUS_ECC_RD_EN 0x00000002 -/* Enable ECC during write */ -#define REG_UMI_BCH_CTRL_STATUS_ECC_WR_EN 0x00000001 -/* Mask for location */ -#define REG_UMI_BCH_ERR_LOC_MASK 0x00001FFF -/* location within a byte */ -#define REG_UMI_BCH_ERR_LOC_BYTE 0x00000007 -/* location within a word */ -#define REG_UMI_BCH_ERR_LOC_WORD 0x00000018 -/* location within a page (512 byte) */ -#define REG_UMI_BCH_ERR_LOC_PAGE 0x00001FE0 -#define REG_UMI_BCH_ERR_LOC_ADDR(index) (__REG32(HW_UMI_BASE + 0x64 + (index / 2)*4) >> ((index % 2) * 16)) -#endif diff --git a/trunk/arch/arm/mach-davinci/board-da850-evm.c b/trunk/arch/arm/mach-davinci/board-da850-evm.c index 07de8db14581..62b98bffc158 100644 --- a/trunk/arch/arm/mach-davinci/board-da850-evm.c +++ b/trunk/arch/arm/mach-davinci/board-da850-evm.c @@ -339,15 +339,6 @@ static struct davinci_mmc_config da850_mmc_config = { .version = MMC_CTLR_VERSION_2, }; -static void da850_panel_power_ctrl(int val) -{ - /* lcd backlight */ - gpio_set_value(DA850_LCD_BL_PIN, val); - - /* lcd power */ - gpio_set_value(DA850_LCD_PWR_PIN, val); -} - static int da850_lcd_hw_init(void) { int status; @@ -365,11 +356,17 @@ static int da850_lcd_hw_init(void) gpio_direction_output(DA850_LCD_BL_PIN, 0); gpio_direction_output(DA850_LCD_PWR_PIN, 0); - /* Switch off panel power and backlight */ - da850_panel_power_ctrl(0); + /* disable lcd backlight */ + gpio_set_value(DA850_LCD_BL_PIN, 0); + + /* disable lcd power */ + gpio_set_value(DA850_LCD_PWR_PIN, 0); + + /* enable lcd power */ + gpio_set_value(DA850_LCD_PWR_PIN, 1); - /* Switch on panel power and backlight */ - da850_panel_power_ctrl(1); + /* enable lcd backlight */ + gpio_set_value(DA850_LCD_BL_PIN, 1); return 0; } @@ -677,7 +674,6 @@ static __init void da850_evm_init(void) pr_warning("da850_evm_init: lcd initialization failed: %d\n", ret); - sharp_lk043t1dg01_pdata.panel_power_ctrl = da850_panel_power_ctrl, ret = da8xx_register_lcdc(&sharp_lk043t1dg01_pdata); if (ret) pr_warning("da850_evm_init: lcdc registration failed: %d\n", diff --git a/trunk/arch/arm/mach-davinci/include/mach/nand.h b/trunk/arch/arm/mach-davinci/include/mach/nand.h index b2ad8090bd10..b520c4b5678a 100644 --- a/trunk/arch/arm/mach-davinci/include/mach/nand.h +++ b/trunk/arch/arm/mach-davinci/include/mach/nand.h @@ -79,10 +79,6 @@ struct davinci_nand_pdata { /* platform_data */ /* e.g. NAND_BUSWIDTH_16 or NAND_USE_FLASH_BBT */ unsigned options; - - /* Main and mirror bbt descriptor overrides */ - struct nand_bbt_descr *bbt_td; - struct nand_bbt_descr *bbt_md; }; #endif /* __ARCH_ARM_DAVINCI_NAND_H */ diff --git a/trunk/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h b/trunk/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h index 62d17421e48c..83f31cd0a274 100644 --- a/trunk/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h +++ b/trunk/arch/arm/mach-ep93xx/include/mach/ep93xx_keypad.h @@ -5,6 +5,9 @@ #ifndef __ASM_ARCH_EP93XX_KEYPAD_H #define __ASM_ARCH_EP93XX_KEYPAD_H +#define MAX_MATRIX_KEY_ROWS (8) +#define MAX_MATRIX_KEY_COLS (8) + /* flags for the ep93xx_keypad driver */ #define EP93XX_KEYPAD_DISABLE_3_KEY (1<<0) /* disable 3-key reset */ #define EP93XX_KEYPAD_DIAG_MODE (1<<1) /* diagnostic mode */ @@ -15,6 +18,8 @@ /** * struct ep93xx_keypad_platform_data - platform specific device structure + * @matrix_key_rows: number of rows in the keypad matrix + * @matrix_key_cols: number of columns in the keypad matrix * @matrix_key_map: array of keycodes defining the keypad matrix * @matrix_key_map_size: ARRAY_SIZE(matrix_key_map) * @debounce: debounce start count; terminal count is 0xff @@ -22,6 +27,8 @@ * @flags: see above */ struct ep93xx_keypad_platform_data { + unsigned int matrix_key_rows; + unsigned int matrix_key_cols; unsigned int *matrix_key_map; int matrix_key_map_size; unsigned int debounce; @@ -29,7 +36,7 @@ struct ep93xx_keypad_platform_data { unsigned int flags; }; -#define EP93XX_MATRIX_ROWS (8) -#define EP93XX_MATRIX_COLS (8) +/* macro for creating the matrix_key_map table */ +#define KEY(row, col, val) (((row) << 28) | ((col) << 24) | (val)) #endif /* __ASM_ARCH_EP93XX_KEYPAD_H */ diff --git a/trunk/arch/arm/mach-nomadik/board-nhk8815.c b/trunk/arch/arm/mach-nomadik/board-nhk8815.c index 9438bf6613a3..116394484e71 100644 --- a/trunk/arch/arm/mach-nomadik/board-nhk8815.c +++ b/trunk/arch/arm/mach-nomadik/board-nhk8815.c @@ -18,7 +18,6 @@ #include #include #include -#include #include #include #include @@ -150,7 +149,7 @@ static struct mtd_partition nhk8815_onenand_partitions[] = { } }; -static struct onenand_platform_data nhk8815_onenand_data = { +static struct flash_platform_data nhk8815_onenand_data = { .parts = nhk8815_onenand_partitions, .nr_parts = ARRAY_SIZE(nhk8815_onenand_partitions), }; @@ -164,7 +163,7 @@ static struct resource nhk8815_onenand_resource[] = { }; static struct platform_device nhk8815_onenand_device = { - .name = "onenand-flash", + .name = "onenand", .id = -1, .dev = { .platform_data = &nhk8815_onenand_data, @@ -175,10 +174,10 @@ static struct platform_device nhk8815_onenand_device = { static void __init nhk8815_onenand_init(void) { -#ifdef CONFIG_MTD_ONENAND +#ifdef CONFIG_ONENAND /* Set up SMCS0 for OneNand */ - writel(0x000030db, FSMC_BCR(0)); - writel(0x02100551, FSMC_BTR(0)); + writel(0x000030db, FSMC_BCR0); + writel(0x02100551, FSMC_BTR0); #endif } diff --git a/trunk/arch/arm/mach-u300/include/mach/coh901318.h b/trunk/arch/arm/mach-u300/include/mach/coh901318.h deleted file mode 100644 index f4cfee9c7d28..000000000000 --- a/trunk/arch/arm/mach-u300/include/mach/coh901318.h +++ /dev/null @@ -1,281 +0,0 @@ -/* - * - * include/linux/coh901318.h - * - * - * Copyright (C) 2007-2009 ST-Ericsson - * License terms: GNU General Public License (GPL) version 2 - * DMA driver for COH 901 318 - * Author: Per Friden - */ - -#ifndef COH901318_H -#define COH901318_H - -#include -#include - -#define MAX_DMA_PACKET_SIZE_SHIFT 11 -#define MAX_DMA_PACKET_SIZE (1 << MAX_DMA_PACKET_SIZE_SHIFT) - -/** - * struct coh901318_lli - linked list item for DMAC - * @control: control settings for DMAC - * @src_addr: transfer source address - * @dst_addr: transfer destination address - * @link_addr: physical address to next lli - * @virt_link_addr: virtual addres of next lli (only used by pool_free) - * @phy_this: physical address of current lli (only used by pool_free) - */ -struct coh901318_lli { - u32 control; - dma_addr_t src_addr; - dma_addr_t dst_addr; - dma_addr_t link_addr; - - void *virt_link_addr; - dma_addr_t phy_this; -}; -/** - * struct coh901318_params - parameters for DMAC configuration - * @config: DMA config register - * @ctrl_lli_last: DMA control register for the last lli in the list - * @ctrl_lli: DMA control register for an lli - * @ctrl_lli_chained: DMA control register for a chained lli - */ -struct coh901318_params { - u32 config; - u32 ctrl_lli_last; - u32 ctrl_lli; - u32 ctrl_lli_chained; -}; -/** - * struct coh_dma_channel - dma channel base - * @name: ascii name of dma channel - * @number: channel id number - * @desc_nbr_max: number of preallocated descriptortors - * @priority_high: prio of channel, 0 low otherwise high. - * @param: configuration parameters - * @dev_addr: physical address of periphal connected to channel - */ -struct coh_dma_channel { - const char name[32]; - const int number; - const int desc_nbr_max; - const int priority_high; - const struct coh901318_params param; - const dma_addr_t dev_addr; -}; - -/** - * dma_access_memory_state_t - register dma for memory access - * - * @dev: The dma device - * @active: 1 means dma intends to access memory - * 0 means dma wont access memory - */ -typedef void (*dma_access_memory_state_t)(struct device *dev, - bool active); - -/** - * struct powersave - DMA power save structure - * @lock: lock protecting data in this struct - * @started_channels: bit mask indicating active dma channels - */ -struct powersave { - spinlock_t lock; - u64 started_channels; -}; -/** - * struct coh901318_platform - platform arch structure - * @chans_slave: specifying dma slave channels - * @chans_memcpy: specifying dma memcpy channels - * @access_memory_state: requesting DMA memeory access (on / off) - * @chan_conf: dma channel configurations - * @max_channels: max number of dma chanenls - */ -struct coh901318_platform { - const int *chans_slave; - const int *chans_memcpy; - const dma_access_memory_state_t access_memory_state; - const struct coh_dma_channel *chan_conf; - const int max_channels; -}; - -/** - * coh901318_get_bytes_left() - Get number of bytes left on a current transfer - * @chan: dma channel handle - * return number of bytes left, or negative on error - */ -u32 coh901318_get_bytes_left(struct dma_chan *chan); - -/** - * coh901318_stop() - Stops dma transfer - * @chan: dma channel handle - * return 0 on success otherwise negative value - */ -void coh901318_stop(struct dma_chan *chan); - -/** - * coh901318_continue() - Resumes a stopped dma transfer - * @chan: dma channel handle - * return 0 on success otherwise negative value - */ -void coh901318_continue(struct dma_chan *chan); - -/** - * coh901318_filter_id() - DMA channel filter function - * @chan: dma channel handle - * @chan_id: id of dma channel to be filter out - * - * In dma_request_channel() it specifies what channel id to be requested - */ -bool coh901318_filter_id(struct dma_chan *chan, void *chan_id); - -/* - * DMA Controller - this access the static mappings of the coh901318 dma. - * - */ - -#define COH901318_MOD32_MASK (0x1F) -#define COH901318_WORD_MASK (0xFFFFFFFF) -/* INT_STATUS - Interrupt Status Registers 32bit (R/-) */ -#define COH901318_INT_STATUS1 (0x0000) -#define COH901318_INT_STATUS2 (0x0004) -/* TC_INT_STATUS - Terminal Count Interrupt Status Registers 32bit (R/-) */ -#define COH901318_TC_INT_STATUS1 (0x0008) -#define COH901318_TC_INT_STATUS2 (0x000C) -/* TC_INT_CLEAR - Terminal Count Interrupt Clear Registers 32bit (-/W) */ -#define COH901318_TC_INT_CLEAR1 (0x0010) -#define COH901318_TC_INT_CLEAR2 (0x0014) -/* RAW_TC_INT_STATUS - Raw Term Count Interrupt Status Registers 32bit (R/-) */ -#define COH901318_RAW_TC_INT_STATUS1 (0x0018) -#define COH901318_RAW_TC_INT_STATUS2 (0x001C) -/* BE_INT_STATUS - Bus Error Interrupt Status Registers 32bit (R/-) */ -#define COH901318_BE_INT_STATUS1 (0x0020) -#define COH901318_BE_INT_STATUS2 (0x0024) -/* BE_INT_CLEAR - Bus Error Interrupt Clear Registers 32bit (-/W) */ -#define COH901318_BE_INT_CLEAR1 (0x0028) -#define COH901318_BE_INT_CLEAR2 (0x002C) -/* RAW_BE_INT_STATUS - Raw Term Count Interrupt Status Registers 32bit (R/-) */ -#define COH901318_RAW_BE_INT_STATUS1 (0x0030) -#define COH901318_RAW_BE_INT_STATUS2 (0x0034) - -/* - * CX_CFG - Channel Configuration Registers 32bit (R/W) - */ -#define COH901318_CX_CFG (0x0100) -#define COH901318_CX_CFG_SPACING (0x04) -/* Channel enable activates tha dma job */ -#define COH901318_CX_CFG_CH_ENABLE (0x00000001) -#define COH901318_CX_CFG_CH_DISABLE (0x00000000) -/* Request Mode */ -#define COH901318_CX_CFG_RM_MASK (0x00000006) -#define COH901318_CX_CFG_RM_MEMORY_TO_MEMORY (0x0 << 1) -#define COH901318_CX_CFG_RM_PRIMARY_TO_MEMORY (0x1 << 1) -#define COH901318_CX_CFG_RM_MEMORY_TO_PRIMARY (0x1 << 1) -#define COH901318_CX_CFG_RM_PRIMARY_TO_SECONDARY (0x3 << 1) -#define COH901318_CX_CFG_RM_SECONDARY_TO_PRIMARY (0x3 << 1) -/* Linked channel request field. RM must == 11 */ -#define COH901318_CX_CFG_LCRF_SHIFT 3 -#define COH901318_CX_CFG_LCRF_MASK (0x000001F8) -#define COH901318_CX_CFG_LCR_DISABLE (0x00000000) -/* Terminal Counter Interrupt Request Mask */ -#define COH901318_CX_CFG_TC_IRQ_ENABLE (0x00000200) -#define COH901318_CX_CFG_TC_IRQ_DISABLE (0x00000000) -/* Bus Error interrupt Mask */ -#define COH901318_CX_CFG_BE_IRQ_ENABLE (0x00000400) -#define COH901318_CX_CFG_BE_IRQ_DISABLE (0x00000000) - -/* - * CX_STAT - Channel Status Registers 32bit (R/-) - */ -#define COH901318_CX_STAT (0x0200) -#define COH901318_CX_STAT_SPACING (0x04) -#define COH901318_CX_STAT_RBE_IRQ_IND (0x00000008) -#define COH901318_CX_STAT_RTC_IRQ_IND (0x00000004) -#define COH901318_CX_STAT_ACTIVE (0x00000002) -#define COH901318_CX_STAT_ENABLED (0x00000001) - -/* - * CX_CTRL - Channel Control Registers 32bit (R/W) - */ -#define COH901318_CX_CTRL (0x0400) -#define COH901318_CX_CTRL_SPACING (0x10) -/* Transfer Count Enable */ -#define COH901318_CX_CTRL_TC_ENABLE (0x00001000) -#define COH901318_CX_CTRL_TC_DISABLE (0x00000000) -/* Transfer Count Value 0 - 4095 */ -#define COH901318_CX_CTRL_TC_VALUE_MASK (0x00000FFF) -/* Burst count */ -#define COH901318_CX_CTRL_BURST_COUNT_MASK (0x0000E000) -#define COH901318_CX_CTRL_BURST_COUNT_64_BYTES (0x7 << 13) -#define COH901318_CX_CTRL_BURST_COUNT_48_BYTES (0x6 << 13) -#define COH901318_CX_CTRL_BURST_COUNT_32_BYTES (0x5 << 13) -#define COH901318_CX_CTRL_BURST_COUNT_16_BYTES (0x4 << 13) -#define COH901318_CX_CTRL_BURST_COUNT_8_BYTES (0x3 << 13) -#define COH901318_CX_CTRL_BURST_COUNT_4_BYTES (0x2 << 13) -#define COH901318_CX_CTRL_BURST_COUNT_2_BYTES (0x1 << 13) -#define COH901318_CX_CTRL_BURST_COUNT_1_BYTE (0x0 << 13) -/* Source bus size */ -#define COH901318_CX_CTRL_SRC_BUS_SIZE_MASK (0x00030000) -#define COH901318_CX_CTRL_SRC_BUS_SIZE_32_BITS (0x2 << 16) -#define COH901318_CX_CTRL_SRC_BUS_SIZE_16_BITS (0x1 << 16) -#define COH901318_CX_CTRL_SRC_BUS_SIZE_8_BITS (0x0 << 16) -/* Source address increment */ -#define COH901318_CX_CTRL_SRC_ADDR_INC_ENABLE (0x00040000) -#define COH901318_CX_CTRL_SRC_ADDR_INC_DISABLE (0x00000000) -/* Destination Bus Size */ -#define COH901318_CX_CTRL_DST_BUS_SIZE_MASK (0x00180000) -#define COH901318_CX_CTRL_DST_BUS_SIZE_32_BITS (0x2 << 19) -#define COH901318_CX_CTRL_DST_BUS_SIZE_16_BITS (0x1 << 19) -#define COH901318_CX_CTRL_DST_BUS_SIZE_8_BITS (0x0 << 19) -/* Destination address increment */ -#define COH901318_CX_CTRL_DST_ADDR_INC_ENABLE (0x00200000) -#define COH901318_CX_CTRL_DST_ADDR_INC_DISABLE (0x00000000) -/* Master Mode (Master2 is only connected to MSL) */ -#define COH901318_CX_CTRL_MASTER_MODE_MASK (0x00C00000) -#define COH901318_CX_CTRL_MASTER_MODE_M2R_M1W (0x3 << 22) -#define COH901318_CX_CTRL_MASTER_MODE_M1R_M2W (0x2 << 22) -#define COH901318_CX_CTRL_MASTER_MODE_M2RW (0x1 << 22) -#define COH901318_CX_CTRL_MASTER_MODE_M1RW (0x0 << 22) -/* Terminal Count flag to PER enable */ -#define COH901318_CX_CTRL_TCP_ENABLE (0x01000000) -#define COH901318_CX_CTRL_TCP_DISABLE (0x00000000) -/* Terminal Count flags to CPU enable */ -#define COH901318_CX_CTRL_TC_IRQ_ENABLE (0x02000000) -#define COH901318_CX_CTRL_TC_IRQ_DISABLE (0x00000000) -/* Hand shake to peripheral */ -#define COH901318_CX_CTRL_HSP_ENABLE (0x04000000) -#define COH901318_CX_CTRL_HSP_DISABLE (0x00000000) -#define COH901318_CX_CTRL_HSS_ENABLE (0x08000000) -#define COH901318_CX_CTRL_HSS_DISABLE (0x00000000) -/* DMA mode */ -#define COH901318_CX_CTRL_DDMA_MASK (0x30000000) -#define COH901318_CX_CTRL_DDMA_LEGACY (0x0 << 28) -#define COH901318_CX_CTRL_DDMA_DEMAND_DMA1 (0x1 << 28) -#define COH901318_CX_CTRL_DDMA_DEMAND_DMA2 (0x2 << 28) -/* Primary Request Data Destination */ -#define COH901318_CX_CTRL_PRDD_MASK (0x40000000) -#define COH901318_CX_CTRL_PRDD_DEST (0x1 << 30) -#define COH901318_CX_CTRL_PRDD_SOURCE (0x0 << 30) - -/* - * CX_SRC_ADDR - Channel Source Address Registers 32bit (R/W) - */ -#define COH901318_CX_SRC_ADDR (0x0404) -#define COH901318_CX_SRC_ADDR_SPACING (0x10) - -/* - * CX_DST_ADDR - Channel Destination Address Registers 32bit R/W - */ -#define COH901318_CX_DST_ADDR (0x0408) -#define COH901318_CX_DST_ADDR_SPACING (0x10) - -/* - * CX_LNK_ADDR - Channel Link Address Registers 32bit (R/W) - */ -#define COH901318_CX_LNK_ADDR (0x040C) -#define COH901318_CX_LNK_ADDR_SPACING (0x10) -#define COH901318_CX_LNK_LINK_IMMEDIATE (0x00000001) -#endif /* COH901318_H */ diff --git a/trunk/arch/arm/plat-mxc/include/mach/mxc_nand.h b/trunk/arch/arm/plat-mxc/include/mach/mxc_nand.h index 5d2d21d414e0..2b972df22d12 100644 --- a/trunk/arch/arm/plat-mxc/include/mach/mxc_nand.h +++ b/trunk/arch/arm/plat-mxc/include/mach/mxc_nand.h @@ -22,7 +22,6 @@ struct mxc_nand_platform_data { int width; /* data bus width in bytes */ - int hw_ecc:1; /* 0 if supress hardware ECC */ - int flash_bbt:1; /* set to 1 to use a flash based bbt */ + int hw_ecc; /* 0 if supress hardware ECC */ }; #endif /* __ASM_ARCH_NAND_H */ diff --git a/trunk/arch/arm/plat-s3c/include/plat/nand.h b/trunk/arch/arm/plat-s3c/include/plat/nand.h index 226147b7e026..065985978413 100644 --- a/trunk/arch/arm/plat-s3c/include/plat/nand.h +++ b/trunk/arch/arm/plat-s3c/include/plat/nand.h @@ -17,7 +17,6 @@ * Setting this flag will allow the kernel to * look for it at boot time and also skip the NAND * scan. - * @options: Default value to set into 'struct nand_chip' options. * @nr_chips: Number of chips in this set * @nr_partitions: Number of partitions pointed to by @partitions * @name: Name of set (optional) @@ -32,7 +31,6 @@ struct s3c2410_nand_set { unsigned int disable_ecc:1; unsigned int flash_bbt:1; - unsigned int options; int nr_chips; int nr_partitions; char *name; diff --git a/trunk/arch/avr32/include/asm/elf.h b/trunk/arch/avr32/include/asm/elf.h index 3b3159b710d4..d5d1d41c600a 100644 --- a/trunk/arch/avr32/include/asm/elf.h +++ b/trunk/arch/avr32/include/asm/elf.h @@ -77,6 +77,7 @@ typedef struct user_fpu_struct elf_fpregset_t; #endif #define ELF_ARCH EM_AVR32 +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/blackfin/include/asm/bfin-lq035q1.h b/trunk/arch/blackfin/include/asm/bfin-lq035q1.h deleted file mode 100644 index 57bc21ac2296..000000000000 --- a/trunk/arch/blackfin/include/asm/bfin-lq035q1.h +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Blackfin LCD Framebuffer driver SHARP LQ035Q1DH02 - * - * Copyright 2008-2009 Analog Devices Inc. - * Licensed under the GPL-2 or later. - */ - -#ifndef BFIN_LQ035Q1_H -#define BFIN_LQ035Q1_H - -#define LQ035_RL (0 << 8) /* Right -> Left Scan */ -#define LQ035_LR (1 << 8) /* Left -> Right Scan */ -#define LQ035_TB (1 << 9) /* Top -> Botton Scan */ -#define LQ035_BT (0 << 9) /* Botton -> Top Scan */ -#define LQ035_BGR (1 << 11) /* Use BGR format */ -#define LQ035_RGB (0 << 11) /* Use RGB format */ -#define LQ035_NORM (1 << 13) /* Reversal */ -#define LQ035_REV (0 << 13) /* Reversal */ - -struct bfin_lq035q1fb_disp_info { - - unsigned mode; - /* GPIOs */ - int use_bl; - unsigned gpio_bl; -}; - -#endif /* BFIN_LQ035Q1_H */ diff --git a/trunk/arch/blackfin/include/asm/elf.h b/trunk/arch/blackfin/include/asm/elf.h index 5b50f0ecacf8..8e0764c81eaf 100644 --- a/trunk/arch/blackfin/include/asm/elf.h +++ b/trunk/arch/blackfin/include/asm/elf.h @@ -55,6 +55,7 @@ do { \ _regs->p2 = _dynamic_addr; \ } while(0) +#define USE_ELF_CORE_DUMP #define ELF_FDPIC_CORE_EFLAGS EF_BFIN_FDPIC #define ELF_EXEC_PAGESIZE 4096 diff --git a/trunk/arch/cris/include/asm/elf.h b/trunk/arch/cris/include/asm/elf.h index 8a3d8e2b33c1..0f51b10b9f4f 100644 --- a/trunk/arch/cris/include/asm/elf.h +++ b/trunk/arch/cris/include/asm/elf.h @@ -64,6 +64,8 @@ typedef unsigned long elf_fpregset_t; #define EF_CRIS_VARIANT_COMMON_V10_V32 0x00000004 /* End of excerpt from {binutils}/include/elf/cris.h. */ +#define USE_ELF_CORE_DUMP + #define ELF_EXEC_PAGESIZE 8192 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/frv/include/asm/elf.h b/trunk/arch/frv/include/asm/elf.h index c3819804a74b..7bbf6e47f8c8 100644 --- a/trunk/arch/frv/include/asm/elf.h +++ b/trunk/arch/frv/include/asm/elf.h @@ -115,6 +115,7 @@ do { \ __kernel_frame0_ptr->gr29 = 0; \ } while(0) +#define USE_ELF_CORE_DUMP #define CORE_DUMP_USE_REGSET #define ELF_FDPIC_CORE_EFLAGS EF_FRV_FDPIC #define ELF_EXEC_PAGESIZE 16384 diff --git a/trunk/arch/h8300/include/asm/elf.h b/trunk/arch/h8300/include/asm/elf.h index c24fa250d653..94e2284c8816 100644 --- a/trunk/arch/h8300/include/asm/elf.h +++ b/trunk/arch/h8300/include/asm/elf.h @@ -34,6 +34,7 @@ typedef unsigned long elf_fpregset_t; #define ELF_PLAT_INIT(_r) _r->er1 = 0 +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/ia64/ia32/elfcore32.h b/trunk/arch/ia64/ia32/elfcore32.h index 657725742617..9a3abf58cea3 100644 --- a/trunk/arch/ia64/ia32/elfcore32.h +++ b/trunk/arch/ia64/ia32/elfcore32.h @@ -11,6 +11,8 @@ #include #include +#define USE_ELF_CORE_DUMP 1 + /* Override elfcore.h */ #define _LINUX_ELFCORE_H 1 typedef unsigned int elf_greg_t; diff --git a/trunk/arch/ia64/include/asm/dma-mapping.h b/trunk/arch/ia64/include/asm/dma-mapping.h index 7d09a09cdaad..8d3c79cd81e7 100644 --- a/trunk/arch/ia64/include/asm/dma-mapping.h +++ b/trunk/arch/ia64/include/asm/dma-mapping.h @@ -73,7 +73,7 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) if (!dev->dma_mask) return 0; - return addr + size - 1 <= *dev->dma_mask; + return addr + size <= *dev->dma_mask; } static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) diff --git a/trunk/arch/ia64/include/asm/elf.h b/trunk/arch/ia64/include/asm/elf.h index e14108b19c09..86eddee029cb 100644 --- a/trunk/arch/ia64/include/asm/elf.h +++ b/trunk/arch/ia64/include/asm/elf.h @@ -25,6 +25,7 @@ #define ELF_DATA ELFDATA2LSB #define ELF_ARCH EM_IA_64 +#define USE_ELF_CORE_DUMP #define CORE_DUMP_USE_REGSET /* Least-significant four bits of ELF header's e_flags are OS-specific. The bits are diff --git a/trunk/arch/ia64/include/asm/io.h b/trunk/arch/ia64/include/asm/io.h index cc8335eb3110..0d9d16e2d949 100644 --- a/trunk/arch/ia64/include/asm/io.h +++ b/trunk/arch/ia64/include/asm/io.h @@ -424,8 +424,6 @@ __writeq (unsigned long val, volatile void __iomem *addr) extern void __iomem * ioremap(unsigned long offset, unsigned long size); extern void __iomem * ioremap_nocache (unsigned long offset, unsigned long size); extern void iounmap (volatile void __iomem *addr); -extern void __iomem * early_ioremap (unsigned long phys_addr, unsigned long size); -extern void early_iounmap (volatile void __iomem *addr, unsigned long size); /* * String version of IO memory access ops: diff --git a/trunk/arch/ia64/mm/ioremap.c b/trunk/arch/ia64/mm/ioremap.c index 3dccdd8eb275..2a140627dfd6 100644 --- a/trunk/arch/ia64/mm/ioremap.c +++ b/trunk/arch/ia64/mm/ioremap.c @@ -21,12 +21,6 @@ __ioremap (unsigned long phys_addr) return (void __iomem *) (__IA64_UNCACHED_OFFSET | phys_addr); } -void __iomem * -early_ioremap (unsigned long phys_addr, unsigned long size) -{ - return __ioremap(phys_addr); -} - void __iomem * ioremap (unsigned long phys_addr, unsigned long size) { @@ -107,11 +101,6 @@ ioremap_nocache (unsigned long phys_addr, unsigned long size) } EXPORT_SYMBOL(ioremap_nocache); -void -early_iounmap (volatile void __iomem *addr, unsigned long size) -{ -} - void iounmap (volatile void __iomem *addr) { diff --git a/trunk/arch/ia64/sn/pci/tioca_provider.c b/trunk/arch/ia64/sn/pci/tioca_provider.c index efb454534e52..35b2a27d2e77 100644 --- a/trunk/arch/ia64/sn/pci/tioca_provider.c +++ b/trunk/arch/ia64/sn/pci/tioca_provider.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -370,7 +369,7 @@ tioca_dma_d48(struct pci_dev *pdev, u64 paddr) static dma_addr_t tioca_dma_mapped(struct pci_dev *pdev, unsigned long paddr, size_t req_size) { - int ps, ps_shift, entry, entries, mapsize; + int i, ps, ps_shift, entry, entries, mapsize, last_entry; u64 xio_addr, end_xio_addr; struct tioca_common *tioca_common; struct tioca_kernel *tioca_kern; @@ -411,13 +410,23 @@ tioca_dma_mapped(struct pci_dev *pdev, unsigned long paddr, size_t req_size) map = tioca_kern->ca_pcigart_pagemap; mapsize = tioca_kern->ca_pcigart_entries; - entry = bitmap_find_next_zero_area(map, mapsize, 0, entries, 0); - if (entry >= mapsize) { + entry = find_first_zero_bit(map, mapsize); + while (entry < mapsize) { + last_entry = find_next_bit(map, mapsize, entry); + + if (last_entry - entry >= entries) + break; + + entry = find_next_zero_bit(map, mapsize, last_entry); + } + + if (entry > mapsize) { kfree(ca_dmamap); goto map_return; } - bitmap_set(map, entry, entries); + for (i = 0; i < entries; i++) + set_bit(entry + i, map); bus_addr = tioca_kern->ca_pciap_base + (entry * ps); diff --git a/trunk/arch/m32r/include/asm/elf.h b/trunk/arch/m32r/include/asm/elf.h index 2f85412ef730..0cc34c94bf2b 100644 --- a/trunk/arch/m32r/include/asm/elf.h +++ b/trunk/arch/m32r/include/asm/elf.h @@ -102,6 +102,7 @@ typedef elf_fpreg_t elf_fpregset_t; */ #define ELF_PLAT_INIT(_r, load_addr) (_r)->r0 = 0 +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE PAGE_SIZE /* diff --git a/trunk/arch/m68k/include/asm/elf.h b/trunk/arch/m68k/include/asm/elf.h index 01c193d91412..0b0f49eb876b 100644 --- a/trunk/arch/m68k/include/asm/elf.h +++ b/trunk/arch/m68k/include/asm/elf.h @@ -59,6 +59,7 @@ typedef struct user_m68kfp_struct elf_fpregset_t; is actually used on ASV. */ #define ELF_PLAT_INIT(_r, load_addr) _r->a1 = 0 +#define USE_ELF_CORE_DUMP #ifndef CONFIG_SUN3 #define ELF_EXEC_PAGESIZE 4096 #else diff --git a/trunk/arch/microblaze/include/asm/elf.h b/trunk/arch/microblaze/include/asm/elf.h index 7d4acf2b278e..f92fc0dda006 100644 --- a/trunk/arch/microblaze/include/asm/elf.h +++ b/trunk/arch/microblaze/include/asm/elf.h @@ -77,6 +77,7 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; #define ELF_DATA ELFDATA2MSB #endif +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 diff --git a/trunk/arch/mips/include/asm/elf.h b/trunk/arch/mips/include/asm/elf.h index 7a6a35dbe529..7990694cda22 100644 --- a/trunk/arch/mips/include/asm/elf.h +++ b/trunk/arch/mips/include/asm/elf.h @@ -326,6 +326,7 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *); #define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) \ dump_task_fpu(tsk, elf_fpregs) +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE PAGE_SIZE /* This yields a mask that user programs can use to figure out what diff --git a/trunk/arch/mn10300/include/asm/elf.h b/trunk/arch/mn10300/include/asm/elf.h index e5fa97cd9a14..75a70aa9fd6f 100644 --- a/trunk/arch/mn10300/include/asm/elf.h +++ b/trunk/arch/mn10300/include/asm/elf.h @@ -77,6 +77,7 @@ do { \ _ur->a1 = 0; _ur->a0 = 0; _ur->d1 = 0; _ur->d0 = 0; \ } while (0) +#define USE_ELF_CORE_DUMP #define CORE_DUMP_USE_REGSET #define ELF_EXEC_PAGESIZE 4096 diff --git a/trunk/arch/parisc/include/asm/bug.h b/trunk/arch/parisc/include/asm/bug.h index 75e46c557a16..8cfc553fc837 100644 --- a/trunk/arch/parisc/include/asm/bug.h +++ b/trunk/arch/parisc/include/asm/bug.h @@ -32,14 +32,14 @@ "\t.popsection" \ : : "i" (__FILE__), "i" (__LINE__), \ "i" (0), "i" (sizeof(struct bug_entry)) ); \ - unreachable(); \ + for(;;) ; \ } while(0) #else #define BUG() \ do { \ asm volatile(PARISC_BUG_BREAK_ASM : : ); \ - unreachable(); \ + for(;;) ; \ } while(0) #endif diff --git a/trunk/arch/parisc/include/asm/elf.h b/trunk/arch/parisc/include/asm/elf.h index 19f6cb1a4a1c..9c802eb4be84 100644 --- a/trunk/arch/parisc/include/asm/elf.h +++ b/trunk/arch/parisc/include/asm/elf.h @@ -328,6 +328,7 @@ struct pt_regs; /* forward declaration... */ such function. */ #define ELF_PLAT_INIT(_r, load_addr) _r->gr[23] = 0 +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/parisc/include/asm/ftrace.h b/trunk/arch/parisc/include/asm/ftrace.h index 72c0fafaa039..2fa05dd6aeee 100644 --- a/trunk/arch/parisc/include/asm/ftrace.h +++ b/trunk/arch/parisc/include/asm/ftrace.h @@ -20,20 +20,6 @@ struct ftrace_ret_stack { * Defined in entry.S */ extern void return_to_handler(void); - - -extern unsigned long return_address(unsigned int); - -#define HAVE_ARCH_CALLER_ADDR - -#define CALLER_ADDR0 ((unsigned long)__builtin_return_address(0)) -#define CALLER_ADDR1 return_address(1) -#define CALLER_ADDR2 return_address(2) -#define CALLER_ADDR3 return_address(3) -#define CALLER_ADDR4 return_address(4) -#define CALLER_ADDR5 return_address(5) -#define CALLER_ADDR6 return_address(6) - #endif /* __ASSEMBLY__ */ #endif /* _ASM_PARISC_FTRACE_H */ diff --git a/trunk/arch/parisc/kernel/asm-offsets.c b/trunk/arch/parisc/kernel/asm-offsets.c index ec787b411e9a..fcd3c707bf12 100644 --- a/trunk/arch/parisc/kernel/asm-offsets.c +++ b/trunk/arch/parisc/kernel/asm-offsets.c @@ -244,6 +244,9 @@ int main(void) DEFINE(THREAD_SZ, sizeof(struct thread_info)); DEFINE(THREAD_SZ_ALGN, align(sizeof(struct thread_info), 64)); BLANK(); + DEFINE(IRQSTAT_SIRQ_PEND, offsetof(irq_cpustat_t, __softirq_pending)); + DEFINE(IRQSTAT_SZ, sizeof(irq_cpustat_t)); + BLANK(); DEFINE(ICACHE_BASE, offsetof(struct pdc_cache_info, ic_base)); DEFINE(ICACHE_STRIDE, offsetof(struct pdc_cache_info, ic_stride)); DEFINE(ICACHE_COUNT, offsetof(struct pdc_cache_info, ic_count)); diff --git a/trunk/arch/parisc/kernel/irq.c b/trunk/arch/parisc/kernel/irq.c index efbcee5d2220..f47465e8d040 100644 --- a/trunk/arch/parisc/kernel/irq.c +++ b/trunk/arch/parisc/kernel/irq.c @@ -145,7 +145,7 @@ static int cpu_set_affinity_irq(unsigned int irq, const struct cpumask *dest) #endif static struct irq_chip cpu_interrupt_type = { - .name = "CPU", + .typename = "CPU", .startup = cpu_startup_irq, .shutdown = cpu_disable_irq, .enable = cpu_enable_irq, @@ -192,7 +192,7 @@ int show_interrupts(struct seq_file *p, void *v) seq_printf(p, "%10u ", kstat_irqs(i)); #endif - seq_printf(p, " %14s", irq_desc[i].chip->name); + seq_printf(p, " %14s", irq_desc[i].chip->typename); #ifndef PARISC_IRQ_CR16_COUNTS seq_printf(p, " %s", action->name); diff --git a/trunk/arch/parisc/kernel/signal.c b/trunk/arch/parisc/kernel/signal.c index fb37ac52e46c..e8467e4aa8d1 100644 --- a/trunk/arch/parisc/kernel/signal.c +++ b/trunk/arch/parisc/kernel/signal.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff --git a/trunk/arch/parisc/kernel/smp.c b/trunk/arch/parisc/kernel/smp.c index 3f2fce8ce6b6..1fd0f0cec037 100644 --- a/trunk/arch/parisc/kernel/smp.c +++ b/trunk/arch/parisc/kernel/smp.c @@ -60,6 +60,8 @@ static int smp_debug_lvl = 0; #define smp_debug(lvl, ...) do { } while(0) #endif /* DEBUG_SMP */ +DEFINE_SPINLOCK(smp_lock); + volatile struct task_struct *smp_init_current_idle_task; /* track which CPU is booting */ @@ -67,7 +69,7 @@ static volatile int cpu_now_booting __cpuinitdata; static int parisc_max_cpus __cpuinitdata = 1; -static DEFINE_PER_CPU(spinlock_t, ipi_lock); +DEFINE_PER_CPU(spinlock_t, ipi_lock) = SPIN_LOCK_UNLOCKED; enum ipi_message_type { IPI_NOP=0, @@ -436,11 +438,6 @@ void __init smp_prepare_boot_cpu(void) */ void __init smp_prepare_cpus(unsigned int max_cpus) { - int cpu; - - for_each_possible_cpu(cpu) - spin_lock_init(&per_cpu(ipi_lock, cpu)); - init_cpu_present(cpumask_of(0)); parisc_max_cpus = max_cpus; diff --git a/trunk/arch/parisc/kernel/unwind.c b/trunk/arch/parisc/kernel/unwind.c index d58eac1a8288..a36799e85693 100644 --- a/trunk/arch/parisc/kernel/unwind.c +++ b/trunk/arch/parisc/kernel/unwind.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -116,18 +115,24 @@ unwind_table_init(struct unwind_table *table, const char *name, } } -static int cmp_unwind_table_entry(const void *a, const void *b) -{ - return ((const struct unwind_table_entry *)a)->region_start - - ((const struct unwind_table_entry *)b)->region_start; -} - static void unwind_table_sort(struct unwind_table_entry *start, struct unwind_table_entry *finish) { - sort(start, finish - start, sizeof(struct unwind_table_entry), - cmp_unwind_table_entry, NULL); + struct unwind_table_entry el, *p, *q; + + for (p = start + 1; p < finish; ++p) { + if (p[0].region_start < p[-1].region_start) { + el = *p; + q = p; + do { + q[0] = q[-1]; + --q; + } while (q > start && + el.region_start < q[-1].region_start); + *q = el; + } + } } struct unwind_table * @@ -412,30 +417,3 @@ int unwind_to_user(struct unwind_frame_info *info) return ret; } - -unsigned long return_address(unsigned int level) -{ - struct unwind_frame_info info; - struct pt_regs r; - unsigned long sp; - - /* initialize unwind info */ - asm volatile ("copy %%r30, %0" : "=r"(sp)); - memset(&r, 0, sizeof(struct pt_regs)); - r.iaoq[0] = (unsigned long) current_text_addr(); - r.gr[2] = (unsigned long) __builtin_return_address(0); - r.gr[30] = sp; - unwind_frame_init(&info, current, &r); - - /* unwind stack */ - ++level; - do { - if (unwind_once(&info) < 0 || info.ip == 0) - return 0; - if (!__kernel_text_address(info.ip)) { - return 0; - } - } while (info.ip && level--); - - return info.ip; -} diff --git a/trunk/arch/powerpc/include/asm/async_tx.h b/trunk/arch/powerpc/include/asm/async_tx.h deleted file mode 100644 index 8b2dc55d01ab..000000000000 --- a/trunk/arch/powerpc/include/asm/async_tx.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2008-2009 DENX Software Engineering. - * - * Author: Yuri Tikhonov - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The full GNU General Public License is included in this distribution in the - * file called COPYING. - */ -#ifndef _ASM_POWERPC_ASYNC_TX_H_ -#define _ASM_POWERPC_ASYNC_TX_H_ - -#if defined(CONFIG_440SPe) || defined(CONFIG_440SP) -extern struct dma_chan * -ppc440spe_async_tx_find_best_channel(enum dma_transaction_type cap, - struct page **dst_lst, int dst_cnt, struct page **src_lst, - int src_cnt, size_t src_sz); - -#define async_tx_find_channel(dep, cap, dst_lst, dst_cnt, src_lst, \ - src_cnt, src_sz) \ - ppc440spe_async_tx_find_best_channel(cap, dst_lst, dst_cnt, src_lst, \ - src_cnt, src_sz) -#else - -#define async_tx_find_channel(dep, type, dst, dst_count, src, src_count, len) \ - __async_tx_find_channel(dep, type) - -struct dma_chan * -__async_tx_find_channel(struct async_submit_ctl *submit, - enum dma_transaction_type tx_type); - -#endif - -#endif diff --git a/trunk/arch/powerpc/include/asm/dcr-regs.h b/trunk/arch/powerpc/include/asm/dcr-regs.h index 380274de429f..828e3aa1f2fc 100644 --- a/trunk/arch/powerpc/include/asm/dcr-regs.h +++ b/trunk/arch/powerpc/include/asm/dcr-regs.h @@ -157,27 +157,4 @@ #define L2C_SNP_SSR_32G 0x0000f000 #define L2C_SNP_ESR 0x00000800 -/* - * DCR register offsets for 440SP/440SPe I2O/DMA controller. - * The base address is configured in the device tree. - */ -#define DCRN_I2O0_IBAL 0x006 -#define DCRN_I2O0_IBAH 0x007 -#define I2O_REG_ENABLE 0x00000001 /* Enable I2O/DMA access */ - -/* 440SP/440SPe Software Reset DCR */ -#define DCRN_SDR0_SRST 0x0200 -#define DCRN_SDR0_SRST_I2ODMA (0x80000000 >> 15) /* Reset I2O/DMA */ - -/* 440SP/440SPe Memory Queue DCR offsets */ -#define DCRN_MQ0_XORBA 0x04 -#define DCRN_MQ0_CF2H 0x06 -#define DCRN_MQ0_CFBHL 0x0f -#define DCRN_MQ0_BAUH 0x10 - -/* HB/LL Paths Configuration Register */ -#define MQ0_CFBHL_TPLM 28 -#define MQ0_CFBHL_HBCL 23 -#define MQ0_CFBHL_POLY 15 - #endif /* __DCR_REGS_H__ */ diff --git a/trunk/arch/powerpc/include/asm/dma-mapping.h b/trunk/arch/powerpc/include/asm/dma-mapping.h index 80a973bb9e71..e281daebddca 100644 --- a/trunk/arch/powerpc/include/asm/dma-mapping.h +++ b/trunk/arch/powerpc/include/asm/dma-mapping.h @@ -197,7 +197,7 @@ static inline bool dma_capable(struct device *dev, dma_addr_t addr, size_t size) if (!dev->dma_mask) return 0; - return addr + size - 1 <= *dev->dma_mask; + return addr + size <= *dev->dma_mask; } static inline dma_addr_t phys_to_dma(struct device *dev, phys_addr_t paddr) diff --git a/trunk/arch/powerpc/include/asm/elf.h b/trunk/arch/powerpc/include/asm/elf.h index 17828ad411eb..014a624f4c8e 100644 --- a/trunk/arch/powerpc/include/asm/elf.h +++ b/trunk/arch/powerpc/include/asm/elf.h @@ -170,6 +170,7 @@ typedef elf_fpreg_t elf_vsrreghalf_t32[ELF_NVSRHALFREG]; #define elf_check_arch(x) ((x)->e_machine == ELF_ARCH) #define compat_elf_check_arch(x) ((x)->e_machine == EM_PPC) +#define USE_ELF_CORE_DUMP #define CORE_DUMP_USE_REGSET #define ELF_EXEC_PAGESIZE PAGE_SIZE diff --git a/trunk/arch/powerpc/include/asm/ptrace.h b/trunk/arch/powerpc/include/asm/ptrace.h index cbd759e3cd78..8c341490cfc5 100644 --- a/trunk/arch/powerpc/include/asm/ptrace.h +++ b/trunk/arch/powerpc/include/asm/ptrace.h @@ -140,8 +140,6 @@ extern void user_enable_single_step(struct task_struct *); extern void user_enable_block_step(struct task_struct *); extern void user_disable_single_step(struct task_struct *); -#define ARCH_HAS_USER_SINGLE_STEP_INFO - #endif /* __ASSEMBLY__ */ #endif /* __KERNEL__ */ diff --git a/trunk/arch/powerpc/kernel/iommu.c b/trunk/arch/powerpc/kernel/iommu.c index 5547ae6e6b0b..fd51578e29dd 100644 --- a/trunk/arch/powerpc/kernel/iommu.c +++ b/trunk/arch/powerpc/kernel/iommu.c @@ -30,7 +30,7 @@ #include #include #include -#include +#include #include #include #include @@ -251,7 +251,7 @@ static void __iommu_free(struct iommu_table *tbl, dma_addr_t dma_addr, } ppc_md.tce_free(tbl, entry, npages); - bitmap_clear(tbl->it_map, free_entry, npages); + iommu_area_free(tbl->it_map, free_entry, npages); } static void iommu_free(struct iommu_table *tbl, dma_addr_t dma_addr, diff --git a/trunk/arch/powerpc/kernel/traps.c b/trunk/arch/powerpc/kernel/traps.c index d069ff8a7e03..804f0f30f227 100644 --- a/trunk/arch/powerpc/kernel/traps.c +++ b/trunk/arch/powerpc/kernel/traps.c @@ -174,15 +174,6 @@ int die(const char *str, struct pt_regs *regs, long err) return 0; } -void user_single_step_siginfo(struct task_struct *tsk, - struct pt_regs *regs, siginfo_t *info) -{ - memset(info, 0, sizeof(*info)); - info->si_signo = SIGTRAP; - info->si_code = TRAP_TRACE; - info->si_addr = (void __user *)regs->nip; -} - void _exception(int signr, struct pt_regs *regs, int code, unsigned long addr) { siginfo_t info; diff --git a/trunk/arch/s390/include/asm/elf.h b/trunk/arch/s390/include/asm/elf.h index 354d42616c7e..e885442c1dfe 100644 --- a/trunk/arch/s390/include/asm/elf.h +++ b/trunk/arch/s390/include/asm/elf.h @@ -155,6 +155,7 @@ extern unsigned int vdso_enabled; } while (0) #define CORE_DUMP_USE_REGSET +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE 4096 /* This is the location that an ET_DYN program is loaded if exec'ed. Typical diff --git a/trunk/arch/score/include/asm/elf.h b/trunk/arch/score/include/asm/elf.h index f478ce94181f..43526d9fda93 100644 --- a/trunk/arch/score/include/asm/elf.h +++ b/trunk/arch/score/include/asm/elf.h @@ -61,6 +61,7 @@ struct task_struct; struct pt_regs; #define CORE_DUMP_USE_REGSET +#define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE PAGE_SIZE /* This yields a mask that user programs can use to figure out what diff --git a/trunk/arch/sh/Kconfig.debug b/trunk/arch/sh/Kconfig.debug index 12fec72fec5f..55907af1dc25 100644 --- a/trunk/arch/sh/Kconfig.debug +++ b/trunk/arch/sh/Kconfig.debug @@ -19,6 +19,50 @@ config SH_STANDARD_BIOS mask ROM and no flash (WindowsCE machines fall in this category). If unsure, say N. +config EARLY_SCIF_CONSOLE + bool "Use early SCIF console" + help + This enables an early console using a fixed SCIF port. This can + be used by platforms that are either not running the SH + standard BIOS, or do not wish to use the BIOS callbacks for the + serial I/O. + +config EARLY_SCIF_CONSOLE_PORT + hex + depends on EARLY_SCIF_CONSOLE + default "0xa4400000" if CPU_SUBTYPE_SH7712 || CPU_SUBTYPE_SH7705 + default "0xa4430000" if CPU_SUBTYPE_SH7720 || CPU_SUBTYPE_SH7721 + default "0xf8420000" if CPU_SUBTYPE_SH7619 + default "0xff804000" if CPU_SUBTYPE_MXG + default "0xffc30000" if CPU_SUBTYPE_SHX3 + default "0xffe00000" if CPU_SUBTYPE_SH7780 || CPU_SUBTYPE_SH7763 || \ + CPU_SUBTYPE_SH7722 || CPU_SUBTYPE_SH7366 || \ + CPU_SUBTYPE_SH7343 + default "0xfe4c0000" if CPU_SUBTYPE_SH7757 + default "0xffeb0000" if CPU_SUBTYPE_SH7785 + default "0xffeb0000" if CPU_SUBTYPE_SH7786 + default "0xfffe8000" if CPU_SUBTYPE_SH7203 + default "0xfffe9800" if CPU_SUBTYPE_SH7206 || CPU_SUBTYPE_SH7263 + default "0xffe80000" if CPU_SH4 + default "0xa4000150" if CPU_SH3 + default "0x00000000" + +config EARLY_PRINTK + bool "Early printk support" + depends on SH_STANDARD_BIOS || EARLY_SCIF_CONSOLE + help + Say Y here to redirect kernel printk messages to the serial port + used by the SH-IPL bootloader, starting very early in the boot + process and ending when the kernel's serial console is initialised. + This option is only useful porting the kernel to a new machine, + when the kernel may crash or hang before the serial console is + initialised. If unsure, say N. + + On devices that are running SH-IPL and want to keep the port + initialization consistent while not using the BIOS callbacks, + select both the EARLY_SCIF_CONSOLE and SH_STANDARD_BIOS, using + the kernel command line option to toggle back and forth. + config STACK_DEBUG bool "Check for stack overflows" depends on DEBUG_KERNEL && SUPERH32 diff --git a/trunk/arch/sh/boards/mach-ap325rxa/setup.c b/trunk/arch/sh/boards/mach-ap325rxa/setup.c index 1f5fa5c44f6d..cf9dc12dfeb1 100644 --- a/trunk/arch/sh/boards/mach-ap325rxa/setup.c +++ b/trunk/arch/sh/boards/mach-ap325rxa/setup.c @@ -316,24 +316,20 @@ static struct soc_camera_platform_info camera_info = { .format_name = "UYVY", .format_depth = 16, .format = { - .code = V4L2_MBUS_FMT_YUYV8_2X8_BE, + .pixelformat = V4L2_PIX_FMT_UYVY, .colorspace = V4L2_COLORSPACE_SMPTE170M, - .field = V4L2_FIELD_NONE, .width = 640, .height = 480, }, .bus_param = SOCAM_PCLK_SAMPLE_RISING | SOCAM_HSYNC_ACTIVE_HIGH | - SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8 | - SOCAM_DATA_ACTIVE_HIGH, + SOCAM_VSYNC_ACTIVE_HIGH | SOCAM_MASTER | SOCAM_DATAWIDTH_8, .set_capture = camera_set_capture, -}; - -struct soc_camera_link camera_link = { - .bus_id = 0, - .add_device = ap325rxa_camera_add, - .del_device = ap325rxa_camera_del, - .module_name = "soc_camera_platform", - .priv = &camera_info, + .link = { + .bus_id = 0, + .add_device = ap325rxa_camera_add, + .del_device = ap325rxa_camera_del, + .module_name = "soc_camera_platform", + }, }; static void dummy_release(struct device *dev) @@ -351,7 +347,7 @@ static struct platform_device camera_device = { static int ap325rxa_camera_add(struct soc_camera_link *icl, struct device *dev) { - if (icl != &camera_link || camera_probe() <= 0) + if (icl != &camera_info.link || camera_probe() <= 0) return -ENODEV; camera_info.dev = dev; @@ -361,7 +357,7 @@ static int ap325rxa_camera_add(struct soc_camera_link *icl, static void ap325rxa_camera_del(struct soc_camera_link *icl) { - if (icl != &camera_link) + if (icl != &camera_info.link) return; platform_device_unregister(&camera_device); @@ -474,15 +470,13 @@ static struct ov772x_camera_info ov7725_info = { .buswidth = SOCAM_DATAWIDTH_8, .flags = OV772X_FLAG_VFLIP | OV772X_FLAG_HFLIP, .edgectrl = OV772X_AUTO_EDGECTRL(0xf, 0), -}; - -static struct soc_camera_link ov7725_link = { - .bus_id = 0, - .power = ov7725_power, - .board_info = &ap325rxa_i2c_camera[0], - .i2c_adapter_id = 0, - .module_name = "ov772x", - .priv = &ov7725_info, + .link = { + .bus_id = 0, + .power = ov7725_power, + .board_info = &ap325rxa_i2c_camera[0], + .i2c_adapter_id = 0, + .module_name = "ov772x", + }, }; static struct platform_device ap325rxa_camera[] = { @@ -490,13 +484,13 @@ static struct platform_device ap325rxa_camera[] = { .name = "soc-camera-pdrv", .id = 0, .dev = { - .platform_data = &ov7725_link, + .platform_data = &ov7725_info.link, }, }, { .name = "soc-camera-pdrv", .id = 1, .dev = { - .platform_data = &camera_link, + .platform_data = &camera_info.link, }, }, }; diff --git a/trunk/arch/sh/boards/mach-ecovec24/setup.c b/trunk/arch/sh/boards/mach-ecovec24/setup.c index 194aaca22d47..826e62326d51 100644 --- a/trunk/arch/sh/boards/mach-ecovec24/setup.c +++ b/trunk/arch/sh/boards/mach-ecovec24/setup.c @@ -19,18 +19,11 @@ #include #include #include -#include -#include -#include -#include #include #include #include #include