]> Git Repo - linux.git/commitdiff
Merge git://git.infradead.org/mtd-2.6
authorLinus Torvalds <[email protected]>
Mon, 22 Jun 2009 23:56:22 +0000 (16:56 -0700)
committerLinus Torvalds <[email protected]>
Mon, 22 Jun 2009 23:56:22 +0000 (16:56 -0700)
* git://git.infradead.org/mtd-2.6: (63 commits)
  mtd: OneNAND: Allow setting of boundary information when built as module
  jffs2: leaking jffs2_summary in function jffs2_scan_medium
  mtd: nand: Fix memory leak on txx9ndfmc probe failure.
  mtd: orion_nand: use burst reads with double word accesses
  mtd/nand: s3c6400 support for s3c2410 driver
  [MTD] [NAND] S3C2410: Use DIV_ROUND_UP
  [MTD] [NAND] S3C2410: Deal with unaligned lengths in S3C2440 buffer read/write
  [MTD] [NAND] S3C2410: Allow the machine code to get the BBT table from NAND
  [MTD] [NAND] S3C2410: Added a kerneldoc for s3c2410_nand_set
  mtd: physmap_of: Add multiple regions and concatenation support
  mtd: nand: max_retries off by one in mxc_nand
  mtd: nand: s3c2410_nand_setrate(): use correct macros for 2412/2440
  mtd: onenand: add bbt_wait & unlock_all as replaceable for some platform
  mtd: Flex-OneNAND support
  mtd: nand: add OMAP2/OMAP3 NAND driver
  mtd: maps: Blackfin async: fix memory leaks in probe/remove funcs
  mtd: uclinux: mark local stuff static
  mtd: uclinux: do not allow to be built as a module
  mtd: uclinux: allow systems to override map addr/size
  mtd: blackfin NFC: fix hang when using NAND on BF527-EZKITs
  ...

1  2 
Documentation/kernel-parameters.txt
MAINTAINERS
drivers/mtd/mtd_blkdevs.c
drivers/mtd/nand/Kconfig
drivers/mtd/nand/davinci_nand.c
drivers/mtd/onenand/omap2.c
fs/compat_ioctl.c

index 5092a2be83c57b5ebb3d1de05493b5f7a9c36ce4,ad2b3078e59c9d17fbbb796cd20eb6ff2bf7b5ce..54ebf100e4e02301e8f2f88a0b98ddc85d653a85
@@@ -48,7 -48,6 +48,7 @@@ parameter is applicable
        EFI     EFI Partitioning (GPT) is enabled
        EIDE    EIDE/ATAPI support is enabled.
        FB      The frame buffer device is enabled.
 +      GCOV    GCOV profiling is enabled.
        HW      Appropriate hardware is enabled.
        IA-64   IA-64 architecture is enabled.
        IMA     Integrity measurement architecture is enabled.
@@@ -57,6 -56,7 +57,6 @@@
        ISAPNP  ISA PnP code is enabled.
        ISDN    Appropriate ISDN support is enabled.
        JOY     Appropriate joystick support is enabled.
 -      KMEMTRACE kmemtrace is enabled.
        LIBATA  Libata driver is enabled
        LP      Printer support is enabled.
        LOOP    Loopback device support is enabled.
@@@ -329,6 -329,11 +329,6 @@@ and is between 256 and 4096 characters
                                    flushed before they will be reused, which
                                    is a lot of faster
  
 -      amd_iommu_size= [HW,X86-64]
 -                      Define the size of the aperture for the AMD IOMMU
 -                      driver. Possible values are:
 -                      '32M', '64M' (default), '128M', '256M', '512M', '1G'
 -
        amijoy.map=     [HW,JOY] Amiga joystick support
                        Map of devices attached to JOY0DAT and JOY1DAT
                        Format: <a>,<b>
                        Also note the kernel might malfunction if you disable
                        some critical bits.
  
 +      cmo_free_hint=  [PPC] Format: { yes | no }
 +                      Specify whether pages are marked as being inactive
 +                      when they are freed.  This is used in CMO environments
 +                      to determine OS memory pressure for page stealing by
 +                      a hypervisor.
 +                      Default: yes
 +
        code_bytes      [X86] How many bytes of object code to print
                        in an oops report.
                        Range: 0 - 8192
                        console=brl,ttyS0
                For now, only VisioBraille is supported.
  
 +      consoleblank=   [KNL] The console blank (screen saver) timeout in
 +                      seconds. Defaults to 10*60 = 10mins. A value of 0
 +                      disables the blank timer.
 +
        coredump_filter=
                        [KNL] Change the default value for
                        /proc/<pid>/coredump_filter.
                        DMA-API debugging code disables itself because the
                        architectural default is too low.
  
 +      dma_debug_driver=<driver_name>
 +                      With this option the DMA-API debugging driver
 +                      filter feature can be enabled at boot time. Just
 +                      pass the driver to filter for as the parameter.
 +                      The filter can be disabled or changed to another
 +                      driver later using sysfs.
 +
        dscc4.setup=    [NET]
  
        dtc3181e=       [HW,SCSI]
                        ia64_pal_cache_flush instead of SAL_CACHE_FLUSH.
  
        ftrace=[tracer]
 -                      [ftrace] will set and start the specified tracer
 +                      [FTRACE] will set and start the specified tracer
                        as early as possible in order to facilitate early
                        boot debugging.
  
        ftrace_dump_on_oops
 -                      [ftrace] will dump the trace buffers on oops.
 +                      [FTRACE] will dump the trace buffers on oops.
 +
 +      ftrace_filter=[function-list]
 +                      [FTRACE] Limit the functions traced by the function
 +                      tracer at boot up. function-list is a comma separated
 +                      list of functions. This list can be changed at run
 +                      time by the set_ftrace_filter file in the debugfs
 +                      tracing directory. 
 +
 +      ftrace_notrace=[function-list]
 +                      [FTRACE] Do not trace the functions specified in
 +                      function-list. This list can be changed at run time
 +                      by the set_ftrace_notrace file in the debugfs
 +                      tracing directory.
  
        gamecon.map[2|3]=
                        [HW,JOY] Multisystem joystick and NES/SNES/PSX pad
                        Format: off | on
                        default: on
  
 +      gcov_persist=   [GCOV] When non-zero (default), profiling data for
 +                      kernel modules is saved and remains accessible via
 +                      debugfs, even when the module is unloaded/reloaded.
 +                      When zero, profiling data is discarded and associated
 +                      debugfs files are removed at module unload time.
 +
        gdth=           [HW,SCSI]
                        See header of drivers/scsi/gdth.c.
  
  
        ide-core.nodma= [HW] (E)IDE subsystem
                        Format: =0.0 to prevent dma on hda, =0.1 hdb =1.0 hdc
 -                      .vlb_clock .pci_clock .noflush .noprobe .nowerr .cdrom
 -                      .chs .ignore_cable are additional options
 -                      See Documentation/ide/ide.txt.
 -
 -      idebus=         [HW] (E)IDE subsystem - VLB/PCI bus speed
 +                      .vlb_clock .pci_clock .noflush .nohpa .noprobe .nowerr
 +                      .cdrom .chs .ignore_cable are additional options
                        See Documentation/ide/ide.txt.
  
        ide-pci-generic.all-generic-ide [HW] (E)IDE subsystem
                        Formt: { "sha1" | "md5" }
                        default: "sha1"
  
 +      ima_tcb         [IMA]
 +                      Load a policy which meets the needs of the Trusted
 +                      Computing Base.  This means IMA will measure all
 +                      programs exec'd, files mmap'd for exec, and all files
 +                      opened for read by uid=0.
 +
        in2000=         [HW,SCSI]
                        See header of drivers/scsi/in2000.c.
  
                        use the HighMem zone if it exists, and the Normal
                        zone if it does not.
  
 -      kmemtrace.enable=       [KNL,KMEMTRACE] Format: { yes | no }
 -                              Controls whether kmemtrace is enabled
 -                              at boot-time.
 -
 -      kmemtrace.subbufs=n     [KNL,KMEMTRACE] Overrides the number of
 -                      subbufs kmemtrace's relay channel has. Set this
 -                      higher than default (KMEMTRACE_N_SUBBUFS in code) if
 -                      you experience buffer overruns.
 -
        kgdboc=         [HW] kgdb over consoles.
                        Requires a tty driver that supports console polling.
 -                      (only serial suported for now)
 +                      (only serial supported for now)
                        Format: <serial_device>[,baud]
  
        kmac=           [MIPS] korina ethernet MAC address.
                        Configure the RouterBoard 532 series on-chip
                        Ethernet adapter MAC address.
  
 +      kmemleak=       [KNL] Boot-time kmemleak enable/disable
 +                      Valid arguments: on, off
 +                      Default: on
 +
        kstack=N        [X86] Print N words from the kernel stack
                        in oops dumps.
  
        min_addr=nn[KMG]        [KNL,BOOT,ia64] All physical memory below this
                        physical address is ignored.
  
 +      mini2440=       [ARM,HW,KNL]
 +                      Format:[0..2][b][c][t]
 +                      Default: "0tb"
 +                      MINI2440 configuration specification:
 +                      0 - The attached screen is the 3.5" TFT
 +                      1 - The attached screen is the 7" TFT
 +                      2 - The VGA Shield is attached (1024x768)
 +                      Leaving out the screen size parameter will not load
 +                      the TFT driver, and the framebuffer will be left
 +                      unconfigured.
 +                      b - Enable backlight. The TFT backlight pin will be
 +                      linked to the kernel VESA blanking code and a GPIO
 +                      LED. This parameter is not necessary when using the
 +                      VGA shield.
 +                      c - Enable the s3c camera interface.
 +                      t - Reserved for enabling touchscreen support. The
 +                      touchscreen support is not enabled in the mainstream
 +                      kernel as of 2.6.30, a preliminary port can be found
 +                      in the "bleeding edge" mini2440 support kernel at
 +                      http://repo.or.cz/w/linux-2.6/mini2440.git
 +
        mminit_loglevel=
                        [KNL] When CONFIG_DEBUG_MEMORY_INIT is set, this
                        parameter allows control of the logging verbosity for
        mtdparts=       [MTD]
                        See drivers/mtd/cmdlinepart.c.
  
+       onenand.bdry=   [HW,MTD] Flex-OneNAND Boundary Configuration
+                       Format: [die0_boundary][,die0_lock][,die1_boundary][,die1_lock]
+                       boundary - index of last SLC block on Flex-OneNAND.
+                                  The remaining blocks are configured as MLC blocks.
+                       lock     - Configure if Flex-OneNAND boundary should be locked.
+                                  Once locked, the boundary cannot be changed.
+                                  1 indicates lock status, 0 indicates unlock status.
        mtdset=         [ARM]
                        ARM/S3C2412 JIVE boot control
  
                        ('y', default) or cooked coordinates ('n')
  
        mtrr_chunk_size=nn[KMG] [X86]
 -                      used for mtrr cleanup. It is largest continous chunk
 +                      used for mtrr cleanup. It is largest continuous chunk
                        that could hold holes aka. UC entries.
  
        mtrr_gran_size=nn[KMG] [X86]
        noinitrd        [RAM] Tells the kernel not to load any configured
                        initial RAM disk.
  
 +      nointremap      [X86-64, Intel-IOMMU] Do not enable interrupt
 +                      remapping.
 +
        nointroute      [IA-64]
  
        nojitter        [IA64] Disables jitter checking for ITC timers.
        oprofile.timer= [HW]
                        Use timer interrupt instead of performance counters
  
 +      oprofile.cpu_type=      Force an oprofile cpu type
 +                      This might be useful if you have an older oprofile
 +                      userland or if you want common events.
 +                      Format: { archperfmon }
 +                      archperfmon: [X86] Force use of architectural
 +                              perfmon on Intel CPUs instead of the
 +                              CPU specific event set.
 +
        osst=           [HW,SCSI] SCSI Tape Driver
                        Format: <buffer_size>,<write_threshold>
                        See also Documentation/scsi/st.txt.
                                root domains (aka PCI segments, in ACPI-speak).
                nommconf        [X86] Disable use of MMCONFIG for PCI
                                Configuration
 +              check_enable_amd_mmconf [X86] check for and enable
 +                              properly configured MMIO access to PCI
 +                              config space on AMD family 10h CPU
                nomsi           [MSI] If the PCI_MSI kernel config parameter is
                                enabled, this kernel boot option can be used to
                                disable the use of MSI interrupts system-wide.
                                IRQ routing is enabled.
                noacpi          [X86] Do not use ACPI for IRQ routing
                                or for PCI scanning.
 -              use_crs         [X86] Use _CRS for PCI resource
 +              nocrs           [X86] Don't use _CRS for PCI resource
                                allocation.
                routeirq        Do IRQ routing for all PCI devices.
                                This is normally done in pci_enable_device(),
                                PAGE_SIZE is used as alignment.
                                PCI-PCI bridge can be specified, if resource
                                windows need to be expanded.
 +              ecrc=           Enable/disable PCIe ECRC (transaction layer
 +                              end-to-end CRC checking).
 +                              bios: Use BIOS/firmware settings. This is the
 +                              the default.
 +                              off: Turn ECRC off
 +                              on: Turn ECRC on.
  
        pcie_aspm=      [PCIE] Forcibly enable or disable PCIe Active State Power
                        Management.
diff --combined MAINTAINERS
index cf5a46ef6b3f4ae57562cf8bf6de23d3623386ad,51ebf7488b3a99d0388365f5dacc707785596f2e..02f6f78b561f4bce68789776d5527ab5dbabcc22
@@@ -36,12 -36,6 +36,12 @@@ trivial patch so apply some common sens
        (scripts/checkpatch.pl) to catch trival style violations.
        See Documentation/CodingStyle for guidance here.
  
 +      PLEASE CC: the maintainers and mailing lists that are generated
 +      by scripts/get_maintainer.pl.  The results returned by the
 +      script will be best if you have git installed and are making
 +      your changes in a branch derived from Linus' latest git tree.
 +      See Documentation/SubmittingPatches for details.
 +
        PLEASE try to include any credit lines you want added with the
        patch. It avoids people being missed off by mistake and makes
        it easier to know who wants adding and who doesn't.
@@@ -77,7 -71,7 +77,7 @@@ P: Perso
  M: Mail patches to
  L: Mailing list that is relevant to this area
  W: Web-page with status/info
 -T: SCM tree type and location.  Type is one of: git, hg, quilt.
 +T: SCM tree type and location.  Type is one of: git, hg, quilt, stgit.
  S: Status, one of the following:
  
        Supported:      Someone is actually paid to look after this.
@@@ -163,11 -157,9 +163,11 @@@ S:       Maintaine
  F:    drivers/net/r8169.c
  
  8250/16?50 (AND CLONE UARTS) SERIAL DRIVER
 +P:    Alan Cox
 +M:    [email protected]
  L:    [email protected]
  W:    http://serial.sourceforge.net
 -S:    Orphan
 +S:    Odd Fixes
  F:    drivers/serial/8250*
  F:    include/linux/serial_8250.h
  
@@@ -495,7 -487,7 +495,7 @@@ AOA (Apple Onboard Audio) ALSA DRIVE
  P:    Johannes Berg
  M:    [email protected]
  L:    [email protected]
 -L:    [email protected] (subscribers-only)
 +L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    sound/aoa/
  
  L:    [email protected] (subscribers-only)
  T:    git git://gitorious.org/linux-gemini/mainline.git
  S:    Maintained
 +F:    arch/arm/mach-gemini/
  
  ARM/EBSA110 MACHINE SUPPORT
  P:    Russell King
@@@ -653,15 -644,12 +653,15 @@@ M:      [email protected]
  L:    [email protected] (subscribers-only)
  W:    http://www.openezx.org/
  S:    Maintained
 +T:    topgit git://git.openezx.org/openezx.git
 +F:    arch/arm/mach-pxa/ezx.c
  
  ARM/FARADAY FA526 PORT
  P:    Paulius Zaleckas
  M:    [email protected]
  L:    [email protected] (subscribers-only)
  S:    Maintained
 +F:    arch/arm/mm/*-fa*
  
  ARM/FOOTBRIDGE ARCHITECTURE
  P:    Russell King
@@@ -690,13 -678,6 +690,13 @@@ M:       [email protected]
  L:    [email protected] (subscribers-only)
  S:    Maintained
  
 +ARM/H4700 (HP IPAQ HX4700) MACHINE SUPPORT
 +P:    Philipp Zabel
 +M:    [email protected]
 +S:    Maintained
 +F:    arch/arm/mach-pxa/hx4700.c
 +F:    arch/arm/mach-pxa/include/mach/hx4700.h
 +
  ARM/HP JORNADA 7XX MACHINE SUPPORT
  P:    Kristoffer Ericson
  M:    [email protected]
@@@ -776,25 -757,11 +776,25 @@@ P:      Philipp Zabe
  M:    [email protected]
  S:    Maintained
  
 +ARM/MIOA701 MACHINE SUPPORT
 +P:    Robert Jarzmik
 +M:    [email protected]
 +L:    [email protected] (subscribers-only)
 +F:    arch/arm/mach-pxa/mioa701.c
 +S:    Maintained
 +
  ARM/NEC MOBILEPRO 900/c MACHINE SUPPORT
  P:    Michael Petchkovsky
  M:    [email protected]
  S:    Maintained
  
 +ARM/OPENMOKO NEO FREERUNNER (GTA02) MACHINE SUPPORT
 +P:    Nelson Castillo
 +M:    [email protected]
 +L:    [email protected] (subscribers-only)
 +W:    http://wiki.openmoko.org/wiki/Neo_FreeRunner
 +S:    Supported
 +
  ARM/TOSA MACHINE SUPPORT
  P:    Dmitry Eremin-Solenikov
  M:    [email protected]
@@@ -808,12 -775,6 +808,12 @@@ M:       [email protected]
  W:    http://hackndev.com
  S:    Maintained
  
 +ARM/PALM TREO 680 SUPPORT
 +P:    Tomas Cech
 +M:    [email protected]
 +W:    http://hackndev.com
 +S:    Maintained
 +
  ARM/PALMZ72 SUPPORT
  P:    Sergey Lapin
  M:    [email protected]
@@@ -940,6 -901,7 +940,6 @@@ P: Dan William
  M:    [email protected]
  P:    Maciej Sosnowski
  M:    [email protected]
 -L:    [email protected]
  W:    http://sourceforge.net/projects/xscaleiop
  S:    Supported
  F:    Documentation/crypto/async-tx-api.txt
@@@ -968,23 -930,17 +968,23 @@@ M:      [email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Maintained
 -F:    drivers/net/wireless/ath5k/
 +F:    drivers/net/wireless/ath/ath5k/
  
  ATHEROS ATH9K WIRELESS DRIVER
  P:    Luis R. Rodriguez
  M:    [email protected]
  P:    Jouni Malinen
  M:    [email protected]
 +P:    Sujith Manoharan
 +M:    [email protected]
 +P:    Vasanthakumar Thiagarajan
 +M:    [email protected]
 +P:    Senthil Balasubramanian
 +M:    [email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
 -F:    drivers/net/wireless/ath9k/
 +F:    drivers/net/wireless/ath/ath9k/
  
  ATHEROS AR9170 WIRELESS DRIVER
  P:    Christian Lamparter
  L:    [email protected]
  W:    http://wireless.kernel.org/en/users/Drivers/ar9170
  S:    Maintained
 -F:    drivers/net/wireless/ar9170/
 +F:    drivers/net/wireless/ath/ar9170/
  
  ATI_REMOTE2 DRIVER
  P:    Ville Syrjala
@@@ -1032,16 -988,10 +1032,16 @@@ W:    http://www.at91.com
  S:    Maintained
  F:    drivers/mmc/host/at91_mci.c
  
 +ATMEL AT91 / AT32 MCI DRIVER
 +P:    Nicolas Ferre
 +M:    [email protected]
 +S:    Maintained
 +F:    drivers/mmc/host/atmel-mci.c
 +F:    drivers/mmc/host/atmel-mci-regs.h
 +
  ATMEL AT91 / AT32 SERIAL DRIVER
  P:    Haavard Skinnemoen
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    drivers/serial/atmel_serial.c
  
@@@ -1097,6 -1047,7 +1097,6 @@@ F:      kernel/audit
  AUXILIARY DISPLAY DRIVERS
  P:    Miguel Ojeda Sandonis
  M:    [email protected]
 -L:    [email protected]
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -1166,6 -1117,7 +1166,6 @@@ F:      drivers/net/hamradio/baycom
  BEFS FILE SYSTEM
  P:    Sergey S. Kostyliov
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/filesystems/befs.txt
  F:    fs/befs/
  BFS FILE SYSTEM
  P:    Tigran A. Aivazian
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/filesystems/bfs.txt
  F:    fs/bfs/
@@@ -1229,6 -1182,7 +1229,6 @@@ F:      drivers/i2c/busses/i2c-bfin-twi.
  BLOCK LAYER
  P:    Jens Axboe
  M:    [email protected]
 -L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
  S:    Maintained
  F:    block/
@@@ -1355,6 -1309,7 +1355,6 @@@ P:      Muli Ben-Yehud
  M:    [email protected]
  P:    Jon D. Mason
  M:    [email protected]
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    arch/x86/kernel/pci-calgary_64.c
@@@ -1374,13 -1329,6 +1374,13 @@@ F:    drivers/net/can
  F:    include/linux/can/
  F:    include/linux/can.h
  
 +CAN NETWORK DRIVERS
 +P:    Wolfgang Grandegger
 +M:    [email protected]
 +L:    [email protected] (subscribers-only)
 +W:    http://developer.berlios.de/projects/socketcan/
 +S:    Maintained
 +
  CELL BROADBAND ENGINE ARCHITECTURE
  P:    Arnd Bergmann
  M:    [email protected]
@@@ -1406,6 -1354,7 +1406,6 @@@ F:      include/linux/usb/wusb
  CFAG12864B LCD DRIVER
  P:    Miguel Ojeda Sandonis
  M:    [email protected]
 -L:    [email protected]
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -1415,6 -1364,7 +1415,6 @@@ F:      include/linux/cfag12864b.
  CFAG12864BFB LCD FRAMEBUFFER DRIVER
  P:    Miguel Ojeda Sandonis
  M:    [email protected]
 -L:    [email protected]
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -1434,6 -1384,7 +1434,6 @@@ X:      net/wireless/wext
  CHECKPATCH
  P:    Andy Whitcroft
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    scripts/checkpatch.pl
  
@@@ -1462,7 -1413,7 +1462,7 @@@ F:      drivers/usb/host/ohci-ep93xx.
  CIRRUS LOGIC CS4270 SOUND DRIVER
  P:    Timur Tabi
  M:    [email protected]
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    sound/soc/codecs/cs4270*
  
@@@ -1487,7 -1438,6 +1487,7 @@@ P:      Joe Eykhol
  M:    [email protected]
  L:    [email protected]
  S:    Supported
 +F:    drivers/scsi/fnic/
  
  CODA FILE SYSTEM
  P:    Jan Harkes
@@@ -1560,6 -1510,7 +1560,6 @@@ F:      drivers/usb/atm/cxacru.
  CONFIGFS
  P:    Joel Becker
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    fs/configfs/
  F:    include/linux/configfs.h
@@@ -1573,7 -1524,6 +1573,7 @@@ L:      [email protected]
  S:    Maintained
  F:    include/linux/cgroup*
  F:    kernel/cgroup*
 +F:    mm/*cgroup*
  
  CORETEMP HARDWARE MONITORING DRIVER
  P:    Rudolf Marek
@@@ -1590,13 -1540,6 +1590,13 @@@ W:    http://www.fi.muni.cz/~kas/cosa
  S:    Maintained
  F:    drivers/net/wan/cosa*
  
 +CPMAC ETHERNET DRIVER
 +P:    Florian Fainelli
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/net/cpmac.c
 +
  CPU FREQUENCY DRIVERS
  P:    Dave Jones
  M:    [email protected]
@@@ -1618,6 -1561,7 +1618,6 @@@ F:      arch/x86/kernel/msr.
  CPUSETS
  P:    Paul Menage
  M:    [email protected]
 -L:    [email protected]
  W:    http://www.bullopensource.org/cpuset/
  W:    http://oss.sgi.com/projects/cpusets/
  S:    Supported
@@@ -1824,6 -1768,7 +1824,6 @@@ DEVICE NUMBER REGISTR
  P:    Torben Mathiasen
  M:    [email protected]
  W:    http://lanana.org/docs/device-list/index.html
 -L:    [email protected]
  S:    Maintained
  
  DEVICE-MAPPER  (LVM)
@@@ -1847,9 -1792,10 +1847,9 @@@ F:     drivers/char/epca
  F:    drivers/char/digi*
  
  DIRECTORY NOTIFICATION (DNOTIFY)
 -P:    Stephen Rothwell
 -M:    [email protected]
 -L:    [email protected]
 -S:    Supported
 +P:    Eric Paris
 +M:    [email protected]
 +S:    Maintained
  F:    Documentation/filesystems/dnotify.txt
  F:    fs/notify/dnotify/
  F:    include/linux/dnotify.h
@@@ -1865,6 -1811,7 +1865,6 @@@ S:      Maintaine
  DISKQUOTA
  P:    Jan Kara
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/filesystems/quota.txt
  F:    fs/quota/
@@@ -1886,6 -1833,7 +1886,6 @@@ P:      Maciej Sosnowsk
  M:    [email protected]
  P:    Dan Williams
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    drivers/dma/
  F:    include/linux/dma*
@@@ -1937,6 -1885,7 +1937,6 @@@ F:      drivers/scsi/dpt
  DRIVER CORE, KOBJECTS, AND SYSFS
  P:    Greg Kroah-Hartman
  M:    [email protected]
 -L:    [email protected]
  T:    quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
  S:    Supported
  F:    Documentation/kobject.txt
@@@ -2002,8 -1951,8 +2002,8 @@@ F:      net/bridge/netfilter/ebt*.
  ECRYPT FILE SYSTEM
  P:    Tyler Hicks
  M:    [email protected]
 -M:    Dustin Kirkland
 -P:    [email protected]
 +P:    Dustin Kirkland
 +M:    [email protected]
  L:    [email protected]
  W:    https://launchpad.net/ecryptfs
  S:    Supported
@@@ -2020,16 -1969,6 +2020,16 @@@ F:    Documentation/edac.tx
  F:    drivers/edac/edac_*
  F:    include/linux/edac.h
  
 +EDAC-AMD64
 +P:    Doug Thompson
 +M:    [email protected]
 +P:    Borislav Petkov
 +M:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +W:    bluesmoke.sourceforge.net
 +S:    Supported
 +F:    drivers/edac/amd64_edac*
 +
  EDAC-E752X
  P:    Mark Gross
  M:    [email protected]
@@@ -2082,8 -2021,8 +2082,8 @@@ F:      drivers/edac/i5400_edac.
  
  EDAC-I82975X
  P:    Ranganathan Desikan
 -P:    Arvind R.
  M:    [email protected]
 +P:    Arvind R.
  M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  W:    bluesmoke.sourceforge.net
@@@ -2146,15 -2085,6 +2146,15 @@@ W:    http://sourceforge.net/projects/lpfc
  S:    Supported
  F:    drivers/scsi/lpfc/
  
 +ENE CB710 FLASH CARD READER DRIVER
 +P:    MichaÅ‚ MirosÅ‚aw
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/misc/cb710/
 +F:    drivers/mmc/host/cb710-mmc.*
 +F:    include/linux/cb710.h
 +
  EPSON 1355 FRAMEBUFFER DRIVER
  P:    Christopher Hoover
  M:    [email protected]
@@@ -2283,6 -2213,7 +2283,6 @@@ F:      drivers/firewire
  F:    include/linux/firewire*.h
  
  FIRMWARE LOADER (request_firmware)
 -L:    [email protected]
  S:    Orphan
  F:    Documentation/firmware_class/
  F:    drivers/base/firmware*.c
@@@ -2304,9 -2235,11 +2304,9 @@@ F:     drivers/net/wan/dlci.
  F:    drivers/net/wan/sdla.c
  
  FRAMEBUFFER LAYER
 -P:    Antonino Daplas
 -M:    [email protected]
  L:    [email protected] (moderated for non-subscribers)
  W:    http://linux-fbdev.sourceforge.net/
 -S:    Maintained
 +S:    Orphan
  F:    Documentation/fb/
  F:    drivers/video/fb*
  F:    include/linux/fb.h
@@@ -2316,7 -2249,8 +2316,7 @@@ P:      Li Yan
  M:    [email protected]
  P:    Zhang Wei
  M:    [email protected]
 -L:    [email protected]
 -L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    drivers/dma/fsldma.*
  
@@@ -2382,7 -2316,7 +2382,7 @@@ F:      drivers/serial/ucc_uart.
  FREESCALE SOC SOUND DRIVERS
  P:    Timur Tabi
  M:    [email protected]
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  S:    Supported
  F:    sound/soc/fsl/fsl*
@@@ -2397,7 -2331,7 +2397,7 @@@ F:      fs/freevxfs
  
  FREEZER
  P:    Pavel Machek
 -M:    pavel@suse.cz
 +M:    pavel@ucw.cz
  P:    Rafael J. Wysocki
  M:    [email protected]
  L:    [email protected]
@@@ -2419,7 -2353,7 +2419,7 @@@ FTRAC
  P:    Steven Rostedt
  M:    [email protected]
  S:    Maintained
 -F:    Documentation/ftrace.txt
 +F:    Documentation/trace/ftrace.txt
  F:    arch/*/*/*/ftrace.h
  F:    arch/*/kernel/ftrace.c
  F:    include/*/ftrace.h
@@@ -2516,6 -2450,7 +2516,6 @@@ F:      drivers/hwmon/hdaps.
  
  HYPERVISOR VIRTUAL CONSOLE DRIVER
  L:    [email protected]
 -L:    [email protected]
  S:    Odd Fixes
  F:    drivers/char/hvc_*
  
@@@ -2582,6 -2517,7 +2582,6 @@@ F:      sound/parisc/harmony.
  HAYES ESP SERIAL DRIVER
  P:    Andrew J. Robinson
  M:    [email protected]
 -L:    [email protected]
  W:    http://www.nyx.net/~arobinso
  S:    Maintained
  F:    Documentation/serial/hayes-esp.txt
@@@ -2607,6 -2543,7 +2607,6 @@@ F:      include/linux/cciss_ioctl.
  HFS FILESYSTEM
  P:    Roman Zippel
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/filesystems/hfs.txt
  F:    fs/hfs/
@@@ -2646,6 -2583,7 +2646,6 @@@ F:      include/linux/hid
  HIGH-RESOLUTION TIMERS, CLOCKEVENTS, DYNTICKS
  P:    Thomas Gleixner
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/timers/
  F:    kernel/hrtimer.c
@@@ -2784,6 -2722,7 +2784,6 @@@ F:      drivers/i2c/busses/i2c-tiny-usb.
  i386 BOOT CODE
  P:    H. Peter Anvin
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    arch/x86/boot/
  
  S:    Maintained
  F:    drivers/ieee1394/raw1394*
  
 +IEEE 802.15.4 SUBSYSTEM
 +P:    Dmitry Eremin-Solenikov
 +M:    [email protected]
 +P:    Sergey Lapin
 +M:    [email protected]
 +L:    [email protected]
 +W:    http://apps.sourceforge.net/trac/linux-zigbee
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan.git
 +S:    Maintained
 +F:    net/ieee802154/
 +F:    drivers/ieee802154/
 +
  INTEGRITY MEASUREMENT ARCHITECTURE (IMA)
  P:    Mimi Zohar
  M:    [email protected]
@@@ -2911,8 -2838,7 +2911,8 @@@ P:      John McCutcha
  M:    [email protected]
  P:    Robert Love
  M:    [email protected]
 -L:    [email protected]
 +P:    Eric Paris
 +M:    [email protected]
  S:    Maintained
  F:    Documentation/filesystems/inotify.txt
  F:    fs/notify/inotify/
@@@ -2960,6 -2886,7 +2960,6 @@@ F:      arch/x86/kernel/microcode_intel.
  INTEL I/OAT DMA DRIVER
  P:    Maciej Sosnowski
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    drivers/dma/ioat*
  
@@@ -2975,6 -2902,7 +2975,6 @@@ F:      include/linux/intel-iommu.
  INTEL IOP-ADMA DMA DRIVER
  P:    Dan Williams
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    drivers/dma/iop-adma.c
  
@@@ -3170,7 -3098,6 +3170,7 @@@ M:      [email protected]
  L:    [email protected] (subscribers-only)
  W:    http://irda.sourceforge.net/
  S:    Maintained
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/irda-2.6.git
  F:    Documentation/networking/irda.txt
  F:    drivers/net/irda/
  F:    include/net/irda/
@@@ -3252,7 -3179,6 +3252,6 @@@ W:      http://www.linux-mtd.infradead.org/d
  S:    Maintained
  F:    fs/jffs2/
  F:    include/linux/jffs2.h
- F:    include/mtd/jffs2-user.h
  
  JOURNALLING LAYER FOR BLOCK DEVICES (JBD)
  P:    Stephen Tweedie
@@@ -3287,6 -3213,7 +3286,6 @@@ M:      [email protected]
  P:    Haren Myneni
  M:    [email protected]
  L:    [email protected]
 -L:    [email protected]
  W:    http://lse.sourceforge.net/kdump/
  S:    Maintained
  F:    Documentation/kdump/
@@@ -3396,6 -3323,7 +3395,6 @@@ KEXE
  P:    Eric Biederman
  M:    [email protected]
  W:    http://ftp.kernel.org/pub/linux/kernel/people/horms/kexec-tools/
 -L:    [email protected]
  L:    [email protected]
  S:    Maintained
  F:    include/linux/kexec.h
@@@ -3412,30 -3340,13 +3411,30 @@@ F:   drivers/serial/kgdboc.
  F:    include/linux/kgdb.h
  F:    kernel/kgdb.c
  
 +KMEMCHECK
 +P:    Vegard Nossum
 +M:    [email protected]
 +P     Pekka Enberg
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +
 +KMEMLEAK
 +P:    Catalin Marinas
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    Documentation/kmemleak.txt
 +F:    include/linux/kmemleak.h
 +F:    mm/kmemleak.c
 +F:    mm/kmemleak-test.c
 +
  KMEMTRACE
  P:    Eduard - Gabriel Munteanu
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/trace/kmemtrace.txt
 -F:    include/trace/kmemtrace.h
 +F:    include/linux/kmemtrace.h
  F:    kernel/trace/kmemtrace.c
  
  KPROBES
@@@ -3447,6 -3358,7 +3446,6 @@@ P:      David S. Mille
  M:    [email protected]
  P:    Masami Hiramatsu
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/kprobes.txt
  F:    include/linux/kprobes.h
@@@ -3455,6 -3367,7 +3454,6 @@@ F:      kernel/kprobes.
  KS0108 LCD CONTROLLER DRIVER
  P:    Miguel Ojeda Sandonis
  M:    [email protected]
 -L:    [email protected]
  W:    http://miguelojeda.es/auxdisplay.htm
  W:    http://jair.lab.fi.uva.es/~migojed/auxdisplay.htm
  S:    Maintained
@@@ -3618,6 -3531,7 +3617,6 @@@ P:      Peter Zijlstr
  M:    [email protected]
  P:    Ingo Molnar
  M:    [email protected]
 -L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep.git
  S:    Maintained
  F:    Documentation/lockdep*.txt
@@@ -3669,6 -3583,7 +3668,6 @@@ L:      [email protected] (in 
  W:    http://www.linux-m32r.org/
  S:    Maintained
  F:    arch/m32r/
 -F:    include/asm-m32r/
  
  M68K ARCHITECTURE
  P:    Geert Uytterhoeven
@@@ -3752,6 -3667,7 +3751,6 @@@ F:      include/linux/mv643xx.
  MARVELL SOC MMC/SD/SDIO CONTROLLER DRIVER
  P:    Nicolas Pitre
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  
  MARVELL YUKON / SYSKONNECT DRIVER
@@@ -3805,6 -3721,7 +3804,6 @@@ F:      drivers/scsi/megaraid
  
  MEMORY MANAGEMENT
  L:    [email protected]
 -L:    [email protected]
  W:    http://www.linux-mm.org
  S:    Maintained
  F:    include/linux/mm.h
@@@ -3818,6 -3735,7 +3817,6 @@@ M:      [email protected]
  P:    KAMEZAWA Hiroyuki
  M:    [email protected]
  L:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    mm/memcontrol.c
  
@@@ -3860,6 -3778,7 +3859,6 @@@ F:      arch/mips
  MISCELLANEOUS MCA-SUPPORT
  P:    James Bottomley
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/ia64/mca.txt
  F:    Documentation/mca.txt
@@@ -3869,6 -3788,7 +3868,6 @@@ F:      include/linux/mca
  MODULE SUPPORT
  P:    Rusty Russell
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    include/linux/module.h
  F:    kernel/module.c
@@@ -3892,6 -3812,7 +3891,6 @@@ F:      drivers/mmc/host/imxmmc.
  MOUSE AND MISC DEVICES [GENERAL]
  P:    Alessandro Rubini
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    drivers/input/mouse/
  F:    include/linux/gpio_mouse.h
  MOXA SMARTIO/INDUSTIO/INTELLIO SERIAL CARD
  P:    Jiri Slaby
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/serial/moxa-smartio
  F:    drivers/char/mxser.*
@@@ -3914,6 -3836,7 +3913,6 @@@ F:      drivers/platform/x86/msi-laptop.
  MULTIFUNCTION DEVICES (MFD)
  P:    Samuel Ortiz
  M:    [email protected]
 -L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6.git
  S:    Supported
  F:    drivers/mfd/
  MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM
  P:    Pierre Ossman
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    drivers/mmc/
  F:    include/linux/mmc/
  MULTIMEDIA CARD (MMC) ETC. OVER SPI
  P:    David Brownell
  M:    [email protected]
 -L:    [email protected]
  S:    Odd Fixes
  F:    drivers/mmc/host/mmc_spi.c
  F:    include/linux/spi/mmc_spi.h
@@@ -3942,6 -3867,7 +3941,6 @@@ F:      sound/oss/msnd
  MULTITECH MULTIPORT CARD (ISICOM)
  P:    Jiri Slaby
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    drivers/char/isicom.c
  F:    include/linux/isicom.h
@@@ -4112,7 -4038,7 +4111,7 @@@ T:      git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    net/wireless/
  F:    include/net/ieee80211*
 -F:    include/net/wireless.h
 +F:    include/linux/wireless.h
  
  NETWORKING DRIVERS
  L:    [email protected]
@@@ -4185,6 -4111,7 +4184,6 @@@ NTFS FILESYSTE
  P:    Anton Altaparmakov
  M:    [email protected]
  L:    [email protected]
 -L:    [email protected]
  W:    http://www.linux-ntfs.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/aia21/ntfs-2.6.git
  S:    Maintained
@@@ -4199,69 -4126,6 +4198,69 @@@ S:    Maintaine
  F:    drivers/video/riva/
  F:    drivers/video/nvidia/
  
 +OMAP SUPPORT
 +P:    Tony Lindgren <[email protected]>
 +M:    [email protected]
 +L:    [email protected]
 +W:    http://www.muru.com/linux/omap/
 +W:    http://linux.omap.com/
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.git
 +S:    Maintained
 +F:    arch/arm/*omap*
 +
 +OMAP CLOCK FRAMEWORK SUPPORT
 +P:    Paul Walmsley
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/arm/*omap*/*clock*
 +
 +OMAP POWER MANAGEMENT SUPPORT
 +P:    Kevin Hilman
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/arm/*omap*/*pm*
 +
 +OMAP AUDIO SUPPORT
 +P:    Jarkko Nikula
 +M:    [email protected]
 +L:    [email protected] (subscribers-only)
 +L:    [email protected]
 +S:    Maintained
 +F:    sound/soc/omap/
 +
 +OMAP FRAMEBUFFER SUPPORT
 +P:    Imre Deak
 +M:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/video/omap/
 +
 +OMAP MMC SUPPORT
 +P:    Jarkko Lavinen
 +M:    [email protected]
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/mmc/host/*omap*
 +
 +OMAP RANDOM NUMBER GENERATOR SUPPORT
 +P:    Deepak Saxena
 +M:    [email protected]
 +S:    Maintained
 +F:    drivers/char/hw_random/omap-rng.c
 +
 +OMAP USB SUPPORT
 +P:    Felipe Balbi
 +M:    [email protected]
 +P:    David Brownell
 +M:    [email protected]
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +
  OMFS FILESYSTEM
  P:    Bob Copeland
  M:    [email protected]
@@@ -4418,6 -4282,7 +4417,6 @@@ M:      [email protected]
  P:    Rusty Russell
  M:    [email protected]
  L:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    Documentation/ia64/paravirt_ops.txt
  F:    arch/*/kernel/paravirt*
@@@ -4468,6 -4333,7 +4467,6 @@@ F:      include/linux/leds-pca9532.
  PCI ERROR RECOVERY
  P:    Linas Vepstas
  M:    [email protected]
 -L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    Documentation/PCI/pci-error-recovery.txt
@@@ -4476,6 -4342,7 +4475,6 @@@ F:      Documentation/powerpc/eeh-pci-error-
  PCI SUBSYSTEM
  P:    Jesse Barnes
  M:    [email protected]
 -L:    [email protected]
  L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6.git
  S:    Supported
@@@ -4510,20 -4377,11 +4509,20 @@@ F:   drivers/net/pcnet32.
  PER-TASK DELAY ACCOUNTING
  P:    Balbir Singh
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    include/linux/delayacct.h
  F:    kernel/delayacct.c
  
 +PERFORMANCE COUNTER SUBSYSTEM
 +P:    Peter Zijlstra
 +M:    [email protected]
 +P:    Paul Mackerras
 +M:    [email protected]
 +P:    Ingo Molnar
 +M:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +
  PERSONALITY HANDLING
  P:    Christoph Hellwig
  M:    [email protected]
@@@ -4541,6 -4399,7 +4540,6 @@@ F:      drivers/mtd/devices/phram.
  PKTCDVD DRIVER
  P:    Peter Osterlund
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    drivers/block/pktcdvd.c
  F:    include/linux/pktcdvd.h
  POSIX CLOCKS and TIMERS
  P:    Thomas Gleixner
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    fs/timerfd.c
  F:    include/linux/timer*
@@@ -4558,6 -4418,7 +4557,6 @@@ P:      Anton Vorontso
  M:    [email protected]
  P:    David Woodhouse
  M:    [email protected]
 -L:    [email protected]
  T:    git git://git.infradead.org/battery-2.6.git
  S:    Maintained
  F:    include/linux/power_supply.h
@@@ -4606,16 -4467,10 +4605,16 @@@ S:   Maintaine
  F:    drivers/net/pppol2tp.c
  F:    include/linux/if_pppol2tp.h
  
 +PPS SUPPORT
 +P:    Rodolfo Giometti
 +M:    [email protected]
 +W:    http://wiki.enneenne.com/index.php/LinuxPPS_support
 +L:    [email protected] (subscribers-only)
 +S:    Maintained
 +
  PREEMPTIBLE KERNEL
  P:    Robert Love
  M:    [email protected]
 -L:    [email protected]
  L:    [email protected]
  W:    ftp://ftp.kernel.org/pub/linux/kernel/people/rml/preempt-kernel
  S:    Supported
@@@ -4644,8 -4499,8 +4643,8 @@@ S:      Maintaine
  F:    drivers/ata/sata_promise.*
  
  PS3 NETWORK SUPPORT
 -P:    Masakazu Mokuno
 -M:    [email protected]
 +P:    Geoff Levand
 +M:    [email protected]
  L:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -4678,6 -4533,7 +4677,6 @@@ P:      Roland McGrat
  M:    [email protected]
  P:    Oleg Nesterov
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    include/asm-generic/syscall.h
  F:    include/linux/ptrace.h
@@@ -4698,7 -4554,7 +4697,7 @@@ F:      drivers/media/video/pvrusb2
  
  PXA2xx/PXA3xx SUPPORT
  P:    Eric Miao
 -M:    eric.miao@marvell.com
 +M:    eric.y.miao@gmail.com
  P:    Russell King
  M:    [email protected]
  L:    [email protected] (subscribers-only)
@@@ -4708,24 -4564,23 +4707,24 @@@ F:   drivers/pcmcia/pxa2xx
  F:    drivers/spi/pxa2xx*
  F:    drivers/usb/gadget/pxa2*
  F:    include/sound/pxa2xx-lib.h
 -F:    sound/soc/pxa/pxa2xx*
 +F:    sound/arm/pxa*
 +F:    sound/soc/pxa
  
  PXA168 SUPPORT
  P:    Eric Miao
 -M:    eric.miao@marvell.com
 +M:    eric.y.miao@gmail.com
  P:    Jason Chagas
  M:    [email protected]
  L:    [email protected] (subscribers-only)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
 -S:    Supported
 +S:    Maintained
  
  PXA910 SUPPORT
  P:    Eric Miao
 -M:    eric.miao@marvell.com
 +M:    eric.y.miao@gmail.com
  L:    [email protected] (subscribers-only)
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/ycmiao/pxa-linux-2.6.git
 -S:    Supported
 +S:    Maintained
  
  PXA MMCI DRIVER
  S:    Orphan
@@@ -4763,6 -4618,7 +4762,6 @@@ F:      drivers/net/qlge
  QNX4 FILESYSTEM
  P:    Anders Larsen
  M:    [email protected]
 -L:    [email protected]
  W:    http://www.alarsen.net/linux/qnx4fs/
  S:    Maintained
  F:    fs/qnx4/
@@@ -4809,6 -4665,7 +4808,6 @@@ F:      drivers/char/random.
  RAPIDIO SUBSYSTEM
  P:    Matt Porter
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    drivers/rapidio/
  
@@@ -4822,8 -4679,7 +4821,8 @@@ F:      drivers/net/wireless/ray
  RCUTORTURE MODULE
  P:    Josh Triplett
  M:    [email protected]
 -L:    [email protected]
 +P:    Paul E. McKenney
 +M:    [email protected]
  S:    Maintained
  F:    Documentation/RCU/torture.txt
  F:    kernel/rcutorture.c
  RDC R-321X SoC
  P:    Florian Fainelli
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  
  RDC R6040 FAST ETHERNET DRIVER
@@@ -4843,16 -4700,15 +4842,16 @@@ F:   drivers/net/r6040.
  RDS - RELIABLE DATAGRAM SOCKETS
  P:    Andy Grover
  M:    [email protected]
 -L:    [email protected]
 +L:    [email protected] (moderated for non-subscribers)
  S:    Supported
  F:    net/rds/
  
  READ-COPY UPDATE (RCU)
  P:    Dipankar Sarma
  M:    [email protected]
 +P:    Paul E. McKenney
 +M:    [email protected]
  W:    http://www.rdrop.com/users/paulmck/rclock/
 -L:    [email protected]
  S:    Supported
  F:    Documentation/RCU/rcu.txt
  F:    Documentation/RCU/rcuref.txt
@@@ -4863,6 -4719,7 +4862,6 @@@ F:      kernel/rcupdate.
  REAL TIME CLOCK DRIVER
  P:    Paul Gortmaker
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/rtc.txt
  F:    drivers/rtc/
@@@ -4883,9 -4740,9 +4882,9 @@@ S:      Supporte
  F:    fs/reiserfs/
  
  RFKILL
 -P:    Ivo van Doorn
 -M:    [email protected]
 -L:    netdev@vger.kernel.org
 +P:    Johannes Berg
 +M:    [email protected]
 +L:    linux-wireless@vger.kernel.org
  S:    Maintained
  F     Documentation/rfkill.txt
  F:    net/rfkill/
@@@ -5000,6 -4857,7 +4999,6 @@@ S3C24XX SD/MMC Drive
  P:    Ben Dooks
  M:    [email protected]
  L:    [email protected] (subscribers-only)
 -L:    [email protected]
  S:    Supported
  F:    drivers/mmc/host/s3cmci.*
  
@@@ -5025,6 -4883,7 +5024,6 @@@ P:      Ingo Molna
  M:    [email protected]
  P:    Peter Zijlstra
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    kernel/sched*
  F:    include/linux/sched.h
  S:    Maintained
  F:    drivers/mmc/host/sdhci.*
  
 +SECURE DIGITAL HOST CONTROLLER INTERFACE (SDHCI) SAMSUNG DRIVER
 +P:    Ben Dooks
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/mmc/host/sdhci-s3c.c
 +
  SECURITY SUBSYSTEM
  P:    James Morris
  M:    [email protected]
 -L:    [email protected]
  L:    [email protected] (suggested Cc:)
  T:    git git://www.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
  W:    http://security.wiki.kernel.org/
@@@ -5151,6 -5004,7 +5150,6 @@@ P:      James Morri
  M:    [email protected]
  P:    Eric Paris
  M:    [email protected]
 -L:    [email protected] (kernel issues)
  L:    [email protected] (subscribers-only, general discussion)
  W:    http://selinuxproject.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6.git
@@@ -5247,6 -5101,7 +5246,6 @@@ P:      Vincent Sander
  M:    [email protected]
  W:    http://www.simtec.co.uk/products/EB110ATX/
  S:    Supported
 -F:    arch/arm/mach-ebsa110/
  
  SIMTEC EB2410ITX (BAST)
  P:    Ben Dooks
@@@ -5413,6 -5268,7 +5412,6 @@@ F:      include/linux/sony-laptop.
  SONY MEMORYSTICK CARD SUPPORT
  P:    Alex Dubov
  M:    [email protected]
 -L:    [email protected]
  W:    http://tifmxx.berlios.de/
  S:    Maintained
  F:    drivers/memstick/host/tifm_ms.c
@@@ -5422,7 -5278,7 +5421,7 @@@ P:      Jaroslav Kysel
  M:    [email protected]
  P:    Takashi Iwai
  M:    [email protected]
 -L:    [email protected] (subscribers-only)
 +L:    [email protected] (moderated for non-subscribers)
  W:    http://www.alsa-project.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git
  T:    git git://git.alsa-project.org/alsa-kernel.git
@@@ -5436,12 -5292,11 +5435,12 @@@ P:   Liam Girdwoo
  M:    [email protected]
  P:    Mark Brown
  M:    [email protected]
 -T:    git git://opensource.wolfsonmicro.com/linux-2.6-asoc
 -L:    [email protected] (subscribers-only)
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound-2.6.git
 +L:    [email protected] (moderated for non-subscribers)
  W:    http://alsa-project.org/main/index.php/ASoC
  S:    Supported
  F:    sound/soc/
 +F:    include/sound/soc*
  
  SPARC + UltraSPARC (sparc/sparc64)
  P:    David S. Miller
@@@ -5455,6 -5310,7 +5454,6 @@@ F:      arch/sparc
  SPECIALIX IO8+ MULTIPORT SERIAL CARD DRIVER
  P:    Roger Wolff
  M:    [email protected]
 -L:    [email protected]
  S:    Supported
  F:    Documentation/serial/specialix.txt
  F:    drivers/char/specialix*
@@@ -5500,6 -5356,7 +5499,6 @@@ F:      fs/squashfs
  SRM (Alpha) environment access
  P:    Jan-Benedict Glaw
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    arch/alpha/kernel/srm_env.c
  
@@@ -5514,8 -5371,8 +5513,8 @@@ S:      Maintaine
  STAGING SUBSYSTEM
  P:    Greg Kroah-Hartman
  M:    [email protected]
 -L:    [email protected]
  T:    quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
 +L:    [email protected]
  S:    Maintained
  F:    drivers/staging/
  
@@@ -5594,6 -5451,7 +5593,6 @@@ F:      include/linux/sysv_fs.
  TASKSTATS STATISTICS INTERFACE
  P:    Balbir Singh
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/accounting/taskstats*
  F:    include/linux/taskstats*
@@@ -5656,6 -5514,20 +5655,6 @@@ F:     drivers/misc/tifm
  F:    drivers/mmc/host/tifm_sd.c
  F:    include/linux/tifm.h
  
 -TI OMAP MMC INTERFACE DRIVER
 -P:    Carlos Aguiar, Anderson Briglia and Syed Khasim
 -M:    [email protected]
 -W:    http://linux.omap.com
 -W:    http://www.muru.com/linux/omap/
 -S:    Maintained
 -F:    drivers/mmc/host/omap.c
 -
 -TI OMAP RANDOM NUMBER GENERATOR SUPPORT
 -P:    Deepak Saxena
 -M:    [email protected]
 -S:    Maintained
 -F:    drivers/char/hw_random/omap-rng.c
 -
  TIPC NETWORK LAYER
  P:    Per Liden
  M:    [email protected]
@@@ -5686,6 -5558,7 +5685,6 @@@ P:      Kentaro Taked
  M:    [email protected]
  P:    Tetsuo Handa
  M:    [email protected]
 -L:    [email protected] (kernel issues)
  L:    [email protected] (subscribers-only, for developers and users in English)
  L:    [email protected] (subscribers-only, for developers in Japanese)
  L:    [email protected] (subscribers-only, for users in Japanese)
@@@ -5737,19 -5610,15 +5736,19 @@@ F:   drivers/char/tpm
  TRIVIAL PATCHES
  P:    Jiri Kosina
  M:    [email protected]
 -L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial.git
  S:    Maintained
 +F:    drivers/char/tty_*
 +F:    drivers/serial/serial_core.c
 +F:    include/linux/serial_core.h
 +F:    include/linux/serial.h
 +F:    include/linux/tty.h
  
  TTY LAYER
  P:    Alan Cox
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
 +T:    stgit http://zeniv.linux.org.uk/~alan/ttydev/
  
  TULIP NETWORK DRIVERS
  P:    Grant Grundler
@@@ -5820,6 -5689,7 +5819,6 @@@ F:      fs/udf
  UFS FILESYSTEM
  P:    Evgeniy Dushistov
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/filesystems/ufs.txt
  F:    fs/ufs/
@@@ -5836,6 -5706,7 +5835,6 @@@ F:      include/linux/uwb
  UNIFORM CDROM DRIVER
  P:    Jens Axboe
  M:    [email protected]
 -L:    [email protected]
  W:    http://www.kernel.dk
  S:    Maintained
  F:    Documentation/cdrom/
@@@ -5864,6 -5735,7 +5863,6 @@@ F:      drivers/usb/class/cdc-acm.
  USB BLOCK DRIVER (UB ub)
  P:    Pete Zaitcev
  M:    [email protected]
 -L:    [email protected]
  L:    [email protected]
  S:    Supported
  F:    drivers/block/ub.c
  S:    Maintained
  F:    drivers/net/wireless/rndis_wlan.c
  
 +USB XHCI DRIVER
 +P:    Sarah Sharp
 +M:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +
  USB ZC0301 DRIVER
  P:    Luca Risolia
  M:    [email protected]
@@@ -6209,6 -6075,7 +6208,6 @@@ P:      Hans J. Koc
  M:    [email protected]
  P:    Greg Kroah-Hartman
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/DocBook/uio-howto.tmpl
  F:    drivers/uio/
@@@ -6234,6 -6101,7 +6233,6 @@@ F:      drivers/video/uvesafb.
  VFAT/FAT/MSDOS FILESYSTEM
  P:    OGAWA Hirofumi
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    Documentation/filesystems/vfat.txt
  F:    fs/fat/
@@@ -6252,14 -6120,6 +6251,14 @@@ S:    Maintaine
  F:    Documentation/i2c/busses/i2c-viapro
  F:    drivers/i2c/busses/i2c-viapro.c
  
 +VIA SD/MMC CARD CONTROLLER DRIVER
 +P:    Joseph Chan
 +M:    [email protected]
 +P:    Harald Welte
 +M:    [email protected]
 +S:    Maintained
 +F:    drivers/mmc/host/via-sdmmc.c
 +
  VIA UNICHROME(PRO)/CHROME9 FRAMEBUFFER DRIVER
  P:    Joseph Chan
  M:    [email protected]
@@@ -6285,14 -6145,6 +6284,14 @@@ F:    drivers/net/macvlan.
  F:    include/linux/if_*vlan.h
  F:    net/8021q/
  
 +VLYNQ BUS
 +P:    Florian Fainelli
 +M:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    drivers/vlynq/vlynq.c
 +F:    include/linux/vlynq.h
 +
  VOLTAGE AND CURRENT REGULATOR FRAMEWORK
  P:    Liam Girdwood
  M:    [email protected]
@@@ -6346,6 -6198,7 +6345,6 @@@ F:      drivers/hwmon/w83793.
  W83L51xD SD/MMC CARD INTERFACE DRIVER
  P:    Pierre Ossman
  M:    [email protected]
 -L:    [email protected]
  S:    Maintained
  F:    drivers/mmc/host/wbsd.*
  
@@@ -6432,6 -6285,7 +6431,6 @@@ M:      [email protected]
  P:    H. Peter Anvin
  M:    [email protected]
  M:    [email protected]
 -L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86.git
  S:    Maintained
  F:    Documentation/x86/
@@@ -6467,6 -6321,7 +6466,6 @@@ XILINX SYSTEMACE DRIVE
  P:    Grant Likely
  M:    [email protected]
  W:    http://www.secretlab.ca/
 -L:    [email protected]
  S:    Maintained
  F:    drivers/block/xsysace.c
  
@@@ -6531,9 -6386,5 +6530,9 @@@ F:      drivers/serial/zs.
  
  THE REST
  P:    Linus Torvalds
 +M:    [email protected]
 +L:    [email protected]
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
  S:    Buried alive in reporters
 +F:    *
 +F:    */
index aaac3b6800b7358dd1597df13c0ea781d3215031,8773481a30c271ee811aab1d537346535d6a11e3..c3f62654b6df4bee93cc69a86ca839031186f910
@@@ -47,41 -47,40 +47,41 @@@ static int do_blktrans_request(struct m
        unsigned long block, nsect;
        char *buf;
  
 -      block = req->sector << 9 >> tr->blkshift;
 -      nsect = req->current_nr_sectors << 9 >> tr->blkshift;
 +      block = blk_rq_pos(req) << 9 >> tr->blkshift;
 +      nsect = blk_rq_cur_bytes(req) >> tr->blkshift;
  
        buf = req->buffer;
  
        if (req->cmd_type == REQ_TYPE_LINUX_BLOCK &&
            req->cmd[0] == REQ_LB_OP_DISCARD)
 -              return !tr->discard(dev, block, nsect);
 +              return tr->discard(dev, block, nsect);
  
        if (!blk_fs_request(req))
 -              return 0;
 +              return -EIO;
  
 -      if (req->sector + req->current_nr_sectors > get_capacity(req->rq_disk))
 -              return 0;
 +      if (blk_rq_pos(req) + blk_rq_cur_sectors(req) >
 +          get_capacity(req->rq_disk))
 +              return -EIO;
  
        switch(rq_data_dir(req)) {
        case READ:
                for (; nsect > 0; nsect--, block++, buf += tr->blksize)
                        if (tr->readsect(dev, block, buf))
 -                              return 0;
 -              return 1;
 +                              return -EIO;
 +              return 0;
  
        case WRITE:
                if (!tr->writesect)
 -                      return 0;
 +                      return -EIO;
  
                for (; nsect > 0; nsect--, block++, buf += tr->blksize)
                        if (tr->writesect(dev, block, buf))
 -                              return 0;
 -              return 1;
 +                              return -EIO;
 +              return 0;
  
        default:
                printk(KERN_NOTICE "Unknown request %u\n", rq_data_dir(req));
 -              return 0;
 +              return -EIO;
        }
  }
  
@@@ -89,18 -88,19 +89,18 @@@ static int mtd_blktrans_thread(void *ar
  {
        struct mtd_blktrans_ops *tr = arg;
        struct request_queue *rq = tr->blkcore_priv->rq;
 +      struct request *req = NULL;
  
        /* we might get involved when memory gets low, so use PF_MEMALLOC */
        current->flags |= PF_MEMALLOC;
  
        spin_lock_irq(rq->queue_lock);
 +
        while (!kthread_should_stop()) {
 -              struct request *req;
                struct mtd_blktrans_dev *dev;
 -              int res = 0;
 -
 -              req = elv_next_request(rq);
 +              int res;
  
 -              if (!req) {
 +              if (!req && !(req = blk_fetch_request(rq))) {
                        set_current_state(TASK_INTERRUPTIBLE);
                        spin_unlock_irq(rq->queue_lock);
                        schedule();
  
                spin_lock_irq(rq->queue_lock);
  
 -              end_request(req, res);
 +              if (!__blk_end_request_cur(req, res))
 +                      req = NULL;
        }
 +
 +      if (req)
 +              __blk_end_request_all(req, -EIO);
 +
        spin_unlock_irq(rq->queue_lock);
  
        return 0;
@@@ -291,7 -286,7 +291,7 @@@ int add_mtd_blktrans_dev(struct mtd_blk
        gd->private_data = new;
        new->blkcore_priv = gd;
        gd->queue = tr->blkcore_priv->rq;
-       gd->driverfs_dev = new->mtd->dev.parent;
+       gd->driverfs_dev = &new->mtd->dev;
  
        if (new->readonly)
                set_disk_ro(gd, 1);
@@@ -378,7 -373,7 +378,7 @@@ int register_mtd_blktrans(struct mtd_bl
        }
  
        tr->blkcore_priv->rq->queuedata = tr;
 -      blk_queue_hardsect_size(tr->blkcore_priv->rq, tr->blksize);
 +      blk_queue_logical_block_size(tr->blkcore_priv->rq, tr->blksize);
        if (tr->discard)
                blk_queue_set_discard(tr->blkcore_priv->rq,
                                      blktrans_discard_request);
diff --combined drivers/mtd/nand/Kconfig
index f3276897859e2b5e72af0317ab2b7c0a80e810be,1823212c6b46c35f378aceb46ce01de61a32bbf7..ce96c091f01be39b23b7b255b84779bfe58e8f32
@@@ -74,6 -74,12 +74,12 @@@ config MTD_NAND_AMS_DELT
        help
          Support for NAND flash on Amstrad E3 (Delta).
  
+ config MTD_NAND_OMAP2
+       tristate "NAND Flash device on OMAP2 and OMAP3"
+       depends on ARM && MTD_NAND && (ARCH_OMAP2 || ARCH_OMAP3)
+       help
+           Support for NAND flash on Texas Instruments OMAP2 and OMAP3 platforms.
  config MTD_NAND_TS7250
        tristate "NAND Flash device on TS-7250 board"
        depends on MACH_TS72XX
@@@ -139,27 -145,27 +145,27 @@@ config MTD_NAND_PPCHAMELEONEV
          This enables the NAND flash driver on the PPChameleon EVB Board.
  
  config MTD_NAND_S3C2410
-       tristate "NAND Flash support for S3C2410/S3C2440 SoC"
-       depends on ARCH_S3C2410
+       tristate "NAND Flash support for Samsung S3C SoCs"
+       depends on ARCH_S3C2410 || ARCH_S3C64XX
        help
-         This enables the NAND flash controller on the S3C2410 and S3C2440
+         This enables the NAND flash controller on the S3C24xx and S3C64xx
          SoCs
  
          No board specific support is done by this driver, each board
          must advertise a platform_device for the driver to attach.
  
  config MTD_NAND_S3C2410_DEBUG
-       bool "S3C2410 NAND driver debug"
+       bool "Samsung S3C NAND driver debug"
        depends on MTD_NAND_S3C2410
        help
-         Enable debugging of the S3C2410 NAND driver
+         Enable debugging of the S3C NAND driver
  
  config MTD_NAND_S3C2410_HWECC
-       bool "S3C2410 NAND Hardware ECC"
+       bool "Samsung S3C NAND Hardware ECC"
        depends on MTD_NAND_S3C2410
        help
-         Enable the use of the S3C2410's internal ECC generator when
-         using NAND. Early versions of the chip have had problems with
+         Enable the use of the controller's internal ECC generator when
+         using NAND. Early versions of the chips have had problems with
          incorrect ECC generation, and if using these, the default of
          software ECC is preferable.
  
@@@ -171,7 -177,7 +177,7 @@@ config MTD_NAND_NDF
         NDFC Nand Flash Controllers are integrated in IBM/AMCC's 4xx SoCs
  
  config MTD_NAND_S3C2410_CLKSTOP
-       bool "S3C2410 NAND IDLE clock stop"
+       bool "Samsung S3C NAND IDLE clock stop"
        depends on MTD_NAND_S3C2410
        default n
        help
@@@ -260,7 -266,7 +266,7 @@@ config MTD_NAND_BASLER_EXCIT
        help
            This enables the driver for the NAND flash device found on the
            Basler eXcite Smart Camera. If built as a module, the driver
 -          will be named "excite_nandflash.ko".
 +          will be named excite_nandflash.
  
  config MTD_NAND_CAFE
        tristate "NAND support for OLPC CAFÉ chip"
@@@ -282,7 -288,7 +288,7 @@@ config MTD_NAND_CS553
          controller is enabled for NAND, and currently requires that
          the controller be in MMIO mode.
  
 -        If you say "m", the module will be called "cs553x_nand.ko".
 +        If you say "m", the module will be called cs553x_nand.
  
  config MTD_NAND_ATMEL
        tristate "Support for NAND Flash / SmartMedia on AT91 and AVR32"
index 02700f769b8aaca397e830068aeb93419d498834,ba6940d1d3d11a8dbd9ba5d2660050e6e814b64b..0fad6487e6f4bcb062334ae082126d73ad41cd59
@@@ -44,7 -44,7 +44,7 @@@
   * and some flavors of secondary chipselect (e.g. based on A12) as used
   * with multichip packages.
   *
-  * The 1-bit ECC hardware is supported, but not yet the newer 4-bit ECC
+  * The 1-bit ECC hardware is supported, as well as the newer 4-bit ECC
   * available on chips like the DM355 and OMAP-L137 and needed with the
   * more error-prone MLC NAND chips.
   *
  struct davinci_nand_info {
        struct mtd_info         mtd;
        struct nand_chip        chip;
+       struct nand_ecclayout   ecclayout;
  
        struct device           *dev;
        struct clk              *clk;
        bool                    partitioned;
  
+       bool                    is_readmode;
        void __iomem            *base;
        void __iomem            *vaddr;
  
@@@ -73,6 -76,7 +76,7 @@@
  };
  
  static DEFINE_SPINLOCK(davinci_nand_lock);
+ static bool ecc4_busy;
  
  #define to_davinci_nand(m) container_of(m, struct davinci_nand_info, mtd)
  
@@@ -217,6 -221,192 +221,192 @@@ static int nand_davinci_correct_1bit(st
  
  /*----------------------------------------------------------------------*/
  
+ /*
+  * 4-bit hardware ECC ... context maintained over entire AEMIF
+  *
+  * This is a syndrome engine, but we avoid NAND_ECC_HW_SYNDROME
+  * since that forces use of a problematic "infix OOB" layout.
+  * Among other things, it trashes manufacturer bad block markers.
+  * Also, and specific to this hardware, it ECC-protects the "prepad"
+  * in the OOB ... while having ECC protection for parts of OOB would
+  * seem useful, the current MTD stack sometimes wants to update the
+  * OOB without recomputing ECC.
+  */
+ static void nand_davinci_hwctl_4bit(struct mtd_info *mtd, int mode)
+ {
+       struct davinci_nand_info *info = to_davinci_nand(mtd);
+       unsigned long flags;
+       u32 val;
+       spin_lock_irqsave(&davinci_nand_lock, flags);
+       /* Start 4-bit ECC calculation for read/write */
+       val = davinci_nand_readl(info, NANDFCR_OFFSET);
+       val &= ~(0x03 << 4);
+       val |= (info->core_chipsel << 4) | BIT(12);
+       davinci_nand_writel(info, NANDFCR_OFFSET, val);
+       info->is_readmode = (mode == NAND_ECC_READ);
+       spin_unlock_irqrestore(&davinci_nand_lock, flags);
+ }
+ /* Read raw ECC code after writing to NAND. */
+ static void
+ nand_davinci_readecc_4bit(struct davinci_nand_info *info, u32 code[4])
+ {
+       const u32 mask = 0x03ff03ff;
+       code[0] = davinci_nand_readl(info, NAND_4BIT_ECC1_OFFSET) & mask;
+       code[1] = davinci_nand_readl(info, NAND_4BIT_ECC2_OFFSET) & mask;
+       code[2] = davinci_nand_readl(info, NAND_4BIT_ECC3_OFFSET) & mask;
+       code[3] = davinci_nand_readl(info, NAND_4BIT_ECC4_OFFSET) & mask;
+ }
+ /* Terminate read ECC; or return ECC (as bytes) of data written to NAND. */
+ static int nand_davinci_calculate_4bit(struct mtd_info *mtd,
+               const u_char *dat, u_char *ecc_code)
+ {
+       struct davinci_nand_info *info = to_davinci_nand(mtd);
+       u32 raw_ecc[4], *p;
+       unsigned i;
+       /* After a read, terminate ECC calculation by a dummy read
+        * of some 4-bit ECC register.  ECC covers everything that
+        * was read; correct() just uses the hardware state, so
+        * ecc_code is not needed.
+        */
+       if (info->is_readmode) {
+               davinci_nand_readl(info, NAND_4BIT_ECC1_OFFSET);
+               return 0;
+       }
+       /* Pack eight raw 10-bit ecc values into ten bytes, making
+        * two passes which each convert four values (in upper and
+        * lower halves of two 32-bit words) into five bytes.  The
+        * ROM boot loader uses this same packing scheme.
+        */
+       nand_davinci_readecc_4bit(info, raw_ecc);
+       for (i = 0, p = raw_ecc; i < 2; i++, p += 2) {
+               *ecc_code++ =   p[0]        & 0xff;
+               *ecc_code++ = ((p[0] >>  8) & 0x03) | ((p[0] >> 14) & 0xfc);
+               *ecc_code++ = ((p[0] >> 22) & 0x0f) | ((p[1] <<  4) & 0xf0);
+               *ecc_code++ = ((p[1] >>  4) & 0x3f) | ((p[1] >> 10) & 0xc0);
+               *ecc_code++ =  (p[1] >> 18) & 0xff;
+       }
+       return 0;
+ }
+ /* Correct up to 4 bits in data we just read, using state left in the
+  * hardware plus the ecc_code computed when it was first written.
+  */
+ static int nand_davinci_correct_4bit(struct mtd_info *mtd,
+               u_char *data, u_char *ecc_code, u_char *null)
+ {
+       int i;
+       struct davinci_nand_info *info = to_davinci_nand(mtd);
+       unsigned short ecc10[8];
+       unsigned short *ecc16;
+       u32 syndrome[4];
+       unsigned num_errors, corrected;
+       /* All bytes 0xff?  It's an erased page; ignore its ECC. */
+       for (i = 0; i < 10; i++) {
+               if (ecc_code[i] != 0xff)
+                       goto compare;
+       }
+       return 0;
+ compare:
+       /* Unpack ten bytes into eight 10 bit values.  We know we're
+        * little-endian, and use type punning for less shifting/masking.
+        */
+       if (WARN_ON(0x01 & (unsigned) ecc_code))
+               return -EINVAL;
+       ecc16 = (unsigned short *)ecc_code;
+       ecc10[0] =  (ecc16[0] >>  0) & 0x3ff;
+       ecc10[1] = ((ecc16[0] >> 10) & 0x3f) | ((ecc16[1] << 6) & 0x3c0);
+       ecc10[2] =  (ecc16[1] >>  4) & 0x3ff;
+       ecc10[3] = ((ecc16[1] >> 14) & 0x3)  | ((ecc16[2] << 2) & 0x3fc);
+       ecc10[4] =  (ecc16[2] >>  8)         | ((ecc16[3] << 8) & 0x300);
+       ecc10[5] =  (ecc16[3] >>  2) & 0x3ff;
+       ecc10[6] = ((ecc16[3] >> 12) & 0xf)  | ((ecc16[4] << 4) & 0x3f0);
+       ecc10[7] =  (ecc16[4] >>  6) & 0x3ff;
+       /* Tell ECC controller about the expected ECC codes. */
+       for (i = 7; i >= 0; i--)
+               davinci_nand_writel(info, NAND_4BIT_ECC_LOAD_OFFSET, ecc10[i]);
+       /* Allow time for syndrome calculation ... then read it.
+        * A syndrome of all zeroes 0 means no detected errors.
+        */
+       davinci_nand_readl(info, NANDFSR_OFFSET);
+       nand_davinci_readecc_4bit(info, syndrome);
+       if (!(syndrome[0] | syndrome[1] | syndrome[2] | syndrome[3]))
+               return 0;
+       /* Start address calculation, and wait for it to complete.
+        * We _could_ start reading more data while this is working,
+        * to speed up the overall page read.
+        */
+       davinci_nand_writel(info, NANDFCR_OFFSET,
+                       davinci_nand_readl(info, NANDFCR_OFFSET) | BIT(13));
+       for (;;) {
+               u32     fsr = davinci_nand_readl(info, NANDFSR_OFFSET);
+               switch ((fsr >> 8) & 0x0f) {
+               case 0:         /* no error, should not happen */
+                       return 0;
+               case 1:         /* five or more errors detected */
+                       return -EIO;
+               case 2:         /* error addresses computed */
+               case 3:
+                       num_errors = 1 + ((fsr >> 16) & 0x03);
+                       goto correct;
+               default:        /* still working on it */
+                       cpu_relax();
+                       continue;
+               }
+       }
+ correct:
+       /* correct each error */
+       for (i = 0, corrected = 0; i < num_errors; i++) {
+               int error_address, error_value;
+               if (i > 1) {
+                       error_address = davinci_nand_readl(info,
+                                               NAND_ERR_ADD2_OFFSET);
+                       error_value = davinci_nand_readl(info,
+                                               NAND_ERR_ERRVAL2_OFFSET);
+               } else {
+                       error_address = davinci_nand_readl(info,
+                                               NAND_ERR_ADD1_OFFSET);
+                       error_value = davinci_nand_readl(info,
+                                               NAND_ERR_ERRVAL1_OFFSET);
+               }
+               if (i & 1) {
+                       error_address >>= 16;
+                       error_value >>= 16;
+               }
+               error_address &= 0x3ff;
+               error_address = (512 + 7) - error_address;
+               if (error_address < 512) {
+                       data[error_address] ^= error_value;
+                       corrected++;
+               }
+       }
+       return corrected;
+ }
+ /*----------------------------------------------------------------------*/
  /*
   * NOTE:  NAND boot requires ALE == EM_A[1], CLE == EM_A[2], so that's
   * how these chips are normally wired.  This translates to both 8 and 16
@@@ -294,6 -484,23 +484,23 @@@ static void __init nand_dm6446evm_flash
  
  /*----------------------------------------------------------------------*/
  
+ /* An ECC layout for using 4-bit ECC with small-page flash, storing
+  * ten ECC bytes plus the manufacturer's bad block marker byte, and
+  * and not overlapping the default BBT markers.
+  */
+ static struct nand_ecclayout hwecc4_small __initconst = {
+       .eccbytes = 10,
+       .eccpos = { 0, 1, 2, 3, 4,
+               /* offset 5 holds the badblock marker */
+               6, 7,
+               13, 14, 15, },
+       .oobfree = {
+               {.offset = 8, .length = 5, },
+               {.offset = 16, },
+       },
+ };
  static int __init nand_davinci_probe(struct platform_device *pdev)
  {
        struct davinci_nand_pdata       *pdata = pdev->dev.platform_data;
        uint32_t                        val;
        nand_ecc_modes_t                ecc_mode;
  
+       /* insist on board-specific configuration */
+       if (!pdata)
+               return -ENODEV;
        /* which external chipselect will we be managing? */
        if (pdev->id < 0 || pdev->id > 3)
                return -ENODEV;
        info->chip.select_chip  = nand_davinci_select_chip;
  
        /* options such as NAND_USE_FLASH_BBT or 16-bit widths */
-       info->chip.options      = pdata ? pdata->options : 0;
+       info->chip.options      = pdata->options;
  
        info->ioaddr            = (uint32_t __force) vaddr;
  
        info->mask_chipsel      = pdata->mask_chipsel;
  
        /* use nandboot-capable ALE/CLE masks by default */
-       if (pdata && pdata->mask_ale)
-               info->mask_ale  = pdata->mask_cle;
-       else
-               info->mask_ale  = MASK_ALE;
-       if (pdata && pdata->mask_cle)
-               info->mask_cle  = pdata->mask_cle;
-       else
-               info->mask_cle  = MASK_CLE;
+       info->mask_ale          = pdata->mask_cle ? : MASK_ALE;
+       info->mask_cle          = pdata->mask_cle ? : MASK_CLE;
  
        /* Set address of hardware control function */
        info->chip.cmd_ctrl     = nand_davinci_hwcontrol;
        info->chip.read_buf     = nand_davinci_read_buf;
        info->chip.write_buf    = nand_davinci_write_buf;
  
-       /* use board-specific ECC config; else, the best available */
-       if (pdata)
-               ecc_mode = pdata->ecc_mode;
-       else
-               ecc_mode = NAND_ECC_HW;
+       /* Use board-specific ECC config */
+       ecc_mode                = pdata->ecc_mode;
  
+       ret = -EINVAL;
        switch (ecc_mode) {
        case NAND_ECC_NONE:
        case NAND_ECC_SOFT:
+               pdata->ecc_bits = 0;
                break;
        case NAND_ECC_HW:
-               info->chip.ecc.calculate = nand_davinci_calculate_1bit;
-               info->chip.ecc.correct = nand_davinci_correct_1bit;
-               info->chip.ecc.hwctl = nand_davinci_hwctl_1bit;
+               if (pdata->ecc_bits == 4) {
+                       /* No sanity checks:  CPUs must support this,
+                        * and the chips may not use NAND_BUSWIDTH_16.
+                        */
+                       /* No sharing 4-bit hardware between chipselects yet */
+                       spin_lock_irq(&davinci_nand_lock);
+                       if (ecc4_busy)
+                               ret = -EBUSY;
+                       else
+                               ecc4_busy = true;
+                       spin_unlock_irq(&davinci_nand_lock);
+                       if (ret == -EBUSY)
+                               goto err_ecc;
+                       info->chip.ecc.calculate = nand_davinci_calculate_4bit;
+                       info->chip.ecc.correct = nand_davinci_correct_4bit;
+                       info->chip.ecc.hwctl = nand_davinci_hwctl_4bit;
+                       info->chip.ecc.bytes = 10;
+               } else {
+                       info->chip.ecc.calculate = nand_davinci_calculate_1bit;
+                       info->chip.ecc.correct = nand_davinci_correct_1bit;
+                       info->chip.ecc.hwctl = nand_davinci_hwctl_1bit;
+                       info->chip.ecc.bytes = 3;
+               }
                info->chip.ecc.size = 512;
-               info->chip.ecc.bytes = 3;
                break;
-       case NAND_ECC_HW_SYNDROME:
-               /* FIXME implement */
-               info->chip.ecc.size = 512;
-               info->chip.ecc.bytes = 10;
-               dev_warn(&pdev->dev, "4-bit ECC nyet supported\n");
-               /* FALL THROUGH */
        default:
                ret = -EINVAL;
                goto err_ecc;
        }
        info->chip.ecc.mode = ecc_mode;
  
 -      info->clk = clk_get(&pdev->dev, "AEMIFCLK");
 +      info->clk = clk_get(&pdev->dev, "aemif");
        if (IS_ERR(info->clk)) {
                ret = PTR_ERR(info->clk);
 -              dev_dbg(&pdev->dev, "unable to get AEMIFCLK, err %d\n", ret);
 +              dev_dbg(&pdev->dev, "unable to get AEMIF clock, err %d\n", ret);
                goto err_clk;
        }
  
        ret = clk_enable(info->clk);
        if (ret < 0) {
 -              dev_dbg(&pdev->dev, "unable to enable AEMIFCLK, err %d\n", ret);
 +              dev_dbg(&pdev->dev, "unable to enable AEMIF clock, err %d\n",
 +                      ret);
                goto err_clk_enable;
        }
  
        spin_unlock_irq(&davinci_nand_lock);
  
        /* Scan to find existence of the device(s) */
-       ret = nand_scan(&info->mtd, pdata->mask_chipsel ? 2 : 1);
+       ret = nand_scan_ident(&info->mtd, pdata->mask_chipsel ? 2 : 1);
        if (ret < 0) {
                dev_dbg(&pdev->dev, "no NAND chip(s) found\n");
                goto err_scan;
        }
  
+       /* Update ECC layout if needed ... for 1-bit HW ECC, the default
+        * is OK, but it allocates 6 bytes when only 3 are needed (for
+        * each 512 bytes).  For the 4-bit HW ECC, that default is not
+        * usable:  10 bytes are needed, not 6.
+        */
+       if (pdata->ecc_bits == 4) {
+               int     chunks = info->mtd.writesize / 512;
+               if (!chunks || info->mtd.oobsize < 16) {
+                       dev_dbg(&pdev->dev, "too small\n");
+                       ret = -EINVAL;
+                       goto err_scan;
+               }
+               /* For small page chips, preserve the manufacturer's
+                * badblock marking data ... and make sure a flash BBT
+                * table marker fits in the free bytes.
+                */
+               if (chunks == 1) {
+                       info->ecclayout = hwecc4_small;
+                       info->ecclayout.oobfree[1].length =
+                               info->mtd.oobsize - 16;
+                       goto syndrome_done;
+               }
+               /* For large page chips we'll be wanting to use a
+                * not-yet-implemented mode that reads OOB data
+                * before reading the body of the page, to avoid
+                * the "infix OOB" model of NAND_ECC_HW_SYNDROME
+                * (and preserve manufacturer badblock markings).
+                */
+               dev_warn(&pdev->dev, "no 4-bit ECC support yet "
+                               "for large page NAND\n");
+               ret = -EIO;
+               goto err_scan;
+ syndrome_done:
+               info->chip.ecc.layout = &info->ecclayout;
+       }
+       ret = nand_scan_tail(&info->mtd);
+       if (ret < 0)
+               goto err_scan;
        if (mtd_has_partitions()) {
                struct mtd_partition    *mtd_parts = NULL;
                int                     mtd_parts_nb = 0;
                        static const char *probes[] __initconst =
                                { "cmdlinepart", NULL };
  
-                       const char              *master_name;
-                       /* Set info->mtd.name = 0 temporarily */
-                       master_name             = info->mtd.name;
-                       info->mtd.name          = (char *)0;
-                       /* info->mtd.name == 0, means: don't bother checking
-                          <mtd-id> */
                        mtd_parts_nb = parse_mtd_partitions(&info->mtd, probes,
                                                            &mtd_parts, 0);
-                       /* Restore info->mtd.name */
-                       info->mtd.name = master_name;
                }
  
-               if (mtd_parts_nb <= 0 && pdata) {
+               if (mtd_parts_nb <= 0) {
                        mtd_parts = pdata->parts;
                        mtd_parts_nb = pdata->nr_parts;
                }
                                info->partitioned = true;
                }
  
-       } else if (pdata && pdata->nr_parts) {
+       } else if (pdata->nr_parts) {
                dev_warn(&pdev->dev, "ignoring %d default partitions on %s\n",
                                pdata->nr_parts, info->mtd.name);
        }
@@@ -509,6 -760,11 +761,11 @@@ err_scan
  err_clk_enable:
        clk_put(info->clk);
  
+       spin_lock_irq(&davinci_nand_lock);
+       if (ecc_mode == NAND_ECC_HW_SYNDROME)
+               ecc4_busy = false;
+       spin_unlock_irq(&davinci_nand_lock);
  err_ecc:
  err_clk:
  err_ioremap:
@@@ -532,6 -788,11 +789,11 @@@ static int __exit nand_davinci_remove(s
        else
                status = del_mtd_device(&info->mtd);
  
+       spin_lock_irq(&davinci_nand_lock);
+       if (info->chip.ecc.mode == NAND_ECC_HW_SYNDROME)
+               ecc4_busy = false;
+       spin_unlock_irq(&davinci_nand_lock);
        iounmap(info->base);
        iounmap(info->vaddr);
  
index 6391e3dc80025ff243db8391facb4fddf6bf796e,df26db863f2f3e191a0b1f1884a4718f6e8403ba..38d656b9b2eecc8f5029bb0b7a6e89f921ff5a2d
@@@ -39,6 -39,7 +39,6 @@@
  #include <mach/gpmc.h>
  #include <mach/onenand.h>
  #include <mach/gpio.h>
 -#include <mach/pm.h>
  
  #include <mach/dma.h>
  
@@@ -565,7 -566,7 +565,7 @@@ int omap2_onenand_rephase(void
                                      NULL, __adjust_timing);
  }
  
- static void __devexit omap2_onenand_shutdown(struct platform_device *pdev)
+ static void omap2_onenand_shutdown(struct platform_device *pdev)
  {
        struct omap2_onenand *c = dev_get_drvdata(&pdev->dev);
  
@@@ -777,7 -778,7 +777,7 @@@ static int __devexit omap2_onenand_remo
  
  static struct platform_driver omap2_onenand_driver = {
        .probe          = omap2_onenand_probe,
-       .remove         = omap2_onenand_remove,
+       .remove         = __devexit_p(omap2_onenand_remove),
        .shutdown       = omap2_onenand_shutdown,
        .driver         = {
                .name   = DRIVER_NAME,
diff --combined fs/compat_ioctl.c
index c5ded5ff72b58b5c45e5e7cb1b5cd4d639dc4567,aa6ba39ff370648daf66144e258455b3098e3e4a..c135202c38b3667b30698114d13d8f49cc076ab2
@@@ -94,7 -94,6 +94,6 @@@
  #include <linux/atm_tcp.h>
  #include <linux/sonet.h>
  #include <linux/atm_suni.h>
- #include <linux/mtd/mtd.h>
  
  #include <linux/usb.h>
  #include <linux/usbdevice_fs.h>
@@@ -788,6 -787,12 +787,6 @@@ static int sg_ioctl_trans(unsigned int 
        if (put_user(compat_ptr(data), &sgio->usr_ptr))
                return -EFAULT;
  
 -      if (copy_in_user(&sgio->status, &sgio32->status,
 -                       (4 * sizeof(unsigned char)) +
 -                       (2 * sizeof(unsigned short)) +
 -                       (3 * sizeof(int))))
 -              return -EFAULT;
 -
        err = sys_ioctl(fd, cmd, (unsigned long) sgio);
  
        if (err >= 0) {
@@@ -1405,46 -1410,6 +1404,6 @@@ static int ioc_settimeout(unsigned int 
  #define HIDPGETCONNLIST       _IOR('H', 210, int)
  #define HIDPGETCONNINFO       _IOR('H', 211, int)
  
- struct mtd_oob_buf32 {
-       u_int32_t start;
-       u_int32_t length;
-       compat_caddr_t ptr;     /* unsigned char* */
- };
- #define MEMWRITEOOB32         _IOWR('M',3,struct mtd_oob_buf32)
- #define MEMREADOOB32  _IOWR('M',4,struct mtd_oob_buf32)
- static int mtd_rw_oob(unsigned int fd, unsigned int cmd, unsigned long arg)
- {
-       struct mtd_oob_buf __user *buf = compat_alloc_user_space(sizeof(*buf));
-       struct mtd_oob_buf32 __user *buf32 = compat_ptr(arg);
-       u32 data;
-       char __user *datap;
-       unsigned int real_cmd;
-       int err;
-       real_cmd = (cmd == MEMREADOOB32) ?
-               MEMREADOOB : MEMWRITEOOB;
-       if (copy_in_user(&buf->start, &buf32->start,
-                        2 * sizeof(u32)) ||
-           get_user(data, &buf32->ptr))
-               return -EFAULT;
-       datap = compat_ptr(data);
-       if (put_user(datap, &buf->ptr))
-               return -EFAULT;
-       err = sys_ioctl(fd, real_cmd, (unsigned long) buf);
-       if (!err) {
-               if (copy_in_user(&buf32->start, &buf->start,
-                                2 * sizeof(u32)))
-                       err = -EFAULT;
-       }
-       return err;
- }     
  #ifdef CONFIG_BLOCK
  struct raw32_config_request
  {
@@@ -1759,7 -1724,7 +1718,7 @@@ static int do_i2c_smbus_ioctl(unsigned 
  
  /* Since old style bridge ioctl's endup using SIOCDEVPRIVATE
   * for some operations; this forces use of the newer bridge-utils that
 - * use compatiable ioctls
 + * use compatible ioctls
   */
  static int old_bridge_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
  {
@@@ -2426,15 -2391,6 +2385,6 @@@ COMPATIBLE_IOCTL(USBDEVFS_SUBMITURB32
  COMPATIBLE_IOCTL(USBDEVFS_REAPURB32)
  COMPATIBLE_IOCTL(USBDEVFS_REAPURBNDELAY32)
  COMPATIBLE_IOCTL(USBDEVFS_CLEAR_HALT)
- /* MTD */
- COMPATIBLE_IOCTL(MEMGETINFO)
- COMPATIBLE_IOCTL(MEMERASE)
- COMPATIBLE_IOCTL(MEMLOCK)
- COMPATIBLE_IOCTL(MEMUNLOCK)
- COMPATIBLE_IOCTL(MEMGETREGIONCOUNT)
- COMPATIBLE_IOCTL(MEMGETREGIONINFO)
- COMPATIBLE_IOCTL(MEMGETBADBLOCK)
- COMPATIBLE_IOCTL(MEMSETBADBLOCK)
  /* NBD */
  ULONG_IOCTL(NBD_SET_SOCK)
  ULONG_IOCTL(NBD_SET_BLKSIZE)
@@@ -2544,8 -2500,6 +2494,6 @@@ COMPATIBLE_IOCTL(JSIOCGBUTTONS
  COMPATIBLE_IOCTL(JSIOCGNAME(0))
  
  /* now things that need handlers */
- HANDLE_IOCTL(MEMREADOOB32, mtd_rw_oob)
- HANDLE_IOCTL(MEMWRITEOOB32, mtd_rw_oob)
  #ifdef CONFIG_NET
  HANDLE_IOCTL(SIOCGIFNAME, dev_ifname32)
  HANDLE_IOCTL(SIOCGIFCONF, dev_ifconf)
This page took 0.202089 seconds and 4 git commands to generate.